3 - Design of Good Information Systems Architectures Flashcards
Process Perspective
Architecture design refers to the process of defining a collection of hardware and
software components and their interfaces to establish the framework for the development of an information
system
Outcome Perspective
Architecture design refers to the architecture design process’s outcome, that is the
collection of hardware and software components and their interfaces, which makes up the framework for the
development of an information system
Functional Requirement
Functional requirements define the desired features and functions of a system or one of its components. A
functional requirement includes the definition of a functionality and its transformation from an input into a
desired output
Nonfunctional Requirements
Nonfunctional requirements are requirements that are not specifically concerned with the system’s
functionality, but rather define general quality attributes and constraints
Quality Attributes (8)
- functional suitability
- compatibility
- maintainability
- performance efficiency
- reliability
- security
- portability
- usability
functional suitability
functional completeness, functional correctness, and functional appropriateness
compatibility
interoperability
maintainability
Modularity, modifiability
performance efficiency
time behavior (or latency), resource utilization, and capacity
reliability
Availability: mean time between failure (MTBF) and the mean time to repair (MTTR)
security
Authenticity, accountability, confidentiality, Integrity
portability
portability, adaptability, and installability
usability
Learnability, Efficiency, Memorability, Errors, Confidence and satisfaction
Basic design process activities (6)
- Making a business case for the system
- Understanding the architecturally significant requirements
- Designing or selecting the architecture
- Documenting & communicating the architecture
- Evaluating the architecture
- Ensuring that the implementation conforms to the architecture
Activity management Strategies (3)
Waterfall Strategy
Iterative Strategy
Agile Strategy
Activity 1: Making a business case (3)
- It documents the expected costs, benefits and risks
- Architects need to be involved in the creation of the business plan
- To help define business cases, various tools have been developed (e.g., SWOT analysis)
Activity 2: Understanding the Architecturally Significant Requirements (2)
- An architect needs to filter out the architecturally significant requirements (ASR)
- The quality attribute workshop is a popular approach for both analyzing and eliciting ASRs
The requirements analysis
The requirements analysis is the activity of gathering, identifying, and formalizing requirements in order to understand the actual problems for which an architecture, as a solution, is sought, and to learn the purpose and scope of the future system
Activity 3: Designing or Selecting the Architecture (4)
- Choose from the most appropriate architecture design options
- Architects need a reliable and rigorous process for selecting candidate architectural solutions to ensure that the decisions mitigate risks and maximize profit
- They can rely on diverse decision making techniques, such as the quality attributes importance description . It describes to what extent a quality attribute is needed
- The result is a specification of architecture components and information about the design rationale
Activity 4: Documenting and Communicating the Architecture
- Architecture‘s documentation should be: Informative, Unambiguous, Understandable to many people with varied backgrounds
- Various techniques and tools support the documentation and communication of architectural knowledge, such as Knowledge Architect
Architectural Knowledge
Architectural Knowledge is defined as the knowledge about a software architecture and its environment, such as architectural design and architectural decisions, which shape a software architecture and concepts from architectural design (e g components, connectors)
Activity 5: Evaluating the Architecture (3 + 4 Methods)
- Determine if the architecture design satisfies the ASRs
- Methods to evaluate the architecture design: Scenario based techniques, Architecture trade off analysis method, Unit testing, Integration evaluation
- If the design turns out to not satisfy the ASRs, a new design must be created
Activity 6: Ensuring that the Implementation Conforms to the Architecture
- Architects have to ensure that the actual architecture and its implementation fit together throughout the architecture’s life cycle
- In the maintenance phase, the architecture still can be changed
- When an architectural change causes the interactions to become more complex, which, in turn, obstructs changes to the system, the architecture is degenerating
Architectural degeneration
Architectural degeneration is a mismatch between the actual functions of the system and its original design