












Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of software development, including common problems, the impact of software failures, and various software development models such as waterfall, unified, and agile (extreme programming). It also discusses the importance of software engineering and the challenges of creating and maintaining software, especially as it becomes more complex and integrated into our infrastructure.
Typology: Study notes
1 / 20
This page cannot be seen from the preview
Don't miss anything!













Overview Software Development Problems Impact of Software Failures Why is Software So Difficult? Software Size Software Life Cycle Waterfall Model Unified Software Life Cycle Model Agile Software Development Model Extreme Programming (XP)
Software Development Problems
Cost per line of code increasing(while hardware costs drop)
Software Projects Fail
Jan 13, 2005, LA Times “A new FBI computer program designed to helpagents share information to ward off terroristattacks may have to be scrapped, forcing a furtherdelay in a four-year, half-billion-dollar overhaul ofits antiquated computer system… Sources saidabout $100 million would be essentially lost if theFBI were to scrap the software…”
Impact of Software Failures Increasing
Software in cars, appliances Business transactions moving online
Failures can propagate through internet Internet worms Failures can be exploited by others Viruses Spyware
Why Is Software So Difficult?
Software becoming much larger Millions of line of code Hundreds of developers Many more interacting pieces
Software stays in use longer Features & requirements change Data sets increase Can outlast its creators
SLOC
Software Size
Can keep track of details in head Last for short periods What students learn in school
Much more complex Commonly found in real world Why we try to teach you Software engineering Object-oriented programming
Components of Software Life Cycle
“Waterfall Model” of Life Cycle
Proceed fromone step to next Result of stepflow into next
May need toreturn toprevious step Steps may bemore integrated Steps may occurat same time
Unified Software Life Cycle Model Iterative development (iteratively add incrementalimprovements) Takes advantage of what has been learned duringearlier versions of the system Development divided into phases (iterations)
Inception
Elaboration
Construction
Transition During each phase Multiple iterations of software development Development treated as mini-waterfalls Emphasis gradually shifts from specification to testing
Unified Software Life Cycle Model
Extreme Programming (XP) One of the best-know examples of an Agile Process Appropriate for environments with: Small teams Rapidly-changing requirements
Extreme Programming (XP) Some of the principles XP is based on are: Small Releases