cs 425 625 software engineering software processes l.
Skip this Video
Loading SlideShow in 5 Seconds..
CS 425/625 Software Engineering Software Processes PowerPoint Presentation
Download Presentation
CS 425/625 Software Engineering Software Processes

Loading in 2 Seconds...

play fullscreen
1 / 31

CS 425/625 Software Engineering Software Processes - PowerPoint PPT Presentation

  • Uploaded on

CS 425/625 Software Engineering Software Processes Based on Chapter 3 of the textbook [Somm00]: Ian Sommerville, Software Engineering, 6 th Ed., Addison-Wesley, 2000 and on Ch3 PowerPoint presentation from www.comp.lancs.ac.uk/computing/resources/IanS/SE6/Slides/index.html

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'CS 425/625 Software Engineering Software Processes' - Mercy

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cs 425 625 software engineering software processes
CS 425/625 Software EngineeringSoftware Processes

Based on Chapter 3 of the textbook [Somm00]:

Ian Sommerville, Software Engineering, 6th Ed., Addison-Wesley, 2000

and on Ch3 PowerPoint presentation from


September 3, 2003

  • Software Process Models
    • Waterfall model
    • Evolutionary development
    • Formal development
    • Reuse-oriented development
    • Incremental model
    • Spiral model
  • Software Process Activities
    • Specification
    • Design and implementation
    • Validation
    • Evolution
  • Automated Process Support
software process models
Software Process Models
  • 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:
    • Software specification
    • Software design and implementation
    • Software validation
    • Software evolution
software process models waterfall
Software Process Models: Waterfall..
  • The Waterfall model[Somm00, Fig 3.1]
software process models waterfall5
Software Process Models: .Waterfall.
  • Main characteristics:
    • Also called classic software life cycle or sequential model
    • Process activities (phases/stages) are clearly separated
    • After a number of iterations, phases of the life cycle (such as specification and design) are “frozen”
software process models waterfall6
Software Process Models: ..Waterfall
  • Advantages:
    • Organized approach, provides robust separation of phases
    • Reflects common engineering practice
  • Disadvantages:
    • Doesn’t cope well with changes required by the client
    • Development teams might wait for each other
    • A working version of the product is available only late
  • Applicability:
    • When requirements are well known and few changes are likely to be needed
    • Can be used also for parts of larger software systems
software process models evolutionary development
Software Process Models: Evolutionary Development…
  • Evolutionary Development model [Somm00, Fig 3.2]
software process models evolutionary development8
Software Process Models: .Evolutionary Development..
  • Main characteristics:
    • The phases of the software construction are interleaved
    • Feedback from the user is used throughout the entire process
    • The software product is refined through many versions
  • Types of evolutionary development:
    • Exploratory development
    • Throw-away prototyping
software process models evolutionary development9
Software Process Models: ..Evolutionary Development.
  • Advantages:
    • Deals constantly with changes
    • Provides quickly an initial version of the system
    • Involves all development teams
  • Disadvantages:
    • Quick fixes may be involved
    • “Invisible” process, not well-supported by documentation
    • The system’s structure can be corrupted by continuous change
software process models evolutionary development10
Software Process Models: …Evolutionary Development
  • Disadvantages [cont’d]:
    • Special tools and techniques may be necessary
    • The client may have the impression the first version is very close to the final product and thus be less patient
  • Applicability:
    • When requirements are not well understood
    • When the client and the developer agree on a “rapid prototype” that will be thrown away
    • Good for small and medium-sized software systems
software process models formal development
Software Process Models: Formal Development….
  • The Formal System Development model[Somm00, Fig 3.3]
software process models formal development12
Software Process Models: .Formal Development…
  • The Formal Transformation process [Somm00, Fig 3.4]
software process models formal development13
Software Process Models: ..Formal Development..
  • Main characteristics:
    • Approach based on formal, mathematics-based techniques for specification, refinement, and verification
    • A formal specification is produced, than transformed using mathematical methods into the software product’s design and code; formal verification is also used
software process models formal development14
Software Process Models: ...Formal Development.
  • Advantages:
    • Transformations between stages are sufficiently close to ensure better verification and less expensive proofs
    • Errors, omissions, ambiguities, and contradictions in specifications are more completely detected
    • The final product is more likely to satisfy the requirements
    • The product’s reliability is increased
software process models formal development15
Software Process Models: ….Formal Development
  • Disadvantages:
    • Requires knowledge of and experience with formal methods
    • Are resource consuming
  • Applicability:
    • Safety- and security-critical systems
    • Parts of the systems that must be thoroughly verified
software process models reuse oriented development
Software Process Models: Reuse-Oriented Development…
  • The Reuse-oriented Development model[Somm00, Fig 3.5]
software process models reuse oriented
Software Process Models: .Reuse-Oriented..
  • Main characteristics:
    • Makes intensive use of existing reusable components
    • The focus is on integrating the components rather than on creating them from the scratch
software process models reuse oriented18
Software Process Models: ..Reuse-Oriented.
  • Advantages:
    • Reduces considerably the software to be developed “in-house”
    • Allows faster delivery
    • In principle, more reliable systems, due to using previously tested components
software process models reuse oriented19
Software Process Models: …Reuse-Oriented
  • Disadvantages:
    • Compromises in requirements are needed
    • Less control over the system’s evolution
  • Applicability:
    • When there is a pool of existing components that could satisfy the requirements of the new product
software process models incremental development
Software Process Models: Incremental Development…
  • The Incremental Model [Somm00, Fig 3.6]
software process models incremental
Software Process Models: .Incremental..
  • Main characteristics:
    • Hybrid model that combines elements of the waterfall and evolutionary paradigms
    • The specification, design, and implementation phases are broken in smaller increments
software process models incremental22
Software Process Models: ..Incremental.
  • Advantages:
    • Provides better support for process iteration
    • Reduces rework in the software construction process
    • Some decisions on requirements may be delayed
    • Allows early delivery of parts of the system
    • Supports easier integration of sub-systems
    • Lower risk of project failure
    • Delivery priorities can be more easily set
software process models incremental23
Software Process Models: ...Incremental
  • Disadvantages:
    • Increments need be relatively small
    • Mapping requirements to increments may not be easy
    • Common software facilities may be difficult to identify
  • Applicability:
    • When it is possible to deliver the system “part-by-part”
software process models spiral model
Software Process Models: Spiral Model..
  • Boehm’s Spiral Model[Somm00, Fig 3.7]
software process models spiral model25
Software Process Models: .Spiral Model.
  • Main characteristics:
    • Also a hybrid model that support process iteration
    • The process is represented as a spiral, each loop in the spiral representing a process phase
    • Four sectors per loop: objective setting, risk assessment and reduction, development and validation, planning
    • Risk is explicitly taken into consideration
software process models spiral model26
Software Process Models: ..Spiral Model
  • Advantages:
    • Risk reduction mechanisms are in place
    • Supports iteration and reflects real-world practices
    • Systematic approach
  • Disadvantages:
    • Requires expertise in risk evaluation and reduction
    • Complex, relatively difficult to follow strictly
    • Applicable only to large systems
  • Applicability:
    • Internal development of large systems
process activities specification
Process Activities: Specification
  • Requirements engineering [Somm00, Fig 3.8]
process activities design implementation
Process Activities: Design & Implementation
  • A general model for design [Somm00, Fig 3.9]
process activities testing
Process Activities: Testing
  • The debugging process [Somm00, Fig 3.10]
  • The testing process [Somm00, Fig. 3.11]
process activities evolution
Process Activities: Evolution
  • System evolution[Somm00, Fig 3.13]
automated process support
Automated Process Support
  • Classification of CASE technology [Somm00, Fig 3.16]