Transcript lec4.ppt
Dynamic Model Show the temporal order of operations Control model » Show the sequence of operations that occur in response to external stimuli » Do not worry about – what operations do – what they operate on – how they are implemented Dillon: CSE470:DYN & FUNC MODELLING 1 Dynamic Model Consists of multiple state diagrams » One for each class with important dynamic behavior » Shows – states of objects and activities performed in states – conditions under which events cause transitions – transitions and actions produced by events Dillon: CSE470:DYN & FUNC MODELLING 2 Terminology States - determined by the values of an object’s attributes and links » have a duration in time » may be associated with activities Activities - operations performed by an object » take time to complete Dillon: CSE470:DYN & FUNC MODELLING 3 Terminology Events - external stimuli » instantaneous » may produce state transitions » may produce actions Conditions - boolean functions of object values » “guard” state transitions Dillon: CSE470:DYN & FUNC MODELLING 4 Terminology Actions - instantaneous operations performed by an object Triggered by » an event that produces a state transition » entering a state » exiting a state » an event that does not cause a state transition – so entry and exit actions are not performed Dillon: CSE470:DYN & FUNC MODELLING 5 Graphical Notation State 1 Event(attrs)[cond]/ action1 do:activity entry/action2 exit/action3 event/action4 State 2 ... Ordering of Actions actions on incoming transition entry action activity and event action as appropriate exit action actions on outgoing transition Dillon: CSE470:DYN & FUNC MODELLING 6 Example: Helper_App Registering entry/Register(mimetype, this) do: monitor DDE msgs Ack/start_service DDE_exception Stop DDE_exception Ready do: monitor DDE msgs Ack Wait IO_Exception ChangeURL(file, url)/ Send_file(file, url) Spawn_viewer(appname, file) Dillon: CSE470:DYN & FUNC MODELLING Ack Changing URL 7 Nesting State Diagrams Helps organize and modularize SDs » A way to manage complexity Two forms of nesting » Refinement – add detail to a state – permits inheritance of transitions » Concurrency (aggregation) – aggregates objects, each with their own SDs Dillon: CSE470:DYN & FUNC MODELLING 8 Notation for Refinement Superstate event 1 Substate-1 event 3 Dillon: CSE470:DYN & FUNC MODELLING Substate-2 event 2 9 Example: Helper_App Registering entry/Register(mimetype, this) do: monitor DDE msgs Ack/start_service Ready do: monitor DDE msgs IO_Exception Wait Ack ChangeURL(file, url)/ Send_file(file, url) Spawn_viewer(. . .) Ack Changing URL DDE_exception Stop Dillon: CSE470:DYN & FUNC MODELLING 10 Ack/ start_service Ready Ack Wait ChangeURL(file,url) [url/=lastUrl and type =HTML] / sendURL(url,frame) Registering entry/Register(this) ChangeURL(file,url) [url=lastUrl or type/=HTML] Example:Browser_Listener DDE_exception Stop Dillon: CSE470:DYN & FUNC MODELLING 11 Notation for Concurrency Superstate event 1 Substate-1 Substate-3 Substate-2 Substate-4 event 2 Dillon: CSE470:DYN & FUNC MODELLING 12 Example:Browser_Slave Frame_manager Registering Rec_URL_manager DDE_exception Wait entry/Register(this) RecURL(url,frame) / B_activate Ack/ start_service Stop Ready Ack ChangeURL(file,url) / UpdateFrameVector (frame) Ack / B_OpenURL(url,frame) Ack Wait Dillon: CSE470:DYN & FUNC MODELLING 13 Example: WEB Class Web_Student Browser_Wrapper Mreceiver Browser_Slave Web_Instructor Helper_App1 Browser_Wrapper Msender Browser_Listener .. . Helper_App9 Dillon: CSE470:DYN & FUNC MODELLING 14 Dynamic Model: Creation Tips Create SDs only for object classes with meaningful dynamic behavior Check consistency between » SDs on shared activities » SDs and object model Use scenarios to » Begin construction of SDs » Check completeness of SDs Dillon: CSE470:DYN & FUNC MODELLING 15 Dynamic Model: Creation Tips (cont.) Let application determine granularity Distinguish between activities and actions Make use of entry and exit actions for multiple transitions Make use of nested SDs to reduce complexity Distinguish SDs for super and subclasses Dillon: CSE470:DYN & FUNC MODELLING 16 Functional Model Describes computations within a system » Specifies what happens » Shows how output values are derived from input values » Is not concerned with when computations are performed Consists of multiple data flow (DF) diagrams Dillon: CSE470:DYN & FUNC MODELLING 17 Terminology Process - transforms data values Data flow - connects output of a process or object to the input of another process or obj Actor - active object that drives the DF by producing or consuming data values Data store - passive object that stores data for later use Dillon: CSE470:DYN & FUNC MODELLING 18 Graphical Notation Process: Data flow between Processes: data name Process name Data store or file object: Name of data store Dillon: CSE470:DYN & FUNC MODELLING Process name Process name Data flow that results in a data store: Name of data store 19 Graphical Notation (cont.) Actor objects (as source or sink of data: d1 Actor1 d2 Actor2 Process name Composition, duplication, and decomposition of data values: d1 d1 composite d2 Dillon: CSE470:DYN & FUNC MODELLING d1 composite d2 20 Example: Banking application accounts Bank Account Select name Customer Dillon: CSE470:DYN & FUNC MODELLING balance request Update 21 Functional Model: Creation Tips Create FM only for objects/processes with meaningful data flow Start simple » one process with correct inputs and outputs Refine to next level by expanding the process Continue to refine one process at a time Check consistency between the inputs and outputs Dillon: CSE470:DYN & FUNC MODELLING 22