Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CS 425/625 Software Engineering   Software Processes <ul><li>Based on Chapter 4 of the textbook [SE-8]  </li></ul><ul><li>...
Outline <ul><li>Software Process Models </li></ul><ul><ul><li>Waterfall model </li></ul></ul><ul><ul><li>Evolutionary deve...
Software Process Models <ul><li>Software process  = organized set of activities aimed at building a software system </li><...
Software Process Models: Waterfall.. <ul><li>The Waterfall model   [SE-8, Fig 4.1] </li></ul>
Software Process Models: .Waterfall. <ul><li>Main characteristics: </li></ul><ul><ul><li>Also called  classic software lif...
Software Process Models: ..Waterfall <ul><li>Advantages:  </li></ul><ul><ul><li>Organized approach, provides robust separa...
Software Process Models:  Evolutionary Development… <ul><li>Evolutionary Development model [SE-8, Fig 4.2] </li></ul>
Software Process Models:  .Evolutionary Development.. <ul><li>Main characteristics: </li></ul><ul><ul><li>The phases of th...
Software Process Models:  ..Evolutionary Development. <ul><li>Advantages: </li></ul><ul><ul><li>Deals constantly with chan...
Software Process Models:  …Evolutionary Development <ul><li>Disadvantages [cont’d]: </li></ul><ul><ul><li>Special tools an...
Software Process Models:  Component-based Software Engineering… <ul><li>CBSE process model   [SE-8, Fig 4.3] </li></ul>
Software Process Models:  .Component-based Software Engineering.. <ul><li>Main characteristics: </li></ul><ul><ul><li>Make...
Software Process Models:  ..Component-based Software Engineering. <ul><li>Advantages: </li></ul><ul><ul><li>Reduces consid...
Software Process Models:  …Component-based Software Engineering <ul><li>Disadvantages: </li></ul><ul><ul><li>Compromises i...
Software Process Models:  Incremental Development… <ul><li>The Incremental model  [SE-8, Fig 4.4] </li></ul>
Software Process Models: .Incremental.. <ul><li>Main characteristics: </li></ul><ul><ul><li>Hybrid model that combines ele...
Software Process Models: ..Incremental. <ul><li>Advantages: </li></ul><ul><ul><li>Provides better support for process iter...
Software Process Models: ...Incremental <ul><li>Disadvantages: </li></ul><ul><ul><li>Increments need be relatively small <...
Software Process Models: Spiral Model.. <ul><li>Boehm’s Spiral Model   [SE-8, Fig 4.5] </li></ul>
.Software Process Models: Spiral Model. <ul><li>Main characteristics: </li></ul><ul><ul><li>Also a hybrid model that suppo...
Software Process Models: ..Spiral Model <ul><li>Advantages: </li></ul><ul><ul><li>Risk reduction mechanisms are in place <...
Process Activities: Specification <ul><li>Requirements engineering  [SE-8, Fig. 4.6] </li></ul>
Process Activities: Design & Implementation <ul><li>A general model for design [SE-8, Fig 4.7] </li></ul>
Process Activities: Testing.. <ul><li>The debugging process [SE-8, Fig 4.8] </li></ul>
Process Activities: .Testing. <ul><li>The testing process [SE-8, Fig 4.9] </li></ul>
Process Activities: ..Testing <ul><li>Testing phases in the SE process [SE-8, Fig. 4.10] </li></ul>
Process Activities: Evolution <ul><li>System evolution   [SE-8, Fig 4.11] </li></ul>
The Rational Unified Process. <ul><li>RUP phases   [SE-8, Fig 4.12] </li></ul>
. The Rational Unified Process <ul><li>RUP workflows   [SE-8, Fig 4.13] </li></ul>
CASE <ul><li>Classification of CASE technology  [SE-7, Fig 4.14] </li></ul>
Upcoming SlideShare
Loading in …5
×

UML

1,487 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

UML

  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 http://www.software-engin.com/ </li></ul><ul><li>January 31, 2011 </li></ul><ul><li>Email id:-ranjeetrdh12@gmail.com </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>

×