Conquering Complex and Changing Systems Object-Oriented Software Engineering System Design:Hardware/ software mapping, example Päivi Ovaska
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2 Selecting a hardware configuration and platform Many systems run on more than one computer and depend on access to an intranet or to Internet The use of multiple computer can address high-performance needs or to interconnect multiple distributed users Carefully examine the allocation of subsystems to computers and the design of the infrastructure for supporting communication betwee subsystems. Computers are modeled as nodes in UML deployment diagrams includes also selecting a virtual machine (operating system, database management system, communication package, web browsers) onto which the system should be built
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3 Selecting a hardware configuration and platform for MyTrip PlanningSubsystem and RoutingSubsystem run on two different nodes PlanningSubsystem runs in WebServer and RoutingSubsytem runs in onboard computer Unix machine as a virtual machine for the WebServer Web browsers Netscape and Internet Explorer for onboard computer UML Deployment Diagram for MyTrip (Rose version)
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4 Allocating objects and subsystems to nodes in MyTrip Objects and subsystems are assigned to nodes RoutingSubsystem and PlanningSubsystem share the objects Trip, Destination, Crossing, Segment, Direction Create a new subsystem to support communication between instances of these classes via a wireless modem: Communication Subsystem Only segments not part of the trip are stored in RoutingSubsystem. Adjacent segments not part of the trip are stored only in the PlanningSubsystem. We need objects in the RoutingSubsystem that can act as a surrogates to Segments and Trips in the PlanningSubsystem. We create two new classes SegmentProxy and TripProxy, that act on the behalf of Segment and Proxy classes.(Proxy design pattern next lecture)[Gamma et al., 1994] In the case of replanning by the driver, these classes will transparently request the CommunicationSubsystem to retrieve the information associated with its corresponding Segments on the PlanningSubsystem. The CommunicationSubsystem is used for trasferring a complete trip from PlanningSubsystem to RouteAssistant.
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5 MyTrip revised design model CommunicationSubsystem The CommunicationSubsystem is responsible for transporting objects from the PlanningSubsysem to the RoutingSubsystem Connection A Connection represents an active link between the PlanningSubsystem and the RoutingSubsystem. A Connection Object handles exceptional cases associated with loss of network services Message A Message represents a Trip and its related Destinations, Segments, Crossings and Directions, encoded for transport