290 likes | 306 Views
CEN 4010 Class 16 – 10/20. System Design cont. Review Class 15 Design Goals System Design Activities Identification of Subsystems Persistent Data Stores Access Control Control Flow. From this point on you should only be working with the 4 or 5 use cases that your team will implement.
E N D
CEN 4010 Class 16 – 10/20 System Design cont Review Class 15 Design Goals System Design Activities Identification of Subsystems Persistent Data Stores Access Control Control Flow From this point on you should only be working with the 4 or 5 use cases that your team will implement.
Overview of System Design cont System design results in: • A list of design goals that describes qualities of system the developers should optimize. • Software architecture that describes: • subsystem decomposition in terms of responsibilities, dependencies, mapping to h/w, and • major policy decisions such as control flow, access control, and data storage. CEN 4010 Class 16 - 10/20
Overview of System Design cont When decomposing the system you must address: • H/w and s/w mapping: • configuration of system • communication between nodes • services provided by of existing s/w components • encapsulation of components • purchase COTS (Commercial Of The Shelf) components e.g. GUIs, DBMSs CEN 4010 Class 16 - 10/20
Overview of System Design cont • Data management • persistence • storage of data (location) • accessibility • Access control • authorization • authentication • security CEN 4010 Class 16 - 10/20
Overview of System Design cont • Control flow • sequence of operations • type of system – event-driven • concurrency vs. sequential • Boundary conditions • system initialization • system shut down • exceptional conditions (detection and handling) CEN 4010 Class 16 - 10/20
System Design – Design Goals • Definition of design goals is the first step of system design. • Design goals are inferred from the nonfunctional requirements. • Design goals are organized into the following groups: performance, dependability, cost, maintenance, and end user criteria. • Performance criteria include the speed and space requirements imposed on the system. CEN 4010 Class 16 - 10/20
Design Goals cont • Dependability criteria - how much effort should be expended in minimizing system crashes and their consequences. • Cost criteria - the cost to develop the system, to deploy it, and to administer it. • Maintenance criteria - how difficult it is to change the system after deployment. • End user criteria - qualities from a users’ point of view and not yet covered under the performance and dependability criteria. CEN 4010 Class 16 - 10/20
Design Goals cont CEN 4010 Class 16 - 10/20
Design Goals cont CEN 4010 Class 16 - 10/20
Design Goals cont CEN 4010 Class 16 - 10/20
Design Goals cont CEN 4010 Class 16 - 10/20
Design Goals cont CEN 4010 Class 16 - 10/20
Design Goals cont CEN 4010 Class 16 - 10/20
System Design Activities • Identifying Subsystems and Mapping Subsystems to Processors and Components. • Identifying and Storing Persistent Data • Providing Access Control • Designing the Global Control Flow • Identifying Boundary Conditions • Reviewing the System Design Model CEN 4010 Class 16 - 10/20
System Design - Identifying Subsystems • Identifying subsystems is a volatile activity. • Heuristics: • Assign objects identified in one use case into the same subsystem. Note does not always work!!! • Create a dedicated subsystem for objects used for moving data among subsystems. • Minimize the number of associations crossing subsystem boundaries. • All objects in the same subsystem should be functionally related. CEN 4010 Class 16 - 10/20
Identifying Subsystems • Knowledge of design patterns can support the identification of the subsystems. • First identify the software architecture then use the design patterns for further refinement. • There are three (3) types of design patterns (Gamma et el.) • Creational – helps make a system independent of how its objects are created, composed, and represented. E.g., Abstract Factory, Builder, Factory Method, Prototype, Singleton. CEN 4010 Class 16 - 10/20
Identifying Subsystems • Structural – concerned with how classes and objects are composed to form larger structures. Use of inheritance to compose interfaces or implementations. E.g., Adapter, Bridge, Composite, Decorator, Façade, Flyweight, Proxy. • Behavioral – concerned with algorithms and the assignment of responsibilities between objects. Also describes patterns of communication between objects or classes. E.g., Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor. Will revisit later. CEN 4010 Class 16 - 10/20
UML Deployment Diagrams • UML deployment diagrams are used to depict the relationship among run-time components and hardware nodes. • Components are self-contained entities that provide services to other components or actors. • Nodes are represented by boxes containing component icons. • Dependencies represented by dashed arrows. CEN 4010 Class 16 - 10/20
UML Deployment Diagrams cont myMac:Mac :UnixHost :Safari :WebServer :UnixHost aPC:PC :Database :IExplorer UML deployment diagram: Web browsers on PCs and Macs can access a WebServer that provides information from a Database. CEN 4010 Class 16 - 10/20
Mapping Subsystems to Processors and Components • Need to allocate subsystems to computers and design the infrastructure for supporting communication between subsystems. • Note • Systems can run on many computers and depend on access to an intranet or to the Internet. • Multiple computers can provide high-performance needs by interconnecting multiple distributed users. • Should also select the virtual machine (VM), includes the OS, and any s/w components needed e.g. DBMS. CEN 4010 Class 16 - 10/20
System Design – Persistent Data • Persistent data outlive the execution of the system. • Where and how data is stored in the system impacts system decomposition e.g., repository architecture. • Three (3) realistic options for storage management: • Flat files • Relational database • Object-oriented database CEN 4010 Class 16 - 10/20
Persistent Data cont • Flat files – storage abstractions provided by the operating system. Application takes care of many issues e.g., concurrency, synchronization, security, recovery, etc.. • Relational database – data stored in tables that comply with a predefined type called schema. Mapping complex data to relational database causes problems. • Object-oriented database – Similar to relational database but stores data as objects and associations. Provides all the structural features of OO modeling. CEN 4010 Class 16 - 10/20
System Design – Access Control • In multi-user systems different users have different functionality and data. • During analysis this is modeled by associating different use cases to different actors. • Need to identify objects shared between actors and define the control access right for each actor. • Model access on classes using an access matrix. Three different approaches: global access, access control list, capabilities. CEN 4010 Class 16 - 10/20
Access Control cont • Global access table – represents explicitly every cell in a matrix as a (actor, class, operation).Checking access requires a table lookup. • Access control list – associates a list of (actor, operation) pairs with each class to be accessed. (See example in text P. 270) • Capability – associates a (class, operation) pair with an actor. Provides an actor with control access to an object of the class described in the capability. (See example in text P. 271) CEN 4010 Class 16 - 10/20
Access Control cont • Access matrix represents static access control. • Dynamic access control allocates access rights dynamically. This type of control can be implemented using the proxy pattern. • Protection proxy controls access to the original object . Useful when objects should have different access rights. • The process of verifying the association between the identity of the user or subsystem and the system is called authentication. CEN 4010 Class 16 - 10/20
Access Control cont • Authentication mechanism is user name and corresponding password (only known to the system and stored in an access control list). • The system encrypts user passwords to protect them. • What is encryption? • Note some network protocols, such as TCP/IP, are not secure! CEN 4010 Class 16 - 10/20
System Design – Global Control Flow • Control flow is the sequence of actions in a system. • Control flow is a design problem. Note every object does not have the luxury of running on its own processor. • Three possible control flow mechanisms: • Procedure-driven control • Event-driven control • Threads CEN 4010 Class 16 - 10/20
System Design – Global Control Flow • Procedure-driven control – Traditional mode of operation i.e., wait for input then perform some operation. • Event-driven control – main loop waits for external event. When event occurs it is dispatched to the appropriate object. • Threads (lightweight) – system creates threads, each responding to a different event. Note, too many threads can slow the system down. Also debugging threaded systems is difficult. CEN 4010 Class 16 - 10/20
Global Control Flow cont • Note threaded systems usually require some form of synchronization. • The Command pattern is useful when designing control flow of events. • In interactive systems, it is desirable to execute, undo, or store user request without the content of the request. Use at least two design patterns in your project. Command, Singleton, Façade. CEN 4010 Class 16 - 10/20