DB Flow. fra prototype til forretningsplan

Save this PDF as:
 WORD  PNG  TXT  JPG

Størrelse: px
Starte visningen fra side:

Download "DB Flow. fra prototype til forretningsplan"

Transkript

1 DB Flow fra prototype til forretningsplan

2 ii

3 Institut for Datalogi Selma Lagerlöfs Vej Aalborg Øst Telefon: (45) Telefax: (45) Titel: DB Flow fra prototype til forretningsplan Tema: Programmeringsteknologi Projekt periode: DAT7, efterår 2007 Projekt gruppe: dat7e071 Gruppe medlemmer: Jacob Volstrup Vejleder: Kurt Nørmark Bi-vejleder: Henrik Knudsen Synopsis: I denne opgave har jeg set på hvad der skal til for at planlægge den proces, der skal til for at gå fra en software prototype, til et færdigt produkt. Herunder har jeg klarlagt mulighederne for at kommercialisere produktet DB Flow, og som en del af dette lavet en milepælsplan og tilhørende tidsplan, som skal bruges i den videre udvikling af DB Flow. Da der var usikkerheder omkring kundegrundlaget blev dele af forretningsplanen baseret på estimater, for at vise at man ikke nødvendigvis behøver at vide alt om markedet for at kunne starte på forretningsplanen. I stedet har jeg lagt op til at revidere forretningsplanen når markedsundersøgelsen er foretaget. Antal eksemplarer: 4 Antal sider: 52 Afleveret: 15. januar 2008

4 ii

5 Indhold I Problem 1 1 Indledning 3 2 Motivation 5 3 Problemformulering 7 II Baggrund 9 4 Specialeprojektet Vivid Data Objects Hvorfor Vivid Data Objects Impedance mismatch Data typer Dataudtræk fra databasen Simuleret samtidighed Eksisterende løsninger Hibernate LINQ Vivid Data Objects Forretningsmuligheder DB Flow Opstart af virksomhed Forretningsplanen III Planlægning 25 6 Forretningsplan Baggrundsoplysninger Resumé Idégrundlag Personlige ressourcer og mål Produkter og ydelser iii

6 INDHOLD INDHOLD 6.6 Markedsbeskrivelse Kundegruppe Kundegrundlag Konkurrenter Trends Salg og markedsføring Kommunikationsstrategi Salgskanaler Organisering af virksomheden Forretningspolitikker Virksomhedens udvikling Økonomi Prissætning Opstartskapital Forventede opstartsomkostninger for Aps Forventede etableringsomkostninger Forventede udgifter Forventede indtægter Budget for år Produktudvikling Milepælsplan Tidsplan IV Afslutning 47 8 Konklusion 49 Litteratur 51 iv

7 1 IProblem

8

9 1 Indledning Det kan være en stor beslutning at vælge at blive selvstændig, også selvom man føler man har det rette produkt på det rette tidspunkt. Denne rapport vil beskrive tanker og overvejelser omkring produktet DB Flow, herunder gennmgå nogle af de produkter som er de nærmeste konkurrenter, samt hvor den primære inspiration til produktet kommer fra. Som en vigtig del af dette produkt vil jeg planlægge hvordan produktet udvikles fra prototype til færdigt produkt, og hvordan produktet kan bruges som fundament i en virksomhed. For at kunne bruge produktet i virksomhedssammenhæng er det derfor også vigtigt at se på de aspekter som vedrører opstart af virksomhed, og bruge disse til at lave en forretningsplan. Forhåbentlig vil læsningen af denne rapport vise at det ikke er en uoverkommelig opgave at bruge en prototype til at planlægge udvikling af produkt og opstart af virksomhed. Rapporten henvender sig primært til personer som har udviklet noget software som de føler kan danne grundlag for opstart af en virksomhed. Ved at læse rapporten skulle der gerne blive kastet lys over hvilke aspekter man bør overveje i den forbindelse, og derved blive inspireret til selv at springe ud i planlægningen, enten for at starte egen virksomhed eller på et tidligt tidspunkt konstatere at fundamentet ikke kan holde til at starte en virksomhed. Uanset hvilket resultat man når frem til, vil tiden brugt på planlægning ikke være spildt, da den kan bringe klarhed ind i de overvejelser man måtte have. Da dele af rapporten bygger direkte videre på arbejdet fra [6] vil der enkelte steder også være sammenfald mellem indholdet i denne rapport og [6]. 3

10 4 1. Indledning

11 2 Motivation I løbet af hvert semester på Aalborg Universitet har jeg været med til at lave et projekt, som i større eller mindre grad har resulteret i et produkt, som har opfyldt en klarlagt problemstilling. Efter endt eksamen er hver af projekternes rapporter endt på hylden, og produkterne er ikke blevet brugt efterfølgende. Dette er ikke enestående, da mange universitetsprojekter ofte ikke når længere end til at være pynt (eller måske blot fyld) på en hylde. I enkelte tilfælde vil det projekt, man har lavet, dog blive ved med at føles interessant, så man har lyst til at sprede kendskabet hertil videre end universitetet, og måske endda bruge den viden, som er tilegnet i forbindelse med projektet, til at etablere en virksomhed. At etablere en virksomhed på baggrund af viden kan virke spinkelt og usikkert for nogle, måske endda skræmmende, især fordi det ligger så fjernt fra den vanlige tankegang på universitetet. I forbindelse med mit speciale udarbejdede jeg sammen med Alex H. Johannesen (herefter AHJ) en prototype til automatisk generering af et værktøj, som skal hjælpe en programmør med at benytte en database i et stykke software [6]. Vi fik værktøjet til at virke, men da vi fokuserede på slutproduktet, dvs. selve værktøjet, kan det heller ikke tilskrives at være andet end blot en prototype med tilhørende viden, som var resultatet. Specialeprojektet lå i direkte forlængelse af et tidligere projekt, vi lavede sammen, hvor vi kiggede på forskellige løsninger til at benytte en database i et stykke software, samt hvilke fordele og ulemper vi så ved de løsninger, vi kiggede på [7]. Netop fordi vores værktøj var resultatet af lang tids arbejde, samt fordi jeg synes prototypen på vores værktøj åbner op for rigtig mange muligheder, er jeg ikke interesseret i, at specialet blot bliver endnu et hyldeprojekt. Min interesse for projektet denne gang er derfor at afsøge de muligheder, jeg umiddelbart ser for at etablere en virksomhed med den viden, som jeg har tilegnet mig gennem arbejdet med specialeprojektet. Jeg vil kortlægge, hvad der skal til for at bevæge produktet i retning af noget, som er forretningsegnet og fokusere 5

12 2. Motivation på netop processen, der skal til for at bevæge sig fra prototype til et slutprodukt, som kan sælges; Fra idé til handling. En del af denne proces er at se udover slutproduktet, se på hvad der kræves for at kunne starte virksomheden op, samt dokumentere hvilket forarbejde som kræves. 6

13 3 Problemformulering I denne rapport vil jeg se på mulighederne for at planlægge processen fra en software prototype af et værktøj, frembragt i en studiemæssig kontekst, til et færdigt produkt. Som en del af dette vil en forretningsplan klarlægge hvordan det færdige produkt kan kommercialiseres, samt belyse hvilke områder som vil kræve yderligere afklaring. Den planlagte proces vil belyse, hvordan den videre udvikling af værktøjet skal forløbe, samt hvilke forretningsmæssige tiltag, som skal udføres sideløbende med denne udvikling. Den videre udvikling skal planlægges, så der tages hensyn til både forretningsplanen og målgruppen for værktøjet. 7

14 8 3. Problemformulering

15 IIBaggrund 9

16

17 4 Specialeprojektet Vivid Data Objects I dette kapitel vil jeg beskrive specialeprojektet Vivid Data Objects (VDO), der fungerer som er den primære inspiration til produktet DB Flow. Som en del af denne beskrivelse vil jeg gennemgå den underliggende motivation for VDO sammen med nogle af de eksisterende løsninger, som i større eller mindre grad forsøger at løse de samme problemer som VDO. Efter beskrivelsen af VDO vil jeg gennemgå stadiet for prototypen ved specialets afslutning, både på den brugsmæssige og den tekniske side. Jeg vil i den forbindelse præcisere de største styrker og svagheder ved VDO. 4.1 Hvorfor Vivid Data Objects I forbindelse med udarbejdelsen af projekterne An Exploration of the Impedance Mismatch [7] og efterfølgende Vivid Data Objects [6] (VDO), blev det klart, at der stadig findes nogle helt fundamentale problemer, som skal løses, når man udvikler en applikation, som skal benytte en relationel database til lagring af informationer. Det første skridt på vejen mod at løse problemerne med at benytte en database, var at klarlægge hvilke problemer, som er de største og vigtigste at løse. I de følgende afsnit vil jeg beskrive problemerne, så læseren får indsigt i, hvorfor problemerne bør løses for programmøren. Det første problem jeg belyser, Impedance Mismatch, er samtidig det problem som de fleste andre af problemerne hører under. I afsnit 4.2 på side 15 vil jeg beskrive nogle eksisterende løsninger, som i større eller mindre grad forsøger at løse problemerne. Efter gennemgang af de eksisterende løsninger skal det gerne stå klart for læseren, at ingen af de eksisterende løsninger til fulde løser de fremlagte problemer og dermed forklare, hvorfor vi 11

18 4.1 Hvorfor Vivid Data Objects 4. Specialeprojektet Vivid Data Objects fandt det nødvendigt at udvikle VDO Impedance mismatch Impedance mismatch (IM) er et udtryk som stammer fra den elektriske verden, hvor det beskriver forskellen mellem to systemer, som gør det svært for systemerne at arbejde sammen. I datalogiske sammenhænge dækker IM over det generelle problem mellem at benytte en relationel database til at gemme data fra et programmeringssprog [4]. Definitionen på IM er ikke præcis, men generelt set dækker det over problemet med at repræsentere mulige data fra programmeringssproget i database og omvendt. For at gøre dette muligt kræver det enten et programmeringssprog som indeholder de samme typer som databasen eller en database som indeholder de samme typer som programmeringssproget. Grundet udbredelsen af relationelle databaser er det denne slags som har interesse, hvilket passer dårligt sammen med det objektorienterede programmeringssprog C# som er valgt grundet dets udbredelse og muligheder. Grunden til at der er så stor forskel på relationelle databaser og programmeringssprog hænger sammen med at de befinder sig i vidt forskellige paradigmer. Programmeringssprog kan inddeles i forskellige paradigmer (fx. Java og C# i det objektorienterede paradigme) imens SQL ligger i sit eget paradigme, da sproget er svært at sætte i bås. På mange måder er forskellige dele af sproget inspireret af forskellige paradigmer, hvilket slutteligt giver et sprog som ikke passer i bås hos de gængse paradigmer, men blot er sit eget. Når der forespørges på data kan det på visse områder minde om sprog som Prolog fra det logiske paradigme, men i andre sammenhænge minder det i høj grad om procedurale sprog. Eftersom sproget ikke passer ind i de gængse paradigmer for programmeringssprog, betyder det at programmøren, uanset udviklingssprog, vil ende med at skulle skifte mellem to paradigmer hvis en database skal bruges. I objektorienterede sprog findes der primitive typer som umiddelbart kan gemmes i en database, og det er derfor ikke disse som giver problemer. I stedet er problemet at gemme de komplekse typer som programmøren selv konstruerer, som i objektorienterede sammenhænge er klasser. Klasserne indeholder variable som enten kan være primitive datatyper som også findes i databasen samtidig med at de kan være andre komplekse typer. En klasse kan groft set oversættes til en række i en tabel med de forskellige variables værdier gemt i tilsvarende kolonner. Dette er dog ikke tilfældet hvis variablen er en kompleks type, da denne ikke umiddelbart kan gemmes i en kolonne. I stedet kan den komplekse type, som jo er en klasse, oversættes til en række i en anden tabel, og der kan laves en relation imellem rækkerne i disse tabeller, for at tilsvare referencen fra det objektorienterede sprog. For at kunne lave relationen i databasen er der behov for at tabellerne har unikker nøgler der kan relateres til, 12

19 4. Specialeprojektet Vivid Data Objects 4.1 Hvorfor Vivid Data Objects hvilket betyder at der er behov for ekstra data i forhold til den objektorienterede repræsentation, hvis man vil have mulighed for at genskabe referencen mellem objekterne på et senere tidspunkt Data typer Når de forskellige former for data gemmes i databasen, skal de gemmes som en bestemt type af hensyn til måden, de gemmes på og muligheder for at optimere i forhold til søgning. Groft set kan typerne i databasen derfor deles op i nummeriske typer, teksttyper og datotyper. Der findes derudover typer til at gemme store mængder af rådata, fx. indholdet af en fil, men disse er uden for interesse i denne kontekst. Når man indlæser data fra databasen til en applikation, er det vigtigt at repræsentere denne data på en tilsvarende måde, dels for at gøre det simpelt at gemme i databasen igen og dels, fordi der er forskel på den måde, man kan bruge de forskellige repræsentationer. For de fleste af typerne findes der tilsvarende typer i de sprog, man skriver programmerne i, men for enkelte er der ikke en type, som direkte matcher, og man er derfor nødt til at finde et kompromis. Fordelen ved at bruge typer, som tilsvarer hinanden, er at fejl i brug af typerne vil blive fanget, når programmet compiles fremfor under afvikling. For teksttyper gælder der desuden det specielle, at objektorienterede programmeringssprog har strenge uden begrænsning på længde, modsat en database, hvor man kan definere en maksimal længde. Dette betyder også, at der kan opstå problemer, når man vil gemme en streng fra sit program, da den måske er længere end den tilladte længde i databasen. Da denne type fejl ikke kan findes, når programmet compiles, er det nødvendigt at benytte overvågning under afvikling af programmet. For alle datatyper, som gemmes i databasen, gælder desuden, at de kan have den specielle værdi null, som dækker over ingenting, dvs. at værdien ikke er sat. I de fleste programmeringssprog findes der ikke en tilsvarende løsning, da alle typer skal have en værdi sat fra starten. I projektet An Exploration of the Impedance Mismatch [7] konstaterede vi, at der ikke findes en smart løsning til dette, hvis ikke værtssproget understøtter null-værdier. I forbindelse med dette fandt vi, at det eneste objektorienterede sprog indenfor vores målgruppe, som understøtter null-værdier er C#. Da jeg også på nuværende tidspunkt har stor interesse i at løse problemet med null-værdier, vil de eksisterende løsninger, jeg kigger på, udelukkende være til C# Dataudtræk fra databasen Når man almindeligvis laver forespørgsler til databasen, sker det igennem forespørgsler skrevet i sproget SQL. Disse forespørgsler er markant anderledes opbygget end en applikation skrevet i et objektorienteret sprog, da SQL er skabt med 13

20 4.1 Hvorfor Vivid Data Objects 4. Specialeprojektet Vivid Data Objects henblik på at forespørge efter data. Som det kan ses i listing 4.1, kan en SQL forespørgsel minde om almindeligt tale- og skriftsprog i sin opbygning. I det viste eksempel er det adresser på alle, som hedder Jens Jensen, der forespørges efter. En sådan forespørgsel vil returnere resultatet af forespørgslen som et antal rækker med data fra tabellen. I det viste eksempel vil det eneste felt i de returnerede rækker være adressefeltet fra tabellen brugere. 1 SELECT adresse FROM brugere WHERE navn= Jens Jensen ; Listing 4.1: Simpel SQL forespørgsel. Denne måde at tilgå og behandle data på afviger meget fra den objektorienterede tilgang til data, som benyttes i bla. C# og Java, især i kraft af, at man udvælger hvilken data, man vil have retur. Den store forskel ligger i de vidt forskellige paradigmer, som sprogene bevæger sig indenfor; C# og Java i det objektorienterede paradigme og SQL i sit eget paradigme. Når man som softwareudvikler har behov for at benytte en database, vil man derfor ofte ende med at blande de to paradigmer grundet måden som man bruger databasen på. I listing 4.2 er vist et eksempel skrevet i Java, med metoden hentadresse som tager et navn som argument og returnerer de adresser, som opfylder det givne navn. 1 public ResultSet hentadresse ( String navn ) { 2 String query = SELECT a d r e s s e FROM brugere 3 + WHERE navn= + navn + ; 4 Statement stmt ; 5 ResultSet rs ; 6 stmt = connection. createstatement ( ) ; 7 rs = stmt. executequery ( query ) ; 8 9 return rs ; 10 } Listing 4.2: Java metode med indlejret SQL. Da SQL forespørgsler er opbygget som tekststrenge når de sendes til databasen, er det nødvendigt at sikre sig mod at slutbrugeren kan få udført ondsindet kode på databasen. Dette kan ske hvis slutbrugeren har mulighed for at give fx. et tekst kriterie med til en søgning. Hvis slutbrugeren i denne indsætter et vil strengen i SQL sammenhæng være afsluttet. Dette kan udnyttes på mange måder, afhængig af databasen som benyttes, og beskrives overordnet som injection attacks. Hvis programmøren skal hjælpes til at forhindre injection attacks er det derfor vigtigt at dette sker automatisk, så programmøren ikke behøver tage særlige forholdsregler hver gang en streng behandles. 14

21 4. Specialeprojektet Vivid Data Objects 4.2 Eksisterende løsninger Simuleret samtidighed Slutbrugeren af et system som udvikles, vil i de fleste tilfælde forvente at ændringer foretaget på én klient, vil afspejle sig umiddelbart herefter på andre klienter, tilknyttet den samme fælles database. I samme øjeblik man udvikler et stykke software, som skal kunne afvikles på flere forskellige klienter samtidig, med brug af fælles database, er det derfor nødvendigt at have indtænkt samtidighed. Da SQL servere er opbygget på en måde, så klienterne altid forespørger efter data, skal SQL serveren udelukkende holde styr på data og ikke hvilke data de enkelte klienter har indlæst. Grundet denne opbygning er det derfor nødvendigt, at de enkelte klienter selv forespørger efter ændringer, da serveren ikke automatisk leverer disse. Når der skal tages højde for data, som bliver ændret i databasen, involverer det en vis form for kompleksitet, da det kræver hyppige kontrolforespørgsler til databasen. Derudover er det nødvendigt at tage specielle hensyn for at finde ud af om data er blevet slettet fra databasen efter det blev indlæst. Dette bunder i, at data bliver fjernet fra databasen straks, og programmøren derfor ikke kan få en liste over hvilke data, som er blevet slettet, men i stedet har to muligheder for at tjekke om den allerede indlæste data er blevet slettet af en anden klient: 1. For hver enkelt af de i forvejen indlæste data kan databasen forespørges for at se, om dataen stadig findes deri. 2. Indlæse alle data fra en given tabel og herefter krydstjekke denne med de allerede indlæste data. For programmøren betyder det, at der skal lægges ekstra arbejde i at holde de indlæste oplysninger opdaterede, i forhold til ændringer fra andre klienter, samtidig med at der skal tages forbehold, så ændringerne ikke overskrives uforvarende. Processen med at holde indlæst data opdateret i forhold til databasen er bestemt ikke umulig for programmøren, men den er besværlig, omstændig og ligger langt fra den vanlige objektorienterede tankegang. Et værktøj, som skal hjælpe programmøren med at løse samtidighedsproblemerne, skal derfor holde den indlæste data opdateret i forhold til databasen, især med henblik på ikke at overskrive ændringer fra andre klienter. 4.2 Eksisterende løsninger Som beskrevet i de foregående afsnit er der en del problemer at tage hensyn til under udviklingen af en applikation, som benytter en database til lagring af informationer. Først og fremmest er det uhensigtmæssigt at programmøren skal benytte to vidt forskellige paradigmer under udviklingen, da det medfører unødig forvirring 15

22 4.2 Eksisterende løsninger 4. Specialeprojektet Vivid Data Objects grundet de meget forskellige måder data repræsenteres og behandles på. Derudover er det unødvendigt komplekst, at programmøren selv skal håndtere de mange problemer, da det ofte vil være de samme problemer, som skal løses igen og igen. For at lette programmeringsbyrden vil det derfor være nærliggende at finde et værktøj, som kan automatisere håndteringen af data fra databasen, enten helt eller delvist. I den forbindelse er det vigtigt at finde et værktøj, som er rettet mod brugeren, dvs. i dette tilfælde skal værktøjet være rettet mod programmøren. Netop af hensyn til programmøren er det vigtigt at holde sig indenfor det paradigme der udvikles indenfor, i dette tilfælde, det objektorienterede. Paradigmeproblemet kan løses igennem semantisk integration med værtssproget, enten ved at udvide sproget eller ved at benytte de muligheder, som allerede findes i sproget. En udvidelse af sproget vil helt klart tale imod målet om at gøre det mere simpelt for programmøren at benytte, så den mest oplagt mulighed må være at benytte sprogets eksisterende muligheder, fx. ved at pakke funktionaliteten ind gennem passende klasser og metoder. At benytte sprogets elementer, fremfor at udvide det, passer samtidig godt overens med P. J. Landin s artikel The Next 700 Programming Languages [3], hvori han argumenterer for at have bestemt funktionalitet i pakker som kan bruges i et mere generelt sprog, fremfor at have et sprog, med specialiseret funktionalitet til mange forskellige ting. Dette betyder at hvis man har behov for at arbejde med en database fra sproget, så indlæser man fx. en grænseflade med funktionaliteten hertil i sproget, fremfor at indbygge det i selve sproget. Det er desuden vigtigt, at programmøren ikke skal tænke over de forskelle, som måtte være mellem typerne i det objektorienterede sprog, både i forbindelse med de simple typer, men i lige så stor grad med en kompleks type. I tilfælde hvor der ikke findes en direkte ækvivalent type i sproget, må der bruges den, som er tættest på at være en pendant og derudover tilføres en vis form for overvågning under programmets udførsel, som kan fange eventuelle fejl inden de sendes til databasen. Sidst er det vigtigt, at der tages hensyn til samtidighed (som beskrevet i afsnit 4.1.4) på en måde, så programmøren er fri for at skulle tage forholdsregler for dette, netop fordi området er komplekst og dermed en unødig byrde for programmøren at holde styr på. I de kommende afsnit vil jeg løst beskrive to af de løsninger, som allerede findes på markedet for afspejling af relationel data som objekter til C#, udvalgt fra listen på [10]. De løsninger jeg beskriver, er udvalgt ud fra den funktionalitet, de tilbyder samt ud fra, hvor stor brugerskaren for løsningen skønnes at være. For de beskrevne løsninger gælder det, at de ikke løser problemerne fuldt ud, set fra mit synspunkt. Jeg vil for løsningerne fokusere på de områder hvor de ikke svarer til interesseområdet. 16

23 4. Specialeprojektet Vivid Data Objects 4.2 Eksisterende løsninger Grunden til at jeg udelukkende har udvalgt to løsninger fra listen er, at de resterende løsninger har væsentlige ligheder med de to udvalgte, og derfor ikke vil bringe andre informationer frem Hibernate Hibernate er et værktøj som hjælper med at bygge bro fra en relationel database til et objektorienteret miljø, i enten Java eller C# [9]. Hibernate giver mulighed for persistens, associering, nedarvning samt mange andre objektorienterede aspekter som ikke findes i den relationelle verden. Hibernate er langt fra et automatiseret værktøj, men skal i stedet ses som et mellemlag som kan hjælpe programmøren med at håndtere forbindelsen med databasen, samt muligheden for at sammenkæde håndskrevne klasser med tabeller i databasen (persistens). Det er muligt for programmøren at styre hvordan sammenkædningen forgår, ned til mindste detalje, hvilket naturligvis giver en stor grad af frihed og muligheder. Denne frihedsgrad dækker over at programmøren selv definerer på hvilken måde objekterne gemmes i databasen samt hvordan de efterfølgende indlæses derfra igen. Programmøren slipper dog langt fra for stadig at skulle skrive forespørgsler i en vis grad, men har med Hibernate mulighed for, udover SQL, at benytte Hibernate s eget sprog, HQL. I sin opbygning minder HQL en del om SQL, som vist i listing s e l e c t adresse from Brugere where Navn = Jens Jensen Listing 4.3: Dataforspørgsel med HQL. Med Hibernate slipper programmøren altså ikke for at skulle skrive forespørgsler i det sprog, som ligger i et andet paradigme. Derudover skal programmøren manuelt holde de oplysninger opdaterede som bruges for at tilbyde persistens til klasserne. Selvom Hibernate tilbyder meget af den funktionalitet som jeg søger at løse, bla. mht. persistens, kræver det stadig i for stor grad manuelt arbejde fra programmørense side, som skal rettes hver gang databaseskemaet ændrer sig LINQ LINQ adskiller sig væsentligt fra de andre løsninger som er beskrevet her, men bør alligevel nævnes, da mange programmører er interesserede i de muligheder som den giver. LINQ er en udvidelse til.net, og dermed også tilgængelig i C#, som giver mulighed for at udtrykke dataforspørgsler på bla. SQL databaser og XML data [1]. Integrationen i C# har betydet at der er indført en del nye begreber, primært 17

24 4.3 Vivid Data Objects 4. Specialeprojektet Vivid Data Objects fra den funktionelle og logiske verden, for at kunne tilsvare de muligheder der er til rådighed i almindelige SQL forespørgsler. I listing 4.4 kan det ses hvordan udtrykket har mange ligheder med en SQL forespørgsel, hvilket ikke vil hjælpe programmøren i den grad som jeg er interesseret i. Til gengæld tilbyder LINQ integreret typetjek, som bestemt vil komme til nytte for programmøren under udviklingen. 1 string navn = Jens Jensen ; 2 IEnumerable<string> expr = from s in Brugere 3 where s. Navn == navn ; Listing 4.4: Dataforspørgsel med LINQ. Selvom LINQ har mange gode muligheder, så er det mest centrale problem med at slippe for paradigmeskift langt fra opfyldt med LINQ, hvorfor den ikke er interessant. 4.3 Vivid Data Objects I de foregående afsnit har jeg beskrevet nogle af de allerede eksisterende løsninger på markedet indenfor afspejling af relationelle data som objekter til C#. Eftersom ingen af de funde løsninger løser de problemer som jeg beskrev i afsnit 4.1 valgte AHJ og jeg at lave værktøjet Vivid Data Objects (VDO) [6], som jeg i dette afsnit vil beskrive nærmere. Jeg vil beskrive både styrker og svagheder i denne, så læseren får indblik i hvilke dele som virker i den producerede prototype. Det overordnede mål med VDO var at lave et værktøj som er rettet mod programmøren som skal bruge det, på en måde så det kan virke tidsbesparende. Det var derfor vigtigt for os at automatisere så stor en del af processen som muligt, og dermed slække en smule på valgfriheden i opbygningen af klasserne som skal repræsentere data. En af grundene hertil bunder i vores observationer fra andre værktøjer, hvor programmøren slipper for at skrive SQL forespørgsler, blot for at skulle skrive noget andet tilsvarende i stedet for. Derfor var det vigtigt at lave en automatiseret løsning, dvs. at programmøren ikke behøver at konfigurere en hel masse, men hurtigt kan gå i gang med at bruge værktøjet. Udover de overordnede mål for VDO valgte vi også at basere vores løsning på C# da det er det eneste sprog indenfor vores interesseområde som gav os en fornuftig måde at løse problematikken omkring null-værdier. Derudover tilpassede vi kun VDO til at fungere sammen med Microsoft SQL Server 2005 for bedre at kunne fokusere på funktionaliteten, fremfor at understøtte mange forskellige databaser. Rammerne for VDO værktøjet blev valgt til at være velkendte design mønstre, eftersom de er de bedste fremgangsmåder til at løse ikke-trivielle opgaver [6, s. 55]. Endnu en fordel ved at bruge velkendte design mønstre er at programmørerne som skal bruge værktøjet sandsynligvis allerede kender noget til disse 18

25 4. Specialeprojektet Vivid Data Objects 4.3 Vivid Data Objects Figur 4.1: Abonnering på ændringer i liste. mønstre, eller som minimum har let ved at sætte sig ind i hvordan mønstret bruges, da mønstrene er beskrevet grundigt i litteraturen, bla. i [2]. De mønstre som blev valgt var Active Record, Identity Map, Lazy Load samt Observer, og er alle beskrevet grundigt i [6, kap. 5] og [2]. Udover de velkendte mønstre valgte vi at opbygge en synkroniseringsmekanisme som står for at holde de indlæste data opdateret i forhold til databasen, så programmøren ikke behøver tænke på dette. Synkroniseringsmekanismen simulerer derfor samtidighed, som var endnu et af de ønskede kriterier vi opstillede. Denne mekanisme er samtidig også grunden til at vi indbyggede Observer mønstret, da programmøren igennem dette har mulighed for at udføre bestemte handlinger hvis de indlæste data ændres gennem synkroniseringsmekanismen. I figur 4.1 kan vi se hvordan programmøren kan få sit program til at udskrive en besked når data ændrer sig for elementerne i den indlæste liste. For at det skal give mening at kunne abonnere på ændringer i data elementer, eller søgeresultater som i det viste eksempel, er det vigtigt at alle indlæste data er unikke. Det betyder at hver gang et bestemt data element tilgås, på den ene eller anden måde, så er det nøjagtigt det samme data element. Det samme gælder for søgeresultater, hvor to søgninger med de samme kriterier skal resultere i den samme liste. Fordi der genereres klasser, opfyldes ønsket om semantisk integration, samtidig med at løsningen er meget rettet mod programmøren i sin opbygninge jf. Active Record mønstret. Samtidig bliver alle typer pakket ind så programmøren slipper for at tage specielle hensyn for at sikre sig imod fx. injection attacks. Det er også denne indpakning som sørger for at typer som ikke kan oversættes direkte, alligevel kan bruges ud fra den type som tilsvarer mest. Dermed gøres det også let for programmøren at tage hensyn til tekststrenge som er blevet længere end hvad der kan gemmes i databasen, på en simpel måde. Direkte på de objekter man arbejder med er det muligt at udføre lette opratio- 19

26 4.3 Vivid Data Objects 4. Specialeprojektet Vivid Data Objects Figur 4.2: Gem et objekt. ner, som fx. at gemme i databasen, hvilket er illustreret i figur 4.2. Programmøren skal ikke tage hensyn til om objektets data tidligere har været gemt i databasen, som ellers ville være nødvendigt uden grænsefladen. Måden som klasserne opbygges på gør det kort sagt lettere for programmøren at tilgå, gemme og slette data elementer fra databasen, på en objektorienteret facon. Hvis man skal tilgå data, findes der statiske søgemetoder på klasserne, som man giver søgekriterier, og returnerer en liste med data elementer som opfylder det givne søgekriterie. Da formålet med VDO compileren var at teste funktionalitet i grænsefladen, blev denne opbygget uden at benytte gængse teknikker for compilerdesign, da vi ikke skønnede at resultatet hermed ville stå mål med det krævede arbejde. Umiddelbart gør denne opbygning af compileren ingen forskel på resultatet den genererer, men det gør det meget besværligt at ændre på hvordan grænsefladen genereres. VDO compileren fungerer ved at den indlæser informationer om databaseskemaet, hvorefter den ud fra dette genererer en grænseflade som er tilpasset det specifikke skema. Programmøren skal derfor ikke foretage ændringerne manuelt andre steder end i databasens skema, herefter er det nok at eksekvere compileren for at grænsefladen igen er tilpasset det ændrede skema. Når programmet som benytter grænsefladen compiles, vil det blive påpeget hvis ændringerne bevirker at der skal rettes i applikationen, så programmøren ikke risikerer at der opstår fejl som følge af ændringerne. Den største styrke i VDO er måden synkroniseringsmekanismen fungerer på, så programmøren ikke behøver at tænke over at der er også er andre klienter som benytter de samme data. Derudover bevirker de mønstre som bruges, at data repræsenteres på en fornuftig måde i forhold til databaseskemaet. Derudover er det praktisk at applikationer som benytter VDO kan fungere sideløbende med ældre applikationer, uden at miste funktionalitet. De største svagheder i VDO er især at der mangler integreret dokumentation for metoderne, samt de meget begrænsede søgemuligheder. Det er sjældent man kun har behov for at søge ud fra et enkelt søgekriterie, som er eneste mulighed man har med VDO. 20

27 5 Forretningsmuligheder I det foregående kapitel om specialeprojektet Vivid Data Objects, som jeg udarbejdede sammen med AHJ, gennemgik jeg incitamentet for at lave VDO og beskrev hvor langt arbejdet med dette nåede. Da jeg stadig mener, at mange programmører har behov for at få løst problemerne som jeg beskrev i kapitel 4, vil jeg nu se på, hvordan dette kan udnyttes i en kommerciel sammenhæng. Jeg vil derfor, med udgangspunkt i VDO, se på hvad et produkt, henvendt mod at løse problemerne i forbindelse med brug af database, skal indeholde. Produktet har jeg valgt at kalde DB Flow, da jeg synes det bedre beskriver, at det drejer sig om at gøre data fra en database lettere tilgængelig, samt for at adskille det fra VDO. Jeg vil afdække de overordnede rammer for DB Flow, som skal hjælpe med at holde fokus på, hvilken funktionalitet der skal være en del af DB Flow. Med rammerne på plads vil jeg beskrive, hvordan DB Flow kan bruges som fundament til opstart af en virksomhed, og hvordan der herefter kan skrives en forretningsplan. Jeg vil desuden se på, hvilken rolle forretningsplanen spiller ved opstart af virksomhed, samt hvordan man som iværksætter kan bruge forretningsplanen til at holde fokus gennem opstart. 5.1 DB Flow Eftersom VDO er den direkte inspirationskilde til DB Flow vil de naturligt nok have en del lighedspunkter, men der vil samtidig være områder hvor de adskiller sig markant fra hinanden, eftersom VDO udelukkende har været ment som en prototype til at teste nogle grundlæggende idéer. Jeg vil i dette afsnit primært beskæftige mig med de områder hvor DB Flow adskiller sig fra VDO. Derudover vil den følgende beskrivelse af DB Flow være det primære referencepunkt for den fremtidige udvikling af produktet, og vil blive brugt nærmere i kapitel 7.1 hvor jeg vil prioritere funktionaliteterne på en liste, og ud fra denne liste beskrive hvordan udviklingen skal foregå med opstilling af milepæle. 21

28 5.1 DB Flow 5. Forretningsmuligheder Figur 5.1: Integreret dokumentation af Save metoden. DB Flow er skabt for at repræsentere data fra en relationel database i et objektorienteret miljø, på en måde så opbygningen i databasens tabeller danner grundlag for de klasser som bliver stillet til rådighed. Da grænsefladen er målrettet mod programmøren som skal bruge den, kræver den kun et minimum af inputs for at kunne generere grænsefladen ud fra det givne databaseskema. Derudover er der valgt nogle passende mønstre for design i den genererede grænseflade, som ikke skjuler tilknytningen til databasen, samtidig med at programmøren på en simpel måde kan bruge denne, og derfor ikke behøver have stort kendskab til databaser og SQL. Selvom den endelige adfærd af DB Flow skal tilpasses hvad kunderne ønsker, er det vigtigt at have for øje at grænsefladen ikke skal tilbyde andet end repræsentation af data med tilhørende søgemuligheder. Hvis der indføres funktionalitet som går udover dette skal det overvejes nøje, da det let kan ende ud med at gå imod de overordnede principper om at gøre det let og overskueligt for programmøren at benytte databasen. I den genererede grænseflade er det også meget vigtigt at der er integreret en grundig dokumentation, så programmøren aldrig er i tvivl om hvad der sker når der benyttes en bestemt metode, hvilket er illusteret i figur 5.1. Selvom navnene på metoderne er valgt, så de er meget beskrivende, er det dokumentationen som sikrer, at programmøren aldrig er i tvivl om hvilken funktion der udføres. Udover at beskrive adfæren for metoderne, skal dokumenationen også forklare hvilke potentielle undtagelser (exceptions) som kan opstå, så programmøren kan tage hensyn til disse i sin kode. For at tiltrække så stort et publikum som muligt, er det vigtigt at understøtte de mest ubredte databasesystemer, herunder MySQL og PostgreSQL, udover den allerede understøttede MSSQL Noget af det som der skal ofres mest udviklingstid på er søgemulighederne, da det er vigtigt for programmøren at have rigeligt med kriterier for at udvælge den data som skal bruges. Søgemulighederne skal opbygges på en måde så de er simple at bruge, samtidig med at de giver rigeligt med frihed i søgningerne. For at de skal være simple at bruge, er det vigtigt at de også tilpasses det enkelte 22

29 5. Forretningsmuligheder 5.2 Opstart af virksomhed databaseskema, så programmøren ikke behøver at frygte fejl i søgningerne, og samtidig gør programmøren opmærksom på de muligheder der er med søgningerne. Søgemulighederne skal opbygges på en måde så det passer til det behov en typisk programmør vil have. Noget banebrydende for DB Flow ville være at give mulighed for at gå offline med databasens indhold. Denne funktionalitet kunne bruges i forbindelse med programmer udviklet til at bruge steder hvor der ikke er adgang til databasen, fx. programmer til omrejsende salgspersoner. Mulighed for at gå offline ville kræve en lokal udgave af databasens indhold, hvilket kan klares med en integreret database som fx. SQLite [11], og dermed sikre at programmøren ikke får ekstra arbejde ud af denne ekstra funktionalitet. I forbindelse med en offline mulighed skal det overvejes om data i tabellerne skal være skrivebeskyttet, da der ellers kan opstå mange problemer hvis flere offline klienter har ændret i de samme data. Ved kun at tillade oprettelse af nye data, og ingen redigering af eksisterende data, vil dette blive undgået. Da denne beskrivelse af DB Flow udelukkende skal ses som en initierende rettesnor for udviklingen, vil den fremtidige udvikling ske i samarbejde med brugerne, så grænsefladen vil være tilpasset de behov som skulle opstå. 5.2 Opstart af virksomhed Når man som iværksætter skal springe ud i at starte en virksomhed op vil der næsten altid være mange spørgsmål som gør sig gældende, sammen med en stor usikkerhed. Dette gælder uanset om man skal starte en virksomhed op helt fra bunden, eller som i mit tilfælde, hvor det er en allerede eksisterende virksomhed der skal vækkes fra dvale. Denne virksomhed vil blive introduceret nærmere i starten af forretningsplanen i kapitel 6. Det kan derfor godt betale sig at man, inden virksomhedens opstart, får gennemtænkt grundlaget som man vil bygge virksomheden på, og planlagt ud fra dette grundlag [5, s. 11]. Grundlaget for virksomheden dokumenteres i en forretningsplan som kan bruges til at samle de idéer og planer man har for at føre en forretningsidé ud i livet, og for at se om det hele hænger fornuftigt sammen. Processen med at producere forretningsplanen kan desuden bruges til at belyse hvilke kompetencer virksomheden ikke selv er i besiddelse af og derfor har brug for at samarbejde med andre om [5, s. 12] Forretningsplanen Forretningsplanen skrives dels for at holde fokus og dels for at gøre andre parter interesserede i virksomheden [8]. De parter som forretningsplanen skal henvende 23

30 5.2 Opstart af virksomhed 5. Forretningsmuligheder sig til ses som målgruppen, som i mange tilfælde vil være investorer eller andre former for samarbejdspartnere. Når forretningsplanen udfærdiges er det derfor vigtigt at tage hensyn til målgruppen, da det ellers vil være spildt arbejde at lave forretningsplanen. Der kan dog være visse tilfælde hvor nogle parter i målgruppen vil være vigtigere end andre, fx. hvis man har behov for at tiltrække investorer. I disse tilfælde er det vigtigt at tage mest hensyn til de vigtigste parter i målgruppen, hvilket kan have stor betydning for indholdet. Det største succeskriterie for forretningsplanen må dermed være at målgruppens vigtigste parter forstår forretningsplanen, og den bør derfor tage specielt hensyn til disse. Med en forretningsplan er det muligt at planlægge opstarten af virksomheden, og når virksomheden er etableret bør forretningsplanen desuden bruges til at holde øje med den daglige drift og tjekke om denne stemmer overens med det planlagte. Dermed ikke sagt at forretningsplanen ikke kan ændres, da det vil være naturligt at bearbejde den forfra hvis virksomheden skal udvikles. Derimod er det farligt at føre virksomheden ud på områder som forretningsplanen ikke omhandler, da man let kan overse nogle af de punkter, som man i forretningsplanen vil gennemgå, og dermed overse hvordan det vil påvirke hele virksomheden. I mit konkrete tilfælde skal forretningsplanen derfor omhandle produktet DB Flow og vurdere hvorledes dette kan bruges i forbindelse med opstart af virksomhed. I den forbindelse vil de vigtigste målgrupper være de samarbejdspartnere som jeg har brug for i opstartsfasen, da jeg nødvendigvis skal fremstå troværdigt, især for at samarbejdspartnere skal have lyst til at investere tid i implementering af DB Flow. Derudover er det også vigtigt at forretningsplanen vil virke overbevisende overfor bank eller en investor, så jeg kan skaffe opstartskapital, samt overfor et af de mange mulige netværk man som nystartet virksomhed kan blive en del af. Min forretningsplan er fremlagt i kapitel 6, og er ment til at kunne tages ud af konteksten fra denne rapport, dvs. bruges i forbindelse med mulige investorer og samarbejdspartnere. 24

31 III Planlægning 25

32

33 6 Forretningsplan Denne forretningsplan beskriver, hvorledes det er min hensigt, at bringe fokus ind i min virksomhed Netspecialisten, som jeg har drevet siden sommeren Virksomheden har jeg brugt til mange forskellige aktiviteter, herunder design af hjemmesider, opsætning af computere samt salg af netværksudstyr. Målet er nu, at jeg med produktet DB Flow, kan bringe fokus ind i Netspecialisten, og derefter lade virksomhedens fremtid forme sig omkring dette. Herefter er det planen, at virksomheden skal blive min fuldtidsbeskæftigelse, når jeg er færdig med at være studerende på AAU, fra sommeren Jeg vil derfor se på mit firma Netspecialisten på samme måde som hvis det var en hel ny virksomhed der skulle startes op. Enkelte dele af forretningsplanen kræver stadig yderligere arbejde for at være fyldestgørende, da der er behov for yderligere undersøgelser til at træffe beslutninger ud fra. Dette gælder bla. prissætningen af produktet DB Flow, da kunderne gerne skulle opleve en besparelse ved at benytte DB Flow. For de dele af forretningsplanen som mangler yderligere arbejde vil dette blive præciseret med oplæg til hvordan de kan færdiggøres inden forretningsplanen skal tages i brug ved endt studietid. 6.1 Baggrundsoplysninger Netspecialisten Jacob Volstrup Tlf: Stud. scient i Datalogi 27

34 6.2 Resumé 6. Forretningsplan 6.2 Resumé DB Flow er en specialtilpasset grænseflade til at lette brugen af en SQL database fra programmeringssproget C#. Grænsefladen automatiserer kommunikationen med databasen, så programmøren kan beskæftige sig med mere krævende opgaver. Da der ikke findes andre lignende værktøjer på markedet, findes der med stor sandsynlighed en stor potentiel kundegruppe, som har behov for at bruge deres tilgængelige arbejdsressourcer på de krævende opgaver. Da der allerede er planlagt en konstant udvikling af værktøjet, vil det med stor sandsynlighed virke mere tillokkende overfor potentielle kunder, da de garanteres at fejl bliver løst inden for overskuelig tid, samt at værktøjet vil modnes med tiden. Ved at opstarte virksomheden som et Aps. skal der lånes kr., hvorefter det skulle være muligt at klare det første år (juli juni 2009) uden yderligere indskud. Hvis der i løbet af det første år ikke kommer indtægter vil der opstå et underskud på kr. i forhold til tilgængelig kapital, hvilket samtidig betyder at der kun kræves begrænset salg for at undgå at løbe tør for kapital. Efter det første år skulle virksomheden gerne hvile i sig selv, med potentiale til at generere overskud allerede efter det første år. Der er opstillet et positivt estimat med et samlet salg for kr. for det første driftsår, hvilket vil give et overskud på kr. som ikke burde være helt urealistisk. 6.3 Idégrundlag I store dele af den software som udvikles, benyttes en SQL database til at gemme informatiner på tværs af programsessioner. Når denne software skal skrives er programmørerne nødt til at arbejde med vidt forskellige programmeringsparadigmer, da SQL adskiller sig fra de sprog som programmerne udvikles i. Desuden er der stor risiko for at programmørerne vil komme til at lave fejl i kommunikationen med databasen, enten i større eller mindre grad. Målsætningen for DB Flow er, at programmører i fremtiden kan slippe for paradigmeskift under udviklingen af software, som benytter en database. Ved at skifte paradigme er det sværere for programmøren at holde fokus på den funktionalitet, som arbejdes med, og der er stor risiko for at lave fejl. Modsat sproglige udvidelser som Linq til C# vil dette værktøj hjælpe programmøren med at holde fokus indenfor det objektorienterede paradigme. Gennem udarbejdelsen af tidligere IT systemer har jeg flere gange haft behov for at lette arbejdet med at benytte en database som underliggende platform til at gemme data på tværs af program sessioner, især i miljøer hvor flere klienter benyttes samtidig. Almindeligvis er det en besværlig opgave for programmøren især i kraft af, at denne konstant skal skifte sin tankevirksomhed mellem flere uafhængige paradigmer, hvilket kan virke negativt for udviklingsprocessen. 28

35 6. Forretningsplan 6.4 Personlige ressourcer og mål Hver gang der ændres i databasens skema skal det tilsvarende modellag tilpasses, hvilket medfører en vis risiko for, at der indtræder nye fejl, samtidig med at det er en tidskrævende procedure. Der findes værktøjer som er beregnet til at hjælpe med at benytte en database, men disse er lavet meget generelle, hvilket ofte betyder at programmøren reelt set ikke sparer ret meget tid, sammenlignet med at benytte databasen uden disse værktøjer. Da der de seneste år er opstået et stigende behov for højtuddannede indenfor de fleste faggrupper, kan det virke grotesk at lade disse sidde og udarbejde den samme type programkode hver gang der ændres i strukturen for en database. DB Flow er et værktøj som genererer en grænseflade som er specielt tilpasset til en given database. Ved at benytte denne grænseflade slipper programmøren for at udføre de samme opgavetyper hver gang strukturen for databasen ændres, og får derved frigjort potentielle arbejdskræfter, som er til rådighed, til mere krævende opgaver. Den specialiserede grænseflade giver programmøren ekstra muligheder, som normalt kræver lang tids arbejde, samtidig med at risikoen for fejl er kraftigt reduceret. DB Flow grænsefladen tager sig af al kommunikationen med databasen, og lader dermed programmøren bruge sin tid på de mere komplekse dele af programudviklingen, som ikke lader sig automatisere igennem generalisering. Da grænsefladen genereres ud fra databasens skema, simplificeres ændringerne for programmøren, da tilpasningen i modellaget automatiseres igennem genereringen. Derved fjernes risikoen for fejl efter ændringer på data strukturen, grundet mange indbyggede tjek på korrekthed. Desuden er grænsefladen opbygget efter udbredte design mønstre, som derved letter brugen af databasen yderligere. Da DB Flow i udviklingsfasen skal gennemgå større ændringer for at tilpasse sig kundernes krav og behov, er det en fordel at have en lille virksomhed uden lange beslutningsgange. Derved kan jeg let tilpasse værktøjet til de behov, som skulle være til stede hos kunden. Set fra Netspecialistens synspunkt så er planen på længere sigt at blive underleverandør til softwarefirmaer som kan drage stor nytte af automatisering i deres udvikling, først med henblik på brug af database, men senere vil det være naturligt at kigge på andre områder og til disse bruge den erfaring, som er indsamlet under arbejdet med DB Flow. I det lange løb skal Netspecialisten derfor gerne blive den foretrukne samarbejdspartner, når dele af softwareudviklingen skal automatiseres. 6.4 Personlige ressourcer og mål Jeg har gennem de sidste 10 år arbejdet med både større og mindre systemer til administrativt brug, og i den forbindelse fået mig en del erfaringer med brug af databaser. Da jeg helt fra starten har haft en stor interesse i brug af databaser, 29

36 6.4 Personlige ressourcer og mål 6. Forretningsplan har jeg gennem arbejdet med disse systemer fået en stor viden omkring brugen af databaser, og denne viden kan jeg nu drage stor nytte af. Et af disse systemer jeg tidligere har udarbejdet, er et større administrativt IT system for nogle sekretærer på en afdeling af AAU, som bruger systemet i deres dagligdag. Som en del af dette system er tilknyttet en hjemmeside som giver de studerende en vis grad af selvbetjening, og begge systemer er koblet op mod den samme database. På nuværende tidspunkt studerer jeg datalogi og har skrevet speciale indenfor Programmeringsteknologier. De primære interesser indenfor programmering ligger på automatisering af opgaver, herunder især opgaver for programmøren. Dette har bla. resulteret i en rapport som analyserer problemer og mulige løsninger på at bruge en relationel database fra et objektorienteret programmeringssprog, samt et speciale som søger at skabe en løsning på dette problem. Det er desuden dette speciale som danner grobund for DB Flow. Den primære grund til at jeg har lyst til at overføre min viden fra mit specialeprojekt til en virksomhed, er netop lysten til at gøre det lettere at være programmør og jeg føler netop, at det er muligt med værktøjet DB Flow. I en tid hvor flere og flere opgaver automatiseres, virker det samtidig oplagt at hjælpe softwarehuse med at flytte deres ressourcer væk fra den trivielle udvikling omkring brug af databaser. Jeg ser det som en ekstra personlig force at jeg gennem mange år har arbejdet med den type applikationer som DB Flow henvender sig til, og dermed har indblik i hvilke problemer og frustrationer man normalt støder på når man udvikler disse. Dette indgående kendskab kan jeg bruge i den indledende fase af udviklingen af DB Flow, til at bestemme hvilken funktionalitet som værktøjet skal indeholde. I forbindelse med opstart af virksomhed har jeg i efteråret 2007 fulgt kurset Iværksættertræning med mentor hos SEA (Supporting Entrepreneurship at Aalborg University), som er en del af iværksætternetværket på AAU. Forløbet på 30 timer omhandlede de forskellige elementer af en forretningsplan, samt gav mulighed for at få råd og vejledning fra oplægsholderne. Jeg fravalgte at få tilknyttet en mentor da det først var meget sent i forløbet det blev muligt, og jeg på daværende tidspunkt ikke følte jeg havde tid til at kunne drage nytte. Kurset har vist mange forskellige aspekter omkring opstart af egen virksomhed, som jeg håber at kunne drage nytte af når jeg bringer fokus tilbage i min virksomhed Netspecialisten. Derudover har jeg igennem kurset skabt kontakt til nogle personer jeg kan benytte mig af under opstarten, både oplægsholdere og andre deltagere i kurset. Mine stærkeste sider i forhold til konkurrenterne ser jeg som værende mit indgående kendskab til brug af database fra objektorienterede programmeringssprog, med fokus på at lette arbejdet i denne forbindelse. Derudover mener jeg selv at 30

9. KONKLUSION... 119

9. KONKLUSION... 119 9. KONKLUSION... 119 9.1 REFLEKSIONER OVER PROJEKTETS FUNDAMENT... 119 9.2 WWW-SØGEVÆRKTØJER... 119 9.3 EGNE ERFARINGER MED MARKEDSFØRING PÅ WWW... 120 9.4 UNDERSØGELSE AF VIRKSOMHEDERNES INTERNATIONALISERING

Læs mere

Hvorfor skal vi bruge objekt orienteret databaser?

Hvorfor skal vi bruge objekt orienteret databaser? OODBMS Vs. RDBMS 1 Indholdsfortegnelse Hvorfor skal vi bruge objekt orienteret databaser?... 3 OODBMS i erhvervslivet... 4 Bagsiden af medaljen... 5 OODBMS i praksis... 6 Konklusion... 8 2 Hvorfor skal

Læs mere

DB Flow. en evolutionær udvikling

DB Flow. en evolutionær udvikling DB Flow en evolutionær udvikling Institut for Datalogi Selma Lagerlöfs Vej 300 9220 Aalborg Øst Telefon: (45) 9635 8080 Telefax: (45) 9815 9889 http://www.cs.aau.dk Titel: DB Flow - en evolutionær udvikling.

Læs mere

Børn, unge og sundhed

Børn, unge og sundhed Børn, unge og sundhed Automatisering Komm/IT Benjamin Andreas Olander Christiansen, Jens Werner Nielsen og Niclas Larsen Klasse 1.4 Roskilde Tekniske Gymnasium 30.4.2010 Indledning Som vores kommunikations-/informationsteknologis

Læs mere

InfoPro 2i. Profil Softwarefirmaet MaCom A/S blev etableret i 1992. Vi udvikler og markedsfører dokumenthåndteringssystemet InfoPro.

InfoPro 2i. Profil Softwarefirmaet MaCom A/S blev etableret i 1992. Vi udvikler og markedsfører dokumenthåndteringssystemet InfoPro. InfoPro 2i Profil Softwarefirmaet MaCom A/S blev etableret i 1992. Vi udvikler og markedsfører dokumenthåndteringssystemet InfoPro. Mission MaCom's mission er at sikre og skabe struktur i vores kunders

Læs mere

Projektbeskrivelse Informations Teknologi

Projektbeskrivelse Informations Teknologi Projektbeskrivelse Informations Teknologi Upload og indeksering af elev og -projektopgaver i skolemiljøet Indledning: Som nystartet på et gymnasium kan omvæltningen fra elev til påbegyndende studerende

Læs mere

Bilag 6.1 SYDDANSK UNIVERSITET / ONLINE STRATEGI. Vision: Scenarier

Bilag 6.1 SYDDANSK UNIVERSITET / ONLINE STRATEGI. Vision: Scenarier Bilag 6.1 SYDDANSK UNIVERSITET / ONLINE STRATEGI Vision: Scenarier Et internationalt universitet med fokus på de studerende Vejviseren til dit rette valg Destination for læring & oplysning Livet & menneskene

Læs mere

Websitet handler om websitet i sin helhed, dvs. hvor mange besøgende du har i alt osv.

Websitet handler om websitet i sin helhed, dvs. hvor mange besøgende du har i alt osv. Statistikmodulet. Statistikmodulet er et grundlæggende værktøj til at forstå og analysere trafikken på dit website, og det kan du benytte til mange ting, lige fra at se hvor mange besøgende du har, til

Læs mere

Sebastian Holtze-Petersen HTX Roskilde 09/02/2014 Jacob Hennecke. IT Applikationsudvikling

Sebastian Holtze-Petersen HTX Roskilde 09/02/2014 Jacob Hennecke. IT Applikationsudvikling IT Applikationsudvikling Præproduktion Vores grundidé stammede fra Sebastians kendskab til en familie hvor et af børnene er diagnosticeret med autisme. Vi fik så ideen at lave en applikation målrettet

Læs mere

Objektorientering. Programkvalitet

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

Læs mere

Automatisering Af Hverdagen

Automatisering Af Hverdagen Automatisering Af Hverdagen Programmering - Eksamensopgave 10-05-2011 Roskilde Tekniske Gymnasium (Kl. 3,3m) Mads Christiansen & Tobias Hjelholt Svendsen 2 Automatisering Af Hverdagen Indhold Introduktion:...

Læs mere

Guide til opdatering af Navision Stat med ny funktionalitet - nye objekter, datakonvertering, automatisk indlæsning af datafiler.

Guide til opdatering af Navision Stat med ny funktionalitet - nye objekter, datakonvertering, automatisk indlæsning af datafiler. Side 1 af 20 Navision Stat 7.0 ØSY/JACPM 15-05-2015 Vejledning til Lokal Versionsstyring (VMS) Overblik Guide til opdatering af Navision Stat med ny funktionalitet - nye objekter, datakonvertering, automatisk

Læs mere

GODE RÅD TIL SPECIALEPROCESSEN

GODE RÅD TIL SPECIALEPROCESSEN 5 trin i en god specialeproces: Den rigtige indstilling Tidlig start på forberedelsesfasen Planlægning af processen Gode arbejdsvaner Passende start på jobsøgningen Der er ingen universel løsning på, hvordan

Læs mere

Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails

Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails Casper Fabricius http://casperfabricius.com ActiveRecord O/RM i Ruby on Rails Casper Fabricius Freelance webudvikler - casperfabricius.com 9 års erfaring med webudvikling 6 år med ASP/ASP.NET/C# 3 år med

Læs mere

Skriftlig opgave. Designtanker i database-nære systemer

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

Læs mere

Hjælp til jobsøgningen

Hjælp til jobsøgningen Hjælp til jobsøgningen FOA Århus Jobmatch Hjælp til jobsøgningen I denne folder finder du inspiration til jobsøgning. Da det kan være længe siden, du sidst har lavet enten ansøgning, CV eller andet relateret

Læs mere

Indholdsfortegnelse resultat- & kritikprogrammet.

Indholdsfortegnelse resultat- & kritikprogrammet. Indholdsfortegnelse resultat- & kritikprogrammet. Ringsekretærers indtastning af resultater og kritikker... 2 Kom i gang Opstart af programmet... 2 En anden bruger er i gang med ringen... 3 Dommer ændringer

Læs mere

Arbejdsblad. Indhold. 27. maj 2010 A312. 1 Projektplanlægning 1. 2 Samarbejdet i gruppen 3. 3 Samarbejdet med vejlederne 5

Arbejdsblad. Indhold. 27. maj 2010 A312. 1 Projektplanlægning 1. 2 Samarbejdet i gruppen 3. 3 Samarbejdet med vejlederne 5 Arbejdsblad 27. maj 2010 A312 Indhold 1 Projektplanlægning 1 2 Samarbejdet i gruppen 3 3 Samarbejdet med vejlederne 5 1 Procesanalyse 1 Projektplanlægning I projektarbejdet har vi benyttet Google kalender

Læs mere

1-1 Usability evaluering af den simple udgave

1-1 Usability evaluering af den simple udgave BILAG 1 s. 2 af 19 Bilag 1 1-1 Usability evaluering af den simple udgave...5 1-2 Heuristisk inspektion af den simple udgave...6 1-3 Usability evaluering af den avancerede udgave...8 1-4 Heuristisk inspektion

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

Trænings vejledning - Målmand Copyright Sten Jensen 2009. Trænings vejledning til målmand : Sten Jensen 51 30 78 38 1

Trænings vejledning - Målmand Copyright Sten Jensen 2009. Trænings vejledning til målmand : Sten Jensen 51 30 78 38 1 Trænings vejledning til målmand : Sten Jensen 51 30 78 38 1 Indholdsfortegnelse : Forord side 3-5 Områder målmænd bør trænes i side 6 Grundlæggende teknik målmænd side 7-9 De 10 trænerbud side 10 Planlægning

Læs mere

EVALUERING af projekt Mobilt værktøj til mobil medarbejder

EVALUERING af projekt Mobilt værktøj til mobil medarbejder EVALUERING af projekt Mobilt værktøj til mobil medarbejder Pilotprojektet er evalueret ud fra en procesbaseret tilgang til virkningsevalueringen. Evalueringsspørgsmålet: Jobcenter Langeland ønskede at

Læs mere

Dokumentation af programmering i Python 2.75

Dokumentation af programmering i Python 2.75 Dokumentation af programmering i Python 2.75 Af: Alexander Bergendorff Jeg vil i dette dokument, dokumentere det arbejde jeg har lavet i løbet opstarts forløbet i Programmering C. Jeg vil forsøge, så vidt

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

Sådan vælger du den rette bil

Sådan vælger du den rette bil Når du skal finde dig en bil der passer til dit og familiens kørselsbehov, er det en god ide at starte din research hjemmefra. Her kan du sammenligne bilernes kvalifikationer og prisniveau online for at

Læs mere

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

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

Læs mere

Afrapportering af LibGuide fase 4. Velkomstside fra prototypen

Afrapportering af LibGuide fase 4. Velkomstside fra prototypen Afrapportering af LibGuide fase 4 Velkomstside fra prototypen Uddannelsescenter Holstebro Projektansvarlig: Bent Arnoldsen April 2013 Indholdsfortegnelse Afrapportering af LibGuide fase 4... 1 Præsentation

Læs mere

Installationsguide til SAP Business One 2005 SP1 (SBO 2005)

Installationsguide til SAP Business One 2005 SP1 (SBO 2005) Installationsguide til SAP Business One 2005 SP1 (SBO 2005) Installationen af SBO 2005 Service Pack 1består af flere enkeltkomponenter. Først og fremmest skal der installeres en database til at indeholde

Læs mere

Navision i undervisningen

Navision i undervisningen Navision i undervisningen Side 1 af 8 Indhold Indledning...3 Eleverne...3 Skolemæssige forudsætninger...3 Elevernes alder...3 Arbejdserfaring...3 IT forudsætninger...3 IT på grundforløbet...4 Hvornår vi

Læs mere

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

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

Læs mere

Object-Relational Mapping

Object-Relational Mapping Databaser for udviklere () Datamatiker TietgenSkolen Underviser: Allan Helboe 06-06-2010 Problemformulering Denne opgave er et forsøg på at beskrive problemerne der opstår ved anvendelsen af en relationel

Læs mere

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

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

Læs mere

Helosan og Kræftens Bekæmpelse

Helosan og Kræftens Bekæmpelse 1 Indledning Corporate Social Responsibility - CSR er en form for corporate selvregulering integreret i en forretningsmodel. CSR politik fungerer som et indbygget, selvregulerende mekanisme, hvorved skærme

Læs mere

LØN- OG PERSONALE- ADMINISTRATION I DANSKE VIRKSOMHEDER

LØN- OG PERSONALE- ADMINISTRATION I DANSKE VIRKSOMHEDER LØN- OG PERSONALE- ADMINISTRATION I DANSKE VIRKSOMHEDER 2015 EXECUTIVE SUMMARY I marts og december 2015 gennemførte Bluegarden en undersøgelse med fokus på de største udfordringer inden for løn- og personaleadministration

Læs mere

SCALING BY DESIGN FUNDAMENTET

SCALING BY DESIGN FUNDAMENTET SCALING BY DESIGN FUNDAMENTET SCALING BY DESIGN Er jeres virksomhed klar til at skalere? Gennemgå fundament-kortene for at sikre, at jeres virksomhed har grundlaget i orden, før skaleringsprocessen går

Læs mere

Forord Når du vil starte webshop

Forord Når du vil starte webshop Forord Når du vil starte webshop Hos Danhost er vi eksperter inden for e-handel på tværs af mange brancher, hvor vi har hjulpet en lang række virksomheder og private personer med etablering af deres webshop.

Læs mere

Struktureret Test og Værktøjer Appendiks til bogen Struktureret Test

Struktureret Test og Værktøjer Appendiks til bogen Struktureret Test Struktureret Test og Værktøjer Appendiks til bogen Struktureret Test Struktureret Test og Værktøjer... 1 Appendiks til bogen Struktureret Test... 1 1. Definition og formål... 2 2. Kategorisering... 2 2.1

Læs mere

Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF

Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF Den afsluttende prøve i AT består af tre dele, synopsen, det mundtlige elevoplæg og dialogen med eksaminator og censor. De

Læs mere

Et kommercielt whitepaper er således et stærkt marketingsværktøj, der kan støtte beslutningstagere i valget af den ene løsning frem for den anden.

Et kommercielt whitepaper er således et stærkt marketingsværktøj, der kan støtte beslutningstagere i valget af den ene løsning frem for den anden. Sådan skriver du et whitepaper Et whitepaper er et almindeligt brugt værktøj til at introducere tekniske innovationer og nye produkter. Men der er meget at tage stilling til, når man skal skrive et whitepaper.

Læs mere

Det Rene Videnregnskab

Det Rene Videnregnskab Det Rene Videnregnskab Visualize your knowledge Det rene videnregnskab er et værktøj der gør det muligt at redegøre for virksomheders viden. Modellen gør det muligt at illustrere hvordan viden bliver skabt,

Læs mere

Fig. 1 Billede af de 60 terninger på mit skrivebord

Fig. 1 Billede af de 60 terninger på mit skrivebord Simulation af χ 2 - fordeling John Andersen Introduktion En dag kastede jeg 60 terninger Fig. 1 Billede af de 60 terninger på mit skrivebord For at danne mig et billede af hyppighederne flyttede jeg rundt

Læs mere

Hvordan designes en forretningsplan

Hvordan designes en forretningsplan LENNART SVENSTRUP Hvordan designes en forretningsplan LENNART@KYOEVAENGET.DK 2010 Der findes mange forskellige indgangsvinkler og beskrivelser af forretningsplaner. Vigtigt er det at forretningsplanen

Læs mere

Indholdsfortegnelse. Indledning...2. Tidsplan...2. Målgruppe...3. Spørgeskema...3. Kode eksempler...5. Procesbeskrivelse...7. Evaluering...

Indholdsfortegnelse. Indledning...2. Tidsplan...2. Målgruppe...3. Spørgeskema...3. Kode eksempler...5. Procesbeskrivelse...7. Evaluering... 1 Indholdsfortegnelse Indledning...2 Tidsplan...2 Målgruppe...3 Spørgeskema...3 Kode eksempler...5 Procesbeskrivelse...7 Evaluering...8 Bilag - Spørgeskema...9 Indledning - Jeg har som skoleprojekt fået

Læs mere

IFC Egenskaber. Mohammad Hussain Parsianfar s102951 BYG DTU

IFC Egenskaber. Mohammad Hussain Parsianfar s102951 BYG DTU Mohammad Hussain Parsianfar s102951 Indholdsfortegnelse 1 Introduktion... 3 1.1 Hvorfor er det interessant... 3 1.2 Formål... 4 2 Simplebim... 5 2.1 Præsentation af softwaren... 5 2.1.1 Brugergrænseflade...

Læs mere

Consumer Policy Toolkit. Forbrugerpolitisk toolkit. Summary in Danish. Sammendrag på dansk

Consumer Policy Toolkit. Forbrugerpolitisk toolkit. Summary in Danish. Sammendrag på dansk Consumer Policy Toolkit Summary in Danish Forbrugerpolitisk toolkit Sammendrag på dansk Markederne for varer og tjenester har været igennem betydelige forandringer i de sidste 20 år. Reformer af love og

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

Vi arbejder med. kontinuitet og udvikling i daginstitutionen. Af Stina Hendrup

Vi arbejder med. kontinuitet og udvikling i daginstitutionen. Af Stina Hendrup Vi arbejder med kontinuitet og udvikling i daginstitutionen Af Stina Hendrup Indhold Indledning.............................................. 5 Hvilke forandringer påvirker daginstitutioner?...................

Læs mere

Superbruger Information. Ver. 5.1, 2. udgave - juni 2004-1 -

Superbruger Information. Ver. 5.1, 2. udgave - juni 2004-1 - Superbruger Information Ver. 5.1, 2. udgave - juni 2004-1 - Import /eksport og opdatering af databasen I dette kapitel vil vi se på nogle af de muligheder der er for import og eksport af data til og fra

Læs mere

Digital Kommuneplan. Kravsspecifikation gennem brugerinvolvering

Digital Kommuneplan. Kravsspecifikation gennem brugerinvolvering Digital Kommuneplan Kravsspecifikation gennem brugerinvolvering Indhold Introduktion Afklaring af behov: Hvad skal digitale kommuneplaner kunne? Udarbejdelse og test af løsning: Hvordan skal digitale kommuneplaner

Læs mere

Studieretningsprojektet i 3.g 2007

Studieretningsprojektet i 3.g 2007 Studieretningsprojektet i 3.g 2007 Det følgende er en generel vejledning. De enkelte studieretnings særlige krav og forhold forklares af faglærerne. STATUS I 3.g skal du udarbejde et studieretningsprojekt.

Læs mere

Afsluttende - Projekt

Afsluttende - Projekt 2014 Afsluttende - Projekt Rapporten er udarbejdet af Ali, Andreas og Daniel Vejleder Karl G Bjarnason Indholdsfortegnelse Indledning... 2 Case... 3 Design... 4 Python kalender:... 4 Poster:... 4 Planlægning...

Læs mere

Projekt - Valgfrit Tema

Projekt - Valgfrit Tema Projekt - Valgfrit Tema Søren Witek & Christoffer Thor Paulsen 2012 Projektet Valgfrit Tema var et projekt hvor vi nærmest fik frie tøjler til at arbejde med hvad vi ville. Så vi satte os for at arbejde

Læs mere

Metadon fortsat den modvillige hjælp?

Metadon fortsat den modvillige hjælp? STOF nr. 3, 2004 TEMA Modsætninger Metadon fortsat den modvillige hjælp? Narkotikapolitikkens og behandlingssystemets forhold til metadon og behandling er ikke uden indbyggede modsætninger. Metadonbrugeres

Læs mere

L Æ R I N G S H I S T O R I E

L Æ R I N G S H I S T O R I E LÆRINGS HISTORIE LÆRINGS HISTORIE Kom godt i gang Før I går i gang med at arbejde med dokumentationsmetoderne, er det vigtigt, at I læser folderen Kom godt i gang med værktøjskassen. I folderen gives en

Læs mere

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

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

Læs mere

Udfordringer og problemstillinger. En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling

Udfordringer og problemstillinger. En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling Java og JEE 1 2 Udfordringer og problemstillinger En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling 3 Generelt om Java og JEE 4 Generelt, I Man undervurderer hvor mange

Læs mere

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse. Mysqli Webintegrator Når vi arbejder med server-side scripting ( i vort tilfælde PHP), har vi ofte behov for at kunne tilgå data, som vi opbevarer i en database. Det kan f.eks. dreje sig om nyhederne i

Læs mere

Udlicitering i krydsild gode råd om risikostyring

Udlicitering i krydsild gode råd om risikostyring Udlicitering i krydsild gode råd om risikostyring November 2005 Udlicitering i krydsild gode råd om risikostyring November 2005 Udlicitering i krydsild gode råd om risikostyring November 2005 I tabeller

Læs mere

Bilag 6. - Interview med Mikkel 28 år, d. 28 april 2016

Bilag 6. - Interview med Mikkel 28 år, d. 28 april 2016 Bilag 6. - Interview med Mikkel 28 år, d. 28 april 16 5 Interviewperson (Mikkel): M Interviewer (Sofie): I Korte pauser: Fysiske handlinger: () Relevante fysiske træk: [] I: Hvad vægter du højt for, at

Læs mere

Exceptions i Delphi. Try except

Exceptions i Delphi. Try except Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,

Læs mere

Faglig læsning i matematik

Faglig læsning i matematik Faglig læsning i matematik af Heidi Kristiansen 1.1 Faglig læsning en matematisk arbejdsmåde Der har i de senere år været sat megen fokus på, at danske elever skal blive bedre til at læse. Tidligere har

Læs mere

Forberedelsesskema til SUS, 9. semester samt konklusionspunkt (se nederst i skemaet)

Forberedelsesskema til SUS, 9. semester samt konklusionspunkt (se nederst i skemaet) Juli 2010/Lone Krogh Forberedelsesskema til SUS, 9. semester samt konklusionspunkt (se nederst i skemaet) Spørgsmålene i skemaet har til hensigt at inspirere jer til at reflektere over- og blive mere bevidst

Læs mere

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 MySQL i Java Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 Hvad er MySQL? Det er et database system, som er gratis for os at bruge. Det er lidt mere besværligt i starten at bruge

Læs mere

Introduktion til SQL

Introduktion til SQL Introduktion til SQL Introduktion til SQL 1. udgave, 1. oplag 2013 Copyright 2013 Libris Media A/S Forfatter: Bobby Henningsen Forlagsredaktion: Peter Wiwe og Louise Peulicke Larsen Omslag: Louise Peulicke

Læs mere

Problemer og løsninger på området for gældssanering

Problemer og løsninger på området for gældssanering Socialudvalget 2011-12 SOU alm. del Bilag 313 Offentligt Problemer og løsninger på området for gældssanering Følgende vil udpensle problemerne i de nuværende gældssaneringsregler, sådan som Den Sociale

Læs mere

KAPITEL 8: OPRETTELSE OG ADMINISTRATION AF DOKUMENTGODKENDELSE

KAPITEL 8: OPRETTELSE OG ADMINISTRATION AF DOKUMENTGODKENDELSE Kapitel 8: Oprettelse og administration af dokumentgodkendelse KAPITEL 8: OPRETTELSE OG ADMINISTRATION AF DOKUMENTGODKENDELSE Målsætninger Introduktion Målsætningerne er at: Oprette dokumentgodkendelsessystemets

Læs mere

CSR. 2. Semester 1. projekt http://s733l.dk/csr/index.php. Udarbejdet af MulA: Anders Lauridsen. Casper Christiansen Casper.christiansen1992@gmail.

CSR. 2. Semester 1. projekt http://s733l.dk/csr/index.php. Udarbejdet af MulA: Anders Lauridsen. Casper Christiansen Casper.christiansen1992@gmail. CSR 2. Semester 1. projekt http://s733l.dk/csr/index.php Udarbejdet af MulA: Anders Lauridsen Andrs.lauridsen@gmail.com Casper Christiansen Casper.christiansen1992@gmail.com Jonatan Nielsen Jonatantwn@hotmail.com

Læs mere

WorkZone Mobile Onlinehjælp

WorkZone Mobile Onlinehjælp 2014 WorkZone Mobile Onlinehjælp WorkZone Mobile2014 Indhold 1. Onlinehjælp til WorkZone Mobile 2014 3 2. Nyheder 4 3. Kom godt i gang 5 4. Log på og log af 6 5. Besvar en opgave 7 6. Arbejde offline 8

Læs mere

Database optimering - Indeks

Database optimering - Indeks Database optimering - Indeks Alle kender til dette irritations moment, hvor programmet man sidder og arbejder med, bare ikke er hurtigt nok. Selvom det kun drejer sig om få sekunder man sidder og venter,

Læs mere

DM536. Rapport og debug

DM536. Rapport og debug DM536 Rapport og debug Kilder Vigtig.it (Felix Palludan Hargreaves) http://vigtig.it/dm502/howto_report.pdf http://vigtig.it/blog/teaching/#toc-relevant-tips Peter Schneider-Kamp http://imada.sdu.dk/~petersk/dm536/project2.pdf

Læs mere

Søndag d.24.jan.2016. Septuagesima. Hinge kirke kl.9. Vinderslev kirke kl.10.30 (skr.10.15).

Søndag d.24.jan.2016. Septuagesima. Hinge kirke kl.9. Vinderslev kirke kl.10.30 (skr.10.15). Søndag d.24.jan.2016. Septuagesima. Hinge kirke kl.9. Vinderslev kirke kl.10.30 (skr.10.15). Salmer: Hinge kl.9: 422-7/ 728-373 Vinderslev kl.10.30: 422-7- 397/ 728-510,v.5-6- 373 Dette hellige evangelium

Læs mere

Interaktionsudvikling

Interaktionsudvikling Projektopgave 3: Interaktionsudvikling CPH business, klasse: MulA2013 Projektansvarlige undervisere Thomas Hartmann MereteGeldermann lützen: Projekt produkt url: www.amalieardahl.dk/projekt3/index.html

Læs mere

Teknologihistorie. Historien bag FIA-metoden

Teknologihistorie. Historien bag FIA-metoden Historien bag FIA-metoden Baggrund: Drivkræfter i den videnskabelige proces Opfindermyten holder den? Det er stadig en udbredt opfattelse, at opfindere som typer er geniale og nogle gange sære og ensomme

Læs mere

// Mamut Business Software Installationsguide: Basis

// Mamut Business Software Installationsguide: Basis // Mamut Business Software Installationsguide: Basis Introduktion Indhold Denne guide forenkler installationen og førstegangsopstarten af Mamut Business Software. Hovedfokus i denne guide er enkeltbrugerinstallationer.

Læs mere

Uddannelse kan løfte BNP med op til 96 mia. kr.

Uddannelse kan løfte BNP med op til 96 mia. kr. Uddannelse kan løfte BNP med op til 96 mia. kr. Fremskrivninger af arbejdsmarkedet viser, at der bliver stor mangel på uddannet arbejdskraft frem mod 225. Forskellen i BNP er op til 96 mia. kr. mellem

Læs mere

Der blev endvidere nedfældet i kontrakten at vi arbejder med målene:

Der blev endvidere nedfældet i kontrakten at vi arbejder med målene: Værdier i Institution Hunderup, bearbejdet i Ådalen. Sammenhæng: Vi har siden september 2006 arbejdet med udgangspunkt i Den Gode Historie for at finde frem til et fælles værdigrundlag i institutionen.

Læs mere

TAP'ers evaluering af fleksordning Dato 2010-09-29 10:20:03

TAP'ers evaluering af fleksordning Dato 2010-09-29 10:20:03 Navn TAP'ers evaluering af fleksordning Dato 2010-09-29 10:20:03 Hvad er din holdning til fleksordningen? Hvilke fordele kan du se ved ordningen? (Gerne flere svar) Andre fordele: Det gavner både SDU og

Læs mere

Iværksætteres overlevelsesevne i Gladsaxe 2007

Iværksætteres overlevelsesevne i Gladsaxe 2007 Iværksætteres overlevelsesevne i Gladsaxe 2007 En undersøgelse af overlevelsesevnen blandt de iværksættere, som Erhvervssekretariatet i Gladsaxe kommune, har været i kontakt med i 2007 Kort om undersøgelsen

Læs mere

Dokumentation til Computerspil

Dokumentation til Computerspil Dokumentation til Computerspil Medias Lab Systemudviklingsmodel Problemstilling Vores problemstilling er at vi skal producere et simpelt computerspil, vi skal igennem hele processen dokumentere vores arbejde.

Læs mere

Banalitetens paradoks

Banalitetens paradoks MG- U D V I K L I N G - C e n t e r f o r s a m t a l e r, d e r v i r k e r E - m a i l : v r. m g u @ v i r k e r. d k w w w. v i r k e r. d k D e c e m b e r 2 0 1 2 Banalitetens paradoks Af Jonas Grønbæk

Læs mere

DOF GUIDE TIL STRATEGISK FUNDRAISING. Udarbejdet af TILSKUDSBASEN.DK

DOF GUIDE TIL STRATEGISK FUNDRAISING. Udarbejdet af TILSKUDSBASEN.DK DOF GUIDE TIL STRATEGISK FUNDRAISING Udarbejdet af TILSKUDSBASEN.DK 2014 STRATEGISK FUNDRAISING Strategisk fundraising bør være en integreret del af foreningens daglige kultur. Den strategiske fundraising

Læs mere

nikolaj stegeager Organisationer i bevægelse Læring UdvikLing intervention

nikolaj stegeager Organisationer i bevægelse Læring UdvikLing intervention nikolaj stegeager erik laursen (red.) Organisationer i bevægelse Læring UdvikLing intervention Nikolaj Stegeager og Erik Laursen (red.) Organisationer i bevægelse Læring udvikling intervention Nikolaj

Læs mere

Athena DIMENSION Varmeanlæg 4

Athena DIMENSION Varmeanlæg 4 Athena DIMENSION Varmeanlæg 4 Juni 2001 Indhold 1 Introduktion.................................. 2 2 Programmets opbygning........................... 2 3 Fremgangsmåde................................ 3

Læs mere

Computerspil - Kappa

Computerspil - Kappa Computerspil - Kappa Indledende aktivitet Kommunikationsplanlægning: Ressourceplanlægning: Iterationsplanlægning Brugerhistorier Kravspecifikation og testspecifikation Krav som skal opfyldes for at passe

Læs mere

Vejledning for anvendelse af PensionsIndberetningssystem PI

Vejledning for anvendelse af PensionsIndberetningssystem PI Vejledning for anvendelse af PensionsIndberetningssystem PI PNN PENSION 190503/AMB Indholdsfortegnelse 1. INDBERETNINGER... 3 2. SØG INDBERETNING... 4 3. NY INDBERETNING... 5 4. INDLÆS FIL... 7 5. INDTAST

Læs mere

0KAPITEL 5: DOKUMENTGODKENDELSE OPSÆTNINGSVEJLEDNING

0KAPITEL 5: DOKUMENTGODKENDELSE OPSÆTNINGSVEJLEDNING Kapitel 5: Dokumentgodkendelse Opsætningsvejledning 0KAPITEL 5: DOKUMENTGODKENDELSE OPSÆTNINGSVEJLEDNING 1Målsætninger Målene er at: Opsætte dokumentgodkendelsessystemets generelle funktioner. Opsætte

Læs mere

Indberetning til venteinfo Brugervejledning. Version 1.0. August 2011

Indberetning til venteinfo Brugervejledning. Version 1.0. August 2011 Indberetning til venteinfo Brugervejledning 2011 Version 1.0. August 2011 Brugervejledning - indberetning af fremadrettede ventetider Dokumentation af Specialiseret Sundhedsvæsen Sundhedsstyrelsen Islands

Læs mere

Analyse af PISA data fra 2006.

Analyse af PISA data fra 2006. Analyse af PISA data fra 2006. Svend Kreiner Indledning PISA undersøgelsernes gennemføres for OECD og de har det primære formål er at undersøge, herunder rangordne, en voksende række af lande med hensyn

Læs mere

METODESAMLING TIL ELEVER

METODESAMLING TIL ELEVER METODESAMLING TIL ELEVER I dette materiale kan I finde forskellige metoder til at arbejde med kreativitet og innovation i forbindelse med den obligatoriske projektopgave. Metoderne kan hjælpe jer til:

Læs mere

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... 9 Nogle HTML tags... 9 Databaser og PHP Når vi snakker

Læs mere

Videregående Programmering for Diplom-E Noter

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

Læs mere

Evaluering af KidSmart

Evaluering af KidSmart Evaluering af KidSmart Evaluering af KidSmart En KidSmart-computer er en computer, der henvender sig særligt til de 3-6årige. På computeren findes flere forskellige læringsprogrammer, der styrker bl.a.

Læs mere

Det Gode Partnerskab. Guide til bedre udbud og samarbejder

Det Gode Partnerskab. Guide til bedre udbud og samarbejder Det Gode Partnerskab Guide til bedre udbud og samarbejder 1. Det Gode Partnerskab (www.detgodepartnerskab.eu) Det Gode Partnerskab er etableret i regi af Dansk Industri med støtte fra Erhvervs- og Byggestyrelsen.

Læs mere

Indholdsfortegnelse for kapitel 1

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

Læs mere

Kasper: Jeg hedder Kasper Thomsen, og jeg er 25 år gammel, og jeg læser HD 1. del på 4. semester

Kasper: Jeg hedder Kasper Thomsen, og jeg er 25 år gammel, og jeg læser HD 1. del på 4. semester 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Transskribering af interview, Kasper BM: okay, jeg skal først lige bede om dit navn, og din alder, og hvad du læser?

Læs mere

Regnskab på deltid Værdiskabende skatteregnskab for landmænd

Regnskab på deltid Værdiskabende skatteregnskab for landmænd 2008 Regnskab på deltid Værdiskabende skatteregnskab for landmænd Projekt regnskab til deltidslandmænd har til formål at undersøge, hvordan man i Dansk Landbrugsrådgivnings regi kan tilbyde rådgivningscentrene

Læs mere

Notat. Brug personas til at leve dig ind i brugernes liv

Notat. Brug personas til at leve dig ind i brugernes liv Notat SEGES P/S Koncern Digital Datadreven informationsformidling, personas og personalisering Ansvarlig JUPO Oprettet 17-03-2016 Projekt: 7464, Digitale relationer og datadreven informationsformidling

Læs mere

Indhold. Vejledning til import af regneark til Outlook 2010

Indhold. Vejledning til import af regneark til Outlook 2010 Indhold Moderniseringsstyrelsens regneark med lønkørslerne hentes... 2 Trinvis indlæsning af regneark i Outlook 2010... 2 Aktiver importfunktion... 2 Udpeg Excel-ark... 4 Importér aftaler... 6 Afslutning...

Læs mere

At være censor på et bachelorprojekt. En kort introduktion til censorrollen.

At være censor på et bachelorprojekt. En kort introduktion til censorrollen. At være censor på et bachelorprojekt En kort introduktion til censorrollen. Hvad er bachelorprojektet og baggrunden for det? Den studerende er næsten færdig med uddannelsen til maskinmester, men kan være

Læs mere

Kampagnemanual for Sammenslutningen af Unge Med Handicap. Forår 2010

Kampagnemanual for Sammenslutningen af Unge Med Handicap. Forår 2010 Kampagnemanual for Sammenslutningen af Unge Med Handicap. Forår 2010 Indholdsfortegnelse Indledning I kampagneplanlægningen er der mange forskellige ting, der skal tænkes igennem inden man gennemfører

Læs mere