Föreläsningar + seminarier Flashcards

1
Q

Vad handlar Software Architecture om?

A

SA handlar om valet av arkitektoniska element, deras interaktioner och begränsingar som krävs för att uppfylla kraven.

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

Hur delas element upp?

A

Processing elements
Data elements
Connection elements

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

Hur beskrivs SA för ett specifikt system?

A

“A collection computational components together with a description of the interactions between the componets, the connectors.”

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

The 1. __________ of a system is the set of 2. __________ needed to
3. __________ about the system, which comprise software 4. __________ , 5. __________ among them, and 6. __________ of both.

A

The 1. [software architecture] of a system is the set of 2. [structures] needed to
3. [reason] about the system, which comprise software 4. [elements] , 5. [relations] among them, and 6. [properties] of both.

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

Beskriv funktionella krav (functional requirements)

A

About functionalities
Describes what the system does, its behavior, how it must behave or react to run-time stimuli.

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

Beskriv icke-funktionella krav (non-functinoal requirements (or extra functional req.))

A

About qualities, quality functional requirements.
Describes how a system achieves its functionalities (in terms of quality attributes)

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

Beskriv begräsningar (constraints)

A

Limitations on how the system can be desgined or on the development process.
Design descisions that have be mede (e.g. must run on Linux)

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

Nämn 5 quality attributes

A
  • accessibility
  • adaptability
  • availability
  • compatibility
  • Configurability
  • correctness
  • credibility
  • customizability
  • dependability
  • distributability
  • effectiveness
  • efficiency
  • evolvability
  • extensibility
  • fault-tolerance
  • flexibility
  • integrity
  • interoperability
  • maintainability
  • mobility
  • modifiability
  • portability
  • reliability
  • reproducibility
  • resilience
  • responsiveness
  • robustness
  • safety
  • scalability
  • stability
  • standards compliance
  • usability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Bekriv “Architecting”

A

The process of conceiving, defining, expressing, documenting, communicating, certifying proper implementation of, maintainng and improving an architecture throughout the a system’s life cycle.

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

Beskriv “Architecture”

A

The fundamental properties of a system in its environment embodied in its elements, relationships, and it the principles of its design and evolution.

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

Varför behöver vi SA?

A
  1. Dokumentera väsentliga aspekter.
  2. Kontrolla egenskaperna av system.
  3. Hantera komplexitet.
  4. Återanvända element (komponetenter och beslut).
  5. Abstraktion av systemet på en högre nivå för att föra en discussion om systemet.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hur skapar vi SA?

A
  1. Views
  2. Design Strategy
  3. Decomposition
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Vilka vyer finns?

A
  1. Module views
  2. C&C views (component and connectors)
  3. Allocation views
  4. Quality views
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Vad är quality attributes (QA)?

A

The qualifications of the functional requirements of the overall product.

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

Hur tillfredställs quality attributes (QA)?

A

By the various structures designed into the architecture, and the behaviours and interactions of the elements that populate those structures.

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

Beskriv några problem som kan vara med QA.

A
  1. Går inte att testa (ex. att systemet ska vara “modifierbart”).
  2. Tid som ödlsas åt att bestämma vad som tillhör vilken QA (“which quality a concern belongs to”).
  3. Varje community har sitt vokabulär.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Hur löser man att att QA är dåligt beskrivna eller överlappar?

A

Man använder en “quality attribute scenario” för att bestämma QAs egenskaper.

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

Vad är architectural patterns?

A

Ways of capturing proven good design structures so that they can be reused.

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

Hur tillkommer architecural patterns?

A

They are found in practice, they emerge, one discovers them.
They are not invented.

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

Architetural patterns etablerar förhållande mellan tre saker, vad?

A

A context, a problem och a solution.

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

Vad bildar context, problem och solution gemensamt?

A

A templte to document patterns in a pattern’s catalog.

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

När används layered pattern?

A
  1. Komplexa system
  2. När delas av systemet behöver utvecklas och underhållas individuellt.
  3. När det behövs är en klar och väl dokumenterad separation on converns.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Vilka problem löser layered pattern?

A
  1. The software needs to be segmented.
  2. Litte interaction among the parts, supporting the portability, modifiability and reuse.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Hur löser layered pattern sina problem?

A
  1. Delar in lager (units)
  2. Varje grupp av lager ger sammanhängade uppsätting tjänster.
  3. Kommunikationen måste vara enkelriktiad (inga anrop uppåt).
  4. Var lager måste exponeras via ett interface.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Vilka begräsningar har layered pattern?

A
  1. Varje del av mjukvaran får bara finnas i exakt ett lager.
  2. Det måste finnas minst två lager.
  3. Ett lägre lager får inte anropa ett högre lager (inga cirkulära anrop).
26
Q

Vilka svagheter har layered pattern?

A
  1. Flera lager ger ökad komplexitet och kostnad.
  2. Lagerna ger sämre prestanda.
27
Q

När används broker pattern?

A
  1. System som består av flera tjänster spritt över flera system.
28
Q

Vilket problem löser broker pattern?

A

How to structure distributed software making it easy to dynamically change the bindings between users and provides.

29
Q

Hur löser broker pattern sitt problem?

A

Separerar användare (klienter) från leverantörer (servers) genom att sätt in en agent mellan dessa, en broker.
När en klient behöver en tjänst frågar klienten broker. Broker skickar frågan vidare till en server som tar hand om frågan.

30
Q

Vilka element består broker pattern av?

A
  1. Klient - frågar efter tjäsnter
  2. Server - leveratör av tjänster
  3. Broker - mellanhand som vidarebefordar fråga från klient till en lämplig server och returnerar svaret till klienten.
  4. (extra) Client-/server-side proxy - handskas med den faktiska kommunikationen med broker (inkl. marshaling, skicka och unmarshaling meddelanden).
31
Q

Vilka begräsningar har broker pattern?

A
  1. Klienten kan bara prata med en broker (eller en client-side proxy).
  2. Servern kan bara prata med en broker (eller en server-side proxy).
32
Q

Vilka svagheter har broker pattern?

A
  1. Broker är ett extra lager som skapar latens (latency) mellan klient och server.
  2. Kan vara en flaskhals i kommunikationen.
  3. Skapar komplexitet.
  4. Broker kan vara måltavla för cyperattacker.
  5. En broker kan vara svår att testa.
33
Q

När används MVC?

A
  1. När man behöver ett gränssnitt.
  2. När användare vill kolla på datan från olika perspektiv (graf vs diagram).
  3. Grafiken ska representera den aktuella datan.
34
Q

Vilka problem löser MVC?

A
  1. Håller funktionerna i gränssnittet separata från mjukvarans funktioner.
  2. Håller gränssnittet responsivt när mjukvaran “jobbar”.
  3. Är responsivt för ändringar i data.
  4. Möjliggör att flera olika gränssnitt skapas och underhålls till samma underliggande data.
35
Q

Hur löser MVC sina problem?

A

Delar in mjukvaran i tre olika komponenter:
Model: innehåller applikationens data.
View: visar delar av data och interagerar med användaren.
Controller: Medlare mellan view och model, “manages notifications of state changes”.

36
Q

Vilka begräsningar har MVC?

A
  1. Måste finnas minst en instans av model, view och controller.
  2. “The model component should not interact directly with
    the controller.”
37
Q

Vilka svagheter har MVC?

A
  1. MVC kan vara för komplext för ett litet system.
  2. Abstraktionerna model, view och controller passar inte alltid alla gränssnitt.
38
Q

När används Pipe and Filter pattern?

A
  1. System som måste omvandla en ström av diskret data, från input till output.
  2. Många omvandlingar sker och det är av värde att ha dessa som separata, återanvändbara delar.
39
Q

Vilka problem löser Pipe and Filter?

A
  1. Håller systemet uppdelat, i återanvändabara, löst kopplade, komponenter.
  2. Enkel mekanism för att koppla ihop delar.
  3. Komponenterna är självstända, kan användas i valfri ordning och parallellt.
40
Q

Hur löser Pipe and Filter sina problem?

A
  1. Successiv omvandling av data.
  2. Data kommer till input, omvandlas och skickas ut via output till nästa filter.
  3. Ett filter kan ta emot data från flera filter.
  4. Ett filter kan skicka vidare data till flera filter.
41
Q

Vad är filter i mönsteret Pipe and Filter?

A

Den komponent som läser från dess input port, förvandlar den och skriver förvandlade data till sin output port.

42
Q

Vad är pipe i mönsteret Pipe and Filter?

A

Kopplingen mellan ett filters output port och nästa filters input port.
En pipe har en källa för input och en källa för output.
En pipe behåller ordningen på den data som skickas och ändrar den inte på något sätt.

43
Q

Vilka begränsingar har Pipe and Filter?

A
  1. Sammankopplade filter måste vara överrens om att skicka samma typ av data över en pipe.
  2. “Pipes connect filter output ports to filter input ports.”
44
Q

I vilket sammanhang används Client-Server pattern?

A

När det finns delade resurser och tjänster som ett stort antal distribuerade klienter vill ha tillgång till, och där vi vill kontrollera tillgången.

45
Q

Vilka problem löser Client-Server pattern?

A
  1. Ökar skalbarhet och tillgänglighet, genom att centralisera kontrollen av resurser och tjänster.
  2. Fördelar resurser över flera fysiska servrar.
46
Q

Hur löser Client-Server sina problem?

A

Genom att en server tillhandahåller tjänster som klienter kan fråga efter.
Det kan finns en server eller flera som jobbar gemensamt.

47
Q

Vilka begräsningar har Client-Server pattern?

A
  1. “Clients are connected to servers through
    request/reply connectors.”
  2. En server kan vara en klient till en annan server.
48
Q

Vilka svagheter har Client-Server pattern?

A
  1. En server kan vara flaskhals för prestandan.
  2. En server kan vara “single point of failure”.
  3. Att flytta en funktionalitet (både i server och klient) är ofta komplext och dyrt efter att systemet är byggt.
49
Q

När används Service Oriented Architeture pattern?

A

När flera tjänster måste erbjudas (och beskrivas) av leverantörer, och konsumenter måste kunna förstå och använda dessa tjänster utan att veta hur de är implementerade.

50
Q

Vilka problem löser Service Oriented Architecture?

A

Att få distribuerade komponenter som kör på olika platformar och är skriva i olika språk att samverka (interoperability) över internet.

51
Q

Vilka element består Service Oriented Architecture av?

A
  1. Service provider.
  2. Service consumer.
  3. ESB.
  4. Registry of services.
  5. Orchestration server
52
Q

Vad är “Architecture reconstruction”?

A

Att ta ett system i befintligt skick ta fram systemets arkitektur.

53
Q

Varför gör man architecture reconstruction?

A
  1. Förstå arkitektoniska beroenden.
  2. “Re-document architectures for simulations”
  3. För att se om ett system passar den arkitektur den är modelerad efter.
  4. “Reconstruct embedded systems and evaluate their potential for
    conversion to a product line”
  5. “Recovering implemented architecture tactics”
  6. “Documenting non-functional requirements (quality attributes)”
  7. “Identifying possible failures caused by complexity”
54
Q

Vilka delar består processen architecture reconstruction av?

A
  1. View Fusion.
  2. Architeural View Composition.
  3. Architecture Analysis.
55
Q

Vad är en view fusion?

A

Flera sammansatta vyer till en, när en enskild vy inte visar den information som krävs.

56
Q

Nämn fyra anledningar till att dokumentera.

A
  1. Bibehålla kunskap.
  2. Dela information till olika stakeholders.
  3. Asynkron delning av information.
  4. “Dokumentation är viktigt i större organisationer.”
  5. Att skriva ner varför något görs gör det enklare att hitta dåliga resonemang.
  6. Externa krav, så som krav i kontrakt, standarder, lagakrav, certifikat.
57
Q

Nämn sju olika typer av dokumentation.

A
  1. Kravspecifikation
  2. Arkitektur/design-dokumentation
  3. Kod-dokumentation
  4. Test-dokumentation
  5. Användarmanual
  6. Marknadsförningsmateriel
  7. Ärenden
58
Q

Vad är en viewpoint?

A

En viewpoint är det som beskriver vad som går att se i en vy.

59
Q

Vilka vyer består Kruchten’s 4+1 av?

A
  1. Logical
  2. Development
  3. Process
  4. Physicla
  5. Scenarios (+1)
60
Q

Vad utgör ett dåligt diagram?

A

Samma pil eller låda betyder olika saker, att saker in diagramet inte förklaras.