Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.

Slides:



Advertisements
Similar presentations
Lecture 5: Requirements Engineering
Advertisements

Software Quality Assurance Plan
Object-Oriented Software Development CS 3331 Fall 2009.
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Systems Analysis and Design in a Changing World, 6th Edition
CSE 470 : Software Engineering The Software Process.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 223 Applied Software Design Techniques.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 223 Applied Software Design Techniques.
Introduction to Software Engineering Lecture 5 André van der Hoek.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 9 Duplication.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 October 9, 2014 Lecture 1-2 Emily.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 8 Duplication.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 14.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 April 7, 2015 Lecture 2-1 Emily.
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
Software Engineering General Project Management Software Requirements
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
SE 555 – Software Requirements & Specifications Introduction
Enterprise Architecture
The Software Development Life Cycle: An Overview
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Topic 4 Partially based on lecture notes written by.
ICS 52: Introduction to Software Engineering Lecture Notes for Summer Quarter, 2003 Michele Rousseau Topic 3 Partially based on lecture notes written by.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Software System Engineering: A tutorial
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 12.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 223 Applied Software Design Techniques.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Software Engineering Management Lecture 1 The Software Process.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 6 Duplication.
Lecture 7: Requirements Engineering
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 October 1, 2015 Lecture 1-2 Emily.
An Introduction to Software Engineering. Communication Systems.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 10.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Software Engineering. Introduction Objective To familiarize students to the fundamental concepts, techniques, processes, methods and tools of Software.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
REQUIREMENTS - WHY WHAT AND HOW? Steve Chenoweth & Chandan Rupakheti CSSE 371 Chapters Requirements Text. Question 6.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Systems Analysis and Design in a Changing World, 6th Edition
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 291s Literature Survey in Software.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 7 Duplication.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 11.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 14.
Smart Home Technologies
Software Requirements Specification (SRS)
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Requirements Analysis
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 5 Duplication.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 13.
 System Requirement Specification and System Planning.
The Development Process of Web Applications
Chapter 2 – Software Processes
Presentation transcript:

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering Lecture 6 Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 2 Today’s Lecture Reminders Requirements engineering Requirements specification (documentation) Requirements engineering with Use Cases

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 3 Reminder: Fundamental Principles Rigor and formality Separation of concerns – Modularity – Abstraction Anticipation of change Generality Incrementality These principles apply to all aspects of software engineering

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 4 Reminder: High Cost

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 5 Cost of Change Progressively Higher

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 6 Why Requirements? “[We] have grown to care about requirements because we have seen more projects stumble or fail as a result of poor requirements than for any other reason” – (Kulak and Guiney, in “Use Cases: Requirements in Context”) Studies show that many of the key contributors to project failures originate or relate to requirements – (The Standish Group CHAOS reports)

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 7 Some stats… From those CHAOS reports 31% of projects cancelled before they are even completed – Many others not delivered or not used (“shelfware”) even if completed – Many billions wasted per year on cancelled, unused or unusable projects – 52.7% of projects were more than 189% over budget when delivered Requirements defects are expensive – They represent more than 70% of rework costs – Rework consumes about 30-50% of total project budget – Lack of user input/user involvement listed as most frequent problem

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 8 Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 9 Waterfall Operations mode Retirement Requirements phase Verify Specification phase Verify Design phase Verify Implementation phase Test Integration phase Test Changed requirements Verify Development Maintenance

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 10 The RUP Model Management Environment Business Modeling Implementation Test Analysis & Design Preliminary Iteration(s) Iter. #1 Phases Process Workflows Iterations Supporting Workflows Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Deployment Configuration Mgmt Requirements ElaborationTransitionInceptionConstruction Workflows group activities logically In an iteration, you walk through all workflows

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 11 Requirements Phase Terminology – Requirements analysis/engineering Activity of discovering/observing/gathering customer’s needs – Requirements specification Activity of describing/documenting customer’s needs Note: requirements address what a customer needs, not what a customer wants – A customer often does not know what they want, let alone what they actually need… – Time-lag between initial desire and future need – Long and arduous, often educational, process And things change “under our feet” during the requirements process...

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 12 Requirements Analysis System engineering versus software engineering – What role does software play within the full solution? – Trend: software is everywhere Contract model versus participatory design – Contract: carefully specify requirements, then contract out the development – Participatory: customers, users, and software development staff work together throughout the life cycle

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 13 Techniques for Requirements Analysis Interview customer Create use cases/scenarios Prototype solutions Observe customer Identify important objects/roles/functions Perform research Construct glossaries Question yourself Discuss: Is this familiar?

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 14 Requirements Specification Serves as the fundamental reference point between customer and software producer Defines capabilities to be provided without saying how they should be provided – Defines the “what” – Does not define the “how” Defines environmental requirements on the software to guide the implementers – Platforms, implementation language(s), … Defines constraints on the software – Performance, usability, … Defines software qualities

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 15 Why Spend a Lot of Time? A requirements specification is the source for all future steps in the software life cycle – Lays the basis for a mutual understanding Consumer (what they get) Software producer (what they build) – Identifies fundamental assumptions – Potential basis for future contracts Better get it right – Upon delivery, some software is actually rejected by customers Changes are cheap – Better make them now rather than later

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 16 Users of a Requirements Document

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 17 Non-Functional Requirement Types

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 18 Document Structure Introduction Executive summary Application context Functional requirements Environmental requirements Software qualities Other requirements Time schedule Potential risks Future changes Glossary Reference documents

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 19 Introduction What is this document about? Who was it created for? Who created it? Outline

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 20 Executive Summary Short, succinct, concise, to-the-point, description – Usually no more than one page Identifies main goals Identifies key features Identifies key risks/obstacles

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 21 Application Context Describes the situation in which the software will be used – How will the situation change as a result of introducing the software? – “World Model” Identifies all things that the system affects – Objects, processes, other software, hardware, and people – Provides an abstraction for each of those, characterizing the properties and behaviors that are relevant to the software system Identifies fundamental assumptions

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 22 Functional Requirements Identifies all concepts, functions, features, and information that the system provides to its users Provides an abstraction for each of those, characterizing the properties and functions that are relevant to the user – What is the system supposed to do? – What information does the system need? – What is supposed to happen when something goes wrong? An approximate user interface is part of functional requirements

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 23 Environmental Requirements Platforms – Hardware Operating systems, types of machines, memory size, hard disk space – Software Is it a Web app? Web 2.0?? Is it open source? Linux? Apache? PHP/MySQL? Is it enterprise software?.Net? Enterprise Java, J2EE? Programming language(s) Standards

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 24 Desired Software “ilities” (Qualities) Correctness Reliability Efficiency Integrity Usability Maintainability Testability Flexibility Portability Reusability Interoperability

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 25 Other Requirements What about cost? What about documentation? What about manuals? What about tutorials? What about on-the-job training? What about requirements that do not fit in any of the previous categories?

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 26 Time Schedule By when should all of this be done? – Initial delivery date – Acceptance period – Final delivery date What are some important milestones to be reached? – Architectural design completed – Module design completed – Implementation completed – Testing completed

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 27 Potential Risks Any project faces risks – Boehm’s top ten risks (see lecture 3) – It is important to identify those risks up-front so the customer and you (!) are aware of them One of the requirements could be to explicitly address the risks

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 28 Future Changes Any project faces changes over time – It is important to identify those changes up-front so the customer and you (!) are aware of them – These changes could simply pertain to potential future enhancements to the product One of the requirements could be to build the product such that it can accommodate future changes Note: structure the requirements document in such a way that it easily absorbs changes – Define concepts once – Partition separate concerns – …

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 29 Glossary Precise definitions of terms used throughout the requirements document

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 30 Reference Documents Pointers to existing processes and tools used within an organization Pointers to other, existing software that provides similar functionality Pointers to literature

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 31 Observations Document is structured to address the fundamental principles – Rigor – Separation of concerns Modularity Abstraction – Anticipation of change – Generality – Incrementality Not every project requires every section of the document

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 32 Specification Methods Natural language Data flow diagrams – Office automation Finite state machines – Telephone systems – Coin-operated machines Petri nets – Production plants Formulas – Matrix inversion package Objects (in object-oriented methods) Use cases (in UML)

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 33 Verification Is the requirements specification complete? Is each of the requirements understandable? Is each of the requirements unambiguous? Are any of the requirements in conflict? Can each of the requirements be verified? Are are all terms and concepts defined? Is the requirements specification unbiased?

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 34 Acceptance Test Plan Accompanies a requirements specification Specifies, in an operational way, consistency between the requirements specification and the system that will be delivered Binds a customer to accept the delivered system if it passes all the tests Covers all aspects of the requirements specification

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 35 V-Model of Development and Testing Develop Acceptance Tests Acceptance Test ReviewRequirements Review Develop RequirementsExecute System TestsDevelop Integration Tests Integration Tests ReviewDesign Review DesignExecute Integration TestsDevelop Unit Tests Unit Tests ReviewCode Review CodeExecute Unit Tests

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 36 Example French fries and mayonnaise place