20 Oct 2019

  • October 20, 2019
  • Amitraj
System Development Life Cycle (SDLC) Approaches

The Systems (or Software) Development Life Cycle (SDLC) is a domain of competency used in systems engineering, information systems and software engineering to describe a process for planning, creating, testing, and deploying an information system. In this article, we would review the various paradigms of SDLC based development approaches which has emerged in the discipline of Systems Analysis and Design.




There are basically three paradigms of Software Development Approaches


The linear approaches

1.This takes specific activities and represents them as separate phases such as requirements specification, software, design, implementation, testing and so on.
2.After each stage is defined it is `signed-off’., and development goes on to the following stage


Iterative approaches

1.This approach interleaves the activities of specification, development & validation
2.An initial system is rapidly developed from very abstract specifications.
3.This is then refined with specific inputs from the stakeholders to produce a system that satisfies the needs of the stake-holders.


Component-based software development

1.This technique assumes that parts of the system already exists and the rest needs to be planned for and designed.
2.The system development process focuses on integrating these parts rather than developing them from scratch.
3.Components based approaches break down the scope of the large system into modules which are generic and can be reused into other sections of the developed information system.


The Waterfall Model

The Waterefall model is a classic SDLC model, which was first proposed by H.D. Benington at a symposium on advanced programming methods for digital computers in 1956. The original waterfall model has 5 stages: requirements analysis, design, implementation, verification, maintenance.






Strengths of the waterfall model

1.Easy to understand, easy to use
2.Provides structure to inexperienced staff
3.Milestones are well understood
4.Sets requirements stability
5.Good for management control (plan, staff, track)
6.Works well when quality is more important than cost or schedule

Weaknesses of the waterfall model

1.All requirements must be known upfront
2.Deliverables created for each phase are considered frozen – inhibits flexibility
3.Can give a false impression of progress
4.Does not reflect problem-solving nature of software development – iterations of phases
5.Integration is one big bang at the end
6.Little opportunity for customer to preview the system (until it may be too late)




Prototyping Approach

Software prototype based approaches fall into the scope of iterative software development paradigms. It focuses on iteratively improving a software prototype with inputs from the stake-holders while fine tuning it.





Strengths of the prototyping approach

1.Customers can “see” the requirements as they are being gathered
2.Developers learn from customers
3.A more accurate end product
4.Unexpected requirements accommodated
5.Allows for flexible design and development
6.Steady, visible signs of progress produced
7.Interaction with the prototype stimulates awareness of additional needed functionality

Weaknesses of the prototyping approach

1.Tendency to abandon structured program development for “code-and-fix” development
2.Bad reputation for “quick-and-dirty” methods
3.Overall maintainability may be overlooked
4.The customer may want the prototype delivered.
5.Process may continue forever (scope creep)


Rapid Application Development

Rapid application development (RAD) was proposed by James Martin’s for rapid development of information systems. In general, the RAD approaches to software development put less emphasis on planning tasks and more emphasis on development. Further, they are somewhat iterative in nature, in how they develop the final system.






Strengths of Rapid Application Development based Approaches

1.Reduced cycle time and improved productivity with fewer people means lower costs
2.Time-box approach mitigates cost and schedule risk
3.Customer involved throughout the complete cycle minimizes risk of not achieving customer satisfaction and business needs
4.Focus moves from documentation to code.
5 Uses modeling concepts to capture information about business, data, and processes.

Weaknesses of Rapid Application Development based approaches

1.Accelerated development process must give quick responses to the user
2.Risk of never achieving closure
3.Hard to use with legacy systems
4.Requires a system that can be modularized
5.Developers and customers must be committed to rapid-fire activities in an abbreviated time frame.








Translate

Popular Posts