Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.

Similar presentations


Presentation on theme: "Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012."— Presentation transcript:

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.


Download ppt "Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012."

Similar presentations


Ads by Google