University of Toronto Department of Computer Science © 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

UML an overview.
25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Software Requirements Engineering
CS3773 Software Engineering Lecture 03 UML Use Cases.
Introduction To System Analysis and Design
Software Testing and Quality Assurance
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
The Architecture Design Process
Lecture 3: Requirements Modeling Intro Professor Aditya Ghose Director, Decision Systems Lab School of IT and Computer Science University of Wollongong.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
HAS. Patterns The use of patterns is essentially the reuse of well established good ideas. A pattern is a named well understood good solution to a common.
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
Requirement Engineering – A Roadmap
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
Requirements modelling motivations: I We need a language for communicating shared perceptions of the requirements for the target system between human stakeholders.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Foundations This chapter lays down the fundamental ideas and choices on which our approach is based. First, it identifies the needs of architects in the.
Course Instructor: Aisha Azeem
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
System Analysis Overview Document functional requirements by creating models Two concepts help identify functional requirements in the traditional approach.
System Analysis & Design
Lecture 14: Requirements Analysis
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec16 1 Lecture 16: Object Oriented Modeling Methods Basics of Object.
Requirements Expression and Modelling
Nature of Software Design
CSCI-383 Object-Oriented Programming & Design Lecture 9.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Software Design: An Introduction by David Budgen Presented by Shane Marcus EEL 6883 – Spring 2007 Presented by Shane Marcus EEL 6883 – Spring 2007.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
SOFTWARE DESIGN.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
Formal Methods.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Finite State Machines (FSM) OR Finite State Automation (FSA) - are models of the behaviors of a system or a complex object, with a limited number of defined.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction.
Chapter 6 Guidelines for Modelling. 1. The Modelling Process 1. Modelling as a Transformation Process 2. Basic Modelling Activities 3. Types of Modelling.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Introduction to the Unified Modeling Language.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
UML (Unified Modeling Language)
System Modeling Chapter 4
Object-Oriented Analysis
Introduction to the Unified Modeling Language
Chapter 20 Object-Oriented Analysis and Design
Software Design Methodologies and Testing
Presentation transcript:

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 1 Requirements Modelling

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 2 Lecture 11: Requirements Modelling Ü A little refresher:  What are we modelling?  Requirements; Systems; Systems Thinking Ü Role of Modelling in RE  Why modelling is important  Limitations of modelling Ü Brief overview of modelling languages Ü Modelling principles  Abstraction  Decomposition  Projection  Modularity

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 3 Refresher: Definitions Ü Some distinctions:  Domain Properties - things in the application domain that are true whether or not we ever build the proposed system  Requirements - things in the application domain that we wish to be made true by delivering the proposed system  A specification - a description of the behaviours the program must have in order to meet the requirements Ü Two correctness (verification) criteria:  The Program running on a particular Computer satisfies the Specification  The Specification, in the context of the given domain properties, satisfies the requirements Ü Two completeness (validation) criteria:  We discovered all the important requirements  We discovered all the relevant domain properties Application Domain Machine Domain D - domain properties R - requirements C - computers P - programs

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 4 Source: Adapted from Loucopoulos & Karakostas, 1995, p73 Subject System Information system Uses builds Maintains information about Needs information about contracts Usage System Development System Refresher: Systems to model

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 5 Refresher: Systems Thinking

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 6 Modelling… Ü Modelling can guide elicitation:  It can help you figure out what questions to ask  It can help to surface hidden requirements  i.e. does it help you ask the right questions? Ü Modelling can provide a measure of progress:  Completeness of the models -> completeness of the elicitation (?)  i.e. if we’ve filled in all the pieces of the models, are we done? Ü Modelling can help to uncover problems  Inconsistency in the models can reveal interesting things…  e.g. conflicting or infeasible requirements  e.g. confusion over terminology, scope, etc  e.g. disagreements between stakeholders Ü Modelling can help us check our understanding  Reason over the model to understand its consequences  Does it have the properties we expect?  Animate the model to help us visualize/validate the requirements

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 7 Source: Adapted from Jackson, 1995, p For every B, at least one P exists such that R(P, B) The application domain Designations for the application domain Common Properties The modelling domain Designations for the model’s domain B = Book P = Person R = Wrote Book: entity Person: entity author: relation RE involves a lot of modelling Ü A model is more than just a description  it has its own phenomena, and its own relationships among those phenomena.  The model is only useful if the model’s phenomena correspond in a systematic way to the phenomena of the domain being modelled.  Example: Book title author (0,n) (1,n) name ISBN Person

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 8 “It’s only a model” Ü There will always be:  phenomena in the model that are not present in the application domain  phenomena in the application domain that are not in the model Ü A model is never perfect  “If the map and the terrain disagree, believe the terrain”  Perfecting the model is not always a good use of your time... Source: Adapted from Jackson, 1995, p124-5 …every book has at least one author… …every book has a unique ISBN… Common Phenomena …ghost writers… …pseudonyms… …anonymity… …no two people born on same date with same name… Book title author (0,n) (1,n) name ISBN Person DOB Phenomena not captured in the model Phenomena not true in the world

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 9 Source: Adapted from Loucopoulos & Karakostas, 1995, p72-73 UML fits in here Choice of modelling notation Ü natural language  extremely expressive and flexible  useful for elicitation, and to annotate models for readability  poor at capturing key relationships Ü semi-formal notation  captures structure and some semantics  can perform (some) reasoning, consistency checking, animation, etc.  E.g. diagrams, tables, structured English, etc.  mostly visual - for rapid communication with a variety of stakeholders Ü formal notation  precise semantics, extensive reasoning possible  Underlying mathematical model (e.g. set theory, FSMs, etc)  very detailed models (may be more detailed than we need)  RE formalisms are for conceptual modelling, hence differ from most computer science formalisms

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 10 Desiderata for Modelling Notations Ü Implementation Independence  does not model data representation, internal organization, etc. Ü Abstraction  extracts essential aspects  e.g. things not subject to frequent change Ü Formality  unambiguous syntax  rich semantic theory Ü Constructability  can construct pieces of the model to handle complexity and size  construction should facilitate communication Ü Ease of analysis  ability to analyze for ambiguity, incompleteness, inconsistency Ü Traceability  ability to cross-reference elements  ability to link to design, implementation, etc. Ü Executability  can animate the model, to compare it to reality Ü Minimality  No redundancy of concepts in the modelling scheme  i.e. no extraneous choices of how to represent something Source: Adapted from Loucopoulos & Karakostas, 1995, p77

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 11 Survey of Modelling Techniques Ü Modelling Enterprises  Goals & objectives  Organizational structure  Tasks & dependencies  Agents, roles, intentionality Ü Modelling Information & Behaviour  Information Structure  Behavioral views  Scenarios and Use Cases  State machine models  Information flow  Timing/Sequencing requirements Ü Modelling System Qualities (NFRs)  All the ‘ilities’:  Usability, reliability, evolvability, safety, security, performance, interoperability,… Organization modelling: i*, SSM, ISAC Goal modelling: KAOS, CREWS Organization modelling: i*, SSM, ISAC Goal modelling: KAOS, CREWS Information modelling: E-R, Class Diagrams Structured Analysis: SADT, SSADM, JSD Object Oriented Analysis: OOA, OOSE, OMT, UML Formal Methods: SCR, RSML, Z, Larch, VDM Information modelling: E-R, Class Diagrams Structured Analysis: SADT, SSADM, JSD Object Oriented Analysis: OOA, OOSE, OMT, UML Formal Methods: SCR, RSML, Z, Larch, VDM Quality tradeoffs: QFD, win-win, AHP, Specific NFRs: Timed Petri nets (performance) Task models (usability) Probabilistic MTTF (reliability) Quality tradeoffs: QFD, win-win, AHP, Specific NFRs: Timed Petri nets (performance) Task models (usability) Probabilistic MTTF (reliability)

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 12 the Unified Modelling Language (UML) Ü Third generation OO method  Booch, Rumbaugh & Jacobson are principal authors  Still evolving  Attempt to standardize the proliferation of OO variants  Is purely a notation  No modelling method associated with it!  Was intended as a design notation (some features unsuitable for RE)  Has become an industry standard  But is primarily owned by IBM/Rational (who sell lots of UML tools and services) Ü Has a standardized meta-model  Use case diagrams  Class diagrams  Message sequence charts  Activity diagrams  State Diagrams  Module Diagrams  Platform diagrams

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 13 Meta-Modelling Ü Can compare modelling schema using meta-models:  What phenomena does each scheme capture?  What guidance is there for how to elaborate the models?  What analysis can be performed on the models? Ü Example meta-model: Goals Tasks Agents own refine implement refine assigned to

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 14 Modelling principles Ü Facilitate Modification and Reuse  Experienced analysts reuse their past experience  they reuse components (of the models they have built in the past)  they reuse structure (of the models they have built in the past)  Smart analysts plan for the future  they create components in their models that might be reusable  they structure their models to make them easy to modify Ü Helpful ideas:  Abstraction  strip away detail to concentrate on the important things  Decomposition (Partitioning)  Partition a problem into independent pieces, to study separately  Viewpoints (Projection)  Separate different concerns (views) and describe them separately  Modularization  Choose structures that are stable over time, to localize change  Patterns  Structure of a model that is known to occur in many different applications

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 15 Modelling Principle 1: Partitioning Ü Partitioning  captures aggregation/part-of relationship Ü Example:  goal is to develop a spacecraft  partition the problem into parts:  guidance and navigation;  data handling;  command and control;  environmental control;  instrumentation;  etc  Note: this is not a design, it is a problem decomposition  actual design might have any number of components, with no relation to these sub-problems  However, the choice of problem decomposition will probably be reflected in the design

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 16 Source: Adapted from Davis, 1990, p48 and Loucopoulos & Karakostas, 1995, p78 based on symptoms:  no response from device;  incorrect response;  self-test failure;  etc... based on location:  instrumentation fault,  communication fault,  processor fault,  etc Modelling Principle 2: Abstraction Ü Abstraction  A way of finding similarities between concepts by ignoring some details  Focuses on the general/specific relationship between phenomena  Classification groups entities with a similar role as members of a single class  Generalization expresses similarities between different classes in an ‘is_a’ association Ü Example:  requirement is to handle faults on the spacecraft  might group different faults into fault classes

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 17 Modelling Principle 3: Projection Ü Projection:  separates aspects of the model into multiple viewpoints  similar to projections used by architects for buildings Ü Example:  Need to model the requirements for a spacecraft  Model separately:  safety  commandability  fault tolerance  timing and sequencing  Etc… Ü Note:  Projection and Partitioning are similar:  Partitioning defines a ‘part of’ relationship  Projection defines a ‘view of’ relationship  Partitioning assumes a the parts are relatively independent Source: Adapted from Davis, 1990, p48-51

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 18 A brief UML example :patient Name Date of Birth physician history :in-patient Room Bed Treatments food prefs :out-patient Last visit next visit prescriptions :patient Name Date of Birth physician history :heart Natural/artif. Orig/implant normal bpm :eyes Natural/artif. Vision colour :kidney Natural/artif. Orig/implant number Source: Adapted from Davis, 1990, p Generalization (an abstraction hierarchy) Aggregation (a partitioning hierarchy)

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 19 What is this a model of?

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 20 Summary Ü Modelling plays a central role in RE  Allows us to study a problem systematically  Allows us to test our understanding Ü Many choices for modelling notation  In this course, we’ll use (and adapt) various UML notations Ü All models are inaccurate (to some extent)  Use successive approximation  …but know when to stop perfecting the model  Every model is created for a purpose  The purpose is not usually expressed in the model  …So every model needs an explanation