F2 Teknisk arkitektur Flashcards
Software Architecture
Vad är definitionen av mjukvaruarkitektur?
The software architecture för ett program eller ett datorsystem är strukturen eller strukturerna i systemet, som omfattar:
Software elements,
Externt synliga egenskaper hos dessa element,
Realationen mellan dem
Example: Systemarkitektur, teknisk arkitektur, IT-arkitektur, mjukvaruarkitektur.
Vad menas med “element” i software architecture?
En programmodul, t.ex. en komponent, en klass eller en exekverbar fil.
Vad representerar en “lollipop” i ett UML Component Diagram?
O-
En provided interface (API) – funktioner som komponenten erbjuder
Vad representerar en “socket” i ett UML Component Diagram?
-C
En required interface – funktioner från andra komponenter som komponenten behöver använda.
Hur representeras beroenden i ett UML Component Diagram?
Med en pil från den beroende komponenten till den den är beroende av.
Ge fyra anledningar till varför arkitektur är viktigt.
Management – Dela upp komplexa problem i mindre delar.
Kravhantering – Möjlighet att ställa krav på modulnivå.
Vidareutveckling – Frikoppla delar i systemet för att minska påverkan vid ändringar.
Underhåll – Gör systemet lättare att förstå och underhålla.
Vilka två begrepp används för att bedöma hur modulär en arkitektur är?
Cohesion (sammanhållning)
Coupling (koppling).
Vad innebär high cohesion och low coupling?
Det är en bra arkitektur där moduler är väl sammanhållna internt men löst kopplade till andra moduler.
Vad innebär low cohesion och high coupling?
Det är en dålig arkitektur där moduler har dålig intern sammanhållning och är starkt beroende av andra moduler.
Nämn fyra egenskaper som påverkar design och utveckling av arkitektur.
-illites
Maintainability – Hur lätt systemet kan underhållas över tid.
Extensibility – Hur lätt ny funktionalitet kan läggas till.
Portability – Hur lätt det är att flytta systemet till en annan plattform.
Interoperability – Hur väl systemet kan integreras med andra system.
Nämn tre egenskaper som påverkar systemets prestanda vid körning.
-illites
Availability – Systemets tillgänglighet (”uptime”).
Scalability – Systemets förmåga att hantera ökad belastning.
Performance – Systemets svarstid på förfrågningar.
Vilka är de fyra huvudsakliga vyerna för arkitekturdokumentation?
Logiska moduler
Information
Fysiska strukturer
Processer
Vad är skillnaden mellan skikt och lager i arkitektur?
Skikt (tiers) är en fysisk indelning av datorer i ett nätverk.
Lager (layers) är en logisk indelning av programvarans funktioner.
Lager (layers) – logisk indelning
Presentation: Vanligtvis grafiskt användargränssnitt, med tillhörande logik.
Business logic: Innehåller regler för verksamheten (”tex alla kunder som köper över 1000kr får fri frakt”), beräkningar, databearbetning.
Database: Lagring av information, sökning av information.
Vad kännetecknar en en-skikts arkitektur?
All funktionalitet i en enda enhet eller applikation.
Användaren interagerar direkt med applikationen, som hanterar både logik, data och användargränssnitt.
Vad kännetecknar en två-skikts arkitektur?
Systemet delas upp i två separata delar:
Klient – Användarens gränssnitt och viss applikationslogik
Server – Databashantering och eventuell affärslogik
Vad kännetecknar en tre-skikts arkitektur?
Delar upp systemet i tre lager:
Presentation – Användargränssnittet (t.ex. webbapplikation eller mobilapp)
Business Logic – Behandlar regler, datahantering och processer
Databaslager – Lagrar och hämtar data
Vad kännetecknar en multi-skikts arkitektur (n-tier)?
Multiskiktsarkitektur är en vidareutveckling av treskiktsarkitektur där fler lager läggs till.
Vad är en Application Server?
En server som fungerar som värd för programkomponenter och erbjuder funktioner såsom transaktionshantering och distribution.
Vad är en Integration Server?
En server som fokuserar på att ansluta olika system via färdiga adaptrar och dataomvandlingar.
Vad är en Message Queue Server?
En server som hanterar asynkron meddelande-kö, vilket möjliggör lös koppling mellan sändare och mottagare.
Vad är en Business Process Server?
En server som exekverar processbeskrivningar och hanterar parallell exekvering, synkronisering och långvariga transaktioner.
Vad är en Portal Server?
En server som integrerar information från flera system i en användarvänlig webbaserad gränssnitt.
Vilken typ av produkt är “Product A”, som integrerar SAP och icke-SAP-system?
Integration Server
Vilken typ av produkt är “Product B”, som erbjuder federerad sökning och identitetsbaserad innehållsleverans?
Portal Server
Vilken typ av produkt är “Product C”, som stödjer SOA-applikationer och tjänster?
Application Server