Elaboration fase 2. semester projekt 2008-04-11. Gruppe 4

Relaterede dokumenter
Views etc. Databaser

IDAP manual Analog modul

3. SEMESTER 2. PROJECT MULB Gruppe september 2015

ITO Problemformulering Indledning Organisation og Ledelse Generel beskrivelse af logistik og produktionssystemer...

Assignment #5 Toolbox Contract

En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin

Indholdsfortegnelse resultat- & kritikprogrammet.

Begrænsninger i SQL. Databaser, efterår Troels Andreasen

MODUL 2 ASSIGNMENT 3 PHP/DB SYSTEM 9. OKTOBER 2016

Projekt titel. Projekt navn. Gruppe medlemmer. Klasse/Gruppenummer. Databaseprojekt 1. Ferrari

Vejledning til fravær i Tabulex TEA

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

DMX styring med USB-interface

Projekt database. 3 Semester - Mul a Projekt 1. Yaser Osman cph-mo102@cphbusiness.dk. Dan Eskildsen cph-de32@cphbusiness.dk

Whitepaper. Projektstatus, fasestatus og projektstadier. Indledning 2 Projektstatus og projektstadier 2

Indhold. Side 2 af 26

Projekt 1 Database. Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e, gruppe 1

WebGT Graveansøgning. Brugervejledning. 25. september Udgave 1.0

Software Design (SWD) Spørgsmål 1

Database. Pr jekt. Hold CLmul-a14e Gruppe 3 3. semester Vejledere: Tue Becher Ivan R. Frederiksen

Digitale værktøjer til hverdagsrehabilitering Prototype

Vejledning til Blackboards portfolio værktøj

Workshop Persistence

3.0 Velkommen til manualen for kanalen Shift Introduktion til kanalen Hvad er et spot? Opret et nyt spot 2

Eksempel: et ordresystem note 5 Lagdeling s. 1

3. semester, 2. projekt: Database

Udbud.dk Brugervejledning til leverandører

Use cases IT Projekter Generelt Oprette IT Projekt Generelt Oprette IT Projekt Synlighed og type projekt... 3

En Kort Introduktion til Oracle

Eksamensadministration, EUD, udtrækning af elever Sidst opdateret /version 1.3 /UNI C/Steen Eske Christensen

Databasesystemer. IT Universitetet i København 16. januar 2006

POST IT! Cph Business Academy Multimediedesign 2. Semester flow april Kirstine Marie Rasmussen cph-

Whitepaper. Ressourcegrupper 3 Adgang til tidsregistrering på overordnet niveau 3 Effektivisering af allokering til de enkelte faser 3

RefWorks Workshop Medicinsk Bibliotek Aalborg Universitetshospital. Oprettelse af konto/log in RefWorks-databasen... 2

Indholdsfortegnelse. 1. Installation af LØN Introduktion til LØN Indtastning af lønseddel Udskrifter...

Introduktion. Unifaun Online

Det nye husdyrgodkendelse.dk Sagsbehandlermodulet. 3. Kommunikation med ansøger

Novotek Planning Systems A/S 2013 Version 1.0 Jan 2013 ROB-EX 4.2

Abstrakte datatyper C#-version

Database optimering - Indeks

FSFI s guide til DFR s elektronisk bevissystem

Databasesystemer. IT Universitetet i København 7. juni 2005

SPSS introduktion Om at komme igang 1

Gruppe nr. MULB2, Multimediedesign 3. semester hold B. Tue Becher Jesper Hinchely

KAPITEL 8: OPRETTELSE OG ADMINISTRATION AF DOKUMENTGODKENDELSE

Vejledning til KOMBIT KLIK

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach 2002

Software Design (SWD) Spørgsmål 1

JEM1 LAB14. Journal. Jonas Lange, Martin Funding Fisker og Torben Porsgaard 11/4/2009

Automatisk Vandingssystem

Analyser uden GPS-positioner

Jayne Alice Jensen [Link til portfolio]

Test- og prøvesystemet De nationale test Brugervejledning for skoler. Brugervejledning Indledning Forberedelse

Anklagemyndighedens Vidensbase

Bevægelses analyse med SkillSpector. Version 1.0 Sidste opdatering: 14/

SmartAir TS1000. Daglig brug

// Mamut Business Software Installationsguide: Basis

Sidste forelæsning. Jacob Aae Mikkelsen. 28. april 2013 IMADA. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28.

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

0KAPITEL 5: DOKUMENTGODKENDELSE OPSÆTNINGSVEJLEDNING

1-1 Usability evaluering af den simple udgave

JAR nyhedsbrev fra Region Nordjylland

Formål Dokumentet beskriver hvordan brugere i brugerkontrollisten bliver godkendt.

Databaseadgang fra Java

Udskrivning og sletning af tilbageholdte job Genkendelse af formateringsfejl Kontrol af udskriftsjob Reservation af udskriftsjob

Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4

Betjeningsvejledning. for. UniRace

Symantec Enterprise Vault

Linket viser jer frem til billedet nedenfor, her skal du blot skrive jeres brugernavn og adgangskode. Indtast din adgangskode her:

Netprøver.dk. Brugervejledning til Eksamensansvarlige

Vejledning: Oprettelse af en læringsaktivitet - E-læring

BRUGERVEJLEDNING. Socialpædagogernes Landsforbund Brolæggerstræde København K Tlf.: sl@sl.dk

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

Maskiner kan oprettes på 3 måder: Fra Købsordre Fra Salgsordre (indbyttede maskiner) Fra maskinkortet

Opret fase og forureningsomfang

DPSD undervisning. Vejledning til rapport og plan opsætning

Indholdsfortegnelse. Indholdsfortegnelse.. side 2. Adgang til webgraf 3. Opslag adresse Styring af layout.. 5. Zoom funktioner..

Brugermanual til Ventelistelukning.

Maskiner kan oprettes på 3 måder: Fra købsordre Fra salgsordre (indbyttede maskiner) Fra maskinkortet

Manual og Hjælp Skoletasken 2

Moltrup-sogn.dk - Vejledning i redigering af undersider, og oprettelse af nye sider.

Vagtplan Version 4.0. Kom-godt-i-gang-vejledning. Aktiviteter og Kvalifikationer

OUTLOOK: Af Tine Nøhr Stenild

IDAP manual Emission

DOCUMENTATION FULLY DRESSED USE-CASE. 29. oktober 2012 [ TEMA PERSISTENS DOKUMENTATION] Use-case: Process Order

Billedgalleri. Sitecore Foundry juli Version 1.2

Katrines Kælder Kasseapparat

NAVOKAT 2014 Kom godt i gang

Netkalenderen.dk. Vejledning. - til din private kalender på Internettet.

Versionsbrev. LUDUS version Den 5. marts J.nr V

DATABASE Projekt 1-3. semester

Servicebrev BørneIntra 2.14 (Web og App)

RUTruteplanlægningsvejledning. Folkekirkens Nødhjælp Sogneindsamling 2015

Database "opbygning"

DATO DOKUMENT SAGSBEHANDLER MAIL TELEFON. 17. december 2015 Version 1.2 JobManager supporten

Symantec Enterprise Vault

Opdatering i tabellen

Transkript:

Indholdsfortegnelse Analysemodeller... 4 Domænemodel... 4 ER-model... 5 Designmodeller... 7 Designklassediagram... 7 Sekvensdiagram... 9 Relationel model... 10 Diskussion af datastrukturer, algoritmer og patterns... 10 Use Cases... 12 Fully dressed use-case: Annuller opgave... 12 Fully dressed use-case: Rediger kompetenceprofil... 13 Fully dressed use-case: Evaluér medarbejder... 14 Opret opgave... 15 CRUD kunde delt op:... 16 C Kunde... 16 R Kunde... 17 U Kunde... 18 D Kunde... 19 Revurder kunde... 20 Rediger udviklingsprofil... 21 Fully dressed use-case: Create ansat... 22 Fully dressed use-case: Update ansat... 23 Fully dressed use-case: Delete ansat... 24 Generer statistik (R)... 25 Annuller projekt (U)... 26 Blackbox test med skærmdumps... 28 Status for elaboration... 32 Plan for 1. iteration af Construction fasen... 33 SQL-scripts... 34 Source kode... 37

Indledning Vores systen opererer med en opgave og et projekt. En opgave er den tilstand et projekt er i før det bliver "oprettet"; en opgave indeholder de kompetencer og antal ansatte som et projekt behøver - denne opgave bliver udstedt til en projektleder - det er så projektlederens ansvar at tildele opgaven ansatte og oprette projektet. Projektlederen vil automatisk få de ansatte som har de givne kompetencer en opgave behøver - herved bliver oprettelsen af projekter nemmere. 2

Kravmodel I løbet af elaboration fasen har vi fundet ud af, at visse af vores usecases kunne sammenkobles. Dvs. vores kravmodel er ændret på den front, men formål, mål og krav forbliver de samme. Formål: F1. Styrke virksomhedens strategiske arbejde med kompetenceudvikling. F2. Effektiviserer arbejdsfordelingen til projekter. F3. Mindske spild af kompetencer. F4. Styrke kunderelationer. Mål: M1. Processen for udvælgelse af arbejdskraft til givne projekter effektiviseres og letter arbejdsbyrden for projektchefen. F2 M2. Gør det lettere at overvåge de enkelte medarbejderes kompetencer og udviklings profil. F2 M3. Medarbejdere kommer på de projekter der passer til deres kompetencer og udviklingsprofil. F3, F2, F1 M4. Fordelingen af arbejdskraft til de forskellige kunder, i virksomhedens 3 prioriteringsgrupper. F4 M5. Statistisk oversigt over arbejdskraft. F1, F2, F3 M6. Håndterer kunder og inddel dem i virksomhedens 3 prioriterings-grupper. F4 Krav: K1. Systemet skal kunne vurdere om der er ressourcer til et givent projekt. M1 K2. Systemet skal kunne generere en (potentiel) projektleder liste. M1 K3. Systemet skal kunne generere en kompetenceliste over mulige medarbejdere til projektet. M1, M3 K4. Systemet opretter projekt og allokerer og reserverer ressourcer, samt gemmer informationer om projektet og projektlederne (navn, tidligere erfaringer etc.) til brug af kontraktskrivning. M1, M3, M5 K5. Systemet skal kunne gemme/opdaterer kompetence og udviklingsprofil(-plan) for hver medarbejder. M2, M5, K6. Systemet skal løbende generere statistik på basis af kompetencer, og kunne fabrikere liste over knappe kompetencer, samt forventede kompetencer til brug for ansættelser. M2, M5 K7. Systemet skal kunne fjerne allokering af ressourcer hvis kontrakten bliver afvist. M1 K8. Systemet skal indeholde evalueringer for hver medarbejder. M2, M5 K9. Systemet skal indeholde en kundeliste, der skal kunne redigeres. M4, M6 K10. Systemet skal kunne håndtere medarbejdernes ønsker om hvilke dele af kompetence/udviklings-profilen der skal fokuseres på. M2, M5 K11. Slet midlertidig opgave. M1 K12. Opret midlertidig opgave. M3 Use Case: UC1. Annuller projekt. K7 UC2. Annuller opgave. K11 UC3. Generér ledig- og kompetente medarb. liste. K1, K3 UC4. Redigér udviklingsprofil. K5, K10 UC5. Redigér kompetenceprofil. K5 UC6. Opret projekt. K4 UC7. CRUD kunde. K9 3

UC8. Evaluér medarbejder. K8 UC9. Opret opgave. K12, K2 UC10. Revurder kunde. K9 UC11. Årets medarbejder. K5, K6, K8 UC12. CRUD ansat. K5, K8, K10 Analysemodeller Domænemodel 4

ER-model En meget basal ER-model af opret projekt use casen. 5

Arkitekturmodel Vores system benytter sig gennemgående af arv (inheritance) - dette mindsker antallet af lister - og bringer dermed koblingen ned på et lavere niveau - samlet set. Vi har valgt at implementere Singletonpattern på nogle af de lister hvor vi fandt det naturligt. Vi bruger endvidere også Fowlers concept med en DataMapper. Vi har en Facade som kender alle vores mappere - denne facade er kendt af de lister som benytter en mapper. En form af Composit-pattern er bliver også brugt, da vores ansatte kan indeholde en liste over dem selv og alle andre ansatte - alt dette foregår via vores arv (inheritance). Vi har en "Controller" for hver af vores aktører - projektleder, projektchef, sælger og medarbejder; dvs. GRASP controller. Vores liste følger også princippet "Creator" i GRASP-pattern og dvs. at vores eks. B klasse har ansvaret for oprettelse af en instans af A hvis B aggregerer A objekter. 6

Designmodeller Designklassediagram 7

8

Sekvensdiagram Sekvens; Vi opererer med et begreb vi kalder for "projekt-oprettelses-tilstand" - dette betyder reelt at et projekt bliver oprettet så snart en projektleder vælger en opgave han vil gøre til et projekt. Hvis dette projekt i "oprettelses-tilstand" bliver færdiggjort/godkendt af projektlederen bliver projektet gemt og skrevet til database. Denne process gør det nemmere at tilknytte en ansat med en tilhørende kompetence til vores projekt. 9

Relationel model Diskussion af datastrukturer, algoritmer og patterns Vi har valgt at implementerer arv (inheritance) i vores system. Grunden til dette er primært at vi fandt det smartest at have en ansatliste - som indeholder ALLE ansatte i virksomheden. Hvis arv ikke var implementeret ville der have været højere kobling, da flere lister ville være tilstede i systemet. Vi synes klart det var et plus med én liste over alle ansatte - denne liste er hermed polymorfisk. På plus-siden kan det også nævnes at en projektleder skal kunne deltage i et projekt, ligesom normale medarbejdere, og ved en polymorfisk liste er dette nemmere - da man muligvis ellers skulle flette en projektleder-liste sammen med en medarbejder-liste. På minussiden kan det nævnes at det i sidste ende vil kræve flere resourcer at sorterer listen, udfra stilling, hvis virksomheden har rigtig mange ansatte. Vi valgte vores implementering med arv med den antagelse at dette stykke software ville blive brugt af en mindre virksomhed. En anden implementering som vi har ændret siden vores første iteration er kompetence- og udviklingsprofilen. Vi antog at det ville være mere fornuftigt at slå disse to lister sammen til en liste der indeholdte både udviklingskompetencer og reelle kompetencer - men med en boolean som angiver om kompetencen er et udviklingsønske - igen vil dette kræve mere sortering, men mindske koblingen i systemet. En kompetence vil således være "wrappet" i et lompetence-wrapper-objekt som indeholder kompetencen selv og en boolean der angiver om kompetencen er et udviklingsønske. Vi har således også testet vores sorterings algoritmer med ti-tusinde kompetencer der skulle sorteres 10

- og resultatet var at selv en forholdsvis gammel computer ikke har nogen problemer med sorteringen. I vores nuværende design benytter vi os overordnet af ArrayList som data-struktur. Valget er faldet på denne, da den giver mest mening som systemet er nu. Hvis systemet skal kunne håndtere meget store mængder brugere kunne man overveje og bruge et Hash-map/table - implementerigen vil være nem - man kunne herved opnå lineær søgetid. Patterns vi har brugt: Tre-lags arkitektur (GUI-, Domæne- og Data-lag) GRASP patterns (Controller, Creator) Singleton-pattern DataMapper-pattern En variant af Composit-pattern 11

Use Cases Fully dressed use-case: Annuller opgave Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Special Requirements Technology and Data Variations list Frequency of occurrence Misc. Comment Annuller opgave IT-system til Solution Makers A/S Subfunction Projektchef - Projektchefen skal kunne annullere en opgave *Der er en projektchef *Der er en opgave *Projektchefen er klar til at bruge systemet *Projektchefen er klar til at annullere et projekt *Der er ikke nok medarbejdere i virksomheden *Der er ikke medarbejdere med nødvendige kompetencer nok Opgaven bliver mærket som annulleret og gemt i systemet til statistik 1. Projektchef vælger annuller-opgave-delen 2. Projektchef vælger hvilken opgave han vil annullere 3. Systemet annullerer opgaven *a. På hvilket givent tidspunkt kan projektchefen lukke programmet 1. Projektchefen lukker programmet *b. På hvilket givent tidspunkt kan projektchefen vælge at afbryde at annullere en opgave 2a. Projektchef vælger ikke en opgave 1. Projektchef vælger ikke en opgave 3. Projektchef vælger en opgave 3a. Systemet kan ikke annullere opgaven 1. Systemet kan ikke annullere opgaven 3. Projektchefen kontakter administrator - Brugeren skal vide hvordan man bruger programmet 12

Fully dressed use-case: Rediger kompetenceprofil Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Special Requirements Technology and Data Variations list Frequency of occurrence Misc. Comment Rediger kompetenceprofil IT-system til Solution Makers A/S User-goal Projektchef - Projektchefen skal kunne redigere informationerne på en given ansats kompetenceprofil *Der er en projektchef *Projektchefen er klar til at bruge systemet *Den ønskede ansat er i systemet samt hans kompetenceprofil Den ansattes informationer bliver hentet, derefter redigeret af projektchefen og til sidst bliver ændringerne gemt igen af systemet 1. Projektchef vælger rediger kompetenceprofil-delen 2. Projektchef vælger hvilken ansattes kompetenceprofil han vil redigere 3. Systemet viser den ansattes nuværende kompetenceprofil 4. Projektchef redigerer de ønskede data 5. Projektchef vælger at han er færdig med redigering 6. Systemet gemmer de ændrede data *a. På hvilket givent tidspunkt kan projektchefen lukke programmet 1. Projektlederen lukker programmet *b. På hvilket givent tidspunkt kan projektchefen vælge at afbryde redigeringen af den ansattes kompetenceprofil 1. Projektchefen afbryder redigering 2a. Projektchef vælger ikke en ansat 1. Projektchef vælger ikke en ansat 3. Projektchef vælger en ansat 3a. Systemet kan ikke finde den valgte ansatte 1. Systemet kan ikke finde den valgte ansatte 3. Projektleder kontakter administrator 6a. Systemet kan ikke gemme data 1. Systemet kan ikke gemme de redigerede data 3. Projektleder kontakter administrator - Brugeren skal vide hvordan man bruger programmet 13

Fully dressed use-case: Evaluér medarbejder Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Special Requirements Technology and Data Variations list Frequency of occurrence Misc. Comment Evaluér medarbejder IT-system til Solution Makers A/S User-goal Projektleder - Projektleder skal kunne oprette en evaluering af en ansat *Projektlederen er klar til at bruge systemet *Projektlederen er klar til at evaluere en ansat *Der er en projektleder *Der er et afsluttet projekt Evaluerings rapport bliver oprettet og gemt i systemet 1. Projektleder vælger evaluerings-delen 2. Projektleder vælger hvilken ansat han vil evaluere 3. Projektleder skiver derefter rapport 4. Systemet gemmer rapporten *Projektleder gentager trin 2 til 3 indtil han har oprettet rapporter for de ønskede ansatte *a. På hvilket givent tidspunkt kan projektlederen lukke programmet 1. Projektlederen lukker programmet *b. På hvilket givent tidspunkt kan projektlederen vælge at afbryde en evaluering 1. Projektlederen annullerer evaluering 2a. Projektleder vælger ikke en ansat 1. Projektleder vælger ikke en ansat 3. Projektleder vælger en ansat 4a. Systemet kan ikke oprette evaluering 4. Systemet kan ikke oprette evaluering 5. Systemet signalerer fejl 6. Projektleder kontakter administrator - Brugeren skal vide hvordan man bruger programmet 14

Opret opgave Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Comment Opret opgave IT-system til Solution Makers A/S Kunde Projektchef - Projektchef skal kunne oprette en opgave med de nødvendige kompetencer tilknyttet. *Projektchef er klar til at bruge systemet *Projektchef er klar til at oprette en opgave *Der er en projektchef Opgaven bliver oprettet og gemt med de rigtige informationer. 1. Projektchef vælger kunde 2. Projektchef angiver navn 3. Projektchef angiver dato 4. Projektchef vælger projektleder 5. Projektchef angiver hvor mange ansatte der er brug for til projektet 6. Projektchef tilføjer de nødvendige kompetencer til opgaven 7. Systemet indikerer om der er nok ansatte med kompetencer i virksomheden, til løsning af projektet 8. Projektchef angiver beskrivelse af opgaven 9. Projektchef opretter opgaven 10. Systemet opretter opgaven *a. På hvilket givent tidspunkt kan projektchefen lukke programmet 1. Projektchefen lukker programmet *b. På hvilket givent tidspunkt kan projektchefen vælge at afbryde oprettelsen af en opgave 1. Projektchefen annullerer oprettelsen 1a. Projektchefen vælger ikke en kunde 4. Projektchef vælger ikke en kunde 5. Systemet signalerer fejl 6. Projektchef vælger en kunde 2a. Projektchef angiver ikke et navn 1. Projektchef angiver ikke navn 3. Projektchef angiver navn 3a. Projektchef angiver ikke dato 1. Projektchef angiver ikke dato 3. Projektchef angiver dato 4a. Projektchef vælger ikke projektleder 1. Projektchef vælger ikke projektleder 3. Projektchef vælger projektleder 8a. Systemet kan ikke oprette projektet 15

Special Requirements Technology and Data Variations list Frequency of occurrence Misc. 4. Systemet kan ikke oprette projekt 5. Systemet signalerer fejl 6. Projektchef kontakter administrator - Brugeren skal vide hvordan man bruger programmet CRUD kunde delt op: C Kunde Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Special Requirements Technology and Comment Create kunde IT-system til Solution Makers A/S Solution Makers A/S Sælger - Sælger skal kunne create en kunde *Sælger er klar til at bruge systemet *Sælger er klar til at create en kunde *Der er en sælger Kunden bliver create og gemt med de rigtige oplysninger 1. Sælger angiver navn 2. Sælger opretter kunde 3. Systemet creater kunde *a. På hvilket givent tidspunkt kan sælgeren lukke programmet 1. Sælgeren lukker programmet *b. På hvilket givent tidspunkt kan sælgeren vælge at afbryde create af en kunde 1. Sælgeren annullerer create 1a. Sælgeren angiver ikke et navn 1. Sælgeren angiver ikke et navn 3. Sælgeren angiver et navn 3a. Systemet kan ikke oprette kunde 1. Systemet kan ikke create en kunde 3. Sælgeren kontakter administrator - Brugeren skal vide hvordan man bruger programmet 16

Data Variations list Frequency of occurrence Misc. R Kunde Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Special Requirements Technology and Data Variations list Comment Reade kunde IT-system til Solution Makers A/S Solution Makers A/S Sælger - Sælger skal kunne reade en kunde *Sælger er klar til at bruge systemet *Sælger er klar til at reade kunden *Der er en sælger Kunden bliver vist med de rigtige oplysninger 1. Sælgeren vælger read -kunde-delen 2. Systemet viser en liste over alle kunder 3. Sælgeren vælger en kunde 4. Systemet udskriver kunden *a. På hvilket givent tidspunkt kan sælgeren lukke programmet 1. Sælgeren lukker programmet *b. På hvilket givent tidspunkt kan sælgeren vælge at afbryde reading af en kunde 1. Sælgeren annullerer reading 2a. Systemet kan ikke vise en liste over kunder 1. Systemet kan ikke vise en liste over kunder 3. Sælgeren kontakter administrator 3a. Sælgeren vælger ikke en kunde 1. Sælgeren vælger ikke en kunde 3. Sælgeren vælger en kunde 4a. Systemet kan ikke udskrive kunden 1. Systemet kan ikke udskrive kunde 3. Sælgere kontakter administrator - Brugeren skal vide hvordan man bruger programmet 17

Frequency of occurrence Misc. U Kunde Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Special Requirements Technology and Data Variations list Comment Update kunde IT-system til Solution Makers A/S Solution Makers A/S Sælger - Sælger skal kunne update en kundes oplysninger *Sælger er klar til at bruge systemet *Sælger er klar til at update en kunde *Der er en sælger Kunden bliver updated og gemt med de rigtige oplysninger 1. Sælgeren vælger en kunde 2. Sælgeren redigerer navn 3. Sælger redigerer kundegruppe *Sælgeren laver trin 2-3 indtil de nødvendige oplysninger er angivet 4. Sælgeren gemmer kunde 5. Systemet gemmer kunde *a. På hvilket givent tidspunkt kan sælgeren lukke programmet 1. Sælgeren lukker programmet *b. På hvilket givent tidspunkt kan sælgeren vælge at afbryde update af en kunde 1. Sælgeren annullerer update 2a. Sælgeren angiver ikke et navn 1. Sælgeren angiver ikke navn 3. Sælgeren angiver navn 3a. Sælgeren angiver ikke en kundegruppe 1. Sælgeren angiver ikke en kundegruppe 3. Sælger angiver en kundegruppe 5a. Systemet kan ikke gemme kunde 1. Systemet kan ikke gemme kunde 3. Sælgeren kontakter administrator - Brugeren skal vide hvordan man bruger programmet 18

Frequency of occurrence Misc. D Kunde Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Special Requirements Technology and Data Variations list Comment Delete kunde IT-system til Solution Makers A/S Solution Makers A/S Sælger - Sælger skal kunne delete en kunde *Sælger er klar til at bruge systemet *Sælger er klar til at delete en kunde *Der er en sælger Kunden bliver deleted 1. Sælger vælger delete-kunde-delen 2. Systemet viser en liste over kunder 3. Sælgeren vælger en kunde 4. Sælgeren deleter kunden *Sælgeren gentager trin 2-3 indtil det ønskede antal kunder er blevet deleted 5. Systemet deleter kunden fra databasen *a. På hvilket givent tidspunkt kan sælgeren lukke programmet 1. Sælgeren lukker programmet *b. På hvilket givent tidspunkt kan sælgeren vælge at afbryde delete af en kunde 1. Sælgeren annullerer delete 2a. Systemet kan ikke vise en liste over kunder 1. Systemet kan ikke vise en liste over kunder 3. Sælgeren kontakter administrator 3a. Sælgeren vælger ikke en kunde 1. Sælgeren vælger ikke en kunde 3. Sælger vælger en kunde 5a. Systemet kan ikke delete kunden 1. Systemet kan ikke delete kunden 3. Sælgeren kontakter administrator - Brugeren skal vide hvordan man bruger programmet 19

Frequency of occurrence Misc. Revurder kunde Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Comment Revurder kunde IT-system til Solution Makers A/S Solution Makers A/S Projektchef - Projektchef skal kunne revurdere en kundes kundegruppe *Projektchef er klar til at bruge systemet *Projektchef er klar til at revurdere en kunde *Der er en projektchef Kunden bliver tilknyttet den rigtige prioriteringsgruppe 1. Projektchefen vælger revurder-kunde-delen 2. Systemet viser en liste af kunder 3. Projektchefen vælger en kunde 4. Projektchefen angiver hvilken prioriteringsgruppe kunden tilhører *Projektchefen gentager trin 2-3 indtil det ønskede antal kunder er blevet revurderet 5. Projektchefen gemmer oplysningerne 6. Systemet gemmer oplysningerne *a. På hvilket givent tidspunkt kan projektchefen lukke programmet 1. Projektchefen lukker programmet *b. På hvilket givent tidspunkt kan projektchefen vælge at afbryde revurderingen af en kunde 1. Projektchefen annullerer revurderingen 2a. Systemet kan ikke vise en liste over kunder 1. Systemet kan ikke vise en liste over kunder 3. Projektchefen kontakter administrator 3a. Projektchefen vælger ikke en kunde 1. Projektchefen vælger ikke en kunde 3. Projektchefen vælger en kunde 4a. Projektchefen angiver forkert prioriteringsgruppe 1. Projektchefen angiver forkert prioriteringsgruppe 3. Projektchefen angiver rigtig prioriteringsgruppe 6a. Systemet kan ikke gemme kunden 1. Systemet kan ikke gemme kunde 3. Projektchefen kontakter administrator 20

Special Requirements Technology and Data Variations list Frequency of occurrence Misc. - Brugeren skal vide hvordan man bruger programmet Rediger udviklingsprofil Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Special Requirements Technology and Data Variations Comment Rediger udviklingsprofil IT-system til Solution Makers A/S Solution Makers A/S Ansat - Den ansatte skal kunne redigere sin udviklingsprofil *Den ansatte er klar til at bruge systemet *Den ansatte er klar til at redigere sin udviklingsprofil *Der er en ansat Den ansatte får sin udviklingsprofil redigeret til det ønskede 1. Den ansatte ser sin egen udviklingsprofil 2. Den ansatte redigerer sin udviklingsprofil til det ønskede 3. Den ansatte gemmer ændringerne 4. Systemet gemmer ændringerne *a. På hvilket givent tidspunkt kan den ansatte lukke programmet 1. Den ansatte lukker programmet *b. På hvilket givent tidspunkt kan den ansatte vælge at afbryde redigeringen af sin udviklingsprofil 1. Den ansatte annullerer redigeringen 1a. Systemet kan ikke finde den ansattes udviklingsprofil 1. Systemet kan ikke finde den ansattes udviklingsprofil 3. Den ansatte kontakter administrator 3a. Den ansatte gemmer ikke oplysningerne 1. Den ansatte gemmer ikke oplysningerne 2. Systemet gemmer ikke oplysningerne 4a. Systemet kan ikke gemme ændringerne 1. Systemet kan ikke gemme ændringerne 3. Den ansatte kontakter administrator - Brugeren skal vide hvordan man bruger programmet 21

list Frequency of occurrence Misc. Fully dressed use-case: Create ansat Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Special Requirements Technology and Data Variations list Frequency of occurrence Comment Create ansat IT-system til Solution Makers A/S Projektchef - At ansætte ansatte *Projektchef er klar til at bruge systemet *Projektchef er klar til at oprette en ansat En ansat bliver oprettet med de rigtige data 1. Projektchef vælger at CRUD ansat-delen 2. Projektchef angiver ansattes navn 3. Projektchef angiver ansattes rang 4. Projektchef opretter ansatte 5. Systemet opretter ansatte *Projektchef gentager trin 2-4 indtil de ønskede antal ansatte er oprettet *a. På hvilket givent tidspunkt kan projektlederen lukke programmet 1. Projektlederen lukker programmet *b. På hvilket givent tidspunkt kan projektlederen vælge at afbryde oprettelsen af et projekt 2a. Projektchef angiver ikke ansat navn 1. Projektchef angiver ikke ansat navn 3. Projektchef angiver ansat navn 3a. Projektchef angiver ikke ansat rang 1. Projektchef angiver ikke ansat rang 2. System signalerer fejl 3. Projektchef angiver ansat rang 5.a Systemet kunne ikke oprette ansat 1. Systemet signalerer fejl 2. Projektchef kontakter administrator - Brugeren skal vide hvordan man bruger programmet 22

Misc. Fully dressed use-case: Update ansat Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Special Requirements Technology and Data Variations list Comment Update ansat IT-system til Solution Makers A/S Projektchef - At opdaterer ansatte *Projektchef er klar til at bruge systemet *Projektchef er klar til at opdatere en ansat En ansat bliver opdateret med de rigtige data 1. Projektchef vælger at CRUD ansat-delen 6. Projektchef vælger en ansat 7. Projektchef angiver ansattes navn 8. Projektchef angiver ansattes rang 9. Projektchef opdaterer ansatte 10. Systemet opdaterer ansatte *Projektchef gentager trin 2-5 indtil de ønskede antal ansatte er opdaterede *a. På hvilket givent tidspunkt kan projektlederen lukke programmet 1. Projektlederen lukker programmet *b. På hvilket givent tidspunkt kan projektlederen vælge at afbryde oprettelsen af et projekt 2a. Projektchef vælger ikke en ansat 1. Projektchef vælger ikke en ansat 3. Projektchef vælger en ansat 3a. Projektchef angiver ikke ansat navn 1. Projektchef angiver ikke ansat navn 3. Projektchef angiver ansat navn 4a. Projektchef angiver ikke ansat rang 1. Projektchef angiver ikke ansat rang 2. System signalerer fejl 3. Projektchef angiver ansat rang 6a. Systemet kunne ikke opdaterer ansat 1. Systemet signalerer fejl 2. Projektchef kontakter administrator 6b. Medarbejderen kunne ikke findes 1. Medarbejderen kunne ikke findes - Brugeren skal vide hvordan man bruger programmet 23

Frequency of occurrence Misc. Fully dressed use-case: Delete ansat Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Special Requirements Technology and Data Variations list Frequency of occurrence Misc. Comment Delete ansat IT-system til Solution Makers A/S Projektchef - At slette ansatte *Projektchef er klar til at bruge systemet *Projektchef er klar til at slette en ansat En ansat bliver opdateret med de rigtige data 1. Projektchef vælger at CRUD ansat-delen 11. Projektchef vælger en ansat 12. Projektchef sletter den ansatte 13. Systemet sletter den ansatte *Projektchef gentager trin 2-3 indtil de ønskede antal ansatte er slettede *a. På hvilket givent tidspunkt kan projektlederen lukke programmet 1. Projektlederen lukker programmet *b. På hvilket givent tidspunkt kan projektlederen vælge at afbryde oprettelsen af et projekt 2a. Projektchef vælger ikke en ansat 1. Projektchef vælger ikke en ansat 3. Projektchef vælger en ansat 4a. Den angivne ansatte kunne ikke findes 1. Angive ansatte kunne ikke findes 4. System signalerer fejl 5. Projektchef kontakter administrator 4b. Den angivne ansatte kunne ikke slettes 1. Systemet signalerer fejl 2. Projektchef kontakter administrator - Brugeren skal vide hvordan man bruger programmet 24

Generer statistik (R) Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Success Guaranatee Main Success Scenario Extensions Special Requirements Technology and Data Variations list Comment Generer statistik (R): IT-system til Solution Makers A/S Projektchef Projektchef - Projektchefen skal kunne få et statistisk overblik over kunder, opgaver, projekter, medarbejder og kompetencer. *Der er en projektchef *Der findes nok relevant data i databasen Statistik bliver generet ud fra relevant data hentet fra databasen. 4. Projektchefen vælger generer statistik-delen 5. Systemet returnere en liste over emner 6. Projektchefen vælger hvilket emne han vil se statistik over 7. Systemet henter relevant data 8. Systemet udarbejder statistik 9. Systemet returnere statistisk data. * Projektchefen gentager trin 3 om nødvendigt *a. På hvilket givent tidspunkt kan projektlchefen lukke programmet 3. Projektchefen lukker programmet 2. Systemet returnere ikke nogen emner 4. Systemet returnere ikke nogen emner 5. Projektchef kontakter administrator 3a. Projektchefen vælger ikke et emne 2. Projektleder vælger ikke et emne 3. Systemet signalerer fejl 4. Projektleder vælger et emne 3b. Projektchefen vælger et emne der ikke findes 14. Projektleder vælger et emne der ikke findes 15. Systemet signalerer fejl 16. Projektleder vælger et emne der findes 5. Systemet kan ikke hente data 2. Systemet kan ikke hente data 3. Systemet signalerer fejl 4. Projektchef kontakter administrator 6. Systemet returnere ikke data 4. Systemet returnere ikke data 5. Systemet signalerer fejl 6. Projektchef kontakter administrator 6. Brugeren skal vide hvordan man bruger programmet 25

Frequency of occurrence Misc. Annuller projekt (U) Use Case Section Use case name Scope Level Primary actor Stakeholders and interests Preconditions Comment Annuller projekt (U): IT-system til Solution Makers A/S Projektchef Projektchef 3. Projektchefen skal kunne annullere et projekt *Der findes et projekt *Der findes en projektleder *En projektleder skal have et projekt *Der findes en projektchef Success Guaranatee Main Success Scenario Extensions Projektet bliver annulleret og resourcerne fra projektet bliver frigivet 2. Projektchefen vælger annuller-projekt-delen 3. Systemet returnere en liste over alle projektledere 4. Projektchefen vælger projektleder 5. Systemet returnere den valgte projektleders projekter. 6. Projektchefen vælger et projekt 7. Systemet returnere information om det valgte projekt 8. Projektchefen annullerer projekt 9. Systemet beder om bekræftelse 10. Projektchefen bekræfter at han vil annullere projektet 11. Systemet frigiver projektets resourcer 12. Systemet annullere projektet 13.Systemet bekræfter at projektet er blevet annulleret *Projektchefen kan gentage trin 3 9 om nødvendigt. *a. På hvilket givent tidspunkt kan projektchefen lukke programmet 1. Projektchefen lukker programmet *b. På hvilket givent tidspunkt kan projektchefen vælge at afbryde annullering af et projekt 1. Projektchefen afbryder annullering af projektet 2. Systemet finder ikke nogen projektledere 4. Systemet finder ikke nogen projektledere 5. Systemet signalerer fejl 6. Projekchefen afbryder annullering af projekt 3. Projektchefen vælger en projektleder der ikke findes 2. Projektchefen vælger en projektleder der ikke findes 3. Systemet signalerer fejl 4. Projekchefen vælger en projektleder der findes 26

4. Den valgte projektleder har ikke nogen projekter 1. Den valgte projektleder har ikke nogen projekter 2. Projektchef afbryder annullering af projekt 6. Systemet returnere ikke information om valgte projekt 1. Systemet returnere ikke information om valgte projekt 3. Projektchef kontakter administrator 9. Projektchefen bekræfter ikke annullering 1. Projektchefen bekræfter ikke annullering 2. Systemet afbryder annullering af projekt 3. Systemet signalerer fejl 4. Projektchef kontakter administrator 10. Systemet frigiver ikke projektets resourcer 1. Systemet frigiver ikke projektets resourcer 2. Systemet afbryder annullering af projekt 3. Systemet signalerer fejl 4. Projektchef kontakter administrator 11. Systemet annullere ikke projektet 1. Systemet annullere ikke projektet 3. Projektchef kontakter administrator 12. Systemet bekræfter ikke annullering af projekt 1. Systemet bekræfter ikke annullering af projekt 3. Projektchef kontakter administrator 27

Special Requirements Technology and Data Variations list Frequency of occurrence Misc. - Brugeren skal vide hvordan man bruger programmet Blackbox test med skærmdumps Her er et par blackbox tests. Pilene viser hvilken del af GUI der bliver anvendt og nummeret viser hvilken rækkefølge tingene bliver udført. I screendumpet ovenover kan vi se hvordan en projektleder vælger en opgave. Når en opgave vælges forudser vi at alle kompetente medarbejdere, der er til rådighed (ikke på et andet projekt på samme tid) vil blive udskrevet i vinduet længst til venstre. 28

Som forudset henter vores program alle de kompetene medarbejdere der er til rådighed. Nu vil vi teste om programmet midlertidigt kan tilføje en ansat til projektet. Det gøres ved først at vælge en medarbejder fra kompetente listen, og derefter vælge en af de kompetencer han/hun har. Derefter trykkes på tilføj medarbejder knappen. Vi forudser at medarbejderen Tobias Kjeldsen vil blive lagt over i udvalgte listen, samt at de to status bar'er nede til venstre begge vil vise at 1 medarbejder er blevet tilføjet, og at han er blevet tilføjet til projetet som en assistent. Desuden vil medarbejderen Tobias Kjeldsen ikke være at se i kompetente listen mere. 29

30

Som vi havde forudset er medarbejderen nu tilføjet til projektet. Vi har nu tilføjet nok medarbejdere til at oprette selve projektet. Ved at trykke på Opret projekt på baggrund af opgave knappen, burde et projekt med de valgte medarbejdere blive gemt i databasen. I databasen vil vi også kunne se på hvilken baggrund en medarbejder er blevet tilføjet (kompetence og assistent etc.). Opgaven vil desuden blive fjernet fra opgavelisten (dropdown boksen) da det nu er blevet oprettet som et projekt. 31

Som man kan se er projektet blevet tilføjet til databasen. Ansatte er vedhæftet projektet via projektdetaljer tabellen. Status for elaboration Vi har implementeret "Opret opgave" med tilhørende forbindelse til database. Der er mulighed for at gemme et projekt på database, samt at hente ansatte fra database. Alt dette er implementeret via vores mappere. Vores database er desuden også implementeret. 32

Vi har ikke implementeret interfaces endnu - dette regner vi med at gøre i Construction-fasen. Der er flere ting vi overvejer at ændre på så snart vi kommer i Construction-fasen - små ændringer. Vores ide med en opgave og projekt for sig selv har vi revurderet og overvejer at slå vores opgave og projekt sammen til en entitet. Når vi ser tilbage på elaboration fasen kan vi konkludere, at vi skulle have valgt en mindre kompleks use case at implementere. Vi har fået kodet for meget og selve use casen dækker for meget af systemet til at kunne klares i elaboration. Ydermere misforstod vi dummy-data delen, eftersom vi troede at dummy-data var en god ting at bruge til at supplere ens use case med, i java-kode, i stedet for direkte dummy-data i databasen. Men vi nåede dog at få det meste af databasen med. Plan for 1. iteration af Construction fasen Vi uddelegerer de opgaver der er højst prioriteret. 33

SQL-scripts /* dropper "gamle" tabels */ drop table opgavedetaljer; drop table projektdetaljer; drop table evaluering; drop table ansatdetaljer; drop table kompetence; drop table projekt; drop table opgave; drop table ansat; drop table kunde; drop table kundegruppe; drop table rang; drop sequence counter; /* laver sequence som bruges til auto inkrementering af id'er */ create sequence counter start WITH 1 increment BY 1; /* tabels bliver lavet */ create table kundegruppe (kugid int, sats int, primary key(kugid) ); create table kunde (kuid int, kunavn varchar(50) not null, kugid int not null, version int, primary key (kuid), foreign key(kugid) references kundegruppe(kugid) ); create table rang (rid int, rnavn varchar(50) not null, primary key(rid) ); create table ansat (aid int, anavn varchar(50) not null, rid int not null, version int, primary key(aid), foreign key(rid) references rang(rid) ); create table opgave (oid int, onavn varchar(50) not null, obeskrivelse varchar(1000), 34

startdato numeric(15) not null, slutdato numeric(15) not null, kuid int not null, aid int not null, primary key(oid), foreign key(kuid) references kunde(kuid), foreign key(aid) references ansat(aid) ); create table projekt (pid int, pnavn varchar(50) not null, pbeskrivelse varchar(1000), startdato numeric(15) not null, slutdato numeric(15) not null, kuid int not null, aid int not null, primary key(pid), foreign key(kuid) references kunde(kuid), foreign key(aid) references ansat(aid) ); create table evaluering (pid int not null, aid int not null, enavn varchar(50) not null, indhold varchar(1000) not null, foreign key(pid) references projekt(pid), foreign key(aid) references ansat(aid), primary key(aid, pid) ); create table kompetence (kid int, knavn varchar(50) not null, primary key(kid) ); create table ansatdetaljer (aid int not null, kid int not null, udvikling int check (udvikling in ('1', '0')) not null, foreign key(aid) references ansat(aid), foreign key(kid) references kompetence(kid), primary key(aid, kid, udvikling) ); create table opgavedetaljer ( oid int not null, kid int not null, foreign key(oid) references opgave(oid), foreign key(kid) references kompetence(kid) ); create table projektdetaljer ( pid int not null, aid int not null, 35

kid int not null, foreign key(pid) references projekt(pid), foreign key(aid) references ansat(aid), foreign key(kid) references kompetence(kid), primary key(pid, aid, kid) ); /* test "dummy" data */ insert into rang values (1, 'Projektchef'); insert into rang values (2, 'Projektleder'); insert into rang values (3, 'Medarbejder'); insert into rang values (4, 'Saelger'); insert into kompetence values (1, 'Java'); insert into kompetence values (2, 'C++'); insert into kompetence values (3, 'C#'); insert into ansat values (1, 'Lars Wolter', 2, 1); insert into ansat values (2, 'Tobias Kjeldsen', 3, 1); insert into ansat values (3, 'Rasmus Seye', 3, 1); insert into ansatdetaljer values (1, 1, 0); insert into ansatdetaljer values (2, 1, 0); insert into ansatdetaljer values (2, 2, 1); insert into ansatdetaljer values (3, 3, 0); insert into kundegruppe values (1, '20'); insert into kundegruppe values (2, '40'); insert into kundegruppe values (3, '60'); insert into kunde values (1, 'e-commerce', 1, null); insert into kunde values (2, 'Toyota', 2, null); 36

Source kode Findes på de vedlagte sider 37