Quick Exercise 4: Software Process Models amd Activities

What are the fundamental activities that are common to all software processes?

  • Software specification
  • Software design and implementation
  • Software validation
  • Software evolution

List 3 generic process models that are used in software engineering?

  • The waterfall model
  • Incremental Development
  • Integration and Configuration

Why are iterations usually limited when the waterfall model is used?

The waterfall model is a document-driven model with documents produced at the end of each phase. Because of the cost of producing and approving documents, iterations and costly and involve significant rework. Hence they are limited

What are the three benefits of incremental development, compared to the waterfall model?

  • The cost of accommodating changes to customer requirements is reduced.
  • It is easier to get customer feedback on development work that has been done.
  • More rapid delivery and deployment of useful software to the customer is possible.

What are the development stages in integration and configuration?

  • Discover and analyse reusable software systems or components
  • Requirements modification
  • System design with reuse
  • Development and integration

What are the principal requirements engineering activities?

  • Requirements elicitation and analysis
  • Requirements specification
  • Requirements validation

Why is it increasingly irrelevant to distinguish between software development and evolution?

  • Few software systems are now completely new and a more realistic model of software development is of an iterative process that lasts for the lifetime of the software.

What are the advantages of using incremental development and delivery?

  • Early delivery of critical functionality to the customer
  • Early increments serve as prototypes to explore requirements
  • Lower risk of overall project failure
  • More extensive testing of critical customer functionality

What are the two different approaches to process improvement and change that have been proposed?

  • The process maturity approach, which has focused on improving process and project management and introducing good software engineering practice.
  • The agile approach, which has focused on iterative development and reducing software process overheads