150 likes | 249 Views
RNDS Deployment, Collaborations and Sequences. CS 236700: Software Design Winter 2004-2005/T6. Reminder: Homework bonus program. Report a bug Report a programming challenge. RNDS: The story so far. Problem description SRS Use case model SDD Class design Sequence, Deployment
E N D
RNDS Deployment, Collaborations and Sequences CS 236700: Software Design Winter 2004-2005/T6
Reminder: Homework bonus program • Report a bug • Report a programming challenge
RNDS: The story so far • Problem description • SRS • Use case model • SDD • Class design • Sequence, Deployment • Detailed class design • Coding • Design patterns
Deployment diagram (1/2) • Deployment (in design) • The configuration of the running system in a real-world environment • Show relationships between Nodes • What is a node? • A “location” where run-time entities “live” • Run-time entities: objects, components • Has a memory • Usually has processing capabilities • Nodes usually represent: • Executables (processes) • Distinct hardware (workstations, I/O devices)
Deployment diagram (2/2) • Deployment diagram • Shows dependency between nodes • In most cases shows instances of nodes • Analogous to a diagram of running objects • Nodes are typically singletons/anonymous • It is possible (but not common) to show types of nodes • Analogous to class diagram • Relevant components/objects inside a node are usually shown • Notation • A network of Node symbols • Edges between nodes => communication relationship • Dashed arrows => dependency between components • Preferably thru interface
Components • What are components? • A replaceable part of the system • Provides implementation • Conforms to a set of interfaces • Components vs. classes • Every class is (usually) a trivial component • Usually components include several classes/packages • Not always coherent
Components considerations • The major tradeoff: • Simplicity vs. Modularity • Few components => System is simple • “Everybody” knows each other • Usually hard-coded within constructors • On the other hand: poor modularity • Many components => System is complex • Implementing inter-component relationship is difficult • Techniques for overcoming the problem: • Unique identifiers • Interfaces • Central registry • Configuration values processed in run-time • On the other hand: the system is highly modular
Deployment diagram (RNDS) • Devices: RF, GPS • Processes: RNDS station
Collaborations • What is a collaboration? • An arrangement of objects within a context • Properties • The collaboration is aimed at achieving some goal • Object (possibly) fulfill a predefined role • A single object may fulfill more than one role • Roles are only meaningful within their context • A parameterized collaboration is a Pattern • Collaboration diagram • Shows Interaction between the participating objects • Relationship are indicated by arrows (messages, composition, …) • Time is indicated by “sequence number”
Sequence Diagrams • Describes how groups of objects interact • Shows messages passed (between objects) over time • Properties • Captures the behavior of a single scenario • The most popular way for representing a use-case • Actually shows the same information as a collaboration diagram • Sequence diagrams (SD) vs. Collaboration Diagrams (CD) • SD: Shows time clearly; object relationships are implicit • CD: Shows object relationships clearly; time has no visual representation
Sequence Diagram: Adding a message • Adding actors, objects: • Drag-and-drop
Sequence Diagram: GPS update • Do you like this design?