BON Business Object Notation Based on slides by Prof. Paige

Size: px
Start display at page:

Download "BON Business Object Notation Based on slides by Prof. Paige"

Transcription

1 BON Business Object Notation Based on slides by Prof. Paige 17-1

2 What is it? Notation for modeling object oriented software» Static: specifies classes, class relationships» Dynamic: behavioural properties Method» Guidelines to be used when producing specifications and descriptions Does not include» Entity-Relation models» Finite state machines 17-2

3 Characteristics of the Notation Simplicity» Concentrate on design aspects of the method Generality» Not restricted to application domains Design by Contract» Assertions for classes and features Two views» Graphical» Textual fi Eiffel 17-3

4 Characteristics of the Notation 2 Seamlessness» Smooth transition from requirements through design to implementation all in one form of model Reversibility» Direct mapping of design concepts to and from implementation concepts Scalability» Scales up to large designs 17-4

5 Tool Support Bon tools Eiffel diagrams 17-5

6 Compressed Classes Use to draw views with lots of classes bird's eye view early stages of design NAME NAME Shortest form Reused library * NAME Deferred NAME [G, H] Parameterized + NAME Implemented NAME Root Instances may be separate processes NAME Persistent NAME Interfaces with outside world 17-6

7 Inheritance Relations * PEOPLE + YOUNG_PEOPLE + OLD_PEOPLE ++ TODDLERS ++ PRE_TEEN ++ TEEN_AGERS 17-7

8 Client Supplier Association Client A uses the services of supplier B Each client instance may be attached to one or more supplier instances has a has a PERSON ADDRESS CITY 17-8

9 Client Supplier Aggregation Client A uses the services of supplier B Each client instance is attached to one or more supplier instances that represent integral parts of the client instance part of part of VEHICLE MOTOR CYLINDER propulsion combustion_chamber Difference between association and aggregation? Consider expanded vs reference use. Consider what happens when the client gets deleted. 17-9

10 Bidirectional Uses Links CUSTOMER shoppers : set [... ] preferred_mall SHOPPING_CENTER Client feature label is at the supplier side Generic classes can be used in labels Leave parameter unspecified Useful for recursive structures lists, trees, graphs 17-10

11 Cluster Represents a group of classes, and possibly other clusters, according to some point of view Classes may be grouped differently depending on the characteristics of the specification one wants to highlight» Subsystem functionality, user categories, abstraction level, et cetera 17-11

12 Cluster Example SORTING DATA_STRUCTURES LINEAR_SORT QUICKSORT INSERT_SORT GRAPH DIRECTED_GRAPH WEIGHTED_GRAPH GRAPHS ARRAY RECORD 17-12

13 Cluster Properties Clusters can be shrunk to hide their contents» Keep only the cluster name Every class belongs to exactly one cluster Not a language construct; just a mechanism for dealing with abstraction Implement in Eiffel with directory structure» Each cluster is a directory 17-13

14 Inheritance & Clusters SORTING LINEAR_SORT INSERT_SORT DIRECTED_GRAPH WEIGHTED_GRAPH GRAPHS ARRAY All classes in sorting inherit from ARRAY Only DIRECTED_GRAPH inherits from ARRAY 17-14

15 Graphical BON Class (Uncompressed) CITIZEN No need to show all features, just those of interest for the view name, sex, age : VALUE spouse : CITIZEN children, parents : SET [ CITIZEN ] single : BOOLEAN! Result ( spouse = Void ) divorce? not single! single and ( old spouse ).single invariant single or spouse.spouse parents.count = 2 " c Πchildren ($ p Πc.parents p 17-15

16 Equivalent Textual Notation class CITIZEN feature name, sex, age : VALUE spouse : CITIZEN single : BOOLEAN ensure Result iff ( spouse = Void ) end divorce require not single ensure single and ( old spouse ). single end invariant single or spouse.spouse = Current parents.count = 2 for_all c member_of children it_holds ( exists p member_of c.parents it_holds p = Current) end -- class CITIZEN 17-16

17 Typed Class Interface Early phases concentrate on public features Restricted features produced during detail design Arbitrary number of sections, each with export list Each feature has a signature and optionally a behavioural specification Conventions» Classes all in upper case» features all in lower case» use underscore for longer names NAME Inherits: parent classes Public features A, B, C Restricted features Invariant Class invariant 17-17

18 Class Feature Decorators Feature names have an optional decorator showing status name* deferred name + effective name ++ redefined name : TYPE result type New_name { ^ CLASS_NAME. old_name } rename clause name : { TYPE aggregation result type Æ name : TYPE input argument 17-18

19 Class Feature Signatures Each feature has a signature attributes name : TYPE queries name ( arg : ARG_TYPE;... ) : RESULT_TYPE commands name ( arg : ARG_TYPE;... ) Types may be expanded 17-19

20 Graphical View Rule Graphical view is not used for just one class Always have two or more classes with inheritance and/or uses relations among them 17-20

21 Views Show Part of a Design PAPER Inherits: REVIEW final_score : VALUE award_best_paper : BOOLEAN accept + reject + PRESENTATION code : VALUE title : VALUE authors : SET [ PERSON ] status : STATUS speakers : SET [ PERSON ] accept * reject * PAPER has other features not important for this view 17-21

22 Assertion Language Queries and commands can be documented with a precondition and a postcondition Follow Eiffel language with respect to inheritance and redefinition of assertions Use predicate calculus and set theory Graphical Form? precondition! postcondition the_invariant Textual Form require precondition ensure postcondition invariant the_invariant 17-22

23 Assertion Language Symbols Arithmetic operators + * / ^ (exponent) // (integer division) \\ (modulus) Relational operators = < > Boolean operators & logic ^ and or xor not Æ implies iff Predicate logic " for_all $ exists such_that it_holds Set operators {... } Œ œ 17-23

24 Assertion Language Special Symbols old expr value of expr before a routine was called Result result of a query but only in ensure current object Void not attached D name name may change void reference : TYPE type operator 17-24

25 Quantifier Notation 1 Difference between BON and Eiffel assertions is the use of quantifiers in Eiffel use agents Used to express properties about groups of objects General syntax such that Quantifier Range_Expr [ Restriction ] Property Quantifier " $ Range_Expr type range each value of a given type " v : VEHICLE sequence range each member in a sequence " k : low.. High member range each member in a set " c ΠCHILDREN it holds / it is the case that 17-25

26 Quantifier Notation 2 Quantifier Range_Expr [ Restriction ] Property Restrictions boolean expression or, recursively, any quantified expression Property boolean expression or, recursively, any quantified expression Example see previous slide "Graphical BON class" 17-26

27 BON Process ( The Method ) Process for analysis and development Idealized» In practice it is subject to variation, iteration, reversibility Three phases» Gathering collaboration with users» Designing initial working system» Refining improve design, refactor 17-27

28 BON deliverables & dependencies People create Auto (semi) generate Class dictionary Class chart Cluster chart Class Interface Class text System chart Static Model Dynamic Model Event chart Static architecture Object scenario Scenario chart Creation chart 17-28

29 Gathering Phase Steps 1 & 2 Delineate the system boundary» Determine what the system includes and excludes» Determine user metaphors» Determine the major subsystems > Charts: system, event, scenario List candidate classes» Produce first pass list of classes > Charts: class 17-29

30 Gathering Phase Step 3 Select classes and groups» Organize classes into logical groups / clusters > Charts: cluster, class > class dictionary» Determine status of classes > Deferred, effective, reused, 17-30

31 Example System Chart System Conference Management System Part # Purpose Conference administration support Indexing Cluster ORGANIZATION TECHNICAL_EVENTS REGISTRATION Description Handles major events occurring during the conference from initial decisions through to conclusion Responsible for putting together the programme, recording status of contributions, checking in reviews and following a precise timetable of what is to be done Collect registration data, produce lists, print badges, send form letters. Store data relevant to whatever may change the cost/benefit of the conference One per system 17-31

32 Example Cluster Chart CLUSTER REGISTRATION Purpose: Track conference participants Part # Indexing Cluster components REGISTRATION ATTENDEE REFEREE CONTRIBUTOR Description Track participant status Track fees and events Track papers and results Track papers from initial offer to presentation Similar to the System Chart 17-32

33 Example Class Chart CLASS Type of Object CITIZEN Born or resident in a country Part # Indexing Queries Commands Constraints Name, Sex, Age, Single, Spouse, Children, Parents Marry, Divorce Each citizen has two parents At most one spouse is allowed May not marry children or parents Spouse's spouse must be this person All children, if any, must have this person as their parent 17-33

34 Modeling Chart Uses Informal charts are useful for exchanging ideas with non-technical people Useful for serving as high-level documentation and as a scratch pad for ideas and thoughts Idea is to provide medium for social communication and discussing their ideas 17-34

35 Modeling Chart Contents System chart» Exactly one per system» Contains a brief description of each top level cluster in the system Cluster chart» Brief description of a cluster, each class and subcluster within it Class chart» Informally specify class interface. > What information and services can other classes ask from the class? > What rules must be obeyed by the class? 17-35

36 Designing Phase Define class interfaces» Use graphical and/or textual descriptions Develop static architecture Sketch system behaviour dynamic properties» Event charts, scenario charts, object scenarios, creation charts» Develop dynamic object model 17-36

37 Purpose of Dynamic Model Analysis and design should not focus on implementation» Static relationships & contracts do not change, minimize implementation dependence Reasonable to want to ensure implementation is possible» For other considerations see... Swartout, W., Balzer, R., On the Inevitable Intertwining of Specification and Implementation, Communications of the ACM, July 1982, Vol 25, No 7, pp Need a specification of how the classes can fulfill their specifications by calling routines of other classes 17-37

38 Dynamic Model What makes up a dynamic model in BON?» Feature calls object communication» also known as message passing or object communication Using feature calls in a dynamic model supports seamlessness» Feature calls map directly to a programming language Some design methods use finite state machines to specify what an object does in reaction to a message» Difficult to translate, in all but simple machines, into programs lack of seamlessness 17-38

39 Definition of events A system is a black box with behaviour described by responses to stimuli system events An external event is triggered by something in the outside world over which the system has no control» terminal input, interrupts An internal event is triggered by the system itself 17-39

40 Dynamic Model Charts Event chart» Lists selected external events that may trigger object communication Scenario chart» Describes a sequence of events for communicating objects Object creation chart» Describes which classes create instances of other classes 17-40

41 Event Chart Example EVENTS CONFERENCE_SUPPORT Part # Comment External Selected external events triggering representative types of behaviour Involved object types Indexing Request to register a submitted paper CONFERENCE, PROGRAM_COMMITTEE, PAPER 17-41

42 Scenario Chart Example SCENARIO DRIVING_SYSTEM Part # Comment Borrow car and go for a drive Indexing Step 1: Driver gets keys from owner DRIVER calls OWNER : send request receive keys Step 2: Driver turns ignition DRIVER calls IGNITION : send turn_on receive NIL Step 3: Engine starts IGNITION calls ENGINE : send turn_on receive NIL 17-42

43 Creation Chart Example CREATION MATRIX_SYSTEM Part # Comment Class Only those classes dealing with the CIRCUS cluster Creates instances of Indexing SPARSE_MATRIX ARRAY, MATRIX_ELEMENT MATRIX_ELEMENT STACK [ ELEPHANT ] MINIMUM_TEST SPARSE_MATRIX, MATRIX_ELEMENT, STRING, ELEPHANT 17-43

44 Object Representation How do we describe objects in BON? Use rectangles containing their class name with an optional qualifier (e.g. a name) CONFERENCE STACK ( parse ) FLIGHT STACK ( washing ) More than one instance possible 17-44

45 Communication Between Objects Pass or send a message, call a feature, invoke an operation are all synonymous A message is indicated by a dashed arrow from the calling to the receiving object INVOICE_SYSTEM STOCK 17-45

46 Scenario with Object Communication Message links may be annotated with sequence numbers representing order of calls.» Cross reference to entries in a scenario box DRIVER 1,6 OWNER 2,4 3,5 IGNITION ENGINE Scenario: Borrow car and go for a drive 1 Driver gets keys from owner 2 Driver turns ignition 3 Engine starts 4 Driver removes key 5 Engine stops 6 Driver returns keys to owner 17-46

47 Communication Properties 1 Message are always potential» They do not have to occur Flat battery Bidirectional messages are possible Group as for clusters 17-47

48 Communication Properties 2 Can specify concurrency» send/receive to many objects broadcast, or to one instance only (differentiate with note, if not obvious) BRAIN 2 1 LEG 1 LEG Scenario: Get coffee 1 Step forward alternate legs 2 Bump door Scenario: Jump 1 Step forward both legs 2 Land 17-48

49 Refining Phase Refine system» Find new design classes, add new features > Modify: Class interfaces, static architecture, class dictionary, event charts, object scenarios Generalize» Factor out common behaviour > Modify: class interfaces, static architecture, class dictionary Complete and review system» Produce final static architecture with dynamic system behaviour > All deliverables complete 17-49

50 Software Development Methods Many good ideas and much effort put into producing recipes for constructing software» But no sure fire method No easy path to producing quality software» F.P. Brooks Jr., No Silver Bullet, Computer, Vol. 20, No. 4, April 1987, pp » Replies in Computer, Vol. 20, No. 7, July 1987, pp As our knowledge and experience have increased so has our reach 17-50

51 Understand Limitations and Benefits General principles for constructing software can be taught» But no teaching can guarantee success This is not to say methods are worthless» If you restrict their domain of applicability, you can have success Many method creators are unwilling to do this» They want to sell their method and its tools All relies on invention, creativity and expertise of the individual developers 17-51

BON Business Object Notation Based on slides by Prof. Paige

BON Business Object Notation Based on slides by Prof. Paige BON Business Object Notation Based on slides by Prof. Paige 17-1 What is it? Notation for modeling object oriented software» Static: specifies classes, class relationships» Dynamic: behavioural properties

More information

BON Business Object Notation Largely based on slides by Prof. Paige

BON Business Object Notation Largely based on slides by Prof. Paige BON Business Object Notation Largely based on slides by Prof. Paige 17-1 What is it? Notation for modelling object oriented software Two versions» graphical» textual Static notations for specifying classes,

More information

BON Business Object Notation Based on slides by Prof. Paige

BON Business Object Notation Based on slides by Prof. Paige BON Business Object Notation Based on slides by Prof. Paige 17-1 What is it? Notation for modeling object oriented software» Static: specifies classes, class relationships» Dynamic: behavioural properties

More information

Assertions! How to write correct programs and know it! Harlan Mills! Gunnar Gotshalks! 08-1

Assertions! How to write correct programs and know it! Harlan Mills! Gunnar Gotshalks! 08-1 Assertions How to write correct programs and know it Harlan Mills Gunnar Gotshalks 08-1 Assertions Boolean expressions or predicates that evaluate to true or false in every state In a program they express

More information

Integrating BON and Object-Z

Integrating BON and Object-Z Vol. 3, No. 3, March April 2004 Integrating BON and Object-Z Richard Paige, Department of Computer Science, University of York, U.K. Phillip J. Brooke, School of Computing, Communications, and Electronics,

More information

Object Oriented Programming

Object Oriented Programming Object Oriented Programming Primary object-oriented language concepts dynamic lookup encapsulation inheritance subtyping Program organization Organize concepts into objects and relationships between them

More information

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems 3 Draft 5.02.00-0, 15 August 2005 (Santa Barbara). Extracted from ongoing work on future third edition of Eiffel: The Language. Copyright Bertrand Meyer 1986-2005. Access restricted to purchasers of the

More information

ERC An object-oriented refinement calculus for Eiffel

ERC An object-oriented refinement calculus for Eiffel DOI 10.1007/s00165-003-0024-3 BCS 2004 Formal Aspects of Computing (2004) 16: 51 79 Formal Aspects of Computing ERC An object-oriented refinement calculus for Eiffel Richard F. Paige and Jonathan S. Ostroff

More information

Programming Languages Third Edition

Programming Languages Third Edition Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand

More information

Introduction to Software Engineering. 5. Modeling Objects and Classes

Introduction to Software Engineering. 5. Modeling Objects and Classes Introduction to Software Engineering 5. Modeling Objects and Classes Roadmap > UML Overview > Classes, attributes and operations > UML Lines and Arrows > Parameterized Classes, Interfaces and Utilities

More information

Lecture 5 STRUCTURED ANALYSIS. PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall Bühnová, Sochor, Ráček

Lecture 5 STRUCTURED ANALYSIS. PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall Bühnová, Sochor, Ráček Lecture 5 STRUCTURED ANALYSIS PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall 2015 1 Outline ² Yourdon Modern Structured Analysis (YMSA) Context diagram (CD) Data flow diagram

More information

Multiple & Repeated! Inheritance!

Multiple & Repeated! Inheritance! Multiple & Repeated Inheritance 21-1 Multiple Inheritance Example Combining two abstractions into one» COMPARABLE and NUMERIC are both useful abstractions > Some abstractions make use of both while others

More information

Multiple & Repeated Inheritance

Multiple & Repeated Inheritance Multiple & Repeated Inheritance 21-1 Multiple Inheritance Example Combining two abstractions into one» COMPARABLE and NUMERIC are both useful abstractions > Some abstractions make use of both while others

More information

Mock exam 1. ETH Zurich. Date: 9./10. November 2009

Mock exam 1. ETH Zurich. Date: 9./10. November 2009 Mock exam 1 ETH Zurich Date: 9./10. November 2009 Name: Group: 1 Terminology (8 points) Put checkmarks in the checkboxes corresponding to the correct answers. Multiple correct answers are possible; there

More information

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain

More information

CITS5501 Software Testing and Quality Assurance Formal methods

CITS5501 Software Testing and Quality Assurance Formal methods CITS5501 Software Testing and Quality Assurance Formal methods Unit coordinator: Arran Stewart May 1, 2018 1 / 49 Sources Pressman, R., Software Engineering: A Practitioner s Approach, McGraw-Hill, 2005

More information

XV. The Entity-Relationship Model

XV. The Entity-Relationship Model XV. The Entity-Relationship Model The Entity-Relationship Model Entities, Relationships and Attributes Cardinalities, Identifiers and Generalization Documentation of E-R Diagrams and Business Rules Acknowledgment:

More information

Spell Checker for EiffelStudio

Spell Checker for EiffelStudio Spell Checker for EiffelStudio Software Engineering Laboratory: Open-Source EiffelStudio Semester project by Benjamin Fischer Student number: 10-916-971 Supervised by Julian Tschannen ETH Computer Science

More information

2004 John Mylopoulos. The Entity-Relationship Model John Mylopoulos. The Entity-Relationship Model John Mylopoulos

2004 John Mylopoulos. The Entity-Relationship Model John Mylopoulos. The Entity-Relationship Model John Mylopoulos XVI. The Entity-Relationship Model The Entity Relationship Model The Entity-Relationship Model Entities, Relationships and Attributes Cardinalities, Identifiers and Generalization Documentation of E-R

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 15: Object-Oriented Principles 1 Open Closed Principle (OCP) Classes should be open for extension but closed for modification. OCP states that we should

More information

Composite Structures

Composite Structures Composite Structures Marie-Agnès Peraldi-Frati UNSA/I3S/INRIA map@unice.fr UML 2 Composition Model Purpose: improve the black diamond composition Supports connections between parts at the same level of

More information

Semantic Analysis. CSE 307 Principles of Programming Languages Stony Brook University

Semantic Analysis. CSE 307 Principles of Programming Languages Stony Brook University Semantic Analysis CSE 307 Principles of Programming Languages Stony Brook University http://www.cs.stonybrook.edu/~cse307 1 Role of Semantic Analysis Syntax vs. Semantics: syntax concerns the form of a

More information

Ch t 8 Chapter 8. System Models

Ch t 8 Chapter 8. System Models Ch t 8 Chapter 8. System Models Objectives To explain why the context t of a system should be modelled d as a part of requirements engineering process To describe behavioural modelling, data modelling

More information

Precise and Formal Metamodeling with the Business Object Notation and PVS

Precise and Formal Metamodeling with the Business Object Notation and PVS Precise and Formal Metamodeling with the Business Object Notation and PVS Richard F. Paige and Jonathan S. Ostroff Department of Computer Science York University Toronto, Ontario M3J 1P3, CANADA. fpaige,jonathang@cs.yorku.ca

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

Design by Contract in Eiffel

Design by Contract in Eiffel Design by Contract in Eiffel 2002/04/15 ctchen@canthink.com.com.tw.tw Reference & Resource Bertrand Meyer, Object-Oriented Oriented Software Construction 2nd,, 1997, PH. Bertrand Meyer, Eiffel: The Language,,

More information

Specification-based Testing of Embedded Systems H. Schlingloff, SEFM 2008

Specification-based Testing of Embedded Systems H. Schlingloff, SEFM 2008 SEFM School 2008 Specification-based Testing of Embedded Systems Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin and Fraunhofer FIRST, Berlin Lecture 5: OCL, ParTeG Course Outline L1: Introduction

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, no. 4, September-October 2002 Eiffel Assertions and the External Structure of

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

Chapter 3. Describing Syntax and Semantics

Chapter 3. Describing Syntax and Semantics Chapter 3 Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings of Programs:

More information

Specification-based Testing of Embedded Systems H. Schlingloff, SEFM 2008

Specification-based Testing of Embedded Systems H. Schlingloff, SEFM 2008 SEFM School 2008 Specification-based Testing of Embedded Systems Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin and Fraunhofer FIRST, Berlin Lecture 4: Mutations, OCL etc. Course Outline L1:

More information

Assignment 7: Inheritance

Assignment 7: Inheritance Assignment 7: Inheritance ETH Zurich Hand-out: 11 December 2006 Due: 19 December 2006 Calvin and Hobbes c Bill Watterson 1 Dynamic exercise Goal Understand the effects of dynamic binding. Summary Have

More information

Motivation State Machines

Motivation State Machines Motivation State Machines Generating test cases for complex behaviour Textbook Reading: Chapter 7 We are interested in testing the behaviour of object-oriented software systems Behaviour: Interactions

More information

Software Architecture 4. July 2005

Software Architecture 4. July 2005 Chair of Software Engineering Bertrand Meyer Software Architecture 4. July 2005 Name, First name:... I confirm with my signature, that I was able to take this exam under regular conditions and that I have

More information

Chapter 3 (part 3) Describing Syntax and Semantics

Chapter 3 (part 3) Describing Syntax and Semantics Chapter 3 (part 3) Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings

More information

SLIDES: Introductory Modeling Example Employing UML and OCL [UML: Unified Modeling Language, OCL:Object Constarint Language]

SLIDES: Introductory Modeling Example Employing UML and OCL [UML: Unified Modeling Language, OCL:Object Constarint Language] Lecture day 2016-04-07 SLIDES: Introductory Modeling Example Employing UML and OCL [UML: Unified Modeling Language, OCL:Object Constarint Language] - System design in an object-oriented way employing USE

More information

12 Tutorial on UML. TIMe TIMe Electronic Textbook

12 Tutorial on UML. TIMe TIMe Electronic Textbook TIMe TIMe Electronic Textbook 12 Tutorial on UML Introduction......................................................2.................................................3 Diagrams in UML..................................................3

More information

Basic Structural Modeling. Copyright Joey Paquet,

Basic Structural Modeling. Copyright Joey Paquet, Basic Structural Modeling Copyright Joey Paquet, 2000 1 Part I Classes Copyright Joey Paquet, 2000 2 Classes Description of a set of objects sharing the same attributes, operations and semantics Abstraction

More information

Lecture 13: Introduction to inheritance and genericity

Lecture 13: Introduction to inheritance and genericity Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 13: Introduction to inheritance and genericity On the menu for today (& next

More information

Universe Type System for Eiffel. Annetta Schaad

Universe Type System for Eiffel. Annetta Schaad Universe Type System for Eiffel Annetta Schaad Semester Project Report Software Component Technology Group Department of Computer Science ETH Zurich http://sct.inf.ethz.ch/ SS 2006 Supervised by: Dipl.-Ing.

More information

Chapter 2, lecture 2 Modeling with UML

Chapter 2, lecture 2 Modeling with UML Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 2, lecture 2 Modeling with UML Overview: More detail on modeling with UML Use case diagrams Class diagrams Sequence diagrams Activity

More information

CS 4604: Introduction to Database Management Systems. B. Aditya Prakash Lecture #5: Entity/Relational Models---Part 1

CS 4604: Introduction to Database Management Systems. B. Aditya Prakash Lecture #5: Entity/Relational Models---Part 1 CS 4604: Introduction to Database Management Systems B. Aditya Prakash Lecture #5: Entity/Relational Models---Part 1 E/R: NOT IN BOOK! IMPORTANT: Follow only lecture slides for this topic! Differences

More information

From Analysis to Design. LTOOD/OOAD Verified Software Systems

From Analysis to Design. LTOOD/OOAD Verified Software Systems From Analysis to Design 1 Use Cases: Notation Overview Actor Use case System X System boundary UCBase «extend» UCExt Actor A UCVar1 UCVar2 Extending case Generalization «include» Actor B UCIncl Included

More information

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara CS189A - Capstone Christopher Kruegel Department of Computer Science http://www.cs.ucsb.edu/~chris/ Design by Contract Design by Contract and the language that implements the Design by Contract principles

More information

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects,

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Classes, Class Diagrams Values and Attributes Operations

More information

Assignment 4: Object creation

Assignment 4: Object creation Assignment 4: Object creation ETH Zurich Hand-out: 15 November 2005 Due: 22 November 2005 Copyright FarWorks, Inc. Gary Larson 1 Summary Today you are going to write your rst stand-alone program. Please

More information

Introduction to Software Engineering. ECSE-321 Unit 9 Architectural Design Approaches

Introduction to Software Engineering. ECSE-321 Unit 9 Architectural Design Approaches Introduction to Software Engineering ECSE-321 Unit 9 Architectural Design Approaches Requirement Elicitation Analysis (Software Product Design) Architectural Design Detailed Design Architectural Design

More information

Interaction Modelling: Sequence Diagrams

Interaction Modelling: Sequence Diagrams Interaction Modelling: Sequence Diagrams Fabrizio Maria Maggi Institute of Computer Science (these slides are derived from the book Object-oriented modeling and design with UML ) Interaction Modelling

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Department of Computer Engineering Lecture 12: Object-Oriented Principles Sharif University of Technology 1 Open Closed Principle (OCP) Classes should be open for extension but closed

More information

Control flow in Eiffel

Control flow in Eiffel Announcements Assignment will be posted this week.» We ll make sure you have enough time to it! A little more Eiffel, Genericity and ADTs Week 3, Lecture 4 January 16 Section N Review What is the definition

More information

7. Implementation Phase. 7.1 Architecture Diagrams 7.2 OO Languages: Java 7.3 Constraint Languages: OCL

7. Implementation Phase. 7.1 Architecture Diagrams 7.2 OO Languages: Java 7.3 Constraint Languages: OCL 7. Implementation Phase 7.1 Architecture Diagrams 7.2 OO Languages: Java 7.3 Constraint Languages: OCL Architecture Design Models An architecture model (structure model) is a model of a data processing

More information

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch Class diagrams Modeling with UML Chapter 2, part 2 CS 4354 Summer II 2015 Jill Seaman Used to describe the internal structure of the system. Also used to describe the application domain. They describe

More information

System models Abstract descriptions of systems whose requirements are being analysed. System modelling. Structured methods

System models Abstract descriptions of systems whose requirements are being analysed. System modelling. Structured methods System models Abstract descriptions of systems whose requirements are being analysed Ian Sommerville 995/2000 (Modified by Spiros Mancoridis 999) Software Engineering, 6th edition. Chapter 7 Slide System

More information

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

Course Softwaretechnik Book Chapter 2 Modeling with UML Course "Softwaretechnik" Book Chapter 2 Modeling with UML Lutz Prechelt, Bernd Bruegge, Allen H. Dutoit Freie Universität Berlin, Institut für Informatik http://www.inf.fu-berlin.de/inst/ag-se/ Modeling,

More information

An Annotated Language

An Annotated Language Hoare Logic An Annotated Language State and Semantics Expressions are interpreted as functions from states to the corresponding domain of interpretation Operators have the obvious interpretation Free of

More information

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach? Department: Information Technology Questions Bank Class: B.E. (I.T) Prof. Bhujbal Dnyaneshwar K. Subject: Object Oriented Modeling & Design dnyanesh.bhujbal11@gmail.com ------------------------------------------------------------------------------------------------------------

More information

Chapter : Analysis Modeling

Chapter : Analysis Modeling Chapter : Analysis Modeling Requirements Analysis Requirements analysis Specifies software s operational characteristics Indicates software's interface with other system elements Establishes constraints

More information

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD Domain analysis Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD OOA concerned with what, not how OOA activities focus on the domain layer

More information

Chapter 1: Programming Principles

Chapter 1: Programming Principles Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key

More information

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models CS 494 Object-Oriented Analysis & Design UML Class Models Overview How class models are used? Perspectives Classes: attributes and operations Associations Multiplicity Generalization and Inheritance Aggregation

More information

Example Test Questions for Inheritance

Example Test Questions for Inheritance 2009 November 23 Example Test Questions for Inheritance 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Give and explain the type rule with genericity using an example method call. escribe constraint genericity.

More information

Chapter 3. Describing Syntax and Semantics ISBN

Chapter 3. Describing Syntax and Semantics ISBN Chapter 3 Describing Syntax and Semantics ISBN 0-321-49362-1 Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the

More information

Chapter 3. Describing Syntax and Semantics

Chapter 3. Describing Syntax and Semantics Chapter 3 Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings of Programs:

More information

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh SOFTWARE DESIGN COSC 4353 / 6353 Dr. Raj Singh UML - History 2 The Unified Modeling Language (UML) is a general purpose modeling language designed to provide a standard way to visualize the design of a

More information

Principles of Software Construction: Objects, Design, and Concurrency

Principles of Software Construction: Objects, Design, and Concurrency Principles of Software Construction: Objects, Design, and Concurrency Designing (sub-) systems Responsibility assignment Charlie Garrod Michael Hilton School of Computer Science 1 Administrivia Reading

More information

Introduction to Eiffel

Introduction to Eiffel Introduction to Eiffel Martin Nordio, Christian Estler ETH Zurich Distributed Software Engineering Lab 1 Overview Part 1: Language Constructs Ø Basics: definition, if then else, expressions, loops and

More information

Einführung in die Programmierung Introduction to Programming

Einführung in die Programmierung Introduction to Programming Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Exercise Session 10 News Mock exam in 2 weeks (December 6 th, 7 th ) You have to be present

More information

Patterns Example Exam Questions

Patterns Example Exam Questions 2014 November 27 Patterns Example Exam Questions 1.. Using on, give a generic static diagram of the pattern and include relevant interface s. 2. 3.. Give a scenario and object communication diagram

More information

Compilers Project 3: Semantic Analyzer

Compilers Project 3: Semantic Analyzer Compilers Project 3: Semantic Analyzer CSE 40243 Due April 11, 2006 Updated March 14, 2006 Overview Your compiler is halfway done. It now can both recognize individual elements of the language (scan) and

More information

0. Database Systems 1.1 Introduction to DBMS Information is one of the most valuable resources in this information age! How do we effectively and efficiently manage this information? - How does Wal-Mart

More information

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

Inheritance. Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L

Inheritance. Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L Inheritance Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L 9.1 9.4 1 Inheritance Inheritance allows a software developer to derive

More information

Principles of Software Construction: Objects, Design and Concurrency. Just enough UML. toad

Principles of Software Construction: Objects, Design and Concurrency. Just enough UML. toad Principles of Software Construction: Objects, Design and Concurrency Just enough UML 15-214 toad Christian Kästner Charlie Garrod School of Computer Science With slides from Klaus Ostermann Learning Goals

More information

UNIT-II Introduction to UML

UNIT-II Introduction to UML UNIT-II Introduction to UML - P. P. Mahale UML OVERVIEW OF UML :- We need a Modeling Language! We will use the Unified Modeling Language, UML), Provides a standard for artifacts produced during development

More information

EDMS. Architecture and Concepts

EDMS. Architecture and Concepts EDMS Engineering Data Management System Architecture and Concepts Hannu Peltonen Helsinki University of Technology Department of Computer Science Laboratory of Information Processing Science Abstract

More information

Object-Oriented Systems Analysis and Design Using UML

Object-Oriented Systems Analysis and Design Using UML 10 Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design, 8e Kendall & Kendall Copyright 2011 Pearson Education, Inc. Publishing as Prentice Hall Learning Objectives Understand

More information

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance

More information

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II)

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II) Software Engineering Prof.N.L.Sarda IIT Bombay Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II) We will continue our discussion on process modeling. In the previous lecture

More information

UNIT II Requirements Analysis and Specification & Software Design

UNIT II Requirements Analysis and Specification & Software Design UNIT II Requirements Analysis and Specification & Software Design Requirements Analysis and Specification Many projects fail: because they start implementing the system: without determining whether they

More information

JML Class Specifications The Java Modeling Language (Part 2) A Java Class

JML Class Specifications The Java Modeling Language (Part 2) A Java Class JML Class Specifications The Java Modeling Language (Part 2) Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria

More information

*ANSWERS * **********************************

*ANSWERS * ********************************** CS/183/17/SS07 UNIVERSITY OF SURREY BSc Programmes in Computing Level 1 Examination CS183: Systems Analysis and Design Time allowed: 2 hours Spring Semester 2007 Answer ALL questions in Section A and TWO

More information

Hypertext A Case Study of Formal Object-Oriented Software Development

Hypertext A Case Study of Formal Object-Oriented Software Development Hypertext A Case Study of Formal Object-Oriented Software Development Andreas Rüping Forschungszentrum Informatik (FZI) Bereich Programmstrukturen Haid-und-Neu-Straße 10-14 D-76131 Karlsruhe e-mail: rueping@fzi.de

More information

Finite State Machines and Statecharts

Finite State Machines and Statecharts Finite State Machines and Statecharts Hassan Gomaa Dept of Information & Software Engineering George Mason University Reference: H. Gomaa, Chapter 10 - Designing Concurrent, Distributed, and Real-Time

More information

Statecharts 1.- INTRODUCTION 1.- INTRODUCTION

Statecharts 1.- INTRODUCTION 1.- INTRODUCTION Statecharts INDEX 1.- Introduction 2.- When to use Statecharts 3.- Basic components 4.- Connectors and compound transitions Mª Ángeles Martínez Ibáñez University of Bergen Selected topics in programming

More information

Eiffel: Analysis, Design and Programming. ETH Zurich, September-December Exception handling

Eiffel: Analysis, Design and Programming. ETH Zurich, September-December Exception handling Eiffel: Analysis, Design and Programming ETH Zurich, September-December 2008-6- Exception handling What is an exception? An abnormal event Not a very precise definition Informally: something that you don

More information

CS 370 The Pseudocode Programming Process D R. M I C H A E L J. R E A L E F A L L

CS 370 The Pseudocode Programming Process D R. M I C H A E L J. R E A L E F A L L CS 370 The Pseudocode Programming Process D R. M I C H A E L J. R E A L E F A L L 2 0 1 5 Introduction At this point, you are ready to beginning programming at a lower level How do you actually write your

More information

CS 451 Software Engineering

CS 451 Software Engineering CS 451 Software Engineering Yuanfang Cai Room 104, University Crossings 215.895.0298 yfcai@cs.drexel.edu 1 Elaboration 2 Elaboration: Building the Analysis Model An analysis model provides a description

More information

SOFTWARE ENGINEERING Prof.N.L.Sarda Computer Science & Engineering IIT Bombay. Lecture #10 Process Modelling DFD, Function Decomp (Part 2)

SOFTWARE ENGINEERING Prof.N.L.Sarda Computer Science & Engineering IIT Bombay. Lecture #10 Process Modelling DFD, Function Decomp (Part 2) SOFTWARE ENGINEERING Prof.N.L.Sarda Computer Science & Engineering IIT Bombay Lecture #10 Process Modelling DFD, Function Decomp (Part 2) Let us continue with the data modeling topic. So far we have seen

More information

Object Oriented Programming with Java

Object Oriented Programming with Java Object Oriented Programming with Java What is Object Oriented Programming? Object Oriented Programming consists of creating outline structures that are easily reused over and over again. There are four

More information

Unit Assessment Guide

Unit Assessment Guide Unit Assessment Guide Unit Details Unit code Unit name Unit purpose/application ICTWEB425 Apply structured query language to extract and manipulate data This unit describes the skills and knowledge required

More information

ECSE 321 Assignment 2

ECSE 321 Assignment 2 ECSE 321 Assignment 2 Instructions: This assignment is worth a total of 40 marks. The assignment is due by noon (12pm) on Friday, April 5th 2013. The preferred method of submission is to submit a written

More information

Lecture 16+17: Modeling with UML

Lecture 16+17: Modeling with UML Chair of Software Engineering Software Engineering Spring Semester 2008 Slides: Based on KSE06 With kind permission of Peter Müller Lecture 16+17: Modeling with UML What is modeling? Building an abstraction

More information

LABORATORY 1 REVISION

LABORATORY 1 REVISION UTCN Computer Science Department Software Design 2012/2013 LABORATORY 1 REVISION ================================================================== I. UML Revision This section focuses on reviewing the

More information

Lecture 15: Modeling with UML

Lecture 15: Modeling with UML Chair of Software Engineering What is modeling? Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Lecture 15: Modeling with

More information

INTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD. Slides by: Shree Jaswal

INTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD. Slides by: Shree Jaswal INTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD Slides by: Shree Jaswal What is UML? 2 It is a standard graphical language for modeling object oriented software. It was developed in mid 90 s by collaborative

More information

Object Oriented Software Development CIS Today: Object Oriented Analysis

Object Oriented Software Development CIS Today: Object Oriented Analysis Object Oriented Software Development CIS 50-3 Marc Conrad D104 (Park Square Building) Marc.Conrad@luton.ac.uk Today: Object Oriented Analysis The most single important ability in object oriented analysis

More information

Interaction Modelling: Use Cases

Interaction Modelling: Use Cases Interaction Modelling: Use Cases Fabrizio Maria Maggi Institute of Computer Science (these slides are derived from the book Object-oriented modeling and design with UML ) Interaction Modelling: INPUT 1

More information

Multi-Methods in Racket

Multi-Methods in Racket Multi-Methods in Racket António Menezes Leitão April, 18, 2013 1 Introduction Multi-methods are an advanced concept that extends the single dispatch approach that is used in the majority of object-oriented

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

Conceptual Data Models for Database Design

Conceptual Data Models for Database Design Conceptual Data Models for Database Design Entity Relationship (ER) Model The most popular high-level conceptual data model is the ER model. It is frequently used for the conceptual design of database

More information