Objectives Design Class Diagrams Issues in system design Generalization Review UML papers.

Slides:



Advertisements
Similar presentations
Computer Science Dept. Fall 2003 Object models Object models describe the system in terms of object classes An object class is an abstraction over a set.
Advertisements

Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
October 23, 2001 Software Design-Layering and Packaging1 Architecture: Layers and Packages.
Oct 22, Ron McFadyen1 Design Class Diagrams n Class diagram with – classes – associations – attributes – methods – navigability – interfaces,
March R McFadyen1 Architecture Architecture involves the set of significant decisions about the organization of a software system, decisions.
Fall 2009ACS-3913 Ron McFadyen1 Design Class Diagrams n Class diagram with – classes – associations – attributes – methods – navigability – interfaces,
Copyright W. Howden1 Lecture 11: UML Terminology and Additional Models and Notation.
6/8/991 Analysis Tuesday 09/14/99 Revised: September 11, 2000 (APM)
October 16, 2001Class Diagrams1. October 16, 2001Class Diagrams2 (Design) Class Diagrams (1) zA class diagram is a visual representation of various classes.
November Ron McFadyen1 Design Class Diagrams n Class diagram with – classes – associations – attributes – methods – navigability – interfaces,
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
Logical Architecture and UML Package Diagrams
March R McFadyen1 Figure 30.2 Layers in NextGen They only have three layers in this architecture Each layer is shown as a UML Package No separate.
Designing with Interaction and Design Class Diagrams Chapters 15 & 16 Applying UML and Patterns Craig Larman With some ideas from students in George Blank’s.
The Unified Modeling Language (UML) Class Diagrams.
Object-Oriented Analysis and Design
Object-Oriented Design. From Analysis to Design Analysis Artifacts –Essential use cases What are the problem domain processes? –Conceptual Model What.
The Design Discipline.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Logical Architecture and UML Package Diagrams 徐迎晓 复旦大学软件学院.
Systems Analysis and Design in a Changing World, Fifth Edition
GRASP Principles. How to Design Objects The hard step: moving from analysis to design How to do it? –Design principles (Larman: “patterns”) – an attempt.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
1 SAD2 - UML 4 th Lecture Class Diagram in Construction Phase Patterns Case Study Lecturer: Dr Dimitrios Makris
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Lab 04.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 13 Logical Architecture and UML Package Diagrams 1CS6359 Fall 2012 John Cole.
© 2005 Prentice Hall10-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
GRASP: Designing Objects with Responsibilities
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Chapter 16 Applying UML and Patterns Craig Larman
© 2005 Prentice Hall9-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
NJIT UML Class Diagrams Chapter 16 Applying UML and Patterns Craig Larman.
What to remember from Chap 13 (Logical architecture)
UML The Unified Modeling Language A Practical Introduction Al-Ayham Saleh Aleppo University
BTS430 Systems Analysis and Design using UML Domain Model—Part 2: Associations and Attributes.
Lecture 18: Object-Oriented Design
UML Package Diagrams. Package Diagrams UML Package Diagrams are often used to show the contents of components, which are often packages in the Java sense.
Slide 1 What the business needs  How to build it Functional requirements  + Nonfunctional requirements Performance System environment issues Problem.
TK2023 Object-Oriented Software Engineering CHAPTER 8 LOGICAL ARCHITECTURE.
Chapter 16 UML Class Diagrams 1CS6359 Fall 2012 John Cole.
INFO 620Lecture #71 Information Systems Analysis and Design Design Class Diagrams and others INFO 620 Glenn Booker.
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
BTS430 Systems Analysis and Design using UML Domain Model—Part 2: Associations and Attributes.
OO Methodology Elaboration Phase Iteration 1- Part 3.
TK2023 Object-Oriented Software Engineering CHAPTER 11 CLASS DIAGRAMS.
BTS430 Systems Analysis and Design using UML Design Class Diagrams (ref=chapter 16 of Applying UML and Patterns)
11 Systems Analysis and Design in a Changing World, Fifth Edition.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
UML Diagrams: Class Diagrams The Static Analysis Model
Conception OBJET GRASP Patterns
Distribution and components
The Object Oriented Approach to Design
Figure 30.2 Layers in NextGen
CIS 375 Bruce R. Maxim UM-Dearborn
Starting Design: Logical Architecture and UML Package Diagrams
The Islamia University Bahawalpur
Design Yaodong Bi.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
CIS 375 Bruce R. Maxim UM-Dearborn
Design.
Chapter 11: Class Diagram
Presentation transcript:

Objectives Design Class Diagrams Issues in system design Generalization Review UML papers

Design Class diagrams Objectives –create design class diagrams –identify classes, methods, associations

Design Class diagrams Definition: illustrates the specifications of software classes in an application dependent on the following activities –interaction diagrams (sequence or collaboration diagrams) are completed –conceptual model showing the concepts Conceptual modeling begins the definition of Class diagrams

Design Class diagrams What is the difference between Design Class diagrams and Conceptual model? –Sale in a conceptual represents an abstraction of a real world concept that we are interested in –Sale in a class diagram represents a software class, meaning it includes attributes, attribute types, methods UML does not differentiate these two types

Design Class diagrams How to make a Design Class diagram? –Identify all the concepts (classes) by analyzing the interaction diagrams,use cases –identify the methods by analyzing the “messages” being exchanged in interaction diagrams –state diagrams reveal more methods –add type information for attributes

Design Class diagrams How to make a Design Class diagram? –Add method return information (attribute and type information) –add associations to indicate dependencies, generalizations –add cardinality information

Design Class diagrams POST captures 11 Sale Date isComplete: boolean time captures 11 POST Date isComplete:boolean time Sale Date isComplete:boolean time makeLineItem() Conceptual model Software components

Design Class diagrams create is a special language independent UML message to indicate instantiation and initialization. As this is a common operation, it is often omitted from class diagrams. Access methods for class attributes are also omitted from class diagrams to reduce clutter. Messages to a multiobject are not shown as methods in the class whose objects are contained in a multiobject.

Design Class diagrams It is recommended that UML syntax be used for method naming. This will keep naming language independent. UML format: methodName(parameterList) Should all type information be shown in a class diagram? –If automatic code generation is desired then YES. –If the sole purpose is to use the diagram as a communication aid, then all type information is not of any significant value.

Design Class diagrams captures 11 POST Date isComplete:boolean time Sale Date isComplete:boolean time makeLineItem() POST will likely have an attribute pointing to Sale. Navigability arrow: POST objects are connected uni-directionally to Sale objects. No navigability arrow..Sale does not have connection to POST.

Design Class diagrams It is recommended that associations be adorned with navigability arrows. Navigability is determined by visibility. –A sends a message to B. –A creates an instance of B. –A needs to maintain a connection to B. Associations also indicate “persistent” connections

Design Class diagrams In UML a dependency relationship indicates that one element has knowledge of another element. It is illustrated with a dashed arrow. Non-attribute visibility…arising from parameters, global, or locally declared items is illustrated by dashed arrows. (Fig larman)

Issues in system design Design a system architecture in terms of layers and partitions Use UML to illustrate package diagrams Identify and apply common system design principles –Model-View separation –Publish-Subscribe events

Issues in system design Often a system is composed of multiple subsystems. Example: –An information system connects to a use interface and a persistent storage mechanism. How does one show subsystems and their interactions in UML ?

Issues in System design UPC Cash Quantity Balance Enter ItemEnd SaleMake Payment Object Store x _ Cash Presentation layer Persistent storage Application logic Record SalesAuthorize payments Storage Database

Issues in System design 3-tier architecture separates the application logic into a distinct middle layer. Presentation layer (mostly) free of application processing. Middle layer communicates with the back-end layer. Would you prefer a two-tier architecture? (Obtained by placing application logic into the presentation layer.)

Application logic Presentation POSTApplet ReportGeneratorDBInterface SalePayment Domain concepts services Storage Database Issues in System design Decomposition

Issues in System design Multi-tiered architecture useful when: –The application logic needs to be split and isolated into multiple layers. –The application logic needs to be distributed amongst several computers. –Development of components needs to be distributed amongst various developers.

Issues in System design Deployment : –A 3-tier architecture may be deployed in various configurations. Examples: –Presentation and app logic on one computer, database on a server. –Presentation on client computer, app logic on application server, and database on a data server.

Domain concepts Issues in System design Core elements Sales

Issues in System design Presentation DomainServices Presentation App logic Storage Database

Issues in System design Packages guidelines –group elements that provide a common service –usually applicable most during class modeling –coupling and collaboration between elements of various packages should be low –elements within a single package should be strongly related.

Issues in System design Layers and Partitions –Layers of an architecture represent vertical tiers. –Partitions represent horizontal tiers, e.g. the Services layer may be divided into Security and Reporting. –Upward and downward communication is feasible across components in a vertical layer. This is also known as a “relaxed layer” architecture.

Issues in System design Model-View separation –de-couple domain objects from window objects –design domain classes so that there is no direct coupling to window classes –minimize the impact of changes to requirements to either domain or window interfaces Indirect communication in a system –design for publish-subscribe patterns (polling is to be avoided where possible)

Generalization Objectives –create generalization-specialization hierarchies –validate using “Is-a” tests

Generalization Inheritance –Generalization : classes with a set of similar features and meaning –the sharing of attributes, operations among classes related by generalization –for example:

Generalization

Dependency –A dependency exists between two items if changes to one item causes a change to the other item For example: between two classes Account and Interest, a change in interest rate causes changes in the account

Generalization Dependency - example

Generalization Aggregation –An association that relates a whole to its parts

More on Relationships Polymorphism - refers to operations among classes that are logically the same but have more than one implementation method

More on Relationships