2 Software Architecture Basics Flashcards

1
Q

Design mode

A
  • contains several diagram types, incl. interaction, package and class diagrams
  • conecptual classes are needed
  • -design classes show definitions of software artifacts
  • -design model describes static and dynamic facets
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

architectural design

A

early stage of system design process

link beetween analysis and design

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

Divide & conquer

A
complex systems need to be partitioned
variety of terms:
-packages
-components
-subsystems
-layers
-tiers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Cohesion & couplin

A

cohesion: zugriffe innerhalb einer partition
coupling: zugriffe zwischen partitionen

good architecture -> high cohesion, low coupling

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

Architectural views

A
Functional/logical view
Code/module view
Development/structural view
Concurrency/process/thread view
Physical/deployment view
User action/feedback view
Data view
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What constitues a software architecture

A

Logical view: organization of the software classes into software elements (packages etc); describes logical partitioning of the system into partitions and relationsships among htem

Deployment architecture view: distribution of software elements on computational resources and coomu. among them

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

Typical system layers

A

UserInterface /Presentation Layer
Application logic and domain layer
technical services layer

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

Distributed Systems

A

Architectural models:

  • client-server architectures
  • multi-tier architectures
  • distributed object architectures
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Pros of distrib.sys

A

Pro:

  • resource sharing
  • openness
  • concurrency
  • scalability
  • fault tolerance
  • transparency
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Cons of distrib.sys

A
  • complexity
  • security
  • manageability
  • unpredicatbiliy
  • testability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Client-Server architecture

A

set of standalone servers that provide specific services
set of clients who call those servers
network that allows access

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

Thin client deployment model

A
  • application processing and data management is carried out by the server, client just resp. for data presentation/UI
  • often used when legacy systems are migrated to client-server architectures
  • places heavy processing load on the server and network
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Fat client deployment model

A

the server just manages the data

client software implements application logic and presentation/UI

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

3-Tier deployment architecture

A

each architectural tier executes on seperate machine
tiers = physical nodes
client server (appl. process.) server (data)
better scalability

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

Architectural styles

A

set of architectural constraints
that restrict the roles/features of architectural elements
and the allowed relationships among those elements

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

Architectural styles categories

A
  • Structure: Object oriented, layered arch., component-based arch.
  • Deployment: N-Tier, 3-Tier
  • Communication: Service-Oriented Arch. (SOA), Message Bus
17
Q

Reference Architecture

A

generic model
acts as a standard on which systems can be built
ref. arch. models can be used as templates
^ are more concrete

18
Q

UI Layer

A

presentation of the data
managing the interaction with the user
should not process anything, forward it to appli. layer

19
Q

Application Layer

A

handles incoming requests
remember session state and flow of work
rule of thumb: one controller/facade per use case

20
Q

Domain Layer

A

contains the domain objects and application logic

very application specific

21
Q

Facades

A
  • reduce coupling -> facade classes are used
  • serves as entry point to a set of related software classes
  • servers as the interface to the respective software element
  • black-box/information hiding principle
22
Q

Component-Based architecture

A

compose software sys. from reusable components
a component is a unit of composition
can be deployed independently
typically feature-oriented

23
Q

Architectural patterns

A

codification of prev. discussed archtiectural aspects

pattern -> crosses the boundaries of architectural elements

24
Q

Software Patterns

A

patterns are recurring solutions for recurring problems

architec. pat. are software patterns

25
Q

Terminology - Architectural Style

A

cross cutting principles (object oriented style, modular style, etc.) independent of application domain

26
Q

Terminology - Reference Architecture

A

defines domain concepts, components and subsystems that can be used as a template

27
Q

Terminology - Architectural Pattern

A

solution to recurring situation where several forces have to be balanced

28
Q

Model-View Seperation Principle

A

different concerns
allows to create several UIs
testing UI is hard, allows to test appli seperatly

appl logic + UI = Smart UI Anti Pattern

29
Q

Model View Controller MVC Pattern

A

Model: containts core funcitonality and data
Views: display information to user
Controllers: handle user input

Views + Controllers = UI

30
Q

Advantages of an Explicit Architecture

A

Stakeholder communication
system analysis
large-scale reuse
project planning