Jørn Justesen Dat07a 5 semester projekt Kasper Holm. Projektetablering... 5

Størrelse: px
Starte visningen fra side:

Download "Jørn Justesen Dat07a 5 semester projekt Kasper Holm. Projektetablering... 5"

Transkript

1 5. semesters projekt EDBskolen, Erhvervs akademiet Vejle Eksamensprojekt Efterår 2009 Kontaktlærer Dat07a Skrevet for Personalesystem Jørn Justesen: :

2 Indholdsfortegnelse Projektetablering... 5 Problemformulering... 5 Indledning... 5 Overordnede krav til programmet... 5 Forventninger... 5 Underskrifter... 5 Foranalyse... 6 Interessentanalyse... 6 Strategianalyse... 6 Risikoanalyse... 7 Valg af udviklingsmodel... 7 Projektstyringsmodel... 8 Styring af de enkelte sprints (Jørn)... 8 Refleksion forhold til sprint 1 og 2 (Jørn) Aflevering af produkt efter et sprint (Jørn) Afslutning af projektet (Jørn) Mål for produktet Product Backlog Proof of concept Subversion (Jørn) AnkhSVN Kdiff TortoiseSVN Google code Reporting Services (Jørn) Første Sprint Sprint backlog Argumentation Design (Jørn) Visning af en ansattes oplysninger(jørn) Database (Jørn)

3 Fake it (kasper) city tabel (Kasper) DCD Første sprint(kasper) Database connections (Jørn) Kontrol af lister af Employees(Jørn) Create Employee(Kasper) Create Employee ændringer(kasper) Login(Kasper) Hashing af adgangskoder (Jørn) Brug af SVN Reporting Services Sprint Review Konklusion på første sprint Andet sprint Sprint backlog Argumentation Database + backup(jørn) ER-Diagram(Jørn) DCD andet sprint (Kasper) Properties (Kasper) Ændre Properties (Kasper) Datamoddeler (Kasper) Employeebasis (Kasper) WebUserControl (Kasper) Reporting services generelt(jørn) Reporting services reporter(jørn) Installationsvejledning(Jørn) Computer Problemer Sprint review Konklusion på andet sprint Tredje sprint Sprint backlog Arbejdspakker til Authorise work

4 Issues Argumentation Database (Jørn) Menuen rapporter (Jørn) Redigering af Jobprofile (Jørn) WebUserControl ændret Create, Update Education(Kasper) Proff of concept på integrasion serviceses(kasper) Integrasion Services(Kasper) Sprint Review Forberedelse til Sprint review Konklusion på tredje spring

5 Projektetablering Problemformulering Vi er en gruppe bestående af og Jørn Justesen. Som 5 semesterprojekt skal vi lave et nyt personalesystem til ADP. Vi forventer at opgaveperioden vil løbe fra den 17 august 2009 til den 30 oktober 2009, men skolen har endnu ikke kunnet bekræfte dette. Indledning ADP står over for at skal have opdateret deres personalesystem, i den anledning har vi fået til opgave at udvikle et program i c# med web-interface og forbindelse til en MS sql server Kommunikationen mellem projektgruppen og ADP kommer til at foregå ved møder hver 14 dag. Målet med disse møder er at give virksomheden mulighed for at styre hvilke dele af systemet de vil prioritere at få lavet færdig. Derudover kommer kommunikationen til at foregå gennem mail eller telefonisk. Som forberedelse til projektet får vi mulighed for at se på strukturen i deres hidtidige database. Det er dog op til projektgruppen at modellere den nye database. Overordnede krav til programmet Der skal være 2 brugergrupper i programmet, en almindelig bruger, til afdelingschefer, hvor adgangen kan begrænses til specifikke afdelinger og en administrator med udvidet funktionalitet. Det skal være muligt at oprette forskellige profiler. Eksempelvis en medarbejderprofil eller en virksomhedsprofil. Disse kan bruges til at se hvilke medarbejdere der er kvalificerede til en opgave. Det skal være mulighed for at se grafik i programmet. Til at generere dette kan benyttes Reporting services. Se desuden alle krav til systemet i product backloggen Forventninger Det forventes at vi tager udgangspunk i dele af det tidligere personalesystems funktionalitet i programmet og at vi aftaler yderligere funktionalitet med Søren Krogager fra ADP. Desuden forventes det at systemet er så fleksibelt opbygget så det efterfølgende er nemt for andre at tilføje moduler til programmet. Underskrifter Jørn Justesen Søren Krogager 5

6 Foranalyse Interessentanalyse Der er 3 interessenter i vores projekt. Projektgruppen, kontaktlæreren, og opgavestiller. Interessent Interesse Mulige handlinger Forholdsregler Projektgruppe Kontaktlæreren Opgavestiller Opgavestiller Opgavestiller Strategianalyse Fokusere på det sjove i at lave et færdigt system, frem for at lave en god rapport. Kan mangle tid til at vejlede os. Få Mest mulig kode ud af projektet. Få et system af høj kvalitet, så det er nemt at arbejde videre med. Nedprioritere projektet hvis han får travlt Prioritere programmering frem for rapportskrivning. Udskyde vejledning for at få tid til f.eks. at undervise. Presse på for at vi når mere. Rådgive os og fokusere på ændringer til produktet Aflyse møder Sørge for at der er afsat tid til rapportskrivning og fokusere på at en opgave ikke er færdig før der er skrevet teori til den. Tage fat i kontaktlæreren i god tid og booke faste møder med ham. Sørge for at der er afsat tid til rapportskrivning og fokusere på at en opgave ikke er færdig før der er skrevet teori til den. Lytte til opgavestiller og gennemføre ændringerne. Samtidig med at vi dokumenterer dette i rapporten. Finde en løsning i samråd med vores kontaktlærer. Da vi har arbejdet sammen i gruppen før, har vi en god idé om hinandens kompetencer og kan på den måde udnytte hinandens styrker. Vi laver en strategianalyse for hele projektet, altså både produkt og rapport. Mål og vilkår Styrke Svaghed Beslutning Teknik (Reporting services) Teknik (Subversion) Udvikler Resultat Bruger Vi har haft tid til at undersøge brugen af reporting services så vi på forhånd har prøvet at sætter det op og laver simple rapporter. Vi har lavet et grundigt proof of concept på subversion med de programmer vi forventer at bruge. Har brugt tid i sommerferien på at opnå viden om nye teknikker. Opgavestiller har givet udtryk for at han vægter et godt resultat højt. Der er en brugergruppe der har en interesse i at få indflydelse på systemet Vi ved ikke hvilke funktioner vi skal bruge og har fra starten kun meget begrænset kendskab til at lave rapporter med det. Begrænset kendskab til subversion, som vi forventer at udbygge under projektet. Ved ikke i detaljer hvor meget vi skal bruge teknikker. Vi har i tidligere projekter fokuseret mere på at få et færdigt produkt end at lave en god rapport. Det er ikke sikkert at brugerne har tid til at teste systemet for os. Vi har indkøbt en lærebog for at imødegå de problemstillinger der sikkert vil opstå. Har udvalgt produkter vi forventer dækker vores behov. Dog har vi ikke tjekket at alle de formater vi bruger er dækket i subversion. En person specialiserer sig i teknikken og underviser den anden i brugen heraf. Sætte tid af til rapportskrivning i hvert sprint. Give brugerne mulighed for at benytte systemet Tidligst muligt i projektet. Derved får de mulighed for at få indflydelse på systemet og vi får det 6

7 testet. Risikoanalyse Vi kan ikke se nogen punkter, hvor vores projekt skulle være udsat for specielle risici. De risici vi ser vurdere vi på en skala der går fra: - Lav, der bruges mindre tid på at løse problemet. - Moderat, løsningen af problemet kan tage mere end 1 mandedag. - Alvorlig, vi er nødt til at genestimere projektet. Risiko Sandsynlighed Effekt Forholdsregel General sygdom 30 % Lav Da der er udbrudt svin influenza der forventes at ramme 30 % af befolkningen må vi tage forbehold for dette. Vi forventer at et gruppemedlem kan arbejde hjemmefra under sygdommen og at vi kan bruge skype og subversion til at kommunikere og opdatere vores arbejde. Alvorlig Sygdom < 5 % Alvorlig Hjemme opgaver, hvis det er muligt og mere arbejde til de andre gruppemedlemmer. Hvis det er nødvendigt vil vi sænke målet for projektet. Fravær pga. andre årsager 20 % Lav Hjemmearbejde til det fraværende medlem så vi når vores planlagte arbejde. Computer sammenbrud 3 % Moderat Subversion sørger for backup, men der vil tabes tid på at få computeren til at virke igen. Mangler resurser til et 10 % Moderat Sørger rådgivning ved opgavestiller bestemt område eller emne Program ændringer på grund af misforståelser 20 % Moderat Vi har modtaget en database med testdata for at undgå dette. Desuden vil vi holde opgavestiller informeret for at om udviklingen i projektet. Mistet data 25 % Moderat Vi bruger subversion for at undgå dette. Mistet store mængder data < 1 % Alvorlig Hvis vi mister store mængder data og ikke kan hente det igen fra subversion må vi genestimere projektet. Valg af udviklingsmodel For at definere en projektmodel har vi valgt at analysere projektet ved at opstille krav til projektet og vurdere dem ud fra cockburn skalaen. Desuden benytter vi Larmans metodeklassifikation til at understøtte vores valg af formalisme og iterationer. I begge diagrammer er vores projekt markeret med sort. Vi måler kun på de udviklingsmodeller vi kender fra undervisningen. Cockburn skalaen Criticality/antal projektdeltagere Tab af liv Direkte tab af penge Indirekte tab af penge Scrum/UP Vandfald XP Tab af komfort Larmans metodeklassifikation 7

8 1 Iteration Vandfald Scrum Høj formalisme XP UP Der er tale om en lille projektgruppe der skal udvikle et system hvor en kritisk fejl kan medføre tab af komfort. Desuden forventer vi ikke at kompleksiteten gør det nødvendigt med en høj grad af formalisme dog skal vi være opmærksomme på at der skal videreudvikles på systemet efter vi er færdige med hovedopgaven. Derfor bliver vi nødt til at dokumenterer systemet med henblik på dette. Ud fra de 2 modeller ser vi det som oplagt at bruge enten scrum eller UP. Da vi før haft gode erfaringer med scrum vælger vi denne udviklingsmodel. Til at dokumentere projektet Vil vi benytte et ER diagram over databasen og et designklassediagram over programmet. Desuden vil vi gå ind i en dialog med product owner omkring, hvilken dokumentation der efterfølgende er brug for. Projektstyringsmodel Gennem ADP er vi blevet opmærksomme på projektstyringsmodellen Prince2. Blandt andet har vi fået lidt rådgivning i hvilke dele af modellen vi kan drage fordel af i vores projekt. Derfor vil vi benytte teknikker Prince2 til at: - Styre de enkelte sprints. - Faseovergang. - Afslutning af projektet. Vi blev første gang gjort opmærksomme på prince2 ved første sprint review. Men var ikke i stand til at skaffe litteratur omkring emnet før slutningen af sprint 2. Derfor er projektstyringsmodellen først implementeret fra sprint 3. Styring af de enkelte sprints (Jørn) For at styre et sprint bruger vi følgende model: 8

9 - Authorise work: Input af opgaver der uddelegeres med en rapport der beskriver hvor lang tid der er til rådighed til opgaven og en beskrivelse af opgaven. En opgavebeskrivelse bør ikke overskride et sprint, men i stedet splittes op i mindre dele. - Confirm work completion: Dette gør vi gennem rapporterne fra ovenstående punkt, hvor vi registrere hvornår de er udført og om den afsatte tid er overholdt. Desuden sætter vi i vores sprint backlog et tegn ud for de opgaver der er færdiggjorte. Sprint backloggen er altid skrevet på en tavle ved vores arbejdsplads for at holde fokus på opgaven. Desuden gennemgår vi rapporter og productbacklog ved sprint reviews for at få product owners godkendelse af løsningerne. - Capture and log issues: Omhandler alle de ændringer der tilføres projektet. Dette kan være alle former for ændringer der har indflydelse på projektet. En ændring kan komme fra product owner eller fra et af grupemedlemmerne. Når en opgave opstår, registrerer vi den med opgavenummer, forfatter opgavetype, beskrivelse, prioritet og status. - Analyse the impact of the issues: Dette gøres gennem samtale I gruppen under daily scrum og registreres med hvilke effekt sprintet, estimat på hvor lang tid det vil tage at løse opgaven og evt. risiko herved. - Review progress, quality work, issues and risk status: under et skal vi være opmærksomme på disse ting og reagere på dem hvis de opstår o Report progress to project board: ved Sprint reviews laves en rapport der præsenteres for produst owner. o Escalate problems to Project board: Hvis der opstår problemer vi ikke selv kan løse beder vi enten vores kontaktlærer eller procuct owner om rådgivning. o Take corrective action: Hvis der opstår problemer vi selv kan løse laver vi en rapport over dette og løser problemet. 9

10 Refleksion forhold til sprint 1 og 2 (Jørn) Under arbejdet med at opnå viden omkring Prince2 gik det op for os at denne projektstyringform kunne have sparet os for tid med hensyn til vores problemer med database serveren og reporting services. Hvis vi fra starten havde afsat tid til disse problemer ville vi tvinge os selv til at søge efter andre løsninger tidligere end vi endte med at gøre. Desuden ville formaliseringen omkring problemet med computernedbruddet i 2 sprint have mindsket forvirringen og irritationen, hvilket kunne have resulteret i en mere effektiv brug af den computer der stadig virkede. Desuden ser vi prince2 som en effektiv måde at dokumentere de arbejdsprocesser vi tidligere har haft problemer med. Faseovergang (Jørn) En faseovergang stiller krav til, hvordan et produkt afleveres efter et sprint. Forberedelsen til dette starter allerede under planlægningen af sprintet, hvor det er vigtigt at opnå product owners godkendelse af, hvilke opgaver der skal arbejdes på i sprintet. I praksis gør vi dette, under sprint meetings, ved at aftale hvilke user stories og rettelser der skal laves i systemet. Efter mødet vil vi så lave arbejdspakker ud fra disse aftaler. Dette kan ses i de 2 første punkter i nedenstående figur. Tredje punkt (Supervise the team s work) gøres gennem arbejdspakkerne og issues. Dette giver et godt overblik over hvordan fremdriften i sprintet forløber. Desuden opdater vi dagligt vores burndownchart, hvis en user story afsluttes, hvilket også er med til at give et mere overordnet billede over fremdriften. For at reportere på kvalitet og process sørger vi op til et sprint review for at udskrive: - Arbejdspakker. - sprint backlog og product backlog. - brundown chart for sprint og projektet. - ER diagram og designklasse diagram. Da vi har en product owner der forstår disse kan vi lige så godt udnytte dette til at give ham et overblik over systemet. 10

11 Desuden sætter vi systemet op til at kører på en lokal database og kopiere alt data til denne så vi kan vise et fuldt opdateret system. Dette gør det nemt for product owner at godkende arbejdet, eller give input til, hvilke ændringer der ønskes. Ændringerne udformes så til en arbejdspakke i det efterfølgende sprint. Afslutning af projektet (Jørn) Når projektet skal afsluttes vil vi tage udgangspunkt i nedenstående figur og de øvrige teknikker, inden for Prince2, der findes til at aflevere et produkt. Når projektet afsluttes står vi i en lidt speciel situation. Vi ved allerede fra projektstart at systemet ikke vil være færdigt. Derfor vil vi følge retningslinjerne for en tidlig afslutning af projektet. Det betyder at vi ved afleveringen af projektet vil lave en opgørelse over hvilke user stories der er opfyldt og hvilke der er godkendt af product owner. Derudover vil vi arbejde på at vi ikke har uløste arbejdsopgaver eller issues, hvis dette alligevel er tilfælde vil vi komme med anbefalinger om hvordan de kan løses. I prince2 vil man ved afslutningen af et projekt lave dokumentation over hvad man har lært under projektet. Meningen med dette er at øge virksomhedens vidensindeks til senere projekter. Ved at udforme dokumentationen giver man projektledere mulighed for senere at udnytte dette til at forbygge lignende problemer i senere projekter. Da dette projekt er en hovedopgave giver denne dokumentation ikke den samme fordel for ADP. Vi laver det dog alligevel da det giver os en mulighed for at reflektere over de erfaringer vi har gjort os i løbet af projektet. Dette bør indeholde fejl vi har gjort i processen, ting vi kunne have gjort bedre og ting der har fungeret optimalt og hvorfor de har fungeret. For at vurdere fordele ved det nye system frem for det gamle system vil vi sammenligne det produkt vi har lavet med det de har brugt indtil nu. Desuden vil vi snakke med product owner omkring hvorvidt hans forventninger er opfyldt, både med hensyn til det leverede produkt og det samarbejde vi har haft under projektet. En ting er at lave et produkt og dokumentere dette gennem en rapport. For at vores arbejde har været en succes bør vi have et mål om at vores software bliver brugt. For at sikre dette vil vi udforme en installationsvejledning til systemet. Denne vejledning skal forklare hvilke krav der stilles til server og hvilke måder programmet skal rettes til på. 11

12 Mål for produktet Da vi vurdere personalesystemet til at være af en størrelse så vi ikke kan nå at færdiggøre det, i løbet af projektet vil vi fokusere på at det produkt vi aflevere skal være nemt at arbejde videre med. Dette betyder at vi ikke vil være bange for at bruge tid på at forbedre kode, hvis vi opdager fejl eller finder den uoverskuelig ved senere gennemlæsning. Hvordan produktet skal se ud ved slutningen af projektet afhænger af de sprint backlogs vi sammensætter ud fra vores sprint meetings. Dog er det et krav at vi har udbygget programmet nok til at kunne sammenligne jobprofiler med ansatte og finde ansatte der er kvalificerede til en stilling. Desuden må der ikke være ventetid på at udføre operationer i programmet. Vi ser hellere at der er en lille ventetid på at hente et modul i programmet. Vi måler fremdriften i projektet i 2 omgange. Vi laver burndown charts der viser fremdriften for de enkelte sprints. Desuden har vi et brundown chart vi vedligeholder efter hvert sprint. Dette burndown chart indeholder 2 grafer, en der viser fremdriften for hele projektet og en der er konstant og viser et mål for hvor langt vi skal være nået ved projektets afslutning. Alle fejl i programmet som vi kender til skal enten være rettet eller beskrevet så godt at de nemt kan laves af dem der færdiggøre skal programmet. Vi har 2 vigtige mål for projektet er at lave en rapport der giver en god beskrivelse af processen og produktet. Og lave et produkt der tilfredsstiller ADPS forventniger. Product Backlog Beskrivelse O P Sa M Sp V 1 Administratorer skal have mulighed for at oprette nye ansatte ,2 0,6 0,36 2 Brugerne skal have mulighed for at liste alle ansatte i deres egen afdeling i en rapport ,4 0,4 0,16 3 En bruger skal have mulighed for at vise basisinformationer omkring ansatte i de afdelinger brugeren har adgang til. De ønskede informationer kan ses i det gamle program ,2 0,2 0,04 4 Brugere skal kunne se hvilke kurser ansatte i deres afdelinger har taget ,4 0,4 0,16 5 Brugere skal kunne vise, oprette og ændre uddannelser, for ansatte de har rettigheder til at se ,4 0,16 6 Brugerne skal kunne se udviklingen i deres ansattes karriere ,4 0,4 0,16 7 Brugere skal kunne vise, oprette og ændre faglige kompetencer (properties) for ansatte de har rettigheder til at se ,2 0,6 0,36 8 Lav en rapport der viser en liste over en ansats properties sammenlignet med de krav hans jobprofil stiller. Der skal desuden være en kolonne der viser differencen på de 2 værdier ,4 0,8 0,64 9 Brugere skal kunne vise en ansats udvikling i faglige kompetencer for de ansatte de har rettigheder til at se ,4 0,16 10 Administratorer skal kunne oprette og ændre informationer for en jobprofil og brugere skal kunne vise informationerne , Administratorer skal kunne oprette og ændre uddannelsesinformationer ,4 0,8 0,64 12 Brugere skal kunne vise ansatte der lever op til en jobprofil. Dette skal både være muligt for de ansatte brugeren har rettigheder til at se og for alle ansatte ,8 1,2 1,44 13 Administratorer skal kunne ændre hvilke og hvor mange jobprofiler der er behov for i virksomheden, brugere skal kunne vise informationerne ,2 0,6 0,36 14 Brugere skal kunne se informationer omkring virksomheden. De ønskede ,4 0,16 12

13 informationer kan ses i det gamle program. 15 Brugere skal kunne vise en liste over ansatte der er i gang med et træningsforløb (course), valgt efter tidsrum ,4 0,8 0,64 16 Brugere skal kunne se en liste over ansatte der har færdiggjort et træningsforløb i et tidsrum ,4 0,16 17 Administratorer skal kunne vise oprette og ændre kursusinformationer og omkostninger for kurser (course) ,4 0,8 0,64 18 Brugere skal kunne vise en rapport der lister alle ændringer i properties for en medarbejder ,4 0,16 19 Administratorer skal kunne vise et vidensindeks for virksomheden og historisk data herom. Et vidensindeks udregnes ved at summere uddannelsesniveauet for ansatte. Der bør også være en rapport der viser fordelingen af uddannelsesniveauer grafisk (Education category rating) ,8 0,64 20 Administratorer skal have mulighed for at oprette nye brugere af systemet ,4 0,16 21 Administratorer skal mulighed for at tilknytte afdelinger til brugere ,4 0,16 22 Administratorer skal mulighed for at oprette nye videnskategorier (qualification) ,4 0,16 23 Administratorer skal Mulighed for at tilknytte kompetencer til en videnskategori (qualification) ,4 0,16 24 Administratorer skal have mulighed for at oprette nye uddannelsesniveauer. (education category) ,4 0,16 25 Administratorer skal have mulighed for at oprette nye afdelinger ,4 0,16 26 Brugere skal have mulighed for at liste alle ansatte, de har rettigheder til at se, med deres summerede properties i forhold til deres jobprofil. Dette skal laves som en rapport ,4 0,16 27 Brugere skal kunne vise en liste med uddannelse, kurser og kompetencer for de ansatte brugeren har rettigheder til at se. Dette skal laves som en rapport ,8 0,6 0,36 28 Brugere skal have mulighed for at oprette og afslutte træningsbehov for de ansatte brugeren har rettigheder til at se ,2 0,6 0,36 29 En bruger skal have mulighed for at se ansattes properties i et diagram, hvis han har rettigheder til at se informationer om den ansatte , En bruger skal have mulighed for at vise en ansats properties i forhold til hans jobprofil. Dette skal vises i et radardiagram , En bruger skal have mulighed for at vise udviklingen i en ansats kompetences i en valgt periode. Hvis brugeren har rettigheder til at se informationer for den valgte ansatte ,2 0,6 0,36 32 Brugere skal have mulighed for at vise en afdelings uddannelsesprofil. Denne består af en grafisk visning af uddannelsesniveauet i afdelingen ,4 0,16 33 Brugere skal have mulighed for at vise en afdelings mål for uddannelsesprofil. Denne består af en grafisk visning af målet for uddannelsesniveauet i afdelingen ,4 0,16 34 Vise en rapport med ansatte en bruger har rettighed til indeholdende deres properties og deres summerede properties ,2 0,6 0,36 35 En bruger skal have mulighed for at vise en ansats kompetencer i forhold til deres jobprofil. Dette skal gøres i en rapport i listeform ,4 0,16 36 En bruger skal have mulighed for at vise en liste med kvalifikationer krævet i en afdeling og ansattes kvalifikationer (qualifications) i forhold til ,2 0,6 0,36 37 Brugere skal have mulighed for at vise et diagram med virksomhedens behov for jobprofiler sammenlignet med det faktiske antal ,4 0,16 38 Brugere skal have mulighed for at vise et diagram over uddannelsesniveauet i virksomheden ,4 0,16 39 Brugere skal have mulighed for at vise virksomhedens mål for uddannelsesniveauet ,4 0,16 13

14 40 Brugere skal kunne vise mængden af ansatte i virksomheden med viden inden for udvalgte kvalifikationer ,2 0,6 0,36 41 Brugere skal have mulighed for at logge på systemet ,4 0,16 42 Brugere skal have mulighed for at ændre adgangskode til systemet ,4 0,16 43 Brugere skal have mulighed for at ændrer basisinformationer for en ansat ,4 0,16 I alt ,8 - Standard afvigelse: 3,6. - Dobbelt standard afvigelse: 7,2. Ifølge vores estimat skal vi bruge mellem 111 og 126 mandedage på at designe systemet. Derudover kommer tid til at skrive rapporten. Det vil sige at vi ikke kan forvente at færdiggøre systemet i projektperioden. Vi forventer i gennemsnit at lave 13 mandedages arbejde i løbet af et sprint. Dette vil dog variere i forhold til hvor mange andre opgaver der er i sprintet, derfor vil der i hvert sprint blive oplyst hvor mange dage der estimeres med. Vi vil i samarbejde med ADP beslutte hvilke user stories der skal arbejdes på i sprintet og derved sikre at vi færdiggøre de dele af systemet der giver virksomheden mest forretningsværdi. Da vi forventer at lave 65 mandedages arbejde (13dages gennemsnitligt arbejde x 5 sprints) og estimatet over systemet er på 119 mandedage forventer vi at der (med en afvigelse på 7,2) mangler mellem 47 og 61 dages arbejde når projektet stopper. OVERVEJ FLYTTE AT BURNDOWN CHART TIL SLUTNINGEN 14

15 Proof of concept Før vi startede på projektet havde vi brug for at forberede os ved at teste om vi ville være i stand til at benytte de nødvendige funktioner / arbejdsgange. Subversion (Jørn) Under tidligere projekter har et gentagende problem været, både for vores og andre grupper, været at versionsstyre koden under programmeringen. Dette har vi tidligere løst ved at bruge hele dage til at sidde og sammenflette den kode vi hver især har skrevet. Efter at have snakket med datamatikere ude den virkelige verden har vi fået indtryk af at mange virksomheder benytter Microsoft Foundation server til at sammenflette og versionsstyre kode. Ved at søge yderligere oplysninger omkring versionsstyring fandt vi frem til subversion 1 der er et open source projekt. Til første test satte vi subversion op med VirtualSVN 2, AnkhSVN 3 og Kdiff3 4. Som proof of concept lavede vi et backupprogram (screenshots af programmet kan ses i bilag 3 og kildekoden til programmet ligger i mappen Proof of Concept). Under udviklingen af programmet var vi begge i stand til at programmere på samtidigt og de konflikter der opstod når vi redigerede en fil på en gang løste vi hurtigt vha. Kdiff3. Den eneste mangel vi oplevede var en mulighed for at benytte systemet online, dette løste vi vha. Hamachi 5. Efterfølgende blev vi opmærksomme på google code 6 hvor man for mulighed for at oprette et projekt på deres server og dermed have online backup af arbejdet. Efter en hurtig test af dette kom vi frem til det endelige setup. AnkhSVN Tilføjer en menu (pending changes) til Visaul Studio der gør det muligt at Commit(skrive til subversion) eller Update(hente det nyeste opdaterede fra subversion) fra Visual Studio. Desuden er der mulighed for at skrive en kommentar til de ændringer man foretager, når man benytter Commit. Desuden viser programmet status på filerne i solution explorer ved at tilføje ikoner der viser deres stadie i forhold til filerne på SVN-serveren (til højre de mulige ikoner, til venstre eksempel på soulution explore) En subversion server, læs mere på: 3 En addon der gør det muligt at fortage versionsstyring fra Virsual Studio: 4 Et program der hjælper med at håndtere konflikter når man fletter 2 filer: 5 Et vpn-program der kan lave et LAN over internettet: https://secure.logmein.com/products/hamachi/vpn.asp 6 15

16 Kdiff3 7 Hvis der opstår en konflikt Benyttes Kdiff3 til at sammenflette koden så der igen opstår sammenhæng mellem: - Den kode man prøver at commit. - Den sidste kode man har updatet. - Den kode der er commitet mellem ens egen update og commit. Dette fungere ved at der vises 3 vinduer. Man kan så sammensætte koden til et nyt vindue og på den måde få ændringerne med. TortoiseSVN 8 Et program der bruges til at synkronisere med subversion gennem Windows explorer. Vi bruger dette til at versionsstyrer word-dokumenter og andet der ikke kan åbnes i Visual Studio. I Windows explorer kan man se hvilke filer man har commitet ved de ikoner der tilføjes til filerne. Google code 9 Bruges som server og kan administreres gennem vores Google-konti. De vigtigste funktioner her er muligheden for at: - Browse, se versionsnummer på og åbne filerne som tekstdokumenter 7 Se bilag 4 for screenshots Se bilag 2 for screenshots. 16

17 - Se de committede ændringer i projektet. Med rev. nr, noter til ændringerne, forfatter og tidspunkt for ændringerne. - Oprette spørgsmål til koden, hvis man har spørgsmål eller konstateret fejl. Reporting Services (Jørn) Gennem møder med Product owner er vi blevet opfordret til at sætte os ind i reporting services. Derfor har vi som forberedelse til projektet benyttet bogen Professional Microsoft SQL Server 2008 Reporting Services til at lærer grundlæggende funktioner. For at klargøre vores computere til Reporting Services har vi installeret: - SQL Server 2008 med Reporting Service. - Microsoft Reporting Services Samples og sample databases fra Codeplex.com. Reporter til Reporting Services kan laves i Report Builder og BIDS (Business Intelligence Development Studio) vi har valgt at benytte BIDS da dette kan kører gennem Microsoft Visual Studio og derved giver et kendt udviklingsmiljø. For at skaffe viden omkring produktet har vi lavet nogle simple rapporter ud fra bogen og prøvedatabaserne og lagt dem op på en lokal rapport server. Desuden har vi lavet simple programmer til at vise og hente data fra rapporterne. Dette betyder at vi føler os bedre forberedt på at: - Udforme simple rapporter. - Tilknytte reporter til en rapportserver. - Opsætte parametre for rapporterne. - Hente parametre fra rapporterne og liste dem i en applikation. - Vise rapporterne i en applikation. Vi har dog ikke haft mulighed for at arbejde med adgangsbegrænsning til rapporter. Desuden ved vi på nuværende tidspunkt så lidt om de data vi skal vise at det ikke har været muligt at vælge relevante emner vi kunne gå i dybden med. Første Sprint Første sprint varer fra mandag den 17. august til fredag den 28. August, hvilket svarer til 20 mandedage. Heraf sætter vi 5 dage af til at skrive teori. Under estimeringen af første sprint har vi været hæmmet af ikke at kende den nuværende medarbejderdatabase i dybden, vi forventer dog at få den i starten af sprintet. Efter rådgivning fra Søren afsætter vi meget af dette sprint til udarbejde en ny database og er opmærksomme at vi kan komme til at arbejde med den igen i senere sprint. Sprint backlog Beskrivelse O P Sa M Sp V 1 Administratorer skal have mulighed for at oprette nye ansatte ,2 0,6 0,36 2 Brugerne skal have mulighed for at liste alle ansatte i deres egen afdeling i en rapport ,4 0,4 0,16 3 En bruger skal have mulighed for at vise basisinformationer omkring ansatte i de afdelinger brugeren har adgang til. De ønskede informationer kan ses i det gamle program ,2 0,2 0,04 20 Administratorer skal have mulighed for at oprette nye brugere af systemet ,4 0,16 41 Brugere skal have mulighed for at logge på systemet ,4 0,16 17

18 42 Brugere skal have mulighed for at ændre adgangskode til systemet ,4 0,16 43 Brugere skal have mulighed for at ændrer basisinformationer for en ansat ,4 0,16 41 Brugere skal have mulighed for at logge på systemet ,4 0,16 I alt 16,8 1,20 Standardafvigelse: 1,1 dage. Dobbelt standardafvigelse: 2,2 dage Ifølge vores estimering har vi arbejde til mellem 15 og 19 mandedage på dette sprint. Da vi har afsat 15 mandedage ligger dette lidt højt. Argumentation Design (Jørn) Under valg af design lagde vi vægt på at det skulle være hurtigt og let at overskue og have et menusystem der gjorde det hurtigt at komme rundt på siden. Som inspiration gik vi ind på og valgte at lægge os op af deres design med et sidehoved der indeholder logo og menu. I første omgang lavede vi dropdown menuer til punkterne i menuen, men efter vi begyndte at bruge systemet fandt vi det forstyrrende og tidskrævende. Derfor valgte vi at lave nye menuer der loades under hovedmenuen i stedet. Dette gør det meget hurtigere at navigere rundt i programmet. Visning af en ansattes oplysninger(jørn) I designet af en ansats oplysninger prøver vi at lægge os op af designet i deres gamle databaseapplikation. Det vil sige at vi får en side med basis informationer og en menu, hvor det er muligt at vælge andre informationer omkring den ansatte, f.eks. uddannelse, karriere og kurser. Her laver vi navnet i en dropdownlist så man hurtigt kan vælge mellem de ansatte (se bilag 9). Database (Jørn) Før vi fik den gamle personaledatabase fra ADP havde vi regnet med at det ville være nemt og forholdsvis hurtigt at lave en ny database ud fra tabellerne i den gamle database. Efter vi har haft mulighed for at se på den er det dog gået op for os at den er mere kompleks end først forventet, og væsentlig mere kompleks end de databaser vi tidligere har arbejdet med. Desuden indså vi hurtigt at vi ville komme til at kopiere mange af fejlene i databsen med, hvis vi lod os inspirere for meget af den. Derfor besluttede vi at lave en ny database fra bunden og kun oprette de tabeller der er nødvendige for at opfylde sprintets user stories. I første sprint betyder det at vi har fokuseret på de tabeller der er nødvendige for at hente basisoplysninger omkring en ansat og de oplysninger der er nødvendige for at lave et login. Et forløbig ER diagram over databasen kan ses i bilag 6. Fake it (kasper) Fake it er et princip fra test dreven systemudvikling vi har valgt at inkludere i vores projekt. Vi har valgt at inkludere det fordi at det er/kan være godt at bruge, hvis man skal teste om noget virker. Metoden går ud på at man altid returnerer en konstant hvis det ikke er muligt at returnere den korrekte variabel. Dette er smart fordi så lige meget input paramenterne, kan man se at den returnere den kontant, du har bedt den op. Også kan man altid bygge videre på sin metode, og stille og roligt komme frem til det endelige resultat. Dette gør, for mit vedkommende at jeg er mere tryk ved min kode og jeg har 100% styr på min kode. Der udover er det også godt til at lave hurtige 18

19 resultater, og det er super til prototype frem gangs metoden, da det handler om at vise noget der virker. Her kan man fake værdier, eller springe lag over i dit programs opbygning da du bare faker dig frem til dit resultat, man skal selvfølgelig rette op på disse ting som projketet skrider, frem men det er jo en del af fake it princippet. city tabel (Kasper) Vi har i vores database en tabel der indeholder postnumre og bynavne, de bruges som en fremmed nøgle til vores Employee tabel Dette er for at undgå redundans i databasen. da vi ikke ønskede at sidde og taste alle byer og postnumre ind i tabellen selv, hentede vi dem i en Excel fil fra Postdamarks hjemme sidde. Der efter skrev vi et lille program der gik ind og læste de nødvendige koloner og lagde dem over i vores database tabel, der opstod dog enkelte problemer, med at den ikke kunne holde forbindelsen til databasen, men efter et par forsøg fik vi alle postnumre og bynavne, over i vores tabel. DCD Første sprint(kasper) Vi har i vores Design Class Diagram har vi 3 klasser der ikke kører igennem Controller klassen: CustomMembershibProvider, CustomMembershibUser, CustomRoleProvider dette er fordi disse klasser bliver benyttet igennem asp.net forskellige login dele, og da vi ikke selv skriver nogle metode kald der, kan vi ikke rigtig påvirke den til at køre gennem controlleren. Derudover har vi employee og employees. Employee har vi lavet som en datatype, og som ligger kraftigt op af employee tabellen i databasen, dette har vi gjort for at nemt kunne sende en employee rundt i systemet i stedet for at boxe den, ved at pakke den ind i forskellige arrays. Employees klassen er den klasse der håndtere employee. Så er der unit, som er en datatype vi bruger flere steder i brugergrænsefalde, for at gøre det nemmere og mere overskueligt når vi skal bruge data fra databasen, og skal indsætte det steder i brugergrænsefalden, i dette tilfælde er det i en dropdownlist der skal indeholde forskellige afdelinger, til brug i createemployee.aspx og employeebasis.aspx. Database connections (Jørn) For at mindske antallet af forbindelser til databasen har vi valgt at alle ansatte skal hentes ind i webserverens hukommelse når employee modulet startes op. Fordelen ved dette er at databaseserveren ikke skal kontaktes hver gang der skal listes nye informationer omkring en ansat og dermed bliver responstiden hurtigere. For at kunne gøre dette skal vi håndtere problemstillingen med at flere brugere samtidig skal kunne håndtere forskellige lister med ansatte. Dette kontrollerer vi med en singleton inspireret metode i Emplyees klassen (Se kodeeksempel i afsnit Kontrol af lister af Employees ) Metoden tjekker om brugeren har oprettet en liste af ansatte. Hvis brugeren ikke har hentet listen ind i webserverens hukommelse oprettes den og knyttes til brugeren. Kontrol af lister af Employees(Jørn) Da vi laver en hjemmeside skal det være muligt for flere brugere at tilgå lister af ansatte på samme tid uden at de kan se ansatte fra andre brugere. Dette løser vi med en singleton inspireret måde at hente sin liste af ansatte på. 19

20 public class Employees { private List<Employee> _employeelist; private static List<Employees> _instancelist; private string _user; private Employees(string user) { DB db = DB.GetInstance(); _user = user; _employeelist = db.employeelist(user); } public static Employees GetInstance(string user) { //Hvis der ikke er en liste over brugere, så opret en. if (_instancelist == null) { _instancelist = new List<Employees>(); } //Find den aktuelle bruger og retuner hans oplysninger. int userindexholder = 0; foreach (Employees emps in _instancelist) { if(user == emps._user) return _instancelist[userindexholder]; userindexholder++; } //Hvis brugeren ikke er på listen så tilføj ham med en //liste over hans ansatte. _instancelist.add(new Employees(user)); return _instancelist[_instancelist.count - 1]; } Dette betyder at første gang en bruger henter sin liste af ansatte bliver hans brugernavn gemt i _user og der laves et kald til databasen for at hente informationer omkring de ansatte han har rettigheder til at se. Disse informationer gemmes i webserverens hukommelse og hentes derefter herfra. Create Employee(Kasper) Da det skal være muligt at kunne oprette en employee, har vi lavet en side til dette (se billede her under) der er dog et par små fejl på denne side som vi har valgt at fake os ud af, da vi gerne ville kunne fremvise en virkende prototype, problemet opstår i den tomme dropdown boks, som skulle have den funktion at man skulle kunne vælge postnummer og derefter skulle den selv finde byen, dette er en ting som vi vil løse hurtigst muligt. vores måde at fake os ud af det på har været at hardcode et virkende postnummer, ind i metode kaldet, i det her tilfælde 7100, grunden til at det er et virkende postnummer er at postnumret er en fremmed nøgle i databasen, og skal derfor findes i city tabellen, ellers vil den ikke kunne oprette en ny employee. 20

21 Create Employee ændringer(kasper) Vi har opdateret vores Create Employee side da vi til at starte med havde nogle små ting der var faket på siden, dette var mere for at kunne bevise at vi kunne oprette en employee, og nu retter vi vores fake løsning til en mere holdbar løsning. det vi havde faket var postnummer dropdown boksen, og dette problem er nu løst ved vi har gjort sådan at der nu står både postnummer og by i dropdwon boksen, som er data vi henter fra databasen, og det er nu muligt at oprette en employee uden der er noget data der bliver faket. Login(Kasper) Vi har i vores projekt valgt at bruge det indbygget asp.net authentication, da vi mener dette skaber den største sikkerhed. Men da vores system ikke helt passer ind på standardsystemet, har vi været nød til at tilpasse det så vi kunne validere op mod vores egen database. Der er 3 ting der skal tilpasses når man skal kunne bruge asp authentication til sit eget system og det er MembershipProvider klasse MembershipUser klasse RoleProvider Klasse Vi startet med at lave en MemshipProvider klasse, da det er den der skal validere den bruger der logger in via asp login control, så vi startede med at lave en CustomMembershibProvider klasse, som vi satte til at arve fra MemshipProvider, som ligger i web.security namespacet, dette er en abstrakt klasse, og når vi sætter vores egen klasse til at arve fra den, kommer visualstudio og spørger om man vil implementere de nødvendige metoder med det samme, dette gør at man får en masse klasser og proberties, alle med en throw new NotImplementedException(), som bare betyder at man ikke har implementeret denne metode endnu. herefter skal man lige fortælle en web side at man ønsker at bruge asp authentication, og at man gerne vil gøre det med ens egen MembershibProvider og ikke standarden. Dette gør man selvfølgelig i web.config filen 21

22 Først aktivere vi asp authentication, og der efter fortæller vi den at den skal afvise alle brugere der ikke er logget ind. <authentication mode="forms" > <forms loginurl="login.aspx" name=".aspxformsauth" /> </authentication> <authorization> <deny users="?" /> </authorization> Og der efter fortæller vi den at vi ønsker at bruge en anden MembershipProvider end standarden <membership defaultprovider="custommembershibproviderkasperholm" userisonlinetimewindow="15"> <providers> <clear/> <add name="custommembershibproviderkasperholm" type="custommembershibprovider" connectionstringname="loginconn" enablepasswordretrieval="false" enablepasswordreset="true" requiresquestionandanswer="false" writeexceptionstoeventlog="false" /> </providers> </membership> Nu ville det være muligt at tage en asp login control, sætte den ind på en side også bruge den, den ville så gå til vores CustomMembershibProvider klasse og hoppe ned i ValidateUser metoden, som så returnere en bool, dette er selvfølgelig om bruger er godkendt eller afvist. Så vi startede her med at benytte os af FakeIt metoden fra Test dreven systemudvikling, og satte den til at returnere en konstant, og i dette tilfælde satte vi den til at returnere True, dette ville sige lige meget hvad man skriver i login felterne skulle man kunne komme ind på de beskyttede sider, og dette virkede også. Derefter begyndte vi at til føje dybde til metoden, så den tjekker de indtastede data op mod vores database, dette gør vi ved hjælp af en Stored procedure, som vi først havde til at tage både bruger og password som indput parametre, dette valgte vi at lave om til at den at kun at tage bruger navnet, da det ikke kan betale sig at tjekke passwordet nede i databasen, da den ikke er case sensitive, og det er vigtigt da det er kodeord vi har med at gøre. Create user controllen i asp.net benytter sig også af MembershipProvideren, nedenfor ser du den orginale create user til venstre, og til højre ser du vores Create user control. Vi har fjernet det hemelige spørgsmål da vi ikke mener det er realavant for vores system. Så det create user controllen gør at hente forskellige properties fra MembershipProvideren, så som hvor langt, et passwordet skal være og hvor mange alhanumeric chars der skal være. Dette er alt sammen ting man kan hardcode 22

23 ind i CustomMembershibProvider klassen. Dette har vi gjort, da dette system ikke har brug for at være så dynamisk igen. Alternativt er det muligt at skrive disse ting ind i web.config, også kan man bede den om at hente disse der fra. Når man så trykker på Create User, går den ind i vores CustomMembershibProvider klasse og bruger metoden CreateUser, som har en masse attributter i metode kaldet som vi ikke bruger. Her er Create User Controllen så smart at den bare sætter disse til null, og sørger for at der kun kommer værdier i dem vi skal bruge. MembershipUser klassen bliver brugt af asp.nets ChangePassword control, og et par metoder i MembershibProvider klassen, så det var nødvendigt for os at lave vores egen udgave af en da standarden i asp.net, desværre ikke passede 100% på de ting der var tilknyttet vores bruger, problemet var ikke at vi ikke havde nogle variabler der ikke var der. Tværtimod at vi havde mindre end dem der er i standarden, så vi lavede en CustomMembershibUser klasse, som vi satte til at arve fra MembershibUser klassen, hvor vi tilpasset constructeren så den passede til vores data. Da vi har 2 typer af brugere, administratorer og afdelingsledere, har vi brug for at kunne gøre sådan at der er visse dele af systemet som, afdelingslederene ikke kan komme ind på dette kan nemt gøres med asp authentication da det har en indbygget rolle funktion, som gør det nemt at tjekke om den enkelte bruger har en bestemt rolle og om han/hun har tilladelse til at være på siden. Heller ikke dette er svært at tilpasse, så det passer på systemet. Det er samme procedure som før, man opretter en ny klasse (CustomRoleProvider) og sætter den til at arve fra RoleProvideren, denne også ligger i namespacet web.security, og igen kan du vælge at Visual Studio skal oprette alle metoderne for dig. Derefter er det bare at gå i gang med at tilpasse de enkelte metoder, også skal man lige fortælle applikationen at den skal benytte din RoleProvider og ikke standarden, dette gøres inde i web.config filen. Det er også i web.config filen man skriver, hvilke roller eller brugere der skal have adgang forskellige sider. Derudover er det også muligt at sætte enkelte elementer til at kun at være vist hvis det er en adminstrator der er logget ind, dette gøres i koden, F.eks. på EmployeeBasis.aspx er der 2 knapper der skal være vist hvis det er en adminstrator der er logget ind, dette har vi løst ved at skjule knapperne, ved at sætte visible til false, som default i asp koden, men så i CS filen der tilhører siden laver vi et tjek på om brugeren er i den aktuelle rolle, dette gøres ved at skrive Roles.IsUserInRole("admin") som så kalder metoden IsUserInRole i CustomRoleProvider klassen, denne metode returnere en bool, som er true eller false alt efter om brugeren er i den role, i det her tilfælde rolen admin. 23

24 Hashing af adgangskoder (Jørn) 10 For at sikre adgangskoderne bruger vi en SHA256 hash med salt. Hashingen foregår ved at saltet oprettes i et bytearray af tilfældig størrelse. Derefter fyldes data på arrayet vha. en indbygget metode. saltbytes = new byte[saltsize]; RNGCryptoServiceProvider randomnumbergenerator = new RNGCryptoServiceProvider(); randomnumbergenerator.getnonzerobytes(saltbytes); Herefter omdannes passwordet i klartekst til et bytearray. Som med saltet findes der en indbygget metode til at klarer dette. HashAlgorithm hash = new SHA256Managed(); byte[] hashbytes = hash.computehash(plaintextwithsaltbytes); Nu samles de 2 passwords i et bytearray og hashes, hvorefter hashet og saltet samles i et nyt bytearray der omdannes til en string vha. Convert.ToBase64String(hashWithSaltBytes); og dette retuneres. Dette giver en ret høj sikkerhed da vi kun gemmer hashværdierne med saltet i databasen. Dermed får adgangskoderne tilfældig indhold. Her ses 2 Eksempeler på hashing af ordet password: Vi har valgt denne løsning da vi finder den passende i forhold til risikoen ved at udefrakommende får fat i adgangskoder til systemet og det arbejde det ville være at lave en mere sikker løsning. Brug af SVN Vores brug af svn har hjulpet os meget i løbet af første sprint. I starten af sprintet var vi meget opmærksomme på hvem der ændrede i de forskellige filer og at der blev commitet og opdateret efter selv små ændringer. Efter vi er blevet mere trykke ved systemet stoler vi så meget på det, at vi arbejder mere løst omkring hvor mange filer og ændringer vi laver på en gang. Selv med denne afslappede holdning har vi kun haft 1 konflikt som vi skulle løse manuelt. Dette var klaret på under 5 min. Vi har dog 2 gange oplevet problemer med midlertidige filer der forhindre en update. De gange det er sket har vi været nødt til at slette hele projektet fra vores lokale computer og hente det fra google code igen. Vi har dog identificeret grunden til problemet og ser det ikke som alvorligt da det ikke kan betyde datatab. Alt i alt har SVN sparet os for meget arbejde og gjort det muligt for os individuelt at fokusere på at løse og rette problemer uden at tænke på om ændringerne kommer med efter versionsstyringen. Reporting Services Vi har opsat en database og herunder installeret reporting services på en af skolens servere. Dog har det ikke været muligt at få kontakt til rapportserveren. Vi har efter en dags forsøg kontaktet itsupport for at hører om de havde en løsning på problemet som vi tror, har rod i sikkerhedsopsætningen af serveren. De måtte dog også give op og vi står nu med risikoen for at måtte opgive at gennemføre det på serveren og få det til at virke lokalt i stedet. 10 Indeholder information og kodeeksempler omkring hashing 24

25 Sprint Review Vi slår vores sprint review og sprint planning meeting til næste sprint sammen til et møde som vi fremover vil kalde sprint review. Sprint review for første sprint bliver holdt den 28/8 med Søren Krogager. Til mødet har vi lagt websitet online så vi kan vise en demo og give ham mulighed for efterfølgende at give andre adgang siden, så de kan komme med forslag til tilpasning. Desuden har vi spørgsmål til ham omkring hvorvidt det sikkerhedsniveau vi har valgt er passende og hvilke brugertyper der skal være i stand til at oprette nye ansatte. Til næste sprint foreslår vi at vi laver user story 4, 5, 7, 9 og desuden finde en løsning på vores rapport server problem. Til selve mødet havde vi ikke adgang til internettet og blev således nødt til at vise en lokal version af systemet. Vi gav dog en webadresse til siden, så der er mulighed for at teste systemet online. Konklusion på første sprint Vi har i første sprint haft en følelse af at arbejde meget effektivt og målrettet. Vi har haft overskud til at bruge tid på både den praktiske og den teoretiske del af opgaven. Vi har i dette sprint brugt ekstra tid på at planlægge projektet og opsætte en server der kan bruges til reporting services. Vi kommer til at bruge mere tid på sidstnævnte i næste sprint. Vi har også oprettet et projekt på google code til brug for subversion og testet at dette virker. Vi har desuden haft meget fokus på sikkerheden og derfor brugt tid på at sætte os ind i login og hashing af passwords. Problemerne med reporting services har betydet at vi ikke har kunnet færdiggøre user story 2 i vores sprint backlog. Den er dog forberedt så vi forventer hurtigt at kunne implementere den når vi får vores report server til at virke. Estimat Burndown Chart Dage Andet sprint Ved sprint meetinget til andet sprint blev vi enige om at arbejde på user story 2,5,7 og 9. Hvis vi får mere tid skal vi arbejde på at fylde mere funktionalitet på employee-delen. Vi diskuterede også vores problemer med reporting services og blev enige om at, hvis vi ikke får det til at virke i starten 25

26 af andet sprint, sætter vi det op på vores lokale computere i stedet. Desuden fik vi nogle kommentarer til vores arbejdsgang og til produktet. - Vi har backup af vores kode gennem svn, men mangler backup af databasen. Vi kan med fordel kopiere databasen ned på vores lokale computere og dermed mindske risikoen for datatab. - Vi havde en idé om, at vi senere i projektet ville lave et program til at flytte data fra deres gamle database til den nye. I stedet bør vi i dette sprint lave proof of concept på Visual Studio Intergression Service. Dette kan vi så benytte til at flytte data mellem databaserne når vi har færdiggjort den nye database. - Vi bør allerede nu tænke på dokumentation til setup og installation af programmet. - Vi havde lagt opret ansat under administration. Det ville være mere logisk at have denne funktion i forbindelse med den ansattes basisinformationer. Den bør derfor flyttes. - Vi havde valgt at liste medarbejdere i en Dropdownbox. Dette ønskes ændret til at alle medarbejdere listes på en side, hvor man kan vælge den ansatte. - Desuden bliver der i ADP lagt vægt på softwarekvalitet og vi bør derfor fokusere på at fejlrette produktet. - Vi bør desuden være opmærksom på om der senere bliver tilføjet moduler der kræver en hjælpe funktion. Vi tager dette til efterretning, men forventer ikke at det bliver nødvendigt, da alle brugere vil være edb- vante. Sprint backlog Beskrivelse O P Sa M Sp V 2 Brugerne skal have mulighed for at liste alle ansatte i deres egen afdeling i ,4 0,4 0,16 en rapport 5 Brugere skal kunne vise, oprette og ændre uddannelser, for ansatte de har ,4 0,16 rettigheder til at se. 7 Brugere skal kunne vise, oprette og ændre faglige kompetencer ,2 0,6 0,36 (properties) for ansatte de har rettigheder til at se. 9 Brugere skal kunne vise en ansats udvikling i faglige kompetencer for de ansatte de har rettigheder til at se ,4 0,16 I alt 10,6 0,84 Da vi skal tilpasse programmet til de rettelser vi kom frem til ved mødet, og desuden finde en løsning på vores problem omkring reporting services. Har vi valgt kun at fylde 4 user stoies på vores sprint. Med en dobbelt standard afvigelse på 1,8 giver det os mellem 9 og 13 dage. Argumentation Database + backup(jørn) Ved sidste sprint review blev vi opmærksomme på risikoen ved at vi ikke har backup af vores database. Derfor tager vi fra dette sprint én backup af databasen i hvert sprint. Dette forsøgte vi først at gøre ved at tage databasen offline og kopiere database filerne ned på vores lokale computere. Dette gav dog efterfølgende et problem da ingen af de brugere vi havde på serveren havde rettigheder til at ligge databasen online igen. Vi løste dette problem ved at få adgangskoden til en lokal administrator af serveren og bruge denne til at ligge databasen online. Efterfølgende kiggede vi på andre metoder til at lave backup af databasen. Og fandt frem til, at der i Sql server 2008 kan der genereres et script der opretter databasen med de tabeller, stored procedure m.m. der vælges. 26

27 Som forberedelse til at køre filen lokalt var vi nødt til at geninstallere Sql-server på en computer. Scriptet vi havde genereret var ikke understøttet i Sql-server-express som computeren kørte. Det har været en positiv oplevelse for os at opdage muligheden for at lave scripts der kan oprette databasen igen. Det gør det muligt hurtigt og nemt at lave backup eller flytte databasen rundt mellem computere. For fremtiden vil vi arbejde med databasen på databaseserveren og tager backup, hver gang vi laver større ændringer. Backuppen vil blive sikret gennem svn, og når vi får brug for en lokal kopi af databasen, kan den hurtigt oprettes. ER-Diagram(Jørn) Vi har tilføjet 2 nye arbejdsområder til databasen. En del der registrer kvalifikationer (properties) med en karakter for en ansat, og gør det muligt at se historisk data for disse. Dette registreres i tabellerne omkring parameter og properties. Den anden del af databasen vi har arbejdet på er registrering af informationer omkring en ansats uddannelse og de kvalifikationer (qualification) dette forventes at give. I arbejdet omkring en ansats uddannelser er det især hans qualification der har givet anledning til ændringer i forhold til deres tidligere database. Her lå de gemt i en tabel uden relationer, med det resultat at man skulle kunne huske tabellen, og de unikke koder på op til 5 ciffer i hovedet, for at kunne tilføje kvalifikationer. Dette havde den fordel at man kunne tilføje en hvilken som helst kvalifikation til en medarbejder (selv en kvalifikation der ikke eksisterede) uden at opleve nogen fejl i programmet. Arbejdet lå her i at forstå hvad formålet med tabellen havde været og implementer dette på en bedre måde. Resultatet i ER diagrammet blev en entitet med en n til m relation til entiteten uddannelsesinformation. Forskellen for systemet ligger i at der er skabt afhængighed mellem qualification og uddannelse og at der nu er mulighed for at registrere flere kvalifikationer på hver uddannelse. I forbindelse med en ansats properties ville vi gerne have en tabel der indeholdte de tilladte værdier for en property. Desuden overvejede vi flere forskellige løsninger for registrering af historikken. Til sidst valgte vi en løsning, hvor vi gemmer de kvalifikationer der er i brug i en tabel, og historikken i en anden tabel. Vi valgte denne løsning bevidst, selv om vi er klar over at der kommer en lille mængde redundant data i databasen. Den redundante data omfatter kun den data der gemmes i tabellen Emp_property da denne information også kan hentes fra historiktabellen. Vi vurdere at dette vil være en meget lille mængde data. Til gengæld føler vi at vi har en simpel og overskuelig løsning. DCD andet sprint (Kasper) Vi har siden første sprint tilføjet en del nye klasser, og vi har lavet lidt om i hvordan tingene løber igennem lagene. Til at starte med har vi tilføjet JobProfile, PropertyCategory, City, Education og Datamoddeller. Med undtagelse af DataModeller er alle de nye klasser i vores program datatyper. Dette vil sige at vi kun bruger dem til at indeholde data. Desuden bruger vi dem i flere af lagene, det vil sige at vi benytter dem i stedet for, at pakke vores data ind i arrays eller anden form for boxing. Dette er smart fordi, der så ikke ryger noget ekstra computer kræft på at konvertere data frem og tilbage hele tiden. Samtidig giver det en masse fordele oppe i GUI laget i forbindelse med databinds. 27

28 Desuden er unit blevet ændret så den nu ikke længere har forbindelse til databasen eller controlleren, dette klarer Datamoddeler nu for den. Properties (Kasper) ADP har i deres personale system noget der hedder propperties. Dette er egenskaber, og benyttes af flere forskellige ting, men til at starte med kobler vi det sammen med det vi har lavet. Altså hvilke egenskaber en ansat har, og hvad hans værdi på det enkelte emne er. For eksempel kunne C# være en property. For hver property der tilføjes en ansat vurderes han på en skala fra 1 7, hvor 7 er det bedste. For at sikre systemet mod fejlindtastninger har vi oprettet en tabel i databasen der indeholder skalaen. Samt en beskrivelse af den enkelte karakter dette har vi gjort fordi APD gerne ville have muligheden for at kunne ændre skalaen engang hvis det blev nødvendigt. Ændre Properties (Kasper) Det skal selvfølgelig være muligt at opdatere en ansats property, da det selvfølgelig er muligt for den enkelte ansatte at forbedrer sig på det enkelte område. Det er selvfølgelig også muligt at sænke en employees property hvis det er nødvendigt. Her kan man se designet til vores vis / opret / ændre property side. Det første man ser, er et gridview hvor man kan se hvilke properties den valgte ansatte har. Der er også mulighed for at ændre i personens mark, hvis det er nødvendigt. Lige neden under er det muligt at tilføje en ny property, hvis en ansat opnår en ny egenskab. Datamoddeler (Kasper) Datamoddeler klassen er lavet til at håndtere alle de datatype klasser vi har lavet. Det vil sige at den sørger for de datatyper som er konstante, og ikke som employees afhængige af brugeren. Datamoddeler håndtere altså kun data der er ens for alle brugere der er logget ind på siden. Employeebasis (Kasper) Efter vores scrum meeting i slutningen af første sprint. Hvor vi viste en prototype af systemet, havde product owner nogle små ændringer. Den ene lå i employebasis.aspx, hvor han mente det ville være naturligt at der var en knap til at kunne komme ind på siden create employee. Da vi var enige i dette lavede vi en knap som virker som et link til CreateEmployee.aspx. Denne kan kun ses af administratorrollerne, da det kun er dem der skal have mulighed for at oprette nye ansatte. 28

29 Samtidig lavede vi en update employee knap, som også kun kan ses af administratorrollerne, da vi mente at det var meget naturligt, at man kunne opdatere den enkeltes data. Hertil lavede vi også kode til så det virkede. WebUserControl (Kasper) Da vi på alle employees siderne har den samme ting til at stå i toppen af skærmen og da koden gentager sig på alle siderne. Fandt vi ud af at vi kunne lave en WebUserControl der indeholdte det vi skulle bruge. Derefter kunne vi genbruge den på alle siderne, i stedet for at skulle kopiere alt koden fra side til side. Dette er smart fordi, hvis vi ændrer i en linje skulle vi førhen ændre i alle siderne. Nu er det bare et sted vi skal ændre, og det er meget mere smart end at skulle ændre 10 steder. Der var dog et problem med at bruge en WebUserControl. Nemlig at det var at det der står i pageloaden på den, først blev udført til sidst. På nogle af vores sider var det påkrævet at det skete først. Vi løste dette problem ved at lave en redirect til den side man allerede er på i slutningen af vores webusercontrol. Dette er dog ikke en optimal løsning, da det gør at pageloaden bliver loadet 2 gange og det der står i if(!ispostback) også bliver kørt selvom det ikke er nødvendigt. Reporting services generelt(jørn) Vi har i dette sprint truffet beslutninger der løser vores problemer omkring reporting services. Vi har allerede brugt længere tid end forventet på opsætningen af skolens server. Og har endnu ikke opnået forbindelse til rapport serveren da vi ikke kan opnå rettigheder til at tilgå den. Desuden har vi opdaget at vores webhotel ikke understøtter reporting services. Derfor ville løsningen nu kræve at vi skaffede et nyt webhotel til at hoste websiden, og desuden løste problemet omkring database serveren. Derfor har vi valgt en anden løsning, hvor vi kører rapport serveren på vores egne computere og har databasen på serveren. Derved skal vi kun vedligeholde databasen ét sted. Dette betyder at vi ikke kan give product owner mulighed for at bruge websiden under udviklingen. I stedet vil vi op til sprint reviews, lave backup af databasen til en bærbar computer, som vi så kan tage med, og bruge til at vise product owner systemet. Dette giver lidt mere besvær da de enkelte rapporter skal vedligeholdes på begge vores computere. Til gengæld kommer det ikke til at have betydning for det endelige produkt da der stadig kun er en kodelinje der skal ændres for at tilpasse systemet til en ny rapport server. Reporting services reporter(jørn) Vi har i dette sprint færdiggjort de første 3 rapporter og gjort det muligt at se dem fra programmet. - Den første rapport viser en liste over de ansatte en bruger har rettigheder til at se. - Den anden viser en ansats uddannelser og de kvalifikationer uddannelsen giver. - Den tredje viser en ansats kvalifikationers historik. Rapporten til at kunne se en liste over ansatte der er tilknyttet en bruger kunne ligge under både menupunktet ansat og rapport. For at sikre en korrekt placering har vi taget kontakt til product owner og i samråd besluttet at ligge rapporten under punktet rapporter. Anden rapport kom til at ligge under ansat da det i sammenhæng hermed skal være mulighed for at tilføje nye uddannelser. Tredje rapport havde vi placeret under menuen ansat, men efter samtale med product owner blev vi bedt om også at tilføje den til menupunktet rapporter. For at hente en rapport gennem koden skal man først tilføje namespacet: 29

30 using Microsoft.Reporting.WebForms; Hvis rapporten skal modtage parametre oprettes der et array der kan indeholde disse: ReportParameter[] parameters = new ReportParameter[1]; parameters[0] = new ReportParameter("emp_Id", Session["selectedemp"].ToString()); Der laves en henvisning til rapportserveren og rapporten. Desuden besluttes om der skal være muligt at ændre parametre når rapporten kører og hvis parametre er sat sendes de til rapporten: ReportViewer1.ServerReport.ReportServerUrl = DataModeller.ReportUlr; ReportViewer1.ServerReport.ReportPath = "/EmployeeEducation"; ReportViewer1.ShowParameterPrompts = false; ReportViewer1.ShowPromptAreaButton = false; ReportViewer1.ServerReport.SetParameters(parameters); Ved rapporten der viser en ansats uddannelser skal rapporten opdateres hvis der vælges en ny ansat: ReportViewer1.ServerReport.Refresh(); Installationsvejledning(Jørn) Under sidste sprint review blev vi bedt om at gøre os nogle overvejelser angående installation af systemet. Allerede i første sprint var vi opmærksomme på at gøre dette nemt ved at databasen altid tilgås gennem den samme connection string, gemt i en variabel. I beslutningen om hvor forskellige konstante variabler skal placeres har vi diskuteret 2 muligheder: - At placere dem som statiske attributter, med tilhørende properties, i en klasse, hvorfra man henter dem rundt i programmet. På den måde ville de være nemme at finde frem til når systemet skulle implementeres på nye servere. - At placere dem logiske steder i koden, så de ligger i det miljø de naturligt bruges i. Fordelen ved dette er at de ligger lige ved hånden når der skal ændres i koden. Da vi ikke ved om systemet bliver installeret mens vi stadig står til rådighed har vi valgt løsningen, hvor vi placere alle de variabler de senere kunne tænkes at ændre i vores Datamodeller klasse. På denne måde bliver den del af dokumentationen til programmet nemmere at beskrive og forstå. Desuden forventer vi ikke at det vil give store problemer, at finde frem til disse variabler, hvis der senere skal arbejdes videre på systemet. Derfor er vores database string placeret i Datamodeller klassen og i sprint 2 skal vi desuden hente rapporter fra rapportserveren. Til dette benytter vi igen en string placeret i klassen Datamodeller. Computer Problemer(Kasper) Vi har i 2 sprint oplevet nogle computer problemer, da det ene medlem af gruppens computer brændte af. Her gik der selvfølgelig noget tid med at finde ud af om det var muligt, at finde en låne computer eller en anden løsning på problemet. 30

31 Der gik 2 dage med at finde en låne computer og få sat den op med programmer osv. Her var det godt vi havde subversion til version styring. Dette gjorde at der ikke gik så meget data tabt, og det var nemt at få projektet over på lånecomputeren. Det samme gør sig gældende når den rigtige computer kommer frem igen. Det bliver det dejligt nemt at få det hele opdateret til den nyeste version. Sprint review Til sprint review den 11. september har vi færdiggjort user story 2, 5 og 7. User story 9 er ret tæt på at være færdig, da det på nuværende tidspunkt er lavet GUI hertil, og da det er muligt at se en ansats faglige kompetencer. Derfor regner vi regner med at overføre denne user story til næste sprint. Herefter foreslår vi at der startes på jobprofil da dette kan øge kompleksiteten i programmet, og vil hjælpe til at færdiggøre databasen. Desuden har vi følgende spørgsmål angående systemet: - Vi har kigget på Intergration services, og har problemer med at forbinde til den gamle database, da der skal forbindes gennem en sikerhedsfil. Eksempelvis har vi lavet en genvej med nedenstående sti for at starte databasen. Vi kan dog ikke benytte denne sti til at give Intergration services adgang til databasen. Og vil hører om der er ansatte ved ADP der ved om det er muligt at oprette forbindelse uden filen Secured.mdw. "C:\Program Files (x86)\microsoft Office\Office12\MSACCESS.EXE" "D:\ADP\ADPInnovation(V1.1 - Demo).mdb" /WRKGRP "D:\ADP\Secured.mdw" - Vi har gjort os nogle overvejelser omkring dokumentation til installation og har nedskrevet de vigtigste ting, men vil gerne høre lidt mere om hvilke detaljer de forventer. Konklusion på andet sprint Andet sprint har været meget problemfyldt. Vi vidste at der ville være serverproblemer og havde sat tid af til dette. Dog har det virket forstyrrende og frustrerende først at have problemer med serveren, og derefter have en computer der brændte sammen. Desuden har vi været nødt til at droppe vores planer om at have en webserver, hvorfra brugere kunne starte på at bruge systemet. Der er dog også positive input i dette sprint, vi har fået lavet de første rapporter, og kan vise dem fra programmet. Og selv om vi har haft et computernedbrud kunne konsekvenserne have været meget værre, hvis vi ikke havde brugt subversion. Vi er dog kommet igennem sprintet med et tilfredsstillende resultat med én manglende user story. Da vi er godt i gang med denne ser vi ikke dette som et stort problem. 31

32 Estimat 12 Burndown chart for andet sprint Dage Tredje sprint Tredje sprint varer fra mandag den 14. september til fredag den 25. september. Da vi på nuværende tidspunkt mangler at beskrive dele af andet sprint, sætter vi 7 mandedage af til at skrive teori. Dette betyder at vi har 13 mandedage til rådighed i dette sprint. Ud over tingene i vores sprint backlog har vi følgende input fra sidste sprint meeting: - Listerne med kvalifikationer og medarbejdere har et meget massivt design, dette ønskes forbedret ved at vi fjerne knapperne og finde en anden løsning. - I alle rapporter skal overskrifterne rettes så de ikke står med fed. - Rapporten for historikken over en ansats kvalifikationer bør ligge under menupunktet rapporter og samtidig være tilgængelig når man kigger på en ansats kvalifikationer. - Vi skal finde en løsning på problemerne med Intergretion services og sikkerheden i deres gamle database. For at hjælpe os vil product owner finde frem til den medarbejder der har oprettet sikkerheden, og høre om han kan hjælpe os. Sprint backlog Beskrivelse O P Sa M Sp V 7 Brugere skal kunne vise, oprette og ændre faglige kompetencer (properties) for ansatte de har rettigheder til at se ,2 0,6 0,36 10 Administratorer skal kunne oprette og ændre informationer for en jobprofil og brugere skal kunne vise informationerne , Administratorer skal kunne oprette og ændre uddannelsesinformationer ,4 0,8 0,64 12 Brugere skal kunne vise ansatte der lever op til en jobprofil. Dette skal både være muligt for de ansatte brugeren har rettigheder til at se og for alle ansatte ,8 1,2 1,44 I alt 19 3,44 Med en standardafvigelse på 3,44 giver det os en sprint backlog på mellem 15 og 23 dage, hvilket er over de 13 dage vi har til rådighed. Da der ikke er taget højde for at vi har arbejdet på user story 7 i sidste sprint ser vi det dog alligevel som muligt. Det kræver dog at vi ligger lidt ekstra arbejde i, at nå user storiesne i dette sprint. 32

33 Arbejdspakker til Authorise work Arbejdspakke 1: Jørn den 11. september Forbered databasen til user stories for sprint 3. Opgaven bør løses på 3 timer. Opgaven er løst den 14/9 af Jørn inden for tidsgrænsen. Arbejdspakke 2: Jørn den 11. september Opnå forbindelse til testdatabasen gennem Intergretion services og hente tabeller fra den. Opgaven bør løses på 1 dag. Opgaven er løst den 14/9 af Jørn og Kasper inden for tidsrammen. Arbejdspakke 3: Jørn den 11. september Forbedrer designet til kvalifikationer og medarbejdere. Resultatet skal være mindre massivt end det er nu. Opgaven bør løses på 5 timer. Opgaven er løst den 16/9 af Kasper inden for tidsrammen. Arbejdspakke 4: Jørn den 11. september Ændre overskriften i rapporterne, til reporting services så de ikke står med fed. Opgaven bør løses på ½ time. Opgaven er løst den 16/9 af Jørn inden for tidsrammen. Arbejdspakke 5: Jørn den 11. september Rette placeringen for rapporten for en ansats properties, så den ligger under både ansat og rapporter. Læg mærke til at rapporten skal kaldes på forskellige måder. Med parametre fra ansat og uden fra rapporter. Opgaven bør løses på 2 timer. Opgaven er løst den 21/9 af Jørn inden for tidsrammen. Læs mere under afsnittet Menuen Rapporter. Arbejdspakke 6: Jørn den 11. september Vi skal flytte data fra testdatabasen til vores egen database. Dette bør først testes lokalt for at undgå problemer med den database vi arbejder på. Opgaven bør løses på 2 dage. Opgaven er ikke løst. Der dog lavet proof of concept, hvor der flyttes data til den nye tabel. Lavet den 24/9 Kasper. Der er ikke blevet flyttet data der har relation til uddannelse da vi har opdaget en fejl i tabellen. Læs mere i afsnittet om Integration services og issue 6. Arbejdspakke 7: Jørn den 11. september Tilføj kode til user story 7 så det bliver muligt at oprette en property. Opgaven bør løses på 3 timer. 16/9 Kasper inden for tidsrammen. Arbejdspakke 8: Jørn den 11. september Tilføj kode til user story 7 så det bliver muligt at opdatere property. Opgaven bør løses på 2 timer. 16/9 Kasper inden for tidsrammen. Arbejdspakke 9: Jørn den 11. september Lav stored procedures til user story 10 så det bliver muligt at oprette og opdatere informationer omkring en jobprofil i databasen. Opgaven bør løses på 3 timer. Opgaven er løst den 16/9 af Jørn inden for tidsrammen. Arbejdspakke 10: Jørn den 11. september Lav brugergrænseflade til user story 10. Opgaven bør løses på 5 timer. Opgaven er løst den 17/9 af Kasper og Jørn inden for tidsrammen. Arbejdspakke 11: Jørn den 11. september 33

34 Lav kode til user story 10 så det bliver muligt at se informationer omkring en jobprofil. Opgaven bør løses på 2 timer. 17/9 Kasper inden for tidsrammen. Arbejdspakke 12: Jørn den 11. september Lav kode til user story 10. Så det bliver muligt at oprette nye jobprofiler. Jobprofiler skal vedligeholdes i både webserverens hukommelse og databasen. Opgaven bør løses på 3 timer. Opgaven er løst den 18/9 af Jørn inden for tidsrammen. Arbejdspakke 13: Jørn den 11. september Lav kode til user story 10. Så det bliver muligt at ændre jobprofiler. Jobprofiler skal vedligeholdes i både webserverens hukommelse og databasen. Opgaven bør løses på 3 timer. Opgaven er løst den 22/9 af Jørn inden for tidsgrænsen Arbejdspakke 14: Jørn den 11. september Lav brugergrænseflade til user story 11. Opgaven bør løses på 2 dage. Opgaven er løst den 24/9 af Kasper inden for tidsrammen. Arbejdspakke 15: Jørn den 11. september Lav stored procedure til user story 11. Opgaven bør løses på ½ dag. Opgaven er løst den 24/9 af Kasper inden for tidsrammen. Arbejdspakke 16: Jørn den 11. september Lav kode til user story 11. Opgaven bør løses på 1 dag. Opgaven er løst den 24/9 af Kasper inden for tidsrammen. Arbejdspakke 17: Jørn den 11. september Lav brugergrænseflade til user story 12. Opgaven bør løses på 1½ dag. Opgaven er løst af Kasper den 22/9 indenfor tidsrammen. Arbejdspakke 18: Jørn den 11. september Lav kode til user story 12, Koden skal tage informationer fra en jobprofil og sammenligne disse data med ansatte fra de afdelinger en bruger har rettigheder til at se. Opgaven bør løses på 3 dage. Opgaven er løst af Kasper den 22/9 indenfor tidsrammen. Arbejdspakke 19: Jørn den 18. september Lav brugerinterface til user story 10. Så det bliver muligt at Oprette nye jobprofiler. Opgaven bør løses på 3 timer. Opgaven er løst den 18/9 af Jørn inden for tidsrammen. Arbejdspakke 20: Jørn den 24. september Lav et program der kan fylde testdata på databasen. Dette bør gøres for at give bedre mulighed for at teste systemet. Både med hensyn til responstider, tests på om de data systemet giver retur er korrekte og omkring de visninger vi bruger i brugergrænsefladen. Vi mener at et realistisk antal ansatte er omkring 100. Opgaven bør løses på 4 timer. Rykket til næste sprint Issues Issue 1. Forfatter: Jørn, opgavetype: Fejlrettelse, prioritet: Høj, status: Løst. WebUserControlEmployee virker ikke efter hensigten. Ved ændringer på de sider den bruges, køres den til sidst og giver dermed et postback der er fejlbehæftet. Gennem samtale i gruppen er vi blevet enige om at løse dette ved at lave en masterpage til siderne under employee menupunktet. 34

35 Problemet er oprettet den 16/9 og forventes at kunne løses på 5 timer. 16/9 Kasper inden for tidsrammen. Issue 2. Forfatter: Jørn, opgavetype: Forbedring, prioritet Høj, status: Løst Under udviklingen af systemet er det flere steder glemt at opdatere webserverens hukommelse når der oprettes eller ændres noget i databasen. Derfor skal dette ordnes. Problemet er oprettet den 16/9 og forventes at kunne løses på en halv dag. 17/9 Jørn inden for tidsrammen. Problemet opstod når man ændrede eller oprettede oplysninger for en ansat eller en kvalifikation. Dette blev løst ved at opdatere webserverens hukommelse med ændringerne. Desuden blev der rettet i brugerinterfacet da der her var opdateringsproblemer (dette problem var sammenkædet med problem 1) Issue 3. Forfatter: Jørn, opgavetype: Effektivisering, prioritet Medium, status: Løst Vi har problemer med det trådløse internet på skolen da det er meget ustabilt. Vi har prøvet at løse problemet ved at benytte LAN hvilket løser vores netværksproblemer, men gør det umuligt at opnå forbindelse til database serveren. Vi kontakter it-support over mail for at få løst problemet. Problemet er oprettet den 16/9 og det forventes at kommunikationen til at løse problemet kan klares på 30 min til at kontakte it-support. Problemet er løst den 17/9 med et tidsforbrug på ca. 1 time. IT-suport løste problemet. Issue 4. Forfatter Kasper, Opgavetype: Fejlrettelse, prioritet høj, Status: Løst Under udvikling af den del af programmet der opretter og opdater informationer omkring ansatte, blev der opdaget en fejl, da det i skal være muligt for at en ansat at tilhører mere end en afdeling. Dette er ikke understøttet i programmet, og giver en programfejl. Dette skal selvfølgelig rettes og forventes at kunne løses på 3 timer. Problemet viste sig at være mindre kompliceret end først antaget og kunne løses ved at rette en stored procedure. Problemet er løst den 24/9 af Kasper og Jørn inden for tidsrammen. Issue 5. Forfatter: Kasper, opgavetype: Fejlrettelse, prioritet Høj, status: Løst I databasen har tabellen Parameter en attribut (Patameter_Description) der er sat til VARCHAR(30), dette skal ændres til en VARCHAR(MAX). Løst den 24/9 af Jørn. Argumentation Database (Jørn) Som det kan ses i ER-diagrammet der det kun fortaget små ændringer til vores database i dette sprint. Der er tilføjet en mange mange relation mellem Job_Profile og Parameter. Denne tabel holder styr på de krav en jobprofil har til en ansats properties. For at sikre at der kun tilføjes relevante værdier er attributten en fremmednøgle med relation til Allowed_Property_Values. Desuden har vi lavet en mange mange relation mellem Job_Profile og Qualification. Dette har vi designet da vi forventer, at en jobprofil får brug for en liste af uddannelsesmæssige kvalifikationer. Der kan stilles som krav, før en ansat kan bestride stillingen. Den gamle database har et krav om uddannelsesniveau, men gennem samtaler med product owner har fået en opfattelse af at de fleste ansatte har stor anciennitet. Og mener at kunne spore en holdning til at når folk har været ansat mere end 10 år er det vigtigere hvordan de har udviklet sig, f.eks. gennem kurser, end hvilken 35

36 uddannelsesmæssige baggrund de har. Før vi ligger for meget arbejde i udviklingen af dette skal vi dog have det bekræftet vores opfattelse af product owner. Menuen rapporter (Jørn) I stedet for at lave en ny.aspx side for hver rapport, der skal vises. Har vi valgt, at de rapporter der skal vises under menuen rapporter, skal vises i den samme side. Dette kan vi gøre da siden indeholder en reportviewer control. Vi benytter så linket til at gemme information omkring hvilken rapport der skal vises. <menuitem title="reports" path="~/reports.aspx"> <menuitem title="education" path="~/reports.aspx?report=listemp"></menuitem> <menuitem title="list employees" path="~/reports.aspx?report=empeducation"></menuitem> </menuitem> I kodefilen til siden kan variablen fra linket så hentes ved hjælp af Request.QueryString["report"] og rapporten så findes med en switch. switch (Request.QueryString["report"]) { case "listemp": ListAllowedEmployees(); break; case "empeducation": EmployeeEducation(); break; default: break; } Redigering af Jobprofile (Jørn) Vi har valgt, at ligge aspx siderne for redigering af jobprofiler, og oprettelse af nye jobprofiler under Administration menuen. Dette er valgt da vi forventer at de sjældent skal bruges og kun bør bruges af administratorer. Det ville ikke være optimalt hvis alle afdelingschefer kunne ændre en jobprofil uden hensyn til effekten på andre afdelinger. Når man vælger jobprofile bliver man ført til en liste, hvor man kan vælge mellem alle jobprofiler eller at oprette en ny. 36

37 Hvis man vælger en jobprofil bliver man ført til en side, hvor det er muligt at ændre beskrivelsen og de properties der er knyttet til en jobprofil. Hvis man vælger opret en ny jobprofil bliver man ført til en side, hvor man skal indtaste et navn og en beskrivelse af en jobprofil. Herefter kan man via dropdownlists vælge de properties der skal tilføjes og disse vises så i et gridview (se bilag 10 for screenshots af oprettelse og ændringer). WebUserControl ændret (Kasper) Vi har opdaget at den giver nogle problemer, da vi blev nødt til at lave en redirect i bunden af WebUserControllen for at få vist de ønskede data. Dette gav problemer med flere sider, så vi har nu valgt at fjerne dropdownlisten og textboxen fra WebUserControllen, og ligge dem på alle siderne. dette giver godt nok noget gentagene kode, men til gengæld giver det et meget mindre chance for fejl. Desuden giver det en mere flydende overgang hver gang man skifter den viste ansatte vh.a dropdownlisten. Create, Update Education(Kasper) Det skal selvfølgelig være muligt at tilføje en nye uddannelser til systemet, da der hele tiden opstår nye udannelser, som folk kan tage. Derfor har vi lavet en ny side under administration. Sådan her ser den så ud, det er en ret simpel lille side, der er ikke så meget ved det, man udfylder felterne, og i dropdownlisten vælger man selvfølgelig bare en kategori, da den bliver fyldt de forskellige kategorier hentet fra tabellen Education_Category. Update education, vil have de samme bokse som create education. Derfor lavede vi det sådan at den samme side kan genbruges. Dette gjorde vi ved at tilføje nogle selektioner i koden der ser sådan her ud. 37

38 if (Request.QueryString["education"]!= null) { Button1.Text = "Update Education"; HyperLink1.Text = "Create education"; HyperLink1.NavigateUrl = "CreateUpdateEducation.aspx"; update = true; string eduname =Convert.ToString(Request.QueryString["education"]); TextBoxEducation.ReadOnly = true; List<Education> list = _controller.geteducations(); for (int i = 0; i < list.count; i++) {... } } else { TextBoxEducation.ReadOnly = false; Button1.Text = "Create Education"; HyperLink1.Text = "Update education"; HyperLink1.NavigateUrl = "Listeducation.aspx"; } } Vi har lige såret noget kode væk i iterationen, for at det ikke skulle fylde for meget, men det denne selektion gør, er at tjekke om der i url adressen er en variabel. Hvis der er, sættes den ene textbox til read only, alle boksene udfyldes med de relevante info om uddannelsen, teksten på knappen ændres til Update education i stedet for create education, hyperlinkets tekst sættes til Create i stedet for Update og siden som linket linker til ændres. Update variablen bliver erklæret i toppen af siden og det den gør, er at koden i længere nede ved om den skal update eller lave nye. For at der kan komme en variabel i url adressen, kræver det selvfølgelig at der er et sted man vælger den, og her har vi oprettet en simpel liste, med alle educations. Når man klikker på den man vil redigere i, bliver man navigeret videre til update siden. 38

39 Som det ses er der ikke nogen forskel på designet på update og create, udover at education textboxen er readonly og grunden til dette er at det er primærnøglen i databasen. Proff of concept på integrasion serviceses(kasper) Vi blev præsenteret for integrasion services af ADP. Integrasion services bruges til at overføre data fra en kilde til en anden, også selvom man ikke vil have alt data med. Man kan altså vælge det relevante data man skal bruge og kan også manipulere med data, hvis det er nødvendigt. For at se om vi kunne få det til at virke ville vi kopiere en tabel fra deres gamle database over i vores database. Her valgte vi Job_Profile da der ikke er den store forskel på den i vores tabel og deres. Men der opstod hurtigt et problem med at forbinde til deres gamle access database da den havde en sikkerhedsfil som skulle inkluderes i integrasion services. Det var ikke lige til at se hvordan dette skulle løses, så vi kontaktede ADP for at få lidt hjælp, og her fik vi et eksempel på en connection string som hjalp os med forbinde. "Data Source=" + "RegE_DATA.mdb;Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=True;Jet OLEDB:System database=" + "RegE.MDW;User ID=[userid];Password=[password];" Ud fra dette kunne vi se at vi før havde manglet sætningen Persist Security Info=True. Det var nu ret nemt at opnå forbindelse til begge databaser. Vi gjorde dette med følgende connection strings: Access database: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ADP\ADPInnovation(V1.1 - Demo).mdb; Jet OLEDB:System database=d:\adp\secured.mdw;persist Security Info=True;Password=**********;User ID=SK;Jet OLEDB:Database Password=SK SQL server database: Sådan ser det ud inde i et dataflow, man trækker bare en source ud og vælger hvilken database og tabel den skal hente fra. Så vælger man en source, og definere hvilken database og tabel. Så går man bare ind i den source og mapper hvordan data skal overføres. Nu er man klar til at køre programmet, dette gik også smertefrit, vi fik alle deres 39

40 Job_Profiles over i vores database, og vi er nu klar til at lave et større program der skal overføre mere en simpel tabel. Integrasion Services(Kasper) Efter at have lavet Proof of Concept på integrasion service, begyndte vi at lave en skabelon til at overføre alt data fra den gamle database til vores, her var det helt naturligt at starte med Employee. Dette gav dog problemer, da der opstod nogle foreign key constraints, på fremmednøgler med relation til tabellerne Job_Profile og Units. 40

41 Her ses at vi har oprettet 4 flow tasks, den første der bliver køret, data flow task, henter jobprofiles, fra deres database. Dernæst henter vi units i dataflow task 1, i data flow task burde vi hente postnumre fra den excel fil vi har hentet på postdanmarks hjemmeside. Men da vi allerede har skrevet et program til at overføre denne data er dette ikke nødvendigt, dog mener vi at den bør laves senere da ADP nok foretrækker at kunne nøjes med at køre en form for database overførsel. Her ses hvad der sker inde i data flow task 2, dette er selve overføreselen af Employess. Da vores og deres tabel ikke er ens, var det nødvendig at lave et script som kom ind i imellem og tilpassede data. Der er dog kun tale om en lille ændring, dette er fordi der i ADPs gamle database gemmes fornavn og efternavn i et en attribut. Vi har i vores database delt de to ting op, så scriptet går ind og tager alle fornavne, og gemmer dem i en ny output variabel, og tager efternavne og gemmer dem i en anden output variabel. 41

42 Her ses så hvordan vi mapper, fra deres gamle tabel til venstre over i vores nye tabel til højre. De 2 nederste parametre er dem som scriptet generer. Find kvalificerede employees til en job profil (kasper) Der skal i systemet selvfølgelig være muligt at se hvilke ansatte der lever op til en bestemt jobprofil. Dette er en af hovedfunktionerne i programmet, og pruduct owner har lagt stor vægt denne funktion. Til dette har vi lavet siden FindEmployee, hvor det er muligt at vælge en jobprofil. Nedenunder vises der så en liste over de employees der lever op til jobprofilens krav. Det er muligt at søge i alle ansatte, dette er dog ikke lavet optimalt. Da du ved at vælge denne funktion til, henter alle ansatte op i ramlageret og løber dem igennem, med søgefunktionen. Den optimale løsning ville være at have en løsning med en SQL-sætnning eller storedprocedure der kun returnere de aktuelle ansatte. Hvis man ikke søger i alle ansatte, er det optimalt fordi man allerede har alle ansatte i ens afdeling liggende i rammene. For at tjekke om en ansat matcher en jobprofil, skal han have en række properties, med en score der matcher eller ligger over kravet for jobprofilen. For at tjekke dette har vi skrevet denne kode. 42

43 for (int i = 0; i < emptemp.count; i++) { bool notqualified = false; bool educatet = false; bool[] hasproperty = new bool[jp.jobproperties.count]; for (int s = 0; s < hasproperty.length; s++) { hasproperty[s] = false; } for (int o = 0; o < JP.JobProperties.Count; o++) { for (int p = 0; p < emptemp[i].probertylist.count; p++) { if (JP.JobProperties[o].Parameter_id == emptemp[i].probertylist[p].parameter_id) { hasproperty[o] = true; if (JP.JobProperties[o].PorpertyValue > emptemp[i].probertylist[p].porpertyvalue) { notqualified = true; } } Her løber vi alle ansatte igennem. For hver ansat løber vi den gældende jobprofils properties igennem og tjekker om den aktuelle ansatte har de nødvendige parametre og scores. Bool arrayet hasproperty bruges til at tjekke om den aktuelle ansatte har alle de nødvendige parametre. I stedet for at lave endnu et bool array der viser om han har den nødvendige score eller der over, har vi valgt bare at sige, at vi laver en enkelt bool parameter (notqualified) der bliver sat, hvis den ansatte har parameteren men ikke har høj nok score i den. for (int a = 0; a < emptemp[i].educationlist.count; a++) { if (JP.Rating <= emptemp[i].educationlist[a].rating) { educatet = true; } } En jobprofil kræver også, at man ligger i en bestemt udannelseskategori. Her tjekkes der på den udannelseskategori som en jobprofil kræver rating i, sammenlignet med den højeste udannelseskategori-rating den enkelte ansatte har. Hvis den er lig med eller større end jobprofilens krav, sættes bool parameteren educatet til true. Og den aktuelle ansatte bliver tilføjet til listen over ansatte der bliver returneret. Hvis man skulle gøre søge funktionen bedre skulle man tjekke efter hver property om notqualified var sat til true. Hvis den var, kunne man breake løkken, da det i dette tilfælde ikke er nødvendigt at tjekke flere properties. Sprint Review Vi har haft et sprint hvor vi har fokuseret meget på produktet og overladt meget af dokumentationen for vores arbejde til Prince2 ved hjælp af arbejdspakker og issues. Umiddelbart har det fungeret godt da vi med denne projektstyringsmodel giver et godt billede af det arbejde vi udfører. I det hele taget mener vi at brugen af prince2 har ændret udseende på vores rapport til det bedre. 43

44 Forberedelse til Sprint review - Vi forventer at gennemgå vores brug af Prince2 og få feedback på om vi har forstået principperne rigtigt. Dette indebærer at vi forklarer hvordan vi bruger Prince2, gennemgår rapporter og Issues og giver mulighed for at prøve de nye funktioner i systemet. - Vi har spørgsmål omkring uddannelsesdelen af tabellen da vi ser en risiko for at vi har misforstået brugen af uddannelse i systemet. - Ang. user story 12. Skal der tilføjes mulighed for at sortere efter uddannelsesmæssige kvalifikationer eller rated uddannelse? - Opfølgning på fremdriften ved at vise burndownchart for hele projektetperioden og for 3 sprint - I 4 sprint foreslår vi arbejde med user story: 21, 22, 23, 24, 25, 28, 29. Konklusion på tredje spring Vi har haft et sprint uden de store problemer og har nået alle de user stories vi havde sat os for. Desuden har vi brugt ekstra tid på at sætte os ind i integrasion services og prince2. Dog har vi været nødt til at skubbe Issue 6 og arbejdspakke 20 til næste sprint, hvilket vil give en ekstra arbejdsbyrde der. Estimat Burndown Chart Dage Fjerde sprint Fjerde sprint varer fra mandag den 28. september til fredag den 9. oktober. Vi føler vi er godt med fra sidste sprint afsætter vi 15 mandedage til at arbejde på programmet i dette sprint. Ud over user storiesne i vores sprint backlog hav vi følgende input fra sidste sprint meeting: - Vi gennemgik vores forståelse af Prince2 og fik positiv respons herpå. Dog bør vi bruge tid på at uddybe teorien hertil. - Qualification skal ikke bruges det er en gammel tabel de aldrig fik til at virke efter hensigten. I stedet bør vi lave en rating efter uddannelses kategori. Så der kommer et krav om et uddannelsesniveau for at en ansat kan opfylde en jobprofil. - Databasen skal rettes så der tilføjes en ny primærnøgle til Education_information. - Når man retter en property for en medarbejder skal man sætte checkboxen til true før der kan rettes i propertiesne. Dette skal ordnes for at undgå fejl. 44

45 - Det skal sørges for at rapporter kan tilføjes dynamisk. - Vi havde glemt at lave et link til siden for at finde ansatte der lever op til en jobprofil. - Vi skal forbedre søgefunktionen, på ansatte der søger på ansatte der lever op til en jobprofil. Hvis man søger i alle ansatte skal dette gøres i databasen og kun de ansatte der lever op til jobprofilen skal retuneres. Sprint Backlog Beskrivelse O P Sa M Sp V 21 Administratorer skal mulighed for at tilknytte afdelinger til brugere ,4 0,16 22 Administratorer skal mulighed for at oprette nye videnskategorier ,4 0,16 (qualification). 23 Administratorer skal Mulighed for at tilknytte kompetencer til en ,4 0,16 videnskategori (qualification). 24 Administratorer skal have mulighed for at oprette nye ,4 0,16 uddannelsesniveauer. (education category) 25 Administratorer skal have mulighed for at oprette nye afdelinger ,4 0,16 26 Brugere skal have mulighed for at liste alle ansatte, de har rettigheder til at ,4 0,16 se, med deres summerede properties i forhold til deres jobprofil. Dette skal laves som en rapport. 27 Brugere skal kunne vise en liste med uddannelse, kurser og kompetencer ,8 0,6 0,36 for de ansatte brugeren har rettigheder til at se. Dette skal laves som en rapport. 28 Brugere skal have mulighed for at oprette og afslutte træningsbehov for de ,2 0,6 0,36 ansatte brugeren har rettigheder til at se. 30 En bruger skal have mulighed for at vise en ansats properties i forhold til ,6 1 1 hans jobprofil. Dette skal vises i et radardiagram. 36 En bruger skal have mulighed for at vise en liste med kvalifikationer ,2 0,6 0,36 krævet i en afdeling og ansattes kvalifikationer (qualifications) i forhold til. 40 Brugere skal kunne vise mængden af ansatte i virksomheden med viden inden for udvalgte kvalifikationer ,2 0,6 0,36 Arbejdspakker til Authorise work Arbejdspakke 1: Jørn og Kasper den 28. september Forbered databasen til fjerde sprint. Det vil sige at den skal udbygges så det bliver muligt at registrere træningsbehov for en ansat. Desuden skal databasen renses for tabellerne omkring Qualification. Opgaven bør løses på 1 dag. Opgaven er løst den 30/9 af Jørn der inden for tidsgrænsen. Arbejdspakke 2: Jørn og Kasper den 28. september Lav brugerinterface til user story 21. Opgaven bør løses på 5 timer. Opgaven er løst den 28/9 af Kasper inden for tidsrammen. Arbejdspakke 3: Jørn og Kasper den 28. september Lav kode så det er muligt at tilknytte afdelinger til en bruger (user story 21). Opgaven bør løses på 3 timer. Opgaven er løst den 28/9 af Kasper inden for tidsrammen. Arbejdspakke 4: Jørn den 28. september Lav kode så det er muligt at slette afdelinger fra en bruger (user story 21). Opgaven bør løses på 3 timer. Opgaven er løst den 29/9 af Kasper inden for tidsrammen. 45

46 Arbejdspakke 5: Jørn og Kasper den 28. september Lav brugerinterface til user story 24 så det er muligt at oprette nye uddannelseskategorier og rating hertil. Opgaven bør løses på 5 timer. Opgaven er løst den 30/9 af Kasper inden for tidsrammen. Arbejdspakke 6: Jørn og Kasper den 28. september Lav kode til user story 24 så det er muligt at oprette nye uddannelseskategorier og rating hertil. Opgaven bør løses på 3 timer. Opgaven er løst den 30/9 af Kasper inden for tidsrammen. Arbejdspakke 7: Jørn og Kasper den 28. september Lav brugerinterface til user story 25 så det er muligt at oprette afdelinger. Opgaven bør løses på 5 timer. Opgaven er løst den 29/9 af Kasper inden for tidsrammen.. Arbejdspakke 8: Jørn og Kasper den 28. september Lav stored procedure til user story 21. Opgaven bør løses på 2 timer. Opgaven er løst den 28/9 af Kasper inden for tidsrammen. Arbejdspakke 9: Jørn og Kasper den 28. september Lav stored procedure til user story 24. Opgaven bør løses på 2 timer. Opgaven er løst den 30/9 af Kasper inden for tidsrammen. Arbejdspakke 10: Jørn og Kasper den 28. september Lav stored procedure til user story 25. Opgaven bør løses på 2 timer Opgaven er løst den 30/9 af Kasper inden for tidsrammen.. Arbejdspakke 11: Jørn og Kasper den 28. september Lav brugerinterface til user story 28. Opgaven bør løses på 3 timer. Opgaven er løst den 8/10 af Kasper inden for tidsgrænsen. Arbejdspakke 12: Jørn og Kasper den 28. september Lav en rapport til user story 30. Opgaven bør løses på 6 timer. Opgaven er løst af Jørn på 1 dag. Den 1/10. Der opstod problemer med visning af rapporten. Arbejdspakke 13: Jørn og Kasper den 28. september Lav en rapport til user story 26 der laver en liste over en brugers ansatte og en deres summerede properties i forhold til deres jobprofil. Opgaven skal løses på 2 dage. Opgaven er løst den 8/10 af Jørn inden for tidsgrænsen Arbejdspakke 14: Jørn og Kasper den 28. september Lav en rapport til user story 27. Opgaven skal løses på 2 dage. Opgaven er løst den 2/10 inden for tidsgrænsen af Jørn Arbejdspakke 15: Kasper den 29. september Lav brugergrænseflade til funktionen tilføj rolle til bruger (user story 21). Opgaven skal løses på 4 timer Opgaven er løst den 29/9 af Kasper inden for tidsrammen. Arbejdspakke 16: Kasper den 29. september Lav kode til tilføj rolle til bruger (user story 21). Opgaven skal løses på 5 timer. Opgaven er løst den 29/9 af Kasper inden for tidsrammen. 46

47 Abejdspakke 15 og 16 opstod, efter at vi havde lavet arbejdspakke 2 og 3, og indså at det også skulle være muligt at tilføje en rolle til en bruger. Arbejdspakke 17: Jørn den 30. september Sørg for at der udover properties bliver tjekket på Education_Category i siden der viser en liste over ansatte der lever op til en jobprofil (Ansatte brugeren har rettigheder til at se). Opgaven skal løses på 1 dag. Opgaven er løst den 5/10 af Kasper inden for tidsrammen Arbejdspakke 18: Jørn den 30. september Når man retter en property for en medarbejder skal man sætte checkboxen til true før der kan rettes i propertiesne. Opgaven skal løses på 5 timer. Opgaven er løst af Kasper den 28/9 Inden for tidsrammen. Arbejdspakke 19: Jørn den 30. september Det skal sørges for at rapporter kan tilføjes dynamisk. Opgaven skal løses på 1 dag. Opgaven er løst den 6/10 på 1½ dag. Se afsnittet om dynamiske rapporter for forklaring. Arbejdspakke 20: Jørn den 30. september Vi skal lave et link til siden for at finde ansatte der lever op til en jobprofil. Opgaven skal løses på en ½ time. Opgaven er løst den 1/10 af Kasper inden for tidsrammen. Arbejdspakke 21: Jørn den 24. september Lav et program der kan fylde testdata på databasen for at vi kan tjekke responstider med et realistisk antal ansatte (omkring 100 ansatte). Opgaven bør løses på 4 timer. Opgaven er løst den 8/10 af Kasper på 1 dag. Arbejdspakke 22: Jørn og Kasper den 28. september Lav kode til user story 28. Opgaven bør løses på 3 timer. Opgaven er løst den 8/10 af Kasper inden for tidsrammen. Arbejdspakke 23: Jørn og Kasper den 28. september Lav stored procedure til user story 28 (visning af træningsbehov for en ansat). Opgaven bør løses på 2 timer. Opgaven er løst den 7/10 af Kasper inden for tidsrammen. Issue 6. Forfatter: Jørn, opgavetype: Fejlrettelse, prioritet Høj, status: Løst Vi har opdaget et problem i databasen omkring uddannelse. Navnet på uddannelsen bruges i øjeblikket som primærnøgle i tabellen. Dette giver problemer da en anden attribut der beskriver, hvor uddannelsen ligger, kan have flere forskellige værdier for det samme uddannelsesnavn. Dette bør rettes ved at der laves en ny primærnøgle i tabellen, f.eks. et løbenummer. Det forventes at tage 1 dag at løse dette problem og rette den tilhørende kode. Issuet er løst af Jørn den 29. september 2009 inden for tidsgrænsen. For at løse problemet var det nødvendigt at slette tabellerne Education_Information og Employee_Education. Til at gøre dette benyttede vi funktionen generate scripts i SQL server Ved at gøre dette havde vi muligheden for at lave nye tabeller med en ny primærnøgle og derefter overføre den testdata vi havde gemt i tabellen. Efterfølgende var det nødvendigt at rette stored procedurs der håndterede tabellerne: - AddEducation der tilføjer uddannelser til en ansat. - CreateUpdateEducation der opretter eller opdatere en uddannelse. 47

48 Desuden var det nødvendigt at rette koden så den passede med ændringerne. Issue 7. Forfatter: Kasper, opgavetype: Fejlrettelse, prioritet Høj, status: Løst Efter at have testet lidt på vores søgefunktion til find ansat til en jobprofil opdaget vi en fejl, der gjorde at nogle ansatte der ikke levet op til kravene dukkede op på listen, dette skyldes en fejl i søge metoden. Issue 7 er løst den 29/9 af Kasper Issue 8. Forfatter: Jørn, opgavetype: Optimering, prioritet Høj, status: Løst Søgningen (på alle ansatte) efter ansatte der lever op til en jobprofil bør foretages i databasen så vi slipper for at hente alle ansatte op i koden. Issutet bør løses på 1 dag. Issuet er løst den 30. september af Jørn og Kasper. Se afsnit Find alle employees der passer til en Jobprofil. Argumentation Database (Jørn) Der er fortaget en del ændringer i databasen i dette sprint. Tabellen qualification og de tilhørende mange til mange relationer er slettet da vi fandt ud af at ADP ikke ønskede at bruge denne løsning. Desuden er tabellen Education rettet som beskrevet i Issue 6. Ud over disse rettelser til databasen er der tilføjet 2 tabeller. Course og Emp_Property_Goal der registrer de mål der sættes op for en medarbejder. I praksis vil dette virke gennem udviklingssamtaler mellem en ansat og afdelingslederen. Her bliver de enige om hvilke parametre den ansatte skal fokusere på at forbedre sig og hvordan lederen kan hjælpe ham med det. F.eks. gennem kurser registreret i tabellen Course. Dette registreres så i Emp_Property_Goal. Et ERdiagram over databasen i sin nuværende form kan findes i bilag 6. Find alle employees der passer til en Jobprofil (Jørn) Da vi i første omgang lavede den del af systemet der finder alle ansatte der passer til en jobprofil. Hentede vi alle ansatte fra databasen og sammenlignede dem i koden. Vi valgte denne løsning da den var simpel og hurtig at lave, men var samtidig klar over at løsningen ikke var optimal da vi langt fra brugte alle de data vi hentede. Derfor har vi i dette sprint flyttet sammenligningen til databasen og returnere nu kun de ansatte der opfylder den ønskede jobprofil. Vi laver denne ændring da vi ikke kender det miljø systemet kommer til at køre i. Der er en chance for at databasen kommer til at ligge på en databaseserver med mange andre vigtige databaser og derfor ikke bør bruge unødvendig store resurser. I den virkelige verden ville vi nok først have gjort dette når vi var sikre på at der var så mange ansatte og at programmet blev brugt nok til at det ville være økonomi i at lave denne ændring. De ansatte der skal returneres findes nu ved hjælp af en stored procedure der tager en jobtitel som inputparameter og finder de ansatte der skal bruges vha. følgende select statement: 48

49 SELECT DISTINCT Emp.Enterprise_Staff_Id, Emp.First_Name, Emp.Last_Name, Emp.Company_Number, Emp.Adress, Emp.Zipcode, City.Town, Emp.Phone, Emp.Mobile_Phone, Emp.Engagement_Date FROM Emp_Property INNER JOIN Employee Emp ON Emp_Id = Enterprise_Staff_Id INNER JOIN City ON City.Zipcode = Emp.Zipcode WHERE (SELECT COUNT(*) FROM Job_Property WHERE Job_Title = (SELECT COUNT(*) FROM Job_Property INNER JOIN Parameter ON Parameter.Id = Job_Property.Parameter_Id INNER JOIN Emp_Property empprop ON Parameter.Id = empprop.parameter_id WHERE Job_Property.Parameter_Id = empprop.parameter_id AND emp.enterprise_staff_id = empprop.emp_id AND Job_Property.Mark <= empprop.mark AND Job_Property.Job_Title AND (SELECT MAX(Education_Category.RATING) FROM Education_Category INNER JOIN Education_Information ON Education_Category.Name = Education_Information.Category INNER JOIN Employee_Education ON Employee_Education.Education_Id = Education_Information.Id WHERE Emp.Enterprise_Staff_Id = Employee_Education.Emp_Id) >= (SELECT DISTINCT Education_Category.RATING FROM Education_Category LEFT JOIN Job_Profile ON Education_Category.Name = Job_Profile.EducationTaken LEFT JOIN Job_Property ON Job_Property.Job_Title = Job_Profile.Title WHERE Title Rapport der sammenligner en ansat med hans jobprofil (Jørn) Til user story 30 skulle vi lave en rapport der sammenligner en ansat med hans jobprofil. Dette så vi som en ret nem opgave, der hurtigt kunne løses med joins på de nødvendige tabeller. Dog rendte vi ind i problemer da vi ikke kunne finde en løsning der gav os alle de informationer vi skulle bruge på denne måde. Problemet lå i at vi startede med at joine en jobprofil sammen med parametre på en jobtitel og derefter skulle joine dette sammen med en ansat og hans parametre ud fra hans staff id. For at rapporten kunne laves skulle der være mulighed for at både den ansatte og jobprofilen kunne have parametre som den anden ikke havde. Dette kunne vi ikke tage højde for. Derfor endte vi med en løsning der lavede 2 midlertidige tabeller og samlede dem i en tredje tabel. 49

50 --Opret table til Jobinformationer CREATE TABLE #CompareJob(Job_Parameter_Id INT,Job_Parameter_Name VARCHAR(MAX),Jobprofile VARCHAR(30),Job_Mark INT) INSERT INTO #CompareJob(Job_Parameter_Id, Job_Parameter_Name, Jobprofile,Job_Mark) SELECT Parameter.Id, Parameter.Patameter_Description, Job_Profile.Title, Job_Property.Mark FROM Job_Property INNER JOIN Job_Profile ON Job_Profile.Title = Job_Property.Job_Title INNER JOIN Parameter ON Job_Property.Parameter_Id = Parameter.Id WHERE Job_Profile.Title = (SELECT Employee.Job_Profile_Name FROM Employee WHERE Employee.Enterprise_Staff_Id --Opret table til informationer om en ansat CREATE TABLE #CompareEmp (Emp_Parameter_Id INT, Emp_Parameter_Name VARCHAR(MAX),Emp_Id INT, Emp_Name VARCHAR(100), Emp_Mark INT) INSERT INTO #CompareEmp(Emp_Parameter_Id, Emp_Parameter_Name, Emp_Id, Emp_Name,Emp_Mark) SELECT Parameter.Id, Parameter.Patameter_Description, Employee.Enterprise_Staff_Id, (Employee.First_Name + ' ' + Employee.Last_Name) empname, Emp_Property.Mark FROM Emp_Property INNER JOIN Employee ON Employee.Enterprise_Staff_Id = Emp_Property.Emp_Id INNER JOIN Parameter ON Parameter.Id = Emp_Property.Parameter_Id WHERE Employee.Enterprise_Staff_Id --Join de 2 tables sammen SELECT * FROM #CompareJob FULL OUTER JOIN #CompareEmp ON #CompareJob.Job_Parameter_Id = #CompareEmp.Emp_Parameter_Id --Slut af med at droppe tablesne så de ikke optager ram på databaseserveren DROP TABLE #CompareJob DROP TABLE #CompareEmp Nu er der oprettet 2 midlertidige tabeller, og det er muligt at få de fleste af de data vi skal bruge ud ved en full join. SELECT * FROM #CompareJob FULL OUTER JOIN #CompareEmp ON #CompareJob.Job_Parameter_Id = #CompareEmp.Emp_Parameter_Id Dette giver dog stadig nogle problemer med parametrenavne der ikke altid bliver vist i rapporterne. For at løse dette problem lavede vi i stedet en ny tabel der opdatere de NULL værdier der før var et problem. 50

51 CREATE TABLE #CompareJobEmp(Parameter_Id INT,Parameter_Name VARCHAR(MAX),Emp_Id INT, Emp_Name VARCHAR(100), Emp_Mark INT, Jobprofile VARCHAR(30),Job_Mark INT, Job_parameter_Name VARCHAR(MAX)) INSERT INTO #CompareJobEmp(Parameter_Id, Parameter_Name, Emp_Id, Emp_Name, Emp_Mark, Jobprofile, Job_Mark, Job_parameter_Name) SELECT Emp_Parameter_Id, Emp_Parameter_Name, #CompareEmp.Emp_Id, #CompareEmp.Emp_Name, #CompareEmp.Emp_Mark, #CompareJob.Jobprofile, #CompareJob.Job_Mark, #CompareJob.Job_Parameter_Name FROM #CompareEmp FULL OUTER JOIN #CompareJob ON #CompareJob.Job_Parameter_Id = #CompareEmp.Emp_Parameter_Id --Efter tabellen er oprettet køres der en update der sikre at alle parameterenavne ligger i Parameter_Name UPDATE #CompareJobEmp SET Parameter_Name = Job_parameter_Name WHERE Parameter_Name IS NULL SELECT * FROM #CompareJobEmp --Til sidst droppes de midlertidige tabeller. DROP TABLE #CompareJob DROP TABLE #CompareEmp DROP TABLE #CompareJobEmp I rapporten var det meningen at vi skulle lave et raderdiagram der viser den ansatte i forhold til jobprofilen. 51

52 Understøttelse i subversion (Jørn) Vi har opdaget et problem med vores brug af subversion. De tekstdokumenter vi gemmer på google code er ikke understøttet. Dette betyder at ændringer i tekstdokumenterne bliver gemt på bitniveau og ikke efter teksten i dokumentet. Det har den konsekvens at vi ikke kan benytte svn til at rette konflikter i dokumenterne. Vi kan ikke blive udsat for direkte datatab på grund af dette, men risikere at skulle bruge lang tid på manuelt at sammenflette dokumenter, hvis der opstår en konflikt. Vi er nu så langt henne i projektet at vi ikke vil kigge efter en et andet filformat at gemme dokumenterne i. I stedet vil vi være opmærksomme på at vi bruger update, commit hver gang vi ændre i et tekstdokument. Dynamiske rapporter (Jørn) Product owner har argumenteret for at det skal være muligt, dynamisk at tilføje rapporter til systemet. Indtil nu har det krævet at der rettes kode i mindst en kodeside når en rapport skulle tilføjes. Det har selvfølgelig den konsekvens at man skal publish webpagen igen. Vi havde selv overvejet at lave en løsning, hvor man hentede informationer fra den xml-fil der gemmer informationer til menuen. På den måde ville det ikke være nødvendigt at publish websiden hver gang der tilføjes en rapport. Efter mødet kom vi til at tænke på muligheden for at hente informationer omkring rapporterne fra rapportserveren. Vi har i starten af projektet lavet proof of concept omkring dette i en Windows form applikation. Så vi ved at dette kan lade sig gøre, dog er problemstillingen anderledes på en webpage. Her er det ikke lige så simpelt at bruge en webservice da den ikke kan kaldes på samme måde som i en applikation. Vores første indskydelse var at tilføje en webreference til webpagen (en webreference er en henvisning til en webservice). Dette gav dog ikke adgang til webservicen da vi ikke kunne kalde referencen fra webpagen. Ved at bruge MSDN fandt vi ud af at man skulle have webservicen liggende i et en container der kunne kaldes. Med denne information lavede vi et nyt proof of concept, hvor vi fra i en webpage lavede en reference til en dll fil der indeholdt en webservice. Det endelige resultat blev at vi tilføjede en dll fil indeholdende web referencen ReportServerService, der referer til webservicen ReportingService Fra webpagen kunne vi nu tilgå webservicen vha. using WebServiceControl.ReportServerService; 11 Information omkring webservicen ReportingService2005 kan findes på: 52

53 I kodefilen til den side der skal vise de dynamiske rapporter har vi tilføjet kode til pageloaden. Denne kode bliver kun eksekveret når man går ind på siden, ikke ved postback. if (!IsPostBack) { //opret forbindelse til webserveren og set url en til denne. Da vi ikke har lavet brugerinstillinger på reportserveren skal denne sættes til default. ReportingService2005 _rs = new ReportingService2005(); _rs.credentials = System.Net.CredentialCache.DefaultCredentials; _rs.url = DataModeller.ReportUrl + DataModeller.ReportingService2005Name; } CatalogItem[] reportitems; reportitems = _rs.listchildren("/", true); foreach (CatalogItem item in reportitems) { if (item.type!= ItemTypeEnum.Folder && item.type!= ItemTypeEnum.DataSource) { string[] pathsplit = item.path.split('/'); if(pathsplit[pathsplit.length - 2] == DataModeller.ReportGetFolderNameDynamicReports) { MenuItem menuraportitem = new MenuItem(item.Name, item.path); MenuReports.Items.Add(menuRaportItem); } } } MenuReports.DataBind(); Først oprettes der et objekt af webservicen og metoder herfra bruges til, at sætte stien til rapport serveren og brugerrettigheder. Derefter fyldes data fra rapportserveren på et array af CatalogItems. Nu lægger alle rapporter, mapper og datasources fra rapport serveren i dette array. For at sortere mapper og datasources fra, startes en iteration der først indeholder en selektion der ikke tillader mapper og datasources adgang. Nu skal der tjekkes på om rapporterne ligger i den ønskede mappe. Dette gøres ved, at opdele stierne til hver rapport og gemme disse i et array. En ny selektion tjekker nu om rapporten ligger i den rigtige mappe. Hvis den gør det, bliver der oprettet et menuitem ud fra rapporten. Nedenfor ses en datasource og 2 mapper. Det er indholdet af mappen med ReportsDynamic der skal vises. Hvis man ønsker at tilføje mapper der ikke skal vises dynamisk kan man ligge dem i mappen ReportsNotDynamic. Her vises de rapporter der skal vises i programmet: 53

54 Her vises de rapporter der vises i programmet(de samme rapporter som vises på rapportserveren ovenfor) Rapport der viser properties, uddannelser og kurser for en ansat (Jørn) Til forskel for de hidtidige rapporter vi har lavet, har denne rapport benyttet flere datasets. Det har den fordel at vi kan hente data ved hjælp af flere forskellige sqlsætninger eller endda forskellige datasources, hvis vi har behov for det. (Se screenshot af et eksempel på en rapport i bilag 11) Rettelser til Product backlog (Jørn) I forbindelse med misforståelserne omkring Qualification, har vi slettet 4 user stories da de var lavet med i udgangspunkt et behov der viste sig at være misforstået. Det drejer sig om user story 22, 23, 36 og 40. Af hensyn til vores burndown chart over hele projektet registrer vi de 4 user stories på samme måde som hvis de var færdiggjort i dette sprint. Desuden trækker vi det antal dage de ville tage at lave, fra det antal mandedages arbejde vi forventer der restere ved afslutningen af projektet. Create / Update Education Category (Kasper) Opret og Opdater Education category er næsten magen til opret /opdater udannelse, med det til forskel at når man opdatere en Ednucation Category kan man ikke ændre navnet da det er primær nøglen. Vi har lavet samme princip med den stored procedure som vi gjorde i opret/opdater education. Create / Update Unit (Kasper) 54

55 Opret / opdater unit ikke meget forskellig fra de andre, opret og opdater og virker derfor på same made, med at der er en side og en list, også links imellem de 2. Add / Remove Unit from / to a user (Kasper) Det skal selvfølgelig være muligt for en adminstrator at tilføjet afdelinger til en enkelt bruger samt at fjerne dem fra en bruger dette har vi alt sammen fået klemt ned på en side så det er nemt og tilgængeligt, det er også muligt at gøre en bruger til administrator, samt at degradere ham til normal bruger, bare ved at hakke det af og til på denne side. i den første DropDownList vælger man, hvilken bruger man ønsker at redigere i, så er der checkboxen der styrer om en bruger er administrator eller ikke, derefter kommer der en dropdown list med alle afdelinger, hvor man vælger den man vil tilføje, det kan ikke lade sig gøre at tilføje en afdeling der allerede er tilføjet, vi har lavet et check der undersøger om afdelingen allerede er tilføjet til brugeren, får at undgå fejl i programmet og i databasen. Listen lidt længere nede på siden har den funktion at den viser hvilke afdelinger der er tilføjet til en bruger men på sammetid gør den det muligt at fjerne afdelinger med bare et enkelt klik. Ændringer i EmployeeProberty(Kasper) Efter at have vist siden til ADP, fik vi at vide det kunne være en fordel hvis der ikke var en knap til hver eneste property, da dette kommer til at virke meget tungt og ikke så pænt. I stedet foreslog han at vi eventuelt kunne lave en løsning med en checkbox, det kunne være en fordel hvis man kun kunne ændre i data, når man havde hakket de properties af at man ville redigere. 55

5. semesters projekt. Personalesystem. EDBskolen, Erhvervs akademiet Lillebælt Eksamensprojekt Efterår 2009 Vejleder: Per Larsen Dat07a Skrevet for

5. semesters projekt. Personalesystem. EDBskolen, Erhvervs akademiet Lillebælt Eksamensprojekt Efterår 2009 Vejleder: Per Larsen Dat07a Skrevet for 5. semesters projekt EDBskolen, Erhvervs akademiet Lillebælt Eksamensprojekt Efterår 2009 Vejleder: Per Larsen Dat07a Skrevet for Personalesystem Jørn Justesen: Kasper Holm: Indholdsfortegnelse Projektetablering...

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

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

Dansk vejledning til installation og opsætning af Safe Eyes

Dansk vejledning til installation og opsætning af Safe Eyes Dansk vejledning til installation og opsætning af Safe Eyes Her kan du få vejledning til, hvordan du skaffer Safe Eyes og bruger det. Det mest nødvendige er her beskrevet på dansk men dog ikke det hele.

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

BackEnd Programmering PHP

BackEnd Programmering PHP 17708 08/ 02/ 2013 BackEnd Programmering PHP Prototype (CMS system) 371615m02dka.sub.ots.dk/historyspot eller linket CMS system på: qrguide.mmd.eal.dk Login CMS Username: admin Password: 1234 Source kode

Læs mere

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

Gå ind på forsiden til hjemmesiden. Skriv typo3 i adresselinjen og tryk på retur.

Gå ind på forsiden til hjemmesiden. Skriv typo3 i adresselinjen og tryk på retur. Adgang til Back-end Gå ind på forsiden til hjemmesiden. Skriv typo3 i adresselinjen og tryk på retur. typo3 Skriv herefter brugernavn og adgangskode i de respektive felter og klik på Login Den følgende

Læs mere

Installation. Aesiras Internet hjemmeside og webshop. Aesiras -integreret Regnskab, Handel og Internet

Installation. Aesiras Internet hjemmeside og webshop. Aesiras -integreret Regnskab, Handel og Internet Installation Aesiras Internet hjemmeside og webshop Aesiras -integreret Regnskab, Handel og Internet Installationsvejledning Tak fordi du valgte Aesiras Business & Internet. I denne vejledning vil vi guide

Læs mere

Ud af krisen. Software på tværs, 15. juni 2009

Ud af krisen. Software på tværs, 15. juni 2009 Ud af krisen Software på tværs, 15. juni 2009 Om Ative Agile udvikling og rådgivning Klassisk udviklingsmodel Krav Design Ændrer sig Implementering Tager for lang tid Springes over Mareridt Test Deployment

Læs mere

Trimble Access Service (Sync)

Trimble Access Service (Sync) Vejledning i opsætning af Trimble AccessSync Trimble har ved Dimensions November 2012 ændret deres forretningsmodel med hensyn til deres AccessSync funktionalitet. Tidligere har det krævet et særskilt

Læs mere

Thomas Vedel, Vedel Consult email: thomas@veco.dk DAPUG erfamøde 10. november 2010. Installation af SubVersion (svn)

Thomas Vedel, Vedel Consult email: thomas@veco.dk DAPUG erfamøde 10. november 2010. Installation af SubVersion (svn) Thomas Vedel, Vedel Consult email: thomas@veco.dk DAPUG erfamøde 10. november 2010 Installation af SubVersion (svn) Hvorfor versionsstyring? Det virkede da ellers i går Den fejl rettede jeg ellers for

Læs mere

Procesbeskrivelse - Webprogrammering

Procesbeskrivelse - Webprogrammering Procesbeskrivelse - Webprogrammering Indholdsfortegnelse Forudsætninger... 1 Konceptet... 2 Hjemmesiden... 2 Server-side... 3 Filstrukturen... 3 Databasehåndtering og serverforbindelse... 4 Client-side...

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

My booking. Generelt. Forsiden. Version 9.0

My booking. Generelt. Forsiden. Version 9.0 My booking Version 9.0 System til at lave online bookinger, med mulighed for opdeling i grupper, forskellige booking typer, ændre layout indstillinger, status styring, sprogvalg samt en del mere, detaljer

Læs mere

Introduktion til frontend

Introduktion til frontend Side 1 af 43 Introduktion til frontend Dette dokument beskriver kort, hvordan du bruger WeroShop frontend. Dette omfatter at sætte dig ind i varegrupper, producenter og produkter, filtrering af produkter,

Læs mere

Quick Guide for Mobil Reception (Omhandler mobil reception også kaldet isymphony)

Quick Guide for Mobil Reception (Omhandler mobil reception også kaldet isymphony) Quick Guide for Mobil Reception (Omhandler mobil reception også kaldet isymphony) Generelt Mobil Reception er et værktøj som bruges til at overvåge medarbejdere, kø er og meget andet samt styre dit omstillingsanlæg

Læs mere

Sådan redigerer du en hjemmeside i Umbraco

Sådan redigerer du en hjemmeside i Umbraco Brugermanual til din boligafdelings hjemmeside Sådan redigerer du en hjemmeside i Umbraco Indhold Introduktion... 2 Log på Umbraco og redigér din hjemmeside... 3 Opret ny side... 7 Gem side uden at udgive/publicere

Læs mere

Den digitale Underviser. Clouds. Dropbox

Den digitale Underviser. Clouds. Dropbox Den digitale Underviser Clouds Dropbox Indhold Indhold... 1 Dropbox... 1 Installer Dropbox... 2 Åbn Dropbox fra egen computer... 2 Åbn Dropbox fra en anden computer... 3 Lagre filer i Dropbox (offline

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

EasyIQ Opdatering 5.2.3 -> 5.4.0

EasyIQ Opdatering 5.2.3 -> 5.4.0 EasyIQ Opdatering 5.2.3 -> 5.4.0 Kunde: Forfatter: Thomas W. Yde Systemtech A/S Side: 1 af 17 1 Indholdsfortegnelse 2 GENERELT OMKRING FORUDSÆTNINGEN OG OPDATERINGS FORLØBET... 3 2.1 FORUDSÆTNINGER...

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

MailMax / Web v4.1. Brugsvejledning til webmail. Copyright 2003 Gullestrup.net

MailMax / Web v4.1. Brugsvejledning til webmail. Copyright 2003 Gullestrup.net MailMax / Web v4.1 Copyright 2003 Gullestrup.net Log ind på webmailen Start med at gå ind på http://webmail.gullestrup.net i din browser. Indtast din Email-adresse samt Adgangskode, som hører til din konto.

Læs mere

2. SEMESTER PROJEKT 3 INTERAKTIONSUDVIKLING

2. SEMESTER PROJEKT 3 INTERAKTIONSUDVIKLING 2. SEMESTER PROJEKT 3 INTERAKTIONSUDVIKLING Baggrund Udgangspunktet er projekt 2, dvs. en blog om cupcakes, hvor målgruppe, afsender og modtager allerede er defineret. Du bliver nu bedt om at udvikle et

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

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE 1 Tekniske Krav 1.1 Hardware krav: En skærm gerne med touch Hvis skærmen ikke har touch, skal du bruge et tastatur og en mus Webcam Gerne i HD En ekstern lydenhed

Læs mere

Opsætning af Backup. Hvis programmet registreres korrekt vises nedenstående skærmbillede. Genstart herefter programmet.

Opsætning af Backup. Hvis programmet registreres korrekt vises nedenstående skærmbillede. Genstart herefter programmet. Opsætning af Backup Dette er en guide til opsætning af backup med Octopus File Synchronizer. Det første der skal ske er, at programmet skal registreres (programmet kan dog bruges i 30 dage, hvis det ikke

Læs mere

Ruko SmartAir. Updater installation

Ruko SmartAir. Updater installation Ruko SmartAir Updater installation Introduktion. Updateren er en speciel enhed som giver os mulighed for at tilføje, læse og skrive funktioner i en offline installation. Med læse og skrive funktionen kan

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

FSFIs lynguide til DFRs elektronisk bevissystem

FSFIs lynguide til DFRs elektronisk bevissystem FSFIs lynguide til DFRs elektronisk bevissystem Dette er en kort guide i anvendelsen af Dansk Førstehjælpsråd elektroniske bevissystem. Guiden viser og forklarer hvordan du som instruktør og medlem af

Læs mere

Indholdsfortegnelse. Hvorfor skal jeg tage backup af min blog? Side 3. Tag backup med UpDraft Side 4. Tag manuelt backup Side 8 - 2 -

Indholdsfortegnelse. Hvorfor skal jeg tage backup af min blog? Side 3. Tag backup med UpDraft Side 4. Tag manuelt backup Side 8 - 2 - - 1 - Indholdsfortegnelse Hvorfor skal jeg tage backup af min blog? Side 3 Tag backup med UpDraft Side 4 Tag manuelt backup Side 8-2 - Hvorfor skal jeg tage backup af min blog? Lige meget om du har opbygget

Læs mere

Login-tiden, Første gang tager det måske 1 ½ - 2 min. Andet gang ½ - 1 ½ min...9

Login-tiden, Første gang tager det måske 1 ½ - 2 min. Andet gang ½ - 1 ½ min...9 Ver. 1.8 RDS Side: 1 af 27 Indhold: Inden du kan benytte RDS-løsningen, skal din PC være opdateret...2 Login på RDS-løsningen...3 Login-tiden, Første gang tager det måske 1 ½ - 2 min. Andet gang ½ - 1

Læs mere

Tlf. +45 7027 1699 Fax + 45 7027 1899

Tlf. +45 7027 1699 Fax + 45 7027 1899 Firmaordninger I firmaoversigten kan du holde styr på dit kundekartotek samt disses bookinger. Der kan desuden oprettes andre firmaer end dit eget. Herved kan der udbydes særlige ydelser på med egne arbejdstider.

Læs mere

EasyIQ ConnectAnywhere Release note

EasyIQ ConnectAnywhere Release note EasyIQ ConnectAnywhere Release note PC Klient 2.4.0.17 o Support for at Domain maskiner kan logge på ConnectAnywhere automatisk med Windows credentials Løsningen forudsætter/kræver at man logger på Windows

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

Brugervejledning til Design Manager Version 1.02

Brugervejledning til Design Manager Version 1.02 Brugervejledning til Design Manager Version 1.02 Indholdsfortegnelse 1. Introduktion... 3 1.1 Det kan du med HostedShop Design Manager... 3 1.2 Feature list... 3 2. Design... 4 3. Filer og CSS... 4 3.1

Læs mere

Hjemmesiden er opdelt i et sidehoved, en sidefod og mellem disse 3 kolonner: venstre, midterste og højre. Højre kolonne vises dog kun på forsiden.

Hjemmesiden er opdelt i et sidehoved, en sidefod og mellem disse 3 kolonner: venstre, midterste og højre. Højre kolonne vises dog kun på forsiden. Hjemmesiden er opdelt i et sidehoved, en sidefod og mellem disse 3 kolonner: venstre, midterste og højre. Højre kolonne vises dog kun på forsiden. VENSTRE kolonne indeholder flere elementer (se illustration

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

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

Læringsprogram. Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4

Læringsprogram. Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4 Læringsprogram Christian Hjortshøj, Bjarke Sørensen og Asger Hansen Vejleder: Karl G Bjarnason Fag: Programmering Klasse 3.4 R o s k i l d e T e k n i s k e G y m n a s i u m Indholdsfortegnelse FORMÅL...

Læs mere

Region Midtjylland Proces for Change Management

Region Midtjylland Proces for Change Management Region Midtjylland Proces for Change Management Version 1.1 Forord Dette dokument beskriver RMIT s Change Management proces. Processen beskriver minimumskravene (need to have) for at få processen til at

Læs mere

Pronestor Room & Catering

Pronestor Room & Catering Pronestor Room & Catering Modul 2 Installation af tilkøbsmoduler Side 2.0 2.9 Bruger Import (AD integration) Side 2.1 2.4 o Service Accounts (hosted og on-premises) o Active Directory struktur o Installation

Læs mere

Indhold. Indholdsfortegnelse

Indhold. Indholdsfortegnelse Indholdsfortegnelse Indhold Indledning... 2 Forsiden... 2 Dine genveje... 3 Nyheder... 3 EasyIQ og EasyIQ Quick Funktioner... 3 Administration... 6 Licens... 7 Nyheder... 8 Log... 9 Password... 9 System...

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

MODERNISERINGSSTYRELSEN ØSLDV WINDOWS SERVICE DOKUMENTATION, INSTALLATION OG KONFIGURERING AF ØSLDV/RAY WINDOWSSERVICE

MODERNISERINGSSTYRELSEN ØSLDV WINDOWS SERVICE DOKUMENTATION, INSTALLATION OG KONFIGURERING AF ØSLDV/RAY WINDOWSSERVICE Indhold Ændringshistorik... 2 Formål... 2 Om programmet... 2 Systemkrav... 2 Installation... 3 Event Log... 5 Installationsprogrammets skærmbillede... 6 Konfigurering af xml-opsætningsfil... 7 Beskrivelse

Læs mere

Vejledning i brug af system til online indberetning af mønstringsdata

Vejledning i brug af system til online indberetning af mønstringsdata Vejledning i brug af system til online indberetning af mønstringsdata Søfartsstyrelsen kan tilbyde samtlige rederier mulighed for at kunne indberette mønstringsdata elektronisk. Den elektroniske indberetning

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

Det Naturvidenskabelige Fakultet. Introduktion til Blackboard (Øvelser) Naturvidenskabeligt Projekt 2006 Prøv at forske

Det Naturvidenskabelige Fakultet. Introduktion til Blackboard (Øvelser) Naturvidenskabeligt Projekt 2006 Prøv at forske Det Naturvidenskabelige Fakultet Introduktion til Blackboard (Øvelser) Naturvidenskabeligt Projekt 2006 Prøv at forske Indholdsfortegnelse Introduktion til Blackboard Content System...3 Øvelse 01 individuel:

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

GUIDE TIL CLOUD DRIVE

GUIDE TIL CLOUD DRIVE GUIDE TIL CLOUD DRIVE Dette er en guide du kan anvende til nemt at komme effektivt i gang med at anvende Cloud Drive Indholdsfortegnelse 1. Tilgængelige Cloud Drive klienter 2. Guide til Windows klienten

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

LW313 Sweex Wireless 300N Adapter USB

LW313 Sweex Wireless 300N Adapter USB LW313 Sweex Wireless 300N Adapter USB Bemærk venligst! Udsæt ikke Sweex Wireless 300N Adapter USB for ekstreme temperaturer. Placér ikke adapteren i direkte sollys eller i nærheden af radiatorer eller

Læs mere

RefWorks en vejledning fra UCL Biblioteket. Indholdsfortegnelse

RefWorks en vejledning fra UCL Biblioteket. Indholdsfortegnelse Indholdsfortegnelse Hvad er RefWorks?... 2 Opret dig som bruger... 2 Inden du går i gang... 3 Klargøring af computer til download af Write-N-Cite v. 4.2... 3 Installation af Write-N-Cite... 4 Installation

Læs mere

Funktions Manual. Skyhost WebPortal. Login (Bemærk: for at kunne bruge WebPortalen skal du have et aktivt abonnement fra Skyhost)

Funktions Manual. Skyhost WebPortal. Login (Bemærk: for at kunne bruge WebPortalen skal du have et aktivt abonnement fra Skyhost) Funktions Manual Skyhost WebPortal Login (Bemærk: for at kunne bruge WebPortalen skal du have et aktivt abonnement fra Skyhost) 1: Gå ind i på www.skyhost.dk - Klik på WebPortal knappen øverst på siden

Læs mere

Kom godt igang med DS-101g+ Disk Station. (installations vejledning)

Kom godt igang med DS-101g+ Disk Station. (installations vejledning) Kom godt igang med DS-101g+ Disk Station (installations vejledning) Bemærk Venligst se Chapter 2 Get to Know the Hardware i den engelske User s Guide for detaljeret beskrivelse af knapperne samt LEDs funktioner.

Læs mere

Vejledning: Flytning af egne udviklede ØS LDV rapporter i Reporting services fra en server til en anden server. Målgruppe: Rapportadministrator

Vejledning: Flytning af egne udviklede ØS LDV rapporter i Reporting services fra en server til en anden server. Målgruppe: Rapportadministrator Vejledning: Flytning af egne udviklede ØS LDV rapporter i Reporting services fra en server til en anden server Målgruppe: Rapportadministrator April 2011 Indholdsfortegnelse Indholdsfortegnelse...2 1 Indledning

Læs mere

KOMBIT FLIS. Teknisk Tilslutning. Version: 2.0 Forfatter: Ingo Nielsen ini@netcompany.com

KOMBIT FLIS. Teknisk Tilslutning. Version: 2.0 Forfatter: Ingo Nielsen ini@netcompany.com KOMBIT FLIS Version: 2.0 Forfatter: Ingo Nielsen ini@netcompany.com Indholdsfortegnelse 1 INDLEDNING... 3 1.1 Målgruppe... 3 2 TIL FLIS IMPLEMENTERINGSANSVARLIGE... 4 3 TIL KOMMUNENS IT ADMINISTRATOR...

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

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

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

OIOSAML.NET og Umbraco. ved Thomas Ravnholt ravnholt @ silverbullet.dk

OIOSAML.NET og Umbraco. ved Thomas Ravnholt ravnholt @ silverbullet.dk OIOSAML.NET og Umbraco ved Thomas Ravnholt ravnholt @ silverbullet.dk Silverbullet, stiftet 2003 Silverbullet A/S IT- rådgivning, projektledelse og implementering Officiel SKI-leverandør Kontorer i Århus

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

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

Guide til opsætning af Google Analytics Nye kunder Visiolab introduktion

Guide til opsætning af Google Analytics Nye kunder Visiolab introduktion Guide til opsætning af Google Analytics Nye kunder Visiolab introduktion Denne guide vil gøre dig i stand til at opstille din Google Analytics konto. Ydermere vil den være en hjælp til at forstå hvordan

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

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

3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015

3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015 PROJECT DATABASE 3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015 Ved at underskrive dette dokument bekræfter vi, at det indsendte materiale alt sammen er vores eget materiale og arbejde. Andreas

Læs mere

Individuel specialisering

Individuel specialisering Individuel specialisering Navn: Uddannelse: Emne: Vejleder: Sted: Peter Ditlevsen, pd12054@stud.noea.dk IT- og Elektronikteknolog, 4. semester Serveradministration Ib Helmer Nielsen UCN T&B Dato: 7. maj

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

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

Version 8.0. BullGuard. Backup

Version 8.0. BullGuard. Backup Version 8.0 BullGuard Backup 0GB 1 2 INSTALLATIONSVEJLEDNING WINDOWS VISTA, XP & 2000 (BULLGUARD 8.0) 1 Luk alle åbne programmer, bortset fra Windows. 2 3 Følg instrukserne på skærmen for at installere

Læs mere

SmartWeb Brugermanual

SmartWeb Brugermanual SmartWeb Brugermanual Table of Content Table of Content... 1 Best Practice SmartWeb:... 2 Implementering... 4 Egenskaber:... 5 Filer:... 7 Oprettelse af Kategori... 9 Sider og Tekster:... 11 Slideshow...

Læs mere

Opgradere fra Windows Vista til Windows 7 (brugerdefineret installation)

Opgradere fra Windows Vista til Windows 7 (brugerdefineret installation) Opgradere fra Windows Vista til Windows 7 (brugerdefineret installation) Hvis du ikke kan opgradere computeren, som kører Windows Vista, til Windows 7, så skal du foretage en brugerdefineret installation.

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

Det vigtigste først! Dette er måske den vigtigste bog der nogensinde er skrevet om agile vs. vandfald. Muligvis fordi det vel stadig er den eneste

Det vigtigste først! Dette er måske den vigtigste bog der nogensinde er skrevet om agile vs. vandfald. Muligvis fordi det vel stadig er den eneste WTF? Thomas Schou-Moldt, Miracle A/S (siden 2008) Arkitekt, udvikler, teknisk projektleder, mv. Indtil videre afsonet lidt over 20 år i branchen, ingen udsigt til prøveløsladelse tsm@miracleas.dk, 5374

Læs mere

MANUAL. Siteloom CMS

MANUAL. Siteloom CMS MANUAL Siteloom CMS www.hjerteforeningen.dk/cms Brugernavn: Password: 3. oktober, 2013 BASIS FUNKTIONER 1. Kalender... 4 1.a. Opret... 5 1.b. Rediger eller slet... 9 2. Sider...12 2.a. Opret side...13

Læs mere

KMD Brugeradministration til Navision og LDV

KMD Brugeradministration til Navision og LDV KMD Brugeradministration til Navision og LDV Vejledning for Statens Administration og ØSC institutioner. Opdateret 09-09-2015 Indholdsfortegnelse 1 Kom godt i gang... 2 1.1 Login til KMD Brugeradministration...

Læs mere

18/11 2010 Version 2.0 Side 1 af 36

18/11 2010 Version 2.0 Side 1 af 36 Login til DJAS Gå ind på adressen http://www.djas.dk I feltet Brugernavn skrives den e-mail adresse som brugeren er registeret med i systemet. I feltet Password skrives brugerens adgangskode. Ved at sætte

Læs mere

SDBF QUICKGUIDE SKOLERNES DIGITALE BLANKET FLOW 1. - SUPERBRUGERE OG MEDLEMMER AF RETTIGHEDSGRUPPER -

SDBF QUICKGUIDE SKOLERNES DIGITALE BLANKET FLOW 1. - SUPERBRUGERE OG MEDLEMMER AF RETTIGHEDSGRUPPER - SDBF QUICKGUIDE SKOLERNES DIGITALE BLANKET FLOW 1. - SUPERBRUGERE OG MEDLEMMER AF RETTIGHEDSGRUPPER - INTRODUKTION TIL SKOLERNES DIGITALE BLANKET FLOW Vi er glade for at kunne byde velkommen til opdateret

Læs mere

Opdatering af ISOWARE til version 6.1.0

Opdatering af ISOWARE til version 6.1.0 Opdatering af ISOWARE til version 6.1.0 September 2015 Indhold Kontaktoplysninger... 1 VIGTIGT... 2 Opdatering af trejdepartssoftware... 2 Opdatering til version 6.1.0.... 2 1. Backup af databasen... 3

Læs mere

Dynamisk hjemmeside: NeuTravel

Dynamisk hjemmeside: NeuTravel Dynamisk hjemmeside: NeuTravel Problemformulering I dette projekt ønsker vi at lave en uafhængig hjemmeside til brug af turister, som gerne vil læse neutral information (dvs. information der ikke er farvet

Læs mere

Indholdsfortegnelse. Indledning System krav side 1

Indholdsfortegnelse. Indledning System krav side 1 Indholdsfortegnelse Indledning System krav side 1 Brugerflade Hovedvindue side 2 Sprog side 2 Funktionsknapper side 2 Programmér kort side 3 Rapport side 4 Program menu Comport, login side 5 Rev.1.1 2014

Læs mere

Brug af Office 365 på din iphone eller ipad

Brug af Office 365 på din iphone eller ipad Brug af Office 365 på din iphone eller ipad Startvejledning Se mail Konfigurer din iphone eller ipad til at sende og modtage e-mail fra dit Office 365-konto. Se din kalender, uanset hvor du er Du kan altid

Læs mere

Dan Rolsted PIT. Side 1

Dan Rolsted PIT. Side 1 Side 1 Side 2 Indledning I denne vejledning vil der vises hvordan Office 365 opsættes på de forskellige platforme, herunder IOS (ipad) og Android (HTC One). Derudover vil der også være vejledning til Windows

Læs mere

EVALUERING I SURVEYXACT TRIN FOR TRIN

EVALUERING I SURVEYXACT TRIN FOR TRIN EVALUERING I SURVEYXACT TRIN FOR TRIN LÆR AT TACKLE 2015 KOMITEEN FOR SUNDHEDSOPLYSNING 1 INDLEDNING Komiteen for Sundhedsoplysning stiller SurveyXact et internetbaseret redskab til kvalitetssikring til

Læs mere

Dalux Field Brugermanual Registrering og oprette opgaver

Dalux Field Brugermanual Registrering og oprette opgaver Dalux Field Brugermanual Registrering og oprette opgaver Dalux Field Brugermanual Registrering og oprette opgaver Side 1 af 14 Indholdsfortegnelse Om denne brugermanual... 3 Registrering af bruger... Error!

Læs mere

MANUAL. Siteloom CMS

MANUAL. Siteloom CMS MANUAL Siteloom CMS www.hjerteforeningen.dk/cms Brugernavn: Password: 13. marts, 2014 BASIS FUNKTIONER 1. Kalender... 4 1.a. Opret... 5 1.b. Rediger eller slet... 9 2. Sider...12 2.a. Opret side...13 2.b.

Læs mere

Undervisning Version 1.0 redigering af billeder til hjemmesiden

Undervisning Version 1.0 redigering af billeder til hjemmesiden Undervisning Version 1.0 redigering af billeder til hjemmesiden Nødvendigheden for at almindelig god bruger til edb. Her taler jeg ikke om at blive en superbruger men bare en bruger der styr på almindelig

Læs mere

Programmering I Java/C#

Programmering I Java/C# Programmering I Java/C# Dit første projekt Datatekniker Intro to C# C# (C Sharp) Et enkelt, moderne, generelt anvendeligt, objektorienteret programmeringssprog Udviklet af Microsoft, ledet af danskeren

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

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

Denne vejledning er optimeret til Windows XP, men kan også bruges til de andre Windows styresystemer.

Denne vejledning er optimeret til Windows XP, men kan også bruges til de andre Windows styresystemer. Guiden min første backup Trin 2.1 Log på Når du har installeret din DATABOKS fjern-backup manager, vil dit log-ind vindue automatisk komme frem (Du kan få hjælp til at installere din DATABOKS fjern-backup

Læs mere

10 gode grunde. - derfor skal du vælge Office365

10 gode grunde. - derfor skal du vælge Office365 10 gode grunde - derfor skal du vælge Office365 1. Bedre samarbejde på tværs af lokationer En stor del af arbejdsstyrken tilbringer i dag langt mere tid væk fra deres kontor end hidtil. Dine ansatte kan

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

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

ExtraNet. Sider beskyttet med kodeord i OLO

ExtraNet. Sider beskyttet med kodeord i OLO ExtraNet Sider beskyttet med kodeord i OLO Side 1 af 16 For brugeren af din hjemmeside Fra forsiden kan du indsætte en knap, som henviser til en side, som kræver en kode. Side 2 af 16 Login er nødvendigt

Læs mere

WinDCCD Brugervejledning. Indhold. Adgangskontrol...2

WinDCCD Brugervejledning. Indhold. Adgangskontrol...2 Indhold Adgangskontrol...2 WinDCCD Hovedmenu...3 Information på tværs...3 Opret generel information...3 Slet generel information...3 Patienter...4 Patienter...4 Sådan filtrerer du data...4 Sådan redigerer

Læs mere

Easy Guide i GallupPC

Easy Guide i GallupPC Easy Guide i GallupPC Version. 6.00.00 Gallup A/S Masnedøgade 22-26 DK 2100 København Ø Telefon 39 27 27 27 Fax 39 27 50 80 Indhold SÅDAN KOMMER DU I GANG MED AT ANVENDE GALLUPPC... 2 TILFØJELSE AF UNDERSØGELSER

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