Beruflich Dokumente
Kultur Dokumente
CSC 331/631
V. P. Pauca
Spring 2003 1
Wake Forest University Computer Science Department
Outline
• Software Development Models
– Waterfall model
– V model
– Prototyping model
– Operational specification model
– Transformational model
– Phased development models
– Spiral model
• Summary
• References
Spring 2003 2
Wake Forest University Computer Science Department
Coding
System
Testing
• Basis for software development in DoD contracts
Acceptance
Testing
Operation
& Maintenance
Spring 2003 3
Wake Forest University Computer Science Department
Spring 2003 4
Wake Forest University Computer Science Department
Acceptance Program
Testing Design
System
Testing Coding
Unit & Inte-
gration Testing
• Thrashing from one activity to the next to gather knowledge about the problem and
how the proposed solution addresses it
• Control thrashing by including activities to enhance understanding
– Prototyping to examine specific aspects of the proposed system
Spring 2003 5
Wake Forest University Computer Science Department
Acceptance
Testing
System
Design
System
Testing
Program
Design Unit & Inte-
gration Testing
Coding
• Testing activities (right) are related to analysis and design (left)
– Verification: Unit & integration testing used for verification of program design
– Validation: Acceptance testing is conducted by customer for validation of requirements
• Iteration is explicitly specified
– If problems arise during verification or validation (right), stages on left side can be re-
executed to fix and improve requirements, design, and code
• Model focused on activity and correctness
Spring 2003 6
Wake Forest University Computer Science Department
Prototyping Model
List of List of List of
Revisions Revisions Revisions
Revise User/Customer
Prototype Review
System Deliver
Requirements System
Transformed
Operational
Specification Test
Specification
(implementation-
(problem-oriented)
oriented)
System Deliver
Requirements System
• Allows early examination of requirements and their implications
• System requirements are evaluated or executed to demonstrate and analyze the
behavior of the system
• Allows system functionality and design to be merged
– In the waterfall model, functionality and design are clearly separated
Spring 2003 8
Wake Forest University Computer Science Department
System Deliver
Requirements System
(informal)
• Attempts to reduce opportunity for error by eliminating major development steps
• Applies series of transformations using automated support to change a
specification into a deliverable
– Data representation, compiling, optimizing
• Sequence of transformations and associated decisions kept carefully
• Relies heavily in availability of formal specification methods
Spring 2003 9
Wake Forest University Computer Science Department
Time
users
Production systems
Spring 2003 10
Wake Forest University Computer Science Department
Co
Alternatives 2 Al
Risk analysis 1 Prototype 2
ns
tern
tr a
ativ
Budget 2 Budget 1 es 1
int
Budget 4 Budget 3 Prototype 1
s1
Requirements, Concept of re Detailed
life cycle plan separation ft wa ents
Development So irem design
u Software
plan Validated req design
Integration requirements Code
and test plan Validated,
Verified design Unit test
System
Acceptance test
test
Plan Develop and Test
Spring 2003 11
Wake Forest University Computer Science Department
Spiral Model
• Model focused in managing, controlling, and minimizing risk
• It is like iterative development in some sense
– With each iteration, risk analysis weights alternatives in light of
requirements and constraints
– Prototyping verifies feasibility or desirability before a particular
alternative is chosen
Spring 2003 12
Wake Forest University Computer Science Department
Summary
• The waterfall model is the traditional document-driven approach
• Other models proposed that deal with change, uncertainty and risk in more explicit
ways
• Process modeling
– Describe software development processes as programs
• Consecutive activities, input and output
– Describe process in terms of states and transitions
• UML diagrams
– Describe process using Petri nets
• Places, markings, and transitions
• Allow nondeterminism and parallelism
• Software development models help coordinate collaboration as system is designed
and implemented
• The models allow focusing in particular aspects of development process, e.g.
organizational, functional, behavioral, and other aspects
Spring 2003 13
Wake Forest University Computer Science Department
References
• H. Van Vliet. Software Engineering Principles and Practice. Wiley, West Sussex,
UK, 2002
• S. L. Pfleeger. Software Engineering Theory and Practice. Second Edition. Prentice
Hall. Upper Saddle River, NJ, 2001
• W.W. Royce. Managing the development of large software systems: concepts and
techniques. In Proceedings IEEE WESCON, pp. 1-9. IEEE, 1970
• German Ministry of Defense. V-model: software lifecycle process model. General
Preprint No. 250, 1992
• P. Zave. The operational versus the conventional approach to software
development. Comm. of the ACM, 27 (2), pp. 104-118, 1984
• R. Balzer. Transformational implementation: an example. IEEE Trans. on Software
Engineering, SE 7 (1), pp. 3-14, 1981
• T. Gilb. Principles of Software Engineering Management. Addison-Wesley, 1988
• B. W. Boehm. A spiral model of software development and enhancement. IEEE
Computer, 21 (5), pp. 61-72, 1988
Spring 2003 14