Home

  About Us

  Products

  Process Models

  SE Resources

  Commentary

  Contact us

Breaking News!

A new blog ...

visit OnCenter, Roger Pressman's running commentary on the world at large

A new edition ... the 7th edition of Software Engineering is available now

A new book ... Roger Pressman and David Lowe on Web Engineering

A first novel ... Roger Pressman's first novel is a technothriller -- The Aymara Bridge

A new curriculum! RSP&A has partnered with QAI to develop a comprehensive Internet-based software engineering curriculum.

A redesigned site! ... we've done a major redesign and added many new features for 2009 - 2010

 
Adaptable Process Model
Reengineering
Process Design



IMPORTANT NOTICE: The complete Adaptable Process Model (APM) is provided for informational purposes and for assessment by potential users. The APM is copyrighted material and may not be downloaded, copied, or extracted for use in actual project work. The full hypertext (html) version of the APM may be licensed for use and customization within your organization. Contact R.S. Pressman & Associates, Inc. for complete licensing information.

Task Definition: Task V.29 Define the reengineering scope

V.29.1 Define reengineering objectives;

V.29.2 Examine the existing application in the context of current business requirements and process;

Begin Task V.29.2

  • V.29.2.1 Identify existing application software;

    V.29.2.2 Identify existing data;

    V.29.2.3 Identify existing technical Infrastructure;

  • End Task V.29.2

    V.29.3 Examine existing software descriptive information for completeness, consistency, correctness and correspondence to the executable application;

    V.29.4 Conduct feasibility analysis;

    end Task Definition Task V.29



    Task Definition: Task V.30 Develop a reengineering plan

    V.30.1 Develop reengineering strategy;

    V.30.2 Identify methods and tools for reengineering;

    V.30.3 Develop cost/effort estimate for the reengineering;

    V.30.4 Establish reengineering project duration and resource requirements;

    V.30.5 Derive enhancement schedule and strategy;

    V.30.6 Develop a Project Plan for the reengineering;

    end Task Definition Task V.30

     

    Task Definition: Task V.31 Assess project and technical risks

    V.31.1 Review technology and project risks associated with the reengineering task;

    V.31.2 Identify potential technical side effects that reengineering application may cause for interoperable systems;

    V.31.3 Assign risk probabilities to each risk and side effect;

    V.31.4 Estimate risk/side effect impact;

    V.31.5 Determine high priority risks/side effects;

    V.31.6 Develop plan for mitigating, monitoring and managing risk;

    V.31.7 Review risks with management/customer;

    end Task Definition Task V.31

     

    Task Definition: Task V.32 Extract engineering information from existing system

    V.32.1 Analyze existing documentation;

    begin Task V.32.1

    repeat until (all existing documents have been evaluated)

    do while (portions of the document remain to be reviewed)

    V.32.1.1 Review design documentation;

    case of: design description

  • design description = data design

    if data structures description are missing or incomplete

  • then note this section for revision or reverse engineering;
  • else

  • check for conformance to operational code;

    note deficiencies in description;

  • endif

  • design description = architectural or class design

  • if program architecture or class description are missing or incomplete
  • then note this section for revision or reverse engineering;
  • else

  • check for conformance to operational code;

    note deficiencies in description;

  • endif

  • design description = component-level or messaging design

  • do while module descriptions remain to be evaluated
  • if module description is missing or incomplete
  • then note this section for revision or reverse engineering;
  • else

  • check for conformance to operational code;

    note deficiencies in description;

  • endif

  • enddo

  • design description = interface design

  • if interface description is missing or incomplete
  • then note this section for revision or reverse engineering;
  • else

  • check for conformance to operational code;

    note deficiencies in description;

  • endif

  • endcase

    enddo

    endrep

    V.32.1.2 Review user and operational documentation;

    V.32.1.3 Note deficiencies in design and/or operational information;

    end Task V.32.1

    V.32.2 Extract design data and create appropriate models;

    V.32.3 Model existing program architecture or class hierarchy;

    V.32.4 Extract procedural design;

    V.32.5 Extract technical infrastructure products;

    V.32.6 Integrate extracted products;

    V.32.7 Build reverse engineered documentation;

    V.32.8 Review all reverse engineered products;

    end Task Definition Task V.32

     

    Task Definition: Task V.33 Forward engineer the application

    V.33.1 Refine analysis model to reflect enhancement to be implemented as part of forward engineering;

    V.33.2 Build prototypes, if required;

    V.33.3 Reengineer an analysis model with enhancements;

    begin Task V.33.3

    case of: analysis approach

    analysis approach = structured analysis

    repeat until (all data object, relationships, attributes are defined)

  • 33.3.1 Reengineer a data model using appropriate notation;
  • 33.3.1.1 Identify data objects and control items that require change;

    33.3.1.2 Define new data objects required for enhancement

    33.3.1.3 Indicate connections among objects and items;

    33.3.1.4 Specify attributes for revised and new data objects;

    33.3.1.5 Identify the relationships associated with each connection;

    33.3.1.6 Develop or revise an entity relationship diagram, if required;

  • review the data model internally;

    review the data model with the customer;

  • endrep

    repeat until (data flow representation is complete)

  • 33.3.2 Reengineer a functional model using appropriate notation;
  • 33.3.2.1 Revise the "context level" data flow model, if required;

    33.3.2.2 Evaluate existing DFDs and define the domain of change;

    33.3.2.3 Use grammatical parse on revised statement of scope for the enhancement

    33.3.2.4 Refine data flow model in domain of change;

    33.3.2.5 Develop process specifications (PSPECs) for new transforms (functions) at lowest data flow level;

    33.3.2.6 Revise process specifications (PSPECs) for modified transforms (functions) at lowest data flow level;

  • review the revised data flow model internally;

    review the revised data flow model (top levels only) with the customer;

  • endrep

    repeat until (data flow representation is complete)

  • 33.3.3 Reengineer a behavioral model using appropriate notation;
  • 33.3.3.1 Make a list of "events" that drive the system;

    33.3.3.2 Indicate those system states that are externally observable;

    33.3.3.3 Develop a top-level state transition model that shows how the product moves from state to state;

    33.3.3.4 Refine the state transition model;

  • review the behavioral model internally;

    review the behavioral model with the customer;

  • endrep

    analysis approach =object-oriented analysis

    do while (class model needs refinement)

  • repeat until (all classes are defined)
  • 33.3.1' Identify new classes to accommodate any requested enhancement;
  • 33.3.1'.1 Identify classes/objects using grammatical parse of the enhanced software scope;

    33.3.1'.2 Use inheritance to create enhanced classes ;

    33.3.1'.3 Define relationships between classes;

    33.3.1'.4 Define aggregate classes, as appropriate;

    33.3.1'.5 Specify the class hierarchy;

  • review the class model internally;

    review the class model with the customer;

  • endrep

    repeat until (all attributes are defined)

  • 33.3.2' Specify attributes and operations for each class;
  • 33.3.2'.1 Specify attributes for each class by identifying generic information that is relevant to all instances;

    33.3.2'.2 Identify the methods (operations) that are relevant to each class;

  • review the class model internally;

    review the class model with the customer;

  • endrep

    repeat until (class hierarchy are defined)

  • 33.3.3' Reengineer class hierarchy using appropriate notation;
  • 33.3.3'.1 Specify public vs. private class attributes and methods;

    33.3.3'.2 Describe object behavior;

  • review the class model internally;

    review the class model with the customer;

  • endrep

  • enddo

    33.3.4 Specify technical constraints and validation criteria;

    33.3.5 Integrate technical infrastructure products;

    33.3.6 Conduct formal technical reviews (FTRs) of model;

    33.3.7 Make revisions as required;

    33.3.8 Create requirements documentation (form will vary with project) using models as input;

    33.3.9 Begin preliminary test planning;

    endcase

    end Task V.33.3

    V.33.4 Design reengineered system;

    begin Task V.33.4

    case of: design approach

    design approach = structured design

    repeat until (all data structures are defined)

  • 33.4.1 Design or modify data structures based on analysis model;
  • 33.4.1.1 Develop a data structure for each new data object;

    33.4.1.2 Modify existing data objects, as required;

    33.4.1.3 Modify database schema, If required;

    33.4.1.4 Specify restrictions associated with each data structure;

  • review the data design internally;

  • endrep

    repeat until (program architecture is defined)

  • 33.4.2 Reengineer program architecture;
  • 33.4.2.1 Map reengineered data flow model into a program architecture;

    33.4.2.2 Partition the architecture both vertically and horizontally and develop a revised structure chart;

  • review the architectural design internally;

  • endrep

    repeat until (all program modules are described)

  • 33.4.3 Describe new or revised program modules;
  • 33.4.3.1 Adapt PSPECs (task 18.3.2.4) to become processing narratives for each new or revised module;

    33.4.3.2 Develop description of each new or revised module interface;

  • 33.4.4 Develop procedural (detailed) design for each new or revised module;

  • 33.4.4.1 Develop a list of processing steps, based on processing narrative developed in Task 33.4.3.1;

    33.4.4.2 Use stepwise refinement to develop a processing algorithm;

    33.4.4.3 Apply "proof of correctness" techniques to verify correctness of the procedural design;

  • review the procedural design internally;

  • endrep

    design approach = object-oriented design

    repeat until (all subsystems are defined)

  • 33.4.1' Design each subsystem for the reengineered application
  • 33.4.1'.1 Establish the level of concurrency for the problem

    33.4.1'.2 Allocate subsystems to processors

    33.4.1'.3 Allocate system functions to tasks

    33.4.1'.4 Define methods for managing global resources

    33.4.1'.5 Establish system control structure

    33.4.1'.6 Define mechanisms for initiation, termination and error handling

  • review the system design internally;

  • endrep

    repeat until (object design is complete)

  • 33.4.2' Engineer reusable components corresponding to the class structure;

    if reusable classes can be acquired from the existing application

  • then adapt them to the reengineered requirements;
  • else {reusable classes are not available}

  • 33.4.2'.1 Design classes in the problem domain;

    33.4.2'.2 Design classes for the human-computer interface;

    33.4.2'.3 Design classes for data management;

    33.4.2'.4 Design classes for task management;

  • endif

    33.4.3' Reengineer object structure;

  • 33.4.3'.1 Translate attributes into corresponding data structures;

    33.4.3'.2 Design algorithms for each method, apply steps noted in Task 33.4.4;

  • 33.4.4' Reengineer message structure;

  • 33.4.3'.1 Review the class relationship model developed in Task 33.3.1'.2;

    33.4.3'.2 Define messages associated with each relationship;

    33.4.3'.3 Create a message template [Booch, 1992];

    33.4.3'.4 Consider message synchronization issues;

  • review the system design internally;

  • endrep

    33.4.4 Specify revised interface design, if required;

    33.4.5 Modify design documentation (form will vary with project) using the enhanced design model as input;

    33.4.5 Conduct formal technical reviews (FTR) of model;

    33.4.6 Make revisions as required;

    endcase

    end Task V.33.4

    V.33.4 Design reengineered system;

    begin Task V.33.4

    case of: design approach

    design approach = structured design

    repeat until (all data structures are defined)

  • 33.4.1 Design or modify data structures based on analysis model;
  • 33.4.1.1 Develop a data structure for each new data object;

    33.4.1.2 Modify existing data objects, as required;

    33.4.1.3 Modify database schema, If required;

    33.4.1.4 Specify restrictions associated with each data structure;

  • review the data design internally;

  • endrep

    repeat until (program architecture is defined)

  • 33.4.2 Reengineer program architecture;
  • 33.4.2.1 Map reengineered data flow model into a program architecture;

    33.4.2.2 Partition the architecture both vertically and horizontally and develop a revised structure chart;

  • review the architectural design internally;

  • endrep

    repeat until (all program modules are described)

  • 33.4.3 Describe new or revised program modules;
  • 33.4.3.1 Adapt PSPECs (task 18.3.2.4) to become processing narratives for each new or revised module;

    33.4.3.2 Develop description of each new or revised module interface;

  • 33.4.4 Develop procedural (detailed) design for each new or revised module;

  • 33.4.4.1 Develop a list of processing steps, based on processing narrative developed in Task 33.4.3.1;

    33.4.4.2 Use stepwise refinement to develop a processing algorithm;

    33.4.4.3 Apply "proof of correctness" techniques to verify correctness of the procedural design;

  • review the procedural design internally;

  • endrep

    design approach = object-oriented design

    repeat until (all subsystems are defined)

  • 33.4.1' Design each subsystem for the reengineered application
  • 33.4.1'.1 Establish the level of concurrency for the problem

    33.4.1'.2 Allocate subsystems to processors

    33.4.1'.3 Allocate system functions to tasks

    33.4.1'.4 Define methods for managing global resources

    33.4.1'.5 Establish system control structure

    33.4.1'.6 Define mechanisms for initiation, termination and error handling

  • review the system design internally;

  • endrep

    repeat until (object design is complete)

  • 33.4.2' Engineer reusable components corresponding to the class structure;

    if reusable classes can be acquired fro the existing application

  • then adapt them to the reengineered requirements;
  • else {reusable classes are not available}

  • 33.4.2'.1 Design classes in the problem domain;

    33.4.2'.2 Design classes for the human-computer interface;

    33.4.2'.3 Design classes for data management;

    33.4.2'.4 Design classes for task management;

  • endif

    33.4.3' Reengineer object structure;

  • 33.4.3'.1 Translate attributes into corresponding data structures;

    33.4.3'.2 Design algorithms for each method, apply steps noted in Task 33.4.4;

  • 33.4.4' Reengineer message structure;

  • 33.4.4'.1 Review the class relationship model developed in Task 33.3.1'.2;

    33.4.4'.2 Define messages associated with each relationship;

    33.4.4'.3 Create a message template [Booch, 1992];

    33.4.4'.4 Consider message synchronization issues;

  • review the system design internally;

  • endrep

    33.4.4 Specify revised interface design, if required;

    33.4.5 Modify design documentation (form will vary with project) using the enhanced design model as input;

    33.4.5 Conduct formal technical reviews (FTR) of model;

    33.4.6 Make revisions as required;

    endcase

    end Task V.33.4

    end Task Definition Task V.33



    Task Definition: Task V.34 Construct a deliverable

    repeat until (deliverable is finalized)

    if deliverable is non-executable then

  • DPP: develop appropriate documentation;
  • else {source code is to be generated}

  • do while (new or revised modules remain to be coded)

    V.34.1 Select program components to be coded;

    V.34.2 Code in the appropriate programming language;

    V.34.3 Conduct code walkthroughs (FTR) of selected components;

    V.34.4 Make revisions as required;

  • enddo

    endif

    endrep

    end Task Definition Task V.34



    Task Definition: Task V.35 Verify and validate the deliverable

    V.35.1 Create a test plan and procedure to accommodate the reengineered application;

    Begin Task V.35.1

    repeat until (test strategy is finalized)

    35.1.1 Review validation criteria and existing test plan, if one has been written; modify to accommodate the reengineered application;

    Begin Task V.35.1.1

  • 35.1.1.1 Review the test plan to determine if project schedule provides completed modules when needed for testing;

    35.1.1.2 Modify the test plan to conform to the actual module completion dates;

    35.1.1.3 Review validation criteria to ensure that requirements changes have been accommodated;

    35.1.1.4 Add new classes of tests, as required;

  • End Task V.35.1.1

    35.1.2 Describe the integration strategy for the enhancement;

    Begin Task V.35.1.2

  • 35.1.2.1 Select order of functional implementation for the enhancement;

    35.1.2.2 Define integration strategy for the enhancement;

    35.1.2.3 Design clusters (builds) and indicate where stubs/drivers will be required;

    parallel activity: CreateTestSoftware

    do while (stubs and drivers remain to be developed)

  • analyze requirements/interfaces for stubs and drivers;

    design stubs and drivers;

    generate code for stubs/drivers;

    test stubs and drivers to ensure accurate interfaces and operation;

    DPP: create operating instructions for stubs and drivers;

  • enddo

    endparallel

    35.1.2.4 Consider regression testing requirements and indicate where regression tests are to be used;

    35.1.2.5 Specify special testing resources;

  • End Task V.35.1.2

    35.1.3 Identify program components that require unit testing;

    Begin Task V.35.1.3

  • 35.1.3.1 Define criteria for selection of unit test candidates;

    35.1.3.2 Determine whether unit tests can be appropriately scheduled;

    35.1.3.3 Estimate resources required to conduct unit testing;

  • end Task V.35.1.3

    end Task V.35.1

    endrep

    V.35.2 Design white-box tests;

    Begin Task V.35.2

    repeat until (white box test cases are designed)

    35.2.1 Review module procedural design to determine most appropriate white- box method for new and revised modules;

  • 35.2.1.1 Compute module cyclomatic complexity, if this has not already been done;

    35.2.1.2 Isolate all independent logical paths;

    35.2.1.3 Isolate all loops;

  • 35.2.2 Design basis path tests;

  • 35.2.2.1 For each independent path, examine component interface to determine inputs that will force module to execute that path.

    35.2.2.2 Specify output values/conditions that are expected;

    35.2.2.3 Indicate any special testing considerations;

  • 35.2.3 Design loop tests;

  • 35.2.3.1 For each loop specify type;

    35.2.3.2 For each independent path, examine component interface to determine inputs that will force module to execute loops as required by loop test criteria;

    35.2.3.3 Specify loop exit values/conditions that are expected;

  • 35.2.4 Design other white-box tests

  • 35.2.4.1 Consider efficacy of data flow testing and design tests if appropriate;

    35.2.4.2 Consider efficacy of brach-relational operator testing and design tests if appropriate;

    35.2.4.3 Consider efficacy of other white-box tests and design tests if appropriate;

  • endrep

    end Task V.35.2

    V.35.3 Design black-box tests;

    Begin Task V.35.3

    repeat until (black box test cases are designed)

    35.3.1 Review existing black box tests to determine those that are applicable to the enhanced system;

  • 35.3.1.1 Examine architecture to isolate modified component clusters (builds) that are candidates for black-box testing;

    35.3.1.2 Isolate local requirements for each program cluster;

    35.3.1.3 Review broad program requirements and test classes specified during analysis activities;

  • 35.3.2 Design black-box tests for each new or revised component cluster for use during integration testing;

  • 35.3.2.1 Define equivalence classes for data that flow into the cluster;

    35.3.2.2 Define boundary values for data that flow into the cluster;

    35.3.2.3 Specify corresponding equivalence class and boundary value tests;

    35.3.2.4 Specify expected output;

  • 35.3.3 Design black-box tests for the enhanced program as a whole;

  • 35.3.2.1 Define equivalence classes for data that flow into the program;

    35.3.2.2 Define boundary values for data that flow into the program;

    35.3.2.3 Specify corresponding equivalence class and boundary value tests for the program;

    35.3.2.4 Specify expected output;

  •  endrep

    end Task V.35.3

    V.35.4 Conduct white-box and black-box tests with product enhancement refinements;

    Begin Task V.35.4

    35.4.0 Review all test cases to ensure that adequate test coverage has been achieved. Make revisions as required;

    repeat until (white box tests have been executed

    35.4.1 Execute a white box test case;

    35.4.1.1 Compare expected and actual results;

    35.4.1.2 Note discrepancies;

    35.4.1.3 Record all errors for later correction or immediate action. Create an error log;

    parallel activity: debugging

    do while (errors remain to be corrected)

  • diagnose error symptom;

    if cause of error is known then

  • 35.4.2 Correct error;

    invoke Task V.35.4.1;

    35.4.3 Modify source code and design model based on debugging changes. Create a change log;

    35.4.4 Review (FTR) all substantive changes for side effects;

  • else {cause of error is not known}

  • invoke Task V.35.2 to exercise code connected to symptom;

    ask colleagues to assist in diagnosis;

  • endif

  • enddo

    endparallel

    endrep

    repeat until (black box tests have been executed)

    35.4.5 Execute a black box test case;

    35.4.5.1 Compare expected and actual results;

    35.4.5.2 Note discrepancies;

    35.4.5.3 Record all errors for later correction or immediate action. Create an error log;

    parallel activity: debugging

  • do while (errors remain to be corrected)
  • diagnose error symptom;
  • if cause of error is known then

    35.4.6 Correct error;

    invoke Task V.35.3.4;

    35.4.7 Modify source code and design model based on debugging changes. Create a change log;

    35.4.8 Review (FTR) all substantive changes for side effects; 

  • else {cause of error is not known}

  • invoke Task V.35.3 to exercise code connected to symptom;

    ask colleagues to assist in diagnosis;

  • endif

  • enddo

  • endparallel

    endrep

    end Task V.35.4

    V.35.5 Conduct regression tests;

    V.35.6 Prepare all reengineered documentation;

    V.35.7 Develop a strategy for re-introduction of the software;

    Begin Task V.35.7

    V.35.7.1 Define system integration strategy and initiate system integration testing.

    V.35.7.2 Establish customer integration and live-test strategy.

    V.35.7.3 Revise and implement customer training, as req'd.

    end Task V.35.7

    V.35.8 Create a Software Release Package.

    Begin Task V.35.8

    35.8.1 Ensure that all documents, data and programs are placed under formal configuration control (see Chapter 5, Umbrella Activity U.4)

    35.8.2 Construct a set of deliverables for the customer.

    35.8.3 Define a set of internal documentation for technical reference.

    35.8.4 Develop a System Support Plan(large projects only).

    35.8.5 Apply final SQA procedures to ensure completeness.

    35.8.6 Write release memo.

    End Task V.35.8

    V.35.9 Roll-out reengineered application to each customer;

    end Task Definition Task V.35

      

    Task Definition: Task V.36 Evaluate the reengineered deliverable

    V.36.1 Deliver product to each customer;

    V.36.2 Define feedback mechanisms;

    V.36.3 Refine help-desk to accommodate multiple customer locations;

    V.36.4 Conduct training and provide implementation support;

    V.36.5 Collect and analyze customer feedback;

    end Task Definition: Task V.36


    Use Browser "back" arrow or return to APM Process Design Language Description


    Site search! We've added links to a search engine that will enable you to search our entire site for information you need. Enter the appropriate word or phrase below.

    PicoSearch




    Home About us Products Product Models SE Resources Commentary Contact us

    Web site and all contents © R.S. Pressman & Associates, Inc. 2001 - 2010, All rights reserved.
    Free website templates