Software analysis Flashcards
Wat is een use case?
Een use case omvat alle mogelijke manieren waarop een systeem gebruikt kan worden om een bepaald doel voor een bepaalde gebruiker te bereiken.
Welke verschillende actoren kan een use case bevatten?
- Primary Actor
- Supporting Actor
- Stakeholders
Wat is de rol van de primary actor in een use case?
Het is de actor die het verhaal (de use case) zal starten en dus als doel heeft de functionaliteit te verwezenlijken.
Wat is de rol van de supporting actor in een use case?
Actor die door de primary actor gebruikt wordt ter ondersteuning. Vaak heeft de primary actor de supporting actor nodig om zijn doel te bereiken.
Wat is de rol van de stakeholders in een use case?
Willen hetzelfde doel bereiken als de primary actor, maar nemen niet actief deel aan de use case.
Welke zaken vinden we terug op de use case template?
- Use case naam
- Primary actor
- Stakeholders
- Precondities
- Postcondities
- Normaal verloop
- Alternatief verloop
- Domeinregels
Wat zijn de precondities op een use case?
Zaken die, meestal door het systeem, vervuld moeten zijn alvorens het verhaal kan starten.
Wat zijn de postcondities op een use case?
Die vermelde alle zaken die door het systeem uitgevoerd moeten zijn eens het normale verloop werd uitgevoerd.
Wat is het normale verloop op een use case?
Het verhaal dat in bijna alle gevallen kan gevolgd kan worden om het doel te bereiken.
Wat is een alternatief verloop op een use case?
Het verloop dat we volgen indien we in bepaalde stappen toch afwijken van het normale verloop.
Wat kan een gebruiker doen na een alternatief verloop?
- Het normaal verloop verder volgen.
- Een ander alternatief verloop activeren.
- Use case stop zetten indien het doel niet meer bereikt kan worden.
Wat zijn de domeinregels op een use case?
Regels waaraan de validatie van verschillende stappen of gegevens moeten voldoen.
Wat zijn de voordelen van use cases?
- Use cases modelleren de functionele vereisten.
- Ze zorgen voor een eenheid van planning (identificeren, ontwikkeltijd inschatten en verdelen in iteraties)
- Ze vormen de basis voor de functionele testen
- Ze vormen de basis voor het verdere ontwerp
Wat is het Use Case Diagram?
Een diagram waar een overzicht van alle functionaliteiten die in het systeem aanwezig moeten zijn neergeschets worden.
Wat moet een use case bevatten?
Alle rollen die een interactie met het systeem hebben.
Deze rollen komen later overeen met de primary actors in de use cases
Wat is extra belangrijk in dit diagram?
Communicatie en verstaanbaarheid.
Diagram wordt opgeleverd aan de klant.
Wat verstaan we onder “includes” op een UCD?
Dat is de functionaliteit waarbij een verhaal, tijdens het doorlopen van het normaal verloop, steeds nood heeft aan een ander verhaal, dan modelleren we dit als “includes”.
Wat verstaan we onder “extends” op een UCD?
Als we tijdens het uitvoeren van het alternatief verloop nood hebben aan een extra use case dan modelleren we dit al “extends”.
Wat is een Activity diagram?
Activiteiten diagram geeft een overzicht van de activiteiten die uitgevoerd worden tijdens het uitvoeren van een bepaalde functionaliteit. Het is dus een grafische weergave van een use case.
Welke bouwstenen kan een activeiten diagram bevatten, en leg ze uit?
- Initial node: startknop van het programma
- Activity: is een elementaire stap uit het normale of alternatieve verloop
- Decision node: Knoop die je gebruikt om beslissingwegen te modelleren. Al het verkeer voor de beslissing loopt naar een knoop vandaar uit vertrekken dan alle mogelijke beslissingen (een weg per beslissing)
- Merge node: Knoop die je gebruikt om verschillende wegen samen te bundelen en verder te gaan als een weg
- Control flow: Alle activiteiten in het schema worden in een chronologische volgorde verbonden met elkaar
- Activity final node: de eindknoop. Kan zowel bij een normaal verloop als een alternatief verloop (indien de use case stopt) voorkomen. Je vermeldt hier steeds welk postconditie voldaan werd.
Waar houdt de software analyse zich vooral mee bezig?
Met de analyse naar ontwerp en programmeren.
Wat is het doel van Software Analyse?
Complexe IT-behoeften en vragen kritisch te kunnen analyseren, gestructureerd weergeven en adequaat en tailored advies geven aan de organisaties.
Wat omvat een kwaliteitsvol ICT-project?
- Binnen de scope (juiste features en functionaliteiten)
- Binnen het voorgestelde tijdschema
- Binnen het vooropgestelde budget
- Met de vereiste kwaliteit
Hoe bereiken we een kwaliteitsvol ICT-project?
Door correct te luisteren en te communiceren met alle stakeholders. (user, klant, opdrachtgever, collega’s)
Wat is een software-ontwikkelingsproces?
Een methode om de activiteiten in verband met creatie, oplevering en onderhoud van softwaresystemen te organiseren.
Hoe verloopt een software-ontwikkelingsproces?
- Requirements verzamelen door te luisteren naar de opdrachtgever
- Requirements analyseren
- Plan/ontwerp opstellen
- Plan/ontwerp uitwerken (implementeren)
- Test en controleren
- Indien nodig integreren van het uitgewerkte resultaat
Welke rollen bevat een team dat een project zal uitwerken?
- Analist
- Ontwerper
- Programmeur
- Tester
- Projectleider
Wat is de taak van een analist binnen het Software ontwikkelingsproces?
Vertaal de requirements naar de ontwerper.
Wat is het belangrijkste communicatiemiddel voor een analist?
Het domeinmodel
Wat is de taak van een ontwerper binnen het Software ontwikkelingsproces?
Een ontwerper vertaal de niet technische stukken naar technischere/diepgaande documenten om door te geven aan de programmeur.
Wat is het belangrijkste communicatiemiddel voor een ontwerper?
Systeem sequentie Diagram met operation contracts.
Wat is de taak van een programmeur binnen het Software ontwikkelingsproces?
Vertaald de documenten van de analist en ontwerper naar duidelijk code die het gewenste product opleverd.
Wat is de taak van een tester binnen het Software ontwikkelingsproces?
Verantwoordelijk voor het opsporen van alle mogelijke fouten die kunnen optreden bij het uitvoeren van een programma
Wat is het belangrijkste communicatiemiddel voor een tester?
Activity Diagram
Wat is de taak van een tester binnen het Software ontwikkelingsproces?
Leidt het project, neem beslissingen (moet het project nog doorgaan), verzorgd communicatie (zowel naar project-team als klant/management)
Welke verschillende manieren bestaan er voor een software ontwikkelingsproces?
- Waterval-methode
- Agile-methode
Beschrijf de waterval-methode
Elke fase wordt stap voor stap uitgevoerd. Er is dus geen stap terug nadat een fase werdt uitgevoerd.
Wat is het grote nadeel van de waterval-methode?
Er is weinig tot geen communicatie met de klant.
Wanneer kan een Waterval-methode wel werken?
Voor kleinere projecten tot 3 maanden lang
Wat is het grote voordeel van de Agile-methode?
De methode zorgt voor een lager projectrisico. Door te werken in iteraties beperkt men rapper de mogelijke risico’s.
Beschrijf kort de Agile-methode
De methode focust zich op vastleggen van kleinere onderdelen (iteraties) die elk enkele doelen hebben die bereikt dienen te worden. (milestones)
Wat zijn de 2 pijlers waarop de Agile methode steunt?
- Iteratief: Het project wordt opgesplitst in kleinere stukken (iteraties). Het grote voordeel hiervan is het snel ontvangen van feedback.
- Incrementeel: Stap voor stap worden nieuwe functionaliteiten toegevoegd aan het programma. Zo ziet de klant steeds vooruitgang en blijft er ook steeds een werkend programma.
Waaruit bestaat in de meeste gevallen een iteratie bij de agile-methode?
- Analyse
- Ontwerp
- Implementatie
- Testen
- Integratie
Hoelang duren de meeste iteraties?
2 à 6 weken
Wanneer is het Agile manifesto ontstaan?
2001
Wat zijn de kenmerken van het Agile manifesto?
- De klantentevredenheid is de hoogste prioriteit.
- Accepteren dat de vereisten en wensen van een klant kunnen veranderen
- Geregeld een werkende versie opleveren
- Business en programmeurs werken dagelijks samen, communicatie is een belangrijke factor
- Een werkende versie is een eerste meting van vooruitgang
Wat zijn de verschillende stappen in het agile stappenplan?
- De opdrachtgever formuleert het probleem
- De analist noteert het verhaal en de vereisten of behoeften
- De analist stel het use case diagram op met de rollen en use cases
- De analist vertaalt het verhaal naar use cases
- De analist stelt aan de hand van de use cases het domeinmodel op
- De analist stelt met ook op testen het activity diagram op
- De analist werkt per use case het systeem sequentie diagram uit, voor minstens het normale verloop, met zijn operation contracts.
Waarvoor staat UML
Unified Modelling Language
Wat is UML (Unified Modelling Language)?
Is een modelleertaal om objectgeoriënteerde analyses en ontwerpen voor een informatiesysteem te kunnen maken.
Geen methode of programmeertaal. Maar een notatiewijze die bij verschillende methodes kan gebruikt worden.
Wat zijn de voordelen van UML?
- Vergemakkelijkt communicatie met alle rollen
- Visualiseert het programma
- Transformatie tussen idee naar afgeleverd project. Vergemakkelijkt de overgang van analyse naar ontwerp, ontwerp naar programmeren, programmeren naar testen.
Er zijn 2 type soorten UML, benoem deze en geef welke soort UML diagramen er zijn.
- Structure Diagrams
* Domeinmodel (Class diagram or object diagram) - Behaviour diagram
* Use case Diagram
* Activiteiten diagram
* Systeem sequentie diagram
Wat zijn functionele vereisten?
De vereisten die beschrijven wat een systeem/programma moet kunnen doen.
Wat zijn niet functionele vereisten?
De vereisten die beschrijven hoe een programma moet functioneren.
Wat is het algemeen verloop van de analyse?
- Opdracht formulering
- Capteren van de vereisten
1. Ontwikkelen van het Use Case Diagram
2. Uitschrijven van de Use cases
3. Opstellen van het activity diagram en testscenario’s
4. Uitwerken van het domeinmodel
5. Opstellen van het Systeem Sequentie Diagram met bijhorende operation contracts
Wat is het belang van het domeinmodel?
Het is belangrijk te kunnen communiceren met de klant, vandaar dat het belangrijk is de terminologie van de klant te beheersen. Dit doen we via het domeinmodel.
Waarom zijn domeinklassen belangrijk?
Via domeinklassen kan je de kern van het probleem met behulp van een klein aantal begrippen beschrijven.
Wat is een domeinmodel (DM)?
Een visuele representatie van concepten uit de werkelijkheid en hun onderlinge relatie.
Hoe wordt het domeinmodel opgesteld?
Aan de hand van een contextuele beschrijving in combinatie met de beschreven use case.
Welke regels zijn opgesteld voor een domeinmodel?
- Het bevat enkel de terminologie van de klant.
- Het bevat enkel de noodzakelijke klassen met hun eigenschappen en onderlinge verbanden.
Welke voordelen zijn er mbt het domeinmodel?
- Je kan afstemmen met de klant of je de probleemstelling goed begrijpt (doormiddel van de associaties van de klassen)
- Belangrijk uitgangspunt ter creatie van de softwareklassen (met datatypes en gedrag)
Welke eigenschappen kan een domeinmodel bevatten?
- Conceptuele klassen
- Associatie en multipliciteiten
- Rolnaam van een conceptuele klasse in een associatie
- Generalisatie/specialisatie
- Aggregatie
- Compositie
- Associatieklasse
Wat is een conceptuele klasse?
Het stelt een object uit de werkelijkheid voor.
Welke regels nemen we aan voor een conceptuele klasse?
- Start met hoofdletter
- Enkel relevante attributen:
* Naam via camelCasing
* Geen datatypes
* Geen berekende attributen (Bv. geen leeftijd, wel geboortedatum)
Wat is een associatie?
Associaties worden gebruikt om extra details en uitleg te geven bij de conceptuele klassen. Door middel van associaties drukken we verbanden uit tussen verschillende conceptuele klassen.
Wat is een relexieve associatie?
Een conceptuele klasse die geassocieerd wordt met zichzelf (vb. Een persoon kan een kind zijn of een ouder, een ouder heeft een kind en een kind heeft een ouder)
Welke regels nemen we aan voor een associatie?
- Enkel verband als het zinvol is
- Aangeduidt door een volle lijn tussen 2 conceptuele klassen
- Meerder associaties mogelijk tussen 2 conceptuele klassen
- Heeft een associatienaam:
* Werkwoord dat begint met hooftletter
* Indien de leesrichting wijzigt duiden we dit aan doormiddel van lijnen
Wat is de multipliciteit?
Aanduiding van hoeveel instanties van een conceptuele klasse verbonden zijn via de associatie met een andere
Welke regels nemen we aan voor een multipliciteit?
- Per rol een multipliciteit
- Minimum aantal is 0,1 of een exact getal
- Maximum aantal is 1, een exact getal of * (oneindig)
- Aangeduid als: min aantal … max aantal bij de rol
- Als minimum = maximum , mag je enkel maximum vermelden
- Notatie 0…* mag vervangen worden door
- Opsomming van exacte waarden is ook toegestaan
Waartoe dient de rolnaam?
Soms gebeurt het dat een associatienaam niet voldoende duidelijk is om de rol van een conceptuele klasse in een associatie aan te duiden, in zulke gevallen specifiëren we rolnaam langs de kant van de conceptuele klasse.
Welke regels nemen we aan voor een rolnaam?
- Kleine letters
- Zelfstandig naamwoord
- Staat naast de conceptuele klasse en associatie bij de welke de rolnaam hoort
- Mag weggelaten worden als de associatienaam duidelijk genoeg is
Wat is een generalisatie?
Een conceptuele basisklasse die gemeenschappelijke attributen heeft die door een afgeleide klasse kunnen overgeërfd worden.
Wat is een specialisatie?
De afgeleide klassen van een generalisatie die de gemeenschappelijke attributen overerft.
Welk regels nemen we aan voor een generalisatie/specialisatie
- Generalisatieklasse bevat alle gemeenschappelijke attributen
- Specialisatieklasse erft de gemeenschappelijk attributen en associaties over
- Specialisatieklasse kan eigen attributen en associaties hebben
- Aangeduidt door een volle lijn met een pijl (in de richting van de generalisatieklasse)
- Test: “specialisatieklasse-naam is een generalisatieklasse-naam”
Wat is een aggregatie?
Een aggregatie is een associatie tussen 2 conceptuele klassen op een gelijk niveau die een deel/geheel relatie vormen. (bv. schip is een deel van een vloot)
Welke regels nemen we aan voor een aggregatie?
- Aanduiden door een ruit naast de klasse die het geheel vormt
- De minimummultipliciteit langs de geheel zijde is steed 0 of 1
- Een deel kan ook op zich bestaan
- Test: “Een geheel heeft een deel”
Wat is een compositie?
Een compositie is een strengere vorm van een aggregatie. Het drukt een instantie van een klasse uit die opgebouwd is uit onderdelen die instanties zijn van andere klassen.
Welke regels nemen we aan voor een compositie?
- Aanduiden door een volle ruit naast de klasse die het geheel vormt
- De multipliciteit langs het geheel is steeds 1
- Een instantie van het geheel is verantwoordelijk voor de creatie en vernietigin van de delen.
Wat is een associatieklasse?
Een associatieklasse is een klasse die aparte attributen bijhoudt die bij een bepaalde associatie horen.
Welke regels nemen we aan voor een associatieklasse?
- Levensduur van de instanties van de associatieklasse is afhankelijk van de associatie
- Kan zelf associaties hebben met andere klassen
- Geen extra multipliciteiten
- Verbonden met de associatie doormiddel van een stippellijn
- Je kan een associatieklasse enkel gebruiken bij een associatie waarvan de maximummultipliciteit langs beide kanten een * is.
Welke stappen ondernemen we bij het opstellen van een domeinmodel? (in volgorde)
- Identificeren van de kandidaatsklassen
- Selecteren van de conceptuele klassen
- Associaties leggen en/of aanpassen
- Attributen toevoegen, verplaatsen en/of schrappen
- Optimalisatie
Wat is de afkorting van Systeem Sequentie Diagram
SSD
Wat is het Systeem Sequentie Diagram?
Een sequentiediagram dat all interacties tussen actor en het systeem van een use case weergeeft.
Wat leren we uit een SSD?
- SSD geeft inzicht in de systeemeisen die de eindgebruiker verwacht
- SSD toont de systeem boodschappen/operaties = systeemgedrag
- SSD toont wat het systeem moet doen, en niet hoe (black box)
- SSD bevat de systeemoperaties. Als een actor communiceert met een systeem, gebeurd die altijd via zo een systeemoperaties. Dus alle mogelijke interacties dat een actor met het systeem kan hebben wordt voorgesteld door een systeemoperatie op een SSD.
- Geeft in chronologische /sequentiële volgorde de functionaliteiten van het systeem
- Werken we al onze systeemoperaties uit (ontwerp en implementatie) dan krijgt onze software vorm. Het is dus een startpunt voor het ontwerp.
Welke onderdelen bevat een SSD steeds?
- Deelnemer
- Levenslijn per deelnemer
- Systeemoperaties
Welke onderdelen kan een SSD bevatten?
- Antwoord op systeemoperatie
- Herhaling
Welke deelnemer zijn er op een SSD?
- Actor
- Systeem
Wat zijn systeemoperaties?
Verschillende acties die de primary actor op het systeem uitvoerd.
Welke regels zijn er omtrent de systeemoperaties?
- Worden chronologisch geordend
- Geordend volgens de stappen van het use case scenario
- Elke systeemoperatie is een actie tussen actor en systeem
- Wordt aangeduid door een volle lijn met een pijl naar het systeem
- Regels:
○ Duidelijke naamgeving
§ Werkwoord met () volgens camelCasing
§ Moet duidelijk zeggen wat er gevraagd wordt aan het systeem. (niet wat de actor doet)
§ Moet de bedoeling op een hoog abstractieniveau weergeven - niet in termen van inputtechnologie. (geen datatypes)
§ Sluit aan bij het jargon van het domeinmodel
§ Formuleert een opdracht “doeiets” (=> Starten met de stam van het werkwoord)
○ Parameters indien nodig
○ Geen datatypes
Welke regels hebben de antwoorden op systeemoperaties?
- Wordt aangeduid door een stippellijn met een pijl in de richt van de actor.
- Boven de pijl wordt er benoemd wat het systeem terug geeft aan de actor.
- Regels:
○ Zelfstandig naamwoord
○ Geen operaties
○ Geen datatypes
○ Dezelfde terminologie als in het domeinmodel - Enkel een terugkerende pijl als de gegevens geprint moeten worden
Beschrijf het stappenplan voor een SSD
- Stap 1: Kies een use case scenario (kies een passende naam)
○ Normaal verloop
○ Normaal verloop met integratie van alternatief verloop tot een scenario - Stap 2: Voeg elke deelnemer toe met zijn levenslijn
- Stap 3: Voeg de systeemoperaties toe
○ Voor elke actie die de actor uitvoert word een systeemboodschap toegevoegd aan het SSD
○ Per systeemoperatie tekenen we en activeringsblokje
§ Hoe het systeem intern reageert geven we niet aan (systeem is een black box)
○ Controleer ook steeds of de reactie van het systeem zorgt voor een antwoord in het SSD - Stap 4: Voeg eventuele herhalingen toe
○ Bepaal begin- en eind stap
○ Teken kader rond alle stappen die herhaald moeten worden
Voeg een stopconditie toe
Welke verschillen zijn er tussen het domeinmodel en het SSD?
- Domeinmodel:
○ Statisch
○ Overzicht van de klassen met attributen en verbanden
○ Op type-(klasse) niveau
○ Grondplan van de applicatie- Systeem Sequentiediagram
○ Dynamisch
○ Interactie, samenwerking tussen actor en systeem
○ Op instantie-(object) niveau
Applicatie in werking
- Systeem Sequentiediagram
Wat is een operation contract?
Een operation contract is een contract dat meer informatie omvat over één systeemoperatie in het SSD.
Welke kenmerken heeft een operation contract?
- Is onderdeel van de analyse
- Is een document dat beschrijft wat de operatie moet bereiken
- Beschrijft de veranderingen/gevolgen in het systeem ten gevolge van die operatie
- Is een expliciete beschrijving van het effect van die operatie, beschrijft niet hoe de veranderingen tot stand komen
ENKEL voor systeemoperaties die iets wijzigen aan het systeem
Welke onderdelen heeft een operation contract?
- Contract: Duidelijke naam/omschrijving
- Operation: Naam van de systeemoperatie uit het SSD inclusief de ()
- Cross reference: Use cases waar deze systeemoperatie wordt uitgevoerd
- Precondities: De staat van het systeem/domeinmodel voor het uitvoeren van de systeemoperatie
- Postcondities: Gedetailleerde beschrijving van de objecten uit het domeinmodel die gewijzigd zijn door het uitvoeren van de systeem operatie.
○ Beschrijven goed wat een systeem heeft bereikt, niet hoe
○ Beperk tot volgende categorieën:
§ Creatie/verwijderen van een instantie van een klasse
§ Creatie/verwijderen van een associatie tussen twee klassen
§ Wijziging van een attribuut van een klasse
Druk uit in verleden tijd
Beschrijf het stappenplan van een operation contract.
- Stap 1: Overloop het SSD samen met de use case
- Stap 2: Per systeemoperatie beantwoord je volgende vragen:
○ Aanmaken van een instantie van een object?
○ Verwijdering van een instantie van een object?
○ Aanmaken van een associatie?
○ Verwijdering van een associatie?
○ Wijzigen van een attribuut?
Stap 3: Antwoord “Ja” op een van deze vragen, stel een OC samen
- Stap 2: Per systeemoperatie beantwoord je volgende vragen:
Wat is de UI?
De user interface (UI) of gebruiksomgeving is een grafische weergave van de functionaliteiten die een gebruiker kan uitvoeren op een systeem.
Waarvoor staat UX?
User experience
Welke stappen ondernemen we bij het ontwerpen van een UI?
- Basisontwerp dat voor alle pagina’s geldt
- Pagina in detail uitwerken
- Bijwerken UI
Wat zijn wireframes?
Ruwe schetsen van de applicatie, hierop vinden we geen inhoud of kleuren.
Wat zijn mock-ups
De uitgewerkte wireframes die verder ontwikkeld zijn met meer details, de werkelijke inhoud en kleuren.
Wat is een conceptueel model?
Effectief model waarmee de ontwikkelaar in interactie treed met de gebruiker om hem uit te leggen hoe de applicatie is opgebouwd
Wat is een mentaal model
Model dat de gebruiker in gedachten heeft van hoe de applicatie volgens hem moet werken. Dit kan beïnvloed worden:
□ Door ervaringen met vorige edities
□ Door kennis van gelijkaardige applicaties of voorkennis applicaties
Een applicatie kan dus verschillende mentaal modellen hebben. Het is aan het team om zoveel mogelijk info van de verschillende modellen te verzamelen.
Wat is responsive design
Globaal ontwerp dat op alle platformen/toestellen gebruikt wordt. Hierbij passen de pagina’s zichzelf aan volgens de dimensies van het toestel. (reageert snel op de wijzigingen van dimensies)
Wat is adaptive design?
Verschillende design/template per type toestel
Wat is progressive disclosure?
stap voor stap informatie toevoegen aan het scherm, niet alles in een keer