Computer Science
Cape – Unit 2 – Module 2: Software Engineering
Specific objectives: Software process models (Strengths &
Weaknesses)
Objectives
• At the end of this lesson you will be able to:
• Compare and contrast life cycle models
Waterfall Model
• This is a algorithmic approach used in the process of developing software.
Each stage acts as a feeder for the subsequent stage in the process from
conception to maintenance. The next phase in the process only begins after
the previous stage in complete.
Phases in the Waterfall Model
• Requirements
• System Design
• Implementation
• Integration and Testing
• Deployment of System
• Maintenance
Advantages of the Waterfall Model
• Activities can be scheduled and completed in a modular basis.
• Being modular, it is easy to manipulate and utilize for engineers.
• Each phase and their deliverables can be managed with ease.
Disadvantages of Waterfall Model
• It is difficult to estimate time and cost for each phase of the development
process.
• Once an application is in the testing stage, it is very difficult to go back and
change something that was not well-thought out in the concept stage.
• Not a good model for complex and object-oriented projects.
• Not suitable for the projects where requirements are at a moderate to high
risk of changing
Evolutionary Development Model
• In this model the software is released in an iterative basis. Users of this
model rely heavily on user feedback in the development phase as they work
towards a final deliverable.
• There are two main evolutionary models;
• Incremental model
• Spiral model
Advantages
• Users are heavily involved in the development phases. Therefore, they get to
experiment on the early conception of the software.
• Errors are reduced due to the constant testing done.
Disadvantages
• At times the iterations delivered might be lacking certain details required for
full customer testing.
Rapid Prototyping
• Rapid Prototyping as a part of the Evolutionary Model is the process of
generating samples (prototypes) to see and assess the functionality of the
product being created. From these samples, developers will fine tune based
on the assessment and customer feedback.
• The prototypes created can be either;
• High fidelity – designs are made closer to the final product
• Low fidelity - simple mock up designs to visualize the design concept
Build
ReviewRefine & Iterate
Concept
Production
Rapid prototyping process
Advantages of Rapid Prototyping
• Reduced design & development time
• Reduced overall product development cost
• Elimination or reduction of risk
• Allows functionality testing
• Improved and increased user involvement
• Ability to evaluate human factors and ergonomics
Disadvantages of Rapid Prototyping
• Lack of accuracy
• Added initial costs
• Requires skilled labour
• Overlooking some key features because it cannot be prototyped
• End user confusion, customers mistaking it for the finished
project/developer misunderstanding of user objectives
Fountain Approach
• This model is similar to the waterfall model, however, there is a genuine
flexibility with this model allowing developers to revisit previous steps
repeatedly until the desire output is achieved.
Fountain Model Stages
• Analysis
• Requirements specification
• Design
• Coding
• Testing and integration
• Operation
• Maintenance/Evolution
Fountain Model
Advantages of the Fountain Model
• Allows for iteration within the phases
• Coding can begin earlier
Disadvantages
• Might be costly
• Iteration between phases may take up more time than planned.
Formal Transformation
• The formal transformation model utilizes a mathematical technique to create
and deliver software. This method is used to reduce the occurrence of
problems which can prove difficult using other models.
Formal Transformation Model
P = Process
R = Requirement
Advantages of Formal Transformation
• Finds gaps and inconsistences in the software.
• Each iteration leads closer to the ideal solution.
• Leads to the creation of error free software.
Disadvantages of Formal Transformation
• Can be costly.
• Method only useful for engineers familiar with the model
• Training for developers to become acquainted with the model.
Re-Use Oriented Approach
• In this model software systems are created by using existing code and processes.
• Stages involved in the re-use oriented approach;
• Requirements specification
• Component analysis
• Requirements modification
• System design with reuse
• Development and integration
• System validation
Advantages of Re-use Oriented Approach
• Reduced cost
• Reduces development time
• Faster delivery of software
Disadvantages of Re-use Oriented Approach
• Might not apply in all forms.
• Re-used software might not meet ALL of the user’s needs/requirements.
• Software updates might be challenging for system utilizing the re-used
component.
The End.

Software Process Models

  • 1.
    Computer Science Cape –Unit 2 – Module 2: Software Engineering Specific objectives: Software process models (Strengths & Weaknesses)
  • 2.
    Objectives • At theend of this lesson you will be able to: • Compare and contrast life cycle models
  • 3.
    Waterfall Model • Thisis a algorithmic approach used in the process of developing software. Each stage acts as a feeder for the subsequent stage in the process from conception to maintenance. The next phase in the process only begins after the previous stage in complete.
  • 4.
    Phases in theWaterfall Model • Requirements • System Design • Implementation • Integration and Testing • Deployment of System • Maintenance
  • 5.
    Advantages of theWaterfall Model • Activities can be scheduled and completed in a modular basis. • Being modular, it is easy to manipulate and utilize for engineers. • Each phase and their deliverables can be managed with ease.
  • 6.
    Disadvantages of WaterfallModel • It is difficult to estimate time and cost for each phase of the development process. • Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage. • Not a good model for complex and object-oriented projects. • Not suitable for the projects where requirements are at a moderate to high risk of changing
  • 7.
    Evolutionary Development Model •In this model the software is released in an iterative basis. Users of this model rely heavily on user feedback in the development phase as they work towards a final deliverable. • There are two main evolutionary models; • Incremental model • Spiral model
  • 8.
    Advantages • Users areheavily involved in the development phases. Therefore, they get to experiment on the early conception of the software. • Errors are reduced due to the constant testing done.
  • 9.
    Disadvantages • At timesthe iterations delivered might be lacking certain details required for full customer testing.
  • 10.
    Rapid Prototyping • RapidPrototyping as a part of the Evolutionary Model is the process of generating samples (prototypes) to see and assess the functionality of the product being created. From these samples, developers will fine tune based on the assessment and customer feedback. • The prototypes created can be either; • High fidelity – designs are made closer to the final product • Low fidelity - simple mock up designs to visualize the design concept
  • 11.
  • 12.
    Advantages of RapidPrototyping • Reduced design & development time • Reduced overall product development cost • Elimination or reduction of risk • Allows functionality testing • Improved and increased user involvement • Ability to evaluate human factors and ergonomics
  • 13.
    Disadvantages of RapidPrototyping • Lack of accuracy • Added initial costs • Requires skilled labour • Overlooking some key features because it cannot be prototyped • End user confusion, customers mistaking it for the finished project/developer misunderstanding of user objectives
  • 14.
    Fountain Approach • Thismodel is similar to the waterfall model, however, there is a genuine flexibility with this model allowing developers to revisit previous steps repeatedly until the desire output is achieved.
  • 15.
    Fountain Model Stages •Analysis • Requirements specification • Design • Coding • Testing and integration • Operation • Maintenance/Evolution
  • 16.
  • 17.
    Advantages of theFountain Model • Allows for iteration within the phases • Coding can begin earlier
  • 18.
    Disadvantages • Might becostly • Iteration between phases may take up more time than planned.
  • 19.
    Formal Transformation • Theformal transformation model utilizes a mathematical technique to create and deliver software. This method is used to reduce the occurrence of problems which can prove difficult using other models.
  • 20.
    Formal Transformation Model P= Process R = Requirement
  • 21.
    Advantages of FormalTransformation • Finds gaps and inconsistences in the software. • Each iteration leads closer to the ideal solution. • Leads to the creation of error free software.
  • 22.
    Disadvantages of FormalTransformation • Can be costly. • Method only useful for engineers familiar with the model • Training for developers to become acquainted with the model.
  • 23.
    Re-Use Oriented Approach •In this model software systems are created by using existing code and processes. • Stages involved in the re-use oriented approach; • Requirements specification • Component analysis • Requirements modification • System design with reuse • Development and integration • System validation
  • 24.
    Advantages of Re-useOriented Approach • Reduced cost • Reduces development time • Faster delivery of software
  • 25.
    Disadvantages of Re-useOriented Approach • Might not apply in all forms. • Re-used software might not meet ALL of the user’s needs/requirements. • Software updates might be challenging for system utilizing the re-used component.
  • 26.