GoConqr has a new look! Let us know what you think.

Flashcards

4 System Design I: System Decomposition

Maximilian Zeyda Software Engineering English 34 cards

Cards in this deck (34)

  1. 1What is the difference between dotted and solid arrows?Dotted Arrows: Dependencies
    Solid arrows: Associations
  2. 2How are associations between classes with no arrows defined?It means that this is a bidirectional association
  3. 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
  4. 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
  5. 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
  6. 6What is a subsystem?Collection of classes, associations, operations, events that are closely interrelated with each other
  7. 7What is a service?A group of externally visible operations provided by a subsystem
  8. 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
  9. 9What is an API?Specification of the subsystem interface in a specific programming language
    APIs are defined during implementation
  10. 10What is the purpose of a subsystem interface object?Describes all the services of the subsystem interface
    Can be realized with the Facade Pattern
  11. 11What is the difference between cohesion and coupling?Cohesion: Measures dependency among classes
    Coupling: Measures dependency among subsystems
  12. 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
  13. 13How can we achieve low coupling?Calling class does not need to know anything about the internals of the called class
  14. 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
  15. 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.
  16. 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)
  17. 17What does it mean if a layered architecture is closed?Each layer can only call operations from the layer below
  18. 18What are design goals of a closed layered architecture?Maintainability, Flexibility, Portability
    -> Low coupling
  19. 19What are design goals of an open layered architecture?High Performance, Efficiency
    -> High coupling
  20. 20What does it mean if a layered architecture is open?Layer can call operations from any layer below
  21. 21What is the difference between layer and tier?Layer = type (e.g. class, subsystem)
    Tier = Instance (e.g. object, hardware node)
  22. 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)
  23. 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
  24. 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
  25. 25Where are Client/Server Architectures mostly used?Design of database systems
    Front-end: User application (Client)
    Back-end: Database access and manipulation (Server)
  26. 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
  27. 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
  28. 28What is the big advantage of the MVC Architectural Style?It decouples data access (entity objects) and data presentation (boundary objects)
  29. 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
  30. 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
  31. 31Name the 3 different types of messages in UML communication diagrams- Sequential Messages
    - Conditional Messages
    - Concurrent Messages
  32. 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
  33. 33What does the Repository Architectural Style enable?Collection of independent programs (subsystems) can work cooperatively on a common data structure (repository)
  34. 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.
Views
8
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?