Thuis
Contacten

    Hoofdpagina


Wat is het verschil tussen analyse en design ?

Dovnload 32.64 Kb.

Wat is het verschil tussen analyse en design ?



Datum13.11.2017
Grootte32.64 Kb.

Dovnload 32.64 Kb.

Wat is het verschil tussen analyse en design ?

- Analyse is een onderzoek naar het probleem en de vereisten, en nog GEEN oplossing voor het probleem

- Design is een conceptuele oplossing die voldoet aan de vereisten, maar nog GEEN implementatie in een programmeertaal/...
Wat verstaat men onder Objectgeoriënteerde Analyse en Design ?

OOA (Object Oriënted Analysis) is het zoeken naar objecten en concepten in het probleemdomein.

(vb.: Bij een probleem "Bibliotheek" weet je al zeker dat er de objecten Boek, Lezer, Loketbediende zullen zijn)
OOD (Object Oriënted Design) is het vertalen van die objecten naar objecten die volgens softwarelogica aan elkaar gekoppeld kunnen worden om aan de vereisten te voldoen
Wat is UML ?

Unified Modeling Language is een taal om softwaresystemen, business-modellen en andere niet-softwaresystemen te beschrijven, te visualiseren en te documenteren.


Wat is het Unified Proces ? Welke zijn de basisprincipes ?

UP is een software-ontwikkelingsproces voor OO systemen.

Basisprincipes zijn:


  • UP is iteratief (spiraalmodel)

  • Aanpasbaar

  • Timeboxed (iedere iteratie in tijd afgebakend)

  • Objectgeoriënteerd

Geef 3 voordelen van iteratieve systeemontwikkeling:



  • Men kan snel zien wat de risico’s en haalbaarheid zijn (technisch, vereisten, …)

  • Er is een snelle vooruitgang zichtbaar

  • Snelle feedback op elke iteratie: de opdrachtgever kan regelmatig bijsturen om aan de doelstellingen te voldoen

  • Complexiteit wordt vereenvoudigd in stappen

  • Iedere iteratie zorgt voor lessen die verder in het UP gebruikt kunnen worden

Welke zijn de fases binnen het UP ?



  • Inceptie (visie, planning)

  • Elaboratie (uitwerking)

  • Constructie (uitwerking programma)

  • Transitie (testen, installeren)

Wat is het hoofddoel van de inceptiefase ?

Doorgaan of stoppen met het project. Mogelijkheden verkennen en een ruwe visie opmaken.
Geef 3 artefacten in de inceptie:


  • Visie en bedrijfsregels

  • Use Case model

  • Specificaties

  • Glossarium

  • Risico’s

  • Prototyping

  • Iteratieplan (planning)

Waarom kan de inceptiefase nooit worden overgeslagen ?

Men kijkt aan de hand van de belangrijkste ruw uitgewerkte Use-Cases of er wordt verdergegaan of niet.

Volgens welke categorieën worden vereisten in het UP verdeeld ?



  • F unctional

  • U sability

  • R eliability

  • P erformance

  • S upportability

  • + implementation, interface, operations, packaging, legal ...

Welke types van eisen bestaan er in het UP ?



  • functionele eisen: eisen die nodig zijn binnen elke Use Case

  • niet-functionele eisen: zaken die niet nodig zijn om het programma te doen werken, maar dingen zoals supportability, packaging, ...

Wat is het nut van Use Cases binnen het UP ?



  • Vereisten worden duidelijk omschreven

  • Planning gebeurt aan de hand van Use Cases: ontwikkelt men een hele Use Case in 1 stap of ontwikkelt men scenario per scenario

  • Design wordt gedaan a.d.h.v. Use Cases

  • Beinvloeden handleidingen achteraf

Wat beschrijft een Use Case ?



Een Use Case beschrijft een geautomatiseerde oplossing voor elementair bedrijfsproces volgens de behoeftes en doelen van de gebruiker.
Verklaar:

scenario:

een mogelijke opeenvolging van handelingen binnen een Use Case.

Use Case model:

een grafische voorstelling van alle actoren en hun Use Cases.

actor:

persoon of instantie die handelingen verricht binnen de Use Case

primaire actor:

de actor die het de Use Case gebruikt/bedient

ondersteunende actor.

alke actor binnen de Use Case, naast de hoofdactor

preconditie:

alles wat vervuld moet zijn voor de Use Case kan starten

postconditie:

alles wat na het uitvoeren van de Use Case gedaan moet zijn

elementair bedrijfsproces:

een proces dat door 1 persoon op een bepaalde tijd en bepaalde plaats kan worden uitgevoerd en waarvan het doel niet te hoog of te laag is.

aanvullende specificaties:

niet-functionele specificaties zoals kwaliteitseisen, domeinregels, constraints. Ook elke term uit de FURPS+ wordt hierin uitgewerkt.

visiedocument:

de belangrijkste karakteristieken, de rol en de afbakening van het project.

data-dictionary:

woordenlijst + verklaringen en alle metadata.

glossarium:

enkel woordverklaringen (definities)

domeinregel:

regel die het project binnen een bepaald domein houdt en die dus zorgt dat het project tot zijn oorspronkelijke doel blijft en niet meer of minder doet.

bedrijfsregel:

regel die het bedrijf oplegt als beperking of uitbreiding van het project. alle bedrijfsregels bepalen mee het domein natuurlijk.

Metadata:

de regels en definities die structuur en consistentie leveren aan databases en processen. Regels voor het bewerken van data-elementen, lay-outs voor rapporten, datawoordenboeken en objectmodellen: het zijn allemaal voorbeelden van metadata.

Wat is de elaboratiefase ?

De uitwerking van de ruwe artefacten uit de inceptie. Use Cases worden uitgewerkt, alle vereisten worden behandeld en de kernarchitectuur van het project wordt gemaakt en de verdere globale planning gemaakt. Dit alles hangt natuurlijk af van de “go” of “no go” uit de inceptie…
Geef enkele artefacten uit de elaboratie:


  • Domeinmodel

  • Designmodel

  • Programma-architectuur (algemene beschrijving van de structuur dus)

  • Data model (database...)

  • Testmodel (wat wordt getest en hoe?)

  • Implementatiemodel (source code, het programma zelf, database, ...)

  • Use Case storyboards, UI prototypes

Geef enkele kenmerken van de elaboratie:

Programmeren van de basis

Testen van de basis

Feedback aan de basis toetsen

Analyse (Use Cases, …) mee aanpassen tijdens het testen


Waarvoor dient een SSD (System Sequence Diagram) ?

Het SSD beschrijft wat het systeem doet en hoe het reageert op systeemgebeurtenissen (system events) en actors.


Wat is een domeinmodel ?

Een representatie van de echte objecten (niet de software-objecten) waarmee het systeem te maken krijgt.


Verklaar:

conceptuele klasse:

klasse die in de conceptuele fase in het domeinmodel wordt opgenomen. het is nog niet zeker of deze conceptuele klasse ook daadwerkelijk als klasse zal worden beschreven in het programma.

klassediagram:

de voorstelling van alle klassen binnen 1 usecase, met associaties en attributen.

domeinmodel:

klassediagram van alle usecases (ben niet zeker)

intentie:

de definitie van een conceptuele klasse

extensie:

de voorbeelden waar een conceptuele klasse naar verwijst

specificatieklasse:

een klasse die gegevens van een andere klasse bijhoudt.

Hoe kan je real-world klasse nvinden ?

Conceptual class category list: een lijst die helpt met het zoeken

Noun-phrase identification: elk zelfstandig naamwoord + alle bijvoeglijke bepalingen, zijn kandidaat conceptuele klasse.


Beschrijf de stappen om een domeinmodel op te stellen:

1. Identificatie van conceptuele klassen (conceptual class category list en noun phrase)

2. Teken alle klassen in een domeinmodel

3. Voeg associaties toe voor elke relatie

4. Voeg attributen toe

5. Echt domme klassen MAG je nu verwijderen

Wat is een associatie ?

Een interessant verband tussen concepten (tussen objecten (= instanties van klassen))


Wat is multipliciteit ?

Hoeveel instanties van een klasse geassocieerd kunnen worden bij één instantie van de andere klasse.


Verklaar:

need-to-know associatie

associaties waarvan de bijhorende relatie (=klasse) bijgehouden moet worden

comprehension-only

associaties zijn enkel nodig om het model te verduidelijken en zouden kunnen worden weggelaten, al doet men dat liever niet in de eerste iteraties

Hoe kan je associaties vinden ?

Associaties kunnen gevonden worden d.m.v. de Common Associations List
Wat is een attribuut ?

Een logische waarde van een instantie van een klasse.


Wat is een afgeleid attribuut ?

Een afgeleid attribuut (derived attribute) is een attribuut dat niet in de Use Case is opgenomen, maar dat volgt uit andere attributen of parameters.


Hoe bepaal je of iets een attribuut is of een klasse ?

Wanneer een attribuut voorgesteld kan worden door een nummer, string, boolean, datum, tijd, enz., dan is echt een attribuut. Anders is het een conceptuele klasse. Bij twijfel neem je best een afzonderlijke klasse.


Wat is een contract ?

Een contract beschrijft de volledige werking van een systeemoperatie met precondities en postcondities. Het is het contract dat de programmeur aangaat met het programma. Het gaat meer gedetailleerd in op de juiste effecten van operaties binnen het programma.


Wat is een systeemoperatie ?

Een actie die door het systeem wordt uitgevoerd en gecontroleerd zonder dat er een actor tussenkomt.


Wat is het verschil tussen include en extend binnen een Use Case ?

Include: een bepaald scenario in de Use Case dat meerdere malen terugkomt afsplitsen in een Subfunction, om herhaling in de Use Case te voorkomen.


Extend: een bepaald scenario kan een extensie zijn van een Use Case. Dit wordt ook in een afzonderlijk document beschreven.
Welke 2 regels worden gebruikt om generalisatie te bekomen ?

- 100%-regel: de kindklasse moet 100% dezelfde attributen en associaties hebben als de ouderklasse.

- Is-een regel: de kindklasse moet in de zin “kindklasse is een ouderklasse” passen (vb.: Mountainbike is een fiets)
Wanneer wordt generalisatie toegepast ?


  • De kindklassen zijn variaties op een gelijkaardig concept

  • De kindklassen voldoen aan de 2 regels (is-een en 100%)

  • Alle kindklassen hebben dezelfde attributen als de ouderklasse

  • Alle kindklassen hebben dezelfde associaties als de ouderklasse

Wat is een abstracte klasse ?

Een abstracte klasse is er als er kindklassen zijn, en de ouderklasse niet op zichzelf kan staan.

(vb.: Betaling met kindklassen KredietkaartBetaling en ChequeBetaling: Betaling komt nooit voor, telkens 1 van de 2 kindklassen…Beide klassen voldoen echter wel aan de generalisatie-regels)


Wanneer is een associatieve klasse nuttig ?

- Een attribuut beschrijft de associatie

- Instanties van de associatieve klasse behoren voor altijd bij de associatie

- Er is een veel-op-veel associatie tussen 2 klassen


Wat is het verschil tussen een gewone aggregatie en composite aggregatie ?

Een composite aggregatie definiëert dat een bepaalde klasse STEEDS bij een andere klasse hoort en niet op zichzelf kan bestaan. (vb. Hand  Vinger)


Een gewone aggregatie bepaalt dat een bepaalde klasse steeds bij een andere klasse hoort, maar ook op zichzelf kan bestaan. (vb.: een Computer bevat Onderdelen, maar Onderdelen worden ook afzonderlijk verkocht)
Is het verstandig om afgeleide attributen op te nemen in een klasse ?

Neen. Deze zorgen enkel voor meer complexiteit, en niet voor nieuwe informatie. Een afgeleid attribuut neem je best wel op als het nodig is om de begrijpbaarheid niet te schaden.


Wat is het nut van packages ?

Deze delen het domeinmodel op in kleinere domeinen, om overzichtelijkheid te behouden.


Hoe deelt men packages in ?

  • Klassen die zich in hetzelfde subject area bevinden

  • Klassen die zich in dezelfde hiërarchie bevinden

  • Klassen die in dezelfde Use Cases voorkomen

  • Klassen die sterk afhankelijk zijn van elkaar

Wat is een State Chart Diagram ?

Een SCD illustreert gebeurtenissen en toestanden waarin een object zich kan bevinden.
Wanneer is een SCD handig ?

Als een object state-independent is: als een object zich anders gedraagt afhankelijk van attrbiuten, associaties, …



(vb.: Een TV reageert anders op het knopje “Volume” als hij aan of uit staat)
Welke soorten events zijn er en verklaar ?

  • Externe events: veroorzaakt door een actor, … buiten het systeem
    (vb.: kassierster drukt op “Enter”)

  • Interne events: veroorzaakt binnen het systeem, een boodschap tussen objecten, …
    (vb.: een object roept een methode van een ander object op)

  • Temporal event (slaap-event): een event dat gebeurt op een bepaald tijdstip
    (vb.: een sale staat 5 minuten open zonder betaling  de sale wordt geannuleerd)


Dovnload 32.64 Kb.