Architecture Patterns Flashcards
Why is architectural design important?
Identifies the main structural components in a system and the relationships between design and requirements engineering.
What does a software architect do?
They create the roadmap/ blueprint for the software. They do not actually make the software.
What does architectural design do?
Particulalrly how does it help describe your system?
Architecture helps to describe and visualize your system.
What do you think of then you hear Greek? What about Egyptian?
What is the architecture in the “small” concerned with?
The architecture of individual programs. (This can also help decide the requirements and assess risks early on.)
What is architecture in the “large” concerned with?
The architecture of the entire web of systems. (These are normally owned and managed by different companies)
What is explicit architecture?
The clear and deliberate documentation, design, and articulation of a software system’s structure. It means that the architecture is well-defined, making the components, their relationships, and the interactions between them easily understandable.
This is from Chat GPT
Where are some areas explicit architecture is used?
In stakeholder communication (how to decribe the software to the stakeholders), system analysis (can the system meet its non-functional requirements), and large-scale reuse (can the acrhitecture be used elsewhere).
In the box and line diagram; what is a box and what is a line?
Box - The unit of functionality
Lines - The data flows
What architecture reuse and what is a good example?
Systems that are in the same domain often have similar architectures that reflect domain concepts. Good examples are Windows products like Excel, Word, PowerPoint. (They all have a similar banner at the top). They make things as general as possible so that they may be reused.
Another good example is Bootstrap.
What are the five architecture and system characteristics
- Performance (localize critical operations and use large rather than fine-grain components)
- Security (use a layered architecture with critical assets in the inner layers)
- Safety (localize safety-critical features)
- Availability (Include redundant components and mechanisms for fault tollerance)
5.Maintainability (use fine-grain, replaceable components)
(True or False) Do you need to present multiple views of the software architecture?
Absolutely. Especially if you’re doing design and implementation.
The answer is True
What is an architectural pattern?
A stylized description of good design practice.
What is a Model-View-Controller (MVC)?
The Model-View-Controller (MVC) is a software architectural pattern that separates an application into three interconnected components: Model, View, and Controller. The Model manages the data and business logic, the View handles the display and user interface, and the Controller processes user input, updating the Model and refreshing the View. This separation makes applications more modular and easier to maintain.
This is from Chat GPT
How is Model-View-Controller (MVC) organized?
It is designed to convey very basic facts. This is different from the block/box and line diagrams because it has more information regarding the flow of data.
What is layered architecture?
This is actually exactly what it sounds like. It’s like a cake! The top layer is normally the user interface and it goes down towards teh backend from there. Think about how you layer a program.