Skip to content

Lecture 2

Software Process

Software Process

  • Life cycle: the process involves the building of a product.
  • For a software, its life cycle terminates when the provider stops support.

Software Process Model (Development Patter)

Waterfall Model

  • A stepwise refinement of requirement.

  • Suitable when the requirement is well-determined and understood.

  • Drawback:

    • inflexible partitioning of project
    • difficult to update
    • It describes a process of stepwise refinement of the requirement

waterfall model

Evolutionary Development

  • Develop software form a initial implementation, then refine (add new features) it based on user's response.
  • Evolutionary development involves Exploratory development. (Exploratory \(\in\) Evolutionary)

    • Exploratory development starts with a well-understood requirement
    • The system evolves by adding new features
  • Drawbacks:

    • Lack of process visibility
    • Sometimes poorly structured
    • Not suitable in safety critical projects

Evolutionary Development

Agile and Scrum

  • Lightweight approach to software development
  • Test driven development
  • Pair programming
  • Scrum: Incremental Development
    • Development and delivery is broken down into increments (sprints) that gives part of the functionality
    • High priority requirement are included in early increments
    • once the development of an increment is started, the requirements are frozen through requirements, so that later increment can continue to evolve.

Advantage

  • Customers' value can be delivered with each increment, so system functionality is avaiable earlier.
  • early increments act as a prototype to help elicit requirements for later increment.
  • lower risk of overall project failure
  • the highest priority functions tend to receive more testing.

Summary

  • iterative process models describe the software process as a cycle of activities
  • generic process models describe the organisation of software processes
  • general activities are: specific specification design and implementation, validation and evolution
  • software process at the activities involved in producing and evolving a software system there were represented in a software process model