Generisk programmering - opgave 2 - Doxygen



Relaterede dokumenter
Sådan benytter du HOTLINEs ServiceDesk (SD)

Start med at vælge hvilken afdeling der skal laves ændringer i f.eks. fodbold.

Vejledning til dagpengekortet på Selvbetjeningen

Forslag til løsning af Opgaver til ligningsløsning (side172)

EKSEMPEL PÅ INTERVIEWGUIDE

Programmering C. Casper Hermansen Klasse 2.7 Programmering C. Navn: Casper Hermansen. Klasse: 2.7. Fag: Programmering C

Vejledning PROPHIX 11. Brug af cellekommentarer i Prophix. Systemansvarlige Michael Siglev Økonomiafdelingen msi@adm.aau.

Rediger eller opret institutionsmedarbejder på en ungdomsuddannelse

Villys Studiekreds Præsentation af slægten på en hjemmeside.

Så dån udfylder du en ånsøgning om optågelse på en kåndidåtuddånnelse

Spørgsmål og svar om håndtering af udenlandsk udbytteskat marts 2016

Vejledning til personlige funktioner på MIT DANSKE ARK ( eksklusive profil og cv) Indholdsfortegnelse:

SPØRGESKEMAUNDERSØGELSE

1. Procedurer i forbindelse med sygemeldinger

AVERMEDIA. Quick Guide. Version: b

Førstehjælp til opgaver

NEXTWORK er for virksomheder primært i Nordjylland, der ønsker at dele viden og erfaringer, inspirere og udvikle hinanden og egen virksomhed.

Før du går i gang med din ansøgning. Sådan udfylder du ansøgningen

Loginvejledning, tips og hjælp

Team Succes Vestre Engvej 10, 1. Sal, Vejle Tlf. Nr.:

Variabel- sammenhænge

Releasebeskrivelse KMD Sag. Version Nyheder og ændringer i KMD Sag & KMD Sag EDH

Umbraco manual Skolelederne.org. Manual for lokale foreninger 1 / 12

Pia Schiermer, Underviser ved UNI-C og Amtscentrene 2 pia@schiermer.dk

DIN INDSATS SOM FRIVILLIG HAR AFGØRENDE BETYDNING FRIVILLIG I KRÆFTENS BEKÆMPELSE

Notat om håndtering af aktualitet i matrikulære sager

Arbejdsmiljøgruppens problemløsning

Respondenter Procent Skriv navn ,0% I alt ,0% Respondenter Procent I en gruppe ,0% Individuelt 0 0,0% I alt ,0%

Gratis E-kursus. Få succes med din online markedsføring - Online markedsføring alle kan være til

Release note R Mandag den 23. marts Autocore Salg

Miljøministerens besvarelse af spørgsmål nr. H og I stillet af stillet af Folketingets Retsudvalg

Guide: Sådan søger du om folkepension

Kort og godt om NemID. En ny og sikker adgang til det digitale Danmark

IntoWords ipad Tjekliste

Indsend dine ydelseskort via web a-kassen på

Login til den digitale ansøgningsportal

UANMODEDE HENVENDELSER (SPAM)

Det danske sundhedsvæsen

Quick-guide til Dynamicweb

Det sprogpædagogiske kørekort 2012/2013. Modul 2: Blog for begyndere

Om Jobkon til Samtalehåndbogen: Adgang til Jobkon

Funktionalligninger - løsningsstrategier og opgaver

Brugervejledning. til. Landsforeningen Danske Folkedanseres. Medlemssystem (For dansere)

Bilag 14: Transskribering af interview med Anna. Interview foretaget d. 20. marts 2014.

F O A S A R B E J D S L Ø S H E D S K A S S E. Juni for dig under 30

En vurdering af undervisning og undervisningsmiljø. Aalborg Studenterkursus skoleåret 2015/16

Vejledning til Photofiltre nr.129 Side 1

Vejledning - mitcfu.dk

Modul 13, Word 2 Idégrundlag / Afsnit

Kompetencer i centrum

Ledelsestilsyn/Anvisning

Indsend dit dagpenge- eller efterlønskort via web a- kassen på

Det gode samarbejde Pårørende og personale på regionens sociale tilbud fortæller

Psykisk arbejdsmiljø og stress blandt medlemmerne af FOA

Det siger FOAs dagplejere om medicinadministration i dagplejen

Bolig Grundmodul Brugervejledning Boligafstemning

KL S EFFEKTMÅLINGS- REDSKAB TIL KONTROLOMRÅDET

Ferieafregning i HR-Løn

Prøveeksemplar. Hvordan har du det i børnehaven? Spørgsmål om børnemiljø til de 4-6-årige

Formularskabeloner i SkoleIntra

Dette er et godt forløb til den tidlige billedkunstundervisning, da eleverne skal beskæftige sig med grundlæggende male-

Kontrol af koderreliabilitet med -datasignature- og -merge-

Picasa Web. En ressource i SkoleIntra. Version: August 2012

Københavns Universitets Boligfond udbud af møblering af 250 ungdomsboliger på Sølvgade i august 2016 SPØRGSMÅL OG SVAR I

W8 Project Explorer. Introduktion til Project Explorer Oprettelse af link sets Forskellige typer af links Kobling til andre dele af MicroStation

Ordbogsværktøjet mikrov.dk

Tips & Tricks i SAP BusinessObjects XIr2 og XIr3

Tilbudsportalen REST testklient

Differentiation af Logaritmer

Reagér på bivirkninger

VEJLEDNING SPAMFILTERET. 1. Udgave, august 2015 Tilpasset FirstClass version 12.1, Dansk

Oprettelse af Aktivitet

KL S EFFEKTMÅLINGS- REDSKAB TIL KONTROLOMRÅDET

VEJLEDNING FORSKELSBEHANDLING HANDICAP OG OPSIGELSE

Kom godt i gang med Fronter

Kom godt i gang. Sitecore Foundry november Version 1.2

Brugervejledning. ETKA Integration til KT15 i Onlinesystemet

Fra Fælles Mål til læringsmål for forløbet:

Bilag 1b Vejledning til udfyldelse af ESPD

Ny Nordisk Skole. Arbejdshæfte til forandringsteori

HVORDAN INDBERETTER JEG LØN?

UNGES MULIGHEDER I HOLBÆK KOMMUNE

Dansk Ride Forbunds Stævnesystem Netværksopsætning

MANUAL TIL RESULTATINDBERETNING OG OPDATERING AF KLUBSPECIFIKKE DATA I DANSK TENNIS FORBUND OG UNIONERNES HOLDTURNERINGSPROGRAM (HTP)

Orientering om registrering af indsatsen i forbindelse med aftale om særlig indsats for ledige, som risikerer at opbruge deres ret til dagpenge

Versionsopdatering Epos HR 1 Highlights version November 2010

Evaluering. Matematik A på htx

Ansøgervejledning for elever i 9. kl. Brugervejledning til Optagelse.dk

Spørgsmål og Svar - udbud af indkøbsordning 18. oktober Hvad forventer Kommunen at modtage under dette punkt? En uddybning ønskes.

Python 3 Matematik Programmerings kursus:

K Ø B E N H A V N S U N I V E R S I T E T P E R S O N A L E S E K T I O N E N. ScanPas. Fiktivt cpr.nr. Decentral vejledning

starten på rådgivningen

AU-HR Sharepoint Vejledning Medarbejder indplacering

REGIONERNES LØNNINGS- OG TAKSTNÆVN. Vejledning til indplacering af maskinmestre på Overenskomst for professionsbachelorer på det tekniske område

IndFak Kontrakt manual

Forældrevejledning. Brugervejledning til Optagelse.dk

MANUAL ISOREADER. Ver SKIOLD GØR EN FORSKEL!

Transkript:

Generisk programmering - opgave 2 - Doxygen Morten Wendelboe Datalogisk Institut, Københavns Universitet Universitetsparken 1, 2100 København Ø morty@diku.dk Resumé. Denne opgave ser på mulighederne for at anvende dokumentationssystemet Doxygen som dokumentation for kildekode skrevet i C++. 1. Introduktion Når man udvikler programbiblioteker og i det hele taget større programmer, kan dokumentationssystemer hjælpe med at holde styr på kildekoden, og ved anvendelsen af et dokumentationssystem kan søgning efter bestemte funktionaliteter i et bibliotek gøres nemmere, da det ikke er nødvendigt at læse selve kildekoden. I denne opgave forsøger jeg at give et overblik over dokumentationssystemet Doxygen. 2. Anvendelse af Doxygen Doxygen kan bruges til en række forskellige programmeringssprog, men her vil vi nøjes med at anvende C++. Når man skriver en ny klasse, kan man skrive kommentarer ind i tilknytning til selve klassen og dens medlemmer. Hvis man overholder en række konventioner, vil de kommentarer som man skriver blive anvendt af Doxygen til generering af bla. html-sider. Herunder kan man se et eksempel på anvendelsen af kommentarer ved erklæringen af en klasse: //! Dette er en Testklasse. /*! Her staar der lidt mere forklaring til denne Testklasse. Den kan bruges til lidt af hvert. class Test { } Den første linie anvendes til en kort forklaring af hvad klassen bruges til, mens de efterfølgende linier indeholder en nærmere forklaring, hvis en sådan er nødvendig. Written 3. maj 2007.

2 Morten Wendelboe Ved erklæringen af en funktion er det også muligt at skrive kommentarer til bestemte argumenter og at kommentere hvad funktionen returnerer. Et eksempel herpå findes i nedenstående kode: //! En plus-funktion /*! Denne funktion beregner additionen af 2 integers. /*! \param a den ene integer. \param b den anden integer. \return resultatet af a+b. int plus(int a, int b); Jeg har lavet en header-fil indeholdende en klasse og har indsat et par kommentarer, som overholder konvensionen i Doxygen. Det er muligt at indsætte kommentarer på flere måder, men de metoder jeg har anvendt i header-filen er de mest udbredte. Herunder kan man se header-filen: #ifndef MYTESTTEST_H #define MYTESTTEST_H #include <string> #include <iostream> using namespace std; //! Dette er en Testklasse. /*! Her staar der lidt mere forklaring til denne Testklasse. Den kan bruges til lidt af hvert. class Test { public: //! en konstruktor. /*! Denne konstruktor boer ikke goere noget. Test(); //! En printerfunktion /*! Denne printerfunktion printer teksten i argumentet til konsollen. /*! \param s en std::string, som bliver printet paa konsollen. void printer(std::string s); //! En plus-funktion /*! Denne funktion beregner additionen af 2 integers.

3 }; #endif /*! \param a den ene integer. \param b den anden integer. \return resultatet af a+b. int plus(int a, int b); Når man anvender Doxygen på header-filen, kan man få genereret htmlsider, et latex-dokument samt andre dokument-typer. Latex-dokumentet kan være nyttigt som en reference-manual, mens html-siderne er velegnede til søgning efter bestemte funktionaliteter eller som online dokumentation. Hvis man anvender html-dokumentationen er det muligt at klikke på hyperlinket, hvor der står Classes. Herved får man et skærmbillede lig det, der er vist på figur 1. Ud for hver klasse er der en kort beskrivelse af klassen. Denne beskrivelse stammer fra den første kommentarlinie i headerfilen. Hvis man klikker på Test-klassen fremkommer en side, som svarer til den, der er vist på figur 2 og figur 3. På de nævnte figurer kan man se, at Doxygen har oplistet funktionerne på en overskuelig måde, så det fx er nemt at finde ud af, om en klassen indeholder en funktion med en bestemt opførsel. 3. Anvendelsesovervejelser Der er en række anvendelsesmuligheder, som jeg ikke har fået undersøgt nærmere. Det drejer sig bla om at Doxygen automatisk kan generere afhængighedsgrafer, hvilket kan være anvendeligt, specielt hvis man skal sætte sig ind i klasse-designet. Man kan enten bruge Doxygen for sig selv, eller i forbindelse med et udviklingsmiljø. Hvis man anvender Doxygen for sig selv vil Doxygen primært fremstå som et program, der kan frembringe en bedre visualisering af de kommentarer, man skriver ind i kildekoden. Anvendes Doxygen derimod i forbindelse med et udviklingsmiljø er der mulighed for, at udviklingsmiljøet kan drage fordel af Doxygens visualisering. Man kan fx forestille sig, at en bestemt funktion er kommenteret, og så er det muligt for udviklingsmiljøet at fremvise kommentarerne når programmøren skriver funktionens navn. Således kan det fx lade sig gøre at give programmøren besked om, i hvilken rækkefølge argumenterne til en funktion skal gives. Desværre kender jeg endnu ikke til nogle sådanne udviklingsmiljøer. Hvis Doxygen anvendes i et udviklingsmiljø, kan man forestille sig at udviklingsmiljøet gør brugeren opmærksom på manglende kommentarer bla. i forbindelse med erklæringer af nye funktioner. Udviklingsmiljøet kunne fx undersøge, om der findes en kommentar for hver parameter og returværdien

4 Morten Wendelboe til en funktion. 4. Konklusion Doxygen er et dokumentationsværktøj, som gør det let at skabe et overblik over klasser og funktioner i et bibliotek, således at man ikke behøver at læse kildekoden for at finde ud af om bestemt funktion er tiltænkt en ønsket opførsel. Jeg er desværre ikke bekendt med nogen udviklingsmiljøer, som anvender Doxygen til at give brugeren kommenterende information, mens brugeren skriver kildekode.

Figur 1. Oversigt over hvilke klasser der er. 5

6 Morten Wendelboe Figur 2. Første del af oversigt over Test-klassen.

Figur 3. Anden del af oversigt over Test-klassen. 7