Download presentation
Presentation is loading. Please wait.
Published byAron Simmons Modified over 9 years ago
1
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012
2
Announcements (tentative) Course web page: http://www.cs.vt.edu/~shpark/VSU/CSCI487(685)- SoftwareDesignAndDevelopment http://www.cs.vt.edu/~shpark/VSU/CSCI487(685)- SoftwareDesignAndDevelopment Project teams should be formed by next week. Last time, course motivation. software crisis, software development tasks.
3
= = = =Template follows= = = = Short title (up to 40 characters): Long title: Contact person and their contact information: Project description (paragraph): Project deliverables: Expected impact of the project: Required skills of the team engaging in the project: URLs to follow for additional information: Type of project (web site, video, audio, computer security, data structure, game, database,...):
4
Discussion: Your Programming/System Development Experience What is the biggest project you’ve been a part of? How many lines of code was it (or other complexity measure) ? Did you sit and think and draw a few diagrams before you started to code? If it was a team project, how was your team experience?
5
Do We Need a Software Process Model? Designing simple software (such as homework assignments) has two steps 1 Analysis - we think! 2 Design - we code! However, in this class we consider software which is more complex In terms of size of development team, having actual customers, and lines of code.
6
The Two-Step Methodology Has Benefits All steps are creative Programmers are happy doing them, unlike beaurocratic activities Customers are happy to pay programmers to do this
7
But It Doesn’t Scale Bigger development team means task needs to split up, in a way that they can be easily composed to form the resulting system How do we ensure we know what the customer meant when they asked for feature X? How do we ensure we give them only what they pay for? What about cross-cutting concerns, such as security, accountability, performance, upgradeablily etc?
8
What is a Software Process Model? It determines the order of the stages involved in software development and evolution It provides the answer to the following two questions? What shall we do next? How long shall we continue to do it? First software process model: waterfall model
9
Software Process Models Waterfall Model Spiral Model Agile Software Development Model
10
Waterfall Model
11
Additional Steps Are Necessary System Requirements Software Requirements Analysis Software Architecture Design (Coding) Testing Maintenance
12
Good and Bad in the Waterfall Model? The Good Simple!!! Plenty of documentation, which is good (allows for management of project) In use since the 50s, and still in use for very large custom, built from scratch software projects. The Bad Testing is towards the end of the model, and it may expose fundamental problems, requiring rework Customer is not involved
13
Questions How can we do better? What model do you propose?
14
Evolutionary development Exploratory development Objective is to work with customers and to Evolutionary development evolve a final system from an initial outline specification. Should start with well-understood requirements and add new features as proposed by the customer. Throw-away prototyping Objective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed.
15
Evolutionary Development
16
Problems with Evolutionary development Problems Lack of process visibility; Systems are often poorly structured; Special skills (e.g., in languages for rapid prototyping) may be required. Applicability For small or medium-size interactive systems; For parts of large systems (e.g., the user interface); For short-lifetime systems.
17
The Spiral Model
18
The Spiral Model is Flexible A series of iterations where A system is prototyped Risk is considered Various documents are produced At the end of each iteration you consider what you’ve accomplished and what is left to be done.
19
Agile Software Development Models Some similarities to the spiral model Trades-off long-term planning for quick adaptability Proven to work on smaller software projects accomplished by small teams (<10 collocated developers)
20
Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
21
Twelve principles underlie the Agile Manifesto: 1 Customer satisfaction by rapid, continuous delivery of useful software 2 Working software is delivered frequently (weeks rather than months) 3 Working software is the principal measure of progress 4 Even late changes in requirements are welcomed 5 Close, daily cooperation between business people and developers 6 Face-to-face conversation is the best form of communication (co- location) 7 Projects are built around motivated individuals, who should be trusted 8 Continuous attention to technical excellence and good design 9 Simplicity 10 Self-organizing teams 11 Regular adaptation to changing circumstances
22
Individual Presentations Prepare quick (5-10 minute) presentations for next week on a particular agile method SCRUM Lean Software Development Extreme Programming (XP) Open Unified Process Getting Real etc. Use google (or you other favorite way to obtain information) to teach us and convince us why a particular model is good. Make slides, but not too many (generally, < 5) Aim for clarity!!!! Don’t put up anything in a slide that you do not understand.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.