Software Reengineering

软件工程

Posted by Starbroken on April 25, 2019

Software Process Model

There are lots of software process models, including waterfall, prototyping, iterative,incremental development, spiral development, rapid application development, extreme programming and various types of agile methodology.

  1. The Waterfall Model The waterfall model,also known as the classic life cycle, is a sequential development approach, in which development is seen as flowing steadily downwards(like a waterfall) through several phases as shown in Figure 2-1, typically encompasses the following activities:
    • Requirements analysis resulting in a software requirements specification
    • Software design which refers to modeling
    • Programming
    • Testing
    • Integration, if there are multiple subsystems
    • Development(or Installation)
    • Maintenance which refers to ongoing support of the completed software till retirement
  2. The Incremental Model
  3. The Spiral Model The Spiral Model is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the Waterfall model.
  4. The Agile Process
    • Individuals and interactions over processes and tools.
    • Working software over comprehensive documentation
    • Customer collaboration over contract negotiation.
    • Responding to change over flowing a plan

Phases of Software Development

  1. Software Development Life Cycle These phases encompass planning, analysis, design, implementation and maintenance phases.
  2. Planning phases The goal of this period is to creative a project development plan.
    • Assemble the project team
    • Justify project
    • Choose development methodology
    • Develop a project schedule
    • Produce a project development plan
  3. Analysis Phase The goal of the analysis phase is to produce a list of requirements for a new or revised information system.
    • Study the current system
    • Determine system requirements
    • Write requirement report
  4. Design Phase
    • Identify potential solutions
    • Evaluate solutions and select the best
    • Select hardware and software
    • Develop application specifications
    • Obtain approval to implement the new system
  5. Implementation Phases
    • Purchase and install hardware and/or software
    • Create applications
    • Test applications
    • Finalize documentation
    • Train users
    • Convert data
    • Convert to new system
  6. Maintenance Phase
    • Operate equipment
    • Make backups
    • Provide help to users
    • Fix bugs
    • Optimize speed and security
    • Revise software as necessary to meet business needs

Software Reengineering Activities

  1. Inventory Analysis
  2. Document Restructuring
  3. Reverse Engineering
  4. Code Restructuring
  5. Data Restructuring
  6. Forward Engineering