Introduction to Software Requirements and Design

Similar documents
Object-oriented Analysis and Design

Testing in the Lifecycle

UNIT-III LIFE-CYCLE PHASES

Systems Engineering Overview. Axel Claudio Alex Gonzalez

Software Life Cycle Models

Systems Engineering Process

Course Introduction and Overview of Software Engineering. Richard N. Taylor Informatics 211 Fall 2007

UNIT VIII SYSTEM METHODOLOGY 2014

Understanding Requirements. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Requirements Analysis aka Requirements Engineering. Requirements Elicitation Process

Requirements Gathering using Object- Oriented Models

THE APPLICATION OF SYSTEMS ENGINEERING ON THE BUILDING DESIGN PROCESS

Technology Transition Assessment in an Acquisition Risk Management Context

About Software Engineering.

Developing and Distributing a CubeSat Model-Based Systems Engineering (MBSE) Reference Model

Introduction to Software Engineering

IS 525 Chapter 2. Methodology Dr. Nesrine Zemirli

A New Approach to Software Development Fusion Process Model

Software Development Lifecycle

An introduction to software development. Dr. C. Constantinides, P.Eng. Computer Science and Software Engineering Concordia University

Miniature Deployable High Gain Antenna for CubeSats

Code Complete 2: Realities of Modern Software Construction

F. Tip and M. Weintraub REQUIREMENTS

Test and Evaluation of Autonomous Systems & The Role of the T&E Community in the Requirements Process

Software LEIC/LETI. Lecture 21

A FRAMEWORK FOR PERFORMING V&V WITHIN REUSE-BASED SOFTWARE ENGINEERING

Program Success Through SE Discipline in Technology Maturity. Mr. Chris DiPetto Deputy Director Developmental Test & Evaluation October 24, 2006

Course Overview; Development Process

Course Overview; Development Process

Concurrent Increment Sequencing and Synchronization with Design Structure Matrices in Software- Intensive System Development

Design Thinking Workshop: Solving Real Problems (Part 1 & 2)

Course Overview; Development Process

Information Systemss and Software Engineering. Computer Science & Information Technology (CS)

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Domain Understanding and Requirements Elicitation

DEFENSE ACQUISITION UNIVERSITY EMPLOYEE SELF-ASSESSMENT. Outcomes and Enablers

Object-Oriented Design

A Holistic Approach to Systems Development

Avoiding the Problems

Understand that technology has different levels of maturity and that lower maturity levels come with higher risks.

M&S Requirements and VV&A: What s the Relationship?

Course Overview; Development Process

UNIT IV SOFTWARE PROCESSES & TESTING SOFTWARE PROCESS - DEFINITION AND IMPLEMENTATION

FP7 AAT Level 0. FP7 AAT Level 0. Roberto Bojeri. Workshop ACARE Italia. Torino, 17 Maggio 2012

Grundlagen des Software Engineering Fundamentals of Software Engineering

BEYOND SHALL STATEMENTS: MODERNIZING REQUIREMENTS ENGINEERING

Fundamentals of Systems Engineering. Human-Systems Engineering

Model-Based Systems Engineering Methodologies. J. Bermejo Autonomous Systems Laboratory (ASLab)

Jerome Tzau TARDEC System Engineering Group. UNCLASSIFIED: Distribution Statement A. Approved for public release. 14 th Annual NDIA SE Conf Oct 2011

Six steps to measurable design. Matt Bernius Lead Experience Planner. Kristin Youngling Sr. Director, Data Strategy

Systems for Green Operations ITD

Towards an MDA-based development methodology 1

Intelligent Decision Support for Road Mapping A Technology Transfer Case Study with Siemens Corporate Technology

CSE - Annual Research Review. From Informal WinWin Agreements to Formalized Requirements

Lecture 13: Requirements Analysis

Software-Intensive Systems Producibility

ACE3 Working Group Session, March 2, 2005

Navigating the Healthcare Innovation Cycle

Using the Streamlined Systems Engineering (SE) Method for Science & Technology (S&T) to Identify Programs with High Potential to Meet Air Force Needs

IBM Software Group. Mastering Requirements Management with Use Cases Module 2: Introduction to RMUC

Developing Requirements for Technology-Driven Products

H2020 Aviation - new "Level 0"

Stakeholder and process alignment in Navy installation technology transitions

Autonomy Test & Evaluation Verification & Validation (ATEVV) Challenge Area

Leveraging Simulation to Create Better Software Systems in an Agile World. Jason Ard Kristine Davidsen 4/8/2013

THR%%A%P COM 1?4w XFROX. Agenda

Gerald G. Boyd, Tom D. Anderson, David W. Geiser

Weather and Environmental Services - QMS Manual

EGS-CC. System Engineering Team. Commonality of Ground Systems. Executive Summary

EXPLORING HOW ENGINEERING ENTREPRENEURSHIP COMPETENCIES ALIGN WITH ABET CRITERION 3A-K

Code Complete 2: A Decade of Advances in Software Construction Construx Software Builders, Inc. All Rights Reserved.

Unit 5: Unified Software Development Process. 3C05: Unified Software Development Process USDP. USDP for your project. Iteration Workflows.

Human Systems Integration (HSI) and DevOps

Strategies for Research about Design: a multidisciplinary graduate curriculum

IC Conflict. Surveillance/MICA Workshop. Jérôme Bodart

Third Year (PR3) Projects

Technology readiness applied to materials for fusion applications

Technology Needs Assessments under GEF Enabling Activities Top Ups

APPLICATION OF SYSTEMS ENGINEERING TO RAPID PROTOTYPING FOR CLOSE AIR SUPPORT

An Element of Digital Engineering Practice in Systems Acquisition

ARTES Competitiveness & Growth Full Proposal. Requirements for the Content of the Technical Proposal. Part 3B Product Development Plan

A New - Knot Model for Component Based Software Development

NRC Workshop on NASA Technologies

ACAS Xu UAS Detect and Avoid Solution

Manufacturing Readiness Assessment Overview

Introduction to adoption of lean canvas in software test architecture design

RESEARCH AND INNOVATION STRATEGY. ANZPAA National Institute of Forensic Science

Addis Ababa University New Mexico State University in collaboration with the Metal Engineering Corporation Systems Engineering Initiative

Human-Computer Interaction IS 4300

Developing and Distributing a Model-Based Systems Engineering(MBSE) CubeSat Reference Model Status

B/E AEROSPACE ESSENCE INSERTS COLLECTION

Lean Enablers for Managing Engineering Programs

Each individual is to report on the design, simulations, construction, and testing according to the reporting guidelines attached.

Do not copy BME Abbreviated Course Title (19 spaces or less): Design of Biomedical Systems and Devices

Project Management for Research and Development: Using Tailored Processes to Assure Quality Outcomes

An Ontology for Modelling Security: The Tropos Approach

Michael DeVries, M.S.

ISO ISO is the standard for procedures and methods on User Centered Design of interactive systems.

SOFT 423: Software Requirements

A Knowledge-Centric Approach for Complex Systems. Chris R. Powell 1/29/2015

Transcription:

Introduction to Software Requirements and Software Requirements and CITS 4401 Lecture 1 Outline 1. What to expect in CITS4401 2. SE: what are the problems? 3. Some important concepts Abstraction Product and SW Quality 4. Three Models Software Engineering Is a creative process in which there are few right/wrong answers but nonetheless some designs are (much) better than others. Choices must be evaluated and justified. Requirements Engineering A difficulty in SE: How to correctly capture the requirements. and implement a flight booking system using Java RMI. It is assumed that the Company is on the server side, with all the different system classes and functionalities, and the GUI client and interfaces are on the client side. Clear Concise Doesn t change Feasible 1

CITS4401 Lectures Lectures will present an overview of problems, theory, and techniques for selected topics in SE, with a specific focus on requirements and design Lectures are supported by essential core reading in the text book (Bruegge & Dutoit), also Sommerville, Pressman and published articles. You will need a copy of Bruegge & Dutoit but copies of other material are available in the Science Library closed reserve CITS4401 Practicals o o o Fortnightly 2 hour workshop group classes for applying SE requirements and design techniques Pre-class preparation not (usually) required. Handouts will be available on the web. Further work after the class is required Class work usually in groups Outline 1. What to expect in CITS4401 2. SE: what are the problems? 3. Some important concepts Abstraction Product and SW Quality 4. Three Models 2

What is involved in SE? (1) modelling focus at any one time on only the relevant details. Many different models of the SW system and its domain are used during development creative problem solving models are used to search for an acceptable solution and the search is driven by experimentation and constrained by time and budget What is involved in SE? (2) knowledge acquisition SEs collect data, organize it into information and formalize it into knowledge rationale driven when acquiring knowledge and making decisions, SEs need to capture the context in which decisions were made and the reasons for those decisions Why is SE difficult? The two fundamental problems of software engineering are the management of complexity and change Why is there complexity and change? Requirements are complex The client usually does not know all the functional requirements in advance Requirements may be changing Technology enablers introduce new possibilities to deal with nonfunctional requirements Frequent changes are difficult to manage Identifying milestones and cost estimation is difficult There is more than one software system New system must often be backward compatible with existing system ( legacy system ) Phased development: Need to distinguish between the system under development and already released systems 3

Complexity SW systems perform many functions are built to achieve many different, often conflicting objectives comprise many components many components are custom made and complex themselves many participants from different disciplines development process often spans many years difficult to understand completely by any single person Complexity The Boeing-777 uses a mix of proven equipment, many new technologies and some new features. Altogether the digital aircraft contains over 5x10 6 lines of code. Report AGARD-AR-343, Advisory Group for Aerospace R&D 1996 Complexity Change 1 st year computing projects have approx 250 lines of code requiring apx 25 person hours of effort so the B-777 code is the size of 20,000 1 st year computing projects taking 57 person years No matter where you are in the system life cycle, the system will change, and the desire to change it will persist throughout the life cycle. Bersoff s 1 st law of system engineering (quoted by Sommerville) 4

Change Change pervades SW development Requirements, design, code, documentation can all change for good reasons Can you think of some examples? A change can impact every work product: system model, source code, documentation Which products would be affected by the changes you identified above? SW is Flexibile Apollo-11 launch July 1969 Guidance Computer 2K of 16 bit RAM 36K hard-wired core-rope memory Never failed in flight operations (almost 6 years mean time to failure) Problems with Flexibility Kazakhstan, 5 th May 2003 Outline 1. What to expect in SRD 2. SE: what are the problems? 3. Some important concepts Abstraction Product and SW Quality 4. Three Models Kourou, French Guiana, 4 th June 1996 5

A Complex A Good Abstraction of the Complex Abstract (essence, summary OED) Abstraction enables us to focus only on relevant details of a complex problem What makes a good abstraction? It contains all necessary information It omits irrelevant detail Information provided is easy to use Note that the tube map is NOT an accurate map but a schematic one Product & : A set of activities that is performed towards a specific purpose. Examples of processes include requirements elicitation, analysis, project management, and testing. (B&D) Product: a thing produced by a process In order to produce high quality SW we must consider the quality of both product and process 6

SW Quality Software Project Management The production of high quality SW is a goal of almost all developments But how can we achieve this goal? Constructive methods (before or during) e.g. Refinement of specifications to code; cleanroom; pair programming Review methods (after) e.g. Testing; Software and document inspections; Prototyping The deadline for the project is 5pm Tuesday 1st of June 2004. The demonstration will be held on Thursday 3rd of June from 9am-12pm in Room 2.07. Your should submit : Source code and class files for your system. The code has to be well documented. A how to use (or run) file. You will be assessed on Fixed deadline Fixed project time (plus or minus a few late nights) Feasible: done 100s of times before Outline 1. What to expect in SRD 2. SE: what are the problems? 3. Some important concepts Abstraction Product and SW Quality 4. Three Models SW models Software lifecycle: All activities and work products necessary for the development of a software system, including Requirements Implementation Test Software life cycle model: An abstraction representing a SW life cycle for the purpose of understanding, monitoring or controlling a SW life cycle 7

Project Initiation Concept Exploration Allocation Requirements The Waterfall Model of the Software Life Cycle (from Royce 1970) V-Model: Distinguishes between Development and Verification Activities Level of Detail Low Requirements Elicitation Analysis Client s Understanding Developer s Understanding Problem with V-Model: Client s Perception is the same as the Developer s Perception Acceptance Testing Testing Implementation Integration Testing Verification & Validation Installation High Object Unit Testing Operation & Support Project Time Sawtooth Model Requireme nts Elicitation Prototype Demonstration 1 Prototype Demonstration 2 Client s Understanding Developer s Understanding Client Client Acceptanc e Sharktooth Model Requireme nts Elicitation Prototype Demonstration 1 Prototype Demonstration 2 Client s Understanding Manager s Understanding Developer s Understanding Client Client Acceptanc e Requireme nts Analysis Developer Integration & Test review Manager Integration & Test Object Implementati on Integration & Test Unit Test Requireme nts Analysis Object Implementati on Developer Unit Test Integration & Test Integration & Test 8

Comparing Models Managers love waterfall models Nice milestones No need to look back (linear system), one activity at a time Easy to check progress : 90% coded, 20% tested Different stakeholders need different abstractions => V-Model, Sawtooth and sharktooth Software development is iterative During design: problems with requirements are identified During coding: design and requirement problems are found During testing: coding, design & requirement errors are found => Spiral Model Spiral Model (Boehm) Deals with Iteration Identify risks Assign priorities to risks Develop a series of prototypes for the identified risks starting with the highest risk. Use a waterfall model for each prototype development ( cycle ) If a risk has successfully been resolved, evaluate the results of the cycle and plan the next round If a certain risk cannot be resolved, terminate the project immediately Spiral Model Determine objectives, alternatives, & constraints Plan next phase Requireme nt s Concept of pla n ope ra ti on Softwa re Syste m Requireme nt s Produc t Det ai le d Deve lopme nt Requireme nt s P2 Code Inte gra ti on Acc e pt anc e Te st Evaluate alternatives, identify & resolve risks P1 Prototype 3 Prototype 2 Prototype 1 Inte gra ti on & Te st Unit Test Develop & verify next level product Activities ( Rounds ) in Boehm s Spiral Model Concept of Operations Software Requirements Software Product Detailed Code Unit Test Integration and Test Acceptance Test Implementation For each cycle go through these steps Define objectives, alternatives, constraints Evaluate alternative, identify and resolve risks Develop, verify prototype Plan next cycle 9

Determine Objectives, Alternatives and Constraints Determine objectives, alternatives, & constraints Project Start Evaluate alternatives, identify & resolve risks P1 Prototype 3 Prototype 2 Prototype 1 Evaluate Alternatives, Identify, resolve risks Determine objectives, alternatives, & constraints Evaluate alternatives, identify & resolve risks P1 Prototype 3 Prototype 2 Prototype 1 Build Prototype Plan next phase Requireme nt s Concept of pla n ope ra ti on Softwa re Syste m Requireme nt s Produc t Det ai le d Deve lopme nt Requireme nt s P2 Code Inte gra ti on Acc e pt anc e Te st Inte gra ti on & Te st Unit Test Develop & verify next level product Plan next phase Requireme nt s Concept of pla n ope ra ti on Softwa re Syste m Requireme nt s Produc t Det ai le d Deve lopme nt Requireme nt s P2 Code Inte gra ti on Acc e pt anc e Te st Inte gra ti on & Te st Unit Test Develop & verify next level product Develop & Verify Product Determine objectives, alternatives, & constraints Evaluate alternatives, identify & resolve risks Prepare for Next Activity Determine objectives, alternatives, & constraints Evaluate alternatives, identify & resolve risks P1 Prototype 3 Prototype 2 Prototype 1 Requireme nt s Concept of pla n ope ra ti on Softwa re Syste m Requireme nt s Produc t Det ai le d Deve lopme nt Requireme nt s P2 Code P1 Prototype 3 Prototype 2 Prototype 1 Requireme nt s Concept of pla n ope ra ti on Softwa re Syste m Requireme nt s Produc t Det ai le d Deve lopme nt Requireme nt s P2 Code Plan next phase Inte gra ti on Acc e pt anc e Te st Inte gra ti on & Te st Unit Test Develop & verify next level product Concept of Operation Activity Plan next phase Lifecycle Modeling Inte gra ti on Acc e pt anc e Te st Inte gra ti on & Te st Unit Test Develop & verify next level product 10

Limitations of the Waterfall, V and Spiral Models None of these model deals well with frequent change The Waterfall and V models assume that once you are done with a phase, all issues covered in that phase are closed and cannot be reopened The Spiral model can deal with change between phases, but once inside a phase, no change is allowed What do you do if change is happening more frequently? ( The only constant is the change ) Issue based models can address this problem not examinable but see B&D for discussion Maturity A software development process is mature if the development activities are well defined and if management has some control over the management of the project maturity is described with a set of maturity levels and the associated measurements (metrics) to manage the process Assumption: With increasing maturity the risk of project failure decreases Capability Maturity Levels 1. Initial Level also called ad hoc or chaotic 2. Repeatable Level Minimal documentation to attempt repeated steps 3. Defined Level is institutionalized (sanctioned by management) 4. Managed Level Activities are measured and provide feedback for resource allocation (process itself does not change) 5. Optimizing Level allows feedback of information to change process itself 11