Software Engineering Software Processes, Lecture notes of Software Engineering

introduce commonly used generic software process models, such as the waterfall model, and discuss the basic activities that are part of these processes

Typology: Lecture notes

2016/2017

Uploaded on 10/06/2017

abundant-grace
abundant-grace 🇲🇾

5

(1)

2 documents

1 / 55

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Chapter 2 – Software Processes
Lecture 1
1Chapter 2 Software Processes
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
pf33
pf34
pf35
pf36
pf37

Partial preview of the text

Download Software Engineering Software Processes and more Lecture notes Software Engineering in PDF only on Docsity!

Chapter 2 – Software Processes Lecture 1

Topics covered  (^) Software process models  (^) Process activities  (^) Coping with change  (^) The Rational Unified Process  (^) An example of a modern software process.

Software process descriptions  (^) When we describe and discuss processes, we usually talk about the activities in these processes such as specifying a data model, designing a user interface, etc. and the ordering of these activities.  (^) Process descriptions may also include:  (^) Products, which are the outcomes of a process activity;  (^) Roles, which reflect the responsibilities of the people involved in the process;  (^) Pre- and post-conditions, which are statements that are true before and after a process activity has been enacted or a product produced.

Plan-driven and agile processes  (^) Plan-driven processes are processes where all of the process activities are planned in advance 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.

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 has to be complete before moving onto the next phase.

Incremental development

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.  (^) More rapid 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.

Reuse-oriented software engineering  (^) Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems.  (^) Process stages  (^) Component analysis;  (^) Requirements modification;  (^) System design with reuse;  (^) Development and integration.  (^) Reuse is now the standard approach for building many types of business system  (^) Reuse covered in more depth in Chapter 16.

Reuse-oriented software engineering

Process activities  (^) Real software processes are inter-leaved sequences of technical, collaborative and managerial activities with the overall goal of specifying, designing, implementing and testing a software system.  (^) The four basic process activities of specification, development, validation and evolution are organized differently in different development processes. In the waterfall model, they are organized in sequence, whereas in incremental development they are inter- leaved.

Software specification  (^) The process of establishing what services are required and the constraints on the system’s operation and development.  (^) Requirements engineering process  (^) Feasibility study

  • (^) Is it technically and financially feasible to build the system?  (^) Requirements elicitation and analysis
  • (^) What do the system stakeholders require or expect from the system?  (^) Requirements specification
  • (^) Defining the requirements in detail  (^) Requirements validation
  • (^) Checking the validity of the requirements

Software design and implementation  (^) The process of converting the system specification into an executable system.  (^) Software design  (^) Design a software structure that realises the specification;  (^) Implementation  (^) Translate this structure into an executable program;  (^) The activities of design and implementation are closely related and may be inter-leaved.

A general model of the design process