Download presentation
Presentation is loading. Please wait.
Published byHilary Anderson Modified over 9 years ago
1
Design Model Lecture p6 T120B029 2004 pavasario sem.
2
2 Main processes of the team assignment requirements analysis design process codingtesting Used technique: UML use case diagrams UML activity diagrams Used technique: UML component diagrams, UML class diagrams, UML state diagrams UML sequence diagrams, UML activity diagrams Used languages: Java C++ … requirements document problem description design document T120B029
3
3 The Design Model T120B029 The analysis model represents the system in terms of objects that domain experts know. The design model represents the same system, but at a level of abstraction closer to the source code. For example, the classes in the design model have a language and model properties assigned, which define the mapping to code.
4
4 Structural Diagrams Used to visualize, specify, construct, document static aspects of system class diagram package diagram [not standard UML] object diagram component diagram deployment diagram T120B029
5
5 Common Uses of Class Diagrams to model vocabulary of the system, in terms of which abstractions are part of the system and which fall outside its boundaries to model simple collaborations (societies of elements that work together to provide cooperative behavior) to model logical database schema (blueprint for conceptual design of database) T120B029
6
6 Class diagram Central for OO modeling Shows static structure of the system –Types (!) of objects –Static relationships Association (e.g.: a company has many employees) Generalization (subtypes) (e.g.: an employee is a kind of person) Dependencies (e.g.: a company is using trucks to ship products) T120B029
7
7 Three Perspectives We can look at classes from these perspectives: Conceptual (OOAnalysis) –Shows concepts of the domain –Should be independent from implementation Specification (OODesign) –General structure of the running system –Interfaces of software (types, not classes) –Often: Best perspective Implementation (OOProgramming) –Structure of the implementation (classes) –Most often used Try to draw from a clear, single perspective T120B029
8
8 What are classes? –A class describes a set of objects with an equivalent role or roles in a system –Sources for objects: tangible real- world things, roles, events, interactions T120B029
9
9 Class A class is a description of a set of objects that share the same attributes, operations, relationships, and semantics. An attribute is a named property of a class that describes a range of values that instances of the property may hold. An operation is a service that can be requested from an object to affect behavior. T120B029
10
10 ? Why do we need class models? What is a good class model? How to identify classes? What classes consist of? What are associations and what types of associations exist? What are interfaces? T120B029
11
11 Identifying Classes –Identify class candidates by picking all nouns and noun phrases out of system requirements specification –Use singular form –Discard anything that does not seem appropriate: redundant, vague, event or operation, outside of scope, attribute T120B029
12
12 Identifying Objects –Objective: System must satisfy current requirements –Solution: Every required behavior must be provided by some objects –Objective: System must be easy to maintain and adapt to future requirements T120B029
13
13 Class Notation Name Attributes Operations T120B029
14
14 Alternative Class Notations Name Attributes Operations Responsibilities Name Attributes Operations Name italicsabstract T120B029
15
15 Attributes and Operations –Operations define the ways in which objects may interact Operation signatures – how are they defined? Attributes are the data contained in an object Both can be public, protected or private T120B029
16
16 Attributes Conceptual: Indicates that customer have names Specification: Customer can tell you the name and set it (short for get/set methods) Implementation: An instance variable is available Customer name address creditRating T120B029
17
17 Operations Services that a class knows to carry out Correspond to messages of the class (or IF) Conceptual level –principal responsibilities Specification level –public messages = interface of the class Normally: Don’t show operations that manipulate attributes T120B029
18
18 UML syntax for operations visibility name (parameter list) : return-type-expression + assignAgent (a : Agent) : Boolean –visibility: public (+), protected (#), private (-) Interpretation is language dependent Not needed on conceptual level –name: string –parameter list: arguments (syntax as in attributes) –return-type-expression: language-dependent specification T120B029
19
19 Operations vs. Responsibilities Conceptual: Operations should specify responsibilities, not IF, e.g.: –The Customer specifies the Orders –The Orders list the Customer * 1 Order dateReceived isPrepaid number : String price : Money Responsibilities - lists the customer Customer name address Responsibilities - specifies orders T120B029
20
20 Relationships connections between classes dependency generalization association T120B029
21
21 Associations (1) Associations correspond to verbs, as classes correspond to nouns Class A and class B are associated if –An object of class A sends a message to an object of class B –An object of class A creates an object of class B –An object of class A has an attribute whose vales are objects of or collections of objects of class B –An object of class A receives a message with an object of class B as an argument T120B029
22
22 Association(2) An association is a structural relationship within which classes or objects are connected to each other. (An association between objects is called a link.) CompanyPerson T120B029
23
23 Association Classes An association class has properties of both an association and a class. CompanyPerson Job description dateHired salary T120B029
24
24 Association Adornments name role multiplicity aggregation composition T120B029
25
25 Association Name describes nature of relationship: can also show direction to read name: CompanyPerson works for CompanyPerson works for T120B029
26
26 Association Roles(1) describe “faces” that classes present to each other within association class can play same or different roles within different associations CompanyPerson employee employer T120B029
27
27 Association Roles(2) Roles clarify participation of each class in association T120B029
28
28 Association Multiplicity(1) possible values same as for classes: explicit value, range, or * for “many” Example: a Person is employed by one Company; a Company employs one or more Persons CompanyPerson 1..* 1 T120B029
29
29 Multiplicity of an association: –An exact number –A range of numbers –An arbitrary, unspecified number (*) T120B029 Association Multiplicity(2)
30
30 Generalization and Specialization Generalization relationship between two classes indicates that one class in more specific than the other in representing similar objects How to check whether generalization exists: “every Instructor is a Person” Inheritance is a way to implement generalization T120B029
31
31 Generalization A generalization is a “kind of” or “is a” relationship between a general thing (superclass or parent) and a more specific thing (subclass or child). Shape RectangleCircle T120B029
32
32 Dependency A dependency is a “using” relationship within which the change in the specification of one class may affect another class that uses it. Example: one class uses another in operation Window handleEvent() Event T120B029
33
33 Aggregation and Composition Aggregation: an object of one class is a part of another class Composition: a strong form of aggregation – an object of one class is owned by an object of another class T120B029
34
34 Aggregation Aggregation is a “whole/part” or “has a” relationship within which one class represents a larger thing that consists of smaller things. Department Company T120B029
35
35 Composition Composition is a special form of aggregation within which the parts are inseparable from the whole. Frame Window T120B029
36
36 Realization A realization is a relationship between an interface and the class that provides the interface’s services. A class may realize many interfaces. Observer TargetTracker «interface» Observer update() T120B029
37
37 T120B029
38
38 An interface is a named collection of operations used to specify a service of a class without dictating its implementation. Observer «interface» Observer update() T120B029 Interfaces in UML (1)
39
39 An interface specifies some operations of a model element (a class) that are visible outside of a class An interface class cannot have any attributes T120B029 Interfaces in UML (2)
40
40 Interfaces in UML (3) Stereotype > InputStream {abstract} OrderReader Data InputStream Realization Dependency Generalization > DataInput close() T120B029
41
41 Interfaces in UML (4) OrderReader Data InputStream Dependency DataInput Interface Lollipops (“short-hand notation”) T120B029
42
42 Interface Relationships An interface may participate in generalization, association, and dependency relationships. Observer Tracker Periodic Observer Observation T120B029
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.