Software Architecture & Design Pattern Lecture 4 Software Development Methodology Object Model OO Analysis OO Modeling/UML Basics Software Development Process 1
Software Architecture & Design Pattern Object Model The collection of concepts used to describe objects in a particular object-oriented language, specification, or analysis and design methodology - abstraction of object - behavior of object - description of interface Dynamic Model Functional Model 2
Software Architecture & Design Pattern Object Properties/Attributes Attributes Operations/methods (synch vs. asynch) Messages Specification of behavioral semantics State Object lifetime Behavior/state grouping Communication model Events 3
Software Architecture & Design Pattern Entity/Object Java Object Model Packages Classes Interfaces Dynamic Loading 4
Software Architecture & Design Pattern OO Models System Level Class Level Object Model Display entities in system requirements statement, system drawing, system block diagram, system diagram, system specification Display entities in class diagram and class specifications Dynamic Model Display interactions and states in system interaction diagram, system interaction scenario, and system state diagram Display interactions and states in object interaction diagrams, object interaction scenario, and state diagrams Functional Model Display transformations in system operation table and system operation specification Display transformations in operation tables and specification 5
Software Architecture & Design Pattern Object Model Types OODBTG Reference Model OMG Core Object Model COM/DCOM EXPRESS Open Distributed Processing (ISO/IEC JTC1/SC21/WG7) Management Information Model (ISO/IEC JTC1/SC21/WG4) SQL3 (H2) C++ (J16) OO COBOL (J4) Smalltalk (J20) Eiffel Emerald 6
Software Architecture & Design Pattern System Level Dynamic Model - system events and states 7
Software Architecture & Design Pattern Class Level Dynamic Model - interaction, messaging and states among objects 8
Software Architecture & Design Pattern Object Functional Model Describes the operations, services, input/output, and dynamics of an object in a system. 9
Software Architecture & Design Pattern Transformation of Operations of a Functional Model 10
Software Architecture & Design Pattern Classes and Relationships - Object Model Objects, Messages and States - Dynamic Model 11
Software Architecture & Design Pattern OO Modeling/UML Basics UML elements UML relationships UML model/diagram 12
Software Architecture & Design Pattern UML (Unified Modeling Language) "The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system.” --- OMG definition 13
Software Architecture & Design Pattern UML Basics UML consists of - elements - relationship - diagrams UML models - Use Case model - Class (Logic) model - Component (Physical) model - Interaction/Communication model - Deployment model 14
Software Architecture & Design Pattern UML Elements Use Case class interface component node message state package note 15
Software Architecture & Design Pattern Relationship Association Generalization Aggregation Interaction 16
Software Architecture & Design Pattern Association A link between objects that is a general mapping between the classes. An association relationship may be described as "has a", "associated with", or "knows about". 17
Software Architecture & Design Pattern Aggregation An association with "part of" semantics. An aggregation relationship may be described as "part of" or "bill of materials" between an assembly (whole) object and part objects. 18
Software Architecture & Design Pattern Generalization Indicates a commonality between a superclass and subclasses. It indicates that the superclass and subclass have common attributes, operations, and relationships. It is a "type of" relationship. 19
Software Architecture & Design Pattern Interaction (events or messages) A call or communication between objects. An interaction relationship may be described as "calls", "interacts", or "communicates with". 20
Software Architecture & Design Pattern System event - a stimulus for a system Object event - a stimulus that may result in transition to a new state for a state-based object Message - a stimulus from one object to another object, which invokes an operation 21
Software Architecture & Design Pattern UML Diagrams Structural Modeling class diagram component diagram package diagram deployment diagram Behavioral Modeling Use Case diagram sequence diagram interaction diagram state diagram 22
Software Architecture & Design Pattern Use Case Model A Use Case represents a discrete unit of interaction between a user (human or machine or other system) and the system. Each Use Case describes the functionality to be built in the proposed system. 23
Software Architecture & Design Pattern Use Case A technique for capturing functional requirements of systems. Each use case provides one or more scenarios that convey how the system should interact with the users called actors to achieve a specific business goal or function Three Key Elements in Use Case Actor System Scenario Goal 24
Software Architecture & Design Pattern 25
Software Architecture & Design Pattern Questions ? 26