Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
STRUCTURED SYSTEM
ANALYSIS AND DESIGN
CHP 4. SOFTWARE DEVELOPMENT MODELS
MR JAYANT. P. DALVI
SOFTWARE DEVELOPMENT MODELS
• Waterfall Model
• Spiral Model
• Prototyping model
• RAD model
WATERFALL MODEL
• Winston Royce introduced the Waterfall Model in 1970.
• This model has five phases: Requirements analysis and specification,
design, implementation, and unit testing, integration and system
testing, and operation and maintenance.
• The steps always follow in this order and do not overlap.
• The developer must complete every phase before the next phase
begins.
• This model is named "Waterfall Model", because its diagrammatic
representation resembles a cascade of waterfalls.
Structured system analysis and design
PHASES OF WATERFALL MODEL
1. Requirement Gathering and analysis − All possible requirements of the system to be developed are captured in this
phase and documented in a requirement specification document.
2. System Design − The requirement specifications from first phase are studied in this phase and the system design is
prepared. This system design helps in specifying hardware and system requirements and helps in defining the overall
system architecture.
3. Implementation − With inputs from the system design, the system is first developed in small programs called units,
which are integrated in the next phase. Each unit is developed and tested for its functionality, which is referred to as
Unit Testing.
1. Integration and Testing − All the units developed in the implementation phase are integrated into a system after testing
of each unit. Post integration the entire system is tested for any faults and failures.
2. Deployment of system − Once the functional and non-functional testing is done; the product is deployed in the
customer environment or released into the market.
3. Maintenance − There are some issues which come up in the client environment. To fix those issues, patches are
released. Also to enhance the product some better versions are released. Maintenance is done to deliver these
changes in the customer environment.
• When to use SDLC Waterfall Model?
1. When the requirements are constant and not changed regularly.
2. A project is short
3. Where the tools and technology used is consistent and is not changing
4. When resources are well prepared and are available to use.
• Advantages of Waterfall model
• This model is simple to implement also the number of resources that are required for it is
minimal.
• The requirements are simple and explicitly declared; they remain unchanged during the
entire project development.
• The start and end points for each phase is fixed, which makes it easy to cover progress.
• The release date for the complete product, as well as its final cost, can be determined
before development.
• It gives easy to control and clarity for the customer due to a strict reporting system.
• Disadvantages of Waterfall model
1. In this model, the risk factor is higher, so this model is not suitable for more
significant and complex projects.
2. This model cannot accept the changes in requirements during
development.
3. It becomes tough to go back to the phase. For example, if the application
has now shifted to the coding phase, and there is a change in requirement,
It becomes tough to go back and change it.
4. Since the testing done at a later stage, it does not allow identifying the
challenges and risks in the earlier phase, so the risk reduction strategy is
difficult to prepare.
SPIRAL MODEL
• The spiral model, initially proposed by Boehm, is an evolutionary
software process model that couples the iterative feature of
prototyping with the controlled and systematic aspects of the linear
sequential model.
• It implements the potential for rapid development of new versions of
the software.
• Using the spiral model, the software is developed in a series of
incremental releases.
• During the early iterations, the additional release may be a paper
model or prototype. During later iterations, more and more complete
versions of the engineered system are produced.
Structured system analysis and design
PHASES OF SPRIAL MODEL
Each cycle in the spiral is divided into four parts:
1) Identification
• This phase starts with gathering the business requirements in the baseline spiral. In the
subsequent spirals as the product matures, identification of system requirements,
subsystem requirements and unit requirements are all done in this phase.
• This phase also includes understanding the system requirements by continuous
communication between the customer and the system analyst. At the end of the spiral,
the product is deployed in the identified market.
2) Design
• The Design phase starts with the conceptual design in the baseline spiral and involves
architectural design, logical design of modules, physical product design and the final
design in the subsequent spirals.
3) Construct or Build
• The Construct phase refers to production of the actual software product
at every spiral. In the baseline spiral, when the product is just thought of
and the design is being developed a POC (Proof of Concept) is developed
in this phase to get customer feedback.
• Then in the subsequent spirals with higher clarity on requirements and
design details a working model of the software called build is produced
with a version number. These builds are sent to the customer for
feedback.
4) Evaluation and Risk Analysis
• Risk Analysis includes identifying, estimating and monitoring the
technical feasibility and management risks, such as schedule slippage
and cost overrun. After testing the build, at the end of first iteration, the
customer evaluates the software and provides feedback.
• When to use Spiral Model?
1. When deliverance is required to be frequent.
2. When the project is large
3. When requirements are unclear and complex
4. When changes may require at any time
5. Large and high budget projects
• Advantages
1. High amount of risk analysis
2. Useful for large and mission-critical projects.
• Disadvantages
1. Can be a costly model to use.
2. Risk analysis needed highly particular expertise
3. Doesn't work well for smaller projects.
PROTOTYPE MODEL
• The Software Prototyping refers to building software application
prototypes which displays the functionality of the product under
development, but may not actually hold the exact logic of the original
software.
• It enables to understand customer requirements at an early stage of
development.
• It helps get valuable feedback from the customer and helps software
designers and developers understand about what exactly is expected
from the product under development.
PROTOTYPE MODEL
• Prototype is a working model of software with some limited
functionality.
• The prototype does not always hold the exact logic used in the actual
software application and is an extra effort to be considered under
effort estimation.
• Prototyping is used to allow the users evaluate developer proposals
and try them out before implementation.
• It also helps understand the requirements which are user specific and
may not have been considered by the developer during product
design.
PHASES OF PROTOTYPE MODEL
PHASES OF PROTOTYPE MODEL
1) Basic Requirement Identification
• This step involves understanding the very basics product requirements especially in terms of user interface. The more
intricate details of the internal design and external aspects like performance and security can be ignored at this stage.
2) Developing the initial Prototype
• The initial Prototype is developed in this stage, where the very basic requirements are showcased and user interfaces are
provided. These features may not exactly work in the same manner internally in the actual software developed. While,
the workarounds are used to give the same look and feel to the customer in the prototype developed.
3) Review of the Prototype
• The prototype developed is then presented to the customer and the other important stakeholders in the project. The
feedback is collected in an organized manner and used for further enhancements in the product under development.
4) Revise and Enhance the Prototype
• The feedback and the review comments are discussed during this stage and some negotiations happen with the
customer based on factors like – time and budget constraints and technical feasibility of the actual implementation. The
changes accepted are again incorporated in the new Prototype developed and the cycle repeats until the customer
expectations are met.
PROS AND CONS OF MODEL
• The advantages of the Prototyping Model are as follows −
• Increased user involvement in the product even before its
implementation.
• Since a working model of the system is displayed, the users get
a better understanding of the system being developed.
• Reduces time and cost as the defects can be detected much
earlier.
• Quicker user feedback is available leading to better solutions.
• Missing functionality can be identified easily.
• Confusing or difficult functions can be identified.
• The Disadvantages of the Prototyping Model are as follows −
• Risk of insufficient requirement analysis owing to too much
dependency on the prototype.
• Users may get confused in the prototypes and actual systems.
• Practically, this methodology may increase the complexity of
the system as scope of the system may expand beyond
original plans.
• Developers may try to reuse the existing prototypes to build
the actual system, even when it is not technically feasible.
• The effort invested in building prototypes may be too much if
it is not monitored properly.
RAD MODEL
• RAD is a linear sequential software development process model that emphasizes a concise
development cycle using an element based construction approach. If the requirements are well
understood and described, and the project scope is a constraint, the RAD process enables a
development team to create a fully functional system within a concise time period.
• RAD (Rapid Application Development) is a concept that products can be developed faster and of
higher quality through:
1. Gathering requirements using workshops or focus groups
2. Prototyping and early, reiterative user testing of designs
3. The re-use of software components
4. A rigidly paced schedule that refers design improvements to the next product version
5. Less formality in reviews and other team communication
RAD MODEL
PHASES OF RAD MODEL
1.Business Modelling: The information flow among business functions is defined by answering questions like
what data drives the business process, what data is generated, who generates it, where does the information go,
who process it and so on.
2. Data Modelling: The data collected from business modeling is refined into a set of data objects (entities) that
are needed to support the business. The attributes (character of each entity) are identified, and the relation
between these data objects (entities) is defined.
3. Process Modelling: The information object defined in the data modeling phase are transformed to achieve the
data flow necessary to implement a business function. Processing descriptions are created for adding, modifying,
deleting, or retrieving a data object.
4. Application Generation: Automated tools are used to facilitate construction of the software; even they use the
4th GL techniques.
5. Testing & Turnover: Many of the programming components have already been tested since RAD emphasis
reuse. This reduces the overall testing time. But the new part must be tested, and all interfaces must be fully
exercised.
RAD MODEL
• When to use RAD Model?
1. When the system should need to create the
project that modularizes in a short span
time (2-3 months).
2. When the requirements are well-known.
3. When the technical risk is limited.
4. When there's a necessity to make a system,
which modularized in 2-3 months of period.
5. It should be used only if the budget allows
the use of automatic code generating tools.
• Advantage of RAD Model
1. This model is flexible for
change.
2. In this model, changes are
adoptable.
3. Each phase in RAD brings
highest priority functionality to
the customer.
4. It reduced development time.
5. It increases the reusability of
features.
DISADVANTAGE OF RAD MODEL
• It required highly skilled designers.
• All application is not compatible with RAD.
• For smaller projects, we cannot use the RAD model.
• On the high technical risk, it's not suitable.
• Required user involvement.
COMPARISON OF MODELS
MODELS/PARE
METERS
nature of
requirement
customer
interaction
risk level technology domain
knowledge
focus
waterfall model progressive
demands
on continuous
basis
medium config mgmt high solution
implementation
spiral model complex,
customer
specific
on continuous
basis
high integrated very high technology,
customer
satisfaction
prototype simple rigorous very low proven technological prototype
progess and
solution
RAD simple initial low team mgmt
skills
customer
interaction
on achitecture

More Related Content

Structured system analysis and design

  • 1. STRUCTURED SYSTEM ANALYSIS AND DESIGN CHP 4. SOFTWARE DEVELOPMENT MODELS MR JAYANT. P. DALVI
  • 2. SOFTWARE DEVELOPMENT MODELS • Waterfall Model • Spiral Model • Prototyping model • RAD model
  • 3. WATERFALL MODEL • Winston Royce introduced the Waterfall Model in 1970. • This model has five phases: Requirements analysis and specification, design, implementation, and unit testing, integration and system testing, and operation and maintenance. • The steps always follow in this order and do not overlap. • The developer must complete every phase before the next phase begins. • This model is named "Waterfall Model", because its diagrammatic representation resembles a cascade of waterfalls.
  • 5. PHASES OF WATERFALL MODEL 1. Requirement Gathering and analysis − All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document. 2. System Design − The requirement specifications from first phase are studied in this phase and the system design is prepared. This system design helps in specifying hardware and system requirements and helps in defining the overall system architecture. 3. Implementation − With inputs from the system design, the system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality, which is referred to as Unit Testing. 1. Integration and Testing − All the units developed in the implementation phase are integrated into a system after testing of each unit. Post integration the entire system is tested for any faults and failures. 2. Deployment of system − Once the functional and non-functional testing is done; the product is deployed in the customer environment or released into the market. 3. Maintenance − There are some issues which come up in the client environment. To fix those issues, patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment.
  • 6. • When to use SDLC Waterfall Model? 1. When the requirements are constant and not changed regularly. 2. A project is short 3. Where the tools and technology used is consistent and is not changing 4. When resources are well prepared and are available to use. • Advantages of Waterfall model • This model is simple to implement also the number of resources that are required for it is minimal. • The requirements are simple and explicitly declared; they remain unchanged during the entire project development. • The start and end points for each phase is fixed, which makes it easy to cover progress. • The release date for the complete product, as well as its final cost, can be determined before development. • It gives easy to control and clarity for the customer due to a strict reporting system.
  • 7. • Disadvantages of Waterfall model 1. In this model, the risk factor is higher, so this model is not suitable for more significant and complex projects. 2. This model cannot accept the changes in requirements during development. 3. It becomes tough to go back to the phase. For example, if the application has now shifted to the coding phase, and there is a change in requirement, It becomes tough to go back and change it. 4. Since the testing done at a later stage, it does not allow identifying the challenges and risks in the earlier phase, so the risk reduction strategy is difficult to prepare.
  • 8. SPIRAL MODEL • The spiral model, initially proposed by Boehm, is an evolutionary software process model that couples the iterative feature of prototyping with the controlled and systematic aspects of the linear sequential model. • It implements the potential for rapid development of new versions of the software. • Using the spiral model, the software is developed in a series of incremental releases. • During the early iterations, the additional release may be a paper model or prototype. During later iterations, more and more complete versions of the engineered system are produced.
  • 10. PHASES OF SPRIAL MODEL Each cycle in the spiral is divided into four parts: 1) Identification • This phase starts with gathering the business requirements in the baseline spiral. In the subsequent spirals as the product matures, identification of system requirements, subsystem requirements and unit requirements are all done in this phase. • This phase also includes understanding the system requirements by continuous communication between the customer and the system analyst. At the end of the spiral, the product is deployed in the identified market. 2) Design • The Design phase starts with the conceptual design in the baseline spiral and involves architectural design, logical design of modules, physical product design and the final design in the subsequent spirals.
  • 11. 3) Construct or Build • The Construct phase refers to production of the actual software product at every spiral. In the baseline spiral, when the product is just thought of and the design is being developed a POC (Proof of Concept) is developed in this phase to get customer feedback. • Then in the subsequent spirals with higher clarity on requirements and design details a working model of the software called build is produced with a version number. These builds are sent to the customer for feedback. 4) Evaluation and Risk Analysis • Risk Analysis includes identifying, estimating and monitoring the technical feasibility and management risks, such as schedule slippage and cost overrun. After testing the build, at the end of first iteration, the customer evaluates the software and provides feedback.
  • 12. • When to use Spiral Model? 1. When deliverance is required to be frequent. 2. When the project is large 3. When requirements are unclear and complex 4. When changes may require at any time 5. Large and high budget projects • Advantages 1. High amount of risk analysis 2. Useful for large and mission-critical projects. • Disadvantages 1. Can be a costly model to use. 2. Risk analysis needed highly particular expertise 3. Doesn't work well for smaller projects.
  • 13. PROTOTYPE MODEL • The Software Prototyping refers to building software application prototypes which displays the functionality of the product under development, but may not actually hold the exact logic of the original software. • It enables to understand customer requirements at an early stage of development. • It helps get valuable feedback from the customer and helps software designers and developers understand about what exactly is expected from the product under development.
  • 14. PROTOTYPE MODEL • Prototype is a working model of software with some limited functionality. • The prototype does not always hold the exact logic used in the actual software application and is an extra effort to be considered under effort estimation. • Prototyping is used to allow the users evaluate developer proposals and try them out before implementation. • It also helps understand the requirements which are user specific and may not have been considered by the developer during product design.
  • 16. PHASES OF PROTOTYPE MODEL 1) Basic Requirement Identification • This step involves understanding the very basics product requirements especially in terms of user interface. The more intricate details of the internal design and external aspects like performance and security can be ignored at this stage. 2) Developing the initial Prototype • The initial Prototype is developed in this stage, where the very basic requirements are showcased and user interfaces are provided. These features may not exactly work in the same manner internally in the actual software developed. While, the workarounds are used to give the same look and feel to the customer in the prototype developed. 3) Review of the Prototype • The prototype developed is then presented to the customer and the other important stakeholders in the project. The feedback is collected in an organized manner and used for further enhancements in the product under development. 4) Revise and Enhance the Prototype • The feedback and the review comments are discussed during this stage and some negotiations happen with the customer based on factors like – time and budget constraints and technical feasibility of the actual implementation. The changes accepted are again incorporated in the new Prototype developed and the cycle repeats until the customer expectations are met.
  • 17. PROS AND CONS OF MODEL • The advantages of the Prototyping Model are as follows − • Increased user involvement in the product even before its implementation. • Since a working model of the system is displayed, the users get a better understanding of the system being developed. • Reduces time and cost as the defects can be detected much earlier. • Quicker user feedback is available leading to better solutions. • Missing functionality can be identified easily. • Confusing or difficult functions can be identified. • The Disadvantages of the Prototyping Model are as follows − • Risk of insufficient requirement analysis owing to too much dependency on the prototype. • Users may get confused in the prototypes and actual systems. • Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans. • Developers may try to reuse the existing prototypes to build the actual system, even when it is not technically feasible. • The effort invested in building prototypes may be too much if it is not monitored properly.
  • 18. RAD MODEL • RAD is a linear sequential software development process model that emphasizes a concise development cycle using an element based construction approach. If the requirements are well understood and described, and the project scope is a constraint, the RAD process enables a development team to create a fully functional system within a concise time period. • RAD (Rapid Application Development) is a concept that products can be developed faster and of higher quality through: 1. Gathering requirements using workshops or focus groups 2. Prototyping and early, reiterative user testing of designs 3. The re-use of software components 4. A rigidly paced schedule that refers design improvements to the next product version 5. Less formality in reviews and other team communication
  • 20. PHASES OF RAD MODEL 1.Business Modelling: The information flow among business functions is defined by answering questions like what data drives the business process, what data is generated, who generates it, where does the information go, who process it and so on. 2. Data Modelling: The data collected from business modeling is refined into a set of data objects (entities) that are needed to support the business. The attributes (character of each entity) are identified, and the relation between these data objects (entities) is defined. 3. Process Modelling: The information object defined in the data modeling phase are transformed to achieve the data flow necessary to implement a business function. Processing descriptions are created for adding, modifying, deleting, or retrieving a data object. 4. Application Generation: Automated tools are used to facilitate construction of the software; even they use the 4th GL techniques. 5. Testing & Turnover: Many of the programming components have already been tested since RAD emphasis reuse. This reduces the overall testing time. But the new part must be tested, and all interfaces must be fully exercised.
  • 21. RAD MODEL • When to use RAD Model? 1. When the system should need to create the project that modularizes in a short span time (2-3 months). 2. When the requirements are well-known. 3. When the technical risk is limited. 4. When there's a necessity to make a system, which modularized in 2-3 months of period. 5. It should be used only if the budget allows the use of automatic code generating tools. • Advantage of RAD Model 1. This model is flexible for change. 2. In this model, changes are adoptable. 3. Each phase in RAD brings highest priority functionality to the customer. 4. It reduced development time. 5. It increases the reusability of features.
  • 22. DISADVANTAGE OF RAD MODEL • It required highly skilled designers. • All application is not compatible with RAD. • For smaller projects, we cannot use the RAD model. • On the high technical risk, it's not suitable. • Required user involvement.
  • 23. COMPARISON OF MODELS MODELS/PARE METERS nature of requirement customer interaction risk level technology domain knowledge focus waterfall model progressive demands on continuous basis medium config mgmt high solution implementation spiral model complex, customer specific on continuous basis high integrated very high technology, customer satisfaction prototype simple rigorous very low proven technological prototype progess and solution RAD simple initial low team mgmt skills customer interaction on achitecture