Flashcards
4 System Design I: System Decomposition
Cards in this deck (34)
- 1What is the difference between dotted and solid arrows?Dotted Arrows: Dependencies
Solid arrows: Associations - 2How are associations between classes with no arrows defined?It means that this is a bidirectional association
- 3What are the eight issues of system design?1. Identify Design Goals
2. Subsystem Decomposition
3. Identify Concurrency
4. Hardware/Software Mapping
5. Persistent Data Management
6. Global Resource Handling
7. Software Control
8. Boundary Conditions - 4Map the eight system design issues to the Analysis Models (Non-Functional requirements, Functional, Object, Dynamic)Non-functional requirements:
Identify Design Goals
Functional Model:
Subsystem Decomposition
- Boundary Conditions
Dynamic Model:
- Identify Concurrency
- Global Resource Handling
- Software Control
Object Model:
- Hardware/Software Mapping
- Persistent Data Management - 5Name 4 typical design goal trade-offs- Functionality vs. Usability
- Cost vs. Robustness
- Efficiency vs. Portability
- Rapid development vs. Functionality
- Cost vs. Reusability
- Backward Compatibility vs. Readability - 6What is a subsystem?Collection of classes, associations, operations, events that are closely interrelated with each other
- 7What is a service?A group of externally visible operations provided by a subsystem
- 8What is the purpose of a subsystem interface?Specifies the interaction and information flow from and to subsystem boundaries (but not inside the subsystem)
Subsystem interfaces are defined during object design - 9What is an API?Specification of the subsystem interface in a specific programming language
APIs are defined during implementation - 10What is the purpose of a subsystem interface object?Describes all the services of the subsystem interface
Can be realized with the Facade Pattern - 11What is the difference between cohesion and coupling?Cohesion: Measures dependency among classes
Coupling: Measures dependency among subsystems - 12What is good system design regarding cohesion and coupling?- High cohesion: Classes in the subsystem perform similar tasks and have many associations within the subsystem
- Low coupling: A change in one subsystem does not affect any other subsystem - 13How can we achieve low coupling?Calling class does not need to know anything about the internals of the called class
- 14What is the difference between an architectural style and a software architecture?Architectural style: A pattern for a subsystem decomposition
Software Architecture: Instance of an architectural style - 15What is a layer in the layered architectural style?Subsystem that provides a service to another subsystem.
A layer only depends on services from other layers and has no knowledge of higher layers. - 16What are the two major types of hierarchical relationships between layers?- "Depends on" layer B for its full implementation (compile time dependency)
-"Calls" layer B (runtime dependency) - 17What does it mean if a layered architecture is closed?Each layer can only call operations from the layer below
- 18What are design goals of a closed layered architecture?Maintainability, Flexibility, Portability
-> Low coupling - 19What are design goals of an open layered architecture?High Performance, Efficiency
-> High coupling - 20What does it mean if a layered architecture is open?Layer can call operations from any layer below
- 21What is the difference between layer and tier?Layer = type (e.g. class, subsystem)
Tier = Instance (e.g. object, hardware node) - 22What is a 3-tier architecture?A software architecture where 3 layers are allocated on 3 separate hardware nodes
(Often used for development of Web applications) - 23Which type of software architecture is used for the OSI Model and how can the different layers be modelled?Closed software architecture
Each layer can be modelled as a UML package combining a set of classes offering public operations for the layer above - 24What is the Client/Server Architectural style?- Special case of the layered architectural style
- Each Client call a service offered by the Server; The Server performs the service and returns the result to the client (immediately)
- The Client only knows the interface of the Server
- The Server does not know the interface of the Client - 25Where are Client/Server Architectures mostly used?Design of database systems
Front-end: User application (Client)
Back-end: Database access and manipulation (Server) - 26Name 3 Design Goals for a Client/Server Architecture1. Portability (supports many OSs)
2. High Performance (optimized for CPU-intensive operations)
3. Scalability (can handle large # of clients)
4. Flexibility
5. Reliability
6. Location-Transparency - 27What is the relation between a Peer-toPeer architecture and a Client/Server architecture?Peer-to-Peer is a generalization of the Client/Server architecture
- 28What is the big advantage of the MVC Architectural Style?It decouples data access (entity objects) and data presentation (boundary objects)
- 29Define the terms Model, View and Controller in the MVC ArchitectureModel:
- Subsystem containing boundary objects
- Responsible for application domain knowledge
View:
- Subsystem containing entity objects
- Responsible for displaying information to the user
Controller:
- Subsystem mediating between the views and the model
- Responsible for interacting with the user and notifying views of changes in the model - 30What is an UML Communication Diagram?- Visualizes the interactions between objects as a flow of messages (events, calls to operations)
- Describes the static structure AND the dynamic behavior of a system - 31Name the 3 different types of messages in UML communication diagrams- Sequential Messages
- Conditional Messages
- Concurrent Messages - 32Difference UML Communication Diagram <-> Class Diagramm <-> Sequence DiagramClass Diagram: No association labels, roles and multiplicities shown in Communication Diagram
Sequence Diagram: Communication Diagrams focus on the structural view of the communication between objects, not the timing - 33What does the Repository Architectural Style enable?Collection of independent programs (subsystems) can work cooperatively on a common data structure (repository)
- 34What is a pipe? What is a filter? In the Pipes and Filters Architectural StyleFilter: Subsystem that does a processing step
Pipe: Connection between two processing steps
Information
- Description
- Software Engineering Flashcards on 4 System Design I: System Decomposition, created by Maximilian Zeyda on 23/06/2017.
- Created by
- Maximilian Zeyda
- Views
- 8
- Rating