OO Design Notations Original version by B.Rogers/M.Utting.

Slides:



Advertisements
Similar presentations
UML an overview.
Advertisements

Unified Modeling Language
Improved software quality through semantic descriptions (Skutt) Karlstad University Dept. of Computer Science UML introduction A short introduction.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Lecture 11: Chapter 22 Topics –Object Oriented Modeling –UML –Use case.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
© Copyright Eliyahu Brutman Programming Techniques Course.
Unified Modeling Language 7/12/2015B.Ramamurthy1 The Unified Modeling Language™ (UML) was developed jointly by Grady Booch, Ivar Jacobson, and Jim Rumbaugh.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I.
Unified Modeling Language(UML) BY
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
CSCI-383 Object-Oriented Programming & Design Lecture 9.
CIT UPES | Sept 2013 | Unified Modeling Language - UML.
Introduction to the Unified Modeling Language “The act of drawing a diagram does not constitute analysis or design. … Still, having a well-defined and.
Introduction to UML By: Prof. Aiman Hanna Department of Computer Science, Concordia University, Montreal, Canada.
Prepared by: Sanaz Helmi Hoda Akbari Zahra Ahmadi Sharif University of Tech. Summer 2006 An Introduction to.
Unified Modeling Language, Version 2.0
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Software development process ธนวัฒน์ แซ่ เอียบ. The development process Process –set of rules which define how a development project. Methodology and.
Object Oriented Programming Lecture 9: OO Design.
UML What Is the UML? The Unified Modeling Language (UML) is the successor to the wave of object- oriented analysis and design (OOA&D) methods.
UML Review of diagram types. 2 Unified Modeling Language The Unified Modeling Language™ (UML) was developed jointly by Grady Booch, Ivar Jacobson, and.
Copyright © 2013 Curt Hill UML Unified Modeling Language.
An Introduction to the Unified Modeling Language
UML The Unified Modeling Language A Practical Introduction Al-Ayham Saleh Aleppo University
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Design Jon Walker. More UML ● What is UML again?
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
CSE 403, Spring 2008, Alverson Using UML to express Software Architecture.
Introduction to UML CS A470. What is UML? Unified Modeling Language –OMG Standard, Object Management Group –Based on work from Booch, Rumbaugh, Jacobson.
The Unified Modeling Language (UML)
Analysis Modeling CpSc 372: Introduction to Software Engineering
ITEC324 Principle of CS III Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
Software Engineering Lecture 8 Object-Oriented Analysis.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Use Case Diagrams Lecture Oo14 Use Cases. References n Booch, et al, The Unified modeling Language User’s Guide, AWL, 1999, Chapt 16 & 17 n Fowler & Scott,
Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A.
UML Review of Use case diagrams. 2 Unified Modeling Language The Unified Modeling Language™ (UML) was developed jointly by Grady Booch, Ivar Jacobson,
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
Copyright (C), No Magic, Inc Welcome to No Magic!
Object Oriented Programming Lecture 10: UML & CRC.
CS 501: Software Engineering Fall 1999 Lecture 15 Object-Oriented Design I.
UML. Model An abstract representation of a system. Types of model 1.Use case model 2.Domain model 3.Analysis object model 4.Implementation model 5.Test.
Chapter 2 (Horstmann’s Book) – Part 1 The Object-Oriented Design Process Hwajung Lee.
SWE 214 (071) Introduction to UML Slide 1 Introduction to UML.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
1 An Overview of UML. 2 The Unified Modeling Language UML is a graphical language used by software engineers to model software systems during development.
Chapter 5 – System Modeling Lecture 1 1Chapter 5 System modeling.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Modeling with UML – Class Diagrams
Introduction to UML.
Object-Oriented Analysis and Design
Object-Oriented Modeling with UML
Unified Modeling Language
Introduction to Unified Modeling Language (UML)
Introduction to Unified Modeling Language (UML)
OO Domain Modeling With UML Class Diagrams and CRC Cards
Chapter 2, Modeling with UML
Unified Modeling Language
A short introduction to UML Eivind J. Nordby Karlstad University
Introduction to Object Oriented Analysis, Design and Unified Modeling Language (UML) Shanika Karunasekera.
Introduction to UML.
Object Oriented Analysis and Design
Unified Modeling Language
Copyright 2007 Oxford Consulting, Ltd
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
ITEC324 Principle of CS III
Presentation transcript:

OO Design Notations Original version by B.Rogers/M.Utting

Notations n There are a large number of OO and other design notations (text or diagram) n Serve two main purposes –helping express ideas during design –documenting the final structure of a system n Informal (personal) –allow free expression of ideas n Formal (standard) –may admit proof of correctness –permits development of tools (Rat Rose) –communication to others

Notations n Ad Hoc notations –widget relationships n UML –class diagrams –(activity diagrams) n CRC cards –Class, Responsibility and Collaboration n Use Cases

paper triangle button Widget Organisation circle button square button lcd quit button window

Organisation of Widgets window (QWidget) quitbutton (QPushButton) squarebutton (QPushButton) circlebutton (QPushButton) trianglebutton (QPushButton) paper (Canvas) lcd (QLCDNumber)

Widgets emphasising links window lcd square circle quit triangle paper desktop

Unified Modelling Language n Facetiously called Union of all MLs n (UML) Grady Booch, Jim Rumbaugh, and Ivar Jacobson n Unifies and standardises a number of notations developed over the 80 and 90’s n A (mainly) graphical language used to express object oriented designs. –use case diagrams; class diagrams; interaction diagrams; package diagrams; state, collaboration, sequence, activity diagrams; deployment diagrams.

Class Diagram n Can be used at different stages of development: from modeling the kinds of objects in a system through to detailed implementation n Classes may be implemented as Java classes or not, may just be kinds of items in a system n A class is shown as a box: Attributes NAME Operations

Attributes NAME Operations int atx, aty graphic draw resize Examples n Name in italics for an abstract class Shape current_shape Graphic picture Canvas mouse down, move, up repaint set shape

Class Diagram n Association –what uses, has, contains, is related to... n Multiplicity –how many of each kind of object are related n Navigability –what pointers are present n Generalization –sub/super class relationships n Other constraints

int atx, aty graphic draw resize Shape current_shape Graphic picture Canvas mouse down, move, up repaint set shape four buttons lcd display MAIN

int atx, aty graphic draw resize Shape current_shape Graphic picture Canvas mouse down, move, up repaint set shape 1 * four buttons lcd display MAIN 11

int atx, aty graphic draw resize Shape current_shape Graphic picture Canvas mouse down, move, up repaint set shape 1 * four buttons lcd display MAIN 11

int atx, aty graphic draw resize Shape current_shape Graphic picture Canvas mouse down, move, up repaint set shape 1 * four buttons lcd display MAIN 11 int size Square int width, height Triangle int radius Circle

CRC Cards n Class, Responsibility and Collaboration –Cunningham and Beck from Tektronix labs in Portland, Oregon. (Smalltalk) –Used 15 by 10cm index cards n Attempt to encourage a high level description of the purpose of a class n Avoid details of methods and attributes n Small card limits the number of responsibilities and amount of detail

graphic knowing where on the displayCanvas surface it should be drawn drawing itselfCanvas (delegated to subclasses) resizing, given new extentCanvas (delegated to subclasses) Responsibilities Name Collaborators

graphic knowing where on the displayCanvas surface it should be drawn drawing itselfCanvas (delegated to subclasses) resizing, given new extentCanvas (delegated to subclasses) Canvas responding to mouse eventsGraphic(+) by drawing a graphic knowing which kind of graphicMAIN to draw next(buttons) maintaining a list of graphicsGraphic which have been drawn repainting the screenCanvas

squarecircletrianglesquareMAINCanvas responding to mouse eventsGraphic(+) by drawing a graphic knowing which kind of graphicMAIN to draw next(buttons) maintaining a list of graphicsGraphic which have been drawn graphic knowing where on the displayCanvas surface it should be drawn drawing itselfCanvas (delegated to subclasses) resizing, given new extentCanvas (delegated to subclasses)

Use cases 1 n What is a use case? n Identify user goal’s, not system functions n E.g. for a word processor: –Build an index –Insert a picture –Ensure consistent formatting. n Describe external view, interactions with the outside world.

Use cases 2 Express requirements at a high level n The first step in software analysis is to develop a sufficient set of use cases. (but will also useful later on for system testing) n Each use case (business task) has: –A name: –An actor: a role that a user takes when using the system. Actors are usually human. –A description: of interaction with system.

Description should tell us: n What are the main tasks done by the actor? n What inputs/outputs will the actor give/get? n Does the actor have to inform the system about changes in the external environment? n What information does the actor want from the system? n Does the actor wish to be informed about unexpected changes?

Use Case Diagrams Use Case Name Actor Name > (special cases/exceptions)

Use Case Diagrams 2 > Valuation Analyze risk Trader Price deal Customer Capture deal Limit exceeded