Föreläsningar + seminarier Flashcards
Vad handlar Software Architecture om?
SA handlar om valet av arkitektoniska element, deras interaktioner och begränsingar som krävs för att uppfylla kraven.
Hur delas element upp?
Processing elements
Data elements
Connection elements
Hur beskrivs SA för ett specifikt system?
“A collection computational components together with a description of the interactions between the componets, the connectors.”
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.
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.
Beskriv funktionella krav (functional requirements)
About functionalities
Describes what the system does, its behavior, how it must behave or react to run-time stimuli.
Beskriv icke-funktionella krav (non-functinoal requirements (or extra functional req.))
About qualities, quality functional requirements.
Describes how a system achieves its functionalities (in terms of quality attributes)
Beskriv begräsningar (constraints)
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)
Nämn 5 quality attributes
- 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
Bekriv “Architecting”
The process of conceiving, defining, expressing, documenting, communicating, certifying proper implementation of, maintainng and improving an architecture throughout the a system’s life cycle.
Beskriv “Architecture”
The fundamental properties of a system in its environment embodied in its elements, relationships, and it the principles of its design and evolution.
Varför behöver vi SA?
- Dokumentera väsentliga aspekter.
- Kontrolla egenskaperna av system.
- Hantera komplexitet.
- Återanvända element (komponetenter och beslut).
- Abstraktion av systemet på en högre nivå för att föra en discussion om systemet.
Hur skapar vi SA?
- Views
- Design Strategy
- Decomposition
Vilka vyer finns?
- Module views
- C&C views (component and connectors)
- Allocation views
- Quality views
Vad är quality attributes (QA)?
The qualifications of the functional requirements of the overall product.
Hur tillfredställs quality attributes (QA)?
By the various structures designed into the architecture, and the behaviours and interactions of the elements that populate those structures.
Beskriv några problem som kan vara med QA.
- Går inte att testa (ex. att systemet ska vara “modifierbart”).
- Tid som ödlsas åt att bestämma vad som tillhör vilken QA (“which quality a concern belongs to”).
- Varje community har sitt vokabulär.
Hur löser man att att QA är dåligt beskrivna eller överlappar?
Man använder en “quality attribute scenario” för att bestämma QAs egenskaper.
Vad är architectural patterns?
Ways of capturing proven good design structures so that they can be reused.
Hur tillkommer architecural patterns?
They are found in practice, they emerge, one discovers them.
They are not invented.
Architetural patterns etablerar förhållande mellan tre saker, vad?
A context, a problem och a solution.
Vad bildar context, problem och solution gemensamt?
A templte to document patterns in a pattern’s catalog.
När används layered pattern?
- Komplexa system
- När delas av systemet behöver utvecklas och underhållas individuellt.
- När det behövs är en klar och väl dokumenterad separation on converns.
Vilka problem löser layered pattern?
- The software needs to be segmented.
- Litte interaction among the parts, supporting the portability, modifiability and reuse.
Hur löser layered pattern sina problem?
- Delar in lager (units)
- Varje grupp av lager ger sammanhängade uppsätting tjänster.
- Kommunikationen måste vara enkelriktiad (inga anrop uppåt).
- Var lager måste exponeras via ett interface.