Software engineering Olli Alm Lecture 2: requirements, modelling & representation.

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

Introduction to Software Engineering Dr. Basem Alkazemi
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Software Engineering COMP 201
CAP 252 Lecture Topic: Requirement Analysis Class Exercise: Use Cases.
Introduction to Software Engineering
Software Requirements
SWE Introduction to Software Engineering
WKES 3202 SOFTWARE REQUIREMENTS ENGINEERING SEMESTER 1 SESSION 2004/2005.
1 / 26 CS 425/625 Software Engineering Software Requirements Based on Chapter 5 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
Software Requirements
7M701 1 Software Engineering Software Requirements Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 5
CS 425/625 Software Engineering Software Requirements
1 CS 425 Software Engineering Project Preparation Use Case Modeling [Based on Chapters 3 & 4, Arlow and Neustadt, “UML and the Unified Process,” Addison-Wesley,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Software Requirements
Overview of Software Requirements
1 CSC-3324: Chapter 4 Title: What is a requirement? Mandatory reading: Sommerville 6, 7 th ed., Chap.: 7.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 5 Slide 1 Software Requirements l Descriptions and specifications of a system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements 2.
Software Requirements
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
Requirements Engineering
Requirements Analysis
Slide 1 Chapter 4 Software Requirements. Slide 2 Objectives l To introduce the concepts of user and system requirements l To describe functional and non-functional.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Software Requirements l Descriptions and specifications of a system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Dr. Tom WayCSC Software Requirements CSC 4700 Software Engineering Lecture 2 Based on Sommerville, Chapter 6.
AGU COE/COC Software Engineering CSE 402 / CSC 308 Slide 1 Requirements engineering l The process of establishing the services that the customer requires.
소프트웨어공학 강좌 1 Chap 4. Software Requirements - Descriptions and specifications of a system - Soo-Mi Choi
Software Requirements Engineering CSE 305 Lecture-2.
Software Requirements Descriptions and specifications of a system.
Software Requirements Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn Lecture 4 & 5.
Software Requirements. Objectives l To introduce the concepts of user and system requirements l To describe functional and non-functional requirements.
Requirements Documentation CSCI 5801: Software Engineering.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
Chapter 4 Software Requirements
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
Slide 1 CS 310 Ch 6: Software Requirements Requirements engineering: establishing the services that the customer requires from a system and the constraints.
 To introduce the concepts of user and system requirements  To describe functional and non-functional requirements  To explain how software requirements.
Software Requirements Software Requirements - adopted & adapted from I. Sommerville, 2004.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 / 54 Software Requirements.
 To introduce the concepts of user and system requirements  To describe functional and non-functional requirements  To explain how software requirements.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 Software Requirements.
Software Engineering Chapter 6 Software requirements Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
Requirements Analysis
Software Engineering, 8th edition. Chapter 6 1 Courtesy: ©Ian Sommerville 2006 March 05 th, 2009 Lecture # 8 Software Requirements.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Software Requirements l Descriptions and specifications of a system.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 6/6/2016 1/25 IT076IU Software Engineering Project Review 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
1 Software Requirements Descriptions and specifications of a system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements (utvalgte foiler fra Kap 6 og 7 i Sommerville)
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 6 Slide 1 Software Requirements.
Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Software Engineering, COMP201 Slide 1 Software Requirements.
Chapter 4 – Requirements Engineering
Classifications of Software Requirements
Software Requirements
Software Requirements
Software Requirements
Requirements Document
Presentation transcript:

Software engineering Olli Alm Lecture 2: requirements, modelling & representation

Phases of a software engineering project: requirements definition (Pressman: ch. 7: Requirements engineering) (Sommerville: ch. 6-8 in Requirements)  The idea: we have a customer with needs well defined / untechnical / unclear / something? A customer in the broad sense: a company, a friend, a financier or yourself?  In this phase, we try to formalize and specify the customer needs (in order to implement a program) Requirements definition Implementation Maintenance Testing Design

Phases of a software engineering project: requirements definition  The result (should be) (a bunch of) specification documents  Description for customer (external, informal+formal)  Description for the designers (internal, informal+formal) agreement between customer and supplier (the contract!)  requirements functional / non-functional  cost + (initial) schedule  representation in good level of abstraction (not too specific, not too broad) But… Requirements definition Implementation Maintenance Testing Design

Phases of a software engineering project: requirements definition

Two representation levels:  For the customer and team  user requirements  For the team  system requirements Requirements definition Implementation Maintenance Testing Design

Phases of a software engineering project: requirements definition An example (Sommerville): 1. The software must provide a means of representing and 1.accessing external files created by other tools. 1.1 The user should be provided with facilities to define the type of external files Each external file type may have an associated tool which maybe applied to the file Each external file type may be represented as a specific icon on the user’s display Facilities should be provided for the icon representing an external file type to be defined by the user 1.5 When a user selects an icon representing an external file, the effect of that selection is to apply the tool associated with the type of the external file to the file represented by the selected icon 1.2 User requirement definition System requirements specification

Phases of a software engineering project: requirements definition An example (Sommerville): 1. The software must provide a means of representing and 1.accessing external files created by other tools. 1.1 The user should be provided with facilities to define the type of external files Each external file type may have an associated tool which maybe applied to the file Each external file type may be represented as a specific icon on the user’s display Facilities should be provided for the icon representing an external file type to be defined by the user 1.5 When a user selects an icon representing an external file, the effect of that selection is to apply the tool associated with the type of the external file to the file represented by the selected icon 1.2 User requirement definition System requirements specification What user wants to do How the system makes it possible

Phases of a software engineering project: requirements definition: user requirements User requirement guidelines (Sommerville): 1. Use standard format / template 2. Use consistent language, classify requirements (!) (mandatory [’system shall…’, desirable [’system should’] etc.) 3. (- Highlight the keyparts of the text -) 4. Avoid computer jargon! 5. In addition to text, use diagrams & pictures

Phases of a software engineering project: requirements definition: system requirements System requirements (Sommerville): Describe external behaviour of the system, not it’s design or implementation (if possible)  In some cases, selected architecture affect on requirements  design is included to requirements Extend the use cases

Phases of a software engineering project: requirements definition Distinction in types of requirements: functional requirements Services that system should provide How the system should react particular inputs How the system should behave in particular situations non-functional requirements reliability, privacy, safety, efficiency, portability, usability  n-f requirements may affect also to the process, not only to the product (e.g. process quality(?) for safety) Requirements definition Implementation Maintenance Testing Design

Phases of a software engineering project: requirements definition Examples of non-functional requirements (Sommerville): ”the user interface should be implement as simple HTML without frames or Java applet” (product requirement) ”the system development process and documents shall conform to the process and deliverables defined in XYZ…” (organizational requirement) ”The system shall not disclose any personal information…” (external requirement) Requirements definition Implementation Maintenance Testing Design

Phases of a software engineering project: requirements definition Requirements definition Implementation Maintenance Testing Design Metrics for non-functional requirements (Sommerville)

Representing user interaction in high level  Forms of representation: Natural language (NL), structured templates (ST), diagrams (D)  In requirements analysis: 1. Scenario descriptions 2. Use cases 3. Sequence diagrams

Representing user interaction in high level: 1. scenarios  Scenario description: real-life example of the use case with the ”default progress / phases”  Case example, opening the door: ”The teacher is on the hallway. She wants to enter the class room. She takes the keys from her pocket and opens the door by turning the key in the lock and then pulling the door.”  Informative description to represent the system usage scenarios in high level  Description in natural language (previous example) or with controlled templates.

Representing user interaction in high level: 1. scenarios (template)  Scenario description: real-life example of the use case with the ”default progress / phases”  Template: a form-like description, e.g.: Initial assumption: the situation Normal: usual flow of the case What can go wrong: unexpected behavior Other activities: what is happening simultaneously System state or completion: where we are after this?

Representing user interaction in high level: 1. scenarios (template) An example [Sommerville, ch.7]

Representing user interaction in high level: 1. scenarios (template) An example [Sommerville, ch.7]

Representing user interaction in high level: 2. use cases  How the user interacts with the system Actors involved, the type of the interaction Stick figures, named ellipses + arrow in between © Sommerville, 2004

Representing user interaction in high level: 2. use cases  How the user interacts with the system Actors involved, the type of the interaction Stick figures, named ellipses + arrow in between Roles of the users / user groups! © Sommerville, 2004

Representing user interaction in high level: 2. use cases  How the user interacts with the system Actors involved, the type of the interaction Stick figures, named ellipses + arrow in between Roles of the users / user groups! © Sommerville, 2004

Representing user interaction in high level: 3. scenario diagrams  Scenario diagrams extend use cases to describe also the inner behavior of the system Interaction between components Timely dependent description  In addition, sequence diagrams are also used to describe design and implementation of the system  how components interacts with each other

Representing user interaction in high level: 3. scenario diagrams © Sommerville, 2004

Representing user interaction in high level: 3. scenario diagrams © Sommerville, 2004  Scenario diagram is also known by name sequence diagram in general, sequence diagrams indicate interaction between objects or functional units to fulfill a certain (”bigger”) task. Timely dependence: sequence diagram states explicitly the order of the interaction  But not (usually) the processing time of a component  Relative processing time can be described by the vertical length of the activity

Representing user interaction in high level: 3. scenario diagrams © Sommerville, 2004 activity of the object time

Phases of a software engineering project: requirements definition  The output of this phase is software requirements document IEEE standard IEEE/ANSI  Should state WHAT the system should do, not HOW it does it (how  design document) [Sommerville] Requirements definition Implementation Maintenance Testing Design

Software requirements document Adapted from Sommerville, Software engineering 7, p.139 Document structure: 1) Preface 2) Introduction 3) Glossary 4) User requirements definition 5) System architecture 6) System requirements specification 7) System models 8) System evolution 9) Appendices 10) Index

Software requirements document Adapted from Sommerville, Software engineering 7, p.139 Document structure: 1) Preface -expected readership -version history (of this document) -what is new in this version -summary of changes

Software requirements document Adapted from Sommerville, Software engineering 7, p.139 Document structure: 2) Introduction -need for the system (=why?) -short description of functions -business / strategic objectives of the customer

Software requirements document Adapted from Sommerville, Software engineering 7, p.139 Document structure: 3) Glossary -technical terms explained

Software requirements document Adapted from Sommerville, Software engineering 7, p.139 Document structure: 4) User requirements definition -user requirements -non-functional system requirements -natural language, diagrams, controlled language, templates…

Software requirements document Adapted from Sommerville, Software engineering 7, p.139 Document structure: 5) System architecture -high-level overview of the system -main modules and their functions represented

Software requirements document Adapted from Sommerville, Software engineering 7, p.139 Document structure: 6) System requirements specification -functional requirements in detail -non-functional requirements in detail

Software requirements document Adapted from Sommerville, Software engineering 7, p.139 Document structure: 7) System models -relations between system modules -object models? Flow models?

Software requirements document Adapted from Sommerville, Software engineering 7, p.139 Document structure: 8) System evolution -explicit notion how the system will adapt for changing user needs hardware evolution

Software requirements document Adapted from Sommerville, Software engineering 7, p.139 Document structure: 9) Appendices -technical, detailed documentation

Software requirements document Adapted from Sommerville, Software engineering 7, p.139 Document structure: 10) Index -for finding descriptions

Software requirements document Document structure (revisited), essential parts bolded: 1) Preface 2) Introduction 3) Glossary 4) User requirements definition 5) System architecture 6) System requirements specification 7) System models 8) System evolution 9) Appendices 10) Index

Software requirements: case study  Define requirements for door access system Give a general description of the system Define functional requirements Define non-functional requirements Can you specify different groups of users? Define use cases Give examples of basic scenarios