Example: air traffic controller

TECH - BenChoi.info

CH05: Designing the System Designing the System (continue). To design a system is to determine a set of Issues in Design Creation components and inter-component interfaces that Characteristics of Good Design satisfy a specified set of requirements. Techniques for Improving Design * What is Design? Design Evaluation and Validation * Decomposition and Modularity Documenting the Design * Architectural Styles and Strategies tech . Computer Science What is Design? Conceptual and Technical Designs Design (process) is the creative process of We produce conceptual design that tells the transforming the problem into a solution. (software customer exactly what the system will do. (The What engineer's definition) of the solution). Design (product) is the description of a solution. We produce technical design that allows system What is a solution? builders (developers) to understand the actual 4We declare something to be a solution to a problem if it hardware and software needed to solve the customer's satisfies all the requirements in the specification problem.

1 CH05: Designing the System • To design a system is to determine a set of components and inter-component interfaces that satisfy a specified set of requirements.

Tags:

  Tech

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Advertisement

Transcription of TECH - BenChoi.info

1 CH05: Designing the System Designing the System (continue). To design a system is to determine a set of Issues in Design Creation components and inter-component interfaces that Characteristics of Good Design satisfy a specified set of requirements. Techniques for Improving Design * What is Design? Design Evaluation and Validation * Decomposition and Modularity Documenting the Design * Architectural Styles and Strategies tech . Computer Science What is Design? Conceptual and Technical Designs Design (process) is the creative process of We produce conceptual design that tells the transforming the problem into a solution. (software customer exactly what the system will do. (The What engineer's definition) of the solution). Design (product) is the description of a solution. We produce technical design that allows system What is a solution? builders (developers) to understand the actual 4We declare something to be a solution to a problem if it hardware and software needed to solve the customer's satisfies all the requirements in the specification problem.

2 (The How of the solution). Merged the two into one document. Conceptual WHAT. vs. Technical Designs HOW. Good Conceptual Design written in customer's language CONCEPTUAL TECHNICAL. explaining the observable external characteristics of DESIGN DESIGN. the system contains no technical jargon (If it does, define it.). function System form describes the functions of the system designers is independent of implementation is linked to the requirements documents Customers System builders 1. Good technical design Conception vs technical design document describes of major hardware components and their functions The user will shows hierarchy (organization) and functions of the be able to software components route shows data structures and data flow messages to Network topology shows interfaces any other user Protocol used on any other Prescribed bps rat network .. computer.. CONCEPTUAL TECHNICAL.

3 DESIGN DESIGN. Decomposition and Modularity Levels of decomposition and modules Decomposition Top level 4starting with a high-level depiction of the system's key elements 4creating lower-level looks at how the system's features and functions will fit together Modularity 4the results of decomposition form composite parts called modules or components. First level of 4 Modular: when each activity of the system is performed decompositio by exactly one component. Second level of decomposition Architectural Styles and Strategies (Three Methods for Decomposition design levels). Modular decompositions (assigning functions to Architecture: requirements -> system modules components) Code Design: modules -> algorithms and data Data-oriented decomposition (external data structures structures) Executable Design: algorithms (codes) -> memory Event-oriented decomposition (events that the system allocation, execution time, code optimizations.)

4 Must handle). Outside-in design (user's inputs, to processing, to output). Object-oriented design (classes of objects and their inter-relationships). 2. Architectural Styles Piles and Filters Piles and Filters, Pipe Filter Object-oriented Design Implicit Invocation, Layering, Repositories Interpreters, Process Control Distributed Systems, Client-Server, domain-specific architectures Piles and Filters: properties Object-oriented Design easy to understand in terms of input->transformation decompose the underlying problem into a collection ->output of interacting agents filters are independence for agents to interact, one agent must know the filters can be reused easily identity (interface) of the interacted agents easy to add or remove filters interdependent on one another easy to analyze throughput changing the identity (interface) of an agent requires allow concurrent execution of filters all other interacted agents to change Implicit Invocation (event-driven) Layering An agent broadcasts an event some other agents decide to work on the event Problem: when the agent broadcasts an event, it does Cryptography not know which other agent (if any) will work on the event File interface Solution.

5 Agents can be arranged in levels, the closest Key management levels will first pick up the event, then the next levels, and so on, to a default level pick up what is left. Authentication Users 3. Layering Architecture Repositories Knowledge case 1: one layer has access only to adjacent layers source 4. case 2: one layer has access to some or all other layers case 1 is used in most layering architectures Knowledge source 3 Knowledge layer represents levels of abstraction source 5. Repository (shared data). Knowledge Knowledge source 2 source 6. Knowledge source 1. Repositories Architectures Interpreters a central data store (blackboard) An interpreter takes a string of characters, and knowledge sources (agents) converts it into actual code that is then executed. changing data (state) in central data store will trigger Translation or the conversion takes be place in agents to react (respond) sequence of steps Process Control Distributed Systems FEEDBACK LOOP: Input variables Process Controlled Controller Set Changes to variable point manipulated variables FEEDFORWARD LOOP: Input variables Process Controlled Controller Changes to Ring topology Star topology Set variable point manipulated variables 4.

6 Client-Server domain-specific architectures //. A client request an service takes advantage of particular application domain, A server responds to the request such as avionics or automobile manufacturing. match software architectures with physical architectures or application domain processes. Issues in Design Creation Modularity and Levels of Abstraction issues that must be addressed by designers, In a modular design, the components have clearly when selecting an appropriate style, or defined inputs and outputs, and each component has a when creating the design details: clearly stated purpose. 4 Modularity and Levels of Abstraction Levels of abstraction: the components at one level 4 Collaborative Design refine those in the level above. 4 Designing the User Interface 4 Concurrency 4 Design Patterns and Reuse Collaborative Design Designing the User Interface On most projects, the design is not created by one an user interface should address several key elements: person.

7 4metaphors: fundamental images and concepts. A team works collaboratively to produce a design, 4a method model: the organization and representation of often by assigning different parts of the design to information different people. 4the navigation of rules for the model: how to move among, and spacial model Collaborative groups may locate all over the world. 4look: appearance conveys information to the users Communication problems in language as well as 4feel: the interaction techniques that provide an missing personal touch. appealing experience for the user 5. Issues of designing the user interface Cultural Issues Cultural Issues Which color to use? Purple? User Preferences 4In England, purple represents royalty Guidelines for Determining User-interface 4In Japan, purple signifies dignity and nobility Characteristics 4In Greece, however, purple symbolized death and evil. Two steps to make our systems multi-cultural 4(1) eliminate specific cultural reference or biases 4(2) tailors (1) for the cultures that will be using the software Guidelines for Determining User-interface User Preferences Characteristics //.

8 She like it. He may not. No universal interface can be applied to anyone. High Ease of use prototyping with the particular target audience allowing customizing the user interface, Microsoft Words vs. WordPerfect. Medium Low Voice recognition Command line Forms Touch screen Data entry Concurrency Mutual exclusion actions must take place concurrently it makes sure that when one process is accessing a problem: One of the biggest problems with concurrent data element, no other process can affect that element. system is the need to assure the consistency of the tests and locks: if an operation tests the value of the data shared among components that execute at the state of an object, same time. then that object should be locked Solution: Synchronization so that the state does not change between the time the 4 Mutual exclusion test is done and the time an action is taken based on 4 Monitors the value produced by the test.

9 4 Guardians 6. Monitors Guardians A monitor is component that controls the mutual A guardian is a task that is always running: its only exclusion of a particular resource. purpose is to control access to an encapsulated Anyone want to access the resource, it has to go resource. through the monitor Others interact with the guardian, and does not the monitor allows one access to the resource at a interact directly with the encapsulated resource. time and suspend others that are also trying to access the resource. Design Patterns and Reuse Characteristics of Good Design We want to take advantage of the commonality Looking in more detail at attributes that reflect design among systems, so that we need not develop each quality from scratch . 4 Component Independence to identify the commonalities is to look for design 4 Exception Identification and Handling patterns. 4 Fault Prevention and Fault Tolerance Component Independence Coupling Uncoupled - We strive in most designs to make the components no dependencies independent of one another.

10 Coupling: between component Cohesion: within component Loosely coupled - Highly coupled - some dependencies many dependencies 7. Measuring Coupling HIGH COUPLING Defining Coupling Content coupling Content coupling: one component modifies the content of another Common coupling: sharing common data store Common coupling Control coupling: one component passes parameters to control the activity of another component Control coupling Stamp coupling: one pass data structure to another LOOSE. Data coupling: one pass data to another. Stamp coupling Data coupling Uncoupled LOW. Control Issues: creating components with high fan-in and low fan-out Cohesion A refers to the internal glue with which a component System 1. is contracted. The more cohesive a component, the more related are B C D. the internal parts of the component to each other and to its overall purpose. E F G. A System 2. B C D E F.


Related search queries