Introduction to Software Engineering Lecture 5 André van der Hoek.

Slides:



Advertisements
Similar presentations
Lecture 5: Requirements Engineering
Advertisements

Software Quality Assurance Plan
Object-Oriented Software Development CS 3331 Fall 2009.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
Systems Analysis and Design in a Changing World, 6th Edition
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Software Requirements Engineering
Introduction to Software Engineering Lecture 4 André van der Hoek.
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 April 7, 2015 Lecture 2-1 Emily.
Software Engineering General Project Management Software Requirements
Fundamentals of Information Systems, Second Edition
1 Jul 2005CSE403, Summer'05, Section 02 Section 02: Life Cycle Architecture Review Valentin Razmov.
Overview of 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
Software engineering Olli Alm Lecture 2: requirements, modelling & representation.
Enterprise Architecture
Chapter 3 Software Processes.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
The Software Development Life Cycle: An Overview
S/W Project Management
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
1 ICS 122: Software Specification and Quality Engineering Spring 2002Lecturers: H. Muccini and D. J. Richardson Lecture 13: Summary The three aspects:
CLEANROOM 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
©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.
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
Software Requirements Engineering CSE 305 Lecture-2.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
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.
12.1 Introduction Checklists are used as a technique to give status information in a formalized manner about all aspects of the test process. This chapter.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Systems Analysis and Design in a Changing World, 6th Edition
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
CT1404 Lecture 2 Requirement Engineering 1 1. Today's Lecture Definition of a Software Requirement Definition of Software Requirements Management Characteristics.
Systems Development Life Cycle
1 Quality Attributes of Requirements Documents Lecture # 25.
Formal Methods.
OHTO -01 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
CSE 303 – Software Design and Architecture
Smart Home Technologies
Software Requirements Specification (SRS)
Software Requirements Specification Document (SRS)
Requirements Analysis
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
CS646: Software Design and Architectures Introduction and Overview †  Definitions.  The general design process.  A context for design: the waterfall.
 System Requirement Specification and System Planning.
Classifications of Software Requirements
The Development Process of Web Applications
About the Presentations
Requirements Analysis
Dr. Jiacun Wang Department of Software Engineering Monmouth University
Presentation transcript:

Introduction to Software Engineering Lecture 5 André van der Hoek

Today’s Lecture Requirements engineering Requirements specification

Recurring, Fundamental Principles Rigor and formality Separation of concerns Modularity Abstraction Anticipation of change Generality Incrementality These principles apply to all aspects of software engineering

ICS 52 Life Cycle Requirements phase Verify Design phase Verify Implementation phase Test Testing phase Verify

Requirements Phase Terminology Requirements analysis/engineering Activity of unearthing a customer’s needs Requirements specification Document describing a 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 need Time-lag between initial desire and future need Long and arduous, often educational, process

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

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 Use the principles

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

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

Users of a Requirements Document

Non-Functional Requirement Types

Structure Introduction Executive summary Application context Functional requirements Environmental requirements Software qualities Other requirements Time schedule Potential risks Future changes Glossary Reference documents

Introduction What is this document about? Who was it created for? Who created it? Outline

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

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

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

Environmental Requirements Platforms Hardware Operating systems, types of machines, memory size, hard disk space Software CORBA, Jini, DCOM, 4GL, … Programming language(s) Standards

Software Qualities Correctness Reliability Efficiency Integrity Usability Maintainability Testability Flexibility Portability Reusability Interoperability

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?

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

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

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 …

Glossary Precise definitions of terms used throughout the requirements document

Reference Documents Pointers to existing processes and tools used within an organization Pointers to other, existing software that provides similar functionality Pointers to literature

Structure Introduction Executive summary Application context Functional requirements Environmental requirements Software qualities Other requirements Time schedule Potential risks Future changes Glossary Reference documents

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

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)

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?

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

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

Example French fries and mayonnaise place

Your Tasks 1. Read and study slides of this lecture 2. Read Chapter 9 of van Vliet 3. Note: discussion starts Friday