University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 1 Lecture 13: Representing software designs Viewpoints Structural.

Slides:



Advertisements
Similar presentations
Chapter 7 System Models.
Advertisements

Modeling Main issues: What do we want to build How do we write this down.
1 York University Department of Computer Science © , Steve Easterbrook Entity Relationship Diagrams Actor Entity Attribute Relationship Key Cast.
Modeling Main issues: What do we want to build How do we write this down ©2008 John Wiley & Sons Ltd. vliet.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
Introduction To System Analysis and Design
© Copyright 2011 John Wiley & Sons, Inc.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Communication Notation Part V Chapter 15, 16, 18 and 19.
CS 425/625 Software Engineering System Models
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 71 System models l Abstract descriptions of systems whose requirements are being analysed.
CS189A/172 - Winter 2008 Lecture 7: Software Specification, Architecture Specification.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
SE-565 Software System Requirements More UML Diagrams.
Chapter 3 : Software Process and Other Models Juthawut Chantharamalee Curriculum of Computer Science Faculty of Science and Technology, Suan Dusit University.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Introduction SWE 619. Why Is Building Good Software Hard? Large software systems enormously complex  Millions of “moving parts” People expect software.
University of Toronto Department of Computer Science CSC444 Lec04- 1 Lecture 4: Software Lifecycles The Software Process Waterfall model Rapid Prototyping.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 6: The Traditional Approach to Requirements
staffs.ac.uk Process Model. staffs.ac.uk Contents Provide definitions Explain the components and representations Introduce a step.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
CSCI-383 Object-Oriented Programming & Design Lecture 9.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
University of Toronto Department of Computer Science CSC444 Lec05- 1 Lecture 5: Decomposition and Abstraction Decomposition When to decompose Identifying.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
Chapter 7 System models.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Methodologies of the SDLC Traditional Approach to SDLC Object-Oriented Approach to SDLC CASE Tools.
System models l Abstract descriptions of systems whose requirements are being analysed.
Pertemuan 19 PEMODELAN SISTEM Matakuliah: D0174/ Pemodelan Sistem dan Simulasi Tahun: Tahun 2009.
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
Modeling system requirements. Purpose of Models Models help an analyst clarify and refine a design. Models help simplify the complexity of information.
Dr.Basem Alkazemi
SWT - Diagrammatics Lecture 4/4 - Diagramming in OO Software Development - partB 4-May-2000.
Software Design Process
Formal Methods.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
CS223: Software Engineering
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Software Engineering Lecture 4 System Modeling The Analysis Stage.
Main issues: • What do we want to build • How do we write this down
Object-Oriented Analysis and Design
Data Dictionaries ER Diagram.
Abstract descriptions of systems whose requirements are being analysed
Business System Development
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4th edition, Prentice Hall, Hans Van Vliet, Software Engineering:
Dynamic Modeling Lecture # 37.
Software Design Methodologies and Testing
Appendix 3 Object-Oriented Analysis and Design
Presentation transcript:

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 1 Lecture 13: Representing software designs Viewpoints Structural representations e.g. dependency graphs Functional representations e.g. dataflow diagrams Behavioral representations e.g. statecharts Data Modeling representations e.g. entity relationship diagrams

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 2 Representing Designs From abstractions to systems abstractions allow us to ignore implementation details of procedures and data structures for large systems we need to abstract away even more detail we need to represent higher level abstractions Design representations will: help us to see the big picture allow us to communicate our designs with others customers, managers, other developers, … people with varying technical expertise allow us to measure various quality attributes completeness, consistency, complexity, …

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 3 A viewpoint tells you which details you can ignore when forming an abstraction defines which details are relevant and which are not a viewpoint has: an owner (the person interested in this abstraction) a domain (the area of interest) a representation scheme Example: Building a house Useful viewpoints: the architect’s viewpoint (plan views, elevations, etc) the plumber’s viewpoint (routing diagrams for pipework, fittings layouts, etc) the electrician’s viewpoint (wiring diagrams, etc) the buyer’s viewpoint (artist’s impression, floorplans, etc) etc… These must all be consistent eventually! Viewpoints can overlap Some aspects of a design are common to several viewpoints Viewpoints (a.k.a. “projections”) Source: Adapted from Easterbrook & Nuseibeh, 1996

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 4 Structural viewpoints domain: static properties (structure) of the software representations: structure charts, dependency graphs, etc. Functional viewpoints domain: the tasks performed by the software, information flow representations: dataflow diagrams, procedural abstractions, etc. Behavioral viewpoints domain: cause and effect within the program representations: state transition diagrams, statecharts, petri nets, etc. Data-modeling viewpoints domain: the data objects and the relationships between them representations: entity relationship diagrams, object hierarchies Ownership? Each of these viewpoints will be of interest to different people e.g. structural viewpoints are of interest to managers for planning purposes e.g. functional viewpoints are of interest to requirements analysts and users Key Software Design Viewpoints Source: Adapted from Budgen, 1994

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 5 Text often hard to see the big picture natural language is ambiguous best used in small chunks (e.g. for executive summaries) Diagrams good for showing relationships and structure… …if they’re kept simple: small number of symbols (e.g. 2 types of box, 2 types of arrow) must represent an abstraction (e.g. a flow chart contains nearly all the detail of code, so is not an abstraction) should be easy to sketch informally! Mathematical Expressions (formal specifications) very precise, very concise but require much training cannot (yet?) express all viewpoints (e.g. timing is difficult to express) Notational forms

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 6 Example notations Structure charts hierarchical decomposition of program Dependency graphs show the (static) control flow Structural notations Objects modeled usually program components compilation units, modules, procedures … Relationships modeled structural relationships between components static relationships only “calls/controls” “uses” … Note: structural notations deal with structure of the program, not structure of the data. See also: van Vliet 1999, section and

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 7 The Dependency Graph Notes: all edges must be directed all nodes must be labeled with the name of the procedure only one edge between any two nodes (no matter how many times the procedure is called) recursive procedures (& data abstractions) use themselves Useful for: debugging, integration, measuring coupling p q r e d Key procedure data abstraction ‘uses’ ‘weakly uses’ (refers to but does not use) p e See also: van Vliet 1999, pp

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 8 Example notations Dataflow diagrams show processes that transform data Procedural abstractions (although these combine structural viewpoint info too!) Pseudo-code Functional notations Objects modeled Program components modules, procedures, Processes these do not necessarily correspond to components of the program Relationships modeled information flow inputs and outputs “communicates with”. “sends data to” “received data from” See also: van Vliet 1999, sections and

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 9 The Dataflow Diagram (DFD) Notes: every process, flow, and datastore must be labeled representation is hierarchical each process will be represented separately as a lower level DFD processes are normally numbered for cross reference processes transform data can’t have the same data flowing out of a process as flows into it Key process dataflow (no control implied) data store external entity system boundary 1. determine form of travel 2. check schedule 3. reserve seats 4. issue tickets Timetables Fare tables customer booking system booking system customer travel request customer query schedule proposed itinerary proposed itinerary booked itinerary fares tickets booking confirmation booking request See also: van Vliet 1999, pp

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 10 Statecharts like an STD but with superstates and conditional transitions Petri nets for modeling process synchronization Behavioral notations Objects modeled Dynamic properties events, states, actions, conditions Relationships modeled cause and effect sequencing / parallelism Example notations State Transition Diagrams model the program as a finite state machine See also: van Vliet 1999, sections and

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 11 busy Statecharts Notes: all states and transitions must be labeled transitions may be conditional (conditions shown in brackets) states can be grouped into superstates: transitions out of superstates may be taken from any substate transitions into superstates go to the default substate Key state transition superstate default initial state idle ringing tone dial tone connected engaged tone replace receiver lift receiver dial (callee busy) dial (callee idle) callee replaces receiver callee lifts receiver idle dial tone Source: Adapted from Easterbrook & Nuseibeh, 1996

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 12 Data modelling notations Objects modeled any kind of data data types, objects, attributes of objects, classes, Relationships modeled compositional “part of” “consists of” classification “is a kind of” Example notations Entity Relationship Diagrams used in requirements modeling Class diagrams shows data abstraction hierarchy Note: in OOD, is used as a structural notation for the program!!! See also: van Vliet 1999, sections and

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 13 Entity Relationship Diagram Notes: relationships relate entities, not their attributes there is no standard way to show the cardinality of relationships Key entity attribute relationship 1-to-1 1-to-many many-to-many star film cast producer director title year name age nationality cast film age See also: van Vliet 1999, section 9.3.1

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 14 Summary Viewpoints help in creating abstractions a viewpoint is an abstraction created for a particular purpose by a particular person the viewpoint tells you what information to ignore when creating the abstraction each viewpoint has a suitable representation scheme Useful software design viewpoints: structural functional behavioral data modeling But a notation is not enough… you need a method to tell you how to use it. We’ll see some sample methods later in the course.

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec13 15 References van Vliet, H. “Software Engineering: Principles and Practice (2nd Edition)” Wiley, Chapter 11 covers various aspects of design, and introduces various design methods that combine these various viewpoints. Chapter 9 introduces some of the notations used in requirements engineering, while chapter 12 introduces notations used in object oriented design. Budgen, D. “Software Design”. Addison-Wesley, 1994 chapters 5 and 6 give a good overview of the idea of design viewpoints and an introduction to the more common notations Easterbrook, S. M. and Nuseibeh, B. A. “Using ViewPoints for Inconsistency Management”. Software Engineering Journal, Vol 11, No 1, Jan There is a growing body of research on how viewpoints can be used in software development to provide a foundation for tool support. This paper briefly introduces a framework for managing viewpoints, and then shows how they can be used to support evolution and consistency management in large specifications. The paper is available online at