04-Systems Development Life Cycle
04-Systems Development Life Cycle
Systems Development
Life Cycle (SDLC)
“The software development process may be referred to as the software life cycle because it describes
the life of a software product from its conception to its implementation, delivery, use, and
maintenance.” [Pfleeger, p. 46]
Page 1 of 8
• Identifying:
• Problems – make sure you’re addressing the correct problems!
• Opportunities - situations that can be improved
• Objectives - how can the organization reach its objectives via computerized IS
• Personnel involved:
• Analyst.
• User management.
• Systems management.
A problem can be defined as the difference between things as perceived and things as desired. If a
difference does not exist between what you perceive you have and what you desire to have, then there
is no problem. In our process, we first need to understand if there really is a problem.
This definition of a “problem” is different from many other ways to define the word “problem.” It
addresses the gap between our perceptions of what our customer wants and what they actually desire.
One advantage of this definition is that it emphasizes that there are many ways to solve a problem:
• Change the customers’ perception of what they have now. For example, many of the requests for
enhancements that Microsoft gets are for features that already exist.
• Change the customers’ current desire. For example, if the customers find that what they want will
cost millions of dollars over their budget, then maybe they will scale back their desires and focus on
solving a simpler problem.
• Change the gap between what customers want and what they actually desire. A software solution is
usually an attempt to narrow the gap.
Above is a list of activities that you go through when performing problem analysis. Start by identifying
stakeholders for the problem. These stakeholders are people who are affected by the problem.
Next, understand the root causes for the problem (the real problem behind the problem). Once the real
problem (root cause) has been identified, get all your stakeholders to agree to a description of the
problem.
Armed with a description of the problem, identify any constraints that may be imposed on any solution.
These constraints typically limit the solution you may provide.
Page 2 of 8
Next, identify possible solutions for the problem. It is important that you identify more than one
possible solution. By doing this, you can then compare and contrast the solutions to find the best
possible solution.
An additional step not described above is to expand the set of stakeholders to include those affected by
the specific solution you have identified.
The final step is to define the boundary of the solution. This is used to limit the scope during Understand
Stakeholder’s Needs.
Page 3 of 8
Systems management.
• Analyst makes recommendations to management
• Management decides whether to continue or not
Phase 4: Designing the Recommended System
• The systems analyst uses the information collected earlier in order to accomplish the logical design
of the information system.
• Designing the recommended system:
Design the user interface.
• Design output.
• Design input.
Design system controls.
Design files and/or database.
Produce program specifications.
Produce decision trees or tables.
• Personnel involved:
Analyst.
System designer.
User management.
User operations workers.
Systems management.
Page 4 of 8
• Testing and maintaining the system:
Test and debug computer programs.
Test the computer system.
Enhance system.
• Personnel involved:
Analyst
System designer
Programmers
Systems management
Page 5 of 8
• In-house trainers.
• Other system users.
Software Reality
Page 6 of 8
impossible to predict
impossible to manage
• Finally.. the conclusion: Better Models are Needed!!!
Waterfall Model (document driven)
Page 7 of 8
Spiral (risk-driven)
Kendall, K.E., & Kendall, J.E. (2002). Systems analysis and design (6th ed.). New Jersey: Prentice Hall.
McConnell, S. (1996). Rapid development: Taming wild software schedules. Redmond, WA: Microsoft
Press.
Pfleeger, S.L. (2001). Software engineering: Theory and practice (2nd ed.). New Jersey: Prentice Hall.
Page 8 of 8