130 likes | 677 Views
Explore the stages and models of software life cycle, from inception to end-of-life, understanding how each phase contributes to effective software development. Learn about the challenges and causes of software obsolescence.
E N D
Let's Define Some Terms • Software Life Cycle • Software Life Cycle [Model] • Software Development Life Cycle [Model] • Software Process • Software Process Model • aka: Defined Software Process
What is a Software Lifecycle? • Stages of existence of software. • Each stage represents a different state of software. • Can be from developer's view or customer's view.
Real World Software Lifecycle • idea. • decision to implement. • initial prototype. • create a fake business case to justify writing it. • reimplement in greater detail • add requirements (because its too hard to remember what we've doing) • software + architecture design • working but buggy software • software initial release for use • iterative fix bugs and add new features
What is a Life Cycle Model • A model of the phases that software goes through • Serves as a guide for management of software development • Models omit some real-life complexity and detail
Inception of idea vision business case Analysis Design Implementation Acceptance Deployment transition training & education Typical Lifecycle Model • Maintenance and Support • End of Support • Retirement • end of useful life • transition or archiving GREEN = part of the process, not life cycle
Is Testing Part of the Software Lifecycle? • Many people say it is. • Or, is it an activity that is part of many steps in the development process.
What We Want Idea Software source: Bruegge, Object-oriented Software Engineering
Requirements Analysis Design Implementation Testing Delivery and Installation How it should go: Our plan of attack source: Bruegge, Object-oriented Software Engineering
Why the LC Model Doesn't Work • Requirements aren't complete or accurate. • even the client doesn't know precisely • Analysis and design aren't accurate. • communication issues • model not precise • Difficult to manage change... • technology changes • new requirements emerge • resource limitations • Software consists of many systems
Why End of Software Life? • Software doesn't really "wear out". • Some products reach "end of support" even though people are still using them. • So what causes its end-of-life?
Causes of Software Obsolescence • Newer product is superior • hardware changes • functionality is no longer needed
Causes of Software "wear out" • Code becomes too difficult to maintain or modify • No one understands the source code (key developers leave w/o documentation) • Cost of maintenance is more than customers' willingness to pay • related to first item • shrinking customer base