1 / 50

Basic Structural Modeling

Basic Structural Modeling. Pertemuan ke 4 Classes. Overview. Classes Attributes Operations Responsibilities Modeling the vocabulary of a system. Modeling the distribution of responsibilities. Modeling non-software “things”. Modeling primitive types. Modeling quality abstractions.

tahlia
Download Presentation

Basic Structural Modeling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Basic Structural Modeling Pertemuanke 4 Classes

  2. Overview • Classes • Attributes • Operations • Responsibilities • Modeling the vocabulary of a system. • Modeling the distribution of responsibilities. • Modeling non-software “things”. • Modeling primitive types. • Modeling quality abstractions. CS6359

  3. Class Vs Objek

  4. Window name attributes operations origin size open() close() Classes • Description of a set of objects that share the same attributes, operations, relationships, and semantics. CS6359

  5. Names • Distinguishing identity. • Textual string. • Simple name. • Prefixed by package name to generate path name. Account Java::awt::Rectangle Simple names Customer path name Circuit Temperature Sensor CS6359

  6. Name Rules • Consists of letters, numbers, and certain punctuation marks. • Short noun phrases drawn from vocabulary of the domain. • First letter of every word capitalized. TemperatureSensor BrokerageAccount CS6359

  7. Attributes • Named property of a class. • Describes a range of values that an instance of the property may hold. • Short noun representing property of its enclosing class. • First letter of every word capitalized except the first. birthDate userAccount CS6359

  8. height : Float width : Float isStudent : Boolean = false origin size Attributes (cont’d) attributes You can further specify an attribute by stating its class and possibly a default initial value CS6359

  9. Operations • Abstraction of something that can be done to an object. • Shared by every object of the same class. • May cause object to change state. • Short verb representing behavior of representing class. • First letter of every word capitalized except the first. addUser() isEmpty() CS6359

  10. Operations (cont’d) operations reset() setAlarm( t : Temperature ) value() : Temperature add() move() You can specify an operation by stating its signature, covering the name, type and default value of all parameters and a return type CS6359

  11. Organizing • Only a subset of attributes and operations are typically relevant to any one view. • Elide a class; hide non-relevant information. • Use stereotypes to categorize. • Use ellipsis to specifyadditional attributes oroperations <<constructor>> new() new( p : Policy ) <<process>> process( o : Order ) … <<query>> isSuspect( o : Order ) CS6359

  12. Responsibilities • Contract or obligation of a class. • Carried out by attributes and operations. • Techniques • CRC cards (Class-Responsibility-Collaborator);Kent Beck and Ward Cunningham; ’89 • Use case based analysis. CS6359

  13. Responsibilities (cont’d) • Free-form text; one phrase per responsibility. FraudAgent responsibilities Responsibilities -- determine the risk of a customer order -- handle customer-specific criteria for fraud CS6359

  14. Modeling Techniques • Vocabulary. • Distribution of responsibilities. • Non-software things. • Primitive types. CS6359

  15. Modeling Vocabulary • Things used to describe the problem or solution. Found through CRC cards and/or use case analysis. • Identify responsibilities for each abstraction. • Provide attributes and operations needed to carry out responsibilities. CS6359

  16. Modeling Distribution of Responsibilities • Identify a set of classes that work together to carry out some behavior. • Identify responsibilities for each class. • Split classes with too much responsibility. • Collapse classes with trivial responsibility. • No class should do too little or too much. CS6359

  17. Modeling Non-software Things • Model the thing as a class. • Use stereotypes to give a distinctive cue. • Consider nodes to model hardware. • Use a unique icon. CS6359

  18. Modeling Primitive Types • Model as a type using a class notation. • Use stereotypes as necessary. • Use constraints to represent valid values. <<enumeration>> Boolean <<datatype>> Int false true { value range –2**31 to +2**31-1 } CS6359

  19. Hints & Tips • Well-structured class • Provides a crisp abstraction drawn from vocabulary of problem or solution. • Embodies small, well-defined set of responsibilities. • Provides clear separation of the abstractions specification and implementation. • Understandable and simple. • Extensible and adaptable. CS6359

  20. Hints & Tips (cont’d) • Drawing a UML class • Show only properties that are important in a specific context. • Organize long lists of attributes and operations by grouping. • Show related classes in the same diagrams. CS6359

  21. Summary • Classes • Name. • Attributes. • Operations. • Responsibilities. • Modeling techniques. • Vocabulary. • Responsibilities. • Non-software things. • Primitive types. CS6359

  22. Basic Structural Modeling Class Diagrams

  23. Overview • Modeling simple collaborations. • Modeling a logical database schema. • Forward and reverse engineering. CS6359 Chapter 8

  24. Class Diagram • Typical Contents • Classes • Interfaces • Collaborations • Relationships • Dependencies • Generalizations • Associations • Notes CS6359 Chapter 8

  25. Class Diagram Uses • Model static design view of a system. • Vocabulary of the system. • Collaborations • Logical database schema. CS6359 Chapter 8

  26. Modeling Simple Collaborations • Identify the mechanism to be modeled; a mechanism represents some function or behavior. • For each mechanism, identify the classes, interfaces, and other collaborations that participate in this collaboration. • Identify the relationships among those entities. • Use scenarios to walk through the model. CS6359 Chapter 8

  27. Example Collaboration CS6359 Chapter 8

  28. Modeling a Logical Database • Identify classes whose state must be persistent. • Create a class diagram using standard tagged value. • Expand to include structural details, specifically attributes and associations. • Identify common patterns which cause database problems; create intermediate abstractions if necessary. • Use tools if available to transform logical design into physical design. CS6359 Chapter 8

  29. Example Logical Database CS6359 Chapter 8

  30. Forward Engineering • Forward engineering—the process of transforming a model into code through a mapping to an implementation language. • Steps • Identify the rules of mapping to a specific language. • Constrain use of UML to match language semantics (e.g. inheritance). • Use tagged values to identify language. • Use tools when possible. CS6359 Chapter 8

  31. Example Forward Engineering public abstract class EventHandler { private EventHandler successor; private Integer currentEventId; private String source; EventHandler() {} public void handleRequest() {} } CS6359 Chapter 8

  32. Reverse Engineering • Reverse engineering—the process of transforming code into a model through mapping from a specific implementation language. • Steps • Identify the rules of mapping from a specific language. • Use a tool; point the tool to the code. • Query the model to obtain desired information for the model. CS6359 Chapter 8

  33. Hints & Tips • Separate your analysis models from your design models. • Different levels of abstraction. • Different contextual vocabulary. • Elements of a well-structure class diagram. • Focused on one aspect of a system’s static design view. • Contains only essential elements for that aspect. • Provides sufficient details for the level of abstraction. CS6359 Chapter 8

  34. Hints & Tips (cont’d) • Give diagrams a name that communicates their purpose. • Diagram layout. • Minimize crossing of arcs. • Co-locate semantically related elements. • Use notes and color as visual cues. • In general one relationship type will dominate each diagram; don’t confuse the issue. CS6359 Chapter 8

  35. Summary • Class diagram contents. • Modeling simple collaborations. • Modeling logical databases. • Forward engineering • Reverse engineering. CS6359 Chapter 8

  36. Advanced Structural Modeling Advanced Classes

  37. Overview • Classifiers • Advanced notations • Special properties • Attributes • Operations • Template Classes CS6359 Chapter 9

  38. Advanced UML Notations CS6359 Chapter 9

  39. Classifiers • Classifier—mechanism that describes structural and behavioral features. CS6359 Chapter 9

  40. Classifier Examples CS6359 Chapter 9

  41. Visibility • Public—access allowed for any outside classifier with visibility to the given classifier (+). • Protected—access allowed for any descendant of the classifier (#). • Private—access restricted to the classifier itself (-). CS6359 Chapter 9

  42. Frame instance scope class scope header : FrameHeader uniqueID : Long Scope • Instance—each instance of the classifier holds its own value. • Classifier—one value is held for all instances of the classifier (underlined). CS6359 Chapter 9

  43. Generalization CS6359 Chapter 9

  44. could be singleton multiplicity 1 NetworkController 3 ControlRod consolePort [ 2..* ] : Port Multiplicity • Constraint on the number of instances of a class or attribute. CS6359 Chapter 9

  45. Attributes • Syntax[ visibility ] name [ multiplicity ] [ : type ] [ = initial-value ] [ {property-string } ] • property-string • changeable—no restrictions (default) • addOnly—values may not be removed or altered, but may be added • frozen—may not be changed after initialization CS6359 Chapter 9

  46. Attributes (cont’d) • Examples CS6359 Chapter 9

  47. Operations • Syntax[ visibility ] name [ (parameter-list ) ] [ : return-type ] [ (property-string) ] • parameter-list syntax[ direction ] name : type [ = default-value ] • direction • in—input parameter; may not be modified • out—output parameter; may be modified • inout—input parameter; may be modified CS6359 Chapter 9

  48. Operations (cont’d) • property-string • isQuery—state is not affected • sequential—not thread safe • guarded—thread safe (Java synchronized) • concurrent—typically atomic; safe for multiple flows of control CS6359 Chapter 9

  49. Template Classes • Parameterizedelement CS6359 Chapter 9

  50. Summary • Classifiers • Visibility • Scope • Multiplicity • Attributes • Operations • Template Classes CS6359 Chapter 9

More Related