Software Development Life Cycle
Software Development Life Cycle
INTRODUCTION
No one can deny the importance of computer in our life, especially during the present time. In
fact, computer has become indispensable in today's life as it is used in many fields of life such as
industry, medicine, commerce, education and even agriculture.
It has become an important element in the industry and technology of advanced as well as
developing countries. Now-a-days, organizations become more dependent on computer in their
works as a result of computer technology.
Computers considered a time-saving device and its progress helps in executing complex, long,
repeated processes in a very short time with a high speed. In addition to using computer for
work, people use it for fun and entertainment.
Noticeably, the number of companies that produce software programs for the purpose of
facilitating works of offices, administrations, banks, etc., during the previous four decades.
Moreover, the aim of software engineering is to construct programs of high quality.
SDLC PHASES
Requirements Gathering and Analysis
Design
Development
Testing
Implementation
Maintenance
1
SOFTWARE DEVELOPMENT LIFE CYCLE(SDLC)
Requirements
Gathering Requirements
Gathering Buisness Analyst
Incremet3
Increment1 Increment2
Analysis Archect
Analysis Analysis Analysis
Design
Design Developer
Design
Design
Coding
Tester
Coding
Coding
Coding Testing
Release
Mngr
Testing Testing
Testing Conversion/
Maintenance
2
SOFTWARE DEVELOPMENT LIFE CYCLE(SDLC)
A Waterfall: The model that describes (first requirements followed by design, coding, testing
and release) is the Waterfall model. This model is useful only if the requirements are
absolutely clear and never change during the project.
Pros: Each phase is independent…useful when reqs will not change over time, project is
small.
Cons: cannot handle changes very well, users only involved in the end.
An incremental: requiring that the system be developed in succinct pieces. Each increment
(after the first) can reuse assets that were developed in earlier increments. The most common
requirements falling in the first and the least last.
Pros: issues raised in previous increments can be addressed in current, More frequent
releases can be done, everything in each phase does not have to be completed in order to
move forward, different teams can work on different increments independently.
Cons: Problems raised in a phase can not be addresses until future increment, Requires
planning to determine which requirements will be addresses in which increment.
Useful when not all functionality is necessary in order for the project to be useful. Not all
requirements are specified(or known) at the beginning of the project. Project is large scale.
An iterative: requiring that issues/errors identified and handled immediately in the
Appropriate phase. Objects allow this easy flow between phases because the language used is
always objects.
Characterized by the ability to move up the waterfall. (Pros: issues not put off addressed
immediately(in appropriate phase, changes made in later phase do not contradict what was
documented in earlier phase, all phases up-to-date, deliver system will have documentation in
current state. Issues are resolved in the appropriate phase & changes are cascaded down.
Cons: difficult to gauge where the project is according to plan. Difficult to project manage
where different group/people in different phase).
Useful when Documents needs to match system in production. A single team working on the
project. Flexibility is feasible on development team.
A combination of iterative and incremental life cycle fits our development process.
Based on the above SDLC:
3
SOFTWARE DEVELOPMENT LIFE CYCLE(SDLC)
The different roles could be defined as..
Project Manager: This would include
Supporting PDD
Estimation Schedule
Requirements Gathering
Screen Design
Facilitate UAT
Architect: includes
Class Diagram
Database Design
Developer: includes
4
SOFTWARE DEVELOPMENT LIFE CYCLE(SDLC)
Tester/QA : includes
V-Shaped Steps
• Project and Requirements Planning – allocate resources
• Product Requirements and Specification Analysis – complete specification of the
software system
• Architecture or High-Level Design – defines how software functions fulfill the design
• Detailed Design – develop algorithms for each architectural component
• Production, operation and maintenance – provide for enhancement and corrections
• System and acceptance testing – check the entire software system in its environment
• Integration and Testing – check that modules interconnect correctly
• Unit testing – check that each module acts as expected
• Coding – transform algorithms into software
5
SOFTWARE DEVELOPMENT LIFE CYCLE(SDLC)
V-Shaped Strengths
• Emphasize planning for verification and validation of the product in early stages of
product development
• Each deliverable must be testable
• Project management can track progress by milestones
• Easy to use
V-Shaped Weaknesses
• Does not easily handle concurrent events
• When the user is satisfied, the prototype code is brought up to the standards needed for a
final product.
• Construction phase – productivity tools, such as code generators, screen generators, etc.
inside a time-box. (“Do until done”)
• Cutover phase -- installation of the system, user acceptance testing and user training
6
SOFTWARE DEVELOPMENT LIFE CYCLE(SDLC)
• The incremental model prioritizes requirements of the system and then implements them
in groups.
• Each subsequent release of the system adds function to the previous release, until all
designed functionality has been implemented.
Spiral Quadrant
Determine objectives, alternatives and constraints
• Objectives: functionality, performance, hardware/software interface, critical success
factors, etc.
• Alternatives: build, reuse, buy, sub-contract, etc.
• Constraints: cost, schedule, interface, etc.
Agile SDLC’s
• Speed up or bypass one or more life cycle phases
• Usually less formal and reduced scope
• Used for time-critical applications
• Used in organizations that employ disciplined methods
7
SOFTWARE DEVELOPMENT LIFE CYCLE(SDLC)
8
SOFTWARE DEVELOPMENT LIFE CYCLE(SDLC)
References
Gallaugher, J. (2012). Understanding Software: A Primer For Managers. Information Systems: A
Manager's Guide to Harnessing Technology (1.4 ed.). Irvington, NY, United States: Flatworld
Knowledge, Inc.
Leau, Y. B., Loo, W. K., Tham, W. Y., & Tan, S. F. (2012). Software Development Life Cycle
AGILE vs Traditional Approaches. In 2012 International Conference on Information and
Network Technology (ICINT 2012) IPCSIT (Vol. 37).
McMurtrey, M. (2013). A Case Study of the Application of the Systems Development Life
Cycle (SDLC) in 21st Century Health Care: Something Old, Something New?. Journal of the
Southern Association for Information Systems,1(1).
Website: Systems Development Life Cycle. (2013). Wikipedia. Retrieved on July 12, 2013 from
http://en.wikipedia.org/wiki/Systems_development_life-cycle
Website: The Systems Development Life Cycle Basics. (n.d.). McGraw Hill Connect. Retrieved
on July 12, 2013 from http://highered.mcgraw-
hill.com/sites/dl/free/0073376736/596593/AppendixD.pdf