What are the three main architectural design techniques?
Closely related classes, architectural layers, and deployment choices.
What do architectural patterns and frameworks provide?
They offer reusable solutions and structures for common design problems.
What is the basis of object-oriented systems?
Collections of objects collaborating according to rules.
What diagrams model object interactions?
Sequence and collaboration diagrams.
What is the first step in designing components with classes?
Selecting related classes that collaborate or share responsibilities.
Why is interface specification important?
It allows objects and components to be designed in parallel without needing internal details.
What should designers avoid when specifying interfaces?
Designing the internal interface representation; it should be hidden within the object.
How many interfaces can an object have?
An object may have several interfaces as viewpoints on its methods.
What is an architectural layer?
A separation of concerns where different layers handle boundary, control, and entity responsibilities.
What is the 3-tier PAD architecture?
Presentation, Application, and Data storage layers, each managing specific use case elements.
Why is control logic placement a design challenge?
It affects speed, complexity, and access to up-to-date data depending on its location.
What are deployment choices influenced by?
Non-functional requirements such as usability, performance, and security.
Why should security be built in from the start?
To ensure robust protection against risks identified early in development.
How can performance be improved?
By reducing network traffic and optimizing across all levels of the tech stack.
What questions should designers ask about deployment?
Information needed by actors, client/server software components, data storage, and transmission methods.
Why is distribution important in deployment?
It determines where presentation, application, and data components are located for optimal performance.
What does N-tier architecture introduce?
Additional layers between the three-tier system to address latency and scalability.
What is a thin client?
A system where most application logic resides on the server, minimizing client-side processing.
What affects architecture decisions related to clients?
Client hardware, bandwidth, and user roles (public, staff, managers).