Software engineering by Ian Sommerville Notes, Cheat Sheet of Introduction to Software Engineering

Software processes Software process models 2.1. The waterfall model 2.2. Integration and configuration model 2.3. Incremental development model 2.4. Process activities 2.5. Software specification 2.6. Software design and implementation 2.7. Software validation 2.8. Software evolution 2.9. Coping with change 2.10. Software prototyping 2.11. Incremental delivery 2.12. Process Improvement

Typology: Cheat Sheet

2023/2024

Available from 04/05/2024

boko-soldaat
boko-soldaat 🇿🇦

5 documents

1 / 50

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Chapter 2 – Software Processes
Chapter 2 Software Processes 1
Week 2
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32

Partial preview of the text

Download Software engineering by Ian Sommerville Notes and more Cheat Sheet Introduction to Software Engineering in PDF only on Docsity!

Chapter 2 – Software Processes

Week 2

Topics covered

 Software process models

o (^) Waterfall model o (^) Integration and configuration model o (^) Incremental development

 Process activities

o (^) Software specification o (^) Software design and implementation o (^) Software validation o (^) Software evolution

 Coping with change

o (^) Software prototyping

 Process improvement

04/05/2024 Chapter 2 Software Processes 2

Plan-driven and agile processes

 Plan-driven processes are processes where all the

process activities are planned, and progress is

measured against this plan.

 In agile processes, planning is incremental, and it is

easier to change the process to reflect changing

customer requirements.

 In practice, most practical processes include elements of

both plan-driven and agile approaches.

 There are no right or wrong software processes.

Software process models

The waterfall model

Waterfall model phases

 There are separate identified phases in the waterfall model:

  • (^) Requirements analysis and definition
  • (^) System and software design
  • (^) Implementation and unit testing
  • (^) Integration and system testing
  • (^) Operation and maintenance

 The main drawback of the waterfall model is the difficulty of

accommodating change after the process is underway. In

principle, a phase must be completed before moving onto the

next phase.

Waterfall model phases – Activities, cont.

 Implementation and unit testing

  • (^) During this stage, the software design is realized as a set of programs or program units. Unit testing involves verifying that each unit meets its specification.

 Integration and system testing

  • (^) The individual program units or programs are integrated and tested as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer.

Waterfall model phases – Activities, cont.

 Operation and maintenance

  • (^) Normally, this is the longest life-cycle phase. The system is installed and put into practical use. Maintenance involves correcting errors that were not discovered in earlier stages of the life cycle, improving the implementation of system units, and enhancing the system’s services as new requirements are discovered.

Waterfall model problems

 Embedded systems where the software must interface

with hardware systems.

  • (^) Because of the inflexibility of hardware, it is not usually possible to delay decisions on the software’s functionality until it is being implemented

 Critical systems where there is a need for extensive

safety and security analysis of the software specification

and design.

  • (^) In these systems, the specification and design documents must be complete so that this analysis is possible. Safety related problems in the specification and design are usually very expensive to correct at the implementation stage.

Advantages and Disadvantages of waterfall model

Incremental development benefits

 The cost of accommodating changing customer

requirements is reduced.

  • (^) The amount of analysis and documentation that has to be redone is much less than is required with the waterfall model.

 It is easier to get customer feedback on the development

work that has been done.

  • (^) Customers can comment on demonstrations of the software and see how much has been implemented.

 Early delivery and deployment of useful software to the

customer is possible.

  • (^) Customers are able to use and gain value from the software earlier than is possible with a waterfall process.

Incremental development problems

 The process is not visible.

  • (^) Managers need regular deliverables to measure progress. If systems are developed quickly, it is not cost-effective to produce documents that reflect every version of the system.

 System structure tends to degrade as new increments

are added.

  • (^) Unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure. Incorporating further software changes becomes increasingly difficult and costly. To reduce structural degradation and general code messiness, agile methods suggest that you should regularly refactor (improve and restructure) the software.

Integration and configuration Model

 Based on software reuse where systems are integrated

from existing components or application systems.

 Reused elements may be configured to adapt their

behaviour and functionality to a user’s requirements

 Reuse is now the standard approach for building many

types of business system

  • (^) Reuse covered in more depth in Chapter 15.

Types of reusable software

 Stand-alone application systems that are configured for

use in a particular environment.

 Collections of objects that are developed as a package

to be integrated with a component framework such

as .NET or Java Spring framework.

 Web services that are developed according to service

standards and which are available for remote invocation

over the internet.