Adv Disadv


Published on

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Adv Disadv

  1. 1. CS 425/625 Software Engineering Software Processes <ul><li>Based on Chapter 4 of the textbook [SE-8] </li></ul><ul><li>Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley, 2006 and on Ch4 PPT presentation from / </li></ul><ul><li>September 10, 2007 </li></ul>
  2. 2. Outline <ul><li>Software Process Models </li></ul><ul><ul><li>Waterfall model </li></ul></ul><ul><ul><li>Evolutionary development </li></ul></ul><ul><ul><li>Component-based software engineering </li></ul></ul><ul><ul><li>Incremental model </li></ul></ul><ul><ul><li>Spiral model </li></ul></ul><ul><li>Software Process Activities </li></ul><ul><ul><li>Specification </li></ul></ul><ul><ul><li>Design and implementation </li></ul></ul><ul><ul><li>Validation </li></ul></ul><ul><ul><li>Evolution </li></ul></ul><ul><li>The Rational Unified Process </li></ul><ul><li>Computer-Aided Software Engineering </li></ul>
  3. 3. Software Process Models <ul><li>Software process = organized set of activities aimed at building a software system </li></ul><ul><li>Software process model = an abstract representation of a software process </li></ul><ul><li>Fundamental software process activities: </li></ul><ul><ul><li>Software specification </li></ul></ul><ul><ul><li>Software design </li></ul></ul><ul><ul><li>Software implementation </li></ul></ul><ul><ul><li>Software validation </li></ul></ul><ul><ul><li>Software evolution </li></ul></ul>
  4. 4. Software Process Models: Waterfall.. <ul><li>The Waterfall model [SE-8, Fig 4.1] </li></ul>
  5. 5. Software Process Models: .Waterfall. <ul><li>Main characteristics: </li></ul><ul><ul><li>Also called classic software life cycle or sequential model </li></ul></ul><ul><ul><li>Process activities (phases/stages) are clearly separated </li></ul></ul><ul><ul><li>After a number of iterations, phases of the life cycle (such as specification and design) are “frozen” </li></ul></ul>
  6. 6. Software Process Models: ..Waterfall <ul><li>Advantages: </li></ul><ul><ul><li>Organized approach, provides robust separation of phases </li></ul></ul><ul><ul><li>Reflects common engineering practice </li></ul></ul><ul><li>Disadvantages: </li></ul><ul><ul><li>Doesn’t cope well with changes required by the client </li></ul></ul><ul><ul><li>Development teams might wait for each other </li></ul></ul><ul><ul><li>A working version of the product is available only late </li></ul></ul><ul><li>Applicability: </li></ul><ul><ul><li>When requirements are well known and few changes are likely to be needed </li></ul></ul><ul><ul><li>Can be used also for parts of larger software systems </li></ul></ul>
  7. 7. Software Process Models: Evolutionary Development… <ul><li>Evolutionary Development model [SE-8, Fig 4.2] </li></ul>
  8. 8. Software Process Models: .Evolutionary Development.. <ul><li>Main characteristics: </li></ul><ul><ul><li>The phases of the software construction are interleaved </li></ul></ul><ul><ul><li>Feedback from the user is used throughout the entire process </li></ul></ul><ul><ul><li>The software product is refined through many versions </li></ul></ul><ul><li>Types of evolutionary development: </li></ul><ul><ul><li>Exploratory development </li></ul></ul><ul><ul><li>Throw-away prototyping </li></ul></ul>
  9. 9. Software Process Models: ..Evolutionary Development. <ul><li>Advantages: </li></ul><ul><ul><li>Deals constantly with changes </li></ul></ul><ul><ul><li>Provides quickly an initial version of the system </li></ul></ul><ul><ul><li>Involves all development teams </li></ul></ul><ul><li>Disadvantages: </li></ul><ul><ul><li>Quick fixes may be involved </li></ul></ul><ul><ul><li>“ Invisible” process, not well-supported by documentation </li></ul></ul><ul><ul><li>The system’s structure can be corrupted by continuous change </li></ul></ul>
  10. 10. Software Process Models: …Evolutionary Development <ul><li>Disadvantages [cont’d]: </li></ul><ul><ul><li>Special tools and techniques may be necessary </li></ul></ul><ul><ul><li>The client may have the impression the first version is very close to the final product and thus be less patient </li></ul></ul><ul><li>Applicability: </li></ul><ul><ul><li>When requirements are not well understood </li></ul></ul><ul><ul><li>When the client and the developer agree on a “rapid prototype” that will be thrown away </li></ul></ul><ul><ul><li>Good for small and medium-sized software systems </li></ul></ul>
  11. 11. Software Process Models: Component-based Software Engineering… <ul><li>CBSE process model [SE-8, Fig 4.3] </li></ul>
  12. 12. Software Process Models: .Component-based Software Engineering.. <ul><li>Main characteristics: </li></ul><ul><ul><li>Makes intensive use of existing reusable components </li></ul></ul><ul><ul><li>The focus is on integrating the components rather than on creating them from the scratch </li></ul></ul>
  13. 13. Software Process Models: ..Component-based Software Engineering. <ul><li>Advantages: </li></ul><ul><ul><li>Reduces considerably the software to be developed “in-house” </li></ul></ul><ul><ul><li>Allows faster delivery </li></ul></ul><ul><ul><li>In principle, more reliable systems, due to using previously tested components </li></ul></ul>
  14. 14. Software Process Models: …Component-based Software Engineering <ul><li>Disadvantages: </li></ul><ul><ul><li>Compromises in requirements are needed </li></ul></ul><ul><ul><li>Less control over the system’s evolution </li></ul></ul><ul><li>Applicability: </li></ul><ul><ul><li>When there is a pool of existing components that could satisfy the requirements of the new product </li></ul></ul><ul><ul><li>Emerging trend: integration of web services from a range of suppliers </li></ul></ul>
  15. 15. Software Process Models: Incremental Development… <ul><li>The Incremental model [SE-8, Fig 4.4] </li></ul>
  16. 16. Software Process Models: .Incremental.. <ul><li>Main characteristics: </li></ul><ul><ul><li>Hybrid model that combines elements of the waterfall and evolutionary paradigms </li></ul></ul><ul><ul><li>The specification, design, and implementation phases are broken in smaller increments </li></ul></ul>
  17. 17. Software Process Models: ..Incremental. <ul><li>Advantages: </li></ul><ul><ul><li>Provides better support for process iteration </li></ul></ul><ul><ul><li>Reduces rework in the software construction process </li></ul></ul><ul><ul><li>Some decisions on requirements may be delayed </li></ul></ul><ul><ul><li>Allows early delivery of parts of the system </li></ul></ul><ul><ul><li>Supports easier integration of sub-systems </li></ul></ul><ul><ul><li>Lower risk of project failure </li></ul></ul><ul><ul><li>Delivery priorities can be more easily set </li></ul></ul>
  18. 18. Software Process Models: ...Incremental <ul><li>Disadvantages: </li></ul><ul><ul><li>Increments need be relatively small </li></ul></ul><ul><ul><li>Mapping requirements to increments may not be easy </li></ul></ul><ul><ul><li>Common software facilities may be difficult to identify </li></ul></ul><ul><li>Applicability: </li></ul><ul><ul><li>When it is possible to deliver the system “part-by-part” </li></ul></ul>
  19. 19. Software Process Models: Spiral Model.. <ul><li>Boehm’s Spiral Model [SE-8, Fig 4.5] </li></ul>
  20. 20. .Software Process Models: Spiral Model. <ul><li>Main characteristics: </li></ul><ul><ul><li>Also a hybrid model that support process iteration </li></ul></ul><ul><ul><li>The process is represented as a spiral, each loop in the spiral representing a process phase </li></ul></ul><ul><ul><li>Four sectors per loop: objective setting, risk assessment and reduction, development and validation, planning </li></ul></ul><ul><ul><li>Risk is explicitly taken into consideration </li></ul></ul>
  21. 21. Software Process Models: ..Spiral Model <ul><li>Advantages: </li></ul><ul><ul><li>Risk reduction mechanisms are in place </li></ul></ul><ul><ul><li>Supports iteration and reflects real-world practices </li></ul></ul><ul><ul><li>Systematic approach </li></ul></ul><ul><li>Disadvantages: </li></ul><ul><ul><li>Requires expertise in risk evaluation and reduction </li></ul></ul><ul><ul><li>Complex, relatively difficult to follow strictly </li></ul></ul><ul><ul><li>Applicable only to large systems </li></ul></ul><ul><li>Applicability: </li></ul><ul><ul><li>Internal development of large systems </li></ul></ul>
  22. 22. Process Activities: Specification <ul><li>Requirements engineering [SE-8, Fig. 4.6] </li></ul>
  23. 23. Process Activities: Design & Implementation <ul><li>A general model for design [SE-8, Fig 4.7] </li></ul>
  24. 24. Process Activities: Testing.. <ul><li>The debugging process [SE-8, Fig 4.8] </li></ul>
  25. 25. Process Activities: .Testing. <ul><li>The testing process [SE-8, Fig 4.9] </li></ul>
  26. 26. Process Activities: ..Testing <ul><li>Testing phases in the SE process [SE-8, Fig. 4.10] </li></ul>
  27. 27. Process Activities: Evolution <ul><li>System evolution [SE-8, Fig 4.11] </li></ul>
  28. 28. The Rational Unified Process. <ul><li>RUP phases [SE-8, Fig 4.12] </li></ul>
  29. 29. . The Rational Unified Process <ul><li>RUP workflows [SE-8, Fig 4.13] </li></ul>
  30. 30. CASE <ul><li>Classification of CASE technology [SE-7, Fig 4.14] </li></ul>