Softwaretechnik. Lecture 02: Processes. Peter Thiemann SS University of Freiburg, Germany

Similar documents
Software Engineering

The Software Life Cycle

CMPT 275 Software Engineering

Processes and Life- Cycles. Kristian Sandahl

The Software Life Cycle

V Model material adapted from Steve Easterbrook. Waterfall Model material adapted from Steve Easterbrook. Lifecycle of Software Projects

Introduction of RUP - The Rational Unified Process

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

18-642: Software Development Processes

Chapter 3 Software Process Model

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

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Software Development Life Cycle:

The software process

Process, Models, Methods, Diagrams Software Development Life Cyles. Part - II

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

Object-Oriented and Classical Software Engineering

Introduction to Software Engineering

03. Perspective Process Models

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

Rational Unified Process

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

Scrum - Introduction. Petri Heiramo. Agile Coach, CST

Software Engineering Modern Approaches

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

Object-Oriented and Classical Software Engineering THE SOFTWARE PROCESS 9/17/2017. CHAPTER 3 Slide 3.2. Stephen R. Schach. Overview Slide 3.

SE310 Analysis and Design of Software

SWE 211 Software Processes

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Development Process Bennett, McRobb and Farmer 1

AGILE DEVELOPMENT AND ITS IMPACT ON PRODUCTIVITY

Introduction to Systems Analysis and Design

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

Sistemi ICT per il Business Networking

A New Divide & Conquer Software Process Model

Software Development Methodologies

The Top Thrill Dragster

The Software Development Process (SDLC)

7. Model based software architecture

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Two Branches of Software Engineering

Scrum and Agile Processes. Dr.-Ing. Oliver Ciupke Haufe-Lexware GmbH & Co. KG 2011

Session 11E Adopting Agile Ground Software Development. Supannika Mobasser The Aerospace Corporation

SE420 Software Quality Assurance

MODULE Explain briefly the different types of system models that might be created during the system analysis phase. 2. Write short notes on

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Agile Essentials Track: Business Services

Oracle Unified Method (OUM) Using OUM with Agile Techniques. Jan Kettenis Oracle Global Methods Oracle Consulting Netherlands

Object-Oriented & Classical Soft Engineering

Selecting Software Development Life Cycles. Adapted from Chapter 4, Futrell

Attribute-Driven Design Method

Pertemuan 2. Software Engineering: The Process

2 Why is systems development difficult and risky? 3 How do businesses use the systems development life cycle (SDLC) process?

Software development activities

LIFE-CYCLE MODELS AND PROCESS. Software Engineering 1/9/2008. CHAPTER 1, 2, and 3. Stephen R. Schach

Introduction to Agile/Extreme Programming

software development lifecycle (sdlc) models & agile methods

An Evolutionary Lifecycle Model with Agile Practices for Software Development at ABB

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

Learning Objectives. Agile Modeling and. Major Topics. Prototyping. Patched Up Prototype. Agile Modeling, but First. Prototyping

Johanna Rothman. Chapter 1 Why Agile and Lean Approaches Work. Copyright 2017

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

A Sad Story. Info IV IT Project Management. How to Avoid Troubled Projects. Why IT-Projects Fail

Software Life Cycle. Main Topics. Introduction

Info IV IT Project Management. A Sad Story. Why IT-Projects Fail. Prof. Dr. Peter Müller. Standish Group Research Study CHAOS 1995

Copyright Intertech, Inc All Rights Reserved. May 18, 2011

Scrum Team Roles and Functions

Prof. Dr. Liggesmeyer, 1. Quality Management of Software and. Processes and QM. Systems. QMSS Processes and QM

Software Engineering Lecture 5 Agile Software Development

An Introduction to Scrum

Quality Management of Software and Systems

SDLC Models- A Survey

Software Engineering Fall 2014

Software Engineering II - Exercise

The Basic Waterfall Model. Software Process Models. Concurrent Development. (Concurrent Development) The Agile Critique of the Waterfall

WELCOME TO INTRO TO AGILE PROJECT MANAGEMENT AUBREY KAIGLER, PMP, ITIL. Please configure your audio: Meeting Audio Setup Wizard

Non-object-oriented design methods. Software Requirements and Design CITS 4401 Lecture 15

Managing Projects of Chaotic and Unpredictable Behavior

An Agile Projects Introduction Course #PMCurrent-1

The good news. 34% of software projects succeed. Standish Group, CHAOS Report, 2003

SE420 Software Quality Assurance

BCS Level 4 Diploma in Software Development Methodologies QAN 603/0543/5

Agile Project Management: Best Practices and Methodologies

DRAFT. Effort = A * Size B * EM. (1) Effort in person-months A - calibrated constant B - scale factor EM - effort multiplier from cost factors

SDLC AND MODEL SELECTION: A STUDY

Note 10: Software Process

AGILE SOFTWARE DEVELOPMENT. Keith Pine Kumeel Alsmail Parker Li Björn Davis

Quality Management of Software and Systems: Processes and QM

Why Agile, Why Now By David Schroeder, PMP, PSM

An Oracle White Paper February Oracle Unified Method (OUM) Oracle s Full Lifecycle Method for Deploying Oracle-Based Business Solutions

Harnessing the power of agile development

Expand application range with respect to consider the whole system. Consider state of the art and adapt actual regulations and standards

Agile Development Doesn t Have to Mean Fragile Enterprise Processes

Scrum, Creating Great Products & Critical Systems

Agile Scrum Process Checklist

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Transcription:

Softwaretechnik Lecture 02: Processes Peter Thiemann University of Freiburg, Germany SS 2012 Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 1 / 34

Terms Software Program SW System organized collections of computer data and instructions disembodied information machines (D. Gelernter, Mirror Worlds) solves isolated task developed by a single person multiple components developed by team Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 2 / 34

Programming in the Small development of a program or a component algorithmic aspects (sometimes) procedure: stepwise refinement (N. Wirth), structured programming (E. Dijkstra) structured control flow (if-then-else, for, while,... ; no goto) procedural decomposition, top-down flat monolithic structure Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 3 / 34

Programming in the Large development of a software system: long life span high probability of changes (due to aging) requirements at first fuzzy communication problem user developer understanding the problem decomposition in components (for programming in the small) information hiding (D.L. Parnas) promising approach: object-oriented analysis and design Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 4 / 34

Process Models process model: structured network of activities and artifacts an activity transforms artifacts Given Artifacts Methods Guidelines Conventions Check Lists Patterns Tools Changed or new Artifacts Employee Y Role X Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 5 / 34

Phases Phases provide structure of process model Description of a phase goals activities roles required/new artifacts patterns, guidelines, and conventions Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 6 / 34

Desiderata for Process Models the fewer phases, artifacts, roles, the better artifacts should cover standard case tool support quality assurance for each artifact traceability Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 7 / 34

The Classic: Waterfall Model Requirements Specification Design Coding Testing Integration early error correction is cheaper (e.g. after analysis phase 100 times cheaper than after deployment) hence, after every phase: check of previous phases potentially return to previous phase phases may overlap Operation Maintenance Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 8 / 34

Requirements Analysis tractability cost analysis result: documents: decision on continuation of project (artifacts) requirement specification (Lastenheft) cost estimation project plan Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 9 / 34

Definition / Specification starting point: vague, incomplete, inconsistent requirements result: documents: complete, consistent, unequivocal, accomplishable requirements system specification (Pflichtenheft) product model (e.g. OOA) GUI model user manual Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 10 / 34

only external behavior of system analysis of requirements results in system specification fixes the scope of the product serves as basis for contract between customer and contractor basis for final acceptance contains functionality user interface interfaces to other systems performance (response time, space usage) required hard and software guidelines for documentation time scheduling Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 11 / 34

Design starting point: system specification / product model decomposition in components / subsystems fixes external behavior / interfaces of each component result: software architecture (with specification of components) Implementation and Testing translation of component specification to programming language compilation to machine language module testing result: programmed system and testing protocols Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 12 / 34

Integration, system test, and deployment integration: stepwise addition of single components tested with data fixed in advance (functional requirements only) system test: check of entire system (incl. hardware) check of non-functional requirements (performance, GUI) deployment: transfer of software system in its working environment result: deployed product, protocol of final acceptance Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 13 / 34

Maintenance bug fixes changes due to changes in requirements (incl. extensions) result: maintained product Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 14 / 34

Prototyping Model Lifecycle require ments design prototype build prototype test prototype document requirements design code test integrate Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 15 / 34

Prototyping - Overview Advantages: understanding the requirements for the user interface improves understanding between developer and client early testing of feasibility, usefulness, performance, etc. Problems: users treat the prototype as the solution prototype is only a partial specification significant user involvement Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 16 / 34

Phased Models Evolutionary Development 1. model core requirements 2. design and implement 3. deploy 4. feedback from customer 5. revise/extend requirements 6. revise/extend design 7. revise/extend implementation 8. iterate from 3 until all requirements met Incremental Development 1. model all requirements 2. design and implement only core requirements 3. deploy 4. feedback from customer 5. revise requirements 6. design further requirements 7. implement further requirements 8. iterate from 3 until all requirements met Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 17 / 34

Incremental Development (each iteration adds more functionality) release 1 design code test integrate O&M requirements release 2 design code test integrate O&M release 3 design code test integrate O&M release 4 design code test integrate O&M Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 18 / 34

Evolutionary Development (each iteration incorporates new requirements) version 1 reqts. design code test integrate O&M version 2 reqts. lessons learned design code test integrate O&M lessons learned version 3 reqts. design code test integrate O&M Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 19 / 34

Spiral Model (Barry Boehm 1988) Determine Goals, Alternatives, Constraints alternatives 4 alternatives 3 constraints4 constraints3 2 2 alternativesconstraints risk analysis 2 risk analysis 1 budget4 budget3 budget2 budget1 prototype1 prototype2 prototype3 prototype4 Plan integration and test plan requirements, lifecycle plan development plan alternatives constr. implementation plan concept of operation risk analysis 3 software validated requirements validated, verified design acceptance test risk analysis 4 requirements system test software design Evaluate Alternatives and Risks unit test code detailed design Develop and Test Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 20 / 34

Comments on Phased Models Incremental development avoids big bang implementation but assumes all requirements known up-front Evolutionary development allows for lessons from each version to be incorporated into the next but: hard to plan for versions beyond the first; lessons may be learned too late Spiral model primarily targeted at very large projects iterative model that incorporates prototyping and risk analysis but: cannot cope with unforeseen changes not clear how to analyze risk Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 21 / 34

Agile Development Techniques Extreme Programming (XP, Kent Beck 1999) frequent releases short development cycles pair programming unit testing w tests developed before the code features specified by tests implement features when needed clear progress marks don t spend much time on design stakeholder involvement Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 22 / 34

Agile Development Techniques Scrum (Hirotaka Takeuchi and Ikujiro Nonaka 1986) Flexible approach to development; incremental process Adaptability to changing requirements Roles Product owner, Scrum master, Team; Stakeholders, Managers Sprint 2-4 weeks of intense development; goal: working increment that implements the sprint backlog; sprint backlog frozen during a sprint; self organization; burn down chart Sprint Backlog requirements chosen for a sprint Product Backlog as yet unimplemented requirements Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 23 / 34

V-Model Entwicklungsstandard für Systeme des Bundes level of abstraction system requirements software requirements system integration acceptance test Analyze and Design preliminary design detailed design software integration component test Test and Integrate code and debug unit test time Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 24 / 34

V-Model Builds on waterfall model Emphasizes validation connections between late phases and early phases Objectives risk minimization quality assurance cost reduction communication between stakeholders Current instance: V-Model XT Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 25 / 34

The Unified Software Process Use-Case Driven Which user-visible processes are implemented by the system? Analysis, design, implementation, and testing driven by use-cases Architecture centric Architecture developed in parallel to use cases (mutual dependency) Iterative and Incremental eliminate risks first checkpoint after each iteration on failure of an iteration step, only current extension needs to be reconsidered small steps speed up project easy stepwise identification of the requirements Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 26 / 34

Structure of the Unified Software Process sequence of cycles after each cycle: product release with code, manuals, UML models, and test cases Start... End Zeit Cycles (each completing a new version) cycle consists of 4 phases: Inception, Elaboration, Construction, Transition each phase consists of iterations Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 27 / 34

Cycle Time Inception Elaboration Construction Transition Iteration Iteration............... Iteration Iteration #1 #2 #n 1 #n... new product versions Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 28 / 34

Main-Workflows and Phases Core Workflows Inception Elaboration Phases Construction Transition Requirements Analysis Design Implementation Testing.................. It. #1 It. #2 It. #n each phase ends with a mile stone each phase processes all workflows (with varying intensity) Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 29 / 34

Inception Phase functionality of system from users perspective most important use cases (stakeholder needs) preliminary sketch of suitable architecture project plan and cost identify most important risks (with priorities) plan elaboration phase GOAL: rough vision of the product Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 30 / 34

Elaboration Phase specify (most) use cases in detail design architecture implement most important use cases result: initial architecture plan activities and resources for remaining project use cases and architecture stable? risk management? GOAL: prototype (proof-of-concept for architecture) Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 31 / 34

Construction Phase implement system high resource needs small architectural changes GOAL: system ready for customer (small errors acceptable) Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 32 / 34

Transition Phase deliver beta-version to customer address problems (immediately or in next release) train customer Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 33 / 34

Summary Software has unique problems with far-reaching consequences Creating software systems requires structured process models Classic process phases: waterfall model Further process models: prototyping, evolutionary, incremental, spiral, agile, V-model, unified SW process Peter Thiemann (Univ. Freiburg) Softwaretechnik SWT 34 / 34