SPU UML note. Systematisk Program- Udvikling med UML. Finn Overgaard Hansen

Størrelse: px
Starte visningen fra side:

Download "SPU UML note. Systematisk Program- Udvikling med UML. Finn Overgaard Hansen"

Transkript

1 SPU UML note Systematisk Program- Udvikling med UML Finn Overgaard Hansen Elektro- og IKT-afdelingen Finn Overgaard Hansen, august 2003

2 Versionshistorie Versionsnr. Dato Initialer Versionen omfatter FOH Første version kapitel 5 er pt. foreløbigt, idet der her planlægges med mere info. Forord Denne opdatering af SPU håndbogen er alene udarbejdet af undertegnede medforfatter til håndbogen og er således min egen udgave og fortolkning af en opdatering af SPU håndbogen. Denne opdatering er udført med speciel fokus på relationen mellem SPU og UML. I forfatterkredsen har vi gennem tiden talt om en evt. opdatering, men da dette er et kæmpearbejde og da de øvrige medforfattere til SPU håndbogen i dag alle arbejder i forskellige firmaer og organisationer, har dette ikke været praktisk gennemførligt. Da SPU håndbogen anvendes i forbindelse med semesterprojekter på Ingeniørhøjskolen i Århus og man her anvender UML i undervisningen fra første semester er der her et behov for en sådan opdateringsnote. Denne note vil udelukkende blive publiceret via min hjemmeside på Ingeniørhøjskolen i Århus til brug for studerende og lærere samt andre der måtte have interesse i SPU og i denne UML relaterede opdatering ( Århus, august Finn Overgaard Hansen, Ingeniørhøjskolen i Århus Ver , Ingeniørhøjskolen i Århus 1

3 Indholdsfortegnelse 1 Introduktion Formål Baggrund for SPU UML og objektorienteret udvikling Læsevejledning Opdatering af SPU vejledninger i relation til UML Vejledning i struktureret programudvikling (SPU) Vejledning i kravspecifikation Vejledning i design Vejledning i softwaretest Vejledning i review Vejledning i projektstyring Vejledning i programdokumentation Vejledning i konfigurationsstyring Vejledning i Systematisk Program-Udvikling opdateret mht. UML Hvad er systematisk programudvikling (SPU-UML)? Anvendelse af SPU-UML modellen i et produktudviklingsforløb SPU-UML udviklingsmodellen Spiralmodel (S-Model) Udviklingsmodel (U-model) Testmodel (V-model) Leverancemodel (W-model) Udviklingsaktiviteter Kravspecifikation Systemanalyse Objektanalyse Arkitekturdesign Mekanistisk design Detaljeret design Kodning Unittest SW-integrationstest Systemintegrationstest Accepttest Vejledning i kravspecifikation opdateret mht. Use Cases Use Case teknikken Basal Use Case notation Udvidet Use Case notation Beskrivelse af en Use Case Indhold af kravspecifikation i relation til Use Cases Vejledning i design opdateret mht. UML Sammenhæng mellem SPU og SPU-UML terminologi Arkitekturdesign (design af et system eller produkt) Mekanistisk design (design af et program eller proces) Detaljeret design (design af en klasse) En letvægts SPU-UML designmetode Referencer...29 Ver , Ingeniørhøjskolen i Århus 1

4 1 Introduktion 1.1 Formål Formålet med denne note er at opdatere Håndbog i Struktureret ProgramUdvikling (SPU) [SPU88] specielt i relation til anvendelsen af UML (Unified Modeling Language) [UML2003] i forbindelse med objektorienteret softwareudvikling. 1.2 Baggrund for SPU SPU konceptet blev udviklet i 1985/86 i forbindelse med gennemførelse af et teknologirådsstøttet projekt. Formålet med projektet var at forbedre softwareudviklingen i danske virksomheder specielt indenfor teknisk programudvikling, der typisk omhandlede udvikling af software til apparater. Projektet bestod i at udvikle konceptet samt udvikling af et tilhørende kursusforløb, der på fem dage simulerede et udviklingsforløb, hvor der blev udviklet dele af et patientovervågningssystem. Efter afholdelse af utallige firmakurser og plankurser dels på Teknologisk Institut og dels på Delta (det daværende Elektronikcentralen) blev der i 1987/88 gennemført endnu et teknologirådsstøttet projekt, hvis resultat medførte en bearbejdning af konceptet og kursusmaterialet til i SPU håndbogen, der blev udgivet på Teknisk Forlag i Rationalet for udvikling af SPU konceptet var følgende: - det skulle være operationelt og dermed let at anvende - det skulle kunne anvendes på såvel mindre som større projekter - det var målrettet mod teknisk programudvikling - det omhandlede udelukkende softwareudviklingen - det skulle være metodeuafhængigt Eksemplerne fra den gennemgående case på det tilhørende kursus blev valgt til eksemplerne i håndbogen. Nogle af disse eksempler blev baseret på metoden struktureret analyse og design af realtidssystemer (Ward&Mellor), der var den mest udbredte metode til denne type systemer på det tidspunkt SPU håndbogen blev udarbejdet. Disse eksempler ville i dag typisk blive udarbejdet vha. objektorienterede metoder og dokumenteret med UML notationen. Da hovedparten af SPU håndbogen omhandler eviggyldige Software Engineering principper vil denne note forsøge at give en opdatering af håndbogen med specifik fokus på anvendelsen af UML i en objektorienteret udviklingsproces. Noten vil i øvrigt dels beskrive baggrunden og intentionen med SPU konceptet samt give svar på nogle af de spørgsmål og kommentarer jeg har fået i årenes løb. Vedrørende den oprindelige titel SPU Struktureret programudvikling så har det senere ærgret mig og de øvrige forfattere, at vi ikke fik kaldt bogen og konceptet for SPU Systematisk Program Udvikling da det var denne betydning af ordet struktureret vi oprindelig mente og ikke som det senere er blevet fortolket som værende synonym med de strukturerede metoder og dermed i modsætning til de senere objektorienterede metoder. Disse strukturerede metoder var fremhersekende i 80 erne og står i dag i skyggen af de nyere objektorienterede metoder, der blev udviklet i 90 erne (f.eks. OMT metoden fra 1993, der senere i 1997 blev en hovedbestanddel af UML notationen). Ver , Ingeniørhøjskolen i Århus 2

5 Jeg vil derfor i denne note redefinere forkortelsen SPU til at stå for Systematisk Program- Udvikling. 1.3 UML og objektorienteret udvikling UML står for Unified Modeling Language, der er navnet på en OMG standard ( for objektorienteret udvikling. OMG (Object Management Group) er en sammenslutning af ca. 800 virksomheder. UML blev udgivet version 1.1 i nov og er i 2003 udkommet i version 2.0 [UML2003]. UML anvendes i dag verden over som beskrivelsesværktøj i forbindelse med SW udviklingsprojekter. UML understøttes af et stort antal værktøjer, der kaldes for CASE værktøjer (Computer Aided Software Engineering). UML er et sæt af objektorienterede begreber med tilhørende grafiske notation, der indgår i et forskellige typer af diagrammer. UML er derimod ikke en udviklingsmetode eller en udviklingsproces. Indenfor objektorienteret udvikling skelner man mellem objektbaseret og objektorienteret udvikling. Objektbaseret udvikling er den delmængde af objektorienteret udvikling, der også kan implementeres vha. et ikke objektorienteret programmeringssprog som f.eks. C og assembler. Objekt baseret udvikling kan naturligvis også implementeres i objektorienterede programmeringssprog som f.eks. C++, Java og C#. Objektorienteret udvikling tilføjer begreber som generalisering/specialisering (nedarvning) og polymorfi. Det modulbegreb der præsenteres i SPU håndbogen svarer til klassebegrebet i den objektbaserede og objektorienterede udvikling. 1.4 Læsevejledning Kapitel 2 giver en kort overordnet beskrivelse af de ændringer og opdateringer til de 8 SPU vejledninger, der berøres af UML. I de efterfølgende tre kapitler behandles de tre vejledninger, der i væsentlig omfang påvirkes af UML. Det er hhv. vejledning i struktureret programudvikling, vejledning i kravspecifikation og vejledning i design. Informationen i denne note er udelukkende tænkt som et supplement til vejledningerne i SPU bogen og ikke som en erstatning af disse. Ønsker man en baggrundsbeskrivelse for SPU konceptet samt en perspektivering så findes denne i afsnit 1.2. Ver , Ingeniørhøjskolen i Århus 3

6 2 Opdatering af SPU vejledninger i relation til UML Dette kapitel vil kort opsummere ændringerne i de enkelte SPU vejledninger. For de første tre vejledningers vedkommende behandles opdateringerne i relation til UML i hvert sit kapitel. 2.1 Vejledning i struktureret programudvikling (SPU) Opdateringer til denne vejledning behandles i kapitel 3. Opdateringerne vedrører primært anvendelsen af en iterativ udviklingsmodel ved udvikling af systemer, hvori der indgår software. 2.2 Vejledning i kravspecifikation Opdateringer til denne vejledning behandles i kapitel 4. Opdateringerne vedrører primært anvendelsen af Use Case teknikken til at finde og beskrive de funktionelle krav med. Use Case notationen indgår som en del af UML. 2.3 Vejledning i design Opdateringer til denne vejledning behandles i kapitel 5. Opdateringerne vedrører anvendelse af en objektorienteret designmetode baseret på UML notationen ved designarbejdet og en redefinering af designaktiviteterne. 2.4 Vejledning i softwaretest SPU vejledningen i software test baserer sig på den anerkendte V-model for test, der fokuserer på tidlig testplanlægning før den egentlige testudførelse. Vejledningen omhandler fire testtyper: modultest, modulintegrationstest, procesintegration og accepttest. I forbindelse med objektorienteret udvikling kaldes modultesten ofte for unittest eller klassetest. Ved objektorienteret udvikling er unit- eller klassetesten, den mindste testenhed, hvor klassens operationer og attributter testes. Det giver ikke mening at teste de enkelte operationer alene, da de fungerer i klassens kontekst og er fælles om klassens attributter. Vejledningen omhandler primært testprocessen og testdokumentation og en generel introduktion til test. Ved test af objektorienterede systemer bør den derfor suppleres med teori, der omhandler test af objektorienterede systemer. I forbindelse med udviklingsprocessen XP (extreme Programming) lægges der meget vægt på unittesten, hvor man skriver testprogrammet til en klasse før man skriver koden for selve klassen. Dette er ud over parprogrammering (dvs. to sammen) et at hovedelementerne i XP. Ver , Ingeniørhøjskolen i Århus 4

7 2.5 Vejledning i review Denne vejledning indeholder en god og kort introduktion til review teknikken, der stadig er den ene teknik, der har de største kvalitetsforbedrende virkninger og den største effekt i forhold til indsatsen. Denne vejledning vil ikke på nogen måde være påvirket af UML, men det vil være UML baseret dokumentation man reviewer. Review teknikken er mindst ligeså vigtig i en iterativ udviklingsproces som i den mere traditionelle vandfaldbaserede og dokumentbaserede udviklingsmodel. 2.6 Vejledning i projektstyring Denne vejledning indeholder eviggyldige sandheder og den præsenterede teori er således ikke direkte påvirket af UML notationen. Derimod vil anvendelsen af en iterativ udviklingsproces baseret på Use Case teknikken have indvirkning på projektstyringen. Dette skyldes at Use Case teknikken ud over at være en væsentlig teknik til at udtrykke de funktionelle krav med også kan anvendes til at definere iterationerne ud fra. Projektet planlægges således at hver iteration afsluttes med et kørende delsystem, der kan være enten en intern leverance eller en ekstern leverance. Da Use Cases beskriver funktionalitet som systemet udfører for brugerne er de netop meget anvendelige til definere disse delleveringer med. Hvor SPU Håndbogen baserer sig på en dokumentstyret udviklingsproces vil SPU-UML i større udstrækning basere sig på en iterativ og risikostyret udviklingsproces, der baser sig på kørende delsystemer eller prototyper, der udvikler sig til det endelige produkt eller system. Stephen Biering-Sørensen, der er medforfatter til SPU Håndbogen, har i øvrigt en ny bog på vej om IT projektledelse, der supplerer og uddyber denne vejledning med den nyeste viden på området [Biering2003]. 2.7 Vejledning i programdokumentation Denne vejledning beskriver SPU reglen Dokumenter undervejs, der siger at dokumentation af softwaren er en løbende proces i en moderne udviklingsproces. Dette er endnu vigtigere i en udviklingsproces, der baserer sig på iterationer, hvor næste iteration anvender dokumentation fra den foregående iteration. Anvendelsen af UML som udviklingsnotation vil lette dokumentationsarbejde, da der nu eksisterer en standardnotation UML, der kan anvendes til at dokumentere softwaredesignet og med mulighed for også at vise den tilhørende hardware vha. UML deploymentdiagrammer. Det viste eksempel på en indholdsfortegnelse for en programdokumentation kan videreudvikles hen imod UML ved f.eks. at anvende ideerne fra 4+1 view modellen for dokumentation af softwarearkitektur [Krutchen85]. Ver , Ingeniørhøjskolen i Århus 5

8 2.8 Vejledning i konfigurationsstyring Denne vejleding giver en introduktion til konfigurations- og versionsstyring, der er en meget vigtig udviklingsaktivitet, specielt i de stadig større projekter der i dag igangsættes. Her vil anvendelsen af objektorienteret udvikling bevirke at de mindste kodeenheder man ønsker at dokumentere er klasser og ikke som tidligere enkeltfunktioner. UML har endvidere indført et pakkebegreb, der også vil lette administrationen af koden. Anvendelsen af UML vil derudover medføre et antal UML diagrammer og den tilhørende information. Denne dokumentation skal versions- og konfigurationsstyres. Her får man hjælp af CA- SE værktøjerne, der (næsten) alle har grænseflader til konfigurationsstyringsværktøjer. Ver , Ingeniørhøjskolen i Århus 6

9 3 Vejledning i Systematisk Program-Udvikling opdateret mht. UML Den største opdatering i håndbogens Vejledning i struktureret programudvikling vedrører en modifikation af SPU udviklingsmodellens således at den i SPU-UML udgaven beskriver en iterativ og Use Case baseret udviklingsmodel. 3.1 Hvad er systematisk programudvikling (SPU-UML)? SPU og SPU-UML konceptet består i al sin enkelhed i at anvende følgende 8 elementer i forbindelse med udvikling af systemer, hvori der indgår software: SPU-UML 1. Benyt en udviklingsmodel 2. Udarbejd en kravspecifikation 3. Design før kodning 4. Planlæg test 5. Anvend reviewteknikken 6. Foretag projektstyring 7. Dokumenter undervejs 8. Foretag konfigurationsstyring Figur 1. SPU-UML konceptets 8 elementer Disse otte punkter er udformet som eviggyldige sandheder, man ikke kommer uden om, hvis man vil gennemføre en succesfuld system- og softwareudvikling. Hvert af disse elementer er beskrevet i sin egen vejledning i SPU håndbogen. Dette var i øvrigt en af grundideerne bag udformning af SPU konceptet, at det skulle være et metodeuafhængigt koncept, dvs. en slags knagerække hvorpå, man efterfølgende kunne hænge konkrete metoder, teknikker og værktøjer til gennemførelse af de forskellige aktiviteter i konceptet. En sådan metode og teknik er objektorienteret udvikling med anvendelse af UML notationen. SPU-UML regel 1: Benyt en udviklingsmodel Her vil man typisk i forbindelse med objektorienteret udvikling i dag anvende en udviklingsmodel, der er baseret på gennemførelse af et antal iterationer, der planlægges og styres ud fra Use Cases, der er identificeret i forbindelse med kravspecifikationen. Man taler også her om en Use Case drevet udviklingsproces. SPU-UML regel 1 udtrykker at man skal anvende en udviklingsmodel men ikke, hvordan den præcist skal se ud. Ver , Ingeniørhøjskolen i Århus 7

10 Udviklingsmodellen i SPU var begrænset til udelukkende at omhandle softwareudviklingen i et projekt, hvilket af mange senere er ønsket udvidet til at omhandle den totale udvikling af et produkt, der både omfatter hardware- og softwareudvikling. SPU modellen er også af mange blevet læst som en vandfaldsmodel, hvad den da også ligner meget, men den var oprindelig tænkt også at kunne indgå i en iterativ udvikling, hvilket dog ikke fremgår specifikt nok i håndbogen. Dette vil denne note derfor belyse mere detaljeret. SPU-UML noten præsenterer en modificeret SPU-UML udviklingsmodel, der er en iterativ udviklingsmodel, der omfatter udvikling af komplette apparatsystemer med både hardware- og softwareudvikling. SPU-UML modellen er en Use Case drevet udviklingsmodel. SPU-UML regel 2: Udarbejd en kravspecifikation Før man går i gang med et hvilket som helst projekt bør der forelægge en form for kravspecifikation. I en iterativudviklingsmodel kan man dog også i nogle tilfælde iterere over udarbejdelsen af kravspecifikationen. I SPU-UML foreslås det at kravspecifikation udarbejdes vha. Use Case teknikken. Dette har vist sig at give bedre specifikationer, hvor specifikationen tager udgangspunkt i opfyldelse af funktioner, der er til gavn for systemets aktører og interessenter. Use casene anvendes i udviklingsforløbet til at definere iterationerne ud fra og dermed til at styre projektets leverancer. SPU-UML regel 3: Design før kodning Denne regel er ved at være almindelig anerkendt blandt de fleste professionelle softwareudviklere. SPU vejledningen præsenterer her nogle generelle og metodeuafhængige regler for designarbejdet. I SPU-UML anvendes der en objektorienteret metode som designmetode og designet udarbejdes og dokumenteres vha. UML notationen. SPU-UML regel 4: Planlæg test Denne regel omhandler V-modellen for test, hvor det fremgår at test skal planlægges sammen med den aktivitet, der senere i forløbet testes. Reglen er samtidig med til at sætte fokus på softwaretest, der længe har været en overset og undervurderet disciplin. Anvendelsen af Use cases til kravspecifikation letter den tilhørende accepttestplanlægning, da Use Casene netop udtrykker selvstændig funktionalitet, der er nyttige for f.eks. kunden og brugerne af systemet og derfor egner sig til at blive anvendt ved accepttesten. Ver , Ingeniørhøjskolen i Århus 8

11 SPU-UML regel 5: Anvend reviewteknikken Denne regel fokuserer på anvendelsen af reviews som kvalitetsforbedrende aktivitet i et moderne udviklingsprojekt. Dette er en metodeuafhængig teknik, der kan anvendes på alt skriftligt materiale. SPU-UML regel 6: Foretag projektstyring Denne regel sætter fokus på styrings og ledelsesaspektet af et softwareudviklingsprojekt, der er en særdeles vigtig aktivitet for at opnå succes i et projekt. SPU-UML regel 7: Dokumenter undervejs Reglen her sætter fokus på udarbejdelse af softwaredokumentationen for et projekt og præsenterer denne som en løbende proces. Her vil anvendelsen af UML lette dette arbejde idet der nu er en verdensstandard for at beskrive et objektorienteret design. SPU-UML regel 8: Foretag konfigurationsstyring Denne regel omhandler det at have styr på sine dokumenter og software og de versioner og konfigurationer denne indgår i. Dette er også en metodeuafhængig og meget vigtig aktivitet. Ver , Ingeniørhøjskolen i Århus 9

12 3.2 Anvendelse af SPU-UML modellen i et produktudviklingsforløb Figur 2 viser et typisk produktudviklingsforløb for et apparat eller system. Udviklingsforløbet starter med et foranalyse projekt (engelsk: feasibility study), der har til formål at afklare vigtige usikkerheder vedrørende projektets gennemførlighed. Dette foranlyseprojekt afsluttes med udarbejdelsen af en foranalyserapport, der f.eks. kan indeholde en foreløbig produktkravspecifikation. Forananalyserapporten vil typisk også indeholde analyse- og foreløbig designdokumentation, der kan udarbejdes vha. UML. Et andet typisk resultat er en prototype af det ønskede apparat eller system. Foranalyseprojektet danner udgangspunkt for en ledelsesbeslutning vedrørende igangsætning af et egentligt produktudviklingsprojekt. Vælger man at stoppe her så vil man typisk gemme resultaterne af foranalyseprojektet sammen med begrundelsen for ikke at gå videre. Ledelsesbeslutning Foranalyse projekt go Produktudviklings projekt No go For- Analyse rapport Prototype Gem foranalyse dokumentationen Figur 2. Et typisk produktudviklingsforløb En vigtig pointe er, at SPU-UML udviklingsmodellen kan anvendes både under foranalyseprojektet og under selve produktudviklingsprojektet. Det er en af de store fordele ved den objektorienterede fremgangsmåde og UML notationen at man vha. Nodes og klassebegrebet kan modellere såvel software- som hardwaredelen af et projekt. Der vil være forskel på fokus mellem foranlyse- og produktudviklingsprojektet, hvor man i foranalyseprojektet vil fokusere på at opgaven kan løses (engelsk: proof of concept) så vil man i produktudviklingsprojektet lægge mere vægt på et stabilt design samt en udførlig test og dokumentation. Der findes også produktudviklingsprojekter, der igangsættes ud fra et kort produktoplæg eller produktbeskrivelse. Her vil første aktivitet være at udarbejde en kravspecifikation for det ønskede produkt. Ver , Ingeniørhøjskolen i Århus 10

13 3.3 SPU-UML udviklingsmodellen Den modificerede SPU-UML udviklingsmodel er først og fremmest baseret på en iterativ udviklingsmodel, der drives ud fra et sæt definerede Use Cases. Use Case teknikken er omtalt i afsnit 4.1 i forbindelse med opdatering af vejledningen i kravspecifikation. SPU-UML modellen indeholder den traditionelle vandfaldsmodel som et specialtilfælde af en iterativ model, hvor der kun udføres én iteration. Hvor SPU udelukkende dækkede softwareudviklingsdelen af et projekt så dækker SPU-UML udviklingsmodellen den totale udvikling af produkter eller systemer dvs. både software- og hardwareudvikling. Figur 3 viser SPU-UML udviklingsmodellen beskrevet vha. fire perspektiver, der hver fokuserer på et bestemt aspekt af udviklingsmodellen. Disse fire perspektiver er bundet sammen af SPU- UML konceptets 8 elementer. For at lette referencen til disse perspektiver gives de hvert et kort modelnavn hhv. S-Model for spiralmodel, U-Model for udviklingsaktiviteter, W-model for leverancer og V-model for test. S-MODEL for styring U-MODEL for udviklingsaktiviteter Arkitekturdesign Analyse og kravspecifikation OO Analyse Krav- Specifikation Arkitektur design SW & HW implementering af X Use Case s System integrations test Accept test Use Case Model W-MODEL for leverancer 9 måneder SPU-UML konceptet L næste iteration V-MODEL for test Ekstern synlige leverancer Accepttest L L 4 måneder 3 måneder 2 måneder Kravspecifikation System integrationstest E E E E E SW & HW implementering af X Use Cases Figur 3. SPU-UML udviklingsmodellens perspektiver Ver , Ingeniørhøjskolen i Århus 11

14 3.3.1 Spiralmodel (S-model) Iterative udviklingsmodeller anskueliggøres ofte vha. en spiral, hvilket stammer fra Barry Boehms berømte spiralmodel [Boehm88]. Dette gælder også for udviklingsmodellen ROPES Rapid Object-oriented Process for Embedded Systems [Douglass99], der er en OO udgave af en spiralmodel, der er specielt beregnet til udvikling af indlejrede systemer. Spiral model Accepttest Start Use Cases ROPES Figur 4. S-model for styring (ROPES) Anvendelsen af en iterativ udviklingsmodel er vigtig af flere årsager. For det første kan en sådan model være med til at nedsætte risikoen, idet de mest risikobetonede dele af projektet udvikles tidligt, hvor der er tid til at ændre på kritiske faktorer og evt. stoppe projektet i tide, hvis det ikke kan realiseres. For det andet vil det synliggøre udviklingsforløbet, idet hvert iteration er baseret på et kørende delsystem, hvor alle aktiviteter i princippet er gennemført fra kravspecifikation over design til kodning og test. For det tredje vil anvendelsen af en sådan model operere med mange og korte lærercykler, der er specielt vigtige når man tager ny teknologi som f.eks. objektorienteret udvikling i anvendelse. Ver , Ingeniørhøjskolen i Århus 12

15 3.3.2 Udviklingsmodel (U-model) Figur 5 viser hvorledes de traditionelle udviklingsaktiviteter arbejder sammen med en Use Case model, der specificerer de Use Cases systemet er opdelt i. Figuren viser også hvorledes man i en næste iteration kan vende tilbage til en vilkårlig af de tidligere gennemførte aktiviteter inklusiv kravspecifikationen. Analyse og kravspecifikation OO Analyse Krav- Specifikation Arkitektur design SW & HW implementering af X Use Case s System integrations test Accept test Use Case Model næste iteration Figur 5. U-model for udviklingsaktiviteter Figur 6 viser hvorledes software- og hardwareudviklingen af den valgte iteration forløber parallelt efter gennemførelse af arkitekturdesignaktiviteten, hvorefter SW og HW integreres i systemintegrationstest aktiviteten. SW aktiviteterne er her benævnt som i ROPES modellen. SW implementering af X Use Cases Mekanistisk design Detaljeret design Kodning Unit test SW Integrations test HW implementering af X Use Cases Figur 6. Oversigt over SW & HW implementeringsaktiviteterne Ver , Ingeniørhøjskolen i Århus 13

16 3.3.3 Testmodel (V-model) I SPU-UML modellen er det vigtigt at bibeholde V-modellen for test, der giver en god illustration af forholdet mellem tidlig testforberedelse og de senere testudførelse. Figur 7 viser hvorledes denne model også kan anvendes i forbindelse med iterativ udvikling her gentages V et blot flere gange. næste iteration Accept-testspecifikation Udførelse af accepttest Kravspecifikation Accepttest Arkitektur-testspecifikation Test af arkitektur Arkitekturdesign System integrationstest SW & HW implementering af X Use Cases Figur 7. V-model for test Ver , Ingeniørhøjskolen i Århus 14

17 3.3.4 Leverancemodel (W-model) Figur 8 viser W-modellen for leverancer, der er en model over de interne evalueringer samt de interne og eksterne leverancer, der kan forekomme i en iterativ udviklingsmodel. Modellen er beskrevet af Alistair Cockburn [Cockburn-W]. Den mindste iteration består i gennemførelse af en V-model, der resulterer i en intern evaluering af et kørende delsystem. Efter et antal af disse kan man have en mere formel og synlig ekstern leverance, der f.eks. kan anvendes til pilottest og pilotforsøg med de rigtige brugere af systemet. Et antal af disse kan så kombineres til en officiel release af et produkt. 9 måneder L Ekstern synlige leverancer L L 4 måneder 3 måneder 2 måneder E E E E E Interne udviklings-iterationer og leverancer Kilde: A.Cockburn E Evaluering L Leverance Figur 8. W-model for leverancer I eksemplet på Figur 8 er der således 8 udviklingsiterationer, hvoraf de tre er ekstern synlige og hvoraf den af sidste af disse fører til en frigivelse af produktet. I dette ni måneders projekt er der således 8 vigtige milepæle at styre efter og vel at mærke milepæle, der demonstrer fremdrift både overfor ledelsen, kunderne og overfor udviklerne selv via kørende systemer eller delsystemer. Ver , Ingeniørhøjskolen i Århus 15

18 3.4 Udviklingsaktiviteter Figur 9 viser øverst udviklingsaktiviteterne i SPU-UML og nederst som de fremgår af SPU håndbogen. SPU-UML aktiviteterne er benævnt efter ROPES modellen. Som det fremgår af figuren er der i SPU-UML (ROPES) tilføjet OO analyse aktiviteter systemanalyse og objektanalyse. De viste SPU-UML aktiviteter beskrives kort i de følgende afsnit. OO Analyse System Objekt Analyse Analyse SPU-UML (ROPES) Arkitektur Design Mekanistisk Design Detaljeret Design Kodning Unit test System Kravspecifikation SW Integrationstest System Integrationstest Accept test SPU Programdesign SW Kravspecifikation Procesdesign Moduldesign Modulkodning Modultest Modulintegration Procesintegration Accept test Figur 9. Sammenhæng mellem SPU-UML og SPU aktiviteter Kravspecifikation I SPU-UML kan kravspecifikationen dække komplette systemer eller produkter dvs. både software og hardwaredelen af et system. Hvorimod SPU alene omhandlede en SW kravspecifikation. I begge tilfælde vil kan have glæde af at udarbejde en Use Case baseret kravspecifikation. Der er mange forskellige typer af udviklingsprojekter og udviklingssituationer, hvorfor den udviklingsmodel man anvender til det konkrete projekt, bør tage udgangspunkt i den aktuelle situation. Figur 10 viser f.eks. en udviklingssituation hvor der udarbejdes en komplet Use Case baseret kravspecifikation og evt. en domænemodel før der påbegyndes et iterativt udviklingsforløb, der defineres ud fra de specificerede Use Cases. Ver , Ingeniørhøjskolen i Århus 16

19 Domænemodellering Kravspecifikation med Use Cases Komplet kravspecifikation = aftale/kontraktgrundlag Iterativ og inkrementel udvikling og aflevering af et antal Use Cases næste iteration Kørende delsystem eller delprodukt Figur 10. Iterativ udvikling ud fra en komplet kravspecifikation Denne situation kan f.eks. være nyttig i forbindelse med anvendelse af underleverandører til et projekt, hvor kravspecifikationen vil være det formelle aftalegrundlag for definering af priser og tidsplaner. En anden situation, hvor denne model kan anvendes er de tilfælde, hvor kravene er forholdsvis velkendte, f.eks. fordi man tidligere har udviklet tilsvarende produkter eller systemer. Er der derimod tale om en komplet egenudvikling af et nyt og ukendt produkt så vil der være brug for at anvende en iterativ udviklingsmodel, der også itererer over kravspecifikationen, som vist på Figur 11. Domænemodellering Kravspecifikation med Use Cases Iterativ og inkrementel specifikation, udvikling og aflevering af et antal Use Cases næste iteration Kørende delsystem eller delprodukt Figur 11. Iterativ udvikling også over kravspecifikationen Det optimale vil være at projektgruppen sammen med ledelsen ved opstart af et projekt, fastlægger den konkrete udviklingsmodel og dermed definerer hvilke aktiviteter, der skal udføres i det konkrete projekt. Derved opnår man en situationsbestemt udviklingsmodel, der tager højde for projektets specifikke egenskaber. Ver , Ingeniørhøjskolen i Århus 17

20 Den viste domænemodellering består i at udarbejde et eller flere UML klassediagrammer, der beskriver domænets begreber som klasser og viser deres sammenhæng. For et hospitalssystem kan det f.eks. være begreber som patient, afdeling, diagnose. Figur 12 viser de aktiviteter der er relevante i forbindelse med specifikationsfasen af et projekt. Hovedproduktet er selve kravspecifikationen, der vil være baseret på anvendelse af Use Case teknikken. Parallelt med udarbejdelsen af denne kan man med fordel udarbejde en overordnet domænemodel, der vha. klasser beskriver de objekter, de findes i det aktuelle domæne og viser deres sammenhæng vha. et UML klassediagram. Dette er med til at definere systemets begreber, der så anvendes konsistent i forbindelse med beskrivelse af systemets Use Cases. Parallelt med kravspecifikationen påbegyndes udarbejdelse af en accepttestspecifikation ifølge V-model for test. Dette har den fordel at kravspecifikationen gøres testbart og dermed forbedres kvaliteten af denne. Udarbejd en Overordnet domænemodel Udarbejd en Use Case baseret Kravspecifikation Produktoplæg Kravspecifikation med Use Cases Review Udarbejd en Accepttest specifikation Accepttest specifikation ver. 0.x Review Udarbejd evt. en Prototype Prototype Figur 12. Specifikationsaktiviteter For nogle systemer vil det også på dette tidspunkt være meget nyttigt at udarbejde en prototype, det kan være over brugergrænsefladerne eller det kan være over indviklede algoritmer. Til højre på figuren ses de produkter, der er resultatet og hver af disse kan gøres genstand for et review. Specielt bør review af kravspecifikationen være obligatorisk, men det kan også være nyttigt at reviewe accepttestspecifikationen. For apparatudvikling kan skrivning af en brugervejledning på dette tidlige tidspunkt også være et nyttigt bidrag til at illustrere produktets funktionalitet. Ver , Ingeniørhøjskolen i Århus 18

21 3.4.2 Systemanalyse Systemanalyseaktiviteten i SPU-UML og ROPES omhandler udførelse af en objektorienteret analyse af et komplet system eller produkt, der både omfatter hardware og software. Aktiviteten udføres på baggrund af en kravspecifikation, der ligeledes er for hele systemet eller produktet. I de tilfælde, hvor det hovedsageligt er et softwareudviklingsprojekt til en standard hardwareplatform som f.eks. en PC så vil denne aktivitet falde ud. Systemet modelleres her vha. klassebegrebet i OO, der diagrammeres vha. UML s klassediagrammer. Hardwaredelen kan modelleres vha. UML s deploymentdiagrammer, der f.eks. kan vise den fysiske opdeling på processorer ligesom UML s klassediagrammer kan anvendes til at diagrammere hardwaren på blokdiagramniveau. For store og eller komplekse systemer kan man her på basis af systemanalysen udarbejde selvstændige software og hardware kravspecifikationer Objektanalyse Objektanalyseaktiviteten i SPU-UML og ROPES omhandler udførelse af en objektorienteret analyse af softwaredelen af projektet. Ud fra kravspecifikationen udarbejdes der her en teknologiuafhængig objektmodel af funktionaliteten uden hensyn til implementeringsteknologien, der tilføjes i de efterfølgende designaktiviteter Arkitekturdesign I SPU-UML og ROPES arkitekturdesignaktivitet fastlægges systemets arkitektur med input fra hhv. systemanalyse og objektanalyse aktiviteterne. Nu skal der vælges konkrete løsninger, der kan leve op til kravene i kravspecifikationen dvs. både de funktionelle krav beskrevet vha. Use Cases og de øvrige ikke funktionelle krav. I denne aktivitet fastlægges såvel hardware- som softwarearkitekturen. Her anvendes f.eks. UML s deployment-, komponent-, klasse-, tilstands- og sekvensdiagrammer. Ud fra objektanalysen opdeles softwaren i et antal parallelle processer eller task og deres proceskommunikationsform fastlægges Mekanistisk design Mekanistisk design i SPU-UML og ROPES omhandler design af samspillet mellem et antal klasser, der typisk vil indgå i en proces eller et task. Ved denne aktivitet vil man typisk anvende et eller flere designmønstre f.eks. GoF mønstrene [GoF94], der er veldokumenterede løsninger på designproblemer Detaljeret design Detaljeret design i SPU-UML og ROPES omhandler design af en enkelt klasses algoritmer og datastrukturer. Ønsker man at diagrammere algoritmen for en kompliceret operation kan man her anvende UML s aktivitesdiagrammer. Detaljeret design udføres kun for komplicerede klasser hvorimod simple klasser kodes direkte ud fra klassediagrammerne fra den mekanistiske design. Ver , Ingeniørhøjskolen i Århus 19

22 3.4.7 Kodning Her kodes de klasser, der er identificeret i de tidligere aktiviteter. Er der udført detaljeret design af klassen så omsættes denne til kode og der tilføjes f.eks. funktioner til oprettelse og nedlæggelse af objekterne (C++ constructor og desctructor) ligesom der tilføjes de konkrete datatyper for operationernes parametre og returtyper. Klassens attributter kodens vha. programmeringssprogets datatyper og vha. evt. klassebiblioteker. Klassens associationer til andre klasser kodes og der tilføjes de nødvendige operationer til at vedligeholde f.eks. mange til mange associationer Unittest Unittest i SPU-UML og ROPES består i test af klasser idet en unit er lig med en klasse. En klasse er den mindste enhed hvor det giver mening at udføre en selvstændig test. Ved test af klassen testes klassens operationer og deres samspil gennem klassens attributter. Er der tale om objektorienteret udvikling, hvor der anvendes nedarvning så skal man i testen af de specialiserede klasser tage passende hensyn til de klasser man nedarver fra. Da der kan være såvel meget simple klasser som meget komplicerede klasser vil det ikke give mening at have en udviklingsmetode, der siger at alle klasser skal testes. De simple klasser kan f.eks. testes i forbindelse med en integrationstest eller ved inspektion SW-integrationstest Her integreres og testes softwaren efter en fastlagt teststrategi, der er beskrevet i en testspecifikation. I denne aktivitet testes samspillet mellem de identificerede klasser. Det er her oplagt at teste de enkelte processer eller task hver for sig som sekventielle programmer, før de kobles sammen til et multiprogram bestående af flere processer Systemintegrationstest Her integreres og testes hele systemet dvs. både hardware og software delen af systemet. Dette gøres trinvist efter en fastlagt teststrategi, der er beskrevet i en testspecifikation. Systemintegrationstesten tester det arkitekturdesign, der er udarbejdet under arkitekturdesignaktiviteten Accepttest Accepttesten er den sluttest, der afslutter de iterationer, der har eksterne leverancer. Ved accepttesten demonstreres det, at det delsystem eller delprodukt der omhandles af accepttesten lever op til de krav, der er beskrevet i de Use Cases som accepttesten omhandler. Accepttesten kan derforuden også omhandle de ikke funktionelle krav i kravspecifikationen. Ver , Ingeniørhøjskolen i Århus 20

23 4 Vejledning i kravspecifikation opdateret mht. Use Cases SPU vejledningen i kravspecifikation er skrevet med udgangspunkt i IEEE-830, der er en standard for udarbejdelse af kravspecifikationer for software. Standarden indeholder en overordnet skabelon for en kravspecifikation med et sæt af forskellige forslag til hvorledes man kan beskrive de funktionelle krav. Den nyeste udgave af IEEE-830 (1999) indeholder desværre endnu ikke Use Cases som beskrivelsesmåde, men dette er bestemt er et spørgsmål om tid før det kommer med. I SPU-UML vil håndbogens kapitel 3.2 Hvordan formuleres kravene skulle suppleres med Use Case teknikken som her introduceres. Under kapitel 4. Indhold af kravspecifikationen vil afsnit 3. Specifikke krav blive erstattet med specifikationer af de enkelte Use Cases. 4.1 Use Case teknikken Use Case teknikken er en teknik og notation, der er integreret i UML og anvendes som teknik ved udarbejdelse af kravspecifikationer. Use Case teknikken anvendes udelukkende til at specificere de såkaldte funktionelle krav i kravspecifikationen. De øvrige ikke funktionelle krav specificeres på normal måde ved hjælp af tekst. Use Case teknikken kan derforuden anvendes i forbindelse med projektstyring samt som udgangspunkt for udarbejdelsen af analyse- og designmodeller. Use Case teknikken har vundet stor international anerkendelse og er også i Danmark med succes anvendt som specifikationsmetode i et stort antal projekter. Use Case teknikken er udviklet af svenskeren Ivar Jacobson og først beskrevet i bogen Object- Oriented Software Engineering A Use Case driven approach [Jacobson92]. Use Case teknikken kan opdeles i en basal Use Case notation og i en udvidet og mere avanceret notation, der her præsenteres i hvert sit underafsnit. Anbefalingen er her, at man starter med at anvende den basale Use Case notation og beskriver de funktionelle krav til systemet ved hjælp af denne notation. Derefter kan man overveje, om den udvidede notation vil give en bedre model af kravene og derfor kun anvende denne, hvis dette er tilfældet Basal Use Case notation Centrale begreber i Use Case teknikken er begreberne aktør og Use Case. En aktør kan enten være en person, et andet system eller en hardware enhed. En aktør er pr. definition udenfor det system, der skal udvikles, men er i samspil med systemet. En aktør beskriver således en grænseflade til det system, man udvikler. Til at navngive en personaktør anvendes de roller, personen har overfor systemet. Har en given person flere roller, så optræder hver rolle som en aktør. En aktør vises som en tændstiksfigur med aktørens navn påført under figuren. Alternativt kan man vælge at vise aktøren som en firkant med stereotypen «aktør». Ver , Ingeniørhøjskolen i Århus 21

24 «aktør» Aktør navn Aktør navn Figur 13. To alternative notationer for en aktør En Use Case beskriver en funktionalitet, der udføres af systemet for en given aktør. En god Use Case skal levere et målbart resultat til en given aktør eller til en kunde til systemet. En anden måde at udtrykke dette på er, at kunden, der køber systemet, vil betale for den funktionalitet, som Use Casen beskriver. En Use Case skal beskrive en samlet og afsluttet funktionalitet i forhold til en af systemets aktører. En Use Case vises på et Use Case diagram som en oval med navnet på Use Casen enten i eller under ovalen. Hver Use Case er forbundet til mindst én aktør. Eksempler på Use Cases for et patientovervågningssystem, hvor en aktør med navnet Sygeplejerske f.eks. kan udføre Use Casene: Indlæg Patient, Specificer overvågning og Udskriv patientrapport. Use Case 1 Aktør 1 Use Case 2 Aktør 2 Aktør 3 Figur 14. Use Case diagram For hver Use Case udarbejdes der en specifikation, der præcist specificerer Use Casens funktionalitet med en beskrivelse af normalforløbet og alle de undtagelser, der kan forekomme. I nogle tilfælde kan beskrivelsen være suppleret med forskellige diagrammer (f.eks. sekvens- eller tilstandsdiagrammer) Udvidet Use Case notation Er der fælles funktionalitet, der indgår i flere Use Cases, så beskrives denne funktionalitet for sig selv som en include Use Case, der er en slags hjælpe Use Case. Det har den store fordel, at man undgår gentagelser i specifikationen. Ver , Ingeniørhøjskolen i Århus 22

25 include Use Case 3 «include» «include» Use Case 1 Use Case 2 Aktør navn Figur 15. Use Case diagram med include En anden udvidelse til den basale notation beskrives vha. en extend Use Cases, der er en udvidelse til en eksisterende selvstændig Use Case. En extend Use Case kan beskrive enten komplekse fejlforløb eller optionale udvidelser, som alle kunder ikke ønsker, eller beskrive funktionalitet, der først ønskes i senere versioner af systemet. Aktør navn Use Case navn «extends» extend Use Case Figur 16. Use Case diagram med extend En tredje udvidelse til den basale notation er en specialisering af en Use Case, der beskriver en udvidelse eller ændret funktionalitet i forhold til den Use Case, den er en specialisering af. En sidste udvidelse består i, at også aktører kan specialiseres. Aktør 1 Use Case 1 specialiseret Use Case 2 specialiseret Use Case 3 Specialisering af aktør 1 Figur 17. Use Case diagram med specialisering Ver , Ingeniørhøjskolen i Århus 23

26 4.1.3 Beskrivelse af en Use Case UML standarden indeholder ikke nogen anbefalinger eller krav til hvordan den enkelte Use Case beskrives. Der kan f.eks. anvendes tekst, grafik som f.eks. UMLs sekvensdiagrammer og i nogle tilfælde også tilstandsdiagrammer (UML statecharts). Anvender man en tekstbeskrivelse er der dog ved at være en slags fælles forståelse for hvad en sådan beskrivelse skal indeholde. Der vil her blive givet et forslag til en sådan beskrivelsesskabelon. En Use Case specificerer en funktionalitet som systemet udfører for en af systemets aktører og indeholder derfor normalt et antal scenarier. Det vigtigste scenario er normalscenariet hvor alt går lige efter bogen og målet for Use Casen opnås. En Use Case kan beskrives vha. følgende hovedpunkter: Use Case navn: Der kort beskriver Use Casen vha. et handlingsorienteret udsagnsord, der virker på et navneord f.eks. Overvåg temperatur, Konfigurer system Målbeskrivelse: En målbeskrivelse der kort og præcist beskriver det mål Use Casen opfylder for en af systemets aktører eller interessenter. Dette mål svarer til succesfuld gennemførelse af normalscenariet. Normal scenario: Her beskrives det normale forløb vha. et antal trin, der fører frem til opfyldelsen af målet for Use Casen. Hver trin nummereres og beskriver en dialog mellem aktørerne og systemet. Undtagelser: I dette afsnit beskrives de undtagelser og afvigelser, der kan forekomme til normalscenariet. Det beskrives her hvordan disse skal håndteres af systemet. Ud over disse hovedpunkter, kan der medtages flere supplerende beskrivelsespunkter f.eks. forudsætninger og slutbetingelser. For supplerende læsning og uddybning kan der her henvises til Alistair Cockburns bog Writing Effective Use Cases [Cockburn2000]. 4.2 Indhold af kravspecifikation i relation til Use Cases Anvendelse af Use Case teknikken starter med, at man fastlægger konteksten for systemet ved at definere aktørerne i forhold til det system, man er ved at udvikle. Aktørerne og systemet vises på et aktør-kontekstdiagram. Når dette er på plads, kan man begynde på at finde de Use Cases, som de enkelte aktører er involveret i. Figur 18 viser, hvorledes aktør-kontekstdiagrammet og Use Case diagrammerne og de tilhørende specifikationer indgår i en standard indholdsfortegnelse for en kravspecifikation [SPU88]. En Use Case baseret kravspecifikation består ligesom den traditionelle kravspecifikation hovedsageligt af tekst, der beskriver de funktionelle krav (kap.3). Det der gør den store forskel, er den tek- Ver , Ingeniørhøjskolen i Århus 24

27 nik og den Use Case drevne synsvinkel, der er anvendt til at finde Use Casene i den Use Case baserede kravspecifikation. 1. Indledning 2. Generel beskrivelse 3. Funktionelle krav 4. Ekstern grænseflade 5. Krav til ydelse 6. Kvalitetsfaktorer 7. Design krav 8. Andre krav 9. Del-levering Use Case 1 Aktør-kontekst diagram System/ Produkt Use Case diagram Use Case 2... Use Case n Figur 18. Use Case i relation til et kravspecifikationsdokument Use Case teknikken kan i øvrigt anvendes, selv om man ikke efterfølgende vil anvende objektbaserede eller objektorienterede udviklingsmetoder. Men så får man til gengæld heller ikke glæde af de metoder, der findes til at gå fra en Use Case baseret specifikation til objektorienteret analyse- og designmodeller. I forhold til SPU håndbogen er der her indført et ekstra kapitel Design krav, hvor man kan liste de ufravigelige design relaterede krav som projektet skal leve op til. Ved at liste disse eksplicit i sit eget kapitel sættes der fokus på disse ufravigelige krav. Det kan f.eks. være at systemet skal implementeres vha. en PC med Windows operativsystem. Kapitlet del-levering kan medtages, når der f.eks. er tale om en kundespecificeret opgave, hvor det er vigtigt at systemet leveres i et antal delleveringer. Ved at have dette kapitel med i en skabelon fokuseres der på at udføre iterativ udvikling af et system. Det kan dog argumenteres for at denne information er mere projektspecifik, da den vedrører selve udviklingen af systemet og derfor hører hjemme i en procesorienteret dokumentation. Ver , Ingeniørhøjskolen i Århus 25

28 5 Vejledning i design opdateret mht. UML Design vejledningens kapitel 2. præsenterer 6 generelle designtrin, der kan anvendes i en vilkårlig designmetode og dermed også i forbindelse med Objektorienteret design med UML. Dernæst følger 6 generelle designregler og 7 regler vedrørende arbejdsformer og dokumentation, der ligeledes er universelt anvendelige. Design vejledningens kapitel 3-5 (s ) er den del af SPU håndbogen, der berøres mest af denne SPU-UML opdatering. 5.1 Sammenhæng mellem SPU og SPU-UML terminologi SPU håndbogen omhandler primært kun softwareudviklingen i et udviklingsprojekt, hvorimod SPU-UML modellen omhandler udvikling af komplette systemer og apparater dvs. både software- og hardwareudvikling. Dette giver anledning til nogle udvidelser i SPU-UML i forhold til SPU som det fremgår af Figur 19, ligesom der også i forbindelse med anvendelsen af en objektorienteret metode til analyse, design og implementering vil medføre nogle ændringer i aktiviteter og terminologi. Sammenhængen mellem SPU aktiviteterne og de øvrige udviklingsaktiviteter i SPU-UML er vist på Figur 9. Som tidligere nævnt er aktiviteterne i SPU-UML benævnt efter de tilsvarende aktiviteter i ROPES udviklingsmodellen. System kravspecifikation SPU-UML (ROPES) System Objekt Analyse Analyse OO Analyse Arkitektur Design Mekanistisk Design Detaljeret Design Programdesign Procesdesign SPU SW Kravspecifikation Moduldesign Figur 19. Sammenhæng mellem SPU-UML og SPU aktiviteter og terminologi SPU opdeler software designarbejdet i tre designaktiviteter hhv. program-, proces- og moduldesign. Hvor programdesignaktiviteten opdeler et program i parallelle processer (task) og fastlægger deres kommunikation. Hvorefter procesdesign opdeles en proces i moduler, der i OO sammenhæng svarer til klasser/objekter. Dernæst følger moduldesign, hvor modulets funktioner og datastrukturer designes, der i UML svarer til at design en klasses operationer (algoritmer) og at- Ver , Ingeniørhøjskolen i Århus 26

29 tributter (datastrukturer). SPUs modulbegreb kan direkte oversættes til klassebegrebet i UML, hvilket gør sammenhængen enklere. 5.2 Arkitekturdesign (design af et system eller produkt) Da SPU oprindelig er udviklet til tekniske systemer har det fra starten af været vigtigt at kunne understøtte udvikling af multiprogrammer dvs. programmer, der består af et antal parallelle processer (kaldes også for task og threads), der kan afvikles via et realtidsoperativsystem. UML har den store fordel, at det er muligt at diagrammere processer idet disse kan udtrykkes som aktive klasser, der er klasser med eget initiativ til at kalde andre passive objekter eller kommunikere med andre aktive klasser. En sådan aktiv klasse har typisk en run operation (metode), der indeholder en uendelig procesløkke og aktiveres af operativsystemet. 5.3 Mekanistisk design (design af et program eller proces) Ved SPU-UML mekanistiske designaktivitet udføres der design af et program eller af en proces, der er identificeret i den forudgående arkitekturdesign aktivitet. Dette gøres ud fra den forudgående objektorienterede analyse og ud fra arkitekturdesignet. Det er her at samspillet mellem de klasser der indgår i processen designes. Til dette anvendes UML s klasse-, tilstands- og sekvensdiagrammer. Det mekanistiske design kan ofte forbedres ved at anvende veldokumenterede og afprøvede designmønstre som f.eks. GoF mønstrene [GoF94]. 5.4 Detaljeret design (design af en klasse) SPUs moduldesignaktivitet består i at designe modulet, der i SPU-UML vil sige at foretage detaljeret design af en enkelt klasse, dvs. at fastlægge klassens operationer med parametre og returværdier samt at designe de tilhørende algoritmer samt at designe klassens datastrukturer, der udtrykkes som attributter i UML. 5.5 En letvægts SPU-UML designmetode Dette afsnit er tænkt som en kort introduktion til hvorledes man kan anvende en objektorienteret letvægtsmetode til design af et sekventielt program dvs. bestående af en proces. Kravspecifikation: Trin 1. Udarbejd en domænemodel, der er et klassediagram, der viser de klasser der er i det pågældende domæne og deres sammenhæng. Klasserne kan f.eks. identificeres ud fra navneordene i en opgavebeskrivelse. Trin 2. Udarbejd en Use Case baseret kravspecifikation, hvor Use Casene beskrives vha. de domænebegreber, der er identificeret på domænemodellen. Definer ud fra Use Casene et antal udviklingsiterationer. Ver , Ingeniørhøjskolen i Århus 27

SPU UML note. Systematisk Program- Udvikling med UML. Finn Overgaard Hansen

SPU UML note. Systematisk Program- Udvikling med UML. Finn Overgaard Hansen SPU UML note Systematisk Program- Udvikling med UML Finn Overgaard Hansen Ingeniørhøjskolen i Århus Finn Overgaard Hansen, august 2005 Versionshistorie Versionsnr. Dato Initialer Versionen omfatter 0.9

Læs mere

Struktureret system udvikling Minimodul 1: Introduktion, UML og use cases

Struktureret system udvikling Minimodul 1: Introduktion, UML og use cases Struktureret system udvikling Minimodul 1: Introduktion, UML og use cases Rasmus L. Olsen, 27 februar 2008 Introduktion Kursets hjemmeside http://www.kom.aau.dk/~rlo/ Kursus holder Rasmus L. Olsen Færdiguddannet

Læs mere

UML-Light (Note: UML-Light T133, ver. 2004) Finn Overgaard Hansen, IHA

UML-Light (Note: UML-Light T133, ver. 2004) Finn Overgaard Hansen, IHA UML-Light (Note: UML-Light T33, ver. 2004) Finn Overgaard Hansen, IHA Programmering PRG + Semesterprojekter PRJ+PRJ2 Version: 20--2004 Indhold Første del: Introduktion til UML-Light og UML Klasser og objekter

Læs mere

Model og metode til programudvikling. Om undertegnede... Struktureret Systemudvikling. Dagens menu... Tankevækkende erfaringer med systemudvikling...

Model og metode til programudvikling. Om undertegnede... Struktureret Systemudvikling. Dagens menu... Tankevækkende erfaringer med systemudvikling... Model og metode til programudvikling 2004 minimodul 11: Struktureret/Systematisk System Udvikling Kursusholder: Ove Andersen Om undertegnede... Ove Andersen, civ. ing., 1989, ph.d. 2003 arbejdet på diverse

Læs mere

Projekthåndbog E- og IKT projekter

Projekthåndbog E- og IKT projekter Projekthåndbog E- og IKT projekter Ingeniørhøjskolen i Århus Michael Alrøe Versionshistorie Ver. Dato Initialer Beskrivelse 1.0 12.01.2009 MA Første version beregnet for IHA semesterprojekter 1.1 20.01.2009

Læs mere

Vejledning til udviklingsprocessen for projekt 2

Vejledning til udviklingsprocessen for projekt 2 Vejledning til udviklingsprocessen for projekt 2 Versionshistorik Ver. Dato Initialer Beskrivelse 0.01 17.11.14 KBE Første version 0.02 24.11.14 TFJ Rettet efter 1. review 0.03 26.11.14 KBE Omskrevet analyse

Læs mere

Hvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag

Hvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag Hvem er vi? Kursus Introduktion Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark 100 studerende med forskellig baggrund: software teknologi It og Kom

Læs mere

Secure O matic. Gruppe 5 2. SEMESTERPROJEKT. Udgave. Accepttest-specifikation

Secure O matic. Gruppe 5 2. SEMESTERPROJEKT. Udgave. Accepttest-specifikation Udgave 2 2. SEMESTERPROJEKT Gruppe 5 Secure O matic Accepttest-specifikation Benjamin Sørensen, 02284 Tomas Stæhr Hansen, 03539 Stefan Nielsen, 02829 Mubeen Ashraf, 9279 Hussein Kleit, 9281 SECURE O MATIC

Læs mere

Procedure for systemtest

Procedure for systemtest LANDBRUGS- OG FISKERISTYRELSEN Procedure for systemtest Retningslinjer for hvordan test udføres i LFST Kontrakt om Testressourcer Underbilag 1c 23. oktober 2017 Version 1.0 En beskrivelse af hvordan test

Læs mere

Struktureret system udvikling Minimodul 3: SPU/UML modellen

Struktureret system udvikling Minimodul 3: SPU/UML modellen Struktureret system udvikling Minimodul 3: SPU/UML modellen Rasmus L. Olsen, 12 Marts 2008 Kursusoversigt og tidsplan Mm1: Introduktion til kursus, UML og use cases (13/2, 2008) Mm2: Kravspecifikation

Læs mere

Vurdering af kvalitet en note af Tove Zöga Larsen

Vurdering af kvalitet en note af Tove Zöga Larsen Vurdering af kvalitet en note af Tove Zöga Larsen Kvalitet... 2 Test... 2 Hvordan finder man testdata?... 2 Dokumentation af test... 3 Review... 3 Vurderingskriterier... 3 Gennemførelsen af et review...

Læs mere

UML til kravspecificering

UML til kravspecificering UML til kravspecificering UML mini-kompendium - til brug i forbindelse med modellering af kravspecifikationer. Copyright 2006 Teknologisk Institut, IT-Udvikling Aktivitetsdiagram 2/9 Aktion Aktionsnavn

Læs mere

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Hassansalem.dk/delpin User: admin Pass: admin BACKEND Hassansalem.dk/delpin User: admin Pass: admin BACKEND 1/10 Indledning Dette projekt er den afsluttende del af web udvikling studiet på Erhvervs Lillebælt 1. semester. Projektet er udarbejdet med Del-pin

Læs mere

Struktureret system udvikling Minimodul 3: SPU/UML modellen

Struktureret system udvikling Minimodul 3: SPU/UML modellen Struktureret system udvikling Minimodul 3: SPU/UML modellen Rasmus L. Olsen, 11 Marts 2009 Kursusoversigt og tidsplan Mm1: Introduktion til kursus, UML og use cases (11 Februar, 2008) Mm2: Kravspecifikation

Læs mere

Procedurer for styring af softwarearkitektur og koordinering af udvikling

Procedurer for styring af softwarearkitektur og koordinering af udvikling LEVERANCE 2.3 Procedurer for styring af softwarearkitektur og koordinering af udvikling Procedurerne vil omfatte: Planlægning af udfasning af gamle versioner af OpenTele Planlægning af modning af kode

Læs mere

Curriculum Vitae. Uddannelse: 2001 Civilingeniør fra Danmaks tekniske universitet, fagprofil: styring og regulering.

Curriculum Vitae. Uddannelse: 2001 Civilingeniør fra Danmaks tekniske universitet, fagprofil: styring og regulering. Curriculum Vitae Navn Gitte Brunn Fugmann Adresse Mosegård Park 9 3500 Værløse. Telefonnr +45 3927 7371 E-mail gbr@fugmann.net Fødselsdato 24. april 1974 Fødselssted Rigshospitalet, København Ægteskabelige

Læs mere

Koncept for systemforvaltning af den fælles open source kode, herunder procedure for opfølgning på software-versioner af OpenTele

Koncept for systemforvaltning af den fælles open source kode, herunder procedure for opfølgning på software-versioner af OpenTele LEVERANCE 2.1 Koncept for systemforvaltning af den fælles open source kode, herunder procedure for opfølgning på software-versioner af OpenTele Konceptet beskriver, hvordan koden forvaltes, og hvordan

Læs mere

Objektorienteret Analyse & Design

Objektorienteret Analyse & Design Objektorienteret Analyse & Design Lars Mathiassen, Andreas Munk-Madsen, Peter Axel Nielsen og Jan Stage ISBN: 87-7751-153-0 Udgave: 3. udgave Udgivelsesår: 2001 Antal sider: 452 Pris: Kr. 410,00 På de

Læs mere

EA3 eller EA Cube rammeværktøjet fremstilles visuelt som en 3-dimensionel terning:

EA3 eller EA Cube rammeværktøjet fremstilles visuelt som en 3-dimensionel terning: Introduktion til EA3 Mit navn er Marc de Oliveira. Jeg er systemanalytiker og datalog fra Københavns Universitet og denne artikel hører til min artikelserie, Forsimpling (som også er et podcast), hvor

Læs mere

Objektorientering. Programkvalitet

Objektorientering. Programkvalitet 1 PROSA-Bladet nr. 4 1993 Objektorientering = Programkvalitet? Af Finn Nordbjerg, adjunkt ved Datamatikeruddannelsen, Aalborg Handelskole 1. Indledning Objektorientering er blevet et edb-fagets mest udbredte

Læs mere

Generel projektbeskrivelse

Generel projektbeskrivelse 02121 Ingeniørarbejde Softwareteknologi Januar 2010 1 Introduktion Generel projektbeskrivelse Formålet med programmeringsprojektet er at give deltagerne erfaring med at designe og konstruere et simpelt

Læs mere

CCS Formål Produktblad December 2015

CCS Formål Produktblad December 2015 CCS Formål Produktblad December 2015 Kolofon 2015-12-14

Læs mere

Fag: Projekt E1PRJ1 Emne: Kravspecifikation Softdrink-Automat Gruppe: 6 Dato: 10. april 2003 Medlemmer: Benjamin Sørensen, Joanna Christensen, Jacob

Fag: Projekt E1PRJ1 Emne: Kravspecifikation Softdrink-Automat Gruppe: 6 Dato: 10. april 2003 Medlemmer: Benjamin Sørensen, Joanna Christensen, Jacob Fag: Projekt E1PRJ1 Emne: Kravspecifikation Softdrink-Automat Gruppe: 6 Dato: 10. april 2003 Medlemmer: Benjamin Sørensen, Joanna Christensen, Jacob Nielsen, Jesper Kock, Klaus Eriksen, Mikkel Larsen og

Læs mere

Software Dokumentation

Software Dokumentation Software Dokumentation Jan Boddum Larsen Teknologi B og A på HTX Dokumentation af software i Teknologi I samfundet sker der en bevægelse mod mere digitale løsninger i teknologi. Det betyder at software

Læs mere

Bias Reducing Operating System - BROS -

Bias Reducing Operating System - BROS - Bias Reducing Operating System - BROS - Accepttestspecifikation Projektgruppe 3: Rasmus Lund Jensen (11111) Nicolai Glud(11102) Jacob Roesen(10095) Mick Holmark(11065) Johnny Kristensen(10734) 1 Versionshistorik

Læs mere

Struktureret system udvikling Minimodul 2: Kravspecifikation og accepttest

Struktureret system udvikling Minimodul 2: Kravspecifikation og accepttest Struktureret system udvikling Minimodul 2: Kravspecifikation og accepttest Rasmus L. Olsen, 27 februar 2008 Kursusoversigt og tidsplan Mm1: Introduktion til kursus, UML og use cases (13/2, 2008) Mm2: Kravspecifikation

Læs mere

Idékatalog Planlægning og brug af test i statslige it-projekter

Idékatalog Planlægning og brug af test i statslige it-projekter Idékatalog Planlægning og brug af test i statslige it-projekter Januar 2014 INDHOLD 1. INDLEDNING...1 2. TYPER AF TEST...2 3. PLANLÆGNING AF TEST I FASERNE...6 3.1 IDÉFASEN...6 3.2 ANALYSEFASEN...7 3.3

Læs mere

ARBEJDET MED UDVIKLING AF EN AGIL STANDARDKONTRAKT

ARBEJDET MED UDVIKLING AF EN AGIL STANDARDKONTRAKT Executive summary 1. ARBEJDET MED UDVIKLING AF EN AGIL STANDARDKONTRAKT Regeringen har et mål om, at den offentlige sektor skal være blandt de mest effektive og mindst bureaukratiske i verden, og for at

Læs mere

Velkommen til. Kravspecifikation i Softwareudvikling Workshop hos Brüel & Kjær. 14. september 2012, 9.30 12.30

Velkommen til. Kravspecifikation i Softwareudvikling Workshop hos Brüel & Kjær. 14. september 2012, 9.30 12.30 Velkommen til Kravspecifikation i Softwareudvikling Workshop hos 14. september 2012, 9.30 12.30 Flemming Hansen, IT innovation e-mail: flemming.hansen@it-innovation.dk Kravspecifikation i softwareudvikling,

Læs mere

Studieordning del 4-2014

Studieordning del 4-2014 Studieordning del 4-2014 Fagbeskrivelser Datamatiker AP Graduate in Computer Science Version 1.1 Revideret august 2014 Side 0 af 8 Indhold del 4 Fagbeskrivelser 1. Faget Programmering (PRO)...2 2. Faget

Læs mere

Studieordning for bacheloruddannelsen i softwareudvikling ved IT-Universitetet i København

Studieordning for bacheloruddannelsen i softwareudvikling ved IT-Universitetet i København Studieordning for bacheloruddannelsen i softwareudvikling ved IT-Universitetet i København Studieordning a 1. september 2012 Revideret 16. juni 2014 Revideret 19. august 2015 Indhold Indledning Kapitel

Læs mere

Sikkerhedsanbefaling. Forholdsregler ved ophør af serviceopdateringer til Windows XP Embedded

Sikkerhedsanbefaling. Forholdsregler ved ophør af serviceopdateringer til Windows XP Embedded Sikkerhedsanbefaling Forholdsregler ved ophør af serviceopdateringer til Windows XP Embedded Juli 2014 Indledning Microsoft har annonceret, at selskabet den 31. december 2016 frigiver den sidste serviceopdatering

Læs mere

STUDIEORDNING. for. IT-teknolog

STUDIEORDNING. for. IT-teknolog STUDIEORDNING for IT-teknolog Revideret 01.02.2018 Indhold 1. Uddannelsens mål for læringsudbytte... 3 2. Uddannelsen indeholder 4 nationale fagelementer... 4 2.1. Netværksteknologi... 4 2.2. Indlejrede

Læs mere

Kvalitetssikring af IT udvikling hos TDC

Kvalitetssikring af IT udvikling hos TDC Kvalitetssikring af IT udvikling hos TDC Kvalitetsrevisor Henning Sams Har være ansat hos TDC siden 1976 og har arbejdet med kvalitet i ca. 10 år, primært som QAér og Proceskonsulent. Underviser bl.a på

Læs mere

Underbilag 14 C: Afprøvningsforskrifter til prøver og tests

Underbilag 14 C: Afprøvningsforskrifter til prøver og tests Underbilag 14 C: Afprøvningsforskrifter til prøver tests Udbud om levering, installation, implementering, support, drift vedligehold af Borgeradministrativt System (BAS) Indhold underbilag 14 C Afprøvningsforskrifter

Læs mere

Hos Lasse Ahm Consult vurderer vi at følgende supplerende krav i de enkelte kravelementer er væsentlige at bemærke:

Hos Lasse Ahm Consult vurderer vi at følgende supplerende krav i de enkelte kravelementer er væsentlige at bemærke: ISO 9001:2015 (Draft) Side 1 af 9 Så ligger udkastet klar til den kommende version af ISO 9001. Der er sket en række strukturelle ændringer i form af standardens opbygning ligesom kravene er blevet yderligere

Læs mere

Studieordning for IT-teknolog National del Februar 2018

Studieordning for IT-teknolog National del Februar 2018 Studieordning for IT-teknolog National del Februar 2018 Indholdsfortegnelse Indholdsfortegnelse... 0 1. Uddannelsens mål for læringsudbytte... 1 2. Uddannelsen indeholder 4 nationale fagelementer... 2

Læs mere

Introduktion. Jan Brown Maj, 2010

Introduktion. Jan Brown Maj, 2010 Jan Brown Maj, 2010 Introduktion OIOXML har eksisteret som det centrale datastandardiseringsparadigme siden 2002. Til OIOXML-konceptet er der et regelsæt betegnet OIO Navngivnings- og Deignregler (NDR),

Læs mere

Forslag til ny struktur - overblik

Forslag til ny struktur - overblik BESKRIVELSESVÆRKTØJ Forslag til ny struktur - overblik Den korte version Udarbejdet af Molio 2018-03-01 Høringsversion Molio 2018 1 Indledning og formål Molio ønsker at omlægge beskrivelsesværktøjets struktur.

Læs mere

Projektlederens roller og kompetencer. Cases til Projektlederens roller og kompetencer

Projektlederens roller og kompetencer. Cases til Projektlederens roller og kompetencer Cases til Projektlederens roller og kompetencer Palle Ragn 1/9 Bibliografiske oplysninger Kursus: Lokalitet: Afgangsprojekt, Diplom uddannelsen i ledelse JCVU, Århus, Danmark Forfatter: Palle Ragn, 160364

Læs mere

Svendeprøve Projekt Tyveri alarm

Svendeprøve Projekt Tyveri alarm Svendeprøve Projekt Tyveri alarm Påbegyndt.: 8/2-1999 Afleveret.: 4/3-1999 Projektet er lavet af.: Kasper Kirkeby Brian Andersen Thomas Bojer Nielsen Søren Vang Jørgensen Indholds fortegnelse 1. INDLEDNING...3

Læs mere

Secure O matic. Gruppe 5 2. SEMESTERPROJEKT. Udgave. Testspecifikation

Secure O matic. Gruppe 5 2. SEMESTERPROJEKT. Udgave. Testspecifikation Udgave 1 2. SEMESTERPROJEKT Gruppe 5 Secure O matic Testspecifikation Benjamin Sørensen, 02284 Tomas Stæhr Hansen, 03539 Stefan Nielsen, 02829 Mubeen Ashraf, 9279 Hussein Kleit, 9281 SECURE O MATIC Testspecifikation

Læs mere

Videregående Programmering for Diplom-E Noter

Videregående Programmering for Diplom-E Noter Videregående Programmering for Diplom-E Noter 1. Uddelegering Ét af de væsentlige principper i objektorienteret programmering er, at enhver klasse selv skal kunne "klare ærterne". Enhver klasse skal altså

Læs mere

Struktureret system udvikling Minimodul 1: Introduktion, projekt- og tidsplanlægning

Struktureret system udvikling Minimodul 1: Introduktion, projekt- og tidsplanlægning Struktureret system udvikling Minimodul 1: Introduktion, projekt- og tidsplanlægning Rasmus L. Olsen, 2 februar 2011 1 Dagens program Introduktion og overblik over kursus Motivation for struktureret systemudvikling

Læs mere

SOFTWARE DOKUMENTATION

SOFTWARE DOKUMENTATION SOFTWARE DOKUMENTATION TEKNOLOGI B OG A PÅ HTX Indhold Dokumentation af software i Teknologi på HTX... 2 Overblik... 2 Kravspecifikation... 2 Blokdiagram... 3 Use Case Diagram... 3 Pseudokode... 4 Dokumentation

Læs mere

BILAG 7. Dokumentation

BILAG 7. Dokumentation BILAG 7 Vejledning til tilbudsgiver Bilaget indeholder Kundens mindstekrav til. 2 Indholdsfortegnelse 1. Indledning... 4 2. somfanget... 4 2.1 Proces for udarbejdelse og godkendelse af... 4 2.2 Generelle

Læs mere

Automation Projektledelse Networking GAPP. GAPP kravspecifikation

Automation Projektledelse Networking GAPP. GAPP kravspecifikation GAPP GAPP kravspecifikation Kravspecifikation - formål Kategorisere, vurdere og samle krav i logisk og funktionelle grupper for at: Øge overblikket Undgå overlappende og modstridende krav Skærpe de enkelte

Læs mere

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0 SmartFraming Et vindue til nationale sundhedssystemer Version 3.0 Infrastruktur i dagens sundheds IT Det sundhedsfaglige personale benytter sig i dag af en række forskellige systemer i forbindelse med

Læs mere

ITWIN1. Afsluttende projekt. PhotoDays. Benjamin Sørensen (02284) Tomas Stæhr Berg (03539)

ITWIN1. Afsluttende projekt. PhotoDays. Benjamin Sørensen (02284) Tomas Stæhr Berg (03539) ITWIN1 Afsluttende projekt PhotoDays Benjamin Sørensen (02284) Tomas Stæhr Berg (03539) ITWIN1 - AFSLUTTENDE PROJEKT PhotoDays Benjamin Sørensen & Tomas Stæhr Berg 02284 & 03539 1 1 Underskrifter Rapporten

Læs mere

Case: Svømmeklubben Delfinen

Case: Svømmeklubben Delfinen 1. Semesterprojekt Datamatikeruddannelsen, 2. Obligatoriske opgave, efterår 2017 Case: Svømmeklubben Delfinen Svømmeklubben Delfinen er en mindre klub, der er i vækst. Klubbens ledelse ønsker derfor udviklet

Læs mere

Struktureret system udvikling Minimodul 2: Kravspecifikation og accepttest

Struktureret system udvikling Minimodul 2: Kravspecifikation og accepttest Struktureret system udvikling Minimodul 2: Kravspecifikation og accepttest Rasmus L. Olsen, 18 februar 2009 Kursusoversigt og tidsplan Mm1: Introduktion til kursus, UML og use cases (11 Februar, 2008)

Læs mere

3D GeoInformation. Systemudvikling. 1. Introduktion til Systemudvikling og Projektmodeller. Systemudvikling L7 2007 Lars Bodum

3D GeoInformation. Systemudvikling. 1. Introduktion til Systemudvikling og Projektmodeller. Systemudvikling L7 2007 Lars Bodum Systemudvikling 1. Introduktion til Systemudvikling og Projektmodeller Systemudvikling L7 2007 Lars Bodum Program Hvad er et system? Universe of discourse Leavitt s model for forandring Projektmodeller

Læs mere

Aktivitet: Du kan skrive et specialeoplæg ud fra punkterne nedenfor. Skriv så meget du kan (10)

Aktivitet: Du kan skrive et specialeoplæg ud fra punkterne nedenfor. Skriv så meget du kan (10) Aktivitet: Du kan skrive et specialeoplæg ud fra punkterne nedenfor. Skriv så meget du kan (10) 1. Det er et problem at... (udgangspunktet, igangsætteren ). 2. Det er især et problem for... (hvem angår

Læs mere

Succesfuld implementering af automatiseret test

Succesfuld implementering af automatiseret test Succesfuld implementering af automatiseret test Forudsætningerne og faldgruberne John Fodeh john.fodeh@hp.com 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject

Læs mere

Afsluttende kommentarer

Afsluttende kommentarer KLUMMETITLER KOMMER SENERE 247 KAPITEL 11 Afsluttende kommentarer Videnregnskaber er interessante, fordi en af grundproblemstillingerne i den globale videnøkonomi er, hvorledes personer, virksomheder og

Læs mere

Semesterbeskrivelse cand. it uddannelsen i it-ledelse 2. semester.

Semesterbeskrivelse cand. it uddannelsen i it-ledelse 2. semester. Semesterbeskrivelse cand. it uddannelsen i it-ledelse 2. semester. Semesterbeskrivelse Oplysninger om semesteret Skole: Statskundskab Studienævn: Studienævn for Digitalisering Studieordning: Studieordning

Læs mere

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0 Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS

Læs mere

Introduktion til projekter

Introduktion til projekter Introduktion til projekter v. 1.0.3 Introduktion I dette materiale ser vi overordnet på, hvad projekter egentlig er, hvordan de er skruet sammen og hvilke begreber, som relaterer sig til projekter. Vi

Læs mere

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav.

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav. Miniprojekt2011 Projektbeskrivelse Der skal fremstilles en lille java application på PC, hvor brugeren kan foretage interaktioner med en simpel database på disken via et grafisk brugerinterface. Formålet

Læs mere

Agil-model versus V-model set i lyset af en testers dilemmaer

Agil-model versus V-model set i lyset af en testers dilemmaer Agil-model versus V-model set i lyset af en testers dilemmaer 1 Præsentation Foredragsholder Ane Clausen: Cand.Scient i Datalogi Københavns Universitet, Danmark Gift, 3 børn 25 års erfaring med IT: 12

Læs mere

Mangelfuldt dokumenterede it-systemer. Hvordan løses udfordringen?

Mangelfuldt dokumenterede it-systemer. Hvordan løses udfordringen? Mangelfuldt dokumenterede it-systemer Hvordan løses udfordringen? Indholdsfortegnelse 1. Resume... 3 2. Introduktion... 3 3. Fordelene ved at løse udfordringen... 3 4. Løsningen... 4 4.1 Hvordan?... 4

Læs mere

Fra Computer til Virkelighed. TPE-kursus Elektroniske Systemer P1

Fra Computer til Virkelighed. TPE-kursus Elektroniske Systemer P1 Fra Computer til Virkelighed TPE-kursus Elektroniske Systemer P1 Fra Computer til Virkelighed En kort introduktion til kurset Systems Engineering Projektfaser Opsamling og opgave Om kurset Mål: at I lærer

Læs mere

Scope Management ITU 11-09-2013 @janhmadsen #ituscpmgt

Scope Management ITU 11-09-2013 @janhmadsen #ituscpmgt Scope Management ITU 11-09-2013 @janhmadsen Dagsorden Oplægsholder Projektstyring Scope Management i en fælles kontekst Definitioner Scope Management - styring af omfang ved projektets start under projektets

Læs mere

Det er en fin og gennemført opdeling i bogen med de samme spørgsmål der behandles: Hvorfor forebygge? Opsporing og Motivation Indsatser

Det er en fin og gennemført opdeling i bogen med de samme spørgsmål der behandles: Hvorfor forebygge? Opsporing og Motivation Indsatser 4. december 2014 11/030104 LPED Høringsskema Håndbog om forebyggelse på ældreområdet Når du kommenterer på håndbogen vil vi bede dig være særligt opmærksom på følgende spørgsmål i relation til det fagområde

Læs mere

Iterativ og Agil udvikling

Iterativ og Agil udvikling Iterativ og Agil udvikling 1 2 Udfordringer i hverdagen En liste over de udfordringer man står overfor ved implementering af iterativ og agil udvikling. 3 Udfordringer med Iterationer 4 Iterationer, I

Læs mere

Semesterbeskrivelse cand. it uddannelsen i it-ledelse 2. semester.

Semesterbeskrivelse cand. it uddannelsen i it-ledelse 2. semester. Semesterbeskrivelse cand. it uddannelsen i it-ledelse. Semesterbeskrivelse Oplysninger om semesteret Skole: Statskundskab Studienævn: Studienævn for Digitalisering Studieordning: Studieordning for Kandidatuddannelsen

Læs mere

ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE. Udfordring

ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE. Udfordring ALGORITMER OG DATA SOM BAGGRUND FOR FORUDSIGELSER 8. KLASSE Udfordring INDHOLDSFORTEGNELSE 1. Forløbsbeskrivelse... 3 1.1 Overordnet beskrivelse tre sammenhængende forløb... 3 1.2 Resume... 5 1.3 Rammer

Læs mere

<<Institutionens logo>> STUDIEORDNING FOR MASTERUDDANNELSEN I IT. Specialiseringen i <<...>> VED <<INSTITUTIONENS NAVN>> i IT-VEST SAMARBEJDET

<<Institutionens logo>> STUDIEORDNING FOR MASTERUDDANNELSEN I IT. Specialiseringen i <<...>> VED <<INSTITUTIONENS NAVN>> i IT-VEST SAMARBEJDET STUDIEORDNING FOR MASTERUDDANNELSEN I IT Specialiseringen i VED i IT-VEST SAMARBEJDET FÆLLES SKABELON 10. marts 2008 1 Generel del af studieordning

Læs mere

BILAG 5.D DOKUMENTATION

BILAG 5.D DOKUMENTATION BILAG 5.D DOKUMENTATION INDHOLDSFORTEGNELSE 1. Indledning...4 2. Kundens krav til Leverancedokumentation...4 Side 2 of 10 Instruktion til besvarelse af bilaget: Teksten i denne instruktion er ikke en del

Læs mere

Beskrivelse af indhold i ITOS kurset: Master Class i Kravspecifikation indenfor embeddede systemer

Beskrivelse af indhold i ITOS kurset: Master Class i Kravspecifikation indenfor embeddede systemer Beskrivelse af indhold i ITOS kurset: Master Class i Kravspecifikation indenfor embeddede systemer Introduktion Dag 1 1:00 før frokost Bordet rundt - forventninger Formål Resultat for kursister Opgaver

Læs mere

It-håndbogen. Uddrag af artikel trykt i It-håndbogen. Gengivelse af denne artikel eller dele heraf er ikke tilladt ifølge dansk lov om ophavsret.

It-håndbogen. Uddrag af artikel trykt i It-håndbogen. Gengivelse af denne artikel eller dele heraf er ikke tilladt ifølge dansk lov om ophavsret. It-håndbogen Uddrag af artikel trykt i It-håndbogen. Gengivelse af denne artikel eller dele heraf er ikke tilladt ifølge dansk lov om ophavsret. Børsen Ledelseshåndbøger er Danmarks største og stærkeste

Læs mere

Case til opgaven: Evaluering som belutningsmodel for forandring. Case til opgaven: Evaluering som beslutningsmodel for forandring.

Case til opgaven: Evaluering som belutningsmodel for forandring. Case til opgaven: Evaluering som beslutningsmodel for forandring. Case til opgaven: Evaluering som beslutningsmodel for forandring. Palle Ragn 1/6 Introduktion til casen Casen beskriver et forløb for implementering af et system for en af Stibo s kunder. Efter casen har

Læs mere

Supermarkedsmodellen for design af brugergrænseflade

Supermarkedsmodellen for design af brugergrænseflade Supermarkedsmodellen for design af brugergrænseflade Denne note er skrevet frit efter Peter Huber, som på et kursus i Efteruddannelsescenteret fortalte om supermarkedsmodellen til design af brugergrænseflader.

Læs mere

Hvad er en referencelinie? Tidsligt fastlagt Veldefineret tilstand af mellemprodukter Mellemprodukter vurderes Sandhedens øjeblik

Hvad er en referencelinie? Tidsligt fastlagt Veldefineret tilstand af mellemprodukter Mellemprodukter vurderes Sandhedens øjeblik Hvad er en referencelinie? Tidsligt fastlagt Veldefineret tilstand af mellemprodukter Mellemprodukter vurderes Sandhedens øjeblik En referencelinie er en koordineret og veldefineret tilstand i et projekt,

Læs mere

Dm071 / Dm072 - Obligatorisk projekt 3: Design af model

Dm071 / Dm072 - Obligatorisk projekt 3: Design af model Dm071 / Dm072 - Obligatorisk projekt 3: Design af model Fag: Projektet omhandler emner fra fagene Software Design og Software Konstruktion. Formål: Formålet med projektet er at give dig mulighed for sammen

Læs mere

Specialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6

Specialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6 Side 1 af 6 Indholdsfortegnelse INDHOLDSFORTEGNELSE 1 INTRO 3 STARTEN AF SPECIALISERINGEN 3 ANKOMST TIL SKOTLAND 4 DATABASER 5 NETVÆRK 5 INTERAKTION 5 AFSLUTNING AF SPECIALISERINGEN 5 KONKLUSION 6 Side

Læs mere

Bilag 16. Den Iterative Model. Til Kontrakt. Den Nationale Henvisningsformidling

Bilag 16. Den Iterative Model. Til Kontrakt. Den Nationale Henvisningsformidling Bilag 16 Den terative Model Til Kontrakt OM Den Nationale Henvisningsformidling Bilag 16 Den terative Model Side 1/9 NSTRUKTON TL TLBUDSGVER: Teksten i dette afsnit er ikke en del af Kontrakten og vil

Læs mere

4. Semesterprojekt System Arkitektur. MyP3000 I4PRJ4 E2004

4. Semesterprojekt System Arkitektur. MyP3000 I4PRJ4 E2004 Ingeniørhøjskolen i Århus 20. december 2004 IKT Dalgas Avenue 2 8000 Århus C 4. Semesterprojekt System Arkitektur MyP3000 I4PRJ4 E2004 Gruppe 4: Benjamin Sørensen, 02284 Tomas Stæhr Berg, 03539 Nikki Ashton,

Læs mere

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing Design af brugerflader 11.1 Samme sted Forskellige steder Sidste kursusgang Samtidigt

Læs mere

Effektivitet og kvalitet i projekteksekvering

Effektivitet og kvalitet i projekteksekvering Webinarrække om projektledelse Intro til Projektmodel Light Effektivitet og kvalitet i projekteksekvering 22.11.2017 Annika Lindberg Hvad er projektmodel light Udviklet af Syddansk Sundhedsinnovation i

Læs mere

Secure O matic. Gruppe 5 2. SEMESTERPROJEKT. Udgave. Projektstyring

Secure O matic. Gruppe 5 2. SEMESTERPROJEKT. Udgave. Projektstyring Udgave 1 2. SEMESTERPROJEKT Gruppe 5 Secure O matic Projektstyring Benjamin Sørensen, 02284 Tomas Stæhr Hansen, 03539 Stefan Nielsen, 02829 Mubeen Ashraf, 9279 Hussein Kleit, 9281 SECURE O MATIC Projektstyring

Læs mere

Undervisningsbeskrivelse

Undervisningsbeskrivelse Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin Institution Uddannelse Fag og niveau Lærer(e) Hold Termin hvori undervisningen afsluttes: Maj/juni 17 VID

Læs mere

2. Metode. 2.1 Interessentanalyse Interessenterne i projektet er vist i nedenstående figur: Aftalekalenderprojektet. Indledning

2. Metode. 2.1 Interessentanalyse Interessenterne i projektet er vist i nedenstående figur: Aftalekalenderprojektet. Indledning 2. Metode Indledning Projektet er udført med flg. faser: Foranalyse (uden iterationer) Analyse (udarbejdelse af kravspecifikation afsnit 9.1, herunder use case beskrivelser afsnit 9.2) Design af skærmbilleder

Læs mere

CURRICULUM VITAE. Personlige oplysninger. Michael Alrøe. Uddannelse. Kurser og efteruddannelse. Michael Alrøe. Navn Fødselsår 1964 LinkedIn

CURRICULUM VITAE. Personlige oplysninger. Michael Alrøe. Uddannelse. Kurser og efteruddannelse. Michael Alrøe. Navn Fødselsår 1964 LinkedIn CURRICULUM VITAE Personlige oplysninger Navn Fødselsår 1964 LinkedIn Michael Alrøe http://www.linkedin.com/in/alroe Uddannelse 1988 Dataingeniør, Ingeniørhøjskolen Århus Teknikum 1985 Student (Matematik/Fysik),

Læs mere

Studieordning for diplomuddannelsen i informationsteknologi

Studieordning for diplomuddannelsen i informationsteknologi Studieordning for diplomuddannelsen i informationsteknologi 1. Introduktion...2 2. Formål...2 3. Indhold...2 4. Adgangskrav...3 5. Eksaminer...3 6. Rammer for sammensætning af studieplan...3 Samlet oversigt

Læs mere

Der er forsøgt skrevet en lille notits hver gang der er lavet noget, dog kan der være nogle ting som ikke er blevet kommenteret.

Der er forsøgt skrevet en lille notits hver gang der er lavet noget, dog kan der være nogle ting som ikke er blevet kommenteret. Indhold 1 Logbog 2 1.1 Log den 01-02-10.................................. 2 1.2 Log den 02-02-10.................................. 2 1.3 Log den 08-02-10.................................. 2 1.4 Log den

Læs mere

Studieordning for kandidatuddannelsen i informationsteknologi ved IT-Universitetet i København, Digital design og interaktive teknologier

Studieordning for kandidatuddannelsen i informationsteknologi ved IT-Universitetet i København, Digital design og interaktive teknologier Studieordning for kandidatuddannelsen i informationsteknologi ved IT-Universitetet i København, Digital design og interaktive teknologier Studieordning af Indhold Indledning Kapitel 1. Uddannelsens titulatur,

Læs mere

Mål Introducerer de studerende for forskellige anvendelser af IT i den offentlige sektor, samt til programmering af sådanne IT systemer.

Mål Introducerer de studerende for forskellige anvendelser af IT i den offentlige sektor, samt til programmering af sådanne IT systemer. Semesterbeskrivelse OID 1. semester. Semesterbeskrivelse Oplysninger om semesteret Skole: Statskundskab Studienævn: Studienævn for Digitalisering Studieordning: Studieordning for Bacheloruddannelsen i

Læs mere

DANSK IT ARKITEKTUR CERTIFICERING

DANSK IT ARKITEKTUR CERTIFICERING DANSK IT ARKITEKTUR CERTIFICERING Practitioneruddannelsen System Arkitekt Practitioner Kompetencebeskrivelse Version 2018.02.08 DANSK IT www.dit.dk/ark Copyright All Rights Reserved DANSK IT ARKITEKTUR

Læs mere

Læservejledning brugsværdi på diplomuddannelsen (og Master i udsatte børn og unge)

Læservejledning brugsværdi på diplomuddannelsen (og Master i udsatte børn og unge) Læservejledning brugsværdi på diplomuddannelsen (og Master i udsatte børn og unge) Projektet af finansieret af Socialstyrelsen. Alle resultater og materialer kan downloades på www.boerneogungediplom.dk

Læs mere

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125 Tietgenskolen - Nørrehus Data warehouse Database for udviklere Thor Harloff Lynggaard DM08125 Juni 2010 Indhold Beskrivelse... 3 Data warehouse... 3 Generelt... 3 Sammenligning... 3 Gode sider ved DW...

Læs mere

1. Release- og Versioneringsstrategi for Serviceplatformen og services

1. Release- og Versioneringsstrategi for Serviceplatformen og services 7. januar 2014. Serviceplatformen 1. Release- og Versioneringsstrategi for Serviceplatformen og services Nærværende notat beskriver Serviceplatformens Release- og Versioneringsstrategier. Formålet med

Læs mere

ADK 1.0 KRAVSPECIFIKATION

ADK 1.0 KRAVSPECIFIKATION ADK 1.0 KRAVSPECIFIKATION Dokumentets versioner (revisionshistorie) Version Dato Ansvarlig Beskrivelse 0.1 23-06-2014 MST Oprettelse af integrationskrav 0.2 25-06-2014 HAH Review for forståelighed og stringens.

Læs mere

Model og Metode til Programudvikling. Jens Dalsgaard Nielsen

Model og Metode til Programudvikling. Jens Dalsgaard Nielsen Model og Metode til Programudvikling v/ Jens Dalsgaard Nielsen 1 Hvem er vi? Jens Dalsgaard Nielsen, Afd for Proceskontrol, I8 Distribuerede RT-Systems group Realtid, kerner, operativsystemer, netværk,..

Læs mere

Rolf Fagerberg. Forår 2013

Rolf Fagerberg. Forår 2013 Forår 2013 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

Læs mere

Faget Softwaredesign (Kerneområdet Systemudvikling 1. år)

Faget Softwaredesign (Kerneområdet Systemudvikling 1. år) Faget Softwaredesign (Kerneområdet Systemudvikling 1. år) Formål: Faget skal kvalificere den studerende til nyudvikling, videreudvikling og integration af itsystemer af forskellige typer på et systematisk

Læs mere

Manual til administration af online booking

Manual til administration af online booking 2016 Manual til administration af online booking ShopBook Online Med forklaring og eksempler på hvordan man konfigurerer og overvåger online booking. www.obels.dk 1 Introduktion... 4 1.1 Formål... 4 1.2

Læs mere

DM517:Supplerende noter om uafgørlighedsbeviser:

DM517:Supplerende noter om uafgørlighedsbeviser: DM517:Supplerende noter om uafgørlighedsbeviser: Jørgen Bang-Jensen October 9, 2013 Abstract Formålet med denne note er at give en form for kogebogsopskrift på, hvorledes man bygger et uafgørlighedsbevis

Læs mere

Kravspecifikation For. Gruppen

Kravspecifikation For. Gruppen Kravspecifikation For Gruppen Indholdsfortegnelse 1. INDLEDNING...3 1.1 FORMÅL...3 1.2 REFERENCER...3 1.3 LÆSEVEJLEDNING...3 2. GENEREL BESKRIVELSE...4 2.1 SYSTEM BESKRIVELSE...4 2.2 SYSTEMETS FUNKTION...4

Læs mere

Design og udvikling af et blodtryks ma lesystem

Design og udvikling af et blodtryks ma lesystem Design og udvikling af et blodtryks ma lesystem 3. semesterprojekt side 1 af 5 Design og udvikling af et blodtryks målesystem Problemformulering I daglig klinisk praksis er der ofte behov for kontinuert

Læs mere