240 likes | 382 Views
Focus on WHAT, not HOW Analyst needs to understand the problem How does software fit into overall systems? What are the customer’s concerns? How will the software solve the customer’s problems Serves as the contract between the customer and the developer Starting point for design.
E N D
Focus on WHAT, not HOW Analyst needs to understand the problem How does software fit into overall systems? What are the customer’s concerns? How will the software solve the customer’s problems Serves as the contract between the customer and the developer Starting point for design Requirements Model
Interview customer Understand the current process Flow of information Form of information Decompose the problem Describe the problem in the customer’s terminology Have the customer review, correct, and refine the description of the problem Getting Started-Understanding the Customer
Propose a Conceptual “Solution” • May model the current approach or propose a completely new approach • Present alternative approaches • not alternative implementations, but alternative conceptual approaches • Use UI prototype to help clarify issues • Remember importance of maintainability • Plan for extensibility
Purpose of Modeling • Testing a physical entity before building • Communication with customer • Visualization • Reduction of complexity • Better understanding of the problem
Early Modeling Notations • Template-based natural languages • SREM • Boxes and arrows depicting data and control flow • SADT, IDEF • Statecharts • Data Structures • Jackson Design Notation
OO was the catalyst for newOO modeling techniques • Many different contenders • Grady Booch, Rational Software • Jim Rumbaugh, GE, OMT • Ivar Jacobsen, Ericsson, use cases • Unified Modeling Language (UML) • Combines Booch, Rumbaugh, Jacobsen’s techniques • PL/1 of modeling languages
Object Modeling Technique (OMT) • Three complimentary views of the system • Object model (WHAT) • Static, structural view of the system • Describes objects in the system and their relationships
Object Modeling Technique (OMT) • Dynamic model (WHEN) • Temporal, behavioral, control view of system • Interaction among objects • Functional model (HOW) • Transformational, function view of the system • Describes the transformation of data
Object Model • Object - a concept, abstraction, or thing • Promote understanding of problem domain • Object is distinguishable and has identity • Class - group of objects with • similar properties, • common behavior • common relationships to other objects • common semantics
Object Model (cont.) • An object is an instance of a class • Attribute - a data value associated with an object • pure value, not an object • Operation - a function or transformation that may be applied to or by an object
Object Model (cont.) • Class Notation Class Name attribute attribute: type = initial value . . . operation(arg-list): result-type . . . Attributes and operations shown depends on desired level of detail
Example: WEB Class • Synchronous instructional web tool • Use the Web Browser as sophisticated data display • Group-based communication model • Reliable multi-cast communication protocol
WEB Class Components • Browser synchronization • Web_Instructor • Detect changes in the instructor browser • Format information into resources • Send resources (reliably) • Web_Student • Receive and unpack resources • Display resources through the web browser
WEB Class Components (cont.) • Real audio stream • Audio connection from the instructor to the students • Live connection • Chat tool • Feedback mechanism from the students to the instructor
Web_Student name: string Example Class Definitions Web_Instructor name: string Helper_App server_name: string server_mime: string server_path: string Etc. ... start_service send_file(filename,URL) spawn_viewer(appname,filename)
Object Model: Associations • Means for establishing relationships among classes • group of “links” with common structure and semantics • physical or conceptual connection between object instances • inherently bi-directional • may be binary, ternary, or higher order
Example: Association Communicates with Mreceiver Msender
Object Model: Aggregation • “Part-of” relationship • associates an object representing an assembly with the objects representing its components • Special form of association • Transitive • Antisymmetric
Example: Aggregation Web_Student Browser_Wrapper Browser_Slave Mreceiver
Object Model: Generalization • “Is-a” relationship between classes • Subclass(es) refine a superclass • Superclass generalizes its subclass(es) • Subclass(es) inherit attributes and operations of the superclass • Transitive association
Example: Generalization Web_User name: string Web_Student Web_Instructor
Object Model: Multiplicities • Indication how many instances of one class may relate to an instance of another class Zero or more One or more 3 Exactly three 1+ One or more 2-6 From 2 to 6
Example: Web Class Object Model Web_User Web_Student Web_Instructor Browser_Slave Mreceiver Msender ViewerConfig Browser_Wrapper Helper_App Browser_Listener
Understand the problem Keep it simple (initially) Choose good class names Look for binary associations Ignore multiplicities (initially) Do not feel you have to use all the constructs Concentrate on WHAT Document, document, document! Refine until complete and correct Object Model: Creation Tips