CS 425625 Software Engineering Software Processes Based on
CS 425/625 Software Engineering Software Processes Based on Chapter 3 of the textbook [Somm 00]: Ian Sommerville, Software Engineering, 6 th Ed. , Addison-Wesley, 2000 and on Ch 3 Power. Point presentation from www. comp. lancs. ac. uk/computing/resources/Ian. S/SE 6/Slides/index. html September 3, 2003 1
Outline n Software Process Models u Waterfall model u Evolutionary development u Formal development u Reuse-oriented development u Incremental model u Spiral model n Software Process Activities u Specification u Design and implementation u Validation u Evolution n 2 Automated Process Support
Software Process Models n n n Software process = organized set of activities aimed at building a software system Software process model = an abstract representation of a software process Fundamental software process activities: u Software specification u Software design and implementation u Software validation u Software evolution 3
Software Process Models: Waterfall. . n 4 The Waterfall model [Somm 00, Fig 3. 1]
Software Process Models: . Waterfall. n Main characteristics: u Also called classic software life cycle or sequential model u Process activities (phases/stages) are clearly separated u After a number of iterations, phases of the life cycle (such as specification and design) are “frozen” 5
Software Process Models: . . Waterfall n Advantages: u Organized approach, provides robust separation of phases u Reflects common engineering practice n Disadvantages: u Doesn’t cope well with changes required by the client u Development teams might wait for each other u A working version of the product is available only late n Applicability: u When requirements are well known and few changes are likely to be needed u Can be used also for parts of larger software systems 6
Software Process Models: Evolutionary Development… n 7 Evolutionary Development model [Somm 00, Fig 3. 2]
Software Process Models: . Evolutionary Development. . n Main characteristics: u The phases of the software construction are interleaved u Feedback from the user is used throughout the entire process u The software product is refined through many versions n Types of evolutionary development: u Exploratory development u Throw-away prototyping 8
Software Process Models: . . Evolutionary Development. n Advantages: u Deals constantly with changes u Provides quickly an initial version of the system u Involves all development teams n Disadvantages: u Quick fixes may be involved u “Invisible” process, not well-supported by documentation u The system’s structure can be corrupted by continuous change 9
Software Process Models: …Evolutionary Development n Disadvantages [cont’d]: u Special tools and techniques may be necessary u The client may have the impression the first version is very close to the final product and thus be less patient n Applicability: u When requirements are not well understood u When the client and the developer agree on a “rapid prototype” that will be thrown away u Good for small and medium-sized software systems 10
Software Process Models: Formal Development…. n 11 The Formal System Development model [Somm 00, Fig 3. 3]
Software Process Models: . Formal Development… n 12 The Formal Transformation process [Somm 00, Fig 3. 4]
Software Process Models: . . Formal Development. . n Main characteristics: u Approach based on formal, mathematics-based techniques for specification, refinement, and verification u A formal specification is produced, than transformed using mathematical methods into the software product’s design and code; formal verification is also used 13
Software Process Models: . . . Formal Development. n Advantages: u Transformations between stages are sufficiently close to ensure better verification and less expensive proofs u Errors, omissions, ambiguities, and contradictions in specifications are more completely detected u The final product is more likely to satisfy the requirements u The product’s reliability is increased 14
Software Process Models: …. Formal Development n Disadvantages: u Requires knowledge of and experience with formal methods u Are resource consuming n Applicability: u Safety- and security-critical systems u Parts of the systems that must be thoroughly verified 15
Software Process Models: Reuse-Oriented Development… n 16 The Reuse-oriented Development model [Somm 00, Fig 3. 5]
Software Process Models: . Reuse-Oriented. . n Main characteristics: u Makes intensive use of existing reusable components u The focus is on integrating the components rather than on creating them from the scratch 17
Software Process Models: . . Reuse-Oriented. n Advantages: u Reduces considerably the software to be developed “in-house” u Allows faster delivery u In principle, more reliable systems, due to using previously tested components 18
Software Process Models: …Reuse-Oriented n Disadvantages: u Compromises in requirements are needed u Less control over the system’s evolution n Applicability: u When there is a pool of existing components that could satisfy the requirements of the new product 19
Software Process Models: Incremental Development… n 20 The Incremental Model [Somm 00, Fig 3. 6]
Software Process Models: . Incremental. . n Main characteristics: u Hybrid model that combines elements of the waterfall and evolutionary paradigms u The specification, design, and implementation phases are broken in smaller increments 21
Software Process Models: . . Incremental. n Advantages: u Provides better support for process iteration u Reduces rework in the software construction process u Some decisions on requirements may be delayed u Allows early delivery of parts of the system u Supports easier integration of sub-systems u Lower risk of project failure u Delivery priorities can be more easily set 22
Software Process Models: . . . Incremental n n 23 Disadvantages: u Increments need be relatively small u Mapping requirements to increments may not be easy u Common software facilities may be difficult to identify Applicability: u When it is possible to deliver the system “part-bypart”
Software Process Models: Spiral Model. . n 24 Boehm’s Spiral Model [Somm 00, Fig 3. 7]
Software Process Models: . Spiral Model. n Main characteristics: u Also a hybrid model that support process iteration u The process is represented as a spiral, each loop in the spiral representing a process phase u Four sectors per loop: objective setting, risk assessment and reduction, development and validation, planning u Risk is explicitly taken into consideration 25
Software Process Models: . . Spiral Model n Advantages: u Risk reduction mechanisms are in place u Supports iteration and reflects real-world practices u Systematic approach n Disadvantages: u Requires expertise in risk evaluation and reduction u Complex, relatively difficult to follow strictly u Applicable only to large systems n Applicability: u Internal 26 development of large systems
Process Activities: Specification n 27 Requirements engineering [Somm 00, Fig 3. 8]
Process Activities: Design & Implementation n 28 A general model for design [Somm 00, Fig 3. 9]
Process Activities: Testing 29 n The debugging process [Somm 00, Fig 3. 10] n The testing process [Somm 00, Fig. 3. 11]
Process Activities: Evolution n 30 System evolution [Somm 00, Fig 3. 13]
Automated Process Support n 31 Classification of CASE technology [Somm 00, Fig 3. 16]
- Slides: 31