2 Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software development, testing and evolution To explain the Rational Unified Process model To introduce CASE technology to support software process activities
3 Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering
4 The software process A structured set of activities required to develop a software system Specification; Design; Validation; Evolution. Each organization has its own software process A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
5 Generic software process models The waterfall model Separate and distinct phases of specification and development. Evolutionary development Specification, development and validation are interleaved. Component-based software engineering The system is assembled from existing components. 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. Very often the real software processes can be a combination of different ones.
6 Waterfall model
7 Waterfall model phases 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. One phase has to be complete before moving onto the next phase.
8 Waterfall model pro and cons Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements. Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process. Few business systems have stable requirements. The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites. Good documentation and the software is well-structured only if the requirements are well understood
9 Evolutionary development 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. Throw-away prototyping Objective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed.
10 Evolutionary development
11 Evolutionary development Problems Lack of process visibility; Systems are often poorly structured; Special skills (e.g. in languages for rapid prototyping) may be required. Applicability For small or medium-size interactive systems; For parts of large systems (e.g. the user interface); For short-lifetime systems.
12 Component-based 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. This approach is becoming increasingly used as component standards have emerged.
13 Reuse-oriented development
14 Component-based software engineering pro and cons It permits to reduce the amount of software to be developed and so reducing costs and risks (and time!) Requirements compromises are inevitably and this may lead to a system that does not meet the real needs of users
15 Process iteration 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. Iteration can be applied to any of the generic process models. Two (related) approaches Incremental delivery; Spiral development.
16 Incremental delivery 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. User requirements are prioritised and the highest priority requirements are included in early increments. Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve.
17 Incremental development
18 Incremental development advantages Customer value can be delivered with each increment so system functionality is available earlier. Early increments act as a prototype to help elicit requirements for later increments. Lower risk of overall project failure. The highest priority system services tend to receive the most testing.
19 Extreme programming An approach to development based on the development and delivery of very small increments of functionality. Relies on constant code improvement, user involvement in the development team and pairwise programming. Covered in Chapter 17
20 Spiral development Process is represented as a spiral rather than as a sequence of activities with backtracking. Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required. Risks are explicitly assessed and resolved throughout the process.
21 Spiral model of the software process
22 Spiral model sectors Objective setting Specific objectives for the phase are identified. Risk assessment and reduction Risks are assessed and activities put in place to reduce the key risks. Development and validation A development model for the system is chosen which can be any of the generic models. Planning The project is reviewed and the next phase of the spiral is planned.
23 Process activities Software specification Software design and implementation Software validation Software evolution
24 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; Requirements elicitation and analysis; Requirements specification; Requirements validation.
25 The requirements engineering process
26 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.
27 Design process activities Architectural design Abstract specification Interface design Component design Data structure design Algorithm design
28 The software design process
29 Structured methods Systematic approaches to developing a software design. The design is usually documented as a set of graphical models. Possible models Object model; Sequence model; State transition model; Structural model; Data-flow model.
30 Programming and debugging Translating a design into a program and removing errors from that program. Programming is a personal activity -there is no generic programming process. Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process.
31 The debugging process
32 Software validation Verification and validation (V& V) is intended to show that a system conforms to its specification and meets the requirements of the system customer. Involves checking and review processes and system testing. 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.
33 The testing process
34 Testing stages Component or unit testing Individual components are tested independently; Components may be functions or objects or coherent groupings of these entities. System testing Testing of the system as a whole. Testing of emergent properties is particularly important. Acceptance testing Testing with customer data to check that the system meets the customer s needs.
35 Testing phases
36 Software evolution Software is inherently flexible and can change. As requirements change through changing business circumstances, the software that supports the business must also evolve and change. Although there has been a demarcation between development and evolution (maintenance) this is increasingly irrelevant as fewer and fewer systems are completely new.
37 System evolution
38 The Rational Unified Process A modern process model derived from the work on the UML and associated process. Normally described from 3 perspectives A dynamic perspective that shows phases over time; A static perspective that shows process activities; A practive perspective that suggests good practice.
39 RUP phase model
40 RUP phases Inception Establish the business case for the system. Elaboration Develop an understanding of the problem domain and the system architecture. Construction System design, programming and testing. Transition Deploy the system in its operating environment.
41 RUP good practice Develop software iteratively Manage requirements Use component-based architectures Visually model software Verify software quality Control changes to software
42 Static workflows Workflow Description Business modelling Requirements Analysis and design Implementation Test Deployment Configuration and change management Project management Environment The business processes are modelled using business use cases. Actors who interact with the system are identified and use cases are developed to model the system requirements. A design model is created and documented using architectural models, component models, object models and sequence mod els. The components in the system are implemented and structured into implementation sub-systems. Automatic code generation from design models helps accelerate this process. Testing is an iterative process that is carried out in conjunction with implementation. System testing follows the completion of the implementation. A product release is created, distributed to users and installed in their workplace. This supporting workflow managed changes to the system (see Chapter 29). This supporting workflow manages the system development (see Chapter 5). This workflow is concerned with making appropriate software tools available to the software development team.
43 Computer-aided software engineering Computer-aided software engineering (CASE) is software to support software development and evolution processes. 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.
44 Case technology 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.
45 CASE classification Classification helps us understand the different types of CASE tools and their support for process activities. Functional perspective Tools are classified according to their specific function. Process perspective Tools are classified according to process activities that are supported. Integration perspective Tools are classified according to their organisation into integrated units.
46 Functional tool classification Tool type Planning tools Editing tools Change management tools Configuration management tools Prototyping tools Method-support tools Language-processing tools Program analysis tools Testing tools Debugging tools Documentation tools Re-engineering tools Examples PERT tools, estimation tools, spreadsheets Text editors, diagram editors, word processors Requirements traceability tools, change control systems Version management systems, system building tools Very high-level languages, user interface generators Design editors, data dictionaries, code generators Compilers, interpreters Cross reference generators, static analysers, dynamic analysers Test data generators, file comparators Interactive debugging systems Page layout programs, image editors Cross-reference systems, program re-structuring systems
47 Activity-based tool classification
48 CASE integration Tools Support individual process tasks such as design consistency checking, text editing, etc. Workbenches Support a process phase such as specification or design, Normally include a number of integrated tools. Environments Support all or a substantial part of an entire software process. Normally include several integrated workbenches.
49 Tools, workbenches, environments
50 Key points Software processes are the activities involved in producing and evolving a software system. Software process models are abstract representations of these processes. General activities are specification, design and implementation, validation and evolution. Generic process models describe the organisation of software processes. Examples include the waterfall model, evolutionary development and component-based software engineering. Iterative process models describe the software process as a cycle of activities.
51 Key points Requirements engineering is the process of developing a software specification. Design and implementation processes transform the specification to an executable program. Validation involves checking that the system meets to its specification and user needs. Evolution is concerned with modifying the system after it is in use. The Rational Unified Process is a generic process model that separates activities from phases. CASE technology supports software process activities.
Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software
The software process Software Development Methods Bayu Adhi Tama, ST., MTI. firstname.lastname@example.org A structured set of activities required to develop a software system Specification; Design; Validation; Evolution.
Software Processes cmsc435-1 Topics covered Systems vs. software engineering Software process models Process iteration Process activities Computer-aided software engineering cmsc435-2 What is a system?
Software Processes CSC 221 Introduction to Software Engineering software processes extract from Sommerville s chapter 3 slides Alan Dix Coherent sets of activities for specifying, designing, implementing
Fundamentals: Software Engineering Dr. Rami Bahsoon School of Computer Science The University Of Birmingham email@example.com www.cs.bham.ac.uk/~rzb Office 112 Y9- Computer Science Unit 1. Introduction
Questions What is the life cycle of a software product? Why do we need software process models? What are the goals of a software process and what makes it different from other industrial processes? Software
Modelli di sviluppo software Enrico Giunchiglia The software development process A structured set of activities required to develop a software system, including Specification Design & Development Validation
Chapter 3. Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems 1 Objectives To introduce the concept of software process and software process
Lecture 3 Software Development Processes Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 2, 2008 Lecture Overview
IV. Software Lifecycles Software processes and lifecycles Relative costs of lifecycle phases Examples of lifecycles and processes Process maturity scale Information system development lifecycle Lifecycle
Software Engineering Objectives Designing, building and maintaining large software systems To define software engineering and explain its importance To discuss the concepts of software products and software
What is a system? Software Engineering Software Processes A purposeful collection of inter-related components working together to achieve some common objective. A system may include software, mechanical,
Ingeniería de Software & Ciclos de Vida Luis Carlos Díaz Miguel Torres Julián Rodriguez Ingeniería de Software Personas Tecnología Producto Proceso 24-Ene-07 Msc. Luis Carlos Díaz 2 Costos 24-Ene-07 Msc.
Foundations of software engineering Waterfalls, V s and Spirals: Standard SE Methodologies Dr. Julie Greensmith G51 Objectives To introduce three of the major software process models: Waterfall methods
In this Lecture you will Learn: Development Chapter 5C About the Unified Software Development How phases relate to workflows in an iterative life cycle An approach to system development Major activities
Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room
Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering Prof. Dr. Armin B. Cremers Sascha Alda Overview Phases during Software Development
I219 Software Design Methodology JAIST Master s Program Fall 2014 Nguyen Van Vu firstname.lastname@example.org Topics Course Introduction Objectives and Scope Evaluation Policies Content and Schedule Basic Concepts
Classical Software Life Cycle Models SWEN 301 Trimester 1, 2015 Lecturer: Dr Hui Ma Engineering and Computer Science Lecture slides make use of material provided on the textbook's companion website Motivation
CS4507 Advanced Software Engineering Lectures 2 & 3: Software Development Lifecycle Models A O Riordan, 2015 Some diagrams from Sommerville, some notes from Maciaszek/Liong Lifecycle Model Software development
Rapid software development 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of more useful software To discuss the essence of agile development methods
CSCI-485: Software Design Lecture 6 Note: Some slides adapted from Software Engineering by Ian Sommerville Software Processes Code-and-fix model Software process model used in the early days of computing
Software Development Process and Activities CS 490MT/5555, Fall 2015, Yongjie Zheng Software Process } A set of activities that leads to the production of a software product } What product we should work
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Advanced Software Engineering Software Development Processes Prof. Agostino Poggi Software Development
General Problem Solving Model Software Development Methodology These focus on understanding what the problem is about Chapter 2A Concerned with understanding more about the nature of the problem and possible
Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process
Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of
1 Software Engineering Lecture 2: Software Life Cycles Stefan Hallerstede Århus School of Engineering 25 August 2011 2 Contents Naive Software Development Code & Fix Towards A Software Process Software
Software Development Life Cycle (SDLC) and Development Methods There are some enterprises in which a careful disorderliness is the true method. Herman Melville Capability Maturity Model (CMM) A Capability
Plan-Driven Methodologies The traditional way to develop software Based on system engineering and quality disciplines (process improvement) Standards developed from DoD & industry to make process fit a
2. Analysis, Design and Implementation Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Programs to Application Systems Products Software Development:
Software Engineering Rapid Software Development Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain how an iterative, incremental development process leads to faster delivery
VAIL-Plant Asset Integrity Management System Software Development Process Document Number: VAIL/SDP/2008/008 Engineering For a Safer World P u b l i c Approved by : Ijaz Ul Karim Rao Revision: 0 Page:2-of-15
Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software
Principles of Software Engineering: Software Methodologies COSI 120b, Spring 2005 Overview What are methodologies? The methodologies Traditional Incremental Evolutionary Other Conclusions Way Forward What
SE464/CS446/ECE452 Software Life-Cycle and Process Models Instructor: Krzysztof Czarnecki 1 Some of these slides are based on: Lecture slides by Ian Summerville accompanying his classic textbook software
INTRODUCTION : Fundamentals of Software Engineering (Compulsory) This course is designed to provide the students with the basic competencies required to identify requirements, document the system design
CHAPTER 1: INTRODUCTION TO RAPID APPLICATION DEVELOPMENT (RAD) 1. INTRODUCTIONS RAD refers to a development life cycle designed Compare to traditional life cycle it is Faster development with higher quality
3C05: Unified Software Development Process 1 Unit 5: Unified Software Development Process Objectives: Introduce the main concepts of iterative and incremental development Discuss the main USDP phases 2
Unit I Introduction Product Life Cycles Products also have life cycles The Systems Development Life Cycle (SDLC) is a framework for describing the phases involved in developing and maintaining information
An Introduction to Software Engineering Antinisca Di Marco email@example.com Objectives To introduce software engineering and to explain its importance To set out the answers to key questions about
CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) Prescriptive Process Model Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high quality
1. Software Process Models (Sommerville Chapters 4, 17, 19, 12.4) A software process model is a standardised format for planning organising, and running a development project. 1 Hundreds of different models
A Process Programmer Looks at the Spiral Model A Tribute to the Deep Insights of Prof. Barry W. Boehm Leon J. Osterweil University of Massachusetts Amherst Institute of Software Chinese Academy of Sciences
Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 20-21 The Unified Process Dynamic dimension Two dimensions Content
Software Engineering Requirements Engineering Process Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To describe the principal requirements engineering activities and d their
What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each
Steven Zeil June 7, 2013 Contents 1 Software Development Process Models 2 1.1 Components of the Waterfall Model................................. 2 1.1.1 What is a requirement?. 2 1.1.2 Testing..........
Session # 3 Contents Systems Analysis and Design 2 1 Tiers of Software Development 10/4/2013 Information system development project Realistic behavior 3 Information system development project System Development
CSE 435 Software Engineering Sept 16, 2015 2.1 The Meaning of Process A process: a series of steps involving activities, constraints, and resources that produce an intended output of some kind A process
, pp. 213-220 http://dx.doi.org/10.14257/ijseia.2014.8.10.19 A Review of an MVC Framework based Software Development Ronnie D. Caytiles and Sunguk Lee * Department of Multimedia Engineering, Hannam University
Using Simulation to teach project management skills Dr. Alain April, ÉTS Montréal firstname.lastname@example.org Agenda of the workshop 1 The software project management theory overview (40 minutes) 2 Why use SDLC
Software Life Cycle Lecture Objectives What happens in the life of software To look at the life cycle of a software To understand the software process and its related elements To relate to the different
BIT The thesis is a system work 1 -(14) Thesis seminar The Thesis is a System Work Kirsti Jalasoja BIT The thesis is a system work 2 -(14) 1 Different types of theses 2 System development models 3 Development
Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 email@example.com Spring 2014 (elicitation)
Requirements Engineering Processes Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 7 Slide 1 Objectives To describe the principal requirements engineering activities and their relationships
Development models R. Kuiper and E.J. Luit 1 Introduction We reconsider the classical development models: the Waterfall Model [Bo76], the V-Model [Ro86], the Spiral Model [Bo88], together with the further
Iterative Software Development - from Theory to Practice Implementing the Unified Software Development Process in RAFAEL Amir Tomer, Boaz Shani, Ely Bonne RAFAEL at a Glance USDP in Rafael - 2 The Waterfall
MSc. NguyễnThị Thu Trang, firstname.lastname@example.org http://soict.hut.edu.vn/~trangntt Department of Software Engineering  ISO/IEC FDIS 12207, Systems and software engineering Software life cycle processes.
Slide 3.1 Development Methodologies Prof. Dr. Josef M. Joller email@example.com Development Methodologies Prof. Dr. Josef M. Joller 1 Session 3 Slide 3.2 SOFTWARE LIFE-CYCLE MODELS Development Methodologies
SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur School of Computing, Department of IT 1 2 Process What is it? A series of predictable steps
PESIT Bangalore South Campus Department of MCA SOFTWARE ENGINEERING 1. GENERAL INFORMATION Academic Year: JULY-NOV 2015 Semester(s):III Title Code Duration (hrs) SOFTWARE ENGINEERING 13MCA33 Lectures 52Hrs
PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main
An Introduction to Software Engineering Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1 Objectives To introduce software engineering and to explain its importance To set out the
An Introduction to Software Engineering Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1 Objectives To introduce software engineering and to explain its importance To set out the
Software Engineering What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software engineering and to explain its importance To set out the answers
6. Software Lifecycle Models A software lifecycle model is a standardised format for planning organising, and running a new development project. Hundreds of different kinds of models are known and used.
Günter Böckle Klaus Pohl Frank van der Linden 2 A Framework for Software Product Line Engineering In this chapter you will learn: o The principles of software product line subsumed by our software product
Software Development Methodologies Lecturer: Raman Ramsin Lecture 15 Agile Methodologies: AUP 1 Agile Unified Process (AUP) Proposed by Ambler as a simplified version of the Rational Unified Process (RUP).
Software Engineering Software Engineering is the science and art of building significant software systems that are: 1) on time 2) on budget 3) with acceptable performance 4) with correct operation. Ian
Software Process for QA Basic approaches & alternatives CIS 610, W98 / M Young 1/7/98 1 This introduction and overview is intended to provide some basic background on software process (sometimes called
3.0 Methodology 3.1 Introduction In this chapter, five software development life cycle models are compared and discussed briefly. The most suitable system methodology for the proposed system is drawn out.
IF2261 Software Engineering Engineering Program Studi Teknik Informatika STEI ITB Overview Before software can be engineered: the system it is part of must be understood, the overall objective of the system
Components Based Design and Development Computer Engineering Studies Universidad Carlos III de Madrid Unit 2: Software Engineering Quick Overview Juan Llorens Högskolan på Åland Finland / Universidad Carlos
Basic Unified Process: A Process for Small and Agile Projects Ricardo Balduino - Rational Unified Process Content Developer, IBM Introduction Small projects have different process needs than larger projects.