















































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
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
1 / 55
This page cannot be seen from the preview
Don't miss anything!
















































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
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