Architectural Design Flashcards
What is architecture
description of the subsystems and components of a software
system and the relationships between them
what is a design pattern
outline of a reusable solution to a general problem encountered in a particular context
Pattern Description
○ Context: the general situation in which the pattern applies
○ Problem: a short description of the main difficulty being tackled
○ Forces: criteria for evaluation a good solution
○ Solution: recommended way to solve the problem in a given context
Architecture vs software quality (HE SAY ON MIDTERM)
The notion of quality is central in software architecting; a software architecture is devised to gain insight in the qualities of a system at the earliest possible stage
Forces in software (important??)
○ Functionality
○ Compatibility
○ Reliability/Availibility
○ Security
○ Fail safe/Fault tolerance
○ Resilience
○ Cost/Schedule
○ Performance
○ Capacity
○ Scalability
○ Technology churn
■ FCRaSFsFtRCsPCST
■ “Fast Cookies RAn so FaSt! FasT Ran CookieS, Past Cookie Station Terminal!
What makes Coupling and Cohesion (architecture building blocks) good?
Minimizes coupling between subsystems (don’t need to know much about each other)
Maximize cohesion within subsystems (strongly inter-related)
What are the different architectures?
Data-Centered Architecture
Data-Flow Architecture
Call-and-Return Architectures
Object-Oriented Architectures
Layered Architectures
What is Data-Centered Architecture
A database at the center of different components that add, delete or modify data within. Each client is connected to the center data store and there is a blackboard that allows transfer of into bw clients
What is Data-Flow Architecture
Has pipes that act as inputs and outputs to the filter. A filter is given an input and produces an output. (many connected together)
What is Call-and-Return Architectures
A hierarchy where the main program invokes program components. (main calls a function and gets a return)
What is Object-Oriented Architectures
Shows communication through message passing of different classes (UML Diagram shows actors and classes)
What is Layered Architectures
Layers of different operations that become closer to the machine instructions (UI Layer, Application Layer, Utility Layer, Core Layer)
What is architectural context diagram (ACD)
A way to show how software interacts with entities external to its boundaries (Ex. Security system: sensor, homeowner, internet)
Define Archetypes
Different parts that are essential for designing a system (Ex. Security system: Node(I/O), Detector(sensors), Indicator(notify user), controller(arming, disarming nodes))
Instance Diagram
A diagram containing the components of a system (Security system -> System flags -> threat detection flags)