©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Unit 2. Software Lifecycle
Lectures 2 & 3 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
Software Processes Modified by Randy K. Smith
Chap 2. Software Processes
Software Engineering Chapter 4 Software processes Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
What is software? Computer programs and associated documentation
1 Chapter 2 Software Processes An overview of conventional software process models, Rational Unified Process, and CASE tools.
EE6421/ED5031Software Engineering Slide 1 Section # 2 (Read Sommerville Ch (3 or 4) and Pressman Ch 2) Software Processes.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Software Processes Overview
 © Ian Sommerville A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
Chapter 2 – Software Processes
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Software Engineering COMP 201
Software Process Models
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 3Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
1 SWE Introduction to Software Engineering Lecture 5.
L ECTURE 2 S OFTWARE P ROCESSES 1. O BJECTIVES To describe outline process models for requirements engineering, software development, testing and evolution.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 3 Software Processes.
Lecture 2 Software Processes CSC301-Winter 2011 Hesam C. Esfahani
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
Software Processes. Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Chapter 3 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Processes Software and Its Engineering - adopted & adapted from I. Sommerville, 2004.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Lecture 3 Software Engineering Models (Cont.)
1 SWE Introduction to Software Engineering Lecture 4.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
An Introduction to Software Engineering
4. Software Processes Software Engineering. Objectives To introduce software process models To describe three generic process models and when they may.
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Software engineering Software Processes.
Chapter3:Software Processes
Software Processes (a)
Software Processes.
An Overview of Software Processes
Software Processes.
Presentation transcript:

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 2 Objectives l To introduce software process models l To describe three generic process models and when they may be used l To describe outline process models for requirements engineering, software development, testing and evolution l To explain the Rational Unified Process model l To introduce CASE technology to support software process activities

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 3 Topics covered l Software process models l Process iteration l Process activities l The Rational Unified Process l Computer-aided software engineering

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 4 The software process l A structured set of activities required to develop a software system l Fundamental activities common to all sw processes: Specification; Design; Validation; Evolution. l A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective – partial info about that process.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 5 Generic software process models l The waterfall model Separate and distinct phases of specification and development. l Evolutionary development Specification, development and validation are interleaved. l Component-based software engineering The system is assembled from existing components. l There are many variants of these models e.g. formal development where a waterfall-like process is used but the specification is a formal specification that is refined through several stages to an implementable design.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 6 Waterfall model

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 7 Waterfall model phases l Requirements analysis and definition l System and software design l Implementation and unit testing l Integration and system testing l Operation and maintenance l The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. One phase has to be complete before moving onto the next phase.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 8 Waterfall model problems l Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements. l Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process. l Few business systems have stable requirements. l The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 9 Evolutionary development l Exploratory development Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements and add new features as proposed by the customer. l Throw-away prototyping Objective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 10 Evolutionary development

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 11 Evolutionary development l Problems Lack of process visibility; Systems are often poorly structured; Special skills (e.g. in languages for rapid prototyping) may be required. l Applicability For small or medium-size interactive systems; For parts of large systems (e.g. the user interface); For short-lifetime systems.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 12 Component-based software engineering l Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems. l Process stages Component analysis (search for components) ; Requirements modification (according to components) ; System design with reuse; Development and integration. l This approach is becoming increasingly used as component standards have emerged.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 13 Reuse-oriented development

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 14 Process iteration l System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems. l Iteration can be applied to any of the generic process models. l Two (related) approaches Incremental delivery; Spiral development.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 15 Incremental delivery l Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality. l User requirements are prioritised and the highest priority requirements are included in early increments. l Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 16 Incremental development

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 17 Incremental development advantages l Customer value can be delivered with each increment so system functionality is available earlier. l Early increments act as a prototype to help elicit requirements for later increments. l Lower risk of overall project failure. l The highest priority system services tend to receive the most testing.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 18 Extreme programming l An approach to development based on the development and delivery of very small increments of functionality. l Relies on constant code improvement, user involvement in the development team and pairwise programming. l Covered in Chapter 17

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 19 Spiral development l Process is represented as a spiral rather than as a sequence of activities with backtracking. l Each loop in the spiral represents a phase in the process. l No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required. l Risks are explicitly assessed and resolved throughout the process.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 20 Spiral model of the software process

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 21 Spiral model sectors l Objective setting Specific objectives for the phase are identified. l Risk assessment and reduction Risks are assessed and activities put in place to reduce the key risks. l Development and validation A development model for the system is chosen which can be any of the generic models. l Planning The project is reviewed and the next phase of the spiral is planned.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 22 Process activities l Software specification l Software design and implementation l Software validation l Software evolution

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 23 Software specification l The process of establishing what services are required and the constraints on the system’s operation and development. l Requirements engineering process Feasibility study (whether to go ahead) ; Requirements elicitation and analysis; Requirements specification; Requirements validation.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 24 The requirements engineering process

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 25 Software design and implementation l The process of converting the system specification into an executable system. l Software design Design a software structure that realises the specification; l Implementation Translate this structure into an executable program; l The activities of design and implementation are closely related and may be inter-leaved.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 26 Design process activities l Architectural design sub-systems identified l Abstract specification of services and constraints for each sub-system l Interface design interface to other sub-systems l Component design services allocated to components l Data structure design data structures designed in detail l Algorithm design Algorithmns used to provide services

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 27 The software design process

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 28 Structured methods l Systematic approaches to developing a software design. l The design is usually documented as a set of graphical models. l Possible models Object model; Sequence model; State transition model; Structural model; Data-flow model.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 29 Programming and debugging l Translating a design into a program and removing errors from that program. l Programming is a personal activity - there is no generic programming process. l Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 30 The debugging process

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 31 Software validation l Verification and validation (V & V) is intended to show that a system conforms to its specification and meets the requirements of the system customer. l Involves checking and review processes and system testing. l System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 32 The testing process

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 33 Testing stages l Component or unit testing Individual components are tested independently; Components may be functions or objects or coherent groupings of these entities. l System testing Testing of the system as a whole. Testing of emergent properties is particularly important. l Acceptance testing Testing with customer data to check that the system meets the customer’s needs.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 34 Testing phases

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 35 Software evolution l Software is inherently flexible and can change. l As requirements change through changing business circumstances, the software that supports the business must also evolve and change. l Although there has been a demarcation between development and evolution (maintenance) this is increasingly irrelevant as fewer and fewer systems are completely new.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 36 System evolution

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 37 The Rational Unified Process l A modern process model derived from the work on the UML and associated process. l Offered by IBM / Rational Booch, Rumbaugh, Jacobson l Normally described from 3 perspectives A dynamic perspective that shows phases over time; A static perspective that shows process activities; A practice perspective that suggests good practice.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 38 RUP phase model

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 39 l The horizontal axis represents time and shows the dynamic aspect of the process as it is enacted, and it is expressed in terms of cycles, phases, iterations, and milestones. l The vertical axis represents the static aspect of the process: how it is described in terms of activities, artifacts, workers and workflows. Iterative Model graph

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 40 RUP phases l Inception Establish the business case for the system. l Elaboration Develop an understanding of the problem domain and the system architecture (UML use cases). l Construction System design, programming and testing. l Transition Deploy the system in its operating environment.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 41 RUP good practice l Develop software iteratively l Manage requirements by use cases and scenarios l Use component-based architectures l Visually model software (UML) l Verify software quality l Control changes to software describes how to control, track and monitor changes to enable successful iterative development

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 42 Static workflows

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 43 Computer-aided software engineering l Computer-aided software engineering (CASE) is software to support software development and evolution processes. MS Visio, Oracle Designer, Rational Rose and XDE, Together, Visible Analyst,... l Activity automation Graphical editors for system model development; Data dictionary to manage design entities; Graphical UI builder for user interface construction; Debuggers to support program fault finding; Automated translators to generate new versions of a program.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 44 Case technology l Case technology has led to significant improvements in the software process. However, these are not the order of magnitude improvements that were once predicted Software engineering requires creative thought - this is not readily automated; Software engineering is a team activity and, for large projects, much time is spent in team interactions. CASE technology does not really support these.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 45 CASE classification l Classification helps us understand the different types of CASE tools and their support for process activities. l Functional perspective Tools are classified according to their specific function. l Process perspective Tools are classified according to process activities that are supported. l Integration perspective Tools are classified according to their organisation into integrated units.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 46 Functional tool classification

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 47 Activity-based tool classification

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 48 CASE integration l Tools Support individual process tasks such as design consistency checking, text editing, etc. l Workbenches Support a process phase such as specification or design Normally include a number of integrated tools. l Environments Support all or a substantial part of an entire software process. Normally include several integrated workbenches.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 49 Tools, workbenches, environments

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 50 Key points l Software processes are the activities involved in producing and evolving a software system. l Software process models are abstract representations of these processes. l General activities are specification, design and implementation, validation and evolution. l Generic process models describe the organisation of software processes. Examples include the waterfall model, evolutionary development and component- based software engineering. l Iterative process models describe the software process as a cycle of activities.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 51 Key points l Requirements engineering is the process of developing a software specification. l Design and implementation processes transform the specification to an executable program. l Validation involves checking that the system meets to its specification and user needs. l Evolution is concerned with modifying the system after it is in use. l The Rational Unified Process is a generic process model that separates activities from phases. l CASE technology supports software process activities.