Månedsrapporten. Bachelor projekt

Størrelse: px
Starte visningen fra side:

Download "Månedsrapporten. Bachelor projekt"

Transkript

1 Department of Electrical Engineering and Information Technology Copenhagen University College of Engineering Lautrupvang 15, 2750 Ballerup Bachelor projekt Synopsis I denne rapport vil udviklingen af en Månedsrapport baseret på timeregistreringssystemet Timelog blive gennemgået. Selve programmet og dennes brug af diverse teknologier, heriblandt webservices, Excel og XML fler vil blive analyseret og beskrevet i rapporten. Selve opgaven tager udgangspunkt i kundens ønsker/krav til softwaren, hvilket komme til udtryk i kravspecifkationerne der bliver beskrevet i de indledende afsnit. Herefter beskrives teorien og den metode der har ligget til grund for rapporten. I de afsluttende afsnit gennemløbes de tankesæt og beslutninger der er taget i henhold til produktet, hvilket er beskrevet set i forhold til kundens brug af produktet. Til slut afsluttes rapporten med en refeksion/ konklusion over hele projektforløbet og det endelige produkt. Deltager Allan Møller Ole Rydahl IHK Koordinator Studienr Underskrift Jan Viegand Viegand & Maagøe Vejleder Censor Forord Rapporten er blevet lavet som afslutning på IT Diplomingeniør udannelsen, der har dannet grundlag for den viden og erfaring m.v. der ligger til grunde for projektet. Grundlaget for rapporten er selve produktet, der er ønsket af kunden for at afaste de tilknyttede medarbejdere. Ophavsmanden til Ideen er min vejleder Jan Viegand der også har bistået med hjælp og vejledning til projektet, hvilket jeg er taknemlig for. Yderligere vil jeg også sende

2 en tak Merethe Brade, samt de personer der har været behjælpelige med detaljer og diskussioner omkring projektet. Selve rapporten er opbygget med henblik på at give læseren kronologisk beskrivelse af, hvordan produktet er kommet fra start til slut. Rapporten kræver en vis teknisk forståelse for at kunne læses, hvilket der dog om muligt er blevet taget hensyn til i form af diverse henvisninger til tekniske udredninger. Til sidst en tak til frmaet Viegand & Maagøe der har givet mig mulighed for at trække på frmaets resurser, til brug af frembringelsen af dette projekt. 2

3 Læsevejledning Rapporten er skrevet med henblik på at give læseren mulighed for at kunne forstå programmets tilblivelse, trods dennes eventuelle manglende tekniske fagkundskaber. Der kan dog være tekniske termer, hvor læseren ønsker yderligere redegørelse, hvilket enten gøres via teoriafsnittet, fodnoteforklaringer eller ordlisten. Afsnittene kan også indeholde kodesprog og engelske termer, der alle er markeret med kursiv så læseren lettere kan søge viden om disse andetstedsfra. Desuden er alle forkortelser skrevet med store bogstaver og tilhørende udspecifcering, efter forkortelsen tages i brug for første gang. Hvis der har været brugt eksterne kilder som grundlag for et afsnit, henvises der efter afsnittet til kilden i litteratur listen. Det har været mit ønske at give læseren en forståelse for processen bag projektet, hvilket er gjort ved at kronologisk opbygge rapporten efter den måde projektet har forløbet fra start til slut. God læsning. 3

4 Indholdsfortegnelse FORORD LÆSEVEJLEDNING INDHOLDSFORTEGNELSE 1.INTRODUKTION INDLEDNING 1.2BAGGRUND 1.3SYSTEMET TIMELOG 1.4PROBLEMFORMULERING PROJEKT AFGRÆNSNING AFGRÆNSNINGER 8 1.6KRAVSPECIFIKATIONER Formulering af krav Dokumentkonventioner Eksterne krav til brugergrænsefade Funktionelle krav Ikke funktionelle krav RESSOURCER 13 3.TEORI HTTP SSL/TLS ASP.NET XML API NET webservices METODE UNIFIED PROCESS 1SCRUM 1.9METODE VALG PROBLEM ANALYSE KRAVSPECIFIKATIONS ANALYSE API EN TIMELOG API SIKKERHED Kommunikation API/bruger validering API METODER DATAINDLÆSNING EXCEL OPSÆTNING Excels opgaverude Grafsk fremstilling

5 6.PROJEKT LØSNING EN HURTIG OVERSIGT 1.17KOMMUNIKATION 1.18BRUGERVALIDERING 1.19DATAUDTRÆK 1.20MANUEL INDLÆSNING AF DATA 1.21DATAINDLÆSNING OG FREMVISNING 1.22DESIGNMODEL 1.23KLASSE ANSVARSOMRÅDER KONKLUSION PRODUKT KONKLUSION 1.25PROJEKT KONKLUSION POST /COMPANYSHORTNAME/SERVICE.ASMX HTTP/

6 1. Introduktion 1.1 Indledning I enhver virksomhed ligger økonomistyringen til grund for en sund og velfungerende virksomhed. Da økonomistyringen som oftest er baseret på et stykke software, er denne en vigtig ressource for virksomheden, hvilket af samme årsag gør at dennes begrænsninger også er begrænsninger for virksomhedens virke. Virksomhederne er som oftest startet med moderate systemer, der som udgangspunkt har været tilstrækkelige til styring af økonomien, men som i takt med virksomhedens vækst har givet forskellige begrænsninger i den daglige drift. Virksomheden må som oftest leve med disse begrænsninger, eller om muligt udvikle/købe et system der opfylder de ønskede funktioner. Begrænsningerne betyder typisk øgede omkostninger til økonomistyringen, hvilket for alle virksomheder giver et mindre resultat på bundlinjen. Derfor er det vigtigt for en virksomhed at have et tilstrækkelig system der både dækker de umiddelbare krav og de fremtidige krav, uden at dette ligger for meget pres på virksomhedens økonomi. Ud fra erfaringer i driften opstår der som regel specifkke behov, der hvis opfyldt kunne øge drift effektiviteten betydeligt. Behovene kan i specifkke tilfælde ikke dækkes af et enkelt system, hvilket betyder at der skal udvikles specielle løsninger for at komme behovene til livs. Har virksomheden et system, hvor det er muligt at videreudvikle specifkke egenskaber, kan dette typisk gøres billigere end hvis man udskiftede systemet. 6

7 1.2 Baggrund Firmaet Viegand & Maagøe er en konsulentvirksomhed, der arbejder med effektiv udnyttelse af energi og klimarigtige løsninger i Danmark og i udlandet. Firmaet rådgiver og kommunikerer energieffektivitet for offentlige og private virksomheder, om alt fra små apparater til langsigtede strategier mv. for blandt andet Center for Energibesparelser, Energistyrelsen, EU-kommissionen, den engelske regering, den irske regering, Miljøstyrelsen, Dansk Energi og de største industrivirksomheder i Danmark. Til dagligt samarbejder Viegand & Maagøe med forskningsinstitutioner og konsulenter i både Danmark og udlandet. Viegand & Maagøe er hastigt vokset fra et få antal medarbejdere til de cirka tredive frmaet i dag består af. Alle medarbejdere undtaget den daglige drift arbejdere med de forskellige opgaver frmaet får via diverse kontrakter. Opgaverne kan enten være rådgivning til eksterne projekter, eller som komplette projekter i sig selv. Typisk starter et projekt med at projektlederen allokerer timer til de forskellige delprocessor i projektet, herefter er det optil de implicerede medarbejdere, der typisk er tilknyttet fere projekter, at registrere den eksterne tid. Endvidere er det også optil medarbejderen, at registrere tid brugt på interne møder som f eks. månedlige budget møder. Til tids registreringer bruges Timelog1, der gennem fere overvejelser har vist sig at være det bedste/billigste til opgaven. Timelog systemet giver herudover også projektlederne en masse værktøjer til hjælp med projektstyringen, der gør det ideelt til netop denne opgave. Da Timelog primært kun er et projektstyringssystem, har frmaet måtte bruge regnskabsprogrammet Summasummarum2 til regnskabsstyring. Denne sammensætning af drift programmer har givet dem nogle udfordringer i den daglige drift, da økonomiafdelingen er nødsaget til manuelt at udtrække data fra Timelog, for herefter at trække det ind i Summasummarum. Firmaet har været på udkig efter et erstatningsprogram med de samme egenskaber som de to programmer har, men det har ikke været muligt at fnde et tilfredsstillende produkt, der uden videre kunne erstatte disse, med prisen taget i betragtning. Man har derfor valgt at beholde de to systemer for i stedet at kigge på, hvordan man kunne integrere dem for at udføre bestemte opgaver Da Timelog indeholder alt data omkring projekterne har man med programmet som udgangspunkt, ønsket at danne en månedlig rapport for at give et økonomisk overblik over frmaets aktiviteter. Derfor har man lavet et Excel ark, hvor data fra Timelog og 1 Et online baseret time registrerings system

8 Summasummarum samles til den månedlige rapport, hvilket på baggrund af diverse begrænsninger de to programmer har, er en tidskrævende opgave. Man har derfor ønsket en mere automatiseret proces der kunne udføre opgaven, hvilket danner baggrund for projektet. 1.3 Systemet Timelog Timelog project er et webbaseret timeregistrerings system specielt udviklet til projektorienteret virksomheder. Systemet kan enten lejes som en service, eller købes som licens til installation på egen server. Timelog project giver frmaet mulighed for at styre projekter og timeforbruget hertil. Dette kan enten gøres via hjemmesiden, eller via et program kaldet Timetracker, der ved hjælp af medarbejderens personlige Timelog Project Login TLP login, kan registrere antallet af timer der er brugt på et projekt. Medarbejderen kan også registrere diverse udlæg, rejseomkostninger under et specifkt projekt. Når medarbejderen har registeret alle dennes data kan han/hun afslutte den færdigt registrerede tidsperiode, hvilket vil give ledelsen mulighed for at følge omsætningen. Timelog project gør det yderligere muligt for diverse projektledere at sætte parametrene på de forskellige projekter såsom time pris osv.. Herudover kan Timelog Project også give projektlederen et overblik over budgetter, timeforbrug på aktiviteter og faser inkl. Muligheden for at se Gantt-kortet3 over et projekt. Faktureringen kan nemt laves enten løbende eller ved et afsluttet projekt, hvor fakturaen så vil indeholde alle de aktiviteter et givet projekt måtte have haft. I regnskabs øjemed kan ledelsen/regnskabs afdelingen udtrække eller danne sig et overblik over diverse nøgletal, såsom timeforbrug, belastning og konsulenternes faktureringsgrad. Dermed muliggøres det at hurtigt danne et overblik over diverse projekter, medarbejdere og disses aktiviteter. Til udvikling af egne programmer har Timelog stillet en API inkl. dokumentation til rådighed.(5) 3 Gantt-kort, simpelt grafsk system til planlægning og kontrol af arbejdsopgaver. 8

9 1.4 Problemformulering Opgaven går i sin helhed ud på at lave et program som giver mulighed for at generere en månedsrapport, ud fra det eksisterende Timeregistrerings system Timelog. Behovet for programmet er opstået i forbindelse med virksomhedens vækst, hvorved et økonomisk overblik er blevet mere tidskrævende at fremstille. I dag er det muligt for frmaet at udtrække disse data manuelt, hvilket økonomiafdelingen har til opgave. Programmet skal derfor kunne udtrække disse data, via en API4 i det eksisterende system og generere en rapport ud fra disse. Dataene skal udtrækkes i XML5 format der skal præsenteres i et Excel ark. Dataene skal både præsenteres som en rapport og grafsk for på den måde at kunne give et hurtigt overblik over den økonomiske situation. Programmet skal give brugeren mulighed for selv at vælge en bestemt tidsperiode og udtrække dataene fra den angivne tidsperiode, samt den samme periode for året før. Dette vil give mulighed for at analysere vigtige nøgletal og disses ændringer. Opgaven er med tiden blevet mere kompliceret, da man undervejs har udvidet kravene til, hvilke nøgletal og dets fremvisning man ønskede at se. Dette tager omtrent, hvad der svarer til en arbejdsdag at udføre for en enkelt person i økonomiafdelingen. Da frmaet er en konsulentvirksomhed bestående af fere forskellige opgaver/projektledere der hver især styrer timeforbruget på et projekt, kan der til tider opstå en del efter fakturering, hvilket så for at få et månedligt overblik vil kræve en ny månedsrapport, der igen tager en del tid at producere. Rapporten skal derfor kunne generes inden for et par minutter, hvilket vil gøre at det kan bruges i daglige økonomiske overvejelser. Firmaet opererer i en konkurrence præget verden, hvor oplysninger som timeantal og pris er følsomme data som, hvis kompromitteret kan have indfydelse på frmaets virke. Programmet skal derfor bruge en krypteret SSL6 forbindelse når der skal udtrækkes data fra Timelog. De til brugeren tilknyttet adgangs informationer, skal bruges for at give en yderligere sikkerhed omkring hvem der har adgang til hvad. 4 Se afsnittet omkring API. 5 Se afsnittet omkring XML. 6 Se afsnittet omkring SSL/TLS. 9

10 2. Projekt afgrænsning 1.5 Afgrænsninger Da programmet kræver information, der kun kan hentes via en API/Webservice stillet til rådighed af Timelog, vil dette være en afgrænsning hvorom det ikke giver mening at diskutere andre muligheder. Webservicens metoder og kommunikations begrænsninger, vil derfor også være en naturlig afgrænsning af programmet. Webservicen distribuerer den ønskede information via XML fler, der derfor begrænser muligheden for at bruge andre kommunikations beholdere såsom http fler. Det er heller ikke muligt at opsætte signe egne XML opmærkninger, hvilket kunne have hjulpet til med at begrænse mængden XML fler der skal hentes. Virksomheden lejer servicen, hvilket vil sige at den ikke er hostede lokalt på virksomhedens egne servere. Begrænsningerne heri ligger omkring muligheden for valg af sikkerhed, der er begrænset til at skulle bruge en SSL forbindelse. Om dog ikke en begrænsning, men da Webservicen er skrevet i kode sproget C#, vil det give god mening at bruge dette som udviklings sprog. 10

11 1.6 Kravspecifkationer Formulering af krav Kravspecifkationerne har til formål at beskrive de af kunden, Viegand & Maagøe, stillede krav, de funktionelle krav er primært blevet opstillet i samarbejde med kundens økonomi afdeling der til dagligt vil skulle bruge produktet. Disse krav skal som minimum være opfyldt for at kunden er tilfreds med produktet (månedsrapporten). Kravene er blevet produceret ud fra IEEE Recommended Practice for Software Requirements Specifcations Std , der beskriver de overvejelser der skal gennemgås for at producere nogle gode kravspecifkationer. Disse krav er dog som udgangspunkt blevet produceret i samarbejde med kunden, der ved hjælp af eksisterende rapporter kunne dannede grundlag for disse krav. Kravene tager derfor afsæt i de rapporter, kunden på eget initiativ har udviklet. Første udkast blev udarbejdet med Timelog og de eksisterende rapporter som grundlag. Herefter blev kravene, via fere møder, redigeret i samarbejde med kunden (økonomi afdelingen og ledelsen), for til sidst at blive godkendt af slut brugeren til produktet (økonomi afdelingen). De mere tekniske aspekter af kravene er blevet opstillet i forbindelse med de begrænsninger Timelog sætter, og jvf. Møder med teknisk kvalifcerede medarbejdere i frmaet. Fremgangsmåden, og valget af standard, der ligger til grund for kravene, har jeg valgt for at give en klar enighed omkring kravene til programmet, hvilket gerne skulle medvirke at kunden er mere tilfreds med slutproduktet. Derudover har fremgangsmåden været med til at eliminere evt. skjulte krav, hvor kunden opfatter noget som værende implicit, men hvor kravet i virkeligheden er mere kompliceret at implementere Dokumentkonventioner Kravspecifkationerne er lavet med IEEE Std som Template, dog er alle afsnit ikke brugt da de ikke havde relevans, eller blev nævnt andre steder i rapporten. Kravspecifkationerne har fået en bogstavs kode, der vil blive brugt som reference i Use Case8 diagrammerne og testningen Se 9 11

12 Funktionskravene er blevet angivet med en prioritet, hvilket angiver nødvendigheden af kravet i forhold til programmets virke, de beskriver ikke om de skal inkluderes i programmet eller ej. Da kunden allerede havde udviklet en Månedsrapport, vil denne blive brugt som Template til den færdige opsætning af rapporten. Denne er derfor vedlagt som krav og kan ses i afsnit Der er af kunden blevet gjort opmærksom på at ikke alle nøgle tal i Templaten kan hentes fra Timelog, disse er ikke repræsenteret som krav da kunden selv ønsker at tilføje disse Det operative miljø Programmet skal kunne køre på en computer med operativsystemerne Vista og Windows 7. Selv programmet skal have Excel 2007 som platform Brugergrænsefade BG Eksterne krav til brugergrænsefade Rapportprogrammet skal have frmalogoet i rapporten. Hardwaregrænsefade Der er ikke blevet stillet nogle krav til hardwaregrænsefaden Softwaregrænsefade SG-1 SG-2 SG Programmet skal integreres med Timelog. Programmet skal bruge den API som Timelog stiller til rådighed. Programmet skal bruge de funktioner/metoder som Timelog stiller til rådighed. Kommunikationsgrænsefade KG-1 KG-2 Kommunikationen skal krypteres via SSL9 Kommunikationen skal gøres via http10(s). 9 Secure Sockets Layer. Se

13 Funktionelle krav MR-1 Prioritet Stimuli Respons skal kunne gemmes som Excel format. Mellem Brugeren vælger gem. Rapporten gemmes som Excel dokument. MR-2 Prioritet Stimuli Respons Brugeren skal kunne redigere i rapporten efter eget ønske Mellem Brugeren tilføjer eget data. Dokumentet opfører sig som normalt Excel ark. MR-3 Prioritet Stimuli Respons Månedsrapporter som er blevet gemt, skal kunne åbnes uden at data skal hentes fra Timelog. Mellem Brugeren åbner et gemt dokument. Den gemte rapport åbnes. MR-4 Prioritet Stimuli Respons skal fremvise det månedlige resultat grafsk Lav Dataene fra alle måneder i det igangværende år hentes. En graf fremvises som viser det resultatet per måned. Tidsperiode TP-1 Prioritet Stimuli Respons Alternativt Rapportprogrammet skal give mulighed for at vælge en tidsperiode. Høj Brugeren vælger den ønskede tidsperiode Regnskabet fra den ønskede tidsperiode visses. Brugeren bliver meddelt at den ønskede periode ikke er registeret i Timelog TP-2 Rapportprogrammet skal visse regnskabet fra den samme tidsperiode det foregående år. Mellem Brugeren vælger den ønskede tidsperiode Regnskabet fra den samme periode det foregående år visses. Brugeren bliver meddelt at den ønskede periode ikke er registeret i Timelog Prioritet Stimuli Respons Alternativt Nøgletal NT-1 Prioritet Stimuli Rapportprogrammet skal hente de ønskede nøgletal. Se afsnit: Høj Dataene hentes fra Timelog 13

14 Respons NT-2 Prioritet Stimuli Respons NT-3 Prioritet Stimuli Respons En Månedsrapport med de ønskede nøgletal frembringes. Rapportprogrammet skal fremvisse de ønskede nøgletal efter ønsket opsætning. Se afsnit: Høj Dataene redigeres og sættes op. En Månedsrapport med de ønskede nøgletal frembringes. Rapportprogrammet skal have mulighed for at manuelt indtaste de Timer som Timelog ikke kan levere. Se afsnit: Høj Dataene indtastes. En Månedsrapport med de ønskede nøgletal frembringes. Ikke funktionelle krav Programkoden PK-1 PK-2 PK Krav til ydeevne KY Programmet skal programmeres i C# Programmet skal laves som tilføjelsesprogram til Excel. Programmet skal kunne bruges i Excel 2007 Rapporten må max tage 30 sekunder at generere. Sikkerhedskrav SK-1 SK-2 Programmet skal bruge den af Timelog stillet sikkerhed (Unik Sitecode). Programmet skal overholde de af Microsoft Excel stillede sikkerhedskrav Nøgletals oversigt Nøgletal Omsætning Nøgletal for intern tid Normtid fuldtidsmedarbejder e Normtid Administration Ledelse Kontorsager Salg og markedsføring Beskrivelse Den i Timelog registreret omsætning Det gennemsnitlige månedlige time antal for én fuldtidsmedarbejder. Det samlede antal normtimer for alle fastansatte Antal timer registreret under administration. Antal timer registreret under ledelse. Antal timer registreret under kontorsager Timer registreret under denne post. 14

15 Efteruddannelse Antal timer registreret. Nøgletal for ekstern tid (Projekttyper) Kommunikation Antallet af timer registreret under kommunikationsopgaverne. Energirådgivning Antal timer registreret under energirådgivning. Energiregulering Antal timer registreret under energiregulering. Klima Timer registreret under Klima projekter Udviklingsbistand Timer som er i registret som bistand Diverse timer Diverse timer Ferie Sygdom Orlov Undertid Overtid Udbetalt Flextid Flexsaldo Nedskrivning De ansattes ferie timer. Sygdom og børns 1. sygedag. Orlov. Normtid minus arbejdstid for de fastansatte som har arbejdet mindre end Normtid. Timer registret over normtid. Arbejdstid-normtid for de fastansatte, der har arbejdet mere end normtid. Timer som er udbetalt til løn under Flex. Antal timer fra Flexsaldo, som er udbetalt Hvor mange timer der er registeret i Flexsaldo For fastansatte medarbejdere Værdien af de nedskrivninger som er sket i den måned. Rapport opsætning Selve Rapporten er opdelt i 4 områder Resultat, nøgletal, omkostninger og Balance Disse områder er af kunden repræsenteret i hver deres ark i et Excel ark, hvilket kunden ønsker bliver bibeholdt. De 4 ark ønskes at have nedenstående layout. Se Ressourcer Til udvikling af softwaren bruges Visual studio 2008 inkl. VSTO. 15

16 3. Teori I teori afsnittet har jeg valgt at beskrive den teori der danner grundlag for produktet. Jeg har valgt ikke at drage selve produktet ind i afsnittet, hvilket primært vil blive gjort i analysen, der i nærmere detalje vil beskrive brugen af de tekniske kvaliteter der gennemgås i dette afsnit. Dog har jeg valgt kort at nævne afsnittets relevans til produktet. Detaljegraden er holdt på et minimum, da denne ellers i visse tilfælde kunne blive meget omfattende. Det er dog min overbevisning at afsnittet giver en elementær forståelse af de tekniske teorier projektet bruger HTTP Da al kommunikation med Timelog forgår via HTTP protokollen, har jeg valgt at give en kort beskrivelse af denne, hvilket gerne skulle give kunden en bredere forståelse for de tekniske sammenhæng i programmet. HTTP, forkortelse for Hyper Text Transfer Protocol, beskrevet i [RFC ]12 og [RFC 2616]13, er en protokol der bruges til at distribuere information via nettet. Distributionen forgår via en Web Browser, eks. Firefox, som klienten bruger til at lave en Request til en Webserver, eks. Apache, som har den af klienten ønsket information. Via protokollen Transmission Control Protocol TCP laver klienten en forbindelse til serveren på port 80, hvorefter klienten sender en HTTP Reguest, hvilket serveren så kvittere med en HTTP Response. Se understående illustration. 11 Request for Comments

17 Http request, response 1 Selve anmodningen (request), kan være efter en specifk fl på serveren som, f eks. En Hypertext Markup Language HTML fl der kan indeholde forskellige informationer. Serveren modtager anmodningen på den specifkke fl f eks. Index.htm og returnere flen til klienten, herefter lukker serveren forbindelsen via TCP protokollen. Nedenstående er et eksempel på en request, response fra klient til server, flen der hentes er en simpel index.html fl med teksten test. Selve flen bliver herefter fortolket af klientens browser, som i dette tilfælde blot ville skrive test. Eks. http request14 GET / HTTP/1.1 Host: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-gb; rv: ) Gecko/ Firefox/ Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-gb,en;q=0.5 Accept-Encoding: gzip,defate Accept-Charset: ISO ,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Eks. http response HTTP/ OK Date: Sat, 16 Oct :36:58 GMT Server: Apache Last-Modifed: Fri, 15 Oct :06:53 GMT ETag: "481fc5ea-15-4cb8b45d" Accept-Ranges: bytes Content-Length: 21 Connection: close Content-Type: text/html 14 Optaget med Wireshark 17

18 <html> test </html> Wireshark optagelse 1 Det ses også at selve arkitekturen er en klient-server arkitektur hvor serveren altid er tændt med fast IP, hvor den venter på requests fra fere klienter. Da webserveren ikke gemmer nogen information omkring klienten, dvs. at den blot sender det der er blevet anmodet om, kaldes http for en Stateless protokol. Et problem med en stateless protokol kan være at for hver bruger interaktion, skal der hentes et nyt dokument dvs. ny request med et efterfølgende response, hvilket giver en masse unødig trafk og på den måde en dårlig klient oplevelse. En måde at komme problemet til livs kunne være at gemme informationer på serveren omkring klientens færden, for på den måde, kun at give klienten de informationer der skal ændres, så ting som menuer og logoer ikke hentes igen SSL/TLS Da kunden via kravet KG-1 har bestemt at kommunikationen mellem Timelog og klienten skal være krypteret med SSL/TLS, beskrives den i følgende afsnit. Dette skulle give kunden en bredere forståelse for produktets virke. Secure Sockeets Layer SSL og efterkommeren Transport Layer Protocol TLS, der giver muligheden for sikker krypteret kommunikation mellem server og klient. Behovet for SSL er blandt andet opstået i forbindelse med de data transaktioner som både klient og server ikke er interesseret i skal komprimenteres som for eksempel internet betalinger. I skemaet Wireshark optagelse 1 ses det at selve HTML flen ikke bliver sendt krypteret hvilket giver mulighed for at data kan blive komprimenteret. En situation som ikke ville være at foretrække, hvis det havde været en betalings transaktion. Følgende problem stillinger tager SSL sig af: Hvordan kan man verifcere udbyderen af den ønskede service? Hvordan kryptere man den kommunikaton mellem klient og server for at undgå at nogen lyter med? Hvordan kan man verifcere klienten? Ved en SSL/TLS forbindelse skal der i starten af kommunikationen udveksles forskellige informationer omkring, hvordan klient og server skal kommunikere sikkert. Denne opstart kaldes for SSL handshake, hvori blandt andet krypterings algoritmer udveksles, f.eks. Data 18

19 Encryption Standard DES15, og certifkater. For lettere at forstå denne proces har jeg valgt at illustrere med forklarende tekst Første kontakt Klient og server udveksler information om SSL version og krypterings præferencer, serveren vælger ud fra klient listen den ønskede kryptering, hvilket både klient og server kan bruge Server bekræfter identitet

20 (1) I Denne proces sender serveren sit certifkat, der er verifceret af en certifcate authority CA og som indeholder serverens public key. Klientens browser opretholder en liste over godkendte CA s og deres public keys, hvilket så giver den mulighed for at sammenligne med det certifkat den har modtaget fra serveren. Er CA en på listen bruges dennes public key til at verifcere certifkatet. Hvis ikke certifkatet er godkendt advares klienten, der så skal beslutte om han/hun stoler på serveren. (2) Herefter kan serveren bede klienten om at sende dennes certifkat, normalt bruges dette kun ved meget sikre datatransmissioner til f eks. Offentlige eller private institutioner her kan nævnes digital signatur som bruger klient certifkater. (3) Til slut sendes et Server_hello_done som angiver at serveren er færdig Klienten svarer og Handshake afsluttes (1) Havde serveren bedt om et klient certifkat ville dette blive sendt som det første, hvis ikke forsættes processen. 20

21 (2) Klientens browser laver en sessions nøgle med serverens public key og denne sendes til serveren. (3) Browseren fortæller serveren at fremtidig kommunikation vil blive krypteret med ovenstående sessions nøgle. (4) Til sidst afslutter browseren sin del af handshaket, ved at sende en krypteret besked om at den er færdig. (5) Serveren informere om at denne vil bruge sessionsnøglen til fremtidig kommunikation. (6) Til sidst afslutter serveren med en krypteret besked om at den er færdig. Efter server afslutningen vil fremtidig kommunikation være krypteret ved brug af den udvekslet sessions nøgle (3)(10)(11) HTTPS Hypertext Transfer Protocol Secure HTTPs er blot en http med SSL/TLS til at give kryptering når der skal laves sikker kommunikation til f eks. web butikker eller lignende. Kommunikation og selve handshaket fungerer ligesom et SSL handshake ASP.NET Timelog er baseret på ASP.NET, hvilket gør forståelsen af denne til en essentiel del i udviklingen af programmet. Ydermere giver forståelsen for ASP.NET også en bredere forståelse for produktets virke. Active server pages ASP og.net frameworket er en del af Microsofts udviklings værktøjer til webapplikationer. Ideen er blandt andet at man kan lave webapplikationer med en tvist af Microsoft design. ASP.NET køres på server niveau og bliver tilgået via http, men som sprog er den ikke stateless, hvilket selvfølgelig giver den nogle fordele over for http, da man kan administrere hvilken tilstand klienten er i f eks. Om klienten er logget ind eller ikke. Dette kan gøres via de forskellige tilstande som f eks. Viewstate, Session state osv. Vil nærmere beskrive disse, men først lidt om hvordan en server administrere en request med ASP.NET. I HTTP beskrives der hvordan en server modtog en request fra en klient og returnere en respons, denne proces er den samme med ASP.NET dog med et ekstra lag på server niveau. Anmodningen til serveren der før var en *.html fl vil nu være en *.aspx fl m.f. Når.NET frameworket er installeret på en server med IIS så vil den automatisk lade aspnet_isapi.dll klare et request med fl typen *.aspx m.f..(2) 21

22 ASP.NET request 1 Ovenstående beskriver, hvordan en klient request bliver behandlet set fra webserverens side, hvordan den i selve ASP.NET delen tager sig af denne vil jeg komme nærmere ind på. Det ses at modsat et http request, hvor serveren sendte et respons uden behandling, er dette ikke tilfældet med en ASP.NET klar server. Efter webserveren har modtaget et request, lader den ASP.NET delens http Handler klare behandlingen, for til slut at sende en genereret html fl tilbage til webserveren der sender et respons til klienten HTTP Handler Når ASP.NET delens http Handler modtager en ASP.NET side skal denne igennem en cyklus af forskellige faser som, hver har indfydelse på den request der returneres til klienten. Handleren holder også styr på om der er tale om en postback DVS. Et returneret svar fra klienten og hvad der skal ske med denne. Når klienten laver et postback sendes formen, fra klienten, og sidens ViewState der indeholder sidens tilstand og events. På den måde kan serveren holde styr på hvilken State klientens side er i. Klienten kan så komme tilbage med formen og viewstaten på et senere tidspunkt, hvilket betyder at klienten slipper for at gennemgå samme procedure som før. Selvom viewstaten umiddelbart lyder som en god ide, men ej forglemmes at viewstaten da den jo indeholder alle klientens tilstand kan blive betydelig stor. Da denne skal transporteres mellem klient og server vil det koste på ydelsen/oplevelsen af sidens load tid, hvilket programmøren skal være opmærksom på. 22

23 HTTP Handler illustrationen viser de faser en ASP.NET side skal gennemgå før den returneres til Webserveren. HTTP Handler 1 (0) Den efterspurgte ASP.NET sides klasse instansieres, og sidens kontrol hierarki opbygges. (1) initialiseringfasen siden og alle dens kontrollere udfører deres init event alle kontroll egenskaber som kode syntaksen beskriver og bliver loadet. (2) Denne fase bliver kun udført i tilfælde af postback. Dataene gemt fra tidligere besøg loades og rekursivt trukket ind i kontrol hierarkiet. (3) Denne fase bliver kun udført i tilfælde af postback. Dataene klienten har tilføjet bliver loadet. Dette gøres ved at kontrollen implementerer serverens IPostBackDataHandler som så kalder kontrollerens LoadPostData() metode der henter dataene ind. (4) Siden loades sammen med dens viewstate og postback data. (5) Denne fase bliver kun udført ved postback. Hvis en postback fra klienten kaster et specielt event kunne være en rul ned menu. (6) Viewstaten gemmes i en 64 bit encoded streng. (7) Sidens HTML genereres og viewstaten ligges i et skjult felt. (8) HTML siden med den skjulte viewstate returneres til klienten. Herefter starter det hele forfra ved ny request.(1) 23

24 1.1.9 XML Et af de store problemer ved udveksling af data mellem forskellige software miljøer er, hvordan disse kan tolkes af begge systemer uden fejlfortolkninger? Hvis man f eks. Sendte en simpel tekst fl over en net forbindelse til et andet stykke software, hvordan skulle modtageren kunne forstå sammenhængene i denne fl? Løsningen på problemet er at opmærke dataene, der så gør det lettere for fere uafhængige systemer at forstå hinanden. Timelog bruger netop XML til dataudveksling, der gør forståelsen for denne vigtig ved udvikling af Timelog baseret applikationer. Den måde at opmærke tingene på kaldes Extensible Markup Language XML og bruges til at udveksle data mellem computere. XML er standardiseret af organisationen W3C og er frit tilgængelig dvs. intet patent. Til gengæld set i forhold til binær kode fylder XML mere da denne også indeholder markeringen af de forskellige data, eks. <navn>navn</navn> der som alt andet også skal transporteres over forbindelsen. De samlede data dvs. opmærkningen inkl. data kaldes for den node, hvilket specielt i kode sammenhæng beskrives som en XmlNode. Nedenstående er et eksempel på er komplet XML dokument, hentet fra Timelog. <tlp:customers xsi:schemalocation="http://www.timelog.com/xml/schema/tlp/v4_4 <tlp:customer ID="3308"> <tlp:name>microsoft</tlp:name> <tlp:no> </tlp:no> </tlp:customer> <tlp:customer ID="3309"> <tlp:name>oracle</tlp:name> <tlp:no> </tlp:no> </tlp:customer> <tlp:customer ID="3310"> <tlp:name>sun Microsystems</tlp:Name> <tlp:no> </tlp:no> </tlp:customer> </tlp:customers> 24

25 API I det foregående afsnit XML, blev der fremvist en måde hvorpå to uafhængige systemer kunne kommunikere ved hjælp af markeret tekst, som gjorde det muligt for den at have den samme syntaks. En Application Programming Interface API (Timelog) er lidt i den samme boldgade, altså tanken om at lade to systemer kommunikere med hinanden. Hvor der før var tale om en fælles markering af information, er der her tale om en softwaregrænsefade hvormed software kan integreres. API 1 Simpelt sagt er en API et sæt metoder som tillader at eksterne applikationer, kan kommunikere med den applikation API en tilhører. En typisk API ville være en webservice, som kunne køre på.net platformen se næste afsnit. Da API en ikke behøver at være platforms afhængig, kan den bruges til f eks. mobil applikationer eller andre applikationer der skal bruges at et antal ukendte brugere NET webservices Web services giver mulighed for at der dannes en forbindelse mellem objekter på service udgiverens applikation og andre systemer. XML web services gør det muligt at kommunikere over nettet ved hjælp af standard protokoller uden brug af en webbrowser. Dette kan gøres via en ASP.NET klar IIS server eller ved at hard kodning af serverens/hostens confgurations fl der dog kun er muligt i Windows Communication Foundation WCF. Da webservices bruger XML og http som protokol er det muligt for andre end.net applikationer at kommunikere med en service udgiver. 25

26 Webservice klient host 1 Hosten kan være en hvilken som helst applikation som, hvis data man ønsker at manipulere eller læse andetsteds fra. Hvis man ønsker at bygge en WCF service uden om IIS skal man hard-code hostens konfgurations fl (WCF), der skal indeholde typen Servicehost 16. Klient applikationen kan også være, hvilken som helst applikation der ønsker at gøre brug af, eller ændre i den data Hosten stiller til rådighed. Klinten kommer også med en konfgurations fl der beskriver, hvordan den skal kommunikere med Hosten. For at gøre brug af en webservice skal klienten vide hvad denne tilbyder, dette gøres via en WSDL Web Service Description Language fl der er en XML fl, der betegnes som en kontrakt. XML dokumentet indeholder informationer omkring hvilken services der tilbydes og hvor de ligger. Filen beskriver også kommunikationsprotokollen som kunne være SOAP17 der bruger internet applikations lagene, http og https m.f., som var det en transport lag. SOAP s styrke er at den er platform og sprog uafhængig da den er XML baseret, hvilket gør den ideel til f eks. services der skal bruges over internettet. For at sende data over en forbindelse skal dataene igennem en såkaldt SOAP processor der encoder dataene til et XML dokument, herefter sendes det til klientens processor der decoder dokumentet Simple Object Access Protocol 26

27 SOAP 1 For at gøre det let f eks. for andre udviklere at bruge og udvikle applikationer til webservicen, kan man tilføje et discovery dokument (*.disco) som er et XML dokument der beskriver hvor de forskellige krontrakter kan fndes. Når dokumentet oprettes gemmes det på hosten og referencen til denne gives til andre udviklere. Eksempel på discovery stig https://tl.timelog.dk/vmas/service.asmx?disco Dokumentet kan så hentes ind via udviklerens udviklingsværktøj Add web reference der så gør det muligt at udvikle og bruge de af servicen stillet objekter. WCF Windows Communication Foundation er videreudvikling af web services med.net som platform. WCF kan bruges på platforme fra.net 3.0 og fremefter. WCF giver udviklerne mulighed for at arbejde på fere forskellige protokoller bindings og kan derfor bruges til binære data overførsler. Muligheden for at arbejde med den rå data, kan bruges hvis man f eks. laver applikationer der kun er til internt brug, hvor brugen af internet protokoller ikke behøves. ABC en af WCF beskriver basis opbygningen af en WCF applikation, ABC står for Address, Binding og Contract. Adressen beskriver destinationen på servicen, der typisk gemmes i konfgurations flen. Binding beskriver protokollen der skal bruges og om der skal bruges nogen form for kryptering typisk basichttpbinding18 der giver mulighed for at kommunikere med ikke WCF baseret systemer. Contract beskriver de metoder servicen stiller til rådighed. 4. Metode

28 I følgende afsnit har jeg valgt at beskrive den metode og overvejelser herom som ligger bag projektet/produktet. Jeg har valgt at gøre dette fordi jeg havde en del overvejelser omkring, hvilken metode jeg skulle bruge til projektet. Afsnittes beskriver således de overvejelser der ligger til grund for mit valg af metode. Jeg har af har hensyn til tiden indsnævret mine metode refektioner til unifed Process UP, den af universitetet undervist metode og Scrum, som jeg i forbindelse med mit job har stiftet bekendelse med. Metoderne er hinandens modsætninger da den ene er meget feksibel og den anden ufeksibel i forhold til uforudsete tilføjelser, hvilket betyder at de derfor tilsammen beskriver et bredt billede af de mest gængse programmerings metoder der fndes. Hvilken fremgangsmåde er så bedst når der skal udvikles software? Et spørgsmål som nok stadigvæk stilles rundt omkring hos de forskellige udviklings frmaer! Ud over personlige præferencer og type af virksomhed, må svaret på det spørgsmål fndes i typen af opgave. Med dokumentet SelectingDevelopmentApproach19 og kilderne (4)(7)(9), er jeg kommet frem til følgende sammendrag af spørgsmål, der kan stilles når der skal vælges metode. A. Hvor omfatende er programmet der skal udvikles, er det et nyt styresystem eller blot en applikaton tl en telefon? B. Geograf! Sidder alle udviklere af programmet på samme destnaton? C. Hvad forventes der af dokumentaton? D. Hvilken er erfaring ligger der i virksomheden? E. Er kunden bekendt med sine krav? I dette projekt var det selvfølgelig ikke alle der var lige relevante, men spørgsmålene A, C, D og E havde en relevans til projektet, disse vil jeg derfor kigge lidt nærmere på, med de to metoder som fokus. Jeg ligger ud med lidt baggrund om begge metoder for til slut at lave en opsummering/konklusion om den valgte og ikke valgte metode. 1.8 Unifed Process Skal udviklingen være veldefneret eller skal der være mulighed og feksibilitet? I UP vil man i starten af projektet lave en meget veldefneret beskrivelse, dokumentation af hvad der skal laves og hvordan. UP bygger på waterfall tanken dvs. at man gennemgår en række stadier for til sidst at ende med et slutprodukt. UP går skridtet videre og indføre iterationer der indeholder 5 kerne arbejdsområder, som alt efter hvor man er i projektet bliver brugt mere eller mindre: 19 Et dokument der beskriver fordele og ulemper ved de forskellige metoder. Se (8) 28

29 Iteration 1 Iterationerne indgår så i en større struktur med 4 faser der beskriver hele projektperioden. I faserne laves der milestones som er mål der skal opnås inden en forud bestemt deadline. Faserne er som følgende: Incepton projekt opstart Elaboraton projekt afgrænsning Constructon Konstruering Transiton Produkt udgivelse Illustrationen viser den sammenhænge UP projekt periode UP faser UP fordel/ulemper UP giver mulighed for på et vist niveau at adskille styring af projekt og udvikling af softwaren, dette anbefales dog ikke, men kunne f eks. Bruges ved udlicitering af større opgaver. Dette kan gøres fordi UP processen er meget omfattende med dokumentation af koden, hvor alt optegnes i blandt andet et design diagram, der er en fyldestgørende beskrivelse af koden. Selve planlægningens og idefasen, kaldet inception og Elaboration, kunne på den måde laves på en geografsk placering og konstruktionen et andet. UP er derfor ideel til store projekter som typisk vil blive udviklet over fere geografske placeringer. 29

30 Da metoden er tidskrævende vil den dog fjerne fokus fra selve konstruktions fasen (programmeringen), hvilket jo ikke altid er i hverken kundens eller udviklerens interesse. Den omfattende dokumentation fjerner også meget ansvar fra udviklerne da disse blot skal følge design diagrammet og den anden dokumentation for at udvikle softwaren. Dette medvirker at designet skal være helt på plads, da det ellers ikke ville kunne hænge sammen. Processen kan også bruges, hvis man har eller kunden ønsker meget veldefnerede kravspecifkationer, man skal dog her være opmærksom på at dette ikke altid er lige hensigtsmæssigt. Fordelen ved kravspecifkationer er at man, kan defnere meget præcist hvad programmet skal kunne. Kunden for på den måde et dokument denne kan forholde sig til, og kan også se om alt han/hun ønsker er opnået. Problemet med et for omfattende sæt kravspecifkationer kan være som følgende: Udviklerne låses dvs. at opstår der nye behov/krav kan disse være svære at implementere, både i forhold tl kodningen og den i forvejen underskrevne kontrakt. Hvis der er tale om store projekter vil det næsten være umuligt at lave en fyldest gørende beskrivelse af alle krav, der kunne være krav som af kunden opfates som implicite men ikke af udvikleren. UP Fasen konstruction og transition giver til slut i processen en god afslutning, set fra kundens synspunkt da denne medføre en omfattende test fase og afevering procedure. I test fasen testes det om alle krav er opnået (Acceptance Tests) for på den måde at sikre kunden at alt er leveret efter de stillet krav. Transition fasen giver in god kunde oplevelse da produktet integreres i kundens eksisterende miljø. (9) 1 SCRUM I modsætning til UP går Scrum ud på at komme i gang med udviklingen så hurtigt som det er muligt time is money. I stedet for tidskrævende dokumentation skal fokus ligge på programmeringen. Selvom det er sparsomt med dokumentationen, skal der stadigvæk opsættes en projektafgrænsning i form af nogle krav til produktet, her bruger Scrum en pendant til kravspecifkationer der hedder Product backlog. En product backlog bliver udviklet i starten af projektet i samarbejde med kunden (product owner). Listen består af product backlog items der er de opgaver som skal løses for at produktet kan anses som færdigt. For at udføre opgaven er Scrum bygget op på som et rollesystem, hvor hver rolle har deres ansvar i processen, hvor den før nævnte product owner også indgår: Scrum s Roller er: 30

31 1. ScrumMaster: En Gatekeeper, hvis opgave det er at sørge for at teamet kan udføre deres opgave og ikke blive distraheret overrendt. 2. Product Owner: En repræsentant der har tl ansvar at prioritere product backlog items på baggrund af forventninger lavet af Scrum teamet. 3. Team: Teamet har tl ansvar at udvikle sofwaren. Rollerne indgår alle i en rutine/arbejdsproces, hvor product backlog items er de opgaver der skal løses. Scrum 1 20 Scrum 1 viser den proces Scrum bruger i det daglige, Product Backlog opdeles i product backlog items som så igen opdeles i Tasks der ligges ind i en Sprint Backlog. En Sprint er en iteration som alt efter behov er angivet til at løbe over en given tid f eks. 30 dage. Under denne proces løses de Tasks, Sprint Backlog indeholder. Sprinten starter og slutter med et møde, plus at der dagligt afholdes et møde blandt udviklerne, primært for at kunne holde styr på processen og for at opdatere en såkaldt burn down shart. Burn down shartet angiver de tilbage værende timer i et sprint, hvilket gerne skulle aftage i Sprintens løbe tid. Når en Sprint er færdig returnere ScrumMasteren med de færdige Tasks til Product Owneren, så denne kan se at alt løber efter planen. Når alle Sprints er færdige er produktet færdigt Scrum fordel/ulemper Da Scrum processen ikke ligger så meget vægt på dokumentation og på den måde ikke låses af et fast af et forudbestem design, giver det mulighed for lettere at indføre nyopstået ønsker uden at den overordnede plan ødelægges. Skulle der opstå et nyt krav for kunden kan dette implementeres ved næste Sprint eller, hvis muligt i en Sprint. Den manglende dokumentation og overordnet analyse, kan ved store udviklings opgave give problemer da overblikket let kan blive for uoverskueligt. 20 Billedet er lånt af 31

32 Som beskrevet giver Scrum mulighed for at starte med udviklingen inden for kort tid, dette giver mulighed for at hurtigt at levere resultater til kunden som på den måde vil blive mere tilfreds. Den hurtige opstart sætter fere krav til udviklerne, da disse ikke blot skal følge et forud bestemt design. Udviklerne er selv med til designet som fornyes ved hvert Sprint, fordelen er så at de med deres erfaring kan have indfydelse på hvordan koden skal laves. Forcen ved Scrum er at ved f eks. Små opgaver, hvor der ikke skal tages hensyn til mange lag, kan fokus ligge på udviklingen og derfor fremskyndelsen af Product release dagen. Den tætte kontakt mellem udviklerne giver også en hurtigere respons tid i forhold til pludselig opstående fejl eller mangler, hvor geografsk adskilte udviklings hold normalt skulle kommunikere igennem en topstyring, der kan have en helt tredje placering som på den måde ville give en langsommere respons tid. (4)(12) 1.9 Metode valg Ved valg af metode var der mange overvejelser før valget af metode kunne træffes. De primære grunde til mit valgt var på det grundlag at jeg var alene om opgaven og at jeg havde mere erfaring med den ene som var Unifed Process. Da Scrum Primært er en metode der bruges af grupper kunne denne være svær at implementere som ene mand pågrund af brugen af fere roller. En anden grund var at jeg kunne producere et sæt forholdsvis simple kravspecifkationer der gjorde det næsten muligt at udelukke muligheden for ny opstået krav, hvilket jo er et af de store problemer med UP. Kravspecifkationerne kunne let produceres i samarbejde med økonomi afdelingen som skal bruge værktøjet til dagligt. Økonomi afdelingen består af 3 medarbejder der gjorde det muligt at præcisere kravene efter deres behov og dagligdag. Grunden til mine overvejelser omkring Scrum var fordi at muligheden for at gå i gang med kodningen hurtigt virkede tiltalende, da programmet hurtigere kunne implementeres i virksomheden value for money. Via en hurtig implementering kunne der også bruges mere tid på overvejelser omkring rapporten. Da selve softwaren ikke var særlig kompliceret, var behovet for større program overvejelser ikke tilstede, hvilket kunne have gjort det muligt at starte udviklingen hurtigt. Scrum kunne også have været god hvis der var mangel på dokumentation omkring koden, men dette var dog ikke tilfældet som så gjorde valget af UP mere åbenlys. 32

33 5. Problem Analyse Til udvikling af produktet skal der tages stilling til en række problemstillinger, hvilket følgende afsnit vil gøre. Da produktet også afhænger af anden kode, har jeg valgt at tilføje beskrivelse af denne i afsnittet dog kun af kode som har direkte indfydelse på det færdige produkt. Yderligere har jeg valgt at fokusere min analyse i forhold til kundens kravspecifkationer se.1.6, hvilket betyder at jeg ikke vil analysere ting som ikke har direkte relation til det af kunden ønsket produkt. Da analysen tager udgangspunkt i kravspecifkationerne vil der blive analyseret kodemuligheder, der dog kun vil være i relation til kundens behov. En decideret kode analyse set fra produktet side har jeg undladt, da jeg mener at kodemulighederne er mange i forhold til det endelige produkt, disse vil blive diskuteret i produktløsningen. Jeg har yderligere valgt at opdele afsnittet kronologisk, hvor jeg analysere problemstillingen fra første kontakt mellem systemerne, til når dataene er præsenteret for brugeren Kravspecifkations analyse For at give et sammenhængene billede mellem kravspecifkationerne og analysen, har jeg valgt at lave en kort opsummering af kravene. Opsummeringen af kravene vil blive beskrevet via deres identifkation21, og inkluderet som det første til de analyseafsnit der nævner eller analysere kravet. Jeg har valgt ikke at analysere alle kravene, da nogle enten kun kan gøres på en bestemt måde, eller ikke har fere muligheder på grund af begrænsninger sat af Timelog. De krav der ikke bliver nævnt er en del af enten de Eksterne krav til brugergrænsefade, eller de Ikke funktionelle krav da disse krav er defnitive. Kravene der ikke vil blive nævnt er: BG-1 PK-1 Indsætning af et frmalogo kræver ikke den store analyse selvom dette kan gøres på mange måder, fordi jeg mener at det ikke har den store betydning for det endelige produkts virke. Da webservicen er lavet med programmeringssproget C# som på den måde gør sproget til det oplagte valg, har jeg ikke inkluderet kravet som en del af analysen. 21 Se 1.6 Kravspecifkationer for identifkations nummer. 33

34 SK-2 Kravene vedrørende Excel sikkerheden indgår som en del af brugen af programmet dvs. at man i Excel skal tillade programmet som et tilføjelsesprogram. Se Bruger manual API en I følgende afsnit diskuteres kravene SG-1, SG-2 og SG-3 der alle er en del af kravet til softwaregrænsefaden. Da kravene er endelige, dvs. De ikke kan løses på andre måder, bliver brugen af grænsefaderne primært beskrevet. For at udtrække dataene til rapporten skal der bruges en API som Timelog stiller til rådighed. Det er ikke muligt på anden facon at udtrække de ønskede data. Har derfor valgt ikke at fokusere på andre muligheder for data udtræk. Selve API en er en webservice som er en del af Namespacet22 (ExcelTimelog.tlp_ws), der bruges til udtræk og kommunikation med Timelog. Webservicens klasse navn er Service og denne bliver instansieret via dens Namespace, ExcelTimelog.tlp_ws.Service(). Når denne er blevet instansieret kan servicens metoder tages i brug, til de dataudtræk man måtte ønske. En nærmere beskrivelse omkring dataudtræk vil blive gennemgået senere i afsnittet. Service objektet står for al kommunikation til webservicen dvs. også sikkerheden og event handling hertil. Webservicen fungere som led mellem softwaren og den database, der indeholder dataene for de forskellige aktiviteter frmaet måtte have. De tekniske aspekter om databasen kan jeg kun antage, da Timelog af sikkerhedsmæssige årsager ikke vedlægger info omkring denne, men der er dog vedlagt en simpel Entity relations model se. Modellen viser de forskellige tabeller (grupper) og på den måde udtræks mulighederne fra databasen. Detaljegraden er dog begrænset da databasen er i 1NF23, så for mere info omkring dataudtræksmulighederne skal vi kigge nærmere på de forskellige metoder. Databasens type, altså hvorvidt den er en SQL database eller andet, er ikke relevant da vi ikke kan tilgå den direkte, men skal bruge webservicen til at hente dataene. 22 En abstrakt beholder der kan indeholder klasser m.m. 23 En beskrivelse af hvad 1NF kan læses på 34

35 1.12 Timelog API sikkerhed Til API en/webservicen24 fndes der to områder omkring sikkerheden, hvilket jeg vil forholde mig til. Mulighederne er delt i to lejre, en omkring selve kommunikationen og en omkring hvem der har adgang til dataene Kommunikation Kravene KG-1 og KG-2 bliver diskuteret i afsnittet begge omhandler krav til kommunikationen mellem Timelog og softwaren, der af sikkerhedsmæssige hensyn er begrænset af Timelog. Til kommunikationen med webservicen via internettet har Timelog stillet to muligheder til rådighed Https og Http, Http kan dog kun bruges til at hente XML templates eller ved intranet løsninger. Da webservicen bruger Https som protokol til at hente dataene, vil det være svært at komprimentere en data transaktion, via f eks. Wireshark da denne ville være krypteret For at oprette en sikker forbindelse til Timelog skal vi bruge et objekt af klassen service der er en Proxy af Webservicen, klassen bruges til kommunikation med servicen over SOAP (se ) der igen bruger https. Al kommunikation der har med data udtræk og validering at gøre forgår via denne klasse, kun kommunikation der vedrører opsætning af diverse parametre, templates m.f., køre uden om klassen. Da disse blot er templates og af den grund ikke behøver en sikker forbindelse, bliver de hentet via http protokollen. Da serviceklassen angives som en Proxy af webservicen fra timelog, gør det at den nedarver fra SoapHttpClientProtocol der igen nedarver fra HttpWebClientProtocol, som står for oprettelse og kommunikation med servicen. En Proxy klasse kan beskrives som et modifceret interface af en anden klasse, i dette tilfælde af Timelog webservicen. Dette gør det muligt at bruge webservicens metoder uden at kende dens implementeringsparametre (private felds). 24 Se 35

36 Klasse diagram Webservice 1 Når data skal udtrækkes eller brugere valideres, instansieres Service objektet, der herefter bruges til at kommunikere med Timelog via HttpWebClientProtocol klassen der står for alle Https anmodninger. Forskellige muligheder omkring kommunikation til webservicen er begrænset fra udviklerens side og dennes implementering af servicen. Brugen af webservicen kræver at der implementeres en lokal kopi af de metoder klasser, servicen tilbyder, hvilket derfor udelukker evt. ændringer af disse API/bruger validering Afsnittet nævner brugen af en såkaldt Site Code, der skal implementeres ifølge SK-1. Passagen beskriver også andre muligheder omkring sikkerhed, men ingen af disse er nævnt som krav og vil derfor blive analyseret i forhold til brugen af softwaren. Validering til brug af servicerne kan ske på to forskellige måder, bruger eller applikations validering25. Yderligere har Timelog indbygget en sikkerhed der bruges til at bekræfte virksomhedens identifkation, koden (Site Code) som bestilles og udgives til uvikleren, er unik og hjælper Timelog med at styrer adgangsniveauet til de forskellige virksomheder Mulighed 1 25 Se 36

37 26 I denne løsning bruges API login, der angives af udvikleren på timelog.com, som validering. API login legitimationsoplysninger kan enten angives som strings direkte i en statisk klasse eller blot som variabler tilknyttet objektet, hvilket så vil gøre at klassen skal intansieres når der skal hentes data. Første løsning ville være bedst, da men ikke skal bruge keywordet new for at bruge klassens variabler, men blot klassens navn. Problemet med ovenstående løsning er at, API login legitimationsoplysningerne skal kodes ind i programmet, hvilket vil udelukke muligheden for kunden selv ændrer koden på et senere tidspunkt. Der er selvfølgelig mulighed for at lave et overordnet API login, der ikke er tilknyttet en bestemt person i virksomheden. Denne mulighed ville dog stille nogle krav til virksomhedens sikkerhedspolitik da legitimationsoplysningerne kunne kompromitteres og derfor bruges af andre. Løsningen ville derfor ikke være særlig attraktiv i forhold til den daglige drift af virksomheden, hvor en evt. afskediget medarbejder ville kunne udnytte sikkerhedsbristen. En løsning på identifkationsproblemet kunne være ved brug af konfgurations fler, hvor programmet henter legitimationsoplysningerne når disse skal bruges. 26 Lånt fra 37

38 Konfgurations flen opbygges som en XML fl, hvilket ville gør det muligt at læse/forstå og ændre oplysningerne i denne. På denne måde ville virksomheden som del af deres sikkerhedspolitik kunne ændre deres API login Mulighed 2 Timelog API en stiller en metode, ApiUserAuthentication, der giver brugeren mulighed for at bruge dennes Timelog Projekt Login, TLP Login, dette betyder at de kan bruge de samme oplysninger de bruger ved en daglig Timelog session. Metoden giver to muligheder, hvis den implementeres, den ene er muligheden for at undgå brug af et API login og dermed løse nogle umiddelbare sikkerhedsproblemer. Den sidste mulighed er at bestemme, hvilket bruger niveau det kræver for at få adgang til den ønskede data. 27 Metoden ApiUserAuthentication kaldes fra Service objektet og denne returnerer en værdi (SecurityLevel) der defnerer brugerens adgangsniveau. Adgangsniveauet kan sættes i Timelogs API panel se. Muligheden fjerner problemet angående lokalt opbevaret sikkerhedsoplysninger, der igen løser problemet angående frmaets sikkerhedspolitik og en afskediget medarbejders måske dårlige hensigter. Da API login kun kan hentes via medarbejderens eget TLP login, der ved evt. afskedigelse slettes vil det være svære at misbruge. Løsningen kræver dog at der laves et såkaldt Login system, hvor brugeren skal logge ind før dataene hentes, en løsning som kan være til gene for brugeren. Login panelet kunne blive kaldt som noget af det første når Excel startes, brugeren ville derefter blive bedt om dennes TLP login for at kunne bruge Rapport programmet. Login panelet kan laves via et Loginpanel der nedarver fra Usercontrol der er en del af Namespace System.Windows.Forms. 27 Lånt fra 38

39 Loginpanel 1 I panelet kan der så laves en event når brugeren udføre et loginattempt tjekkes dennes oplysninger via en validering. Hvis brugerens legitimationsoplysninger godkendes af Timelog returneres API login, hvilket kan bruges til fremtidige data begæringer API metoder For at opfylde kravet NT-1 der angiver, hvilken data programmet skal udtrække se , skal der bruges nogle metoder fra webservicen, for komplet liste af metoderne se. Mulighederne omkring, hvilke metoder der skal bruges til et specifkt dataudtræk er fastlåst af Timelogs API. Derfor har jeg fokuseret på, brugen af metoderne og ikke, hvilke metoder der skal bruges til at opnå kravene for nøgletal, da dette vil blive en del af løsningen. Da metoderne er en del af klassen Service skal de alle implementeres via Service objektet. Metoderne kræver alle et sæt parametre for at kunne returnere den ønskede data. Fælles for dem alle er at de skal have parametrene sitecode, apiid og apipassword, for at kunne tages i brug. Yderligere parametre angives specifkt i forhold til den valgte metode. Nedenstående kan returnere medarbejderen i en specifk afdeling, der har en bestemt angivet status. ObjektafService. GetEmployeesShortList(string sitecode, string apiid, string apipassword, int departmentid, int status) Når metoden tages i brug genereres der ud fra parametrene og service objektet en XML fl der sendes til Timelog, der igen returnerer en XML fl, Via Webservicen, med de ønskede data Dataindlæsning Kravene MR-2, NT-2 og KY-1 handler om dataene der skal trækkes ud, inkl. fremvisningen af disse. Afsnittet beskriver mulighederne omkring dette. Dataene skal redigeres eller adderes inden de præsenteres i Excel arket, hvilket kan gøres på to måder enten via Excel eller direkte i koden. 39

40 Via et skjult ark kan man udtrække alle dataene for derefter at redigere og trække det over i selve rapporten. Dette kunne gøres ved at skrive XML flen til en String via StringWriter() og XmlTextWriter(), der er en del af System.Object. Efter konverteringen til strings skal dataene grupperes. Der kan gøres via xmlmap objektet. XML map objektet bruges til at markere et specielt område i arket hvor dataene der tilhøre området kan blive trukket ind. Dette gøres ved først at markere et område via en XML template fl, herefter kan dataene trækkes ind fra XML flen til det tilhørende område. XML map proces 1 Fordelen for kunden ved brugen af XML maps er at de vil få den rene data at arbejde med, hvilket betyder at ønsker kunde et nærmere eftersyn af de specifkke poster vil dette være muligt. Ulempen er at det tager tid at skrive til et XML mappet område, når kunden f eks. vælger den ønskede måned ville der opstå et delay for at dataene kan blive skrevet, forsinkelsen kommer oven i den tid det tager at hente XML flerne. For at teste om forsinkelsen kunne have en betydning på runtime, kunne man indkapsle metoden der skriver til Excel arket, med en start tid og slut tids angivelse. Dette kunne gøres via System.DateTime28 der kan måle en system tid før og efter en metode tages i brug. Hvis tiden blev et problem kunne løsningen være ikke at skrive til et XML map, men via koden ligge alle de ønskede data sammen og derefter præsentere dem direkte i Rapporten, på deres respektive plads. Implementeringen af dette kunne gøres ved hjælp af f eks. en foreach loop, der parser specifkke noder fra XML flen til et Array for herefter at ligge alle Array værdierne sammen. int value =Int32.Parse(XMLfil.GetAttribute("node") int array[1] = value; Ovenstående er et groft eksempel på koden til at trække data fra en node i en XML fl til et array. Fordelen er som skrevet at der ikke skal bruges tid på at skrive til Excel arket, kun når 28 40

41 dataene er adderet skrives der. Ulempen er at man ikke kan bearbejde tallene bagefter. Metoden kræver dog stadigvæk at alle XML fler hentes Excel opsætning Kravet MR-1 skal give brugeren mulighed for at gemme dataene/excel arket, afsnittet vil diskutere mulighederne omkring dette. Udseende af Excel arket kan frembringes på to måder enten via Visual Studio Tools for Offce VSTO, der gør det muligt at designe Excel arket som var det normalt Excel ark, eller via koden opsætte arkenes udseende og funktioner. VSTO koden bliver i modsætning til Visual Basic gemt som separate.net assemblies (EXE eller DLL) og som så associeres med Excel arket via en property. Hvis.Net assemblies ikke er tilgængelige implementeres VSTO koden ikke, det gør muligt at f eks. dele Excel arket mellem fere platforme. Yderligere da arkene bliver lavet som var de normale Excel ark, betyder det også at de kan gemmes som var de normale Excel ark. For at bruge VSTO kræver det at klienten installerer en VSTO runtime denne kan inkluderes i en setup fl sammen med Excel arket når programmet skal udgives. Ved hjælp af VSTO er det muligt at designe arket direkte i udviklingsværktøjet Visual Studio. Hvis arkene designes via VSTO, gives der også fri rådighed over designet til kunden, hvilket betyder at kunden frit kan ændre opsætningen, såfremt denne ønsker dette. Kunden kunne på den måde ændre i hele rapportens opsætning, hvis der i fremtiden skulle opstå et behov for dette. Muligheden vil dog gøre at, man ikke bare kan gendanne arkenes oprindelige opsætning dvs. har man ikke gemt et kopi af det oprindelige ark vil man ikke kunne komme tilbage til udgangspunktet. Da designet er en del af selve Excel arket og ikke en ekstern assembly kan man dog låse bestemte celler som i et normalt Excel ark, men vil så udelukke potentialet for at ændre i rapporten. VSTO giver også mulighed for at programmere opsætningen af et Excel ark dvs. celle for celle angive de ønskede parametre og udseende. Parametre og udseende kunne så loades første gang rapporten tages i brug og, hvis kunden ønsker dem gendannet i fremtiden via et interface gendanne de oprindelige Parametre. Muligheden for at gendanne kunne efter et evt. login blive præsenteret via et panel, hvor denne kan vælge forskellige muligheder så som at gendanne arkene. Nedenstående kode eksempel viser et meget kort udsnit af, hvordan man kan manipulere en celle via C#. Muligheden er så at der kan laves en klasse der defnere alle arkenes udseende. 41

42 Excel.Worksheet test = (Excel.Worksheet)ActiveSheet; test.cells[3, 3] = "dette er en tekst til en celle"; Excels opgaverude Opgaveruden (Document Actions task pane) ville kunne bruges til at loade diverse formularer der igen kan loade interaktive moduler, der kan bruges af brugeren til at manipulere rapporten. Muligheden for at vælge tidsperioder, hvilket kravene TP-1 og TP-2 kræver af programmet kunne loades i dette panel. Formularerne kunne kronologisk efterfølge hinanden for at gøre styringen mere overskuelig. Efter et evt. login panel kunne brugeren blive præsenteret en dato vælger, der så via de forskellige metoder kan hente dataene fra de ønskede tidsperioder. Brugen af opgaveruden vil også adskille rapporten og manipuleringen af denne, hvilket ville gøre det lettere at dele rapporten mellem andre platforme, da hvis diverse assemblies ikke er installeret blot vil undlade at loade Grafsk fremstilling Implementeringen af en grafsk oversigt, krav MR-4, over specifkke nøgle tal kan løses via enten at gemme de af kunden ønskede måneder og lave en graf ud fra disse data, eller ved at hente nøgletallet fra den valgte måned og månederne et år tilbage. Muligheden for at gemme kan løses ved at generere et ark/klasse med XML maps, for hver måned kunden henter. Dette vil dog kræve muligheden for at overskrive en allerede hentet måned er mulig, hvis der f eks. kommer efter faktureringer. Se nedenstående Flowshart der illustrere en implementering af ovenstående. Løsningen ville også gøre at kunden selv kunne udvide rapporten med grafske fremstillinger, af forskellige nøgletal, fra hentede data. Løsningen begrænses dog af de data 42

43 der er hentet, dvs. at startes der i januar uden nogen præhentet data vil grafen ikke være til meget nytte. En anden mulighed kunne være at hente alle måneders data, et år bagud fra den angivet måned, hvilket dog af tidsmæssige hensyn nok skulle begrænses til specifkke nøgletal. Eller give Muligheden for kunden selv at vælge de nøgletal som der skal hentes. Dette vil dog kræve nogle nye data udtræk, hvis man ønsker en grafsk fremstilling af andre nøgletal. En kombination kunne også være en mulighed, men her skal der nok tages hensyn til at data mængden der skal hentes, der kan gøre det svært at opnå kravet omkring 30 sekunder se

44 6. Projekt løsning I dette afsnit beskriver jeg, hvordan jeg har lavet produktet, hvilket primært er gjort med analysen som grundlag. Ud over analysen har der også ligget en del kodemæssige overvejelser, hvor jeg, om det har været muligt har gjort det efter KISS Keep it simple, Stupid princippet. Ved at bruge af KISS kan en evt. anden programmør, eller undertegnet i fremtiden, hurtigt danne sig et overblik og udvide på programmet, hvis dette ønskes. Yderligere har dokumentation fra Timelog s hjemmeside været brugt som hjælpemiddel. Jeg har valgt at beskrive løsningen ud fra samme grundidé som i afsnittet analyse, hvilket betyder at jeg beskriver løsningen sekventielt, dvs. fra første kontakt mellem systemerne, til når dataene er præsenteret for brugeren. Yderligere har jeg som i analysen valgt at visse, hvilke kravspecifkationer de forskellige løsninger løser, dette bliver gjort i starten af hvert afsnit og med kravspecifkationernes ID som henvisning. Tilslut opsummerer jeg med en designmodel og klasseansvarsområder for at give et helhedsbillede af programmet og dets virke En hurtig oversigt Jeg har valgt at starte afsnittet med et billede af programmets placering i forhold til eksterne og interne assemblies (programmer), hvilket også skulle give en bredere forståelse for programmet. Gr ov opsummering: Timelog tilbyder en service der har adgang til en database, hvor frmaets gemte data ligger, disse vil blive hentet og præsenteret af et program der ligger som en assembly ovenpå Excel. VmasRapport programmet vil være fokus i dette afsnit. 44

45 1.17 Kommunikation Kravene KG-1 og KG-2 bliver løst i afsnittet, begge er krav til kommunikationen mellem Timelog og softwaren, der af sikkerhedsmæssige hensyn er begrænset af Timelog. Yderligere tages der hensyn til kravet SK-1 der omhandler brugen af den til frmaet knyttet Sitecode. Service klassen bruger klassen Settings der defnere hvilken URL dataene kan hentes fra inkl. den Sitecode der skal bruges til at hente dataene. URL adressen er en reference til servicen/webservicen på Timelogs ASP.NET29 kompatible webserver, da IIS Internet Information Services er sat til at kræve SSL kan der kun hentes via en SSL krypteret forbindelse. Da ingen anden mulighed foruden en lokal installation af Timelog programmet, en løsning frmaet ikke er interesseret i at implementere, vil alt kommunikation forgå krypteret via SSL. Virker https://tl.timelog.dk/vmas/service.as mx Virker ikke Service og Settings er en del af pakken fra Timelog, nedenstående viser deres relationer. Til Settings klassen er knyttet en app.confg fl der defnere Sitecode og URL til webservice Brugervalidering Til validering af programmet imod webservicen, var der ikke stillet nogle specifkke krav, men i analysen blev der fremlagt to muligheder, validering via et API login eller via et TLP login. Jeg har valgt at gøre brug af TLP login, da denne mulighed gør brug af de ansattes eget login. 29 Se ASP.NET 45

46 Ved brug af brugerens TLP login undgås brugen af en lokalt opbevarede konfgurations fl, hvilket ikke var at foretrække i forhold til frmaets sikkerhedspolitik. Brugen af TLP login gør også at brugeren ikke manuelt skal indstille programmet før dettes tages i brug. Løsningen er et login panel der loades ved programmets start, der startes ved instantieringen af klassen ThisWorkbook der igen laver en instans af klassen LoginPanel. LoginPanel opretter en Event handler (public event LoginAttemptEventHandler LoginAttempt; ), der har til opgave at styrer brugerens brug af knappen Login, hvilket bliver gjort da brugerens input ses som værende ikke synkront. Dette medvirker også at programmet ikke låses et bestemt sted i koden. Når brugeren har indtastet sine oplysninger og trykket Login startes et Event der instansiere klassen ValidateUser som igen laver en instans af Service klassen der tjekker, samt returnere API login, hvis brugerens oplysninger stemmer overens med de godkendte brugere i Timelog systemet Dataudtræk Kravet NT-1 er det essentielle i hele projektet, da det omhandler udtræk af de ønskede data. Som beskrevet i de foregående afsnit stiller Timelog en masse metoder30 til rådighed, der netop kan udtrække de ønskede data. Ikke alle metoder er relevante i forhold til opgaven, men har via fælles nævnerne timer, projekter og ansatte kommet frem til at følgende metoder kan udføre opgaven: Beskrivelse Henter liste over alle registreret timer Metode GetWorkUnitsRaw() Klasse InvHour.cs 30 Se 46

47 Henter liste over medarbejdere Henter liste over projekter GetEmployeesRaw() Employee.cs GetProjectsRaw() ProjectsRaw.cs Jeg har valgt at beskrive de problemstillinger metoderne løser i hvert deres afsnit, se efterfølgende afsnit. Efter brugeren logget ind har jeg valg at præsentere denne med endnu et panel (ImportPanel), hvor de forskellige muligheder bliver præsenteret for brugeren. ImportPanel instansieres efter et succesfuldt login forsøg. For at undgå for mange undermenuer osv. har jeg valgt at og import af data initialiseres herfra, hvilket gøres via knappet Import. Klasserne InvHour, ProjectsRaw og Employee instansieres når brugeren trykker på import knappe sidst nævnte dog kun hvis brugeren har valgt at opdatere denne. Klasserne gør brug af klassen LoginOp der instansiere et objekt af Service klassen, og indeholder oplysninger til brug af denne. Dette er gjort da oplysningerne i LoginOp er fælles for alle udtræks klasser GetWorkUnitsRaw Til udtrækning af data for at beregne omsætningen for en given periode bruges metoden GetWorkUnitsRaw(), da metoden ikke blot henter timerne, men også den registreret pris for timerne, se 7. Omsætningen kan udregnes ved at lave en sum af alle registreringer, der indgår under noden RegAmount, klassen CalcHour tager sig af dette. Metoden udtrækker dataene til den valgte periodes Excel ark, der inkl. et ark for samme periode året forinden, er defneret på forhånd. Dog har jeg valgt at skjule den gamle periodes ark for overskuelighedens skyld. Yderligere kan metoden bruges til at hente antallet af timer registreret under internt tid, dog med disse to parametre. 47

48 (1) Til beregning af normtd for fuldtdsmedarbejdere skal brugeren ved hjælp data hentet via metoden GetEmployeesRaw() bestemme, hvem der er fuldtd kontra en anden ansætelses form, se for nærmere beskrivelse herom. Når ansætelses typen er bestemt samles alle tmer der er registreret under fuldtdsansate for tl sidst at blive divideret med antallet af disse. (2) Da noden ProjectID ikke er det ID frmaet har givet projektet, men et ID for en intern databaseplads, samt fordi der ikke er nogen metoder der kan hente en liste med de af frmaet registreret projekt identfkatoner, har jeg via Timelog måte udvikle følgende liste: Nøgletal Administration Ledelse Kontorsager Salg og markedsføring Efteruddannelse ID registeret af frmaet ID registreret i Timelog Til udregning af de forskellige nøgletal laves en sum af de registreret timer under deres relevante ProjektID, hvilket klassen CalcHour har til opgave. For at udregne antallet timer registreret under nøgletallene for ekstern tid, der defneres i projekttyper, skal listen fra GetWorkUnitsRaw() holdes op imod en liste over alle projekter og de forskellige typer disse måtte høre under, se.. Hver tids registrering under en specifk projekttype summeres og præsenteres ved hjælp af klassen CalcHour Metode parametre Metoden GetWorkUnitsRaw() skal implementere med understående parametre, hvor jeg har valgt at hente alle data fra den af brugeren ønskede periode. Dette er gjort fordi at det giver brugeren mulighed for selv at viderebygge på rapporten. Parametre Beskrivelse string sitecode ID tilknyttet frmaet, hentes vi Settings objektet string apiid ID hentet via Login proceduren. string apipassword Password hentet via Login proceduren. int workunitid Sættes til 0 for at få alle. int employeeid Sættes til 0 for at få alle. int allocationid Sættes til 0 for at få alle. int taskid Sættes til 0 for at få alle. int projectid Sættes til 0 for at få alle. int departmentid Sættes til 0 for at få alle. System.DateTime startdate Angives af bruger, se System.DateTime enddate Angives af bruger, se 48

49 1 Sekvensdiagram GetWorkUnitsRaw Diagrammet beskriver det kald der genereres ved tryk på import knappen. Først tjekkes om data er loadet, hvorefter hvis dette ikke er tilfældet dataene hentes. Det ses også at der hentes data fra to perioder. Sekvensdiagram GetWorkUnitsRaw GetEmployeesRaw For at kunne udregne normtid for fuldtidsansatte skal systemet vide, hvem af de ansatte der er fuldtid, hvilket Timelog ikke giver nogen mulighed for. Derfor har jeg valgt at udtrække en liste over de ansatte og lade brugeren vælge, kun engang eller når nye ansatte kommer til, hvem der er fuldtidsansatte kontra hvem der ikke er. Klassen Ansat der bruger metoden initialiseres kun, hvis brugeren via en radioknap i ImportPanel vælger at listen skal hentes. Grunden til denne mulighed er for ikke at kræve at brugeren ved, hvert dataimport skal udfylde listen omkring ansættelsestyper, men kun når denne ønsker dette. Metoden udtrækker og skriver via klassen ThisWorkBook, til Excel arket Parametre (FlexData), der skjules for brugeren. 49

50 Ovenstående er gjort ved at lave en liste med noden FullName, se 7, og præsentere listen i et panel EmployeePanel, hvor brugeren kan vælge medarbejdernes ansættelsestype. Se for nærmere beskrivelse Metode parametre Metoden GetEmployeesRaw() skal implementeres med understående parametre. Parametre Beskrivelse string sitecode ID tilknyttet frmaet, hentes vi Settings objektet string apiid ID hentet via Login proceduren. string apipassword Password hentet via Login proceduren. int employeeid Sættes til 0 for alle. int departmentid Sættes til 0 for alle. int status Sættes til 0 for alle Sekvensdiagram GetEmployeesRaw Sekvensdiagram GetEmployeesRaw 1 50

51 GetProjectsRaw Nøgletal for ekstern tid er angivet i de forskellige projekttyper, hvilket kræver at koden kategoriserer projekterne i typer. Den eneste metode der kan udtrække en liste der angiver projekterne inkl. deres type er GetProjectsRaw(), derfor bruges denne til at lave en liste bestående af noderne ProjectID og ProjectTypeID. Udregningen sker i klassen CalcHour, der via nogle løkker først at scanner listen fra GetProjectsRaw() for herefter at scanne listen fra GetWorkUnitsRaw() igennem og samle de registrerede timer under deres projekttyper. I Timelog er typerne registreret på anden vis en de typenumre frmaet har angivet, følgende gør sig derfor gældende: Typenavn Kommunikation Energirådgivning Energiregulering Klima Udviklingsbistand Typenummer brugt af Viegand og Maagøe Typenummer brugt af Timelog Metode parametre Metoden GetProjectsRaw() skal implementeres med understående parametre. Parametre Beskrivelse string sitecode ID tilknyttet frmaet, hentes vi Settings objektet string apiid ID hentet via Login proceduren. string apipassword Password hentet via Login proceduren. int projectid Sættes til 0 for alle. int status Sættes til -2 for alle aktive projekter. int customerid Sættes til 0 for alle. int projectmanagerid Sættes til 0 for alle Sekvensdiagram GetProjectsRaw 51

52 Sekvensdiagram GetProjectsRaw 1 52

53 1.20 Manuel indlæsning af data De nøgletal der ikke kunne hentes via Timelog, skulle ifølge kravspecifkationerne selv indlæses af brugeren i det angivet Excel ark. Dette har jeg simplifceret via såkaldte indlæsnings paneler, der alle kan tilgås fra importpanelet. Jeg har valgt at tilføje disse muligheder fordi jeg også har valgt at udtrække alle data fra en given periode, se Listerne kan være omfattende, da de blandt andet inkludere alle tids registreringer for en given periode. Da listerne skrives i de valgte måneder, hvor de fasteomkostninger også skal angives kan indtastningerne hurtigt blive besværlige. Ved brug af en GUI til indlæsning af disse, skal brugeren ikke tænke over, hvor i arkene dataene bliver placeret, men blot indtaste dataene. Der er dog stadigvæk mulighed for selv at indtaste dataene, hvis brugeren ønsker dette. Yderligere skal der bestemmes datoer for den ønskede periode, hvilket også skal gøres via en GUI. Panel relation Periodevalg Kravene TP-1 og TP-2 omhandler begge valg af en tidsperiode, hvilket jeg har valgt at muliggøre i et panel der defneres af klassen ImportPanel. Når en periode er valgt kan dataene hentes via et tryk på knappen import. Panelet bliver præsenteret for brugeren efter et succesfuldt login. Det bruges også som samlingspunkt for brugen af programmet dvs. udgangspunktet til alle andre valg. 53

54 Panelets primære funktion er at hente data for brugeren inden for en valgt tidsperiode, der defneres via System.DateTime. Tidsperioden der skal vælges er dag/måned/år og ikke blot en måned, dette er gjort for at give mulighed for at vælge en speciel tidsperiode, med henblik på en nærmere økonomisk analyse. Når perioden er valgt fratrækkes der et år fra, hver af de valgte tider, dette bruges til at hentes data fra samme periode forrige år. ImportPanel design 1 Når brugeren trykker på Import hentes via blandt andet GetWorkUnitsRaw() dataene fra den ønskede periode, programmet tjekker dog først om perioden allerede er hentet. Er den valgte periode allerede hentet vil brugeren bliver spurgt om denne ønsker at overskrive den valgte periode. Alle knapper i dette og andre paneler styres af eventhandlere, dette er gjort på grund af at brugerens interaktion med panelet ikke er synkront dvs. at et klik kan komme på et hvilken som helst tidspunkt i programmets runtime Fasteomkostninger Panelet FixedCostsPanel bruges til indskrivning af de data der ikke kan hentes via Timelog. Når brugeren trykker Gem skrives via klassen WriteDataFaste dataene i den valgte periodes Excel ark. Som beskrevet tidligere er dette gjort for at gøre brugerens interaktion med programmet lettere. Da der skrives i et Excel ark er det stadig muligt for brugeren at skrive direkte i arket, hvis denne ønsker dette. 54

55 Fasteomkostninger panel Ansættelsestyper Panelet bruges til at bestemme, hvem af de ansatte der er fuldtids ansatte. Via listen der hentes med GetEmployeesRaw(), opbygges en afkrydsningsliste i panelet, hvor brugeren kan afkrydse de medarbejdere der er fuldtidsansatte. Brugerens input gemmes automatisk i Excel arket, der igen bruges til fremtidige beregninger. Jeg har valgt at skrive til Excel arket i stedet for anden ekstern fltype, for at give mulighed for via Excel at manuelt at ændre i dataene, hvis dette ønskes Diverse timer Det sidste panel er lavet til at indlæse de timer Timelog, ikke giver mulighed for at udtrække. Dataene kan læses i Timelog via de prædefnerede rapporter, men da Timelog ikke har stillet en metode til rådighed for udtræk af disse, har jeg måtte lave et panel til indlæsning af dataene. Panelet skriver til den valgte periodes Excel ark og trækkes sammen med anden data over i rapporten automatisk. 55

56 1.21 Dataindlæsning og fremvisning For at imødegå kravet MR-2, omkring muligheden for at redigere i rapportens opsætning, krav NT-2, har jeg valgt at opsætte arkenes udseende via VSTO design panel. Dette vil give muligheden for at kunden selv ændre i Designet, hvis denne måtte fnde det nødvendigt. Jeg har yderligere valgt at opdele rapporten i ark, hvilket betyder at hvert ark har sit eget Excel ark, hvilket de også er navngivet efter. Arkene har fået følgende ordlyd og rækkefølge Resultat, Nøgletal, Omkostninger, Balance og Graf sidst nævnte kommer jeg nærmere ind på senere i afsnittet. I analysen diskuterede jeg muligheder omkring skrivning og præsentation af data, hvor jeg kom frem til 2 muligheder. Den ene omhandlede brug af såkaldte XML maps, i denne mulighed ville jeg trække dataene ud i store lister og via Excel addere værdierne for herefter fremvisse dem de korrekte steder. Den anden mulighed var at ved hjælp af XML flernes noder, samle de forskellige værdier i f eks. arrays, for herefter at lægge dem sammen og præsentere dem de korrekte steder. Jeg har valgt at lave begge muligheder, dvs. først trækkes dataene ud og ligges i deres respektive måneders Excel ark via XML maps dette gøres via klassen XmlMap. Herefter beregnes værdierne og præsenteres i deres celler via klassen CalcHour. Værdierne præsenteres ikke direkte i rapporten, men derimod i de forskellige måneders ark, hvilket giver frmaet mulighed for på et senere tidspunkt at ændre i udseendet på rapporten. 56

57 Grunden til denne blanding af løsninger, er at denne løsning giver frmaet mulighed for på et senere tidspunkt, at bruge alle de data jeg henter ud via metoden GetWorkUnitsRaw(). Yderligere sikrer jeg mig at beregningen af værdierne ikke slettes, da denne ligger i koden og ikke i Excel arkene. Som det sidste har jeg valgt at gemme de valgte måneders data i, hvert deres Excel ark, både et for den valgte periode og et ark for samme periode forrige år. Dette medfører en masse ark, hvilket har gjort at jeg har valgt at skjule de ark der repræsentere det forrige år. Ved at gemme dataene for alle de måneder brugeren har trukket ud gennem tiden, kan Excel fremvisse en graf der hurtigt giver et overblik over den økonomiske situation. yderligere kan frmaet selv vælge, hvilke nøgletal de ønsker en grafsk oversigt over ved blot at bruge de udtrukne værdier. 57

58 Sekvensdiagram XML map Sekvensdiagram XML map 1 Diagrammet viser hvordan arkene XML mappes, hvilket gøres via en switch, der i ovenstående tilfælde ikke vises helt. Brugen af en switch til skrivning og mapping af data er valgt for at holde koden simpel, dog medvirker det meget kode, som for overblikkets skyld er indkapslet som regioner som eks. #region start #endregion. 58

59 1.22 Designmodel Design diagrammet viser en oversigt over klasserne og deres relationer. For overblikkets skyld har jeg valgt at undlade, de klasser der repræsentere de 24 Excel ark, hvor dataene hentes til. Jeg har også valgt at gemme visse metoder og variabler, da f eks. klassen Service indeholder alle de metoder der kan bruges i sammenspil med Timelog, hvilket der ikke var plads til. Designmodel Klasse ansvarsområder Se 11 59

60 7. Konklusion 1.24 Produkt konklusion Under udviklingen af programmet er jeg stødt på fere udfordringer, dog opfylder programmet alle krav der blev stillet af kunden. Da processen ikke har været uden problemer, har jeg måtte konsultere mig med Timelog s udviklingsafdeling da både dokumentation, eksempler og webservicen har vist sig at være fejlbehæftede. I et tilfælde har Timelog måtte skrive en ny dokumentation, for herefter at sende den til mig. Problemet med manglende dokumentation har medført forsinkelser i specielt udviklingsfasen, hvilket også kan ses i milestone planen. Et eksempel på manglende dokumentation er metoden GetemployeesRaw, hvor det viste sig modsat dokumentationen, at den skulle have en ekstra parameter for at kunne tages i brug. Ved implementering af metoden opstod en fejl på grund af manglende den parameter initials, hvilket dokumentation ikke beskrev. Problemet var at metoden ikke virkede efter hensigten, da hverken null eller nul kunne godtages som parameter, via mail og telefon korrespondance fk vi dog ændret i webservicen så denne virkede med disse. Se 10 for ny dokumentation. Der har ikke desto mindre desværre været fere eksempler på fejl ved deres webservice, hvilket har ledet mig til konklusionen at deres produkt ikke kan bruges til andre programmer, såfremt disse ikke forbedres. Deres support har dog bekræftet at der arbejdes fra Timelog s side på en forbedret version af deres webservice, hvilket forventes at være i brug start Med ovenstående som belæg, må jeg konstatere at det ville have været hensigtsmæssigt at starte udviklingsforløbet med et møde med Timelog, hvor implementerings muligheder kunne have været diskuteret. Dette ville måske have gjort at de feste problemer kunne have været undgået. I implementeringen kunne der have været brugt dynamiske klasser (generic classes), hvilket kunne have gjort koden mere effektiv. Jeg valgte ikke at implementere dette på grund af manglende tid og erfaring med C#, da dette ville have været meget tidskrævende. Mener dog ikke det har en betydning for programmet da dette virker efter hensigten. Ydermere kunne der også have været brugt mere tid på dokumentation og oprydning af koden, hvilket i visse tilfælde kan være mangelfuld, prioriterede at få programmet op at køre i stedet. Desværre må jeg konkludere at dette ikke er tilfredsstillende, da koden er uoverskuelig, på grund af disse mangler. I udviklingen af programmet er der opstået fere ideer til, hvordan man kunne udnytte webservicen Timelog stiller til rådighed. Eksempler på dette kunne være mobile 60

61 applikationer og indlæsning af data fra Summasummarum. Disse kunne implementeres såfremt kunden ønsker dette. Dog kræves det at Timelog udbygger deres webservice. Jeg mener foruden ovenstående, at jeg har opfyldt kravene stillet fra kundens side og at programmet virker efter hensigten Projekt konklusion Selve projektforløbet har foruden lidt forsinkelser kørt planmæssigt. I starten af projektet havde jeg et ønske om at være færdig en måned før tid, hvilket desværre ikke lykkedes mig. Grunden til dette var primært uforudsete problemer med implementeringen, og manglende tid, hvilket skyldes generel travlhed. Jeg har i hele projekts forløb været i dialog med både vejleder og Koordinator, der har været med til at danne rammerne for projektet og rapporten. Desuden har jeg også været i dialog med Viegand & Maagøe s interne personale, specielt økonomi afdelingen der har været med til at danne rammerne for programmet, og deres projektledere der har hjulpet med metoden bag projektet. Dette har resulteret i efter min mening et godt projekt. Fra start har det været et ønske at lave en så god rapport, hvor alle personer trods forskellig tekniskformåen kunne være med. Dette er gjort ved blandt andet at skrive rapporten med en rød tråd fra start til slut, dvs. om muligt har jeg beskrevet afsnittenes relevans for produktet. Dette medfører efter min mening at rapporten er mere læsbar og overskuelig, da pointen aldrig mistes. Der er dog afsnit, hvor dette er undladt da disse er beskrivende nok i sig selv. Litteratur liste Internet (1) Oversigt over ASP.NET (2) Oversigt over ASP.NET på IIS (3) Gennemgang af SSL handshake (4) Video over Scrum (5) Beskrivelse af timelog 61

62 (6) IEEE Recommended Practice for Software Requirements Specifcations %20Practice%20for%20Software%20Requirements%20Specifcations.pdf (7) Wiki der beskriver de mest gængse metoder (8) Valg af metode https://www.cms.gov/systemlifecycleframework/downloads/selectingdevelopment Approach.pdf Bøger (9) UML 2 and the Unifed Process Second Edition Pratical Object-Oriented Analysis And Design af Jim Arlow and Ila Neustadt. ISBN: (10) Network Security Essentials Application And Standards v4 af William Stallings. ISBN: (11)Computer networking, a top-down apporoach featuring the internet v3 af James F. Kurose and Keith W. Ross. ISBN: (12) A Practical Guide to Distributed Scrum af Elizabeth Woodward, Steffan Surdek and Matthew Ganis. ISBN: (13) Pro C# 2008 and the.net 3.5 Platform af Andrew Troelsen. ISBN: (14) Understanding Web services: XML, WSDL, SOAP, and UDDI af Eric Newcomer. ISBN: Ordbog Kommunikation/kryptering TCP Transmission Control Protocol HTTP Hyper Text Transfer Protocol SSL Secure Sockets Layer TLS Transport Layer Security IP Internet Protocol CA certifcate authority DES Data Encryption Standard Hosten En der udbyder services til andre. API Application Programming Interface SOAP Simple Object Access Protocol ASP.NET Viewstate Session state WCF WSDL Tilstande der beskriver en ASP.NET kommunikation Se Teori omkring ASP. Tilstande der beskriver en ASP.NET kommunikation Se Teori omkring ASP. Windows Communication Foundation Web Service Description Language 62

63 Planlægning Gantt-kortet Milestone Use Case SCRUM UP Filer XML HTML XmlNode Software Visual Studio Apache IIS Wireshark Excel Gantt-kort, simpelt grafsk system til planlægning og kontrol af arbejdsopgaver. En plan der viser deadlines for diverse milesten i en rapport. Diagram der viser burger relationer til f eks. Et program En metode man kan bruge til udvikling af software, og der gør brug af mindst mulig dokumentation. En metode man kan bruge til udvikling af software, og der gør brug af meget dokumentation. Extensible Markup Language Hypertext Markup Language En del af et XML dokument Udviklingsprogram specielt brugt til.net applikationer Webserver program Internet Information Services, webserver program Program der bruges til at se kommunikationen mellem to computere. En del af Offce og som typisk bruges til regnskabs opgaver. Programmering C# VSTO Metode/funktion Stateless Kode sprog Visual Studio Tools for Offce Et stykke kode der udfører en funktion. Noget der ikke bruger tilstande. Dokumentation RFC W3C IEEE Request for Comments World Wide Web Consortium Institute of Electrical and Electronics Engineers Projekt TLP Timelog Sitecode Timelog Procject Login Et frma/program der kan bruges til tids registreringer på specifkke projekter. En kode der er unik i forhold til frmaet. 63

64 1 Acceptance Tests I acceptance testen, kontrollerer jeg om funktionskravene/ikke funktionskrav i kravspecifkationer opfyldes. Til dette formål afholdes understående test. Testresultaterne gennemgås i appendiksen. Test 1 MR-1, MR-2,MR-3 Formål: At teste om dataene kan gemmes, og om Excel Test beskrivelse: arket kan hentes uden brug af Timelog. 1. Programmet åbnes 2. Data hentes 3. Indtastning af egen data 4. Excel arket gemmes, via Microsoft Excel 5. Programmet lukkes 6. Arket åbnes 7. Arket sendes til computer, hvor programmet ikke er installeret Beskrivelse af det 8. Arket åbnes Det forventes at arket kan gemmes og åbnes uden forventede brug af programmet, dog vil brugeren blive mindet resultat: Resultat. Kommentar: om at programmet ikke kan åbnes. Accepteret Test 2 MR-4 Formål: At teste om brugeren præsenteres for grafisk Test beskrivelse: overblik. 1. Arket/programmet startes 2. Data for alle måneder hentes Beskrivelse af det 3. Resultat arket vælges Det forventes at arket indeholder en grafik der forventede beskriver alle måneders omsætning. resultat: Resultat. Kommentar: Accepteret 64

65 Test 3 TP-1, TP-2 Formål: At teste om brugeren kan vælge en tidsperiode, og om der hentes data fra samme periode året Test beskrivelse: forinden. 1. Programmet startes 2. Brugeren logger ind 3. Brugeren vælger tidsperiode Beskrivelse af det 4. brugeren trykker import Det forventes at brugeren bliver præsenteret for forventede resultat arket med data fra begge måneder. resultat: Resultat. Kommentar: Accepteret Test 4 NT-1, NT-2 Formål: At teste om de af kravspecifikationen nøgletal Test beskrivelse: hentes og præsenteres som det er ønsket. 1. Programmet startes 2. Brugeren logger ind Beskrivelse af det 3. Brugeren vælger periode At dataene hentes og præsenteres som ønsket. forventede resultat: Resultat. Kommentar: Accepteret Test 5 NT-3 Formål: At teste om der kan indtastes timer for, hvilket Test beskrivelse: Timelog ikke kan hente. 1. Programmet startes 2. Brugeren logger ind 3. Brugeren trykker på Div. timer 4. Brugeren indtaster timer og vælger gem 5. Brugeren vælger Faste omkostninger Beskrivelse af det 6. Brugeren indtaster timer og vælger gem At timerne gemmes under den valgte periodes forventede Excel ark. resultat: Resultat. Accepteret 65

66 Kommentar: Test 6 KY-1 Formål: Test beskrivelse: At teste om kravet omkring tiden overholdes 1. Programmet startes bruger logges ind Beskrivelse af det 2. En tidsperiode/måned vælges Der forventes at dataene hentes inden for forventede tidskravet. resultat: Resultat. Kommentar: Accepteret Selvom om kravet er opfyldt var det alt for tæt på grænsen. 66

67 2 Milestone plan Milestoneplanen beskriver projektforløbet og evt. overskridelser af deadlines. Som det ses var det planlagt at være færdig 3 uger før tid, hvilket på grund af fere ting desværre ikke kunne overholdes, se konklusion. Jeg har valgt at tilføje fere små milestones, hvilket ikke er normalt, dette blev gjort for bedre at styre projektet. Yderligere er milestones omkring rapporten tilføjet for at hjælpe med at holdestyr på denne, hvilket ikke er normal praksis. November December Uge oktober 39 Status Færdig 38 Kommentar september 37 Krav specifkatoner Deadline Måned 36 Milestone nummer Rapport Færdig gnelse Problemformulering Problem analyse Færdig Færdig Teori og metode Risiko analyse USE case diagram Design Model Excel månedsrapport udseende. Timelog applikatons Login, tl Timelog, dataudtræk kode lavet. Timelog applikaton tl data manipulaton, medhenblik på de 1 dag. Overskred med 2 dag. Overskred med 3 dag. Overskred med 5 dag. Overskred med 5 dag. Overskred med 5 dag. Overskred med Færdig Færdig Færdig Færdig Færdig Færdig 5 dag Færdig Færdig Cons t r uc ton lavet. Timelog applikaton tl Færdig Overskred med E l a bor a ton template/indholdsforte ønsket nøgletals fremvisning. Applikatons integraton tl windows. Applikaton Black Box test (Acceptance test). Manual lavet. PowerPoint applikaton tl implicerede medarbejdere. Konklusion. Indledning Overskred med 14 dag. Overskred med 30 dag. Overskred med 30 dag. Overskred med 30 dag. Færdig Færdig Færdig Færdig Tr a ns i ton præsentaton. Fremvisning af

68 3 Metode oversigt Metode GetCustomersRaw GetCustomersShortList GetContactsRaw GetContactsShortList GetCountriesShortList GetProjectsRaw GetProjectsShortList GetTasksRaw GetTasksShortList GetAllocationsRaw GetWorkUnitsRaw GetEmployeesRaw GetEmployeesShortList GetDepartmentsShortList GetInvoicesRaw GetInvoiceLinesRaw GetInvoiceLineDetailsRaw GetCustomerStatusShortList GetIndustriesShortList GetProjectCategoriesShortList GetProjectTypesShortList GetTaskTypesShortList GetSupportCaseRaw GetSupportJournalRaw GetSupportContractRaw GetSupportTypesShortList ApiUserAuthentication 4 Beskrivelse Liste over alle kunder Liste over alle nøgledata fra kunder Liste over alle kontrakter Liste over alle nøgledata fra kontrakter Liste af lande Liste over alle projekter Liste over alle nøgledata fra projekter Liste over alle opgaver Liste over alle nøgledata fra opgaver Liste over alle nøgletal fra allokationer Liste over alle data fra arbejd enheder Liste over alle data fra medarbejdere Liste over alle nøgletal fra medarbejdere Liste over alle nøgletal fra afdelinger Liste over alle fakturaer Liste over alle faktura linjer Liste over alle nøgletal fra faktura linjer Liste over alle kunde statusangivelser Liste over industrier Liste over projektkategorier Liste over projekttyper Liste over alle opgaver Liste over supportsager Liste over supportjournaler Liste over supportkontrakter Liste over support typer Metode til brug af identifkation Gruppe Kunder Kunder Kunder Kunder Kunder Projekter Projekter Projekter Projekter Projekter Projekter Medarbejdere Medarbejdere Medarbejdere Fakturaer Fakturaer Fakturaer Kunder Kunder Projekter Projekter Projekter Timelog helpdesk Timelog helpdesk Timelog helpdesk Timelog helpdesk Sikkerhed Risiko analyse Opgave Risiko Generelt Manglende tid. Dårlig planlægning. Sygdom. Manglende viden. Rapport skrivning For højt ambitions niveau. 68

69 Misforståelse mellem vejled Manglende dybde i rapport Overfødig/ irrelevant vide Fejlfortolkning af metode. Dårlig layout. Manglende reference på ma Manglende krav specifkatio Program-udvikling For dårlig kode design. Dårlig kodning/slam kode. Manglende kode beskrivels Manglende mulighed for da 69

70 5 Entity relationer 70

71 6 Certifkat Eksempel på godkendt certifkat. 71

72 7 XML eksempler Følgende er et eksempel på et dataudtræk via metoden GetWorkUnitsRaw(). <?xml version="1.0"?> - <tlp:workunits xmlns:tlp="http://www.timelog.com/xml/schema/tlp/v4_4"> - <tlp:workunit ID="50195"> <tlp:employeeid>398</tlp:employeeid> <tlp:employeeinitials>rn</tlp:employeeinitials> <tlp:employeefirstname>rikke</tlp:employeefirstname> <tlp:employeelastname>nedergaard</tlp:employeelastname> <tlp:allocationid>3329</tlp:allocationid> <tlp:taskid>1436</tlp:taskid> <tlp:projectid>277</tlp:projectid> <tlp:date> t00:00:00</tlp:date> <tlp:note>krisestyring, MB</tlp:Note> <tlp:reghours>5.0000</tlp:reghours> <tlp:invhours>0.0000</tlp:invhours> <tlp:costamount> </tlp:costamount> <tlp:regamount> </tlp:regamount> <tlp:invamount>0.0000</tlp:invamount> </tlp:workunit> - <tlp:workunit ID="50335"> <tlp:employeeid>406</tlp:employeeid> <tlp:employeeinitials>ctp</tlp:employeeinitials> <tlp:employeefirstname>carsten</tlp:employeefirstname> <tlp:employeelastname>tonn-petersen</tlp:employeelastname> <tlp:allocationid>3494</tlp:allocationid> <tlp:taskid>1514</tlp:taskid> <tlp:projectid>293</tlp:projectid> <tlp:date> t00:00:00</tlp:date> <tlp:note>rejsetid</tlp:note> <tlp:reghours> </tlp:reghours> <tlp:invhours>0.0000</tlp:invhours> <tlp:costamount> </tlp:costamount> <tlp:regamount> </tlp:regamount> <tlp:invamount>0.0000</tlp:invamount> </tlp:workunit> </tlp:workunits> Følgende er et eksempel på brug af metoden GetEmployeesRaw(). <?xml version="1.0" encoding="utf-8"?> 72

73 - <tlp:employees xmlns:tlp="http://www.timelog.com/xml/schema/tlp/v4_4" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.timelog.com/xml/schema/tlp/v4_4 - <tlp:employee ID="17"> <tlp:firstname>john</tlp:firstname> <tlp:lastname>doe</tlp:lastname> <tlp:fullname>john Doe</tlp:FullName> <tlp:initials>jdo</tlp:initials> <tlp:title>code Buster</tlp:Title> <tlp:phone> </tlp:Phone> <tlp:mobile> </tlp:Mobile> <tlp:privatephone> </tlp:PrivatePhone> <tlp:address>new street 110</tlp:Address> <tlp:zipcode>99 999</tlp:ZipCode> <tlp:city>malmö</tlp:city> <tlp:status>1</tlp:status> <tlp:departmentnameid>25</tlp:departmentnameid> <tlp:departmentname>research and Development</tlp:DepartmentName> </tlp:employee> </tlp:employees> Følgende er et eksempel på brug af metoden GetProjectsRaw(). <?xml version="1.0" encoding="utf-8"?> - <tlp:projects xmlns:tlp="http://www.timelog.com/xml/schema/tlp/v4_4" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.timelog.com/xml/schema/tlp/v4_4 - <tlp:project ID="740"> <tlp:name>webinar</tlp:name> <tlp:no>p </tlp:no> <tlp:status>1</tlp:status> <tlp:customerid>1</tlp:customerid> <tlp:customername>timelog ApS</tlp:CustomerName> 73

74 <tlp:customerno> </tlp:customerno> <tlp:pmid>20</tlp:pmid> <tlp:pminitials>pwp</tlp:pminitials> <tlp:pmfullname>peder Wuth Pedersen</tlp:PMFullName> <tlp:projecttypeid>16</tlp:projecttypeid> <tlp:projecttypename>internal - Support</tlp:ProjectTypeName> <tlp:projectcategoryid>2</tlp:projectcategoryid> <tlp:projectcategoryname>project</tlp:projectcategoryname> </tlp:project> </tlp:projects> 74

75 Excel templates Resultat 75

76 Nøgletal 76

77 77

78 Omkostninger 78

79 Balance 79

Installation og Drift. Aplanner for Windows Systemer Version 8.15

Installation og Drift. Aplanner for Windows Systemer Version 8.15 Installation og Drift Aplanner for Windows Systemer Version 8.15 Aplanner for Windows løsninger Tekniske forudsætninger Krav vedr. SQL Server SQL Server: SQL Server 2008 Express, SQL Server 2008 R2 eller

Læs mere

PHP Quick Teknisk Ordbog

PHP Quick Teknisk Ordbog PHP Quick Teknisk Ordbog Af Daniel Pedersen PHP Quick Teknisk Ordbog 1 Indhold De mest brugte tekniske udtryk benyttet inden for web udvikling. Du vil kunne slå de enkelte ord op og læse om hvad de betyder,

Læs mere

Fuld installation af Jit-klient

Fuld installation af Jit-klient Fuld installation af Jit-klient Indholdsfortegnelse Systemkrav til afvikling af Jit-klienten...3 Opsætning af firewall...4 Om installationsfilen...5 Installation af MSI-filen...6 Om SSL-certifikater...13

Læs mere

Internet Information Services (IIS)

Internet Information Services (IIS) Internet Information Services (IIS) Casper Simonsen & Yulia Sadovskaya H1we080113 06-11-2013 Indholdsfortegnelse Problemformulering... 2 Hvorfor:... 2 Hvad:... 2 Hvordan:... 2 Problembehandling... 3 Introduktion...

Læs mere

Ethereal Intro && Ethereal HTTP. René Hansen Anders Bjerg Pedersen Michael Nilou Hold 1 September 12, 2007

Ethereal Intro && Ethereal HTTP. René Hansen Anders Bjerg Pedersen Michael Nilou Hold 1 September 12, 2007 Ethereal Intro && Ethereal HTTP René Hansen Anders Bjerg Pedersen Michael Nilou Hold 1 September 12, 2007 1 Indledning Denne opgave går ud på at anvende programmet Wireshark til at analysere trafik over

Læs mere

LUDUS WEB. Installations- og konfigurations-vejledning. Den 7. april 2009. J.nr.: 4004 V0624 09

LUDUS WEB. Installations- og konfigurations-vejledning. Den 7. april 2009. J.nr.: 4004 V0624 09 LUDUS WEB Installations- og konfigurations-vejledning Den 7. april 2009 J.nr.: 4004 V0624 09 CSC Scandihealth A/S, P.O. Pedersens Vej 2, DK-8200 Århus N Tlf. +45 3614 4000, fax +45 3614 7324, www.scandihealth.dk,

Læs mere

FairSSL Fair priser fair support

FairSSL Fair priser fair support Exchange 2010 SSL certifikat administration Følgende vejledning beskriver hvordan man vælger hvilke adresser der skal være i ens Exchange 2010 SAN SSL certifikat. Derudover er der tekniske guides til at

Læs mere

Smartair 6.0. Installations guide

Smartair 6.0. Installations guide Smartair 6.0 Installations guide Indholdsfortegnelse 1 Indledning... 4 2 System Oversigt... 4 3 Installation... 5 3.1 System Krav... 5 3.2 Klargøring af installationen... 5 3.3 Afinstallere tidligere TS1000

Læs mere

Opsætning af Outlook til Hosted Exchange 2003

Opsætning af Outlook til Hosted Exchange 2003 Opsætning af Outlook til Hosted Exchange 2003 Sådan opsættes Outlook 2007 til Hosted Exchange 2003 Opdateret 15. november 2011 Indhold 1 Indledning... 2 2 Opsætning af Outlook 2003... Error! Bookmark not

Læs mere

Indholdsfortegnelse for kapitel 1

Indholdsfortegnelse for kapitel 1 Indholdsfortegnelse for kapitel 1 Forord.................................................................... 2 Kapitel 1.................................................................. 3 Formål............................................................

Læs mere

Version 1.0 Januar 2011. Xerox Phaser 3635MFP Extensible Interface Platform

Version 1.0 Januar 2011. Xerox Phaser 3635MFP Extensible Interface Platform Version 1.0 Januar 2011 Xerox Phaser 3635MFP 2011 Xerox Corporation. XEROX og XEROX and Design er varemærker tilhørende Xerox Corporation i USA og/eller andre lande Der foretages regelmæssigt ændringer

Læs mere

FairSSL Fair priser fair support

FairSSL Fair priser fair support Microsoft IIS 6 Certifikat administration Følgende vejledning beskriver hvordan man installere et certifikat på en IIS 6 For support og hjælp til anvendelsen af denne vejledning kan du kontakte FairSSL

Læs mere

FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø

FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø Høringssvar vedr. FESD GIS-integrationsmodel version 2.0 Geodata Danmark har

Læs mere

LUDUS Web Installations- og konfigurationsvejledning

LUDUS Web Installations- og konfigurationsvejledning LUDUS Web Installations- og konfigurationsvejledning Indhold LUDUS Web Installations- og konfigurationsvejledning... 1 1. Forudsætninger... 2 2. Installation... 3 3. Konfiguration... 9 3.1 LUDUS Databasekonfiguration...

Læs mere

Opsætning af Outlook til Hosted Exchange 2007

Opsætning af Outlook til Hosted Exchange 2007 Opsætning af Outlook til Hosted Exchange 2007 Sådan opsættes Outlook 2007 til Hosted Exchange 2007. Opdateret 29. december 2010 Indhold 1 Indledning... 2 2 Outlook 2007 klienten... 2 3 Automatisk opsætning

Læs mere

smart-house Web-Server Manual smart-house Web-Server Manual 1 of 15

smart-house Web-Server Manual smart-house Web-Server Manual 1 of 15 smart-house Web-Server Manual CARLO GAVAZZI AS, PB 215, NO-3901 Porsgrunn Telefon: 35 93 08 00 Telefax: 35 93 08 01 Internet: http://www.carlogavazzi.no E-Mail: gavazzi@carlogavazzi.no 1 of 15 Indholdsfortegnelse

Læs mere

DOtAB. Teknisk rapport

DOtAB. Teknisk rapport DOtAB Teknisk rapport Indholdsfortegnelse Introduktion... 1 Systemarkitektur... 1 Teknologier... 1 Platforme for mobile enheder... 1 Kommunikations interfacet... 2 Udviklingsmiljø... 2 IDOtAB (service

Læs mere

Database for udviklere. Jan Lund Madsen PBS10107

Database for udviklere. Jan Lund Madsen PBS10107 Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated

Læs mere

Vejledning til Teknisk opsætning

Vejledning til Teknisk opsætning Vejledning til Teknisk opsætning v. 1.0 Adm4you, 2010. Indhold Kort om denne vejledning... 3 Generelt om easyourtime... 3 Installation af databasen... 3 Sikkerhed og rettigheder... 4 SQL Login... 4 Rettigheder

Læs mere

Testservice med anvendelse af Microsoft software.

Testservice med anvendelse af Microsoft software. Testservice med anvendelse af Microsoft software. Få offentlig nøgle fra installeret signeringscertifikat 1. Klik Start Kør på den pc eller server hvor signeringscertifikatet er installeret. 2. Skriv MMC

Læs mere

TDCs Signaturserver. 11/05 - Version 1.0 2005 TDC Erhverv Sikkerhed og certifikater

TDCs Signaturserver. 11/05 - Version 1.0 2005 TDC Erhverv Sikkerhed og certifikater TDCs Signaturserver Side 2 Indhold Indledning...3 Teknisk projekt... 3 Tekniske forudsætninger... 3 Installation af klienten... 4 Udstedelse af signatur... 4 Anvendelse af signaturen... 6 Eksport af signaturen...

Læs mere

Håndbog Til CPR services. Bilag 5 Logon og generel brug af CPR-services; programmeringsvejledning

Håndbog Til CPR services. Bilag 5 Logon og generel brug af CPR-services; programmeringsvejledning Håndbog Til CPR services Bilag 5 Logon og generel brug af CPR-services; programmeringsvejledning CPR-kontoret Finsensvej 15, 2000 Frederiksberg E-post: cpr@cpr.dk. Hjemmeside: www.cpr.dk Håndbog til CPR

Læs mere

INDHOLDSFORTEGNELSE. INDLEDNING... 7 Kristian Langborg-Hansen. KAPITEL ET... 9 I gang med App Inventor. KAPITEL TO...

INDHOLDSFORTEGNELSE. INDLEDNING... 7 Kristian Langborg-Hansen. KAPITEL ET... 9 I gang med App Inventor. KAPITEL TO... INDHOLDSFORTEGNELSE INDLEDNING... 7 Kristian Langborg-Hansen KAPITEL ET... 9 I gang med App Inventor Installation af App Inventor... 10 Trådløs installation... 11 Installation af emulator (Windows)...

Læs mere

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4 Maskine Udlejning 15. oktober 2010 Jacob Weng, Jeppe Boese og Mads Anthony Roskilde Tekniske Gymnasium Udlejningsvirksomhed 3.4 Indholdsfortegnelse Problemformulering:... 2 Planlægning:... 2 Analyse af

Læs mere

Vejledning. Opsætning af Trio Web Vers 2.0 feb. 2010

Vejledning. Opsætning af Trio Web Vers 2.0 feb. 2010 Opsætning af Trio Web Vers 2.0 feb. 2010 Indholdsfortegnelse Opsætning af Trio Web... 3 Generel opsætning af Trio Web... 3 Databaseopsætning... 3 DB... 3 Aar... 4 Login... 4 Internet... 4 Port... 4 Registreringsnøgle...

Læs mere

Ruko ARX Access. Total tryghed og sikkerhed med online adgangskontrol STAND OFF ALONE LINE LINE

Ruko ARX Access. Total tryghed og sikkerhed med online adgangskontrol STAND OFF ALONE LINE LINE Access STAND ALONE OFF ON Total tryghed og sikkerhed med online adgangskontrol ASSA ABLOY, the global leader in door opening solutions Løsninger til ethvert behov Access indgår som toppen af kransekagen

Læs mere

Huset 2 overblik 4 Følgende kamera systemer kan linkes til DBM 6000 : Avermedia, Dallmeier, GeoVision, Milestone, Mirasys, Seetec, VisiMAX Kameraet kan tilgåes via installations vinduet, bygningstegningen

Læs mere

LaserNet v6.6 Release Nyhedsbrev

LaserNet v6.6 Release Nyhedsbrev LaserNet v6.6 Release Nyhedsbrev NY Input Management-Løsning! Indhold: LaserNet v6.6 LaserNet Webinars NY LaserNet Input Management-løsning Nyt Produkt: LaserNet Client Nye Features & Functions Ny medarbejder

Læs mere

Afsnittet er temmelig teoretisk. Er du mere til det praktiske, går du blot til det næste afsnit.

Afsnittet er temmelig teoretisk. Er du mere til det praktiske, går du blot til det næste afsnit. Afsnittet er temmelig teoretisk. Er du mere til det praktiske, går du blot til det næste afsnit. XML (eng. extensible Markup Language) XML er en måde at strukturere data på i tekstform. På samme måde som

Læs mere

Sporbarhed og Rapportering i Quality Center. Kim Stenbo Nielsen NNIT Application Management Services

Sporbarhed og Rapportering i Quality Center. Kim Stenbo Nielsen NNIT Application Management Services Sporbarhed og Rapportering i Quality Center Kim Stenbo Nielsen NNIT Application Management Services Indhold INTRODUKTION Hvem er jeg Hvad vil jeg fortælle om QC std. rapporteringsfaciliteter EXCEL RAPPORTER

Læs mere

XML webservice for pensionsordninger. Version 1.0 Draft A

XML webservice for pensionsordninger. Version 1.0 Draft A XML webservice for pensionsordninger Version 1.0 Draft A Dokumentoplysninger Titel: Projekt: Webservice for pensionsordninger EDI kontorets branchekoordinerede dataudveksling Forfatter: Bidragsydere til

Læs mere

PID2000 Archive Service

PID2000 Archive Service PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 PID2000 Archive Service Bruger vejledning Juni 2002 Denne manual beskriver brugen af softwaren

Læs mere

Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning

Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning 1. Lokalt installeret afleveringsprogram til stedprøver... 2 2. Systemkrav... 3 3. Netværksopsætning... 4 4. Installation

Læs mere

Skyfillers Online Backup. Kundemanual

Skyfillers Online Backup. Kundemanual Skyfillers Online Backup Kundemanual Kundemanual Indhold Opsætning... 2 Installation... 2 Download software... 2 Installation under Windows... 2 Installation under Mac OS X... 3 Log ind... 3 Tilpas kontoindstillinger...

Læs mere

NemTid. Produktbeskrivelse

NemTid. Produktbeskrivelse NemTid Produktbeskrivelse Overordnet: NemTid er et værktøj til styring af tid og tidsforbrug. Udover registrering af komme/gå tider kan NemTid holde styr på følgende: Arbejdstider, herunder ugeprofiler.

Læs mere

Google Cloud Print vejledning

Google Cloud Print vejledning Google Cloud Print vejledning Version A DAN Definitioner af bemærkninger Vi bruger følgende stil til bemærkninger gennem hele brugsanvisningen: Bemærkninger fortæller, hvordan du skal reagere i en given

Læs mere

Xenapps/Citrix klient opsætningsvejledning til Integra driftløsningen. Xenapps/Citrix basisport. Xenapps/Citrix Service. Xenapps/Citrix XML service

Xenapps/Citrix klient opsætningsvejledning til Integra driftløsningen. Xenapps/Citrix basisport. Xenapps/Citrix Service. Xenapps/Citrix XML service Integra klient opsætningsvejledning til Integra driftløsningen Hedensted Folkebibliotek Funktion Type Indhold Note Gruppe Hedensted Farm BibFarm3 Server Janne basisport Service XML service HTTPS 443 TCP

Læs mere

Roskilde Tekniske Gymnasium. Eksamensprojekt. Programmering C niveau

Roskilde Tekniske Gymnasium. Eksamensprojekt. Programmering C niveau Roskilde Tekniske Gymnasium Eksamensprojekt Programmering C niveau Andreas Sode 09-05-2014 Indhold Eksamensprojekt Programmering C niveau... 2 Forord... 2 Indledning... 2 Problemformulering... 2 Krav til

Læs mere

Digital Print Room Implementering og tilretning. 11. Sep. 2001 TMC Plot-SIG

Digital Print Room Implementering og tilretning. 11. Sep. 2001 TMC Plot-SIG Digital Print Room Implementering og tilretning 11. Sep. 2001 TMC Plot-SIG Agenda. Priser. Forskellen mellem de 3 versioner. Hardware og software. Sikkerheden og opsætning af rettigheder. Opgradering fra

Læs mere

Oktober 2013 HLG/XIGA. Opstartsvejledning ATS Engros 1/12

Oktober 2013 HLG/XIGA. Opstartsvejledning ATS Engros 1/12 Oktober 2013 HLG/XIGA Opstartsvejledning ATS Engros 1/12 1. ATS Engros vejledning for aktører Formålet med dette dokument er at beskrive, hvordan du kommer i gang med at anvende ATS til test af certifikat

Læs mere

Sådan opretter du en backup

Sådan opretter du en backup Excovery Guide Varighed: ca. 15 min Denne guide gennemgår hvordan du opretter en backup med Excovery. Guiden vil trinvist lede dig igennem processen, og undervejs introducere dig for de grundlæggende indstillingsmulighed.

Læs mere

Skriftlig opgave. Designtanker i database-nære systemer

Skriftlig opgave. Designtanker i database-nære systemer Skriftlig opgave til eksamen for faget»databaser«designtanker i database-nære systemer Martin Ancher Holm Juni 2010 1 Intro Denne skriftlige opgave indeholder kort de daglige tanker jeg har omkring design

Læs mere

TEKNISKE FORHOLD VEDR. ADGANG TIL VP.ONLINE. Brugervejledning

TEKNISKE FORHOLD VEDR. ADGANG TIL VP.ONLINE. Brugervejledning TEKNISKE FORHOLD VEDR. ADGANG TIL VP.ONLINE vp.online 2011 01-10-2011 Indholdsfortegnelse 1 PROBLEMER MED AT SE VP.ONLINE... 3 2 BROWSER KONFIGURATION... 6 3 SKRIVEADGANG TIL DREV... 7 4 SESSION TIMEOUT

Læs mere

Brugervejledning - til internetbaseret datakommunikation med Nets ved hjælp af HTTP/S-løsningen

Brugervejledning - til internetbaseret datakommunikation med Nets ved hjælp af HTTP/S-løsningen Nets Denmark A/S Lautrupbjerg 10 P.O. 500 DK 2750 Ballerup T +45 44 68 44 68 F +45 44 86 09 30 www.nets.eu Brugervejledning - til internetbaseret datakommunikation med Nets ved hjælp af HTTP/S-løsningen

Læs mere

GeoEnviron Web-løsninger

GeoEnviron Web-løsninger 2012 Troels Kreipke 01-01-2012 Indhold Generelt... 3 Web-løsninger... 3 XML-firewall... 4 GeoEnviron_WebService... 4 Installation af web-løsninger uden brug af GeoEnviron_WebService... 5 GeoEnviron_WebService...

Læs mere

En teknisk introduktion til NemHandel

En teknisk introduktion til NemHandel En teknisk introduktion til NemHandel 02. december 2014 Indhold INDHOLD... 1 INDLEDNING... 2 STANDARDER... 4 OIOUBL e-handelsstandard... 4 OIORASP - transportprotokol... 5 BETINGELSER FOR ANVENDELSE AF

Læs mere

Godkendelsesdato Version Rettet af Rettelse(r)

Godkendelsesdato Version Rettet af Rettelse(r) REST/SOAP Services Referenceimplementation Godkendelsesdato Version Rettet af Rettelse(r) 17/6-2010 1.0 Stefan L. Jensen 1 Indhold 1. Indledning... 3 2. Visual Studio solution... 3 3. Konfiguration...

Læs mere

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet. MOX og APOS2 Forord Dette dokument er en del af APOS version 2 manualerne. APOS version 2 (APOS2 herefter) er et organisation, klassifikation og personale system baseret på Sag & Dokument standarderne.

Læs mere

Carry it Easy Brugermanual

Carry it Easy Brugermanual Carry it Easy Brugermanual Brugermanual Version 2.0 2004-2006 CoSoSys SRL Carry it Easy Brugermanual Indholdsfortegnelse Indholdsfortegnelse...I 1. Introduktion...1 2. Systemkrav...2 3. Installation...2

Læs mere

Skyfillers Hosted SharePoint. Kundemanual

Skyfillers Hosted SharePoint. Kundemanual Skyfillers Hosted SharePoint Kundemanual Kundemanual Indhold Generelt... 2 Online adgang SharePoint side... 2 Skift brugeradgangskode... 2 Adgang & opsætning... 3 Windows... 3 Tilføj SharePoint som intranet

Læs mere

Opsætning af MobilePBX med Kalenderdatabase

Opsætning af MobilePBX med Kalenderdatabase Opsætning af MobilePBX med Kalenderdatabase Dette dokument beskriver hvorledes der installeres Symprex Exchange Connector og SQL Server Express for at MobilePBX kan benytte kalenderadadgang via database

Læs mere

Administrator v1.0 QUICK GUIDE. Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk

Administrator v1.0 QUICK GUIDE. Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk Administrator v1.0 QUICK GUIDE Green Glass Software V/ Dan Feld-Jakobsen Lojovej 1 6200 Aabenraa 51 92 83 58 / dan@rekvi-skole.dk INTRODUKTION TIL REKVI-KONTOR Ideen med Rekvi-Kontor systemet udsprang

Læs mere

FairSSL Fair priser fair support

FairSSL Fair priser fair support Small Business Server 2008 SSL certifikat administration Følgende vejledning beskriver hvordan man installere et certifikat på en SBS 2008 server. Ved bestilling af certifikater til Small Business Server

Læs mere

Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder.

Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder. .NET UDVIKLER NATIONALITET: DANSK PROFIL Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder. Stor erfaring omkring databasedesign, datahåndtering og MS

Læs mere

Indhold. Senest opdateret:03. september 2013. Side 1 af 8

Indhold. Senest opdateret:03. september 2013. Side 1 af 8 Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 API Modeller... 2 Webshop2 API Model v1... 3

Læs mere

Håndbog Til CPR services. Bilag 8 GCTP-standard m.m. CPR-kontoret

Håndbog Til CPR services. Bilag 8 GCTP-standard m.m. CPR-kontoret Håndbog Til CPR services Bilag 8 GCTP-standard m.m. CPR-kontoret Datavej 20, Postboks 269, 3460 Birkerød E-post: cpr@cpr.dk. Telefax 45 82 51 10. Hjemmeside: www.cpr.dk Side 2 af 14 Indholdsfortegnelse

Læs mere

Kald af PingService via SOAPUI

Kald af PingService via SOAPUI Kald af PingService via SOAPUI Author: Integration Expert Team (IET) Owner: Integration Expert Team (IET) Page 1 of 24 1. Dokumenthistorik Kald af PingService via SOAPUI Revisioner Dato for denne version:

Læs mere

RCS WTM Time Manager. RCS WTM Time Manager 100 % webbaseret og integreret til forskellige økonomisystemer

RCS WTM Time Manager. RCS WTM Time Manager 100 % webbaseret og integreret til forskellige økonomisystemer RCS WTM Time Manager RCS WTM Time Manager 100 % webbaseret og integreret til forskellige økonomisystemer RCS WTM Time Manager er et enkelt og effektivt system til at registrere time- og ressourceforbruget

Læs mere

STOFA VEJLEDNING ONLINEDISK INSTALLATION

STOFA VEJLEDNING ONLINEDISK INSTALLATION STOFA VEJLEDNING ONLINEDISK INSTALLATION I denne vejledning gennemgås installation af Stofa OnlineDisk samt opsætning, brugerflade og OnlineDisk Webportalen. Trin 1 Information om Stofa OnlineDisk Stofa

Læs mere

CV - Michael Hviid. Januar 2003- august 2008 Rehfeld Partners Projektleder. Juli 1998 - December 2002 Egen konsulentvirksomhed 1998-2002

CV - Michael Hviid. Januar 2003- august 2008 Rehfeld Partners Projektleder. Juli 1998 - December 2002 Egen konsulentvirksomhed 1998-2002 CV - Michael Hviid Kontaktoplysninger Michael Hviid Platanvej 23 4000 Roskilde Mobil 4057 4606 E-mail: mh@zy.dk Profilresume Michael har mere end 20 års erfaring med projekt- og udviklingsarbejde i itbranchen.

Læs mere

PDC Helpdesk Brugervejledning

PDC Helpdesk Brugervejledning PDC Helpdesk Brugervejledning PDC Helpdesk November 2013 Indhold 1 Introduktion... 3 2 Brug af browser eller e-mails... 3 3 Log på PDC Helpdesk... 4 4 Oversigts side for sager... 5 4.1 Oversigt over eksisterende

Læs mere

Web MTC manual. Version 1.1 08-11-2012

Web MTC manual. Version 1.1 08-11-2012 Web MTC manual Version 1.1 08-11-2012 1 Revisioner: Version 1.0, 11-10-2012: Oprettelse af dokument Version 1.1, 08-11-2012: Afsnit om udskrivning af rapport tilføjet. 2 Indhold Sideopbygning... 5 Startside...

Læs mere

Kravspecification IdP løsning

Kravspecification IdP løsning Kravspecification IdP løsning Resume IT-Forsyningen, som varetager IT-drift for Ballerup, Egedal og Furesø Kommuner, ønsker at anskaffe en IdP/Føderationsserverløsning, der kan understøtte en række forretningsmæssige

Læs mere

Umbraco installationsvejledning

Umbraco installationsvejledning på et ScanNet ASP Webhotel Indledning Beskrivelse Denne vejledning vil indeholde installation af CMS systemet Umbraco på et ASP Webhotel. Det dansk grundlagt Content Management System (CMS) Umbraco er

Læs mere

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund AVR MP3 29-05-08 Indholdsfortegnelse 1 Introduktion...2 2 Udviklingsmiljø...2 3 Beskrivelse af systemet...3 3.1 VS1001k...3 3.2 MP3 file formatet...6 4 Konklusion...6 5 Litteratur liste...6 6 Illustrations

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

Vi har udarbejdet denne korte vejledning for at hjælpe dig i gang med at afprøve BCpro / Projektstyring.

Vi har udarbejdet denne korte vejledning for at hjælpe dig i gang med at afprøve BCpro / Projektstyring. Kom godt i gang BCpro / Projektstyring En simpel brugerflade med avancerede funktioner Byggecentrum Introduktion Formålet med denne vejledning Vi har udarbejdet denne korte vejledning for at hjælpe dig

Læs mere

DKAL Snitflader Afsendelse og modtagelse af meddelelser via S/MIME

DKAL Snitflader Afsendelse og modtagelse af meddelelser via S/MIME DKAL Snitflader Afsendelse og modtagelse af meddelelser via S/MIME 1 Indholdsfortegnelse B.1. INTRODUKTION... 3 B.1.1. HENVISNINGER... 3 B.1.2. INTEGRATION MED EKSISTERENDE SIKKER E-POSTLØSNING... 3 B.1.3.

Læs mere

Tidsregistrering. Jacob E., Jacob H., Mathias, Mads H., Jonatan og Dan 3.4. Informationsteknologi B. Roskilde Tekniske Gymnasium 25-11-2014

Tidsregistrering. Jacob E., Jacob H., Mathias, Mads H., Jonatan og Dan 3.4. Informationsteknologi B. Roskilde Tekniske Gymnasium 25-11-2014 2014 Tidsregistrering Jacob E., Jacob H., Mathias, Mads H., Jonatan og Dan 3.4 Informationsteknologi B Roskilde Tekniske Gymnasium 25-11-2014 Indholdsfortegnelse 1 Indledning... 3 2 User stories... 3 3

Læs mere

Indhold. Senest opdateret : 30. juli 2010. Side 1 af 5

Indhold. Senest opdateret : 30. juli 2010. Side 1 af 5 Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 Webshop2 API Model... 3 Brugen af API et... 4

Læs mere

En open source løsning til bibliotekernes publikumspc ere

En open source løsning til bibliotekernes publikumspc ere En open source løsning til bibliotekernes publikumspc ere Dokument: bibos installationsvejledning bibos version: 2.1.0.1 released 25. oktober 2013 Senest redigeret: 5. februar 2014 af Niels Schmidt Petersen,

Læs mere

FairSSL Fair priser fair support

FairSSL Fair priser fair support Forskellen på Chained root og Single root certifikater Denne vejledning vil prøve på at beskrive forskellen på et Chained root og et Single root udstedt certifikat. Derudover vil vi også forsøge at beskrive

Læs mere

KRAV TIL INFRASTRUKTUR

KRAV TIL INFRASTRUKTUR KRAV TIL INFRASTRUKTUR VERSION 4.2.8 SEPTEMBER 2015 Indholdsfortegnelse 1 Generelt... 1 2 Servermæssige krav til -modulerne... 1 2.1 Systemmæssige krav i servermiljø... 1 2.2 Hardwaremæssige krav i servermiljø...

Læs mere

Automatisk Vandingssystem

Automatisk Vandingssystem Automatisk Vandingssystem Projektdokumentation Aarhus Universitet Gruppe 6-3. Semester - F15 vejleder: Michael Alrøe dato: 28-05-2015 Lærke Isabella Nørregård Hansen - 201205713 - IKT Kasper Sejer Kristensen

Læs mere

REEFTlink Et banebrydende produkt til on-line overvågning af jeres produktionsapparat

REEFTlink Et banebrydende produkt til on-line overvågning af jeres produktionsapparat Rikard Karlsson, produktionschef hos Elektrolux, Ljungby, Sverige: REEFTlink er en komplet, dynamisk og fremtidssikret løsning, der dækker hele vores behov for Lean og Takt-baseret produktionsstyring.

Læs mere

Installation af Oracle 10g Release 2 database

Installation af Oracle 10g Release 2 database Installation af Oracle 10g Release 2 database Oracle 10g database indeholder databasesoftware, enterprise manager, SQL*Plus m.m., HTML DB (i dag kendt som Application Express) og tilhørende HTTP Server

Læs mere

XProtect-klienter Tilgå din overvågning

XProtect-klienter Tilgå din overvågning XProtect-klienter Tilgå din overvågning Tre måder at se videoovervågning på For at skabe nem adgang til videoovervågning tilbyder Milestone tre fleksible brugergrænseflader: XProtect Smart Client, XProtect

Læs mere

Fjernadgang til BEC s systemer via Portal2

Fjernadgang til BEC s systemer via Portal2 Fjernadgang til BEC s systemer via Portal2 - tilgå applikationer og arbejdsplads via webbaseret portal (UAG) Udarbejdet af: Niklas Petersen Gældende fra: 24-08-2015 Version Forfatter Dato Dokumentstatus

Læs mere

APPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR. EG Copyright

APPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR. EG Copyright APPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR EG Copyright Infrastruktur er mere end nogle servere... Den Mentale Infrastruktur Den Fysiske Infrastruktur Den Mentale Infrastruktur Vi vil jo gerne have vores

Læs mere

Velkomstmappe ectrl. Deloitte Birkerød Kongevej 25C 3460 Birkerød Telefon 45 94 50 00

Velkomstmappe ectrl. Deloitte Birkerød Kongevej 25C 3460 Birkerød Telefon 45 94 50 00 Velkomstmappe ectrl Deloitte Birkerød Kongevej 25C 3460 Birkerød Telefon 45 94 50 00 Indholdsfortegnelse HVAD ER ECTRL?... 3 SUPPORT... 3 INSTALLATIONSVEJLEDNING TIL ECTRL... 4 OPRETTELSE OG ADMINISTRATION

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

Kom godt igang med Inventar registrering

Kom godt igang med Inventar registrering Kom godt igang med Inventar registrering (InventoryDB) (Med stregkodesupport) programmet fra PetriSoft Introduktion... 1 Inventar registrering... 2 Værktøjsudleje... 3 Service database til reperationer

Læs mere

Advanced Word Template Brugermanual

Advanced Word Template Brugermanual Advanced Word Template Brugermanual Forord: Advanced Word Template er et værktøj, der anvendes sammen med Microsoft Word til at opbygge ensartet beskrivelser på en mere intelligent måde end Copy and Paste

Læs mere

har jeg hentet nedenstående anmeldelse af et godt program til

har jeg hentet nedenstående anmeldelse af et godt program til Software Fra design af hjemmesider: har jeg hentet nedenstående anmeldelse af et godt program til Wordpress er intet mindre end et genialt program til hjemmesider. For det første er det gratis, og for

Læs mere

IT sikkerhed Whitelist

IT sikkerhed Whitelist IT sikkerhed Whitelist IT sikkerhed Whitelist Skrevet af: Anchelika V. Skjødt og Lasse B. Troelsen Kom/IT A Klasse 3.5 Side 1 af 7. Spam facts Spam er et af de største problemer med internettet på nuværende

Læs mere

Sikkerhed i trådløst netværk

Sikkerhed i trådløst netværk Sikkerhed i trådløst netværk Når du opsætter et trådløst netværk betyder det at du kan benytte dit netværk uden at være forbundet med kabler, men det betyder også at andre kan gøre det samme, hvis du ikke

Læs mere

Web services i brug. Anvendelse uden for biblioteksverdenen

Web services i brug. Anvendelse uden for biblioteksverdenen Web services i brug Anvendelse uden for biblioteksverdenen Agenda Visionen bag webservices Tre cases Et kig fremad Nordija Etableret i marts 1998 Udviklingsprojekter Forretningskritiske applikationer Komponenter

Læs mere

LiveConnect CDS Installationsvejledning

LiveConnect CDS Installationsvejledning Installationsvejledning Rev. 2 september 2009 Side 1 1. Installation af MediaPlayer 1.1 Installationen består af følgende Anbefalet konfiguration Du skal bruge følgende for at installere Installation af

Læs mere

EasyIQ ConnectAnywhere Release note

EasyIQ ConnectAnywhere Release note EasyIQ ConnectAnywhere Release note Version 2.4 Der er over det sidste år lavet en lang række forbedringer, tiltag og fejlrettelser. Ændringer til forudsætningerne: o Klienten skal ved førstegangs login

Læs mere

Succes med intranet til Office 365. Den 13. august 2014 Webtop A/S s. 1

Succes med intranet til Office 365. Den 13. august 2014 Webtop A/S s. 1 Succes med intranet til Office 365 Webtop A/S s. 1 Hvem er jeg https://twitter.com/jeslas http://www.linkedin.com/in/jesslassen Webtop A/S s. 2 Hvad er Office 365 Office pakken (Word, Excel..) Skyudgaver

Læs mere

Projekt: VAX NemHandel 4.0

Projekt: VAX NemHandel 4.0 Ejer: mysupply ApS Projekt: VAX NemHandel 4.0 Emne: Dette dokument beskriver de tekniske specifikationer for VAX NemHandel 4.0 samt krav til miljøet, herunder hardware og software, hvori VAX NemHandel

Læs mere

ereolen.dk -Sådan downlåner du -Sådan anvender du på ebogslæser, tablet og smartphone

ereolen.dk -Sådan downlåner du -Sådan anvender du på ebogslæser, tablet og smartphone Side 1 af 18 ereolen.dk -Sådan downlåner du -Sådan anvender du på ebogslæser, tablet og smartphone Side 2 af 18 Indholdsfortegnelse ereolen.dk... 1 1. Første gang du vil anvende ereolen.dk... 3 1.1 Opret

Læs mere

Henkel Norden AB ("Henkel") er en del af Henkel Corporation, og i henhold til DPA, er Jörg Heine, den dataansvarlige: schwarzkopf.dk@henkel.

Henkel Norden AB (Henkel) er en del af Henkel Corporation, og i henhold til DPA, er Jörg Heine, den dataansvarlige: schwarzkopf.dk@henkel. HENKEL FORTROLIGHEDSPOLITIK Vi, hos Henkel, tager vores forpligtelser i henhold til dansk lov om databeskyttelse (persondataloven) alvorligt og er forpligtet til at beskytte dit privatliv. Denne fortrolighedserklæring

Læs mere

Studieordning del 3-2014

Studieordning del 3-2014 Studieordning del 3-2014 Valgfag Datamatiker AP Graduate in Computer Science Version 1.1 Revideret august 2014 Side 0 af 6 del 3 Valgfag 1. Valgfrie uddannelseselementer...2 2. Valgfaget Android...2 3.

Læs mere

Responsivt Design - DMAA0213. Afgangsprojekt DMAA0213

Responsivt Design - DMAA0213. Afgangsprojekt DMAA0213 Responsivt Design - DMAA0213 Afgangsprojekt DMAA0213 Jesper Bjørn Andersen 18-06-2015 5. semester, afgangsprojekt - Responsivt Design Vejleder: Gunhild Marie Andersen Afsluttet: 18 Juni 2015 Deltager:

Læs mere

Oversigts billedet: Statistik siden:

Oversigts billedet: Statistik siden: 1 Tilslutning: Tilslut et nætværks kabel (medfølger ikke) fra serverens ethernet port til din router. Forbind derefter bus kablet til styringen, brun ledning til kl. 29, hvid ledning til kl. 30 Forbind

Læs mere

Jens Holm. Er du nervøs for, at uvedkommende læser med, når du sender mails? Og er det overhovedet sikkert at sende en god gammeldags e-mail?

Jens Holm. Er du nervøs for, at uvedkommende læser med, når du sender mails? Og er det overhovedet sikkert at sende en god gammeldags e-mail? 1 af 16 29-01-2014 12:15 Publiceret 22. januar 2014 kl. 16:01 på cw.dk/art/229651 Printet 29. januar 2014 Guide: Så nemt kommer du i gang med e-mail-kryptering Undgå at andre kan snage i dine e-mails og

Læs mere

Brugervejledning for. Telenor Dialer

Brugervejledning for. Telenor Dialer Brugervejledning for Telenor Dialer 1 Indholdsfortegnelse Generelt om Telenor Dialer.... 5 Telenor Dialer og OneNumber.... 6 Telenor Dialer og OneNumber Mobile.... 6 Faciliteter i Telenor Dialer...7 Installation

Læs mere

Tempus Serva. - er NEM IT til alle virksomheder

Tempus Serva. - er NEM IT til alle virksomheder TM - er NEM IT til alle virksomheder Introduktion Virksomheder bør ikke stræbe efter de alt omfattende visioner og tro, at de med analyse og projektmodeller kan udvikle den optimale digitale løsning. I

Læs mere

Patient Database - Manual

Patient Database - Manual Patient Database - Manual Side 1 af 36 Adgang til systemet... 4 Glemt brugernavn og kode... 4 Opret projekt (kun System Administrator)... 6 Klik på NYT PROJEKT -knappen øverst til venstre.... 6 Udfyld

Læs mere