Adv Disadv
Upcoming SlideShare
Loading in...5

Adv Disadv






Total Views
Views on SlideShare
Embed Views



2 Embeds 2 1 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Adv Disadv Adv Disadv Presentation Transcript

  • CS 425/625 Software Engineering Software Processes
    • Based on Chapter 4 of the textbook [SE-8]
    • Ian Sommerville, Software Engineering, 8 th Ed., Addison-Wesley, 2006 and on Ch4 PPT presentation from /
    • September 10, 2007
  • Outline
    • Software Process Models
      • Waterfall model
      • Evolutionary development
      • Component-based software engineering
      • Incremental model
      • Spiral model
    • Software Process Activities
      • Specification
      • Design and implementation
      • Validation
      • Evolution
    • The Rational Unified Process
    • Computer-Aided Software Engineering
  • 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
      • Software implementation
      • Software validation
      • Software evolution
  • Software Process Models: Waterfall..
    • The Waterfall model [SE-8, Fig 4.1]
  • 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: ..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…
    • Evolutionary Development model [SE-8, Fig 4.2]
  • 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 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 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: Component-based Software Engineering…
    • CBSE process model [SE-8, Fig 4.3]
  • Software Process Models: .Component-based Software Engineering..
    • 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: ..Component-based Software Engineering.
    • 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: …Component-based Software Engineering
    • 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
      • Emerging trend: integration of web services from a range of suppliers
  • Software Process Models: Incremental Development…
    • The Incremental model [SE-8, Fig 4.4]
  • 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: ..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: ...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..
    • Boehm’s Spiral Model [SE-8, Fig 4.5]
  • .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 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
    • Requirements engineering [SE-8, Fig. 4.6]
  • Process Activities: Design & Implementation
    • A general model for design [SE-8, Fig 4.7]
  • Process Activities: Testing..
    • The debugging process [SE-8, Fig 4.8]
  • Process Activities: .Testing.
    • The testing process [SE-8, Fig 4.9]
  • Process Activities: ..Testing
    • Testing phases in the SE process [SE-8, Fig. 4.10]
  • Process Activities: Evolution
    • System evolution [SE-8, Fig 4.11]
  • The Rational Unified Process.
    • RUP phases [SE-8, Fig 4.12]
  • . The Rational Unified Process
    • RUP workflows [SE-8, Fig 4.13]
  • CASE
    • Classification of CASE technology [SE-7, Fig 4.14]