The software lifecycle and its documents

Similar documents
Software Architecture

Object-Oriented Software Construction

Advanced Topics in Object Technology

Delimited. Interfaced. Readable. Modifiable. Verifiable. Prioritized* Endorsed

Requirement Analysis

Chapter 4 Objectives

Product. e ss. P roc. so get the right requirements. Garbage in garbage out,

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created>

The requirements engineering process

RE Process. Lawrence Chung Department of Computer Science The University of Texas at Dallas

Lecture 5: Requirements Specifications

Systems Analysis and Design in a Changing World, Fourth Edition

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3)

*ANSWERS * **********************************

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author> <organization> <date created>

Software Verification and Validation (VIMMD052) Introduction. Istvan Majzik Budapest University of Technology and Economics

Introduction to Software Specifications and Data Flow Diagrams. Neelam Gupta The University of Arizona

(c) Addison Wesley Chapter 3. ! Interviewing customers and domain experts. ! Questionnaires. ! Observation. ! Study of documents and software systems

<Name of the project> Software Requirement Specification

CMSC 435: Software Engineering Section 0201

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

Introduction to Software Engineering p. 1 The Scope of Software Engineering p. 3 Historical Aspects p. 4 Economic Aspects p. 7 Maintenance Aspects p.

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Object Oriented Model of Objectory Process

1.2 Building the Right System. Identifying Needs & Expectations. Where to look for needs & expectations? or Who are the stakeholders?

Introduction to Software Engineering

Sofware Requirements Engineeing

DESIGN HELPED A MAJOR AND HIGHER SOFTWARE CUSTOMER SUCCESS STORY ABOUT THE CLIENT

Requirements Engineering Process

The LUCID Design Framework (Logical User Centered Interaction Design)

Administrivia. Added 20 more so far. Software Process. Only one TA so far. CS169 Lecture 2. Start thinking about project proposal

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

CSC Advanced Object Oriented Programming, Spring Overview

Lecture 9 Requirements Engineering II

Lecture 8 Requirements Engineering

Lecture 7: Software Processes. Refresher: Software Always Evolves

Objectives. Connecting with Computer Science 2

<Company Name> <Project Name> Software Requirements Specification For <Subsystem or Feature> Version <1.0>

Requirements engineering

Software Engineering - I

Einführung in die Programmierung Introduction to Programming

Software Development Process Models

SE351a: Software Project & Process Management. 13 Oct., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa

Scenario-Based Analysis. Scenario-Based Analysis (example) Form analysis

Software Construction

Software Engineering for Outsourcing and Offshoring

Answer: D. Answer: B. Answer: B

Software Process. Software Process

Object Oriented Programming

REQUIREMENTS. Michael Weintraub Spring, 2016

(Objective-CS605 Software Engeenring-II)

Enterprise Architect Training Courses

Software Development Methodologies

Ch 4: Requirements Engineering. What are requirements?

Understanding Software Engineering

Chapter 8: SDLC Reviews and Audit Learning objectives Introduction Role of IS Auditor in SDLC

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1

Lecture Chapter 2 Software Development

Purpose and Structure of Requirements Specifications (following IEEE 830 Standard)

Rational Software White Paper

UNIT-II REQUIREMENTS ANALYSIS AND SPECIFICATION

Best Practices for Collecting User Requirements

Chapter 1: Introduction to Systems Analysis

SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming

Analysis and Design with UML

Basics : the Requirements Engineering Process

Quality Software Requirements By J. Chris Gibson

Managing Change and Complexity

Business Architecture Implementation Workshop

Vragen. Use case analysis. Use-Cases: describing how the user will Use cases

The Analysis and Proposed Modifications to ISO/IEC Software Engineering Software Quality Requirements and Evaluation Quality Requirements

An Integrated Approach to Documenting Requirements with the Rational Tool Suite

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

Test requirements in networked systems

Administrivia. Wednesday: Requirements and Specification. CS169 Lecture 4. We assign teams and you start on Monday. Determining Stakeholders and Needs

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Advanced Software Engineering: Software Testing

What is Software Architecture

SOFTWARE LIFE-CYCLE MODELS 2.1

Architectural Blueprint

Software processes. Objectives. Contents

Requirements. Requirements. Types of Requirement. What Is a Requirement?

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2

for TOGAF Practitioners Hands-on training to deliver an Architecture Project using the TOGAF Architecture Development Method

History of object-oriented approaches

Mathematics and Computing: Level 2 M253 Team working in distributed environments

VANCOUVER Chapter Study Group. BABOK Chapter 9 Techniques

Defining Project Requirements

18-642: Software Development Processes

350 Index 2005 GOAL/QPC

Lecture 8: Use Case -Driven Design. Where UML fits in

Requirements Engineering process

D50: Advances in Software Engineering. Case Study: Defining an Object-Oriented Development Process. Why Define Process?

Requirements Specification with the IEEE 830 Standard

Lesson 06. Requirement Engineering Processes

Outline of Unified Process

Evolutionary Architecture and Design

Index. brief description section (Use Case Specification documents), 138 Browser window (Rational Rose), 257 Business Rules document, 212

What s a BA to do with Data? Discover and define standard data elements in business terms

Transcription:

The software lifecycle and its documents Supplementary material for Software Architecture course B. Meyer, May 2006

Lifecycle models Origin: Royce, 1970, Waterfall model Scope: describe the set of processes involved in the production of software systems, and their sequencing Model in two meanings of the term: Idealized description of reality Ideal to be followed 2

Lifecycle: the waterfall model Feasibility study Requirements Specification Global Detailed Implementation V & V Distribution 3

Lifecycle phase: Requirements Objective: Gather user needs to define system functionality Actors: Customers Development team Other stakeholders (see next) Techniques: Feasibility study Requirements Specification Interviews, study of existing human processes, study of existing systems, Products: Requirements document QA plan (in particular test plan) Draft user s manual Global Detailed Implementation V & V Distribution 4

Properties of successful requirements Correct Complete Consistent Unambiguous Feasible Relevant Abstract Traceable Delimited Readable Modifiable Testable Prioritized Endorsed 5

Difficulties of requirements Natural language and its imprecision Formal techniques and their abstraction Users and their vagueness Customers and their demands The rest of the world and its complexity 6

Goals of performing requirements Source: OOSC Understand problem or problems that the eventual software system, if any, should solve Prompt relevant questions about problem & system Provide basis for answering questions about specific properties of problem & system Decide what system should do Decide what system should not do Ascertain that system will satisfy the needs of its stakeholders Provide basis for development of system Provide basis for V & V* of system *Validation & Verification, including testing 7

Possible requirements stakeholders Clients (tailor-made system) Customers (product for general sale) Clients and customers customers Users Domain experts Market analysts Unions? Legal experts Purchasing agents Software developers Software project managers Software documenters Software testers Trainers Consultants 8

IEEE 830-1998 IEEE Recommended Practice for Software Requirements Specifications Approved 25 June 1998 (revision of earlier standard) Descriptions of the content and the qualities of a good software requirements specification (SRS). Goal: The SRS should be correct, unambiguous, complete, consistent, ranked for importance and/or stability, verifiable, modifiable, traceable. 9

IEEE Standard 830-1998 Recommended practice for Software Requirements Specifications Recommended document structure: 1. Introduction 1.1 Purpose 1.2 Scope 1.3 Definitions, acronyms, and abbreviations Glossary! 1.4 References 1.5 Overview 2. Overall description 2.1 Product perspective 2.2 Product functions 2.3 User characteristics 2.4 Constraints 2.5 Assumptions and dependencies 3. Specific requirements Appendixes Index 10

Lifecycle phase: Specification Objective: Define precise blueprint for system functionalities Feasibility study Requirements Specification Actors: Development team Example techniques: UML, abstract data types, formal specification languages, Petri nets, State Charts, contracts Global Detailed Implementation V & V Distribution Products: Specification document Revised draft user s manual 11

Lifecycle phase: Global Design Objective: Define system architecture Feasibility study Requirements Specification Actors: Development team Global Detailed Example techniques: Design language, patterns, high-level programming language Implementation V & V Distribution Products: Specification document 12

Lifecycle: the waterfall model Feasibility study Requirements Specification Global Detailed Implementation V & V Distribution 13

V-shaped FEASIBILITY STUDY REQUIREMENTS ANALYSIS DISTRIBUTION SYSTEM VALIDATION GLOBAL DESIGN SUBSYSTEM VALIDATION DETAILED DESIGN UNIT VALIDATION IMPLEMENTATION 14

Arguments for the waterfall (After B.W. Boehm: Software engineering economics) The activities are necessary (But: merging of middle activities) The order is the right one. 15

Merging of middle activities Feasibility study Requirements Specification Global Detailed Implementation V & V Distribution 16

Problems with the waterfall Feasibility study Late appearance of actual code. Lack of support for requirements change and more generally for extendibility and reusability Lack of support for the maintenance activity (70% of software costs?) Division of labor hampering Total Quality Management Impedance mismatches Highly synchronous model Requirements Specification Global Detailed Implementation V & V Distribution 17

Quality control? Analysts Designers Implementers Testers Customers 18

Impedance mismatches As Management requested it. As the Project Leader defined it. As Systems ed it. As Programming developed it. As Operations installed it. What the user wanted. (Pre-1970 cartoon; origin unknown) 19

Problems with the waterfall Feasibility study Requirements Separate tools: Programming environment Analysis & tools, e.g. UML Consequences: Hard to keep model, implementation, documentation consistent Constantly reconciling views Inflexible, hard to maintain systems Specification Hard to accommodate bouts of late wisdom Global Detailed Implementation V & V Distribution 20

The Spiral model (Boehm) 21

Prototyping in software? In other engineering fields, prototyping means one of: 1. Smaller-scale model (e.g. water-processing plant ) 2. Fully functional product, but custom-built, before attempting mass-production (e.g. car ) In software: 1 is dubious 2 has no equivalent in ordinary circumstances (except for reuse, see next) 22

Prototyping in software The term is used in one of the following meanings: Experimentation: Requirements capture Try specific techniques: GUI, implementation ( buying information ) Pilot project Incremental development Throw-away development (Fred Brooks, The Mythical Man-Month: Plan to throw one away, you will anyhow ). 23

Risks of throw-away prototyping If it removes an important constraint, it may be useless If you can envision shipping it, it s not an experiment! What if you have to ship anyway? 24

Risks of the spiral and prototyping M.C Escher: Waterval 25

Extreme Programming and agile methods Reaction against over-constraining models Basic ideas: Short development cycles No full initial specification; refine specs as you go Test-Driven Development Involve customers Recommended practices, e.g. Pair Programming 26

The cluster model Example classes: Seamless development: Single notation, tools, concepts, principles throughout Continuous, incremental development Keep model, implementation and documentation consistent Reversibility: go back and forth Analysis Design V&V Implementation Generalization PLANE, ACCOUNT, TRANSACTION STATE, COMMAND HASH_TABLE TEST_DRIVER TABLE 27

Generalization Prepare for reuse For example: Remove built-in limits Remove dependencies on specifics of project Improve documentation, contracts... Extract commonalities and revamp inheritance hierarchy Few companies have the guts to provide the budget for this 28

The cluster model Cluster 1 Cluster 2 Cluster n A D I V G S A D I V G A D I V G A D I V G 29

Reversibility Analysis Design V&V Implementation Generalization 30

Seamless development in Eiffel Diagram Tool System diagrams can be produced automatically from software text Works both ways: update diagrams or update text other view immediately updated No need for separate UML tool Metrics Tool Profiler Tool Documentation generation tool... 31