Uittreksel Information
Systems Design and Development
Foundation
)
"
I
<~1
i otÆ.
JI
\
e
~
Exameneisen 30%
Proces..
Producten.. Technieken
Testen..
................. .............".... .......................
Gf)automatiseerde
.
hulpmiddelen...
15%
35% 10%
10%
[Procesvan_sZ!J!~emontwikkeling Systeem::: Voorbeeld Voorbeeld Voorbeeld
:30<}i;
-----~--"-
Stelsel van elementen dat erop gericht is een bepaald doel of resultaat te bereiken. fysiek svsteem: computersysteem (tastbaar) abstract svsteem:ontwerp van een woning (proces) ODen systeem: organisatie (wisselwerking met omgeving)
In een bepaalde omgeving opererend samenwerkingsverband van mensen en middelen, gericht op het bereiken van gestelde doelstellingen. Op te delen in 3 systemen: Transformatie systeem: Totstandbrenging van producten of diensten en omvat de primaire processen. Beslissingsysteem: Besturing van de primaire processen Informatiesysteem: Het geheel van activiteiten, faciliteiten (:n procedures vvaarmce een organisatie haar
Organisatie:;;;; L
2. ,3.
infol'matiebehoefte tbv de bedrijfsvoering vervuIL Hoofdliinel1 bij ontwikkeling van een systeem: 1. Analyse: Gegevens -en proces georiënteerd: . Problemen en oorzaken in kaart brengen, . Oplossingen zoeken . Aanbevelingen hard -en software doen
Koston/batenanalyse voor verdere realisatie vh systeem Ontwerp: Gegevens -en proces georiënteerd: . Oplossingsrichting kiezen . Globaal basisontwerp (wat gaat het informatiesysteem doen?) . F'unctionele beschrijving vh informatiesysteem . Hoe moet het systeem werken om de functies uit de functionele beschrijving uit te kunnen voeren? Realisatie . Bouw systeem ~
2,
3.
. .
. . .
Systeemmodules realiseren Gegevensbestanden creëren Subsystemen afzonderlijk testen Subsystemen in relatie testen Conversie
Gegevensgeoriënteerde benadering: gegevens adhv veranderingen bezien en processen maken Procesgeoriënteerde benadering: Proces staat centraaL gegevens worden bij proces gezocht, Belangrijkste . .
aspecten systeemontwikkeling: Integratie van deelsystemen in infrastructuur Kwaliteit wordt bepaald dool' effectiviteit en niet
.
Levensduur
.
Ontwikkelkosten Duurzaamheid Efficiency
.
.
de techniek
Stratez!<]. Methodiek Methode & Techniek Geree_dschan Methode: Verzameling voorschriften en regels die gehanteerd wordt bij het oplossen van problemen of het uit.voeren van onderzoek. In meer of mindere mate systematische denk of werkwijze om een probk~em op te lossen. (Hoe) Het is een werkwijze en een hulpmiddel. -
LET Opl !Iet jo'; de ontv,'erper die uiteindelijk het informatiesysteem ontwikkelt en niet de methode (\\T Teci!llÙ2!s vormt het gereedschap dat binnen een methode gehanteerd kan aarmee) worden, De methodische aanpak wordt noodzakelijk door de complexiteit van het ontwikkelproces door toenemende
gebruikersdeelname, integratie van de systemen, duurzaamheid, efficiency en effectiviteit. De bruikbaarheid van een methode hangt af van het soort probleem, welke gebruikers en in welke omgeving ontwikkeld moet vVOl'den.
2
J
Methodiek: De leer van de methoden voor praktijk; De denkwijze achter een praktijkgerichte methode. Methodologie:De leer van de met.hoden voor t.heorievorming. (Wet.enschappelijk) Strategie: E:en plan dat ten minste bevat: . een omschrijving van de doelstelling . de motivering van de keuze voor methode op het feitelijk ontwikkelen van een informatiesysteem. efficiency centraal staan. Soorten ontwikkelmethoden: en . Systeemontwikkeling van kleine systemen . Systeemontwikkeling waarbij standaard programmatuur wordt gebruikt . Systeemontwikkeling op maat (maatwerk) Efficiencv: efficiënt beheer van ontwikkelproces en de duurzaamheid van de systemen Effectiviteit: het t.e ontwikkelen systeem komt werkelijk tegemoet aan de informatiebehoeften. Effectiviteit is onder te verdelen in : . CommunicatÎe: eenduidige beschrijving wat er ontworpen is. (schematechnieken, diagrammen, teksten) . Complexiteitsreductie: top+down benadering getoetst dool' bottom-up benadering . Overdraagbaarheid werkwijze, opgedane ervaringen, probleem formuleringen en resultaten . Volledigheid: stappen moeten op elkaar aansluiten en de ontwikkelmethode is daarbij ondersteunend.
Ontwikkelmethoden zijn toegespitst \Vaarbij effectiviteit
Mijlpaalproduct.en:
Documenten die tijdens of aan het einde van de fase moeten worden opgeleverd en goedgekeurd Verwijzing naar gedetailleerde informatiebronnen die nodig zijn om de desbetreffende fase goed te kunnen doorlopen. Prioriteit wordt voornamelijk bepaald door'; . Verwachte voordelen gebaseerd op kosten-batenanalyse . Kans op succes . Snelheid waarmee het systeem operationeel kan zijn . Behoefte aan het nieuwe systeem . Betekenis voor de organisatie Faseren: In stappen verdelen, in logische volgorde plannen en aanbrengen van duidelijke meetpunten van de project activiteiten om tot het gewenste resultaat te komen. .
.
Mijlpalen als beslissingpunten hebben voor projectbesturing en evaluatie projectvoortgang . . .
Verantwoordelijkheden goed beleggen Org-anisatie laten weten hoe de systeemontwikkeling (verHoopt Risico's verminderen
door bijsturing
Fasering volgens pl'oiectmanagement: Initiatiefase
Voorbereidingsfase(Hoe te maken): Richtlijnen opstellen; Werkwijzen ont.wikkelen; Hulpmiddelen bepalen Realisatiefase (Doen): Geformuleerde eindresultaat realiseren 6. Nazordase (lnst.andhouden): Gebruik; Onderhoud; Beheer Beheersen: Regelende en sturende activiteiten obv GOKIT (geld, organisatie, bvaliteit, informatie, tijd) Beslissen:Evaluatie en Go/No go obv fase overgangsrapport. 4.
5.
3
Fasering- volg-ens Svstem Develonment Methodolog-v (SDM): Informatìeplannìng (probleem definitie): Gaat vooraf aan feitelijke systeemontwikkelproces en legt basis voor ontwikkeling van informatiesysteem in een groter geheel. Eén keer uitgevoerd! DOJ~J:l\laken Informatieplan waarin beschreven wordt waarop de organisatie op korte en lange termijn in zijn informatiebehoefte kan voorzien. . Situatieanalyae: onderzoek in hoeverre de bestaande informatiesystemen de doelstelling van de organisatie ondersteunen. (verkennende en strategische functie)
o.
.
Adviesvorming
Miilnaalnroducten
1.
informaticnlanning-:
.
PVA
.
Rapport situatìeanalyse
.
Informatiearchitectuurplan
.
Projectplan
.
Informatieplan
Definitiestudie (probleem analyse): Waarom is het een probleem? Aanvang systeemontwikkeling en beoordeling of het informatiesysteem: l"Technisch haalbaar 2- Economisch verantwoord 3-Sociaal aanvaardbaar Miilnaalproducten Definitiestudie: .
. . . . .
2.
Specificatie systeemeisen Beschrijving gekozen systeemoplossing Raamwerk acceptatieprocedure Systeemontwikkelingsplan Rapport definitiestudie
Functioneel ontwero (probleem analyse) (basisontwerp): Wat gaat het systeem doen? Gebruikerskant. Opdelen in subsystemen; Opstellen Systeemeisen en Ontwerpspecificaties rekening houdend met: LvVelke functies moet het systeem verrichten Oogisch ontwerp) 2.0ntwerpen gegevensstromen en gegevensstructuren 3. Eisen tav performance, gebruiksvriendelijkheid ed 4. Testplannen ~1~aalproducten Functioneel ontwerp: . PVA . . .
. . .
3.
PVA
Gegevensstructuur Functiestl'uctuur Specificatie van interfaces naar andere deelsystemen Specificatie benodigde faciliteiten Bijgc\verkt systeemontwikkelingsplan Rapport functioneel ontwerp
Technisch ontwerp (probleem oplossen) (detailontwerp): Hoe moet subsysteem eea gaan realiseren? Venverkingskant systeem. 1. Programmaspecificaties 2. Beeldscherm en formuherontwerp 3. Opslagstructuur ontwerp 4. Gebruik standaard programmatuur rvliiIDfl<J.æroducten technisch ontwerp: . PVA $ .
. . . .
Gedetailleerde gegevensstl'uctuur Gedetailleerde functiestructuur Specificaties voor interactie mens/computer Gedetailleerd testplan Implementatieplan Rapport technisch ontwerp
<1
4.
Realisatie: (probleem oplossen) Realiseren, Programma test en Systeemtest zodat werking voldoet aan gestelde eisen en verwachtingen. Acceptatietest kan ook deze fase uitgevoerd (alhoewel meestal pas in invoeringsfase)
J\;1iilnaalüJ'9Jl..J:IiJen
Testrapport deelsystemen Rapport systeemtest Installatieplan deelsystemen Systeemdocumentatie Rapport acceptatietest Rapport realisatie
.
. . .
. .
5.
realisatie:
rVA
.
Invoering: 1. Acceptatietest met succes doorlopen.
2. Conversie. 3. Geschikt maken werkplekken en organisatie. 4. Programmatuur en apparatuur installeren. Fase eindigt na invoering en overdracht. Invoering informatiesysteem -Ineens: Snel
kan:
maar riskant
-Gefaseerd systeem moet dit aankunnen -Schaduw draaien: ineens en integraal overstappen, zonder overlast organisatie,
maar dubbel
werk verrichten
Miilnaaluroducten invoerin2":
rVA
.
Invoeringsplan Conversieplan
.
. . .
6.
Afgesloten projectdocumentatie Rapport invoering en overdracht
Gebruik & Beheer: Informatiesysteem moet blijven voldoen aan doelstellingen waarvoor het
is opgezet.
Oplossen storingen 2. Prestatieniveau meten en handhaven 3. Verbeteringen aanbrengen 4. Onderhouden van gegevensbestanden en apparatuur MiilpaalDroducten: . Volledige systeembeschrijving . Planningen en criteria voor periodieke beoordeling vh gebruik, het beheer en het budget. planning van onderhoud op het informatiesysteem 1.
.
Rampenplan
.
Beveiligingsplan Periodieke rapportage
.
Basísfuncties . .
. .
SDM
Veranderingsproces: verzameling activiteiten om veranderingsproces te beheersen. Systeemontwikkeling: samenhangende activiteiten waarmee een informatie systeem wordt gespecificeerd en gerealiseerd. Besturingsproces:Opstellen van uitgangspunten en een plan van aanpak. (PVA) Valideringsproces: Activiteiten die nodig zijn om de kwaliteit van ontwikkelde producten te toetsen aan gebruikerseisen.
Elementen die in elke fase aanwezig .dienen te ziin: (I Algemeen overzicht over de rol die de activiteit speelt in het totale proces. . Overzicht van de verantwoordelijkheden van en de gevolgen voor het management . Beschrijving van de kwaliteitseisen en de manier waarop controle plaatsvindt . Specifieke stappen die in de fase horen.
5
Zonder documentatie kan een fase niet afgesloten worden omdat het in SDlVl termen onmogelijk is om goedkeuring te krijgen voor het ingaan van een volgende fase zonder documentatie. Achterliggende gedachte: . Huidige status is altijd bekend . Status project is te bepalen adhv de documentatie . Documentatie is up-ta-date en volledig . Documentatie is beschikbaar voor beoordeling en goedkeuring . Door goede documentatie kunnen personeelswisselingen opgevangen worden . Het systeem wordt gebouwd zoals het door de ontwerpers is bedacht . Het systeem zal voldoen aan de gebruikers wensen. Voordelen SDM: . Grotere systemen en projecten waarbij de functionele eisen geen onzekerheden geven . Per fase verplicht documentatie opgebouwd . Strakke fasering legt discipline op Nadelen SDM: . Organisatie aspecten komen niet expliciet aan de orde . Strakke werkwijze kan leiden tot starheid en iní1exibiliteit . vVeinig inhoudelijke steun aan ontwerp technieken
DSDM: Dynamic Systems Development Method van IT projecten en volledig afhankelijk van leverancier, ontwerp methoden en ont\vikkelomgeving. Gebaseerd op iteratieve, incrementele opleverstrategie. Gebruikersgroepen managen de specificaties. Best gebruikt als oplevertermijn vaststaat en de op te leveren functionaliteit nog onvolledig gespecificeerd is. Visualiseerbare functionaliteiten als GUI's en rapporten. DSDM Kenmerken . Intensieve gebruikersparticipatie . Evolutionair prototypen Kwaliteit Snelheid 1Ylethode voor productieve en snelle realisatie
. .
DSDM Principes 1.
2. 3. 4. 5.
6. 7.
8. 9.
DSDM ].
2.
3.
4.
5.
Actieve betrokkenheid van gebruikers noodzakelijk DSDM teams moeten gemachtigd zijn besluiten te nemen Aanpak is gericht op frequent opleveren van producten Geschiktheid voor bedrijfsdoeleinden is essentieel voor acceptatie van de producten Iteratieve en incrementele ontwikkeling noodzakelijk om convergeren tot een juiste oplossing Alle wijzigingen kunnen tijdens het ontwikkelen teruggedraaid worden Eisen worden op hoog niveau vastgelegd Testen is geïntegreerd in de levenscyclus (alle fasen) Samemverkende en coöperatieve houding van alle belanghebbenden ontwikkelfasen Toepasbaarheidsonderzoek(haalbaarheidsonderzoekJ Schatting tijd en middelen; is DSDl'vl juiste ontwikkelmethode?; kunnen voorwaarden om succesvol te zijn. worden ingevuld? Bedrijfsanalyse (bedrijfsonderzoekJ
Gebruikergroepen; bedrijfsprocessen; informatiebehoefte; technische basis, inrichting teams; definitie incrementele opdeling systeem; prioritering; beschrijving systeem architectuur; globale prototyping plan Functioneel Model Iteratie (FMI) Bepalen wat de applicatie moet gaan doen; uitwerken functionele en informatie"eisen; ICT specialisten en gebruikers komen samen tot gewenste oplossing (facilitated workshops) Ontwerp en Bouw Iteratie (OBI) Bepalen hoe de applicatie het moet. gaan doen waarbij de geprioriteerde lijst met niet functionele eisen samen met een goedgekeurd functioneel prototype leiden zijn. Prioritel'ing obb l\loSCo\ì\r (must, should, couJd, won't) Werkend systeem wordt opgeleverd. Implementatie afgeronde documentatie; opgeleide gebruikers; formeel geaccepteerd systeem; evaluatie
6
MAD: Modelbased Application Development Tijdens de analyse wordt een procesmodel van de activiteiten en de informatiebehoefte van en organisatie mbv een gegevensmodel opgesteld. Is vorm van RAD, maar de nadruk ligt meer op modelleren waarbij systemen vanuit een 'modelmatige gepopuleercle repository' gegenereerd moeten kunnen worden. J?X:Q.çg,ßmodel:toont de beclrijfsactiviteiten en hun informatie uitwisseling GeueY.9J2.$_model: beschrijft de gerelateerde informatiebehoefte in termen van entiteiten en hun relaties en de geleden wetmatigheden.(bijv met ERD diagram) Proces MAD: Tijdens de specificatie fase wordt van het informatiemodel een relationeel gegevensmodel afgeleid Cinterne schema) Dat model wordt aan een repository based applìcatiegenerator aangeboden. Hieruit wordt de eerste systeemversie gegenereerd. Vervolgens volgt en proces van protoyping en detaillering van de specificaties. Dool' het tonen en bespreken van de gegenereerde systeemversies woerden reeds bekende informatieregels gevalideerd en de ontbrekende regels gespecificeerd. De nieuwe specificaties worden aan de applicatiegenerator aangeboden waarop er een nieuwe systeemvel'sie wordt gegenereerd. GebruikersDarticipatie in analysefase (bedrijfsmodelleren) en specificatiefase (systeemmodelleren) Repositorv based aJmhcatie!Zenerator: TooI die op basis van een relationeel gegevens model generieke functionaliteit genereert.(onderhouden navigatiefuncties) De overige systeemfunctionaliteit wordt middels regels gespecificeerd die aan het gegevensmodel worden toegevoegd. UP: lJniJïed Proces
Iteratief en iucrementeel ontwikkelproces gebaseerd op Object Oriented Model, met basis UML. Op te delen in Ontwikkelfase (richt zich op één of meerdere werkprocessen) en WerkDrocessen. Workflow UP Business Modeling creëren bedrijfsmodel Requirements Capture" specificaties systeem a. Analysis & Design analyse systeemspecificaties en systeemontwerp) 4. Implementation' implementatiemodel testen en valideren tegen de systeemspecificaties gebaseerd op het testmodel 5. Test Deployment 6. invoeren en executeren vh systeem P_E1L\Y.QxJcflow\vord t:.~Q1lg~st:eld: . Welke producten opgeleverd (artefact) . Welke medewerkers (wor kers) . Hoe samenwerking 1.
-
2.
-
-
-
Ontwikkelfasen UP I. 2.
Inception fase (haalbaarheidsonderzoek) Afkadering project; doelstellingen project bepalen; kennis en visie projeetteam optimaliseren Elaboration fase (analyse & ontwerp) Specificaties en archìtectuur bepalen; detaillering; projectplan; analyse software architectuur; l'isicoanalyse
3.
4.
Construction fase (implementatie & test) ontwikkeling; test; middels iteraties project uitwerken; constante evaluatie dool' gebruikersgroep; Oplevering incrementele versie Transition fase (invoering)
Fouten oplossen en functionaliteit toevoegen (upgl'ades) totdat systeem opgeleverd kan worden aan gebruikf'l'sorganisatie. Deze fase eindigt als er een nieuwe inception fase gestart wordt. Top-down: Globaal in hoofdlijnen en dan detailleren. lYlodulaire opbouw. Methode: SDlYl. Strucured Analyses and Design Decompositie: Kleinere functionele delen uitgesplitst. iVadelen: Vooral in het begin stadium belangrijke beslissingen nemen. Gebruikersbehoeften zijn veranderlijk daardoor ontbreekt stabiele basis Bottum-up: Vanuit detail worden hoofdlijnen bepaald. Inventarisatie elementaire gegevens en die structureren tot gegevensverzameling. i.Vadeel: Lastig overzicht houden om tot samenhangend geheel te komen Middle out: Het stabiele Bedl'ijfsmodel als uitgangspunt. Als de kern gebouwd, wordt daar rond een nieuwe laag gebouwd waarin aan de gebruikersbehoeften voldaan wordt.
7
Procesmodel Gnformatiemodel): Toont informatiestroom door het systeem Gegevensverwerkende activiteiten (proces en functie) \vorden vastgelegd in activiteitenmodellen, functiemodellen. DFD (dataflow diagram) Techmek: Contextdiag-ram: Toont het systeem als enkel systeemproces verbonden met externe objecten die een interactie hebben met het systeem. Vanuit dit diagram wordt het systeem opgesplitst in subsystemen. Proces: Processen transformeren invoer tot uitvoer. (mag gelijktijdig uitgevoerd worden) Cirkel óf rechthoek/vierkant met afgeronde hoeken WeeJgave: Gegevensstroom: Verplaatsing van een groep of hoeveelheid gegevens óf fysieke zaken van het ene deel naar het andere deel van het systeem. Pijlen fYeel'ga ve:
Datastroom verlaat het systeem. (eindstation) Rechthoek Gebruikt om gegevensverzamelingen die aangelegd zijn aan te geven.(opslagplaats) Gegevens over gegevens. Metagegevens van alle processen, datastromen, elementaire gegevens ed vastgelegd om te voorkomen dat dubbele naamgeving tot spraakverwarring leidt. Structuurkaart (structure chart): Geeft aan hoe functies worden opgedeeld in deelfuncties (functionele decompositie) (boomstructuur, netwerkstructuur) Procesgerichte aanpak Ontwikkeld door Yourdon en Constantine: mn als processen in systeem stabiel zíjn. (registratiesysteem, signaleringsysteem functiegerichte aanpak zoals voorraadsysteem) 1. Bepaal DFD Bepaal DFD lagere niveaus 2. Terminator:
Weergave: Datastore: MetagcEfcvens: Data dictionarv:
3. 4. 5.
Leid de structuurkaart af Bepaal per proces het algoritme Bepaal welke gegevens pel' proces nodig zijn voor invoer en welke worden opgeleverd als uitvoer.
*
6.
St.ap 4 & t) leveren per proces een
IPO op: input proce;.;sing-output
schema
Bepaal pel' gegeven de naam, betekenis, type, door welke processen als input/output
gebruikt
(data dictionary) 7.
Het geheel levert het systeem op
Gegevensmodel (datamodeú: Datagerichte aanpak waarbij gegevens centraal staan en de gewenste acties volgen uit de structuur van de gegevens. Globaal te onderscheiden in 3 lagen: l.Logische gegevensmodel (conceptuele schema): Alle entiteiten (gegevens) die voor een organisatie van belang zijn inclusief hun onderlinge samenhang (relaties) worden eenduidig beschreven. (beveIliging, aantal gebrUikers gewenste l'espol1stij'áen) Techniek Entity Relationship Diagram (ERD) 2.Beschriivim:
van de gegevensopslag (interne schema): Beschrijving fysieke opslagstructuur van de gegevens.
In
de databank worden actuele gegevens opgeslagen en onderhouden door het Database Management Systeem (DBMS) Bouwer vertaald het logische schema in technische specificaties: omzetten logisch model de
naar
fysieke opslagstructuul') 3.Beschl'iiving- van het g-ebruik van de gegevens (externe schema) Filter: Beschrijving om de mogelijkheid om de gewenste en gedefinieerde toegang tav gegevens uit het logische gegevensmodel te realiseren. (ook wel user view, sub schema en logical record genoemd)
Technisch uitgevoerd door database administrator DBA en beoordeeld en beheerd door gegevensbeheerder. GebrUIk Database applicaties waar het opvragen van informatie en analyseren ervan een belangrijk aspect is.
Attributen: Kenmerken van gegevens
8
GedragsmodeI: Wanneer activiteiten onder welke condities en welke activiteiten door de processen moeten worden uitgevoerd met als doel inzicht verkrijgen in het dynamisch gedrag van het te modeleren systeem. Aspecten dynamisch gedrag: 1. Control flow Controlerenende of sturende stroom Interacties 2. Gebruikers, processen,deelsystemen Volgorde van activiteiten 3. Interacties en contl'olflow bepalen mede volgorde activiteiten 4-. Periodiciteit" l\1et interval uitgevoerde processen 5. gvent driven Proces of functie wordt pas uitgevoerd als er een bepaalde gebeurtenis plaatsvindt Data driven 6. Functie wordt uitgevoerd als el' data wordt aangeboden -
-
-
-
-
Techniek: Sequence diagram, Event diagram, Toestandsdiagram, structured taal. Gedragsmodel kan beschreven worden adhv Toestand, Conditie, Gebeurtenis door een eventlist met toestanden te maken of van begin naar eindtoestand te werken. Dialoog model zijn de scenario's en dialogen met externe entiteiten. Gebruik: Real-time systemen
Object Georiënteerd model: Systeem bestaat uit samenwerkende objecten., alle views van het systeem zullen een gelijkwaardige manier zijn te analyseren en modeleren. (functie, gegevens en gedrag) Door betere aanpasbaarheid en onder houdbaarheid is 00 beter geschikt voor incrementele en evolutionaire
op
ontwikkeling. Domein: Omgeving, realístisch of abstract, waarin zich een verzameling objecten bevind die zich volgends bepaalde kenmerken en gedrag onderscheiden. Obiect: Bestaan uit data of attributen (toestand) Instantie van klasse, Attribuut: Interne variabele waarin dat is opgeslagen. Verzameling operaties of methoden die ander objecten kunnen aanroepen om iets met het object te doen. Nlethoden: Voert operaties uit van een object als een ander object daarom vraagt. Gedragsbepalend voor object. Soort procedures die toegang hebben tot de interne variabelen van een object. lVlethoden kunnen ook weer methoden aanroepen Mesae-e passim( Aanroepen van een methode van een object gebeurt door versturen bericht naar dat object. Klasse: Vastleggen welke interne variabelen een object van die klasse kent en welke methoden er zijn en hoe die geïmplementeerd zijn. (structuur en operaties) Voordeel inkapseling: Zolang de interface van extern zichtbare methoden hetzelfde blijft, de
kan
implementatie
en representatie van een klasse aangepast worden zonder dat andere delen in het systeem hinder ervan ondervinden. Code re"use: Hergebruik \vordt makkelijker door generalisatie, specialisatie overerving en inkapseling. Class librarv: Bibliotheken van klassen 00 ontwikkelome.evinEren: Visual Basic, Delphi en C++Builder. Iteratief ontwikkelen:ln korte tijd worden objecten van het systeem ontwikkeld
Lineair model: Activiteiten per ontwikkelfase na elkaar uitgevoerd waarbij geen terugkoppeling plaatsvindt naar de voorgaande fase. (eenvoudige projecten)
Watervalmodel: Fasemodel: fase voor fase vindt verder detaillering van beoogde systeem plaats. Voordat nieuwe fase ingegaan wordt, moet de oude afgesloten zijn. Gehele systeem wordt in een keer opgeleverd. Lastig als wensen veranderen, omdat dit ontwikkelproces dat niet kan bijhouden. Evolutionair model: Ontwikkeling in een serie van incrementen; iteratief Jncrem~rLteel: afzonderlijk bruikbare eenheid van het beoogde systeem met alles wat erbij hoort (documentatie, specificaties) !)ite-angsmunt: Groei en verandering kunnen niet gescheiden worden van de onhvikkeling. Allg.~re ben~{imine-en: Iteratìve APplicationQevelopment óf Rapid A,pplication J2evelopment Ontwik,kelmethode: DSDM: Dynamic Systems Development Method met als kenmerk: intensieve
gebruikersparticipatie, evolutionair, kwaliteit, snelheid, gebaseerd op iteratieve, incrementele opleverstrategie.
9
Prototyping: denkwijze waarbij de aandacht zich richt op de aanpak van het snel creëren van werkende systemen in een vroeg stadium van het ontwikkelingstraject, omdat el' geen eenduidige volledige en consistente functionele specificatie verkregen is. Centraal staat efficiency van het ontwerpproces en het snel achterhalen van eisen en wensen tav het te ontwikkelen systeem en een sterke interactie met gebruikers.
10
Producten van fasen in de systeemontwikkeling
15%
Bedrijfsmodel (business architectuur): gaat in
op de problematiek en probleemgebied binnen een organisatie en geeft in die zin, context aan voor het te ontwikkelen systeem. Verschaft kennis omtrent:
Informatiebehoefte Functionele eisen Omgevingseisen (gedrag)
. . .
Prestatie eisen(performance) Organisatorische randvoorwaarden
.
.
Informatiesysteemmodel: beschrijving van wat er gerealiseerd moet worden: Welke gegevens .
vVelke processen en functies zijn nodig
.
Welke interactie Invulling randvoorwaarden
. .
Implementatiemodel: op welke manier wordt het systeem technisch gerealiseerd en met welke middelen Informatiesysteem kan gemodelleerd worden op basis van _
_
_
_
_
_
_
nu _n _
_
_
_
n__ _. _._"
_
1.
Functies & processen 2. Gegevens 3. Gedrag
_~~" _..
\Velke functies of processen worden door het systeem uitgevoerd bij de verwerking van de gegevens(informatie)
Data Flow Diagram (DFD): Schematechniek voor
processen, datastromen en dataopslag teneinde een eenduidige en overzichtelijke voorstelling te geven van de eisen die aan het wat en hoe van een informatiesysteem worden gesteld, l\fet name gebruikt om gegevensverwerkende systemen en hele organisaties te modelleren. Komt met name voor in de analysefase en de ontwerpfase.
Componenten DFD: . Dataflow: gegevensstroom
.
die het ene component verbind met het andere.
0
D
.
Processen: verwerking of transformatie van de inkomende dataflow naar de uitgaande dataflow.
.
Datastore: opslagplaats voor gegevens van waaruit gelezen, geschreven en gewijzigd kan worden.
.
Terminator: Externe bron c/o bestemming van een dataflow. Vallen buiten het kader van het informatiesysteem
Processpecificaties
0
DI
[]
(P'spec): Detaillering proces op laagste niveau. Beschrijving van wat de transformatie tussen de invoer en uitvoerstroom inhoudt. Onderdeel van functionele specs. (wat gaat het proces met de gegevens doen?) P.spec vormt samen met DFD diagrammen één van de producten van een functioneel ontwerp. .Maakt deel uit van informatiesysteem model domein. Beschriivine in 1. Beslissingstabel 2. Toestandsdiagram 3. Gestructureerd NL of ENG. Eisen: . Exact en eenduidig
Overzichtelijk Functioneel . Controleerbaar . Leesbaar voor ontwikkelaar én gebruiker Data Dictionary: Beschrijving structuur en betekenis Programma specificatie: Opdrachten en acties die door een computerprogramma uitgevoerd. Programma: instructiebeschrijving van wat de computer moet doen. .
.
11
dienen te worden
Programmastructuur (programmaspecificatie): beschrijft
de structuur van het programma en geeft de oplossen het het formulering voor probleem(wat vraag) Kan worden vastgelegd door: van (PSD) . Programma structuur diagrammen . Programma stroom schema's (PSS of Flow charts)
. Pseudo-code (gestructureerde taal in procedure vorm) Coderen: adhv programmaspecificaties een programma schrijven: vertalen van de specificaties in een programmeertaal die door een computer kan \vorden uitgevoerd. Resultaat;::;:source programma Compileren: vertaalslag van de source-code(bron-code) in machine-codeCinterne-code). Resultaat;::;:object programma Compiler: Programma dat compileert. Functies: L Controle of de source-code voldoet aan de regels van de gebruikte programmeertaal (syntax"controle) 2. Vertalen van het souree programma naar de interne code. Linken: Proces om een executable programma te verkrijgen van een of meer objectprogramma's door het koppelen van alle objectprogramma's en libraries. Interpreter: Extra laag boven de hardware en besturingsprogramma van de computer. Interpreteert de regels van het source programma zodat deze zonder compiler meteen kan worden uitgevoerd Virtual machine: Sourceprogramma wordt vertaald naar de interne code van de virtual machine die op zijn beurt weer de interne code van de computer hardware uitvoert. .._.._.._..........._._u....._ beschrijving van de gegevens en de relatie tussen die gegevens. Veel gebruikte techniek is entity relationship diagram (ERD). Informatie behoefte in het. bedrijfsmodel domein wordt geanalyseerd en dient als uitgangspunt voor de gegevensanalyse. beschrijving Gegevensmodel: van het conceptuele schema waarna het interne of databasemodel wordt bepaald. InformatiemodeI: de relatie tussen de entiteittypen bedrijfsfuncties wordt weergegeven. Entity relationship model (ER"model) geeft aan: . Welke entiteiten zijn er . vVelke l'elationship bestaat er tussen entiteittypen . Welke attributen bezitten de entiteittypen en relationships Entìteit: individueel voorkomen; objecten uit de werkelijkheid Entiteittypen: beschrijving entiteit Relatìonshìp: verband tussen objecten Relationshiptype: beschrijving relationship Attribuut: individueel voorkomen; voor het object relevante kenmerken Attribuuttype: beschrijving attribuut (bv artikel omschriJving of prijs)
Gegevensmodel: Nadere analyse van de entiteittypen. (WAT) Volgordelijke uitvoering actìviteiten om tot gegevens model te komen: 1. Entiteitanalyse (object analyse) Bepalen van de relatie tussen de entiteittypen en hun attributen Bepalen van de contraints (rules en beperkingen) 4. Redundantie controle Interactieanalyse: Analyse hoe en op welke manier gaan processen met elkaar om en hoe de gegevens het beste opgeslagen kunnen worden. Opslagstructuur is afhankelijk van de vorm en organisatie van de gegevensbestanden en de database, De fysieke structuur bepaalt de keuze voor het opslagmedium. Doel Interactieanalvse: goede afstemming en integratie van de twee modellen en de zekerheid verkrijgen of de modellen volledig en juist zijn. Databasemodel (HOE:) Het databasemodel maakt deel uit van het implementatiemodel domein. Database(gegevensbank): hoeveelheid met elkaar verband houdende gegevens en de definitie van die gegevens en hun onderlinge relatie. Databaseschema: Vertalen van het gegevensmodel naar een implementatie. Intensie: definit.it.: van de onderdelen van de database Extensie: waarden van de database Database management systeem (DBMS): componenten voor systeemprogrammatuur voor de toepassing van de acties op de gegevens zoals die beschreven zijn in het intern en externe schema. Data manipulation language (DML): taal voor DBMS 2.
8.
12
Data description language (DDL): de gegevens in de databaseschema's worden hiermee beschreven. Karakter van programmeertaal waarbij de gegevens van het externe. conceptuele en interne schema worden gespecificeerd. .n_________________."_._~_~ww
Bepahng dynamische aspecten vh systeem, interactie met andere systemen en gebruikers.
Doel dialoog: bepaalde handelingen (transactie) te verrichten om een taak te kunnen uitvoeren; Informatie uitwisseling tussen gebruikers. Taakanalyse: Afstemming met gebruiker; Specificeert dialoogstructuur. gebruikt worden. Fasen nodig voor ontwikkeling dialoog: 1. Transactie analyse Cinteractie met gebruiker) Aspecten: . Taken van de gebruiker . Werkwijze .
Hierbij kan prototyping goed
Systeemfunctie
Esien en wensen vd gebruiker Type gebruiker 2. Dialoogbeschrijving mbv State Tl'ansition Diagram(STD) wordt beschreven welke berichten en in welke samenhang worden uitgewisseld tussen het systeem en de gebruiker. Gericht op functioneel gedrag en maakt deel uit van Functioneel Ont\verp. 3. User interface (GUI-graphical user interface) Beschrijving hoe de transactie berichten en dialogen geïmplementeerd worden bv scherm lay-out, invoervelden, formaat en menu's. GUl is verantwoordelijk voor het presenteren en invoer van gegevens en dus niet voor de verwerking van de applicatie. GUl heeft 2 verantwoordelijkheden: 1. De user interface laag presenteert informatie aan de gebruiker (View verantwoordelijkheid) 2. De user interface laag geeft gebruikersinvoer door aan de onderliggende applicatie lagen, (Controller verantwoordelijkheid) Responsetijden zijn in een gedistribueerde architectuur bepalend voor een succesvolle user interface. . .
._-+~-~~+-+--------~
Object georienteerde
~,-~,-~-~,-_.--~ Re uirements Statisch gedrag
modellering
-~-~- ---~-~-----~Interactie van het systeem_._~,~--~~---~~~~,~-~--,_. met externe entiteiten. blackbox
Use-case dia ram
Class diagram
Object diagram
--
Dynamisch
gedrag
Sequence diagram
v
Collaboration diagram~
State diagram
Activity diagram
~---~-~-_.
Implementatie
1.
Statische structuur van de entÍteiten vh systeem als klassen en hun relaties. Statische structuur van de entiteiten vh systeem als ob'ecten en hun relaties, Events of messa ges in volorde van tijd tussen de entiteiten
---~--~---~-Component diagram Deployment diagram
h systeem,
Interactie tussen objecten om bepaalde service of transactie uit te voeren. Toestanden, events en acties waarin een object zich kan bevinden gedurende zijn bestaan. Actîviteien die door een deel vh systeem worden uitgevoerd. Interne Dow van de afhandleing van een bepaald event of rocessin van 4s:~p~~!~~!~"~~1-2iE_!l~E!.!l.~en object. Softwarecomponenten vh system en de relaties ertussen, Softwarecomponenten za Is ze gebuikt worden in een bepaalde systeemconfiguratie.
Domeinmodel (Hoe ziet de business eruit?) Beschrijft de aspecten uit de werkelijkheid waarin het systeem moet gaan werken. Een domeinmodel bestaat alleen uit domeinklassen.Let op: alleen de omgeving waarin het opereert niet de aspecten. Welke relaties hebben objecten met elkaar.
13
2.
Applicatiemodel (Wat moet het systeem doen binnen het model?) Volgt uit het domeinmodel waarin naast de dorneinaspecten, de gebruikersinteractie met het systeem wordt beschreven. De statische structuur en het dynamische gedrag vh systeem worden beschreven door het klassediagram en het sequencediagram, state diagram en activitydiagram.
Applicatieklassen: Alle klassen die de hele applicatie representeren voor de gebruiker. De applícatie waar de gebruiker mee gaat werken is een instantie van alle applicatieklassen.
00
kent geen strikte scheiding in ontv>'ikkelingsfasen.
Requirementfase:Bepalen functionele systeemeisen met als uitgangspunt het externe gedrag vh systeem gezien vanuit de gebruiker, waarbij externe aetors entiteiten zijn die buiten het systeem vallen. Analysefase: Gebruikmakend van de domeinklassen worden de systeemeisen aan het model toegevoegd en dynamische aspecten in sequence diagrammen afgebeeld. Domeinexperts en systeemontwikkelaar dienen allebei te onderschrijven dat het model klopt met de
werkelijkheid. Ontwerpfase: Alle niet-functionele eisen zoals performance, netwerk, hardware, databases, komen aan de orde. Consistentie tussen diagrammen wordt bewaakt om alle informatie wordt teruggebracht naar het klassendiagram. Dit is het klassendiagram dat de volledige specificatie van alle klassen (objecten) die worden geïmplementeerd in de volgende fase.
Implementatiemodel (Hoe gaan we het systeem implementeren?) Complete implementatie van het systeem. Implementatieklassen: Allen voor de specifieke implementatie vh systeem en bevatten geen informatie over het applîcatiedomein. Utilityklassen: benodigd voor general services zoals datum en printen. 3.
00 en traditioneel: bij 00 zien we object die we in het domeinmodel zien ook weer in het implementatiernodel. Omdat de modellen van elkaar zijn afgeleid is het makkelijker terug of vooruit te gaan. Verschil
Gedrag
FUflcUes
Hednjfi;müdid
om
Sllf-diJUL'lm lliHI3JJGlie
jmf1m!1
fRD~
diagram
dwnHIfi
IntIHlriittiINf;!j!{!l11niitlld
ûegeVUfls.
Di!tklÜq
diaqtmn
DFD-diafjlarn P':;rWG
dnmrnD
PSS
ì'ol:rn'!{'tld,'il F,jlr it,,:'hu:c'ki'f! hJ/If!I';'f
Sj,'~;tÜ+,jfi ârttiilU(;fuUI
D<1ta!J1t:,p(mH]el
PS!)
!iliph!mHl1t;11wI!Hldnl
E[~D'lhi1qJam l~nm;nptlJ{jf!1
Ujj$í(1I~Z;:'i
iiichilectutH
D(JL'~GlHH1I:1'~;
lüchnisdïè
SlII
dfCIJi1ndutIJ
i,'I'1 i"f'It),fI'lfJI('IIf<.hJcl
14
De informatieanalist
is de
brug tussen de systeembouwers en de klant.
DFD- data flow diagram: Techniek waarmee een (dee!)systeem wordt beschreven. 1.1 Functiegerichte benadering systeemonderzoek, maar ook wel gegevensgerichte benadering Decompositie: Onderverdelen van (dee])systemen in subsystemen. DFD geeft geen antwoord op procedurele vragen. DFD hoort altijd geleverd met een beschrijving van proces, stromen en opslagplaats. Richtliinen opstellen DFD: de processen zodat verwijzen makkelijker is. Kies betekenisvolle benamingen en pas op voor afkortingen en zelfgemaakte woorden en termen. Eindproduct moet duidelijk, overzichtelijk en verzorg zijn Vermijd overtollige complexiteit Controleer interne consistentie en consistentie met gerelateerde DFD's. Gegevensstromen die een proces op een bepaald niveau ion. en uitstromen moeten overeenkomen met de gegevensstromen die een niveau lager de hele DFD van dat proces in" en uitstromen.
Nummer
. . . .
.
Componenten DFD, . Dataflow: gegevensstroom die het ene component verbind met het andere. Overdracht van gegevens of fysieke zaken. DiY~.rg'eren: kopieën van getransporteerde gegevensstromen naar verschillende plaatsen. Convere:eren/Aggregeren: verschillende gegevensstromen samenvoegen. .
.
.
Processen: gegevensverwerkend, fysieke transformatieprocessen of combinatie van beiden. Processen transformeren. dus er zijn altijd invoerstromen én uitvoerstromen.
00
...
10
Datastore: opslagplaats voor gegevens van waaruit gelezen, geschreven en gewijzigd kan worden. Stromen vanuit een opslagplaats zijn meestalleesactiviteiten. Het verlaten van gegevens uit en veranderen van gegevens in een datastore vereist een proces.
o
D
Terminator: Externe bron e/o bestemming van een dataflow. Valt bUlten het te modeleren informatiesysteem. Ligt buiten het domein van veranderingen. Relaties tussen eindstations zijn niet relevant voor het te modelleren systeem en worden daarom niet in DFD in kaart. gebracht. op allerhoogste niveau en bestaat uit 1 proces. (interfaces tussen het systeem en de externe eindstations) niveau 0: Direct onder contextdiagram. De belangrijkste functies vh systeem. Eerste nummering van elk proces. lste niveau van decompositie: Decompositie van niveau 0
Contextdiagram: DFD
DFD DFD
Beschrijft op het laagste niveau in gestructureerde taal wat de transformatie tussen de invoer en uitvoerstromen inhoudt.. (onderdeel vd functionele specs) Opstellen van de proces specs op het laagste DFD niveau is de laatste stap van het functionele ontwerpproces. Processpecificaties:
1.2
RQ.gels gestructureerde . . .
taaI:
Sequentie: opeenvolging van acties Selectie: keuze van acties onder bepaalde voorwaarden Iteratie: herhaling van acties
15
Ei9nrL9l?B.1tlIC,n proces SDecs: . Exact & eenduidig .
. . .
1.3
Overzìchtelìjk Functioneel Controleerbaar Leesbaar voor systeemontwikkelaar én gebruiker. Programmastructuur
Eisen DrOgramma: . Foutloos . Onderhoudbaar . Uitbreidbaal' . Leesbaar
Structure chart: .
Beschrijft (sub)functies van elk deel vh systeem
.
Geef relaties tussen de modulen van een programma
.
Boomstructuur met bovenaan de root module
Elke module is verantwoordelijk voor een specifieke functie Programma stroom schema (PSS): schematechniek om de flow van een programma te visualiseren. .
Programmastructuurdiagram
(PSD): Opeenvolging van acties of opdrachten. Keuzestructuur: true/false. Iteratie zolang truc. [bijvoorbeeld: Nassi SchneidermannJ
Entity Relationship Diagram (ERD)
2.1 . . .
Welke entiteiten \Nelke relationships tussen entiteiten vVelke attributen bezitten entiteiten en relationships
Entiteittypen: Beschrijving
CJ
object uit de werkelijkheid.
Descriptìon én hoe objecten te identificeren.
Relationshiptype: Beschrijving verband tussen objecten.
Attribuuttype:
Beschrijving voor het object relevante kenmerken.
Samengestelde attribuuttypen:(tegenovergestelde van Atomic
~
o
enkelvoudige attribuuttypen)
@
Sleutelattribuut: attribuut dat de entiteit uniek aanwijst. Naam onderstrepen in de cirkel. EI' hoeft niet perse een relatie tussen de entiteittypen te zijn.
Optionaliteit:
(Occurance vd activiteit is niet verplicht) \Veergegeven door O. Hecursieve relatie: Relatie heeft betrekking op entiteiten van 1 entiteittype. SubtypeAlle entiteiten hebben een gemeenschappelijke set van attributen die behoren tot het supertype. Disjunctie: Een entiteit behoort wel aan het ene attribuut, maar niet aan het andere. Classificerend attribuut: onderscheid t.e kunnen maken ERD kent geen foreign keys, die moeten dus zelf op de goede plaats gedefinieerd worden.
1ó
Kardinaliteit: hoeveelheden
í:.
Lfi ':IJ~H !;IC\U:.;i
ri.1t! Fiir'1i1iH
1:1 koppeling~1 klant heeft I
factuur én I factuur behoort aan I klant I:n koppeling ~I klant heeft I afmeer facturen én I afmeer facturen horen aan I klant. I:m koppeling ~I klant heeft I of meer facturen én een factuur kan behoren aan I of meer klanten. Optionaliteit: Er hoeft niet perse een relatie tussen de entiteittypen te zijn. (Occurance vd activiteit is niet verplicht) Weergegeven door O. Recursieve relatie: Relatie heeft betrekking op entiteiten van I entiteittype. Subtype: Alle entiteiten hebben een gemeenschappelijke set van attributen die behoren tot het supertype, Disjunctie: Een entiteit behoort wel aan het ene attribuut, maar niet aan het andere. Classificerend attribuut: onderscheid te kunnen maken bij sidjunctie. ERD kent geen foreign keys. die moeten dus zelf op de goede plaats gedefinieerd worden. 2.2
Relationeel model: Gegevensbank waarin de gegevens in de vorm van relaties/tabellen
worden gepresenteerd.
Relatie
Object: Ding of persoon waarvan gegevens binnen een model worden beschreven. [bijvoorbeeld: KLANT] Attribuut (kolom): Beschrijving van object Attribuuttype: Definieert het soort kenmerk van en verzameling objecten die tot 1 relatie behoren. Attribuutwaarde: De inhoud van de attributen. [bijvoorbeeJd: Harreman bij het attribuut NAA.11J Domein: Begrenst het bereik van de gegevens van een attribuut en geeft aan welke waarden mogen voorkomen. (toegestane waarden voor een attribuut) Entiteit (tupels/rijen):Gegevens van elk object worden opgenomen als één entiteit van de voor dit type object gecreëerde relatie. Daadwerkelijke waarden die een object binnen de relatie beschrijven. bij tupels Populatie: Alle elkaar.
Sleutels: Unieke identificatie. Attribuuttype die een regel uniek maakt. Kandidaat sleutel: Combinatie van attribuutt.ypen die een regel uniek maken. (Minimale sleutel) Primaire sleutel' Uit de kandidaat sleutels wordt er één gekozen die dienst doet als sleutel voor de tupel. Alternatieve sleutel: De niet gebruikte kandidaat sleutels Vreemde Sleutel (foreign key): Eenzelfde gegeven in relaterende tabellen op nemen teneinde samenhang tussen de relaties te creëren.
Constraints: Voorwaarde waaraan de waarden in de tabel moeten voldoen.
17
Data Dictionary/ Directory System (DD/DS):
2.3
Centrale opslagplaats (database of repository) van diverse metagegevens inclusief onderlinge relaties die bij het totstandkomen in instandhouden van een informatiesysteem een rol spelen. Notatìe middels basisstructuren: . . . .
Sequentie: opeenvolging van elementen Herhaling: herhaling van elekmenten Selectie: keuze uit verzameling elementen Optionaliteit: optioneel element
3.1 Dialoogontwerp:
mbv state transistion diagram (STD) wordt aangegeven welke bericbten en in welke samenhang worden uitgewisseld tussen het systeem en de gebruiker, waarbij de gebruiker
de afloop vh transactie proces stuurt en beïnvloed. Toestand: Toestand waarin het systeem zich bevindt. (meestal de wachttoestand) Conditie: Onder welke voorwaarden moet er iets gebeuren? Toestanclsovergang ~ Gevolg=Actie Gebeurtenis: Event dat systeem doet reageren. Actie: starten van de dialoog valt buiten het schema van de desbetreffende dialoog.
3.2 Dialoogvormen: lVlenuselectie, icons, puU"down menu, pop~up menu, vraag&antwoord. invulformulier, querytaal, commando/opdrachttaal. natuurlijke taal of een combinatie van voornoemde. AsnE;ctel1.QJ}twerncn
dialoog-:
.
Taken vd gebruiker
.
\Verkwijze Systeemfunctie Eisen en wensen vd gebruiker Type gebruiker
. . .
4.1 Klassediagram: toont statische structuur vd entiteiten vh systeem als klassen en hun relaties. Associatie: Structurele relatie tussen 2 klassen. Link: Instantie van een associatie tussen 2 objecten. Rol: Object kan in verschillende associaties verschíllende rollen spelen J\!lultinliciteit: Geeft het aantal mstanties vd geassocieerde klasse aan waarmee 1 instantie vd klassen een link kan hebben. Ùssociatieklasse: associatie gedefinieerd als een klasse. Wordt gebruikt als: 1. de associatie attributen heeft 2. de associatie operaties heeft 3. associaties met andere klassen heeft. Polvmorfism~ biedt systeem grote flexibiliteit en aanpasbaarheid. Aggregatie: gebruikt om complexiteit van een klasse te reduceren door deze op te delen in kleinere stukken. komrutel"muis'keyboard-modem] Notatie: witte ruit aan de kant vh hele object. Comnositie: stel'kere vorm van aggregatie; deelobject kan niet zelfstandig bestaan. Notatie: zwarte ruit aan de kant vh hele object. Verschil klasse" en object diagram: Objectdiagram is een instantie van het klasse diagram op een bepaald tijdstip vh systeem.
4.2 Objectdiagram: toont statische structuur van de entiteiten vh systeem als objecten en hun relaties, 4.3 Use~case diagram: interactie van het systeem met externe entíteiten vanuit gebruiker gezien. [blackboxl Actor: entiteit die buiten het systeem valt {Jswcase: Beschrijving vanuit de gebruik van een reeks handelingen tussen 1 of meer actoren en het systeem. Interactie: start na actie naar het systeem van de acto!'
4.4 Colllaboration diagram: toont de interactie tussen de objecten om een bepaalde service of transactie uit te voeren (in volgorde). [samenwerking objecten}
18
ges in volgorde van tijd tussen de entiteiten vh systeem. [gedrag tussen de objecten]
4.5 Sequence diagram: toont events of messa
Aspecten boodschappen: 1. asynchroon: zender hoeft niet te wachten 2. conditioneel boodschap wordt alleen gestuurd als voldaan wordt aan voorwaarde. 3. iteratie: boodschap meerdere keren sturen Actìev~g!oiecten: versturen zelf boodschappen [bijvoorbeeld timer object]
4.6 State diagram: toont de toestanden, events en acties waarin een object zich kan bevinden gedurende zijn bestaan. BeÚnpunt: zwarte gevulde cirkel Eindpunt: zwart gevulde cirkel met een cirkel eromheen Zelftransitie: gebogen lijn naar zichzelf Actie wordt altijd uitgevoerd en kan niet worden onderbroken: schuine streep I achter het event. Stuurt de actie een boodschap naar ander obìect dan weergegeven met een ^ voor de naam vd actie. Activiteit: dol activiteitsnaam Entry & Exit actie: entryl & exit! Guard: conditie voordat event mag plaatsvinden. [eindpunt] 4.7 Activity diagram [variant state diagram]: toont de activiteiten die door een deel vh systeem worden uitgevoerd. Interne processing van de afhandeling van een event, de processing vd operaties binnen een object of bedrijfsprocessen. Qontrol flow: volgorde van activiteiten middels pijl van activiteit naar activiteit. Branch/Decision: ruit STJlitsing en Synchronisatie: fork
4.8 Component diagram: toont software componenten(executeerbare eenheid) vh systeem en de relaties tussen de componenten. Node: computer re sou ree 4.9 Deploymentdiagram:toont softwarecomponenten zoals ze run time gebruikt worden in een bepaalde systeemconfiguratie. (zinvol bij gedistribueerde systemen) Afhankeliìkheidl'elatie: onderbroken lijn Communicat.iepaden: Nodes zijn verbonden middels communicatiepaden doorgetrokken lijn
19
Testen [volgens ISO]: activiteiten die uitgevoerd worden om een of meer kenmerken van een product, proces of dienst vast te stellen volgens een gespecificeerde procedure.
Testen [volgens TMap]: een proces van plannen, voorbereiden, uitvoeren en beoordelen dat tot doel heeft de kenmerken van een informatiesysteem vast te stellen en het verschil tussen de actuele en de vereiste status aan te tonen.
Testen geeft inzicht in het verschil tussen de actuele werkelijke situatie en de gewenste situatie van het testobject. Testen maak deel uit van het kwaliteitssysteem in een organisatie. Andere onderdelen kwaliteitssysteem: reviewing, inspectie, auditing, keuring, desk checking, walkthrough. Toetsen (verificatie): Inspecteren van de tussenproducten en ontwikkelprocessen. Testen (validatie): Proces van inspecteren van de eindproducten. (toetsen vd requirements op testbaarheid) Succesfactor testpl'oces: Gedegen visie omtrent kwaliteit en voldoende investering in de organisatie, mensen en middelen. Voordelen Testvroces: . . . .
.
Beheersbaar, controleerbaarheid en inzichtelijk Producten vh testproces zijn herbruikbaar Fouten worden in vroeg stadium gevonden Fouten worden voorkomen Inzicht in de kwaliteit vh systeem en de eventuele daaruit voorvloeiende
Kwaliteit
[iso]
risico's voor de rest
vh project.
:
het geheel van eigenschappen en kenmerken van een product of dienst dat van belang is voor het voldoen aan vastgestelde of vanzelfsprekende behoeften.
Quality Assurance [iso]: kwaliteitsborging omvat het geheel van alle geplande en systematische acties nodig om in voldoende mate het vertrouwen te geven dat een product. of dienst voldoet aan de gestelde kwaliteitseisen. Doel GA [voorkomen; detectie; correctie]: 1. Indicatoren vd kwaliteit vd processen: meetpunten in ontwikkelproces aanbrengen l\ledc\verkers moeten weten aan welke eisen het werk moet voldoen 2. Een onafhankelijke partij moet de producten e(o diensten kunnen toetsten 3. t1. Gebreken in de (deeÜproducten c/o diensten moeten door het management getraceerd zodat deze in de toekomst voorkomen kunnen worden.
Testvormen: Dynamisch expliciet: Systeem/programma wordt opgestart en men kijkt of het doet wat men ervan verwacht. Dynamisch impliciet:Analyse gegevens dynamisch testen met doel inzicht krijgen over de prestaties en gedrag vh systeem. ~æD1and clvnamisch imúlíciet: telefooncentrale zwaar he]asten met eaU laad] Ivoorbeeld ol1i:moland dvnamisch imúIieiet: gebruikers die klagen over traag systeem] [voorbeeld] Statisch: controleren
[voorbeeld
Hardware, systeemsoftware en netwerkinfrastructuur Organisatorische voorzieningen Systeemdocumentatie .
Invoering vh systeem
Kwaliteitsattributen [iso]: . Functionaliteit .
Betrou\il.'baarheid
.
Bruikbaarheid Efficiëntie Onder houdbaarheid
. . .
Portabiliteit.
20
Testvormen: 1.
2. 3.
Stresstest Hersteltest(recoverytest)
4.
Productie test Functionaliteittest
5.
Regressietest
6. Interfacetest 7. Referentie schaduwdraaien 8. Middelengebruik 9. Standaards 10. Beveiliging II. Handmatige ondersteuning 12. Controles
V~modeI: gestructureerd
testen Basis acceptatie testset' tijdens het bepalen vd requirements zal er reeds de testbaarheid bepaald moeten worden. Systeem testset: tijdens het functionele ontwerp en technisch ontwerp zal bepaald moeten worden wat de testaet zal zijn om later de systeem testen te kunnen uitvoeren.
Testsoorten:
Whitebox test: gebaseerd op de programmastructuur zoals die in het TO is gedefinieerd. Expliciet gekeken naar de interne structuur van programma's. Progl'ammatest op te delen in l.Unit 2.Module 3.Progl'amma Ontwikkelaar voert in ontwikkeldomein of laboratorium alle denkbare testpaden uit (+documentatieU
Blackbox test: Gekeken naar het systeem zoals het gebruikt zal worden en gebaseerd
op functionele
specificaties
vh kwaliteitssysteem. Programma~ en integratietest: Uitgevoerd door de systeemontwikkelaars op de programmatuur en er wordt gecontroleerd of de programma's volgens het technisch ontwerp zijn gecodeerd en aan deze eisen voldoet. [voorbeeld: coveragetest; unittestJ
Systeemtest: Uitgevoerd door en onder verantwoordelijkheid van de systeemontwikkelingsafdeling en gericht op het ontdekken van fouten het oplossen ervan. Start na de programma- en integratietest. [voorbeeJd: stresstest; performance test: recovery test]
Acceptatietest
IblackboxJ:
door de opdrachtgever beoordeeld of het ontwikkelde systeem voldoet aan de functionaliteit en de prestatie eisen zoals ide in het FO en in de definitiestudìe zijn vastgelegd. Uitgevoerd na de systeem test. Betrouwbaarheid: veiligheid; gebruiksvriendelijkheid. Te beoordelen zaken: L Voldoet het programma/systeem aan de functionele specs? 2. Is de gebruikershandleiding volledig, begrijpelijk en in overeenstemming met de programmatuur en het systeem? 3. Is het informatiesysteem in de praktijk bruikbaar? Productie acceptatietest [onderdeel acceptatietestJ: technisch beheerders testen de specifieke exploitatie eisen.
Integratietest: als alle programma delen van voldoende kwaliteit zijn, worden de verschillende onderdelen samengevoegd en worden de integratietests uitgevoerd waarbij de interfaces van de verschillende programma's getest worden.
21
TMap (Test Management APproach):gestructureerd 1.
2. 3. 4.
testproces opgebouwd uit de volgende fasen: gerelateerde is van de testactiviteiten: [centrale pijler1: ""elke testactiviteiten moeten wanneer door wie uitgevoerd worden en welke technieken en hulpmiddelen dienen gebruikt te worden? [zie verder bij t.estfasering) Organisatorische inbedding: Wie is bij het testen in welke rol betrokken en hoe kan het volledige testproces beheerst worden. Taken & verantwoordelijkheden. Organisatie binnen testteam. Infrastructuur en taals: faciliteiten en middelen die nodig zijn om adequaat te testen. Invulling testomgeving. Juiste testtoais. Technieken voor de uitvoering van de activiteiten: technieken ter ondersteuning vd testactiviteiten.
Faserina- die aan de ontwikkelingscyclus
Testfasering: 1. Planning & beheer: Product =Testplan dat de leidraad voor het testproject vormt. opdrachtfol'illulering globale intake en studie
1.1
1.2
vaststellen testbasis bepalen strategie inrichten organisatie inrichten testproducten definiëren infrastructuur inrichten beheer bepalen planning fixeren testplan onderhoud testplan uitvoeren beheer
1.3 1.4 1.5 1.6 1.7
1.8 1.9
1.10 1.11 1.12 1.13
rapporteren
1.14
bepalen detailplanning
Voorbereiding: opleiden test-engineers en bekijken beschikbare documentatie en specificatie. Detailmtakegesprek Definiëren testeenheden 2.2 Toe\vijzen testtechnieken 2.3
2.
2.1
2.4
3. 3.1
3.2 3.3 3.4 3.5 4. 4.1 .1.2
4.3 4.4 '-1.5
5.
Specificeren infrastructuur
Specificatie: Product =Testdraaiboek. logische 7 fYsieke testgevallen, specs testhulpmiddelen, ingerichte testomgeving, geïnstalleerde testhulpmiddelen. opstellen testspees definiëren uitgangsbestanden opstellen testscripts opstellen test draaiboek specificeren intake testobject/infrastructuur
Uitvoering [kritieke pad] Product
over kwaliteit informatiesysteem, risico's bij in productie nemen, testbestanden. testincidenten.
::;;Advies
intake infrastructuur/testobject vullen uitgangsbestanden uitvoeren (herJtests controleren en beoordelen testresultaten onderhouden testdraaiboek
Afronding: Product::;;Geselecteerde
en geïndexeerde testgevallen, geactualiseerd testdraaiboek. test testbestanden, eva uia tie does
erval'ingscijfers,
5.] 5.2 5.3 5.4
evalueren testobject evalueren testproces opstellen evaluatierapport conserveren testware
5.5
decharge testteam
22
Geautomatiseerde hulpstukken
10%
Case tools: Computer Aided Software Engineering Toekomst beeld: integrated case: Vanaf het begin wordt de computer ingeschakeld en als alles goed gedefinieerd is ingevoerd, produceert de computer de benodigde broncode voor het te vervaardigen programma. (tijdwinst door ondersteuning en controle consistentie)
IPSE (Integrated Project Support Environment): wanneer een aantal
case taals is geïntegreerd
binnen één
ontwikkelsysteem. Belangriikste tools/workbenches binnen IPSE: IWB Onformation Planning vVorkbench): Bepalen welke informatie waar nodig is AWB (Analist \Vorkbench): vanuit de probleemspecificatie en informatieplanning gaat de analist na wat er precies wordt gevraagd op een wijze die bruikbaar is voor de ontwerpfase VAW (Visible Analyst Workbench): zowel data',proces' en objectmodellen kunnen worden gemaakt DWB (Designer Workbench): Op basis van de analyse documentatie wordt het systeemontwerp gemaakt. [bijvoorbeeld: Borland TogethcrJ
PWB (Programmer Vlorkbench): programmeeromgevÌng die de programmeur ondersteunt in
coderen,
bouwen en testen. [bijvoorbeeld: Delphi, C++builder, Visual Basic] PMW(Project Management Workbench): planning en voortgangsbewaking vh te ontwikkelen systeem wordt ondersteund door IPSE,
Repositary (dictionary of encyclopedia):
Kern ontwikkelomgeving. Alle gegevens die tijdens het ontwikkelproces ontstaan worden hierin vastgelegd. Tevens is hier bekend welke taals en workbenches gebruik maken van welke ontwerp gegevens. Status van verschillende ontwikkelwerkzaamheclen. TooI interface: Tolk tussen tools en de dictionary. Faciliteiten die geleverd worden: . Diagrameditor: Opbouwen, wijzigen en opslaan van diagrammen en schema's. . Tekstverwerker: toevoegen van tekst. . RapportengeneratOl< opstellen en genereren van rapportages. . GUl-editor: maken van scherm lay-outs, menu's, dialoogstructuur ed . Prototypingfacilìteiten: ondersteuning prototyoping activiteiten voor m.n. dialogen en user interfaces. . Consistentieanalyse:schema's en diagrammen op consistentie toetsen. . Generatoren: maakt afgeleiden. . Beheerfaciliteiten: helpt de ontwikkelaar de stappen in het ontwikkelproces te volgen .
Navigator
User interface: de laag tussen het IPSE systeem en de ontwikkelaar.. Zorgt ervoor dat verschillende tools op een soortgelijke manier te gebruiken zijn. IDE Ontegrated Development Environment): ontwikkelomgeving waar de ontwikkelaar kan programmeren, testen, compileren. linken ed Door met UI\fL te programmeren bestaat eer een mogelijkheid om andere programmeertalen te genereren. Scheiding van specifïcatie en implementatie. Code genereren verbeterd de productiviteiL
CAST (Computer Aided Software Testing): Testingtaols verkorten het arbeidsintensieve testtrajecL Opsomming van beschikbare testtools gerangschikt naar toepassing en testplatvorm. ICAST (Integrated Computer Aided Software Testing): taols die ondersteuning bieden aan het testmanagement proces, testontwerp en testuitvoering [prematuur stadium]
De meeste testtools richten zich op testuitvoeringsfase en planning & beheerfase. Voor Whitebox testen zijn meer tools beschikbaar dan voor blackbox testen. Doel testtoaIs: L Uitvoeren van testen Testplanning voortgangsbewaking, beheer van testdata, coverage analysers en rapportage tools. 2.
Primaire te8ttools: tools voor testontwerp, record en playback
23
Tools bil testuitvoering Testdata generator: Genereren testgegevens zoals bestanden, invoergegevens, databasegegevens Debugger: [whiteboxtoolJ Fouten in het programma opsporen Record & Playback: Testsessie opnemen en afspelen Load & Stress: Belasting op diverse manieren. Lc.m. testbeoordelingstool kunnen resultaten worden bekeken. Simulator: live situatie nabootsen Stubs en Drivers: Stub vervangt een deel van een programma dat nog niet beschikbaar is. Driver doet omgekeerde. bij compilers) Statische analysetools: Source code programmatuur analyseren. (vaak geleverd
Toals bil testbeoordeling Comparator: Testreslutaten automatisch vergelijken met een eerder resultaat Testcoverage: Meten in hoeverre het testobject dool' testcases is bedekt. Query: Middels querytaal testgegevens opvragen, rangschikken, ordenen.ed test] Monitoring: bekijken en bewaken van de testsessie [vaak icm load&stress Taols bil averÚre fasen
(CVS), ClearCase TeamSource en a. Beheer vd programmatuur: Concurrent Version Systems Code Management Systems (eMS)
tools b. Documentatie: Lotus Domino en andere document workflow
24