Presentation is loading. Please wait.

Presentation is loading. Please wait.

System Design cont Review Class 15 Design Goals System Design Activities –Identification of Subsystems –Persistent Data Stores –Access Control –Control.

Similar presentations


Presentation on theme: "System Design cont Review Class 15 Design Goals System Design Activities –Identification of Subsystems –Persistent Data Stores –Access Control –Control."— Presentation transcript:

1 System Design cont Review Class 15 Design Goals System Design Activities –Identification of Subsystems –Persistent Data Stores –Access Control –Control Flow CEN 4010 Class 16 – 10/20 From this point on you should only be working with the 4 or 5 use cases that your team will implement.

2 CEN 4010 Class 16 - 10/202 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.

3 CEN 4010 Class 16 - 10/203 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

4 CEN 4010 Class 16 - 10/204 Overview of System Design cont Data management  persistence  storage of data (location)  accessibility Access control  authorization  authentication  security

5 CEN 4010 Class 16 - 10/205 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)

6 CEN 4010 Class 16 - 10/206 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. 1.Performance criteria include the speed and space requirements imposed on the system.

7 CEN 4010 Class 16 - 10/207 Design Goals cont 2.Dependability criteria - how much effort should be expended in minimizing system crashes and their consequences. 3.Cost criteria - the cost to develop the system, to deploy it, and to administer it. 4.Maintenance criteria - how difficult it is to change the system after deployment. 5.End user criteria - qualities from a users’ point of view and not yet covered under the performance and dependability criteria.

8 CEN 4010 Class 16 - 10/208 Design Goals cont Performance CriteriaDefinition Response timeHow soon is the user request acknowledged after the request has been made? ThroughputHow many tasks can the system accomplish in a fixed period of time? MemoryHow much space is required for the system to run?

9 CEN 4010 Class 16 - 10/209 Design Goals cont Dependability CriteriaDefinition RobustnessAbility to survive invalid user input. ReliabilityDifference between specified and observed behavior. AvailabilityPercentage of time the system can be used to accomplish normal task. Fault toleranceAbility to operate under erroneous conditions. SecurityAbility to withstand malicious attacks. SafetyAbility to not endanger human lives, even in the presence of errors and failures

10 CEN 4010 Class 16 - 10/2010 Design Goals cont Cost CriteriaDefinition Development costCost of development the initial system. Deployment costCost of installing the developed system and training users. Upgrade costCost of translating data from previous system. Results in backward compatibility. Maintenance costCost required for bug fixes and enhancements to the system. Administration costMoney required to administer the system.

11 CEN 4010 Class 16 - 10/2011 Design Goals cont Maintenance CriteriaDefinition ExtensibilityEase of adding functionality or new classes of the system. ModifiabilityEase of changing current system functionality. AdaptabilityEase of porting the system to different application domains. PortabilityEase of porting the system of different platforms. ReadabilityEase of understanding the system documentation and code. Traceability of requirements Ease of mapping the code to specific requirements.

12 CEN 4010 Class 16 - 10/2012 Design Goals cont End user CriteriaDefinition UtilityHow well does the system support the work of the user? UsabilityHow easy it is for the user to use the system?

13 CEN 4010 Class 16 - 10/2013 Design Goals cont Trade-offRationale Space vs. speedMore memory => reduction in speed i.e., caching, more redundancy, data compression. Delivery time vs. functionality Depends on if software is for COTS or not. E.g., fierce competition in cell phone market. Delivery time vs. qualityTesting is time consuming. Deliver with bugs then release fixes. E.g., ??? Delivery time vs. staffingCan add more resources early in the project. Note, more staff ≠> increase productivity.

14 CEN 4010 Class 16 - 10/2014 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

15 CEN 4010 Class 16 - 10/2015 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.

16 CEN 4010 Class 16 - 10/2016 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.) 1.Creational – helps make a system independent of how its objects are created, composed, and represented. E.g., Abstract Factory, Builder, Factory Method, Prototype, Singleton.

17 CEN 4010 Class 16 - 10/2017 Identifying Subsystems 2.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. 3.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.

18 CEN 4010 Class 16 - 10/2018 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.

19 CEN 4010 Class 16 - 10/2019 UML Deployment Diagrams cont :Safari myMac:Mac :IExplorer aPC:PC :WebServer :UnixHost :Database :UnixHost UML deployment diagram: Web browsers on PCs and Macs can access a WebServer that provides information from a Database.

20 CEN 4010 Class 16 - 10/2020 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.

21 CEN 4010 Class 16 - 10/2021 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: 1.Flat files 2.Relational database 3.Object-oriented database

22 CEN 4010 Class 16 - 10/2022 Persistent Data cont 1.Flat files – storage abstractions provided by the operating system. Application takes care of many issues e.g., concurrency, synchronization, security, recovery, etc.. 2.Relational database – data stored in tables that comply with a predefined type called schema. Mapping complex data to relational database causes problems. 3.Object-oriented database – Similar to relational database but stores data as objects and associations. Provides all the structural features of OO modeling.

23 CEN 4010 Class 16 - 10/2023 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.

24 CEN 4010 Class 16 - 10/2024 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)

25 CEN 4010 Class 16 - 10/2025 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.

26 CEN 4010 Class 16 - 10/2026 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!

27 CEN 4010 Class 16 - 10/2027 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: 1.Procedure-driven control 2.Event-driven control 3.Threads

28 CEN 4010 Class 16 - 10/2028 System Design – Global Control Flow 1.Procedure-driven control – Traditional mode of operation i.e., wait for input then perform some operation. 2.Event-driven control – main loop waits for external event. When event occurs it is dispatched to the appropriate object. 3.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.

29 CEN 4010 Class 16 - 10/2029 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.


Download ppt "System Design cont Review Class 15 Design Goals System Design Activities –Identification of Subsystems –Persistent Data Stores –Access Control –Control."

Similar presentations


Ads by Google