Designing Software Architectures - Process and Heuristics Flashcards

(18 cards)

1
Q

What are the four levels of abstraction?

A
  1. Constraints and Requierements
  2. Architectural Style and technical infrastructure/ logical, rough and distribution architecture level
  3. Functional and Technical Architecture Level
  4. Program design and implementation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

In what dimensions does a software architect move during the design process?

A
  • between abstraction levels (y) and software architect activities (x)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the aim of the task: Analysis of requierements and constraints

A
  • creating central decision criteria, e.g. for decomposition of application into building blocks
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the aim of the task: Designing architecture views and developing technical concepts

A
  • creation of cross-cutting technical themes and tasks
  • identification of building blocks based on earlier decision criteria
  • development of overall solutions based on different abstraction levels
  • selection of best possible solution based on earlier decision criteria
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the aim of the task: Evaluation of architecture and design decisions

A
  • development of different scenarios to make sure, architecture fits goal
  • play-out of said scenarios
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the aim of the task: Implementation support and review

A
  • active support for development
  • possibly programming
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the benefit of the incremental approach?

A
  • manages uncertainties by revisiting and clearing them
  • constant stimulation through communication and common knowledge base
  • makes it easier to detect design flaws in an early stage
  • contact with different stakeholders
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the first step in the design process?

A

Gathering of as much information as possible:
- development of domain and technical background knowledge
- determination of existing systems in organisation landscape and investigation to what extent they can be reused
- determination third party applications that solve similar tasks
- reading of technical literature in search of best solution

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What does the first step of the design process include?

A
  1. development of domain and technical background knowledge necessary for project
  2. existing systems determination and analysis to what extent they can be reused
  3. third party solutions that solve similiar tasks
  4. reading of literature in search of best possible solution for target task
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What comes after the first step in the design process?

A
  • clarification of the main task of the system to be developed
  • based on this, typification of the system into information system, embedded system, mobile system
  • based on type of system follow up questions arise
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the influencing factors of the design process?

A
  • product related factors
  • political and organizational factors
  • operational and technical factors
  • trends
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What do the following influencing factors include?
product-related factors

A
  • functionality factors (what system needs to do)
  • quality factors (what criteria needs to be fulfilled for the system to be suitable for use)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What do the following influencing factors include?
Operational and technical factors

A
  • what is the existing system landscape
  • origin often in infrastructure and existing applications

Information like:
- programming specification
- programming languages
- programming interfaces
- software infrastructures
- Rerefence Architectures
- libraries, frameworks, components
- analysis and design methods

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What do the following influencing factors include? Organizational and political factors

A
  • organization structure
  • resources (team members, budget, …)
  • organizational standards (process, acceptence, …)
  • legal and regulatory concerns
  • change often very costly therefore rare
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are Design Heuristics?

A
  • proven fundamental principles how to solve problems efficiently
  • difference to reference architectures, not concrete details on implementation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Name relevant Design Heuristics

A
  • Top-Down / Bottom-Up approach
  • Hierarchical (de-)composition
  • conceptual integrity
  • Expect errors
  • Postels law
17
Q

What are important principles of Decomposition?

A
  1. encapsulation / black box
  2. iterative approach
  3. check reusable other parts
  4. independent and seperation of concerns
18
Q

What is part of Hierarchical (de)composition?

A
  • Decomposition principles
  • KISS
  • Seperation of concerns