STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor...

184
0 Hogeschool-Universiteit Brussel Afstudeerrichting: Bachelor Toegepaste Informatica - Netwerken & Systemen STAGEDOCUMENTATIE: P&V Tim D‘hoe FACULTEIT BEDRIJFSKUNDE TOEGEPASTE INFORMATICA

Transcript of STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor...

Page 1: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

0

Hogeschool-Universiteit Brussel

Afstudeerrichting: Bachelor Toegepaste Informatica -Netwerken & Systemen

STAGEDOCUMENTATIE: P&V Tim D‘hoe

FACULTEIT BEDRIJFSKUNDE

TOEGEPASTE INFORMATICA

Page 2: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

1

Page 3: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

2

Voorwoord Dit rapport werd gemaakt in het kader van het behalen van het diploma van Bachelor in de Toegepaste Informatica, studiegebied Handelswetenschappen en Bedrijfskunde aan de Hogeschool-Universiteit Brussel. Waarbij dit rapport aantoont dat het niveau 6 van bachelor gehaald wordt.

Doorheen dit rapport wordt het stageproject gedetailleerd beschreven. Met als doel duidelijk te maken wat het project is, voor wie het is, waarom het nodig was en hoe het aangepakt werd. Dit alles met oog op zowel technische als niet-technische lezers.

Het stageproject is de voorzetting van de het IT-project van het 1ste semester.

Ik wens de stagebegeleider Gerard Hoorelbeke, als ook de stagementor Frank Vansweevelt van P&V te bedanken voor de goede begeleiding tijdens de stage.

Page 4: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3

Inleiding De stage werd bij P&V Groep gedaan, waarbij de opdracht het voltooien van het “SCMDB” project van het 1ste semester was.

Dit project werd in opdracht van het departement “Server Management” van P&V gedaan, een groot verzekeringskantoor gevestigd in Brussel en Antwerpen.

Het moet een bestaande “CMDB” applicatie binnen het bedrijf vervangen door een efficiëntere, flexibelere en eenvoudig uitbreidbare applicatie. De oude loopt immers tegen zijn limieten aan en kan moeilijk verder worden uitgebreid.

De functie van deze applicatie is het bijhouden van gedetailleerde informatie over eigendommen van het bedrijf. In dit geval beperken we ons tot eigendommen die met IT te maken hebben, meer bepaald servers.

Page 5: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4

Inhoudstafel Over het bedrijf ............................................................................................................................... 7

1.1 Over P&V Groep ...................................................................................................................... 7

1.2 Producten & oplossingen ........................................................................................................ 7

1.3 Geschiedenis ........................................................................................................................... 7

Context van de stage....................................................................................................................... 8

2.1 Algemeen ................................................................................................................................ 8

2.2 IT in een verzekeringsbedrijf ................................................................................................... 8

2.3 De stageopdracht .................................................................................................................... 8

2.3.1 Wat? ................................................................................................................................ 8

2.3.2 Waarom? ......................................................................................................................... 8

2.3.3 Hoe? ................................................................................................................................ 9

2.4 Waarom P&V? ......................................................................................................................... 9

Introductie tot de CMDB ............................................................................................................... 10

3.1 Definitie ................................................................................................................................. 10

3.2 Doel ....................................................................................................................................... 10

3.3 Onderdelen ........................................................................................................................... 10

3.4 CMDB toegepast op dit project ............................................................................................ 11

Gewenste Functionaliteiten .......................................................................................................... 11

4.1 Functionele eisen .................................................................................................................. 11

Analyse .......................................................................................................................................... 12

5.1 Vorige Toepassing ................................................................................................................. 12

5.1.1 Inleiding ......................................................................................................................... 12

5.2 Problemen ............................................................................................................................. 12

5.2.1 Database Structuur ....................................................................................................... 12

5.2.2 Formulieren & Query’s .................................................................................................. 12

5.2.3 Besluit ............................................................................................................................ 12

5.3 Nieuwe toepassing ................................................................................................................ 12

5.3.1 Inleiding ......................................................................................................................... 12

5.4 Technologiekeuze ................................................................................................................. 13

5.4.1 Webapplicatie ............................................................................................................... 13

5.4.2 Programmeertaal .......................................................................................................... 13

5.4.3 Ontwerppatroon ........................................................................................................... 14

Page 6: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

5

5.4.4 Database ....................................................................................................................... 15

Design ............................................................................................................................................ 15

6.1 Data Model ........................................................................................................................... 15

6.1.1 Structuur ....................................................................................................................... 15

6.1.2 Inhoud ........................................................................................................................... 16

6.2 Beveiliging ............................................................................................................................. 16

6.2.1 Beveiligingswijze ........................................................................................................... 16

6.2.2 Rollen ............................................................................................................................ 17

6.3 GUI ........................................................................................................................................ 17

6.3.1 Prototype ...................................................................................................................... 17

6.3.2 Uiteindelijke GUI ........................................................................................................... 18

Proces ............................................................................................................................................ 20

7.1 Implementatie ....................................................................................................................... 20

7.2 Testen .................................................................................................................................... 20

7.3 Kennis Overdracht................................................................................................................. 20

De feiten bekeken ......................................................................................................................... 21

8.1 Verwezelijking requirements ................................................................................................ 21

8.1.1 Funtionaliteiten ............................................................................................................. 21

8.1.2 GUI ................................................................................................................................ 21

8.2 Testen van de applicatie ....................................................................................................... 21

8.3 Procesmatig werken & planning ........................................................................................... 21

SWOT-Diagram .............................................................................................................................. 22

Focuscompetenties ................................................................................................................... 23

10.1 Algemene Competenties ....................................................................................................... 23

10.2 IT-Specifieke .......................................................................................................................... 23

Opgedane ervaringen ............................................................................................................... 23

Nog te verbeteren punten ........................................................................................................ 24

Competentiegroei ..................................................................................................................... 24

13.1 Algemene Competenties ....................................................................................................... 24

13.2 IT-Specifieke .......................................................................................................................... 24

Lijst der Bijlagen…………..………………………………………………………………………………………………………………….25

Page 7: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

6

Terminologie ASP/ASP.NET Programmeertaal van Microsoft Backupsystemen Systemen die backups nemen van data. Failovers Systemen die automatisch functies overnemen

van andere systemen, wanneer deze uitvallen. SCMDB Server Configuration Management Database SQL Scripttaal om databases te benaderen VLAN Virtueel Netwerk

Page 8: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

7

Deel 1: Algemene beschrijving van de stage-opdracht Over het bedrijf

1.1 Over P&V Groep

De P&V Groep is een coöperatieve verzekeringsgroep die in 1907 werd opgericht met als doel zoveel mogelijk mensen een eerlijke bescherming te bieden. Al die jaren kende de Groep een gestage groei en wist hij zijn positie op de markt te versterken. Tot de P&V Groep behoren verschillende merken en distributiekanalen, die elk hun eigenheid hebben. Allemaal delen ze echter de basisgedachte die sinds 1907 overeind blijft: solidariteit met de verzekerden en de samenleving.

(P&V, n.d.)

1.2 Producten & oplossingen

P&V biedt verzekeringsproducten en leningen aan, aan zowel zelfstandigen als particulieren. Ze bieden een hele waaier van producten aan, van reisbijstand tot woningleningen.

1.3 Geschiedenis

Doorheen haar geschiedenis heeft P&V een baanbrekende rol gespeeld in de bouw van het Europa der coöperatieve verzekeringen. Getuigen hiervan zijn de oprichting in 1922 van de “International Cooperative and Mutual Insurance Federation” (ICMIF) en de oprichting in 1991 van Euresa, een Europese structuur voor samenwerking en uitwisseling van ervaringen tussen diverse coöperatieve of mutualistische verzekeringsmaatschappijen in België, Frankrijk, Italië, Spanje, Portugal, Griekenland, Denemarken, Zweden en Duitsland.

In 2004 creëerde P&V een maatschappij die exclusief samenwerkt met makelaars: VIVIUM. Eind 2004 was de Groep P&V bijna dubbel zo groot als in 2003; in 2007 verdubbelde de Groep opnieuw in omvang, na een nieuwe acquisitie.

In 2011 bedraagt de geconsolideerde omzet van de Groep meer dan 1500 miljoen euro.

(P&V, n.d.)

Page 9: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

8

Context van de stage

2.1 Algemeen

De stage is een voortzetting van het IT-project dat in het eerste semester werd voorbereid. Concreet betekent dit dat enkele fasen van de ontwikkeling reeds achter de rug zijn.

Dit zijn in het bijzonder de “Prepare, Plan en Design” fasen. De stage focust zich op de “Implement” fase van het project.

Voor meer informatie over de inhoud van het IT-project, zie 1.2.3 De Stageopdracht, of raadpleeg de bijlage “IT-Project” voor gedetailleerde informatie.

2.2 IT in een verzekeringsbedrijf

Zoals reeds duidelijk is geworden uit het vorige onderdeel, is P&V geen klein bedrijf. Net als alle grote ondernemingen, heeft ook P&V veel informatica nodig om efficiënt te kunnen functioneren.

Zonder IT kan het bedrijf niet werken, het is dan ook van groot belang dat (klant)informatie veilig wordt opgeslagen. Het kwijtraken van informatie zou immers betekenen dat men niet meer weet welke klant welk product (en onder welke voorwaarden) heeft afgenomen bij P&V.

Om er voor te zorgen dat dit nooit kan gebeuren, heeft men een grote IT afdeling, met zeer veel servers, backupsystemen en failovers. Deze apparatuur zorgt er voor dat de data van P&V steeds beschikbaar is.

2.3 De stageopdracht

2.3.1 Wat?

De vele servers in het bedrijf moeten op één of andere manier worden geïnventariseerd. Men moet bepaalde informatie over deze server bijhouden, bijvoorbeeld: naam, toepassingen die op de server draaien, IP-adres, enz.).

Voor het bijhouden van deze informatie, maakt men gebruik van een “CMDB” of “Configuration Management Database”. Dat is dan ook de opdracht van mijn stage, op een paar details na nl.:

• De stage gebeurt in opdracht van de afdeling “Server Management”, de CMDB legt zich dan ook enkel toe op het opslaan van informatie over servers en afgeleiden.

2.3.2 Waarom?

Natuurlijk werd er reeds informatie bijgehouden over alle servers. Dit gebeurde in een Microsoft Access databank.

Deze was aan vervanging toe omdat ze vervuild was met niet-actuele data, was voorzien van velden die nooit gebruikt werden en onoverzichtelijk was door de vele formulieren en query’s.

Page 10: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

9

Daarnaast was het niet mogelijk om de (S)CMDB te benaderen vanuit niet-Windows systemen.

2.3.3 Hoe?

Om zeker niet dezelfde fouten te maken als bij de Access databank, is er voorafgaand aan de stage een diepgaand onderzoek gedaan naar wat er nu precies in de nieuwe CMDB moest zitten, zowel qua data als qua functionaliteit. Dit werd in het eerste semester gedaan in het reeds vermelde “IT-Project”.

Uiteindelijk is beslist om een webtoepassing te maken in ASP.NET met als oogpunten: uitbreidbaarheid, schaalbaarheid en efficiëntie.

2.4 Waarom P&V?

De stageplaats heb ik gekozen in functie van het project. De bedoeling was om het IT-Project voort te zetten, daarom heb ik mijn stage bij P&V gedaan.

Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik niet echt bezig met programmeren of het creëren van websites of webtoepassingen. Dit project was dan ook een goede gelegenheid om mij daar in te verdiepen en mijn kennis te verbreden.

Page 11: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

10

Deel 2: Technische Uitwerking Introductie tot de CMDB

3.1 Definitie

Een CMDB of ‘Configuration Management Database’ is een database waarin we alles met betrekking tot configuratie gaan bijhouden en beheren. Om dit te illustreren nemen we volgend voorbeeld:

Een bedrijf heeft twee servers: in de CMDB houden we voor elk van deze servers gedetailleerde informatie bij, bijvoorbeeld: van welk merk zijn ze, hoeveel geheugen hebben ze en wat is hun functie. Daarnaast vertelt de CMDB ons ook het onderlinge verband tussen deze twee servers (als dit er is), bijvoorbeeld: server 1 is de back-up-server van server 2.

Dit kunnen ook andere elementen zijn dan alleen maar servers, ook een computer, een werknemer of zelfs een gebouw kunnen in een CMDB zitten. Een bepaald element wordt een CI of ‘Configuration Item’ genoemd in CMDB-terminologie.

Wat in het voorbeeld uitgelegd is, is de kern van de CMDB. Dit is waar het in dit project om draait.

3.2 Doel

CMDB is een onderdeel van ITIL (Information Technology Infrastructure Library). ITIL is een verzameling van ‘best practices’ om IT binnen een organisatie te beheren. Elk bedrijf dat dat een IT-afdeling heeft zou in bepaalde mate van ITIL gebruik moeten maken om op een goede manier deze afdeling te managen.

Daarom is het ook interessant om een CMDB te hebben, aangezien het een centraal punt is om alle informatie van ‘Configuration Items’ te raadplegen en beheren.

Het biedt een duidelijk overzicht van wat een bedrijf bezit en laat toe dit efficiënt te beheren.

3.3 Onderdelen

In de definitie hebben we de kern van de CMDB besproken, maar er is meer mogelijk met een CMDB dan enkel informatie beheren van CI’s.

Figuur 1 De CMDB met zijn mogelijke uitbreidingen

Page 12: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

11

Zoals in figuur 1 wordt weergegeven, kan een CMDB worden uitgebreid om te dienen als informatiebron voor bijvoorbeeld een helpdesk. De helpdesk kan bijvoorbeeld de CMDB gebruiken om aan te geven bij welke CI er een probleem is opgetreden.

Voor meer informatie over de CMDB en zijn uitbreidingen, zie bijlage PV008.

3.4 CMDB toegepast op dit project

Zoals aangegeven in het vorige onderdeel, kan een CMDB worden uitgebreid om meerdere taken te vervullen.

In dit project ligt de focus enkel op de ‘Configuration Items’ met hun onderlinge relaties. De focus ligt niet op de CMDB Extended Data of CMDB Environment (zie figuur 1 op de vorige pagina).

De kern van de CMDB in dit project zal niet alle mogelijke soorten CI’s bevatten, we beperken ons tot servers en alles wat er bij hoort (onderhoudscontracten, werknemers van het bedrijf die iets met de servers te maken hebben).

Gewenste Functionaliteiten

4.1 Functionele eisen

Dit zijn de voornaamste functionaliteiten voor de applicatie:

• Men kan servers weergeven, toevoegen, aanpassen en verwijderen. • Men kan gemakkelijk zoeken binnen de data • Men kan per applicatie de servers bekijken • Men kan per VLAN de servers bekijken • Er is voldoende security • Data kan geëxporteerd worden naar Microsoft Excel • Heeft dezelfde look & feel als een bestaande interne applicatie (DSL-applicatie)

Voor een complete lijst van functionaliteiten kan bijlage PV000 (PID) en bijlage PV001 (Requirements Analysis) worden geraadpleegd.

Page 13: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

12

Analyse

5.1 Vorige Toepassing

5.1.1 Inleiding

De vorige toepassing was een Microsoft Access toepassing die verschillende rapporten, query’s en forumlieren bevatte. Deze applicatie had hetzelfde doel als de nieuwe toepassing namelijk: servers met hun bijhorende informatie, contracten, mensen, enz... beheren.

5.2 Problemen

5.2.1 Database Structuur

Het datamodel werd in de levensloop van de toepassing uitgebreid. Om geen problemen te creëren met bestaande data, werd het datamodel soms niet op de beste manier aangepast.

Daarnaast zijn er in sommige tabellen veel velden voorzien, die dan later nooit gebruikt werden.

5.2.2 Formulieren & Query’s

De naamgeving van sommige tabellen, formulieren en query’s toont niet altijd duidelijk aan waarvoor ze dienen. Er zijn ook query’s die overbodig geworden zijn of vervangen door een

verbeterde versie.

5.2.3 Besluit

Algemeen kunnen we stellen dat de toepassing te vol staat met allerhande query’s en formulieren, waardoor de efficiëntie afneemt.

Voor meer informatie over de vorige toepassing, gelieve bijlage PV002 te bekijken.

5.3 Nieuwe toepassing

5.3.1 Inleiding

De nieuwe toepassing houdt rekening met de fouten van zijn voorganger. Er is extra aandacht besteed aan gebruiksvriendelijkheid (de toepassing moet eenvoudig te gebruiken zijn en blijven), schaalbaarheid (de toepassing moet veel data aankunnen) en flexibiliteit (velden moeten eenvoudig toegevoegd of verwijderd kunnen worden).

Figuur 2 Voorbeeld van onduidelijke naamgeving in vorige toepassing

Page 14: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

13

5.4 Technologiekeuze

5.4.1 Webapplicatie

5.4.1.1 Inleiding

Zoals vermeldt in 2.4 Gewenste Functionaliteiten verwacht de klant dat de applicatie OS onafhankelijk is. Door deze requirements kan er geen gewone desktop applicatie gebruikt worden. Het is in dit geval beter om een webapplicatie te maken, aangezien dit op elk apparaat gebruikt kan worden.

5.4.2 Programmeertaal

Voor de applicatie kunnen we gebruik maken van talen als PHP, Java en ASP.NET. Dit zijn allemaal talen, die geschikt zijn om webapplicaties mee te maken.

Elke taal biedt specifieke voordelen en nadelen:

• PHP o Veel gebruikt op het internet o Krachtig o Moeilijker schaalbaar

• Java o Veelgebruikt in het bedrijfsleven o Commerciële ondersteuning o Krachtig o Schaalbaar

• ASP.NET (Microsoft) o Veelgebruikt in het bedrijfsleven o Commerciële ondersteuning o Krachtig o Schaalbaar o Eenvoudiger om Microsoft services te implementeren (bv Active Directory). o Serversoftware is niet gratis

In dit project heeft ASP.NET de beste troeven aangezien het bedrijf al werkt met ASP.NET. Er zijn dus al personen aanwezig binnen het bedrijf die kennis van de taal hebben en bijgevolg de applicatie kunnen onderhouden.

Daarnaast is er ook geen extra kost, omdat het bedrijf reeds een ASP.NET server heeft.

Ten slotte is het duidelijk dat de andere talen minder voordelen bieden, omdat men nog iemand zou moeten opleiden vooraleer de applicatie onderhouden kan worden. Dit kost veel.

Voor een uitgebreidere vergelijking tussen de verschillende programmeertalen gelieve bijlage PV003 te bekijken.

Page 15: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

14

5.4.3 Ontwerppatroon

Bij het ontwikkelen van de webapplicaties moet ook een ontwerppatroon gekozen worden. Een ontwerppatroon zorgt voor een structuur binnen de code. Dit is nodig om het overzichtelijk te houden en om er voor te zorgen dat andere ontwikkelaars sneller begrijpen hoe de code in elkaar zit.

Voor dit project wordt Model-View-Controller gebruikt, dit ontwerppatroon zorgt voor een makkelijke schaalbaarheid en organiseert de code duidelijk. Het gebruiken van dit (populaire) patroon zorgt er ook voor dat er op internet makkelijker oplossingen tot bepaalde problemen met de code kan worden gevonden.

Voor meer informatie over de mogelijke ontwerppatronen en hun voordelen, gelieve bijlage PV004 te bekijken.

Voor praktische informatie over het gebruik van dit patroon in de toepassing, gelieve bijlage PV100 te bekijken.

Figuur 3 De werking van het Model-View-Controller patroon

Page 16: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

15

5.4.4 Database

5.4.4.1 Server

Als database software kunnen we kiezen uit verschillende pakketten die elk hun eigen voordelen bieden:

• Microsoft SQL Server o Schaalbaar o Performant o Geavanceerd

• MySQL o Gratis o Eenvoudige functionaliteiten o Veelgebruikt voor webtoepassingen

• Oracle SQL o Schaalbaar o Performant o Geavanceerd

In dit project heeft Microsoft SQL Server de beste troeven. Het kan veel data aan en laat toe in de toekomst eenvoudig uit te breiden zonder te moeten denken aan verlies van performantie. Daarnaast is het geen extra investering meer voor het bedrijf, aangezien ze al gebruik maken van Microsoft SQL Server.

Voor een geavanceerde vergelijking tussen de verschillende database-pakketten, gelieve bijlage PV003 te bekijken.

Design

6.1 Data Model

6.1.1 Structuur

Zoals eerder aangegeven zal dit project een object-georiënteerd datamodel gebruiken.

De structuur zorgt er voor dat er slechts één model nodig is waarop code en database gebaseerd zijn. Dit vermindert het werk dat nodig is om in latere projecten zaken toe te voegen of te verwijderen (extra velden, nieuwe CI’s).

Figuur 4 logo's van de vergeleken database-pakketten

Page 17: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

16

Daarnaast is het model zodanig gemaakt dat het toe laat om gemakkelijk nieuwe types CI’s toe te voegen zonder het model helemaal te moeten herwerken. Op de figuur hieronder wordt dat uitgebeeld. Een nieuw type aanmaken is gewoon een nieuwe tabel aanmaken en deze linken aan ConfigurationItem.

6.1.2 Inhoud

De inhoud van het datamodel is deels een vertaling van de structuur van de oude applicatie, minus zaken die overbodig zijn geworden.

Kort samengevat bevat de structuur alles wat nodig is om:

• Virtuele en fysieke servers te beheren • Onderhoudscontracten te beheren • Personen te beheren

6.2 Beveiliging

6.2.1 Beveiligingswijze

Om het gebruiksgemak te verhogen, gebruikt de applicatie de ingebouwde authenticatie methoden van Windows. Hierdoor hoeven gebruikers geen gebruiksnamen of paswoorden in te vullen, maar worden ze geauthentiseerd op basis van het Windows account waar ze mee zijn ingelogd.

Figuur 5 Deel van Datamodel, toont types van CI.

Page 18: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

17

6.2.2 Rollen

Op basis van hun account worden gebruikers ingedeeld in drie mogelijke rollen: administrator, team leader of gast.

Iedereen in het bedrijf kan de informatie opvragen en heeft dus minimaal de rol van ‘gast’. Mensen van de afdeling ‘Server Management’ hebben als rol ‘Administrator’ en kunnen items toevoegen en aanpassen. Enkel te gebruiker met de rol ‘team leader’ kan gegevens verwijderen. Dit is om te voorkomen dat gegevens accidenteel gedeletet worden.

6.3 GUI

6.3.1 Prototype

Figuur 6 Scherm om server aan te passen of toe te voegen

Voor meer prototypes, gelieve document PV010 te bekijken

Page 19: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

18

6.3.2 Uiteindelijke GUI

Voor meer screenshots, gelieve document PV011 te bekijken.

Page 20: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

19

Page 21: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

20

Proces

7.1 Implementatie

De implementatie van de toepassing gebeurde in verschillende fasen en deelfasen. Een eerste fase was het maken van een Proof-Of-Concept. Dit was een kleine demo applicatie gebaseerd op wat in het IT-project was afgesproken.

Hierna zijn op basis van feedback verscheidene dingen aangepast, zodoende beter aan te sluiten bij de noden van de klant. Het bijhouden van bijvoorbeeld RAM, CPU, DISK en Backup informatie voor servers werd geschrapt.

Een volledige fasering kan teruggevonden worden in bijlage PV102 Time sheets and Phases.

7.2 Testen

Het testen gebeurde in twee stappen, enerzijds werden functionaliteiten door de ontwikkelaar getest bij het programmeren zelf. Dit zorgt voor een basis verificatie van de functionaliteit, maar eventueel moeilijk te reproduceren bugs worden hier niet uitgehaald.

Anderzijds werd de applicatie uitvoerig getest door het team van server management. Deze methode was zeer effectief en heeft nog een groot aantal bugs gevonden.

Meer informatie over het testen kan teruggevonden worden in bijlage PV101 Tests and Results.

7.3 Kennis Overdracht

De kennisoverdracht van de applicatie werd gedaan naar Luc Van Den Berg en Olivier Vertriest. Hier werden twee meetings voor gehouden, waarin de structuur van de code werd uitgelegd. Dit werd ook in een document vervat.

Daarnaast zijn er ook nog enkele documenten beschikbaar die stap voor stap bepaalde codewijzigingen uitleggen. Deze kunnen in de bijlagen worden gevonden, ze hebben steeds de naam PV11x.

Page 22: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

21

Deel 3: Kritische SWOT-analyse van het resultaat De feiten bekeken

8.1 Verwezelijking requirements

8.1.1 Funtionaliteiten

De belangrijkste requirements zijn geïmplementeerd. Dit houdt in dat gebruikers van de applicatie verschillende soorten servers kunnen aanmaken, aanpassen, lezen en verwijderen.

Daarnaast zijn een aantal minder belangrijke, doch zeer interessante requirements voor de gebruiksvriendelijkheid geïmplementeerd. Men kan eenvoudig zoeken naar een bepaalde server, men kan items sorteren, filteren.

Persoonlijk had ik graag nog enkele extra functionaliteiten geïmplementeerd, maar hier was geen tijd meer voor. Manieren om eenvoudig data te importeren en exporteren binnen de applicatie is hier een voorbeeld van.

8.1.2 GUI

De GUI is naar mijn mening 95% in orde, hier en daar is er nog mogelijkheid tot verbetering. Jammer genoeg vraagt het perfectioneren van een GUI veel extra tijd. Aangezien het een webapplicatie is, moeten alle functie op verschillende browsers werken, wat het perfectioneren nog bemoeilijkt.

8.2 Testen van de applicatie

Het testen van de applicatie had beter gekund. De applicatie werd manueel getest door het team, hierdoor worden niet alle fouten gevonden. Het zou beter zijn geweest om de testen te automatiseren.

Hier was jammer genoeg de tijd niet voor, daarom is er voor manueel testen gekozen. Wat toch ook wel een groot aantal fouten heeft opgelost.

8.3 Procesmatig werken & planning

In het begin werd er met SCRUM gewerkt, dit is een software development methode die helpt bij het plannen en het stellen van deadlines bij een project.

Na enige tijd is gebleken dat deze methode niet goed werkt voor één ontwikkelaar (methode is handig voor teams van ontwikkelaars). Het zorgde voor meer tijdverlies dan dat het opbracht.

Er is daarom gekozen om SCRUM niet helemaal te volgen. De requirements werden geprioriteerd en er werd ingeschat hoeveel tijd ze zouden kosten. Het was duidelijk dat de belangrijkste requirements

Page 23: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

22

zeker op tijd klaar zouden geraken, daarom was het niet meer nodig om deadlines te stellen voor elke requirement, maar eerder een ‘high-level’ deadline voor een groep van requirements. Dit zorgde voor een aanzienlijke vermindering van administratie.

Daarnaast werd er regelmatig overlegd met het team om te kijken waar er problemen zaten in de applicatie en hoe we deze konden oplossen. De samenwerking verliep vlot.

SWOT-Diagram

Strenghts•Applicatie zit goed in elkaar•Resultaat is er

Weaknesses•Testing kon beter

Opportunities•App. laat makkelijk aanpassingen toe

Threats•Gebruikte methodes moeten bij de grote van het project passen

Page 24: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

23

Deel 4: Persoonlijk Ontwikkelingsplan Focuscompetenties

Dit zijn de gekozen focuscompetenties bij het begin van de stage.

Score-Schaal: Level 0: Competentie nog niet ontwikkeld. Level 1: Basis niveau Level 2: Gevorderd niveau Level 3: Expert

10.1 Algemene Competenties

Competentie Beginscore Vlot functioneren in een professionele (Internationale) omgeving. 0

10.2 IT-Specifieke

Competentie Beginscore Nieuwe IT-oplossingen autonoom uitwerken in overeenstemming met de verwachtingen van de opdrachtgever.

1

Gegevens verzamelen, opslaan en ter beschikking stellen zodat deze op een correcte en gebruiksvriendelijke manier kunnen worden opgevraagd.

1

De informatiebehoeften van een organisatie gestructureerd en overzichtelijk weergeven, gebruik makend van analyse- en modelleringstechnieken.

1

Opgedane ervaringen Zoals verwacht, was de stage het uitwerken van het IT-project. Het was duidelijk dat ik als enige programmeur zou werken aan de SCMDB.

Ik heb hier zeker geleerd om zelfstandig te werken, maar dit te doen op een manier die de efficiëntie niet verlaagd, m.a.w. hulp vragen wanneer het nodig is, i.p.v. zelf te blijven zoeken en tijd te verliezen.

Daarnaast heb ik geleerd dat in team werken moeilijk kan zijn, het is zonder vergaderingen te organiseren moeilijk om beslissingen te nemen. Ook al zijn het kleinigheden, het lijkt het beste van steeds iedereen op de hoogte te brengen hetzij via mail of via een vergadering.

Ook heb ik gemerkt, dat je in je planning extra tijd moet voorzien als je van iemand iets moet krijgen. Dit omdat het soms lang kan duren voor die persoon een bepaald iets klaar heeft (door vakantie, te veel werk). Dit is iets waar ik niet aan had gedacht.

Ten slotte heb ik geleerd om kwalitatiever te vergaderen, door bijvoorbeeld een agenda te voorzien en notities te maken tijdens de vergadering.

Page 25: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

24

Nog te verbeteren punten Wat nog te verbeteren is, is het nemen van de leiding in bepaalde zaken. In de stage is dit niet altijd tot uiting gekomen, waar het soms wel zou moeten. Meer de leiding nemen zou geleid hebben tot efficiëntere communicatie met het team. Naar het einde van de stage toe is dit wel verbeterd.

Competentiegroei Door wat ik geleerd heb tijdens de stage ben zowel ik als de stagementor van oordeel dat ik voor alle onderdelen naar niveau twee geëvolueerd ben.

De algemene competentie is gestegen naar niveau 2, vooral door alle elementen genoemd in het onderdeel “Opgedane ervaringen”.

De IT-specifieke competenties zijn allemaal 1 niveau gestegen, dit komt vooral door dat de technische kant van het project volledig door mij moest uitgewerkt worden.

13.1 Algemene Competenties

Competentie Beginscore Eindscore Vlot functioneren in een professionele (Internationale) omgeving. 0 2

13.2 IT-Specifieke

Competentie Beginscore Nieuwe IT-oplossingen autonoom uitwerken in overeenstemming met de verwachtingen van de opdrachtgever.

1 2

Gegevens verzamelen, opslaan en ter beschikking stellen zodat deze op een correcte en gebruiksvriendelijke manier kunnen worden opgevraagd.

1 2

De informatiebehoeften van een organisatie gestructureerd en overzichtelijk weergeven, gebruik makend van analyse- en modelleringstechnieken.

1 2

Page 26: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

25

Lijst van Bijlagen • PV000-PID • PV001-Requirements Analysis • PV002-Previous Application Analysis • PV003-Technology Selection • PV004-ASP.NET Design Pattern Selection • PV005-Actors • PV006-Use Cases • PV008-Requirements for a generic CMDB • PV009-Data Model • PV010-GUI Prototype • PV011-Completed GUI • PV013-Meeting Minutes • PV101-Tests and Results • PV102-Time Sheets and Phases • PV103-SCMDB Data Migration Plan • PV110 - SCMDB Theoretical - Code Basics • PV111 - SCMDB Practical - Adding new External Data Tools • PV112 - SCMDB Practical - Modifying the navigation bar • PV113 - SCMDB Practical - Deploying and Configuring - Web Deploy • PV114 - SCMDB Practical - Deploying and Configuring - Manual Deploy • PV115 - SCMDB Practical - Adding or Removing a field • PV116 - SCMDB Practical - Changing Security Settings • PV150-Bibliography for Development Phase • PV200-Presentation • PVEL001-Migration Templates* • PVEL002-Logical Data Model* • PVEL003-Autogenerated DB*

*enkel elektronisch beschikbaar

Page 27: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Project Initiation Document

2013

P&V (S)CMDB TIM D'HOE

DOC N°: PV000

Page 28: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

1 TABLE OF CONTENTS 1 About this document ................................................................................................................... 2

1.1 Purpose .................................................................................................................................. 2

1.2 Advice ..................................................................................................................................... 2

1.3 General Information ............................................................................................................. 3

1.4 Revision History ..................................................................................................................... 3

1.5 Approvals ............................................................................................................................... 3

2 Project Definition .......................................................................................................................... 4

2.1 Background ........................................................................................................................... 4

2.2 Project objectives ................................................................................................................. 4

2.2.1 Time ................................................................................................................................ 4

2.2.2 Cost ................................................................................................................................. 4

2.2.3 Scope .............................................................................................................................. 4

2.2.4 Risks ................................................................................................................................ 4

2.2.5 Performance goals ........................................................................................................ 4

2.3 Desired outcomes................................................................................................................. 5

2.4 Project scope and exclusions .............................................................................................. 5

2.5 Constraints and assumptions .............................................................................................. 6

2.5.1 Quality ............................................................................................................................ 6

2.5.2 Time ................................................................................................................................ 6

2.6 The user(s) and any other known interested parties ..................................................... 6

2.7 Interfaces................................................................................................................................ 6

3 Project Approach .......................................................................................................................... 7

3.1 Methodology ......................................................................................................................... 7

3.2 Phases ..................................................................................................................................... 7

3.3 Project Management Team Structure ............................................................................. 8

3.4 Role Descriptions .................................................................................................................. 8

3.5 Quality Management Strategy ........................................................................................ 9

3.6 Configuration Management Strategy ........................................................................... 9

3.7 Risk Management Strategy ............................................................................................... 9

3.8 Communication Management Strategy ......................................................................... 9

4 Project Plan .................................................................................................................................. 10

5 Project C ontrols .............................................................................. Error! Bookmark not defined.

1

Page 29: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

1 ABOUT THIS DOCUMENT

1.1 PURPOSE The purpose of the Project Initiation Documentation is to define the project, in order to form the basis for its management and an assessment of its overall success. The Project Initiation Documentation gives the direction and scope of the project and (along with the Stage Plan) forms the ‘contract’ between the Project Manager and the Project Board.

The three primary uses of the Project Initiation Documentation are to:

• Ensure that the project has a sound basis before asking the Project Board to make any major commitment to the project

• Act as a base document against which the Project Board and Project Manager can assess progress, issues and ongoing viability questions

• Provide a single source of reference about the project so that people joining the temporary organization can quickly and easily find out what the project is about, and how it is being managed.

The Project Initiation Documentation is a living product in that it should always reflect the current status, plans and controls of the project. Its component products will need to be updated and re-baselined, as necessary, at the end of each stage, to reflect the current status of its constituent parts.

The version of the Project Initiation Documentation that was used to gain authorization for the project is preserved as the basis against which performance will later be assessed when closing the project.

1.2 ADVICE The Project Initiation Documentation is derived from the Project Brief and discussions with user, business and supplier stakeholders for input on methods, standards and controls. The Project Initiation Documentation could be a single document; an index for a collection of documents; a document with cross references to a number of other documents; a collection of information in a project management tool.

The following quality criteria should be observed:

• The Project Initiation Documentation correctly represents the project • It shows a viable, achievable project that is in line with corporate strategy or overall

program needs • The project management team structure is complete, with names and titles. All the

roles have been considered and are backed up by agreed role descriptions. The relationships and lines of authority are clear. If necessary, the project management team structure says to whom the Project Board reports

• It clearly shows a control, reporting and direction regime that can be implemented, appropriate to the scale, risk and importance of the project to corporate or program management

• The controls cover the needs of the Project Board, Project Manager and Team Managers and satisfy any delegated assurance requirements

• It is clear who will administer each control • The project objectives, approach and strategies are consistent with the organization’s

corporate social responsibility directive, and the project controls are adequate to ensure that the project remains compliant with such a directive

• Consideration has been given to the format of the Project Initiation Documentation. For small projects a single document is appropriate. For large projects it is more appropriate for the Project Initiation Documentation to

2

Page 30: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

be a collection of stand-alone documents. The volatility of each element of the Project Initiation Documentation should be used to assess whether it should be stand-alone, e.g. elements that are likely to change frequently are best separated out.

1.3 GENERAL INFORMATION Project Name: P&V SCMDB Date: 09/10/13 Release: Draft/Final Author:

Tim D’hoe

Owner:

Tim D’hoe

Client:

P&V

Document Number: PV000

1.4 REVISION HISTORY Revision Date

Previous Revision Date

Summary of Changes Changes Marked

9/10/2013 / Initial creation 21/10/2013 9/10/2013 Layout cleanup 5/11/2013 21/10/2013 Phases edited 12/11/2013 5/11/2013 Minor edit objectives 22/11/2013 12/11/2013 Edit configuration management strategy. 27/11/2013 22/11/2013 Minor changes based on feedback from

employer.

1.5 APPROVALS This document requires the following approvals. A signed copy should be placed in the project files.

Name Signature Title Date of Issue

Version

3

Page 31: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

2 PROJECT DEFINITION

2.1 BACKGROUND P&V (Prévoyance & Voorzorg) is a Belgian insurance company founded in 1907. They offer anything from travel insurance to payment protection insurance and are located in Brussels and Antwerp. A company like P&V needs a lot of servers to operate, they currently have over 300. All of these servers have basic information that needs to be recorded. This can be for example: date of purchase, operating system, the role it plays, etc.... Currently all of this is done in Microsoft Access. However, P&V has grown over the years and the current solution is not efficient enough anymore. Therefore they would like to convert their existing “SCMDB (Server Configuration Management Database)” to a new more powerful and versatile application, which is also future ready.

2.2 PROJECT OBJECTIVES

2.2.1 Time The analysis has to be finished by 31 Jan 2014. Actual implementation will start on 10 Feb 2014 and ends 28 May 2014.

2.2.2 Cost No additional costs should be made, the hardware and software required is either free or already available.

2.2.3 Scope For details about scope, please refer to “2.4 Project scope and exclusions”.

2.2.4 Risks For details about the risks involved, please refer to “3.7 Risk Management Strategy”.

2.2.5 Performance goals The application and database should run smoothly. Performance is not expected to be an issue, since the application will never handle many users or queries at the same time. This is because it is only used internally by the IT department.

4

Page 32: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

2.3 DESIRED OUTCOMES • A CMDB application to manage, add and delete all server information and generate

reports. • Documentation, including but not limited to:

o Source C ode o Application Manual o Datamodel Description o Use C ases o System Test Report o System Test Scenario o Unit Test Report o Unit Test Scenario o Requirements Analysis o User Roles o Project Initiation Document o Project C losure Document

2.4 PROJECT SCOPE AND EXCLUSIONS

• C reating a new database structure using the old Access Database as a guideline. o The structure will allow future projects to build upon this one, adding more

CMDB functionality by doing so. The database will therefore be generalized. • Creating a frontend for the database, with full CRUD capabilities.

o Frontend will be designed to handle Configuration Management for Servers only. Other types will not be supported. C onfiguration Management for Servers includes:

• Server Hardware information • Function of the server • O perating system running on the server • Applications running on the server • Information about backups of the server • . . .

o Support for authentication on the application level. Authentication via Active Directory. A group with full C RUD capabilities and one with read-only

capabilities. o Look & feel: front-end looks like existing DSL-application (internal application). o Reports can be created within the application.

• Module will be included to allow batch exporting and importing data in a universal way.

• Setting up required servers (for example database server) will not be done in this project, it is assumed that this is already done.

• Migrating data from the old application will not be done, company has indicated that they want to do this themselves.

5

Page 33: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

2.5 CONSTRAINTS AND ASSUMPTIONS

2.5.1 Quality • The project has to be managed according to Prince2 guidelines. • Internal employees need to be able to manage the resulting application/code (e.g.

source code needs to be in a coding language known in-house and code should be well documented).

• The application and database should run smoothly. Performance is not expected to be an issue, since the application will never handle many users or queries at the same time. This is because it is only used internally by the IT department.

2.5.2 Time

• The analysis stage of this project needs to be completed by 31 Jan 2014. • Actual implementation will start on 10 Feb 2014 and ends 28 May 2014.

2.6 THE USER(S) AND ANY OTHER KNOWN INTERESTED PARTIES Several stakeholder are involved with this project. All of them are internal to the company.

The user of the application will always be someone from the IT department of P&V.

Another stakeholder is of course the IT department of the company as a whole. It is important for them that the application is finished, as it will be more efficient as the previous one. Efficacy improvement is critical for the IT department, as they are already have too much work.

2.7 INTERFACES • A copy of the existing DSL-application is required for the GUI design. • A copy of the existing CMDB (in Access) is required before data modelling is

started.

6

Page 34: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3 PROJECT APPROACH

3.1 METHODOLOGY Scrum will be adopted for the implementation of this project. An initial Project Plan will be prepared incorporating key activities, specific actions required, responsibilities and target dates. After every sprint an evaluation report will be created. This will include the following topics:

• Progress against key objectives • Issues affecting progress • Progress planned for the next sprint

Figure 1: The Process behind a Sprint

3.2 PHASES • Definition Phase • Generic Design Phase • Design Phase • Implementation Phase • Automatic Backup and Monitoring Check Tool Phase

7

Page 35: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3.3 PROJECT MANAGEMENT TEAM STRUCTURE

3.4 ROLE DESCRIPTIONS Person Role Frank Vansweevelt Project Manager Tim D’hoe Lead Software Engineer, Analyst Ruud Goossens Software Architect of DSL-application Eric Lemy Architect of current Access Database Luc Van den Berg Review, testing, functional input Giancarlo Anastasia Review, testing, functional input Danny Vounckx Review, testing, functional input Tim Hulsens Review, testing, functional input

Project ManagerFrank Vansweevelt

Software Engineer, AnalystTim D'hoe

End User, TesterEric Lemy

End User, TesterTim Hulsens

End User, TesterLuc Van den Berg

End User, TesterGiancarloAnastasia

End User, TesterDanny Vounckx

8

Page 36: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3.5 QUALITY MANAGEMENT STRATEGY To achieve the highest quality levels possible, several methods will be used in this project.

• PRIN C E2 principals • Testing • Intense communication with customer, to ensure quality meets the demands.

3.6 CONFIGURATION MANAGEMENT STRATEGY The project’s products will be structured as follows:

• All documents have the date as version number (YYYYMMDD). • All document have a filename starting with PVXXX with XXX being a number. • All documents have a table of contents • All documents have a description explaining their purpose. • Documents will be in WO RD format. • Source code will have a proper name with date as the version number. • Source code will be in ZIP format.

3.7 RISK MANAGEMENT STRATEGY

Risk Probability Impact Total (*) Action Taken Failing to meet deadlines

3 6 18

Level of ASP not high enough

6 9 54 Take ASP course (online)

3.8 COMMUNICATION MANAGEMENT STRATEGY After the initial PID has been approved, communication will be as follows:

• Every week, a summary of what has been done will be sent to the project manager. • After the completion of every sprint, a summary of what has been done will be sent

to the project manager.

9

Page 37: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4 PROJECT PLAN Please refer do doc PV011

10

Page 38: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Requirements Analysis

1 CONTENTS

2 About this document .................................................................................................................. 1

3 Requirements Engineering ......................................................................................................... 2

2 ABOUT THIS DOCUMENT

Project P&V SCMDB

Document Number PV001

Status Final

Current Revision 20140510F

Changelog Removed ‘reporting’ req.

Past Revisions Changelog

20131106D Removed normal user

20131105D Adding user roles

20131030D Initial Creation

This document contains the requirements for the project.

1

Page 39: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3 REQUIREMENTS ENGINEERING

Id Title Type State Priority Owner

BREQ-140 The application is secure and prevents unauthorized access. Business Requirement Approved High

BREQ-141 The application has decent performance. Business Requirement Approved Normal

BREQ-144 The application has to be user friendly. Business Requirement Approved High

BREQ-151 Application is OS independent. Business Requirement Approved High

BREQ-152 The application is low cost. Business Requirement Approved Normal

BREQ-153 Application can be maintained by existing personnel. Business Requirement Approved Very High

BREQ-154 Application is always available. Business Requirement Approved Normal

BREQ-160 The application is designed with future expandability in mind. Business Requirement Approved Normal

BREQ-161 The application is designed with CMDB best practices in mind. Business Requirement Approved Normal

FEAT-106 A user can search the database easily. Feature Draft High

2

Page 40: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

FEAT-107 A user can log in. Feature Approved High

FEAT-108 A user can log out. Feature Approved Normal

FEAT-109 An administrative user can modify server information. Feature Approved Very High

FEAT-110 An administrative user can add a server. Feature Approved Very High

FEAT-111 A team leader user can remove a server. Feature Approved High

FEAT-112 An administrative user can create a report. Feature Canceled Very High

FEAT-115 An administrative user can modify the layout of a specific CI-type. Feature Canceled Normal

FEAT-122 A user can export a report as CSV. Feature Approved Normal

FEAT-124 A user can export one or more server's detailed information as CSV. Feature Canceled High

FEAT-126 A user can create an advanced SQL search query easily. Feature Canceled Normal

FEAT-133 An administrative user can delete a report. Feature Canceled Normal

FEAT-134 An administrative user can modify a report. Feature Canceled Normal

FEAT-135 A user can view a report. Feature Canceled Normal

3

Page 41: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

FEAT-139 A user can view server information. Feature Approved Normal

FEAT-140 A user can search for servers easily. Feature Approved High

FEAT-141 A user can view servers per application. Feature Approved High

FEAT-142 A user can view servers per VLAN. Feature Approved High

FEAT-143 A server name must be capitalized. Feature Approved Normal

FEAT-144 An item’s IP address must match its VLAN. Feature Approved Normal

4

Page 42: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Pre-existing application analysis

1 CONTENTS

2 About this document .................................................................................................................. 1

3 Document Summary .................................................................................................................... 2

4 Structural Overview ...................................................................................................................... 3

5 Structural Analysis ........................................................................................................................ 4

5.1 Structure Detail ..................................................................................................................... 4

5.2 Weak Points .......................................................................................................................... 5

6 Database Usage ............................................................................................................................ 6

6.1 Forms & Queries .................................................................................................................. 6

6.2 Weak Points .......................................................................................................................... 6

7 What to keep ................................................................................................................................ 6

7.1 Requirements Summary ...................................................................................................... 6

7.2 Structure ................................................................................................................................. 7

7.2.1 Overview ........................................................................................................................ 7

7.2.2 Explanation .................................................................................................................... 8

7.3 Conclusion ............................................................................................................................. 8

7.3.1 Application ..................................................................................................................... 8

7.3.2 Database structure ....................................................................................................... 8

2 ABOUT THIS DOCUMENT

Project P&V SCMDB

Document Number PV002

Status Final

Revision 20140104F

1

Page 43: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Changelog Document finalization

Past Revisions Changelog

20131105D Initial Creation

20131231D Added database usage chapter

This document contains information about the previous (S)CMDB solution that was used

at P&V.

The analysis consists of a breakdown of the database structure of the file SCMDB.mdb

and a quick look at how the database is used. This is a Microsoft Access database.

Based on this analysis it will be decided which parts of the structure will be kept in the

new application.

3 DOCUMENT SUMMARY

The database structure needs to be reworked, it’s also important to not make the same

mistakes again in the new application.

2

Page 44: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4 STRUCTURAL OVERVIEW

Figuur 1 Database structure of existing application 3

Page 45: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

5 STRUCTURAL ANALYSIS

The current database is an RDBMS in Microsoft Access.

5.1 STRUCTURE DETAIL

TABLE DESCRIPTION

SERVERS_PHYSICAL Contains physical information about the

servers (serial num., location,...).

SERVERS Contains non-physical, often variable

information about the servers (server

name, domain name,...).

SERVERS_VMWARE Contains information about virtual

VMware servers.

SUPPORTCONTRACTS Contains the support SupportID for every

server.

SUPPORT Contains information about Support

Companies.

MEM CONFIG Contains RAM details of the servers.

DATASTORE ?

COMPANIES Table containing company names.

VLAN Contains information about VLAN’s

SUPPLIERS Contains information about suppliers

LUN Contains information about the LUNs for

each server

CONTACTS Contains information about the contacts

for each server.

APPLICATIONS Contains information about the

applications/role of every server

NETWORKTOPOLOGY Contains network information

DISK CONFIG Contains disk information per server

BACKUPINFO Contains backup information per server

NICCONFIG Contains NIC information per server

SERVICESTOMONITOR Contains services that are monitored per

server

4

Page 46: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

OS Contains operating system information per

server

SHARES Contains information about the shares

that exist on every server

5.2 WEAK POINTS

The current structure presents problems, namely:

• Tables don’t always have their FK’s referenced the correct PK.

• Many fields remain unused

5

Page 47: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

6 DATABASE USAGE

6.1 FORMS & QUERIES

Several forms and queries are used to maintain the database.

Unfortunately there are a lot of them, many are not used or are

replaced with newer versions.

6.2 WEAK POINTS

• Unused queries and forms

• Reduced efficiency because of the many irrelevant queries

and forms

7 WHAT TO KEEP

7.1 REQUIREMENTS SUMMARY

For this project the customer has the following requirements:

• Performance is not a critical factor (only internal usage, for only one department).

• Application has to scale well (CMDB can be extended in the future).

• Application needs to be user friendly.

For detailed information about the requirements for this project, please check document

PV001.

6

Page 48: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

7.2 STRUCTURE

7.2.1 Overview

Figuur 2 Existing database, with fields and tables marked depicting what to keep and what not in the new data structure

7

Page 49: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

7.2.2 Explanation

This image show the field that will be incorporated in the new application in green. The

tables with red crosses are no longer necessary. This has been selected based on

interviews with the client.

7.3 CONCLUSION

7.3.1 Application

Due to the database being in Microsoft Access, the following problems arise:

• Does not scale well

• Bad performance in large databases

• Hard limits prevent database expansion

• Drop in user friendliness when database grows larger

This can be resolved by using different database software instead of Microsoft Access.

7.3.2 Database structure

The database structure needs to revised, currently there are a lot of unused fields and

tables that clutter the database.

Another problem is that the current structure prevents expansion, which is required for

the new CMDB.

We can conclude the structure itself cannot be reused in the new application.

8

Page 50: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Technology Selection

1 CONTENTS 2 About this document ................................................................................................................... 1

3 Document Summary ..................................................................................................................... 1

4 Requirements ................................................................................................................................ 2

4.1 Requirements Summary ....................................................................................................... 2

4.2 Application Type ................................................................................................................... 2

4.3 C ompany Resources ............................................................................................................. 2

5 Web Application Languages ....................................................................................................... 3

5.1 C omparison Table ................................................................................................................ 3

5.2 C hosen Language ................................................................................................................. 3

6 Database Software ....................................................................................................................... 4

6.1 C omparison Table ................................................................................................................ 4

6.2 C hosen Database Server ..................................................................................................... 4

7 Bibliography .................................................................................................................................. 4

2 ABOUT THIS DOCUMENT Project P&V SC MDB Document N umber PV003 Status Final Revision 20140104F C hangelog Document finalization Past Revisions C hangelog

20131105D Initial C reation 20131231D Added comparison tables

This document contains a comparison between technologies that could be usable in this project. Based on that comparison and the needs of the customer, a decision will be made on what technologies will be used.

3 DOCUMENT SUMMARY The application will be an ASP.N ET web application, using SQ L Server as database server.

1

Page 51: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4 REQUIREMENTS

4.1 REQUIREMENTS SUMMARY For this project the customer has the following requirements:

• Application is O S independent. • Application is always available. • Low cost (no additional costs preferred). • Performance is not a critical factor (only internal usage, for only one department). • Application can be maintained by existing personnel. • Application has to scale well (C MDB can be extended in the future).

For detailed information about the requirements for this project, please check document PV001.

4.2 APPLICATION TYPE Because of the first two requirements, the application can only be a J ava application (platform independence), or a web application.

Mobile devices are becoming more popular. This has to be kept in mind for future expansion of the application. Because of this Java would be a bad choice. Mobile devices do not have J ava support.

The only remaining option is a web application.

4.3 COMPANY RESOURCES Within the company there is already a C MDB related application deployed (DSL-application).

This is an ASP.N ET application. ASP.N ET is therefore preferred as there is already someone within the company that has experience with it.

This also reduces costs, because there is already an ASP.N ET server available for use. The DSL-application uses SQ L Server as its database server. For consistency en budgetary reasons, it would be wise to also use SQ L Server for this project.

2

Page 52: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

5 WEB APPLICATION LANGUAGES

5.1 COMPARISON TABLE PHP ASP.NET JSP Scalability +++ ++++ ++++ Easy of learning +++ ++ ++

Features +++ ++++ ++++ Performance ++++ ++++ +++ Support Community ++++ ++++ ++++

5.2 CHOSEN LANGUAGE ASP.NET and JSP are best for this project. PHP is less interesting because it is less used in the professional world. Choosing PHP would make it harder to find someone capable of maintaining / upgrading the application.

Since the company already works with ASP.NET, this will be the best choice for this project.

3

Page 53: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

6 DATABASE SOFTWARE

6.1 COMPARISON TABLE

6.2 CHOSEN DATABASE SERVER For this project, it is important to remember that the project is laying the foundation for a complete CMDB. Therefore SQL Server or Oracle would be good choices. Primarily because these are great for expandability and scalability.

Since the company already has SQL Server, it is the most cost effective to use this for the project.

7 BIBLIOGRAPHY A comparison of PHP vs ASP.net, Performance, Cost, Scalability, Support and Complexity. (2013, 12

31). Retrieved from Comentum: http://www.comentum.com/php-vs-asp.net-comparison.html

Access vs SQL Server vs MySQL vs Oracle. (2013, 12 31). Retrieved from Find The Best: http://database-management-systems.findthebest.com/compare/24-26-30-36/Access-vs-Microsoft-SQL-Server-vs-MySQL-vs-Oracle

Johnlim. (2004, 07 01). High Performance, High Scalability PHP is a Lie. Retrieved from PHP Lens: http://phplens.com/phpeverywhere/?q=node/view/55

Performance benchmarking - PHP, ASP, JSP, Coldfusion. (2013, 12 31). Retrieved from LinuxDocs: http://www.linuxdocs.org/HOWTOs/PHP-HOWTO-13.html

MySQL Microsoft Access SQL Server Oracle SQL Performance +++ + ++ ++++ Feature Richness

++ + ++++ ++++

Scalability +++ + +++ +++ Price ++++ +++ ++ + Support C ommunity C ommercial (SLA) Commercial (SLA) C ommercial (SLA)

4

Page 54: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

ASP.NET Design Pattern Selection

1 CONTENTS 2 About this document ................................................................................................................... 1

3 Document Summary ..................................................................................................................... 1

4 Why use a design pattern? .......................................................................................................... 2

5 Available patterns ......................................................................................................................... 2

5.1 WinForms ............................................................................................................................... 2

5.1.1 Advantages .................................................................................................................... 2

5.2 MVC ........................................................................................................................................ 2

5.2.1 Advantages .................................................................................................................... 2

6 Project needs ................................................................................................................................. 3

7 Bibliography .................................................................................................................................. 3

2 ABOUT THIS DOCUMENT Project P&V SC MDB Document N umber PV003 Status Final Revision 20140105F C hangelog Document Finalization Past Revisions C hangelog

20131215D Initial C reation

This document contains a comparison between the possible design patterns that can be used in creating an ASP.N ET application.

3 DOCUMENT SUMMARY Model-View-C ontroller (MVC ) will be used as the design pattern for this project.

1

Page 55: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4 WHY USE A DESIGN PATTERN? Design patterns are important because of the following reasons:

• O ther people will understand your code better (universal way of doing things) • Future readiness (you know how good your pattern scales, performs, .. .)

5 AVAILABLE PATTERNS

5.1 WINFORMS

5.1.1 Advantages • Development supports state: G ives the illusion that a web application is aware of what

the user has been doing, similar to Windows applications. I.e. Makes 'wizard' functionality a little bit easier to implement. Web forms does a great job at hiding a lot of that complexity from the developer.

• Rapid Application Development (RAD): The ability to just ' jump in' and start delivering web forms. This is disputed by some of the MVC community, but pushed by Microsoft. In the end, it comes down to the level of expertise of the developer and what they are comfortable with. The web forms model probably has less of a learning curve to less experienced developers.

• Larger control toolbox: ASP.N ET Web Forms offers a much greater and more robust toolbox (web controls) whereas MVC offers a more primitive control set relying more on rich client-side controls via jQ uery (J avascript).

• Mature: It's been around since 2002 and there is an abundance of information with regards to questions, problems, etc. O ffers more third-party control - need to consider your existing toolkits.

(Biggest advantage to using ASP.N et MVC vs web forms, 2013)

5.2 MVC (MODEL-VIEW-CONTROLLER)

5.2.1 Advantages • Separation of concerns (SoC): From a technical standpoint, the organization of code

within MVC is very clean, organized and granular, making it easier for a web application to scale in terms of functionality. Promotes great design from a development standpoint.

• Easier integration with client side tools (rich user interface tools): More than ever, web applications are increasingly becoming as rich as the applications you see on your desktops. With MVC , it gives you the ability to integrate with such toolkits (such as jQ uery) with greater ease and more seamless than in Web Forms.

• Search Engine Optimization (SEO) Friendly / Stateless: URL's are more friendly to search engines (i.e. mywebapplication.com/users/ 1 - retrieve user with an ID of 1 vs mywebapplication/users/getuser.aspx (id passed in session)). Similarly, since MVC is stateless, this removes the headache of users who spawn multiple web browsers from the same window (session collisions). Along those same lines, MVC adheres to the stateless web protocol rather than 'battling' against it.

• Works well with developers who need high degree of control: Many controls in ASP.N ET web forms automatically generate much of the raw HTML you see when a page is rendered. This can cause headaches for developers. With MVC , it lends itself

2

Page 56: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

better towards having complete control with what is rendered and there are no surprises. Even more important, is that the HTML forms typically are much smaller than the Web forms which can equate to a performance boost - something to seriously consider.

• Test Driven Development (TDD): With MVC , you can more easily create tests for the web side of things. An additional layer of testing will provide yet another layer of defense against unexpected behavior.

(Biggest advantage to using ASP.N et MVC vs web forms, 2013)

6 PROJECT NEEDS As stated in previous documents, the C MDB application need to be able to scale. The application has to have to capability to grow exponentially. Besides that is testing also important.

There is only one pattern that allows there two things and that is MVC . Therefore MVC will be used for this project.

7 BIBLIOGRAPHY Biggest advantage to using ASP.Net MVC vs web forms. (2013, 04 08). Opgehaald van

StackOverflow: http:/ /stackoverflow.com/questions/102558/biggest-advantage-to-using-asp-net-mvc-vs-web-forms

Galipeau, G. (2008, 04 04). Choosing a UI Pattern (MVC, MVP, and ASP.Net MVC). Opgehaald van GregGalipeau : http:/ /www.greggalipeau.com/2008/04/04/choosing-a-ui-pattern-mvc-mvp-and-aspnet-mvc/

Sukesh, M. (2013, 02 07). WebForms vs. MVC. Opgehaald van Code Project: http:/ /www.codeproject.com/Articles/528117/WebForms-vs-MVC

3

Page 57: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Actors

1 CONTENTS 2 About this document ................................................................................................................... 1

3 Document Summary ..................................................................................................................... 1

4 Actors .............................................................................................................................................. 2

4.1 List ........................................................................................................................................... 2

4.2 Detail ...................................................................................................................................... 3

4.2.1 Administrative user ....................................................................................................... 3

4.2.2 Read-only User .............................................................................................................. 3

4.2.3 Teamleader User ........................................................................................................... 3

2 ABOUT THIS DOCUMENT Project P&V SC MDB Document N umber PV005 Status Final Revision 20140305F C hangelog Added teamleader Past Revisions C hangelog 20140104F Document finalization

20131231D Initial C reation

This document contains a list of the different types of people that will be using the application, so called “Actors”.

Each “Actor” has a different set of responsibilities/actions that he can do within the application (Goals).

3 DOCUMENT SUMMARY There are three actors, namely:

• Read-only User • Administrative User • Team Leader User

1

Page 58: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4 ACTORS

4.1 LIST ID Name Description Goals ACTR-103 Administrative User A user with Create, Read and Update capabilities.

This user can do everything except deleting.

Add server information. Edit server information. Manage application settings.

ACTR-102 Read-Only User A user with limited access, can only view information.

Limited CRUD capabilities.

View server information. View reports.

ACTR-103 Team Leader User This user can delete entire servers. Delete server information

2

Page 59: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4.2 DETAIL

4.2.1 Administrative user ID: ACTR-103

Use Cases where this actor is a Primary Actor Authenticate User UC-116 Create a server UC-118 Use Simple Search UC-120 Use Advanced Search UC-121 Modify a server UC-128 C reate a report UC -129

Modify a report UC -130

View a report UC -131

Delete a report UC -132

View a server UC -137

Export selection as C SV UC -164

4.2.2 Read-only User ID: AC TR-102

Use Cases where this actor is a Primary Actor Authenticate User UC -116

Use Simple Search UC -120

Use Advanced Search UC -121

View a report UC -131

View a server UC -137

Export selection as C SV UC -164

4.2.3 Teamleader User ID: AC TR-103

Use Cases where this actor is a Primary Actor Delete a server UC -135

3

Page 60: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Use Cases

1 CONTENTS 2 About this document ................................................................................................................... 3

3 Authenticate User ........................................................................................................................... 4

3.1 Description (Goal in context)................................................................................................... 4

3.2 Primary Actors ......................................................................................................................... 4

3.3 Pre conditions .......................................................................................................................... 4

3.4 Main Flow-of-Events................................................................................................................ 4

3.5 Alternate Flows........................................................................................................................ 4

3.6 Post conditions ........................................................................................................................ 4

3.7 Linked Requirements ............................................................................................................... 5

4 Create a server ................................................................................................................................ 6

4.1 Description (Goal in context)................................................................................................... 6

4.2 Primary Actors ......................................................................................................................... 6

4.3 Pre conditions .......................................................................................................................... 6

4.4 Main Flow-of-Events................................................................................................................ 6

4.5 Alternate Flows........................................................................................................................ 6

4.6 Post conditions ........................................................................................................................ 7

4.7 Linked Requirements ............................................................................................................... 9

5 Modify a server .............................................................................................................................. 10

5.1 Description (Goal in context)................................................................................................. 10

5.2 Primary Actors ....................................................................................................................... 10

5.3 Pre conditions ........................................................................................................................ 10

5.4 Main Flow-of-Events.............................................................................................................. 10

5.5 Alternate Flows...................................................................................................................... 10

5.6 Post conditions ...................................................................................................................... 11

5.7 Linked Requirements ............................................................................................................. 13

6 Create a report .............................................................................................................................. 14

6.1 Description (Goal in context)................................................................................................. 14

6.2 Primary Actors ....................................................................................................................... 14

6.3 Pre conditions ........................................................................................................................ 14

6.4 Main Flow-of-Events.............................................................................................................. 14

6.5 Alternate Flows...................................................................................................................... 14

1

Page 61: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

6.6 Post conditions ...................................................................................................................... 15

6.7 Linked Requirements ............................................................................................................. 15

7 Modify a report ............................................................................................................................. 16

7.1 Description (Goal in context)................................................................................................. 16

7.2 Primary Actors ....................................................................................................................... 16

7.3 Pre conditions ........................................................................................................................ 16

7.4 Main Flow-of-Events.............................................................................................................. 16

7.5 Alternate Flows...................................................................................................................... 16

7.6 Post conditions ...................................................................................................................... 17

7.7 Linked Requirements ............................................................................................................. 17

8 Delete a report .............................................................................................................................. 18

8.1 Description (Goal in context)................................................................................................. 18

8.2 Primary Actors ....................................................................................................................... 18

8.3 Pre conditions ........................................................................................................................ 18

8.4 Main Flow-of-Events.............................................................................................................. 18

8.5 Alternate Flows...................................................................................................................... 18

8.6 Post conditions ...................................................................................................................... 18

8.7 Linked Requirements ............................................................................................................. 19

9 View a report ................................................................................................................................. 20

9.1 Description (Goal in context)................................................................................................. 20

9.2 Primary Actors ....................................................................................................................... 20

9.3 Pre conditions ........................................................................................................................ 20

9.4 Main Flow-of-Events.............................................................................................................. 20

9.5 Alternate Flows...................................................................................................................... 20

9.6 Post conditions ...................................................................................................................... 20

9.7 Linked Requirements ............................................................................................................. 21

10 Use Simple Search ..................................................................................................................... 22

10.1 Description (Goal in context)................................................................................................. 22

10.2 Primary Actors ....................................................................................................................... 22

10.3 Pre conditions ........................................................................................................................ 22

10.4 Main Flow-of-Events.............................................................................................................. 22

10.5 Alternate Flows...................................................................................................................... 22

10.6 Post conditions ...................................................................................................................... 22

10.7 Linked Requirements ............................................................................................................. 23

11 Use Advanced Search ................................................................................................................ 24

11.1 Primary Actors ....................................................................................................................... 24

2

Page 62: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

11.2 Main Flow-of-Events.............................................................................................................. 24

11.3 Alternate Flows...................................................................................................................... 24

11.4 Post conditions ...................................................................................................................... 24

12 View a server ............................................................................................................................. 26

12.1 Description (Goal in context)................................................................................................. 26

12.2 Primary Actors ....................................................................................................................... 26

12.3 Pre conditions ........................................................................................................................ 26

12.4 Main Flow-of-Events.............................................................................................................. 26

12.5 Alternate Flows...................................................................................................................... 26

12.6 Linked Requirements ............................................................................................................. 27

13 Delete a server .......................................................................................................................... 28

13.1 Description (Goal in context)................................................................................................. 28

13.2 Primary Actors ....................................................................................................................... 28

13.3 Main Flow-of-Events.............................................................................................................. 28

13.4 Alternate Flows...................................................................................................................... 28

13.5 Post conditions ...................................................................................................................... 28

13.6 Linked Requirements ............................................................................................................. 29

14 Export selection as CSV ............................................................................................................. 30

14.1 Description (Goal in context)................................................................................................. 30

14.2 Primary Actors ....................................................................................................................... 30

14.3 Pre conditions ........................................................................................................................ 30

14.4 Main Flow-of-Events.............................................................................................................. 30

14.5 Alternate Flows...................................................................................................................... 30

14.6 Post conditions ...................................................................................................................... 30

14.7 Linked Requirements ............................................................................................................. 31

2 ABOUT THIS DOCUMENT Project P&V SC MDB Document N umber PV006 Status Final Revision 20140110F C hangelog Document Finalization Past Revisions C hangelog

20131215D Initial C reation

3

Page 63: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3 AUTHENTICATE USER UC-116

3.1 DESCRIPTION (GOAL IN CONTEXT) This Use Case documents the process of a user logging in to the application.

3.2 PRIMARY ACTORS • Administrative User [ACTR-103] • Read-Only User [ACTR-102]

3.3 PRE CONDITIONS Active Directory is up and running.

3.4 MAIN FLOW-OF-EVENTS 1. Employee accesses login page

2. Contact Active Directory

3. Throw 403 error.

4. Use Case ends with Failure.

3.5 ALTERNATE FLOWS

3a. Is employee in SCMDB-CRUD group?

1. Grant user administrative privileges

2. Use Case ends with Success.

3b. Is employee in SCMDB-RO group?

1. Grant user read-only privileges

2. Use Case ends with Success.

3.6 POST CONDITIONS Success end condition -User is granted access to the application Failure end condition -User gets a 403 error Minimal Guarantee -The minimum guarantee ensures that no unauthorized access is possible to the application, to protect the company from abuse of the contained information.

4

Page 64: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3.7 LINKED REQUIREMENTS ID Title

BREQ-140 The application is secure and prevents unauthorized access. For maximal security, Active Directory is a good choice.

FEAT-107 A user can log in.

5

Page 65: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4 CREATE A SERVER UC-118

4.1 DESCRIPTION (GOAL IN CONTEXT) This Use Case documents the process of creating a new "Server" CI.

4.2 PRIMARY ACTORS • Administrative User [ACTR-103]

4.3 PRE CONDITIONS An administrative user must be logged on.

The database connection must be up and running.

4.4 MAIN FLOW-OF-EVENTS 1. The Administrative User clicks "Add new server"

2. The Administrative User gives the server a name

3. Application gives warning "Name already used"

4. Application asks "Load record of existing server?"

5. Set "Server Name" backcolor to Orange

6. Continue from step 1. of 3a. Is name unique?.

4.5 ALTERNATE FLOWS

3a. Is name unique?

1. Loop

1.1. The Administrative User fills in additional basic info

1.2. Verify server input

2. Until ( Validation Success )

3. Use Case ends with Success.

5a. Did the user click "OK"?

1. Load existing record

2. Use Case ends with Failure.

6

Page 66: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4.6 POST CONDITIONS Success end condition

-A new (empty) server object will be created

Failure end condition

-A server object is not created, everything remains unchanged.

Minimal Guarantee

-The transaction will be 100% complete or 0% (ACID db transaction)

7

Page 67: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

8

Page 68: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4.7 LINKED REQUIREMENTS ID Title

FEAT-110 An administrative user can add a server.

9

Page 69: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

5 MODIFY A SERVER UC-128

5.1 DESCRIPTION (GOAL IN CONTEXT) This Use Case documents the process of modifying the data of a specific "Server" CI.

5.2 PRIMARY ACTORS • Administrative User [ACTR-103]

5.3 PRE CONDITIONS An Adminstrative user is logged on.

The connection to the database is up and running.

At least one "server" exists in the database.

5.4 MAIN FLOW-OF-EVENTS 1. Administrative User clicks a server.

2. Detailed server information is shown.

3. Loop

3.1. Administrative User makes changes.

3.2. Administrative User clicks "Save" button.

3.3. Verify server input

4. Until ( Validation Success )

5. Send query to database.

6. Changes saved.

7. Use Case ends with Success.

5.5 ALTERNATE FLOWS

6a. Database returns error?

1. Changes discarded.

2. Use Case ends with Failure.

10

Page 70: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

5.6 POST CONDITIONS Success end condition

-Data of a "Server" CI is successfully modified.

Failure end condition

-Data remains unchanged.

Minimal Guarantee

- Database transaction is ACID

11

Page 71: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

12

Page 72: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

5.7 LINKED REQUIREMENTS ID Title

FEAT-109 An administrative user can modify server information.

13

Page 73: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

6 CREATE A REPORT UC-129

6.1 DESCRIPTION (GOAL IN CONTEXT) This Use Case documents the process of creating a new report.

6.2 PRIMARY ACTORS • Administrative User [ACTR-103]

6.3 PRE CONDITIONS An administrative user is logged on.

The connection to the database is available.

6.4 MAIN FLOW-OF-EVENTS 1. Administrative User clicks "New..." button

2. A popup windows opens

3. Use Visual SQL Tool [UC-125]

4. Display error

5. Use Case ends with Failure.

6.5 ALTERNATE FLOWS

4a. Returns valid query string?

1. Display new report

2. Discard report

3. Use Case ends with Failure.

4a2a. User clicks save?

1. Send query to database

2. Refresh reports list

3. Use Case ends with Success.

4a2a2a. Database returns error?

1. Display error message

2. Use Case ends with Failure.

14

Page 74: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

6.6 POST CONDITIONS Success end condition

-A new report is created.

Failure end condition

-Nothing is created.

Minimal Guarantee

- Database transaction is ACID and the query used to build the report is valid.

6.7 LINKED REQUIREMENTS ID Title

FEAT-112 An administrative user can create a report.

15

Page 75: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

7 MODIFY A REPORT UC-130

7.1 DESCRIPTION (GOAL IN CONTEXT) This Use Case documents the process of modifying a report.

7.2 PRIMARY ACTORS • Administrative User [ACTR-103]

7.3 PRE CONDITIONS • At least one report exists. • An administrative user is logged on. • The database connection is up and running.

7.4 MAIN FLOW-OF-EVENTS 1. Administrative User selects a report

2. Administrative User clicks "Edit..." button

3. A popup window opens

4. Use Visual SQL Tool [UC-125]

5. Report not modified

6. Use Case ends with Failure.

7.5 ALTERNATE FLOWS

5a. Returns valid query string?

1. Display new report

2. Discard changes

3. Use Case ends with Failure.

5a2a. User clicks save?

1. Send query to database

2. Refresh report

3. Use Case ends with Success.

5a2a2a. Database returns error?

1. Display error message.

2. Use Case ends with Failure.

16

Page 76: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

7.6 POST CONDITIONS Success end condition

-Data of a "Server" CI is successfully modified.

Failure end condition

-Data remains unchanged.

Minimal Guarantee

- Database transaction is ACID.

7.7 LINKED REQUIREMENTS ID Title

FEAT-134 An administrative user can modify a report.

17

Page 77: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

8 DELETE A REPORT UC-132

8.1 DESCRIPTION (GOAL IN CONTEXT) This Use Case documents the process of deleting a report.

8.2 PRIMARY ACTORS • Administrative User [ACTR-103]

8.3 PRE CONDITIONS • At least one report exists. • An administrative user is logged on. • The connection to the database is available.

8.4 MAIN FLOW-OF-EVENTS 1. View a report [UC-131]

2. Administrative User clicks "Delete" button.

3. Warning is displayed.

4. Report not deleted.

5. Use Case ends with Failure.

8.5 ALTERNATE FLOWS

4a. User confirmed delete?

1. Send query to database.

2. Refresh reports window.

3. Use Case ends with Success.

4a2a. Database returns error?

1. Display error message

2. Use Case ends with Failure.

8.6 POST CONDITIONS Success end condition - The report is deleted. Failure end condition - Nothing is deleted. Minimal Guarantee - Database transaction is ACID.

18

Page 78: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

8.7 LINKED REQUIREMENTS ID Title

FEAT-133 An administrative user can delete a report.

19

Page 79: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

9 VIEW A REPORT UC-131

9.1 DESCRIPTION (GOAL IN CONTEXT) This Use Case documents the process of viewing a report.

9.2 PRIMARY ACTORS • Administrative User [ACTR-103] • Read-Only User [ACTR-102]

9.3 PRE CONDITIONS A user is logged on.

Database connection is up and running.

There is at least one report defined.

9.4 MAIN FLOW-OF-EVENTS 1. A user selects a report.

2. Send query to database.

3. Report is opened in same window.

4. Use Case ends with Success.

9.5 ALTERNATE FLOWS

3a. Database returns error?

1. Display error.

2. Use Case ends with Failure.

9.6 POST CONDITIONS Success end condition

- A report is displayed.

Failure end condition

- Nothing is displayed.

Minimal Guarantee

- The information that is displayed is complete and correct.

20

Page 80: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

9.7 LINKED REQUIREMENTS ID Title

FEAT-135 A user can view a report.

21

Page 81: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

10 USE SIMPLE SEARCH UC-120

10.1 DESCRIPTION (GOAL IN CONTEXT) This Use Case documents the process of using the search feature in simple mode.

10.2 PRIMARY ACTORS • Administrative User [ACTR-103] • Read-Only User [ACTR-102]

10.3 PRE CONDITIONS A user is logged on.

The connection to the database is up and running.

10.4 MAIN FLOW-OF-EVENTS 1. The user types his query in the 'search' field

2. The user presses 'enter' or the 'search' button

3. Send query to database

4. Display results

10.5 ALTERNATE FLOWS

3a. Is search field empty?

1. Set search field's backcolor to red

2. Use Case ends with Failure.

4a. Is the resultset empty?

1. Display "No Results"

2. Use Case ends with Success.

10.6 POST CONDITIONS Success end condition

-The search will return a set of results.

Failure end condition

-The search will return an error.

Minimal Guarantee

-

22

Page 82: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

10.7 LINKED REQUIREMENTS ID Title

FEAT-106 A user can search the database easily.

23

Page 83: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

11 USE ADVANCED SEARCH UC-121

11.1 PRIMARY ACTORS • Administrative User [ACTR-103] • Read-Only User [ACTR-102]

11.2 MAIN FLOW-OF-EVENTS 1. User clicks "Advanced" button

2. A popup windows opens

3. Use Visual SQL Tool [UC-125]

4. Use Case ends with Failure.

11.3 ALTERNATE FLOWS

4a. Returns query?

1. Send query to database

2. Display results

3. Use Case ends with Success.

4a2a. Database returns error?

1. Display error message

2. Use Case ends with Failure.

4a2b. Is the resultset empty?

1. Display "No Results"

2. Use Case ends with Success.

11.4 POST CONDITIONS Success end condition

-

Failure end condition

-

Minimal Guarantee

-

24

Page 84: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

25

Page 85: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

12 VIEW A SERVER UC-137

12.1 DESCRIPTION (GOAL IN CONTEXT) This Use Case documents the process of viewing a "Server" CI's detailed information.

12.2 PRIMARY ACTORS • Administrative User [ACTR-103] • Read-Only User [ACTR-102]

12.3 PRE CONDITIONS A user is logged on.

The database connection is up and running.

There is at least one "Server" CI defined.

12.4 MAIN FLOW-OF-EVENTS 1. User clicks a server.

2. Send query to database.

3. Display detailed server information.

4. Use Case ends with Success.

12.5 ALTERNATE FLOWS 3a. Database returns error?

1. Display error message.

2. Use Case ends with Failure.

Post conditions Success end condition

- A report is displayed.

Failure end condition

- Nothing is displayed.

Minimal Guarantee

- The information that is displayed is complete and correct.

26

Page 86: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

12.6 LINKED REQUIREMENTS ID Title

FEAT-139 A user can view server information.

27

Page 87: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

13 DELETE A SERVER UC-138

13.1 DESCRIPTION (GOAL IN CONTEXT) This Use Case documents the process of deleting a "Server" CI and all it's data.

13.2 PRIMARY ACTORS • Administrative User [ACTR-103]

13.3 MAIN FLOW-OF-EVENTS 1. View a server [UC-137]

2. Administrative User clicks the "Delete" button.

3. Cancel action

4. Use Case ends with Failure.

13.4 ALTERNATE FLOWS

3a. User clicks confirm?

1. Send query to server

2. Return to previous window

3. Use Case ends with Success.

3a2a. Database returns error?

1. Display error message

2. Use Case ends with Failure.

13.5 POST CONDITIONS Success end condition

- A "Server" CI and all its data is deleted.

Failure end condition

- Nothing is deleted.

Minimal Guarantee

- Database transaction is ACID.

28

Page 88: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

13.6 LINKED REQUIREMENTS ID Title

FEAT-111 An administrative user can remove a server.

29

Page 89: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

14 EXPORT SELECTION AS CSV UC-164

14.1 DESCRIPTION (GOAL IN CONTEXT) This Use Case documents the process of exporting one or more server's detailed information as CSV.

14.2 PRIMARY ACTORS • Administrative User [ACTR-103] • Read-Only User [ACTR-102]

14.3 PRE CONDITIONS A user is logged on.

At least one server CI is present in the database.

14.4 MAIN FLOW-OF-EVENTS 1. User selects one or more servers in the list.

2. User presses "Export" button.

3. Send query to database.

4. Generate CSV.

5. CSV file is downloaded to user's computer.

6. Use Case ends with Success.

14.5 ALTERNATE FLOWS

4a. Database returns error?

1. Display error message.

2. Use Case ends with Failure.

14.6 POST CONDITIONS Success end condition

- A CSV file is downloaded to the user's computer.

Failure end condition

- An error message is displayed.

Minimal Guarantee

- The exported information is 100% complete.

30

Page 90: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

14.7 LINKED REQUIREMENTS ID Title

FEAT-124 A user can export one or more server's detailed information as CSV.

31

Page 91: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Requirements for a generic CMDB

1 CONTENTS 2 About this document ................................................................................................................... 1

3 Document Summary ..................................................................................................................... 1

4 What is a C MDB? .......................................................................................................................... 2

4.1 Definition ................................................................................................................................ 2

4.2 Functions of a C MDB ........................................................................................................... 2

4.3 Best Practices ........................................................................................................................ 3

4.3.1 Intelligence .................................................................................................................... 3

4.3.2 Discovery ........................................................................................................................ 3

4.3.3 Federation ...................................................................................................................... 3

4.3.4 C hange C ontrol............................................................................................................. 3

4.3.5 Flexibility ........................................................................................................................ 4

4.3.6 Extensibility .................................................................................................................... 4

4.3.7 Scalability ....................................................................................................................... 4

5 What do we need from a C MDB in this project? ..................................................................... 4

5.1 Functions ................................................................................................................................ 4

5.2 Future ..................................................................................................................................... 4

6 Bibliography .................................................................................................................................. 4

2 ABOUT THIS DOCUMENT Project P&V SC MDB Document N umber PV008 Status Final Revision 20140104F C hangelog Document finalization Past Revisions C hangelog

20131125D Initial C reation

This document

3 DOCUMENT SUMMARY

1

Page 92: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4 WHAT IS A CMDB?

4.1 DEFINITION CMDB is part of ITIL, which is a collection of best practices for managing IT within on organization. The core task of the CMDB is to

4.2 FUNCTIONS OF A CMDB A CMDB has more functions than just

Process Supported Functions Incident Management Incidents can be prioritized more accurately

based on the relationships between affected C Is. Incidents can be resolved faster, because the entire C I information for each user is visible.

Problem Management Detailed information for problem analysis is available.

Change Management Support for the analysis of potential ramifications for the production environment after changes take place.

Release Management Availability of information for release planning and execution, so that rollouts do not have a negative effect on the business.

2

Page 93: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

(iET Solutions, 2006)

4.3 BEST PRACTICES

4.3.1 Intelligence

Transform your data into meaningful information. A CMDB should automatically understand and navigate arbitrarily complex relationships between dissimilar CIs and have the ability to represent that data in multiple views that are relevant to individual decision makers throughout your organization.

4.3.2 Discovery

Determine what you have. A CMDB should identify all the CIs in your IT repertoire without the costs and errors associated with manual discovery.

4.3.3 Federation

Manage data throughout your enterprise. A CMDB should access data where it lives, pulling appropriate data, regardless of each source’s vendor or performance level, into a unified view and provide transparent read access.

4.3.4 Change Control

Manage change in dynamic environments. Because IT is dynamic and change is constant, a CMDB should include versioning capabilities to recognize and address change.

Configuration Management The CMDB is the database in which the IT infrastructure is recorded and described delivering a detailed model of the IT infrastructure for all processes.

Service Level Management Availability of information about the CIs that support an IT service. Without this data, SLAs cannot be thoroughly created and adhered to.

Financial Management for IT Services CI information is enhanced by financial data which are necessary for the cost and service billing.

Availability Management Measuring and control of the availability of the Configuration Items and delivery of information to identify weak points.

IT Service Continuity Management Based on the CIs, emergency contingency plans and baselines are created, which should be available at the alternative location.

Capacity Management The CMDB delivers information for capacity planning and tuning measures.

Security Management The CMDB includes classifications from security management for trustworthiness, integrity and availability, and provides information for risk management.

3

Page 94: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4.3.5 Flexibility

Change what you need, when you need to. A CMDB should provide a platform for growth and should be easily modifiable to accommodate new data sources, tools, and applications; more business processes; and additional and changing CI attributes and relationships.

4.3.6 Extensibility

Grow with your business. The CMDB data model should be extensible to easily support the addition of new CI class types such as process controllers in manufacturing lines and radiology and other diagnostic machinery in hospitals.

4.3.7 Scalability Handle organizational size and complexity. A CMDB should be able to store and manage a virtually unlimited number of CIs and their relationships without negatively impacting system performance.

(Connor, 2008)

5 WHAT DO WE NEED FROM A CMDB IN THIS PROJECT?

5.1 FUNCTIONS The CMDB only needs to allow basic functionality, namely CIs and their relationships.

5.2 FUTURE The CMDB must be able to expand with new CI-types and links with other databases. We must at this moment respect the best practices to be able to do that.

6 BIBLIOGRAPHY bmc software. (2006). What Do You Need from a Configuration Management Database

(CMDB)?

Connor, J. (2008). Choosing the Right CMDB.

iET Solutions. (2006). CMDB in 5 Steps: A Project Guideline for Implementing a Configuration Management Database.

Messineo, D. A. (2009, April). Myths of the Configuration Management Data Base (CMDB).

4

Page 95: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Data Model

1 CONTENTS

2 About this document .................................................................................................................. 1

3 Document summary .................................................................................................................... 2

4 Structural Overview (Initial Draft) ............................................................................................. 3

5 Structural Overview (Final) ......................................................................................................... 4

6 Structure Explanation .................................................................................................................. 5

6.1 High Level ............................................................................................................................. 5

6.1.1 Modularity ....................................................................................................................... 5

6.1.2 Adaptability ..................................................................................................................... 5

6.1.3 Mapping .......................................................................................................................... 5

6.2 Detailed .................................................................................................................................. 5

7 Included functionality ................................................................................................................. 6

7.1 Changes to functionality ......................................................................................................... 6

7.2 Finalized Functionality ............................................................................................................ 6

8 Conclusion ..................................................................................................................................... 6

2 ABOUT THIS DOCUMENT

Project P&V SCMDB

Document Number PV009

Status Final

Revision 20140412F

Changelog Added changes from implement phase.

Past Revisions Changelog

20140123F Document finalization

20131104D Initial Creation

1

Page 96: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

This document contains the proposed data model for the application and database.

3 DOCUMENT SUMMARY

The model is object-oriented and allows for easily adding new CI-types in the future.

Supports only the server CI-type and its requirements.

2

Page 97: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4 STRUCTURAL OVERVIEW (INITIAL DRAFT)

Can't read this? Scan to view

the digital version of the

d l

3

Page 98: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

5 STRUCTURAL OVERVIEW (FINAL)

4

Page 99: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

6 STRUCTURE EXPLANATION

6.1 HIGH LEVEL

6.1.1 Modularity

The data model is designed with modularity in mind. To achieve this more easily it is

object-oriented. It allows to easily add new types of CIs.

The class “ConfigurationItem” is an abstract class and can therefore not be instantiated.

It serves however as a base class for all future types of CIs.

As specified in previous documents, this project will only implement the “Server” CI type,

and all associating types (Person and Support).

6.1.2 Adaptability

Using an object-oriented model allows for easy adapting of the application. When fields

need to be added in the future, only one model needs to be changed instead of two

(when working with a relational database).

6.1.3 Mapping

The object-oriented approach, allows the application to seamlessly interact with the

database. This database is generated automatically based on this data model. Mapping

ensures that fields and tables of the data model match those of the database.

6.2 DETAILED

The data model consists of static tables and normal tables. The static tables are filled

with predefined data (such as a list of possible OS’s). These tables are colored orange on

the diagram.

Normal tables are table containing the actual business critical data. These are colored

blue on the diagram.

5

Page 100: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

7 INCLUDED FUNCTIONALITY

7.1 CHANGES TO FUNCTIONALITY During the meetings it became obvious that some of the defined functionality was not

important enough to include. For this reason support for “RAM, CPU, HDD and Backup

info” was removed from the model.

For more information about this, please refer to document PV013 “Meeting Minutes”.

7.2 FINALIZED FUNCTIONALITY The data model included all tables and field necessary to comply with the requirements.

The model allows for:

• Maintaining virtual and physical servers

o OS

o Networking

o Applications

• Maintaining support companies and contracts

• Maintaining people

8 CONCLUSION

Please check “3 Document Summary”.

6

Page 101: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

GUI Prototype

1 CONTENTS 2 About this document ................................................................................................................... 1

3 Main Screen ................................................................................................................................... 2

3.1 Filter O n ................................................................................................................................. 2

3.2 Filter O ff ................................................................................................................................. 2

4 Adding/Modifying a server ......................................................................................................... 3

5 Search Results ............................................................................................................................... 4

2 ABOUT THIS DOCUMENT Project P&V SC MDB Document N umber PV010 Status Final Revision 20140123F C hangelog Document finalization Past Revisions C hangelog

20131125D Initial C reation

This document contains GUI prototypes of the web application.

1

Page 102: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3 MAIN SCREEN

3.1 FILTER ON

3.2 FILTER OFF

2

Page 103: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4 ADDING/MODIFYING A SERVER

3

Page 104: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

5 SEARCH RESULTS

4

Page 105: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

GUI Screenshots About this document

Project P&V SCMDB Document Number PV011 Status Final Revision 20140610F Changelog Document finalization Past Revisions Changelog 20140404D Initial Creation

This document contains information about the GUI screenshots.

1

Page 106: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Main Screen

2

Page 107: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Detail Screen with SCCM data window

3

Page 108: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

VLAN Administration Screen with unused IP window

4

Page 109: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

VLAN Detail Screen

5

Page 110: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Application Detail Screen

6

Page 111: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Create Server

7

Page 112: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Detail Screen

8

Page 113: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Static Table Administration Screen

9

Page 114: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Meeting Minutes 1 CONTENTS 2 About this document ....................................................................................................................... 1

3 Minutes............................................................................................................................................ 2

3.1 6 November 2013 .................................................................................................................... 2

3.2 19 November 2013 .................................................................................................................. 3

2 ABOUT THIS DOCUMENT Project P&V SCMDB Document Number PV013 Status Final Revision 20140123F Changelog Document finalization Past Revisions Changelog

20131104D Initial Creation

This document contains the summary of all the meetings with the client.

1

Page 115: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3 MINUTES

3.1 6 NOVEMBER 2013

Meeting: 6 nov 2013 General Info Location: P&V Groep, Koningsstraat 150, Brussels People present: Luc Van den Berg, Tim D’hoe, Frank Vansweevelt

Topics • Further details about requirements • Discussing structure of old application • Discussing features of new application

Summary of meeting Basic (new) requirements of the application are:

• Search functionality within the data • Ability to create and save queries, to allow flexible report generating. • Authentication is required, but only a read-only and administrative user are the only

roles required. • Revision support is optional (nice to have).

Follow up Next meeting will be planned after the creation of the database structure, so it can be reviewed in group.

2

Page 116: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3.2 19 NOVEMBER 2013

Meeting: 19 nov 2013 General Info Location: P&V Groep, Koningsstraat 150, Brussels People present: Luc Van den Berg, Tim D’hoe, Frank Vansweevelt

Topics • Discussing planning • Discussing new database structure

Summary of meeting Deadlines have been explained to the customer.

Developed database structure was approved.

Follow up Several document will he sent to the customer:

• PID • Database model

3

Page 117: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3.3 5 MAR 2014

Meeting: 5 mar 2014 General Info Location: P&V Groep, Koningsstraat 150, Brussels People present: Entire Server Management team

Topics • Discussing GUI • Discussing new database structure

Summary of meeting Data model has been shown to team members, awaiting feedback.

GUI demo shown, awaiting feedback.

On what columns is filtering/sorting required?

What kind of information is the most important and should be displayed on the main screen?

Follow up • In the next meeting, feedback will be discussed.

4

Page 118: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3.4 11 MAR 2014

Meeting: 11 mar 2014 General Info Location: P&V Groep, Koningsstraat 150, Brussels People present: Entire Server Management team

Topics • Discussing new database structure • Discussing application features

Summary of meeting - We have to split the server types even more:

“Class = Physical of Virtual” “Type = Server, Host, Applicance of ClusterRes”

- Several fields and tables are missing that could be interesting: • WorkorderHistory

DateTime Persoon WO-nummer

• BaseItem DateInProduction DateDelivered DateOutProduction isChecklist isWebServer WebserverType HasSan? PatchPlanningWeek PatchPlanningMonth PatchplanningHour

- Several fields and tables should be removed • RAM • CPU • DISK • Baseitem

o LOV_CompanyID • VirtualServer

o VMCluster

5

Page 119: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

- New features • Show/ Hide Comments: All Servers View • Check ServerName for duplicates

o Duplicates allowed when servers are decommisioned/disposed • Delete from DB -> Frank only • Server names TO_UPPER • All servers: display type • All servers: sorting on all columns

Follow up Changes will be reviewed and discussed in follow-up meeting.

6

Page 120: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Application Tests and Test Results About this document

Project P&V SCMDB Document Number PV101 Status Final Revision 20140610F Changelog Document finalization Past Revisions Changelog 20140404D Initial Creation

This document contains information about the testing protocols and results of that testing in the application.

Testing of the application Private Testing During the implementation of the application, each feature was tested manually by the developer. This testing ensured that basic operation of the specific function was ensured.

Bugs that occurred during this phase where, if possible, immediately resolved. There is no record of these bugs, as the list would be too big and not useful.

However, documentation and webpages that helped resolve these bugs are recorded in the bibliography.

Public Testing During the beta test of the application, all personnel of the server management team used the application and tried to find bugs, as well as missing features.

The result of this public testing is show on the next page.

1

Page 121: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

1 Mailto desktop.mgt has to be server.mgt Completed in build 5/05 2 In overview, make server name "clickable" to go to details? maybe… 3 In initial overview: all types are displayed, after select e.g. Physical, ho

to return to all types? OK, found: click SCMDB (home button :-)

Closed

4 In detailed view, if edition of the server and after edition of OS, back function => out of edition of the server

Complex to explain ;-) I'm available to demonstrate

Completed in build 5/05

5 Is there a way to make (personal) custom queries ? Closed 6 LOV: sort all entries Completed in build 7/05 7 LOV: are stop & start codes not the same values for both? NO Closed 8 delete Nic on server Completed in build 5/05 9 DRP Priority and DRP Cluster is mandatory when creating a new

server...(info only available when put in prod?) Completed in build 7/05

10 error on page when doing a add "recent change" in edit mode of a server record

Caused by compatability mode Closed

11 a way to see which servers are related to what application (begin screen a new tab "applications?)

Completed in build 7/05

12 in pvstcab101/vlan delete colum isDMZ Because in new Nonemclature all vlan DMZ start with DMZI or DMZE

Completed in build 12/05

13 in Create clusters delete start and stop sequence , Backup , …. cluster does not have stop/start sequence or backup

Completed in build 12/05

14 difference between Physical Servers and Physical Hosts ??? Answer Fvsw: Physical server: no ESX, Physical host=hypervisor-server (can run virtual servers)

Closed

15 Main overview: initially display only all "non-disposed" servers, forsee function (button) to dispay (only) 'disposed'

Completed in build 7/05

16 Server name always in capitals !! Fixed but will only work in IE9+ or other modern browsers

Completed in build 5/05

17 Show/hide comment: use full width of screen instead of splitting over multiple lines (see 'VSERVER1')

Answer TD: increased width of container (was already done, but broken on some pages -> fixed)

Completed in build 5/05

2

Page 122: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

18 In Edit server, enter a value somewhere and push Enter, the data is saved (automatically) no need to click "Save"

Is this a good idea/secure…? Is standard behaviour

Closed

19 Window 'create new', left top displays 'Create'+'Create', possible to display the type of server that is being created i.e. 'Virtual', Physical', 'Host' etc…?

Completed in build 5/05

20 Start/Stop is mandatory when creating a new server...(info only available when put in prod?)

tested with create new physical Completed in build 7/05

21 When creating new server with double name entry, standard "an error occurred" display

Same for IP Completed in build 5/05

22 DRP Prio: list to choose between 1 -> 5 possible? NO, checked on content 1 -> 5 Closed 23 Add LOV-home screen in "Tools"? Completed in build 5/05 24 Create OS: title 'LOV_Osld' + BaseItemId?? Completed in build 5/05 25 Edit server, add or edit OS, select value, save >> LOV-edit window is

displayed Same as row 5 Completed in build 5/05

26 "Back to main" does'nt do what is says. Completed in build 5/05 27 Creare new LOV (any type): top left "Index": replace by Title? Completed in build 5/05 28 Possible to add more than 1 OS (ex Berty) Completed in build 13/05 29 Freeze server details if disposed ? niet aanpassen Closed 30 Adding automatically a change line when server details is

modified/saved niet aanpassen anders veel lijnen zonder detail

Closed

31 Possible to add a change without any description ("change by" not fullfiled)

Completed in build 7/05

32 A back button in LOV nope Closed 33 If you choose the VLAN can the numbers be displayed instead of only

the names ? To be discussed within team before implementation (both to display - EL)

Completed in build 12/05

34 When the status of a server is changed to "disposed", all NIC-info is deleted in order to free up the IP-address(es)

OK, content of NIC info to comment Completed in build 12/05

35 Description field is not visible in "details" window Completed in build 7/05 36 When you fill in the usage in IP address only ILO is available Demo Data at the moment Closed

3

Page 123: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

37 When you fill in an item in the server "recent changes" wo number should not be mandatory

no rfc necessary when it involves a test server or in case of alert (f.ex scom alert add diskspace)?

Closed

38 A server can remain In use with a Disposed date asertijdoveris maybe… 39 when saving a record might be better to go into" detail" view instead of

begin screen TODO Completed in build 12/05

40 I would like to be able to delete an "OS" in a server record Completed in build 12/05 41 When creating new virtual server, type=virtual by default, new physical,

type=physical etc? Proposed value but leave field for diff.value entry

Completed in build 14/05

42 When creating new server, by default "status=requested", "date delivered=today"?

Proposed value but leave field for diff.value entry

Completed in build 14/05

43 When adding new NIC: Usage is mandatory but possibility is only ILO Added 'LAN' and 'TEAM' in LOV_NicUsage…

Closed

44 Remove Dependencies??? Completed in build 13/05 45 Recent History: reformat line and bring "Changed by" etc more to left? IGNORE Closed 46 Error msg="Too Short" when e.g. 'test' is entered in description. Great! Closed 47 Problem when add Nic (Utility field 'Usage' ???) Same issue/question as 43? closed 48 Shutdown and Up fase put 20 , 30 by default for windows and 90 , 90

for Unix OK: up=20, down=30 Completed in build 13/05

49 Problem when create new server (not OS in first screen) OS can be entered after 1st save (see info message)

Closed

50 Error when export to excel Completed in build 12/05 51 When "domain" is DOS I should get a warning like" "are you sure?"

when I put "environment" Production IGNORE Closed

52 If you save a record can you get a pop up "record save" or "some required fields are missing" and stay on the detailed page instead of going to the list

IGNORE Closed

53 Create a new physical, 1st save stays in the same window. Create a new Cluster, 1st save returns to overview

Completed in build 12/05

54 Difficult to have a '>' (Next) and '<' (Previous) button on the details panel that displays the next server of the same type?

IGNORE Closed

4

Page 124: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

55 Any type of server/device etc can only have 1 OS…? Not multiple - see e.g. "BERTY2"

To be discussed within team before implementation

Completed in build 13/05

56 When opening a "new …something" windows, put focus on first input field?

maybe…

57 In the SCCM-information panel, add IP-addresses (multiple possible)

58 VLAN Numbers not showing anymore when validationerrors displayed Completed in build 19/05 59 Date validation does not work in Chrome On Hold

5

Page 125: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Time Sheets and Phases About this document

Project P&V SCMDB Document Number PV102 Status Final Revision 20140610F Changelog Document finalization Past Revisions Changelog 20140404D Initial Creation

This document contains information about the development phases and time sheets.

1

Page 126: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Development Phases This model shows the phases that occurred in the development of the application. It first the plan was to use SCRUM, however this has proven to be ineffective for a single developer.

Instead prioritization of requirements was used to determine what to implement first. An estimated time to implement was made per requirement. It was clear that there was time enough to implement the basic features, thus no real time-based planning was made. Spare time was used to implement nice to have features.

Application In Production

Data Migration Phase

Migrate data from old application to new application

Implement Feedback Decisions

Fix Bugs Implement Small Nice-To-Have Feaures

Public Demo / Feedback Phase

Find bugs Suggest Improvements

Implement Feedback Decisions

Finalize Most Important Features Implement Most Interesting Additonal Features

Feedback Phase

Discuss GUI Discuss Additional Features Discuss Data Model

Implementing Most Important Features

CRUD of Servers Fully implement GUI

Feedback Phase

Discussing features GUI Feedback

POC Implementation

Create demo based on IT -project Proof-of-concept

2

Page 127: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Time Sheets WEEK WORK WEEK 1 • Bedrijf leren kennen

• Scrum: duur, inhoud en aantal sprints bepalen • Voorbereiden op implementatie fase

WEEK 2 • Werken aan sprint 1. • Problemen: bepaalde code werkte niet om onbekende reden. Nochtans

tutorial gevolgd. • Competenties gekozen. • Meeting gehad over werk in week 1 (steeds op maandag).

WEEK 3 • Werken aan demo applicatie. • Modellen om integratie met andere services in de toekomst mogelijk te

maken. • Cisco Talent Connection

WEEK 4 • Database model verbeterd aan de hand van meeting. • Eerste demo gegeven

WEEK 5 • Meeting met team om functionaliteiten te bespreken. • Aanpassen applicatiemodel & code aan nieuwe functionaliteiten. • Documentatie maken.

WEEK 6 • Volledige integratie van alle modelklassen op één pagina. • Layout optimaliseren voor alle pagina's

WEEK 7 • Werken aan Detail/Edit view van Physical Server • Problemen: Aanmaken van items die afhankelijk zijn van de nog niet

bestaande server. • GUI

WEEK 8 • Afwerken detail/edit view physical server. • Kleine aanpassingen aan datamodel. • Testen opstellen. • Webtoepassing testen in verschillende browsers en browserversies

WEEK 9 • JQuery leren. • Details afwerken (autocomplete van bepaalde velden). • Dependencies integreren - • Probleem: dependencies moeilijker te integreren dan gedacht,

problemen met Entity Framework en Self-Referencing tables WEEK 10 • Finaliseren applicatie voor beta test.

• Probleem: Create van een server met integratie van bijhorende applicaties, nics en OS op één pagina niet mogelijk (kan geen items toevoegen aan nog niet bestaande server).

• Tijdelijke oplossing: meerdere pagina's om een server toe te voegen (minder gebruiksvriendelijk)

• Documentatie WEEK 11 • GUI opschonen

• Details afwerken WEEK 12 • Applicatie beschikbaar maken voor team

• Testen van applicatie door team en aanpassingen maken waar nodig WEEK 13 • Applicatie in testing fase

• Op basis van feedback bugs oplossen WEEK 14 • Testing

• Documentatie maken

3

Page 128: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

• Voorbereiden overdracht WEEK 15 • meeting met teamleden voor overdracht

• data migreren van oude toepassing naar nieuwe • - in productie stellen applicatie

4

Page 129: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

SCMDB Data Migration Plan About this document

Project P&V SCMDB Document Number PV103 Status Final Revision 20140610F Changelog Document finalization Past Revisions Changelog 20140404D Initial Creation

This document contains information about how the migration of the data of the old application to the new one will work.

1

Page 130: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

New Database Structure OO Mapping The new database is automatically generated based on the data model created in visual studio. The generated model is very unclear and contains many keys that you cannot link to a specific field. This poses an additional difficulty to transfer the data.

Templates have been made that show what type of item owns which fields in the SQL database. These templates are not part of the printed documentation. These can electronically be viewed as the document with name PVEL001.

The automatically generated data model can be electronically viewed as the dociment with name PVEL003.

The logic model behind the application can be electronically viewed as the dociment with name PVEL002.

Figuur 1 Autogenerated SQL data model in new SCMDB

2

Page 131: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Mapping old structure to new structure Primary and Foreign Keys The primary and foreign keys can of course not be reused in the new application. To make the migration easier, new statically defined foreign keys will be used.

TABLE CONFIGURATIONITEMS (NEW STRUCTURE) STATIC ID’S TYPE 0-500 PServer 501-1000 VServer 1001-1100 VAppliance 1101-1200 PAppliance 1201-1300 PHost 1301-1350 VClusterResource 1351-1360 SupportCompany 2000-2200 SupportContract

TABLE SYSTEMCOMPONENTS (NEW STRUCTURE) STATIC ID’S TYPE 0-2000 NIC 2001-3500 Applications 3501-4500 OS

New items that are added when the application is in production will get an automatically assigned number that is not necessarily in the correct range of its type.

Fields to be removed Some fields and their data is not used anymore in the new data structure.

TABLE Applications (OLD STRUCTURE) Fields to be removed Availablility Impact Criticality SLA

TABLE Backupinfo (OLD STRUCTURE) Fields to be removed BackupSystem BackupType BackupPolicy BackupContent Remark TABLE NICConfig (OLD STRUCTURE)

3

Page 132: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Fields to be removed OOB NICMAC NICMask NICGateway NICDNS NICALTDNS NICWINS NICALTWINS NICSpeed NICDuplex NICcluster NICfailover NICNLB NICTeam NICComment NICchecked TABLE Contacts (OLD STRUCTURE) Fields to be removed Contactinfo

TABLE NetworkTopology (OLD STRUCTURE) Fields to be removed Network TABLE DiskConfig (OLD STRUCTURE) Fields to be removed DiskPN DiskSize Disknumber TABLE OS (OLD STRUCTURE) Fields to be removed OSSP TABLE SHARES (OLD STRUCTURE) Fields to be removed ShareName Sharefolderpath RSharegroup WSharegroup TABLE LUN (OLD STRUCTURE) Fields to be removed ServerID Size System LSS PrimaryLocation LunUsage TABLE SERVERS (OLD STRUCTURE) Fields to be removed KPI Cluster ClusterType

4

Page 133: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

NetworkTopologyID SanSpace Antivirus TABLE SERVERS_PHYSICAL (OLD STRUCTURE) Fields to be removed RAM_Phys CPUNber CPUISpeed PowerRedundancy CA HBAPN WWN1 WWN2 ILOpass ILOlicence IMMO BTU PowerConsumption Enclosure RackSize Dongle Special Hardware TABLE VLAN (OLD STRUCTURE) Fields to be removed / TABLE SERVERS_VMWARE (OLD STRUCTURE) Fields to be removed VMCluster VMDatastore TABLE SUPPORT (OLD STRUCTURE) Fields to be removed / TABLE USERS (OLD STRUCTURE) Fields to be removed CompanyID Title Address City PostalCode Country Phone Extension Photo Notes Mail TABLE SUPPLIERS (OLD STRUCTURE) Fields to be removed CompanyName ContactName ContactTitle Address

5

Page 134: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

City PostalCode Country Phone Fax HomePage TABLE MEM Config (OLD STRUCTURE) Fields to be removed MemPN MemSize MemNumber TABLE DataStore (OLD STRUCTURE) Fields to be removed DSDevice DSCapacity LUN TABLE Companies (OLD STRUCTURE) Fields to be removed /

Result The result of the mapping is an Excel file containing all the data from the Access Database in the format of the new database.

6

Page 135: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

SCMDB Source Code Basics Contents About this document .............................................................................................................................. 1

1. Basic Information ............................................................................................................................ 2

2. Purpose of the used technologies................................................................................................... 2

3. Code Structure ................................................................................................................................ 3

4. Programming Pattern ..................................................................................................................... 4

4.1. Why use a pattern? ................................................................................................................. 4

4.2. Model-View-Controller Pattern .............................................................................................. 4

4.3. Model(s) .................................................................................................................................. 4

4.4. Views ....................................................................................................................................... 4

4.5. Controller ................................................................................................................................ 5

5. Practical MVC Example ................................................................................................................... 5

6. Bibliography .................................................................................................................................... 6

About this document Project P&V SCMDB Document Number PV110 Status Final Revision 20140610F Changelog Document finalization Past Revisions Changelog 20140404D Initial Creation

This document contains information about the source code’s structure.

1

Page 136: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

1. Basic Information The source code can be opened in Visual Studio 2013 Premium (update 1 or newer) and is written in C#. The project contains the following technologies:

• ASP.NET 4.5 • MVC 5.1.2 • EF 6.1.0 • jQuery 1.11 • Json.NET

2. Purpose of the used technologies

2.1. ASP.NET ASP.NET is Microsoft’s language for creating web applications. This is the core of our project.

2.2. MVC Model-View-Controller is a programming pattern; it is a best-practise way of programming that divides the code in to separate layers that each have a specific function. This structures the code and allows easier expandability. For detailed information, please read document “ASP.NET MVC 5 basics”.

2.3. EF Entity Framework allows us to create a data model, independent of the underlying database technology. It is an UML-like tool that automatically generates a database structure from the created diagram. There is no need to know any SQL to use this.

2.4. jQuery This is a widely-used JavaScript package, which adds many new features that can be used on webpages. For example dropdown-menu’s, more animations, etc….

2.5. Json.Net This extension allows the creation/editing / reading of JSON data within the application.

2

Page 137: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3. Code Structure The project’s structure is largely determined by the use of MVC. Most of the action happens in the Models, Views, ViewModels and Controllers folder.

3.1. Properties Contains Web Deploy profiles and application settings.

3.2. References Contains the dependencies of the application, e.g. “EntityFramework.SqlServer”. This folder normally doesn’t need to be edited manually.

3.3. App_Data Empty folder

3.4. App_Start Contains viewrouting and scriptbundle configuration. This folder normally doesn’t need to be edited manually.

3.5. Content Contains image and css files. The only file that normally needs editing in this folder, is the main “Site.css” file.

3.6. Controllers This folder contains the controllers used in the MVC programming pattern.

3.7. Fonts Contains custom fonts.

3.8. Migrations Contains migration scripts used when the data model has changed and the database needs to be updated. This folder is rarely edited manually.

3.9. Models This folder contains the models used in the MVC programming pattern.

3.10. Scripts Contains JavaScript files.

3.11. ViewModels Contains files used for linking more than one model type to one view.

3.12. Views This folder contains the views used in the MVC programming pattern.

Figure 1 Project's Structure

3

Page 138: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

3.13. Web.config This file contains configuration data for the application: authentication type, connection strings to database.

4. Programming Pattern

4.1. Why use a pattern? Programming patterns are generally accepted way of programming an application. Using them makes it easier to get support if you have a problem. Because many developers use a specific pattern, it has proven to work and be reliable. If you develop you own method there is a higher risk of it not working well.

4.2. Model-View-Controller Pattern In this project MVC is used.

ASP.NET MVC is a framework that adds support for the MVC design pattern to ASP.NET. Therefore, in order to really understand what ASP.NET MVC is, you need to first understand what MVC is.

MVC is an acronym that stands for Model / View / Controller. MVC is a programming architecture that aids developers with separating different components of an application. Let's review each component of MVC individually as they relate to ASP.NET MVC. (Cheshire, 2009)

4.3. Model(s) The model is a set of classes that contain information about the structure of the data the application will be using. For example there might be a class called “Person” with a few properties like “Name, Address and Phone”.

4.4. Views Views are essentially “HTML pages”. In the views you will be editing the pages the user will be seeing. These get their data from the controller.

4

Page 139: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

4.5. Controller A controller is a file that is created for each model-class in the model of the application. For example the model-class “Person” will have a corresponding controller called “PersonController”.

The controller is a middle-man between the view and the model. This example shows its function: A user does a request for a specific webpage in the browser (a view). The view has data that it has to get from the database. The controller will ask the model for the data, the model then does a query to the database and gives back the data to the controller. The controller then passes the data to the view. The webpage has now finished loading and displays its own structure with the data it got from the controller.

5. Practical MVC Example A very good tutorial by Microsoft is available, this will teach you the basics of APS.NET with MVC 5.

http://www.asp.net/mvc/tutorials/mvc-5/introduction/getting-started

5

Page 140: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

6. Bibliography Cheshire, J. (2009, September 1). ASP.NET MVC: What is it and should I use it? Retrieved from MSDN

Blogs: http://blogs.msdn.com/b/webtopics/archive/2009/09/01/asp-net-mvc-what-is-it-and-should-i-use-it.aspx

6

Page 141: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

SCMDB Practical: External Data Contents About this document ............................................................................................................................... 1

Prerequisites ............................................................................................................................................ 2

Getting Started ........................................................................................................................................ 2

Creating a new URL for the data source.................................................................................................. 2

Creating a view for the new data source ................................................................................................ 2

Getting the data from the controller to the view ................................................................................... 2

Accessing your new view ......................................................................................................................... 2

About this document Project P&V SCMDB Document Number PV111 Status Final Revision 20140610F Changelog Document finalization Past Revisions Changelog 20140404D Initial Creation

This document contains information about the implementation of external data services, like getting data for a specific server from SCCM.

Page 142: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Prerequisites • Visual Studio 2013 (fully updated) or higher • SMCDB Solution

Getting Started For starters, open the SCMDB Solution in Visual Studio. Navigate to the controllers folder and open the ExternalDataController.

Creating a new URL for the data source Because we are going to create a new data source, we need a new action or URL. To do this you create a function just like the SCCM one.

public ActionResult ActionName(string optionalVariable) { }

Creating a view for the new data source Navigate to the Views -> External Data folder. In this folder create a new webpage, give it the same name as your previously created function.

It might be easy to just copy paste the existing SCCM.cshtml file and editing it.

Getting the data from the controller to the view Because it is unknown at the time of writing what new data source you will be adding and how it works, I cannot provide a complete step by step guide.

However, you should put every field you want to display in to a ViewBag. ViewBags are a sort of variables that you define in the controller and can reuse in the views.

For example: You do a query and you have a set of fields with results. One field is called “Name”. The result of the field you can put in ViewBag.Name (in the controller). In the view you can get the data of that ViewBag by writing:

@Html.Raw(ViewBag.Name)

Accessing your new view The URL will be: [servername]/ExternalData/[ActionName]?[OptionalVariableName=][VariableValue]

Page 143: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

SCMDB Practical Guide: Modifying the navigation bar

Prerequisites • Visual Studio 2013 or higher • SMCDB Solution

File Locations Main Stylesheet /Content/Site.css Shared Layout File /Views/Shared/_Layout.cshtml Custom Image Directory /Content/themes/custom/images/

Adding a new menu items Navigate in Visual Studio to the “Shared Layout File”. This file contains HTML that is displayed on every page.

Adding a new menu item is as simple as copy-pasting an existing one and replacing the links. The structure of the links is as follows: “@Html.Actionlink(“LINK TEXT”, ”Action/Function name”, “Controller name, minus the word Controller”)”

Example code (adding a dropdown menu):

<!--Dropdown menu START--> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Appliances<b class="caret"></b></a> <ul class="dropdown-menu"> <li>@Html.ActionLink("Physical Appliances", "Index", "PhysicalAppliance")</li> <li>@Html.ActionLink("Virtual Appliances", "Index", "VirtualAppliance")</li> </ul> </li> <!--Dropdown menu STOP-->

Page 144: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Deploying the application (Web Deploy) Contents About this document .............................................................................................................................. 1

1. Minimum Requirements ................................................................................................................. 2

2. Deploying the application ............................................................................................................... 2

2.1. Web Deploy Publishing ........................................................................................................... 2

2.1.1. Preparing the server for web deployment ...................................................................... 2

2.2. Actually deploying the application .......................................................................................... 5

About this document Project P&V SCMDB Document Number PV113 Status Final Revision 20140610F Changelog Document finalization Past Revisions Changelog 20140404D Initial Creation

This document contains information about the deployment of the application using the Web Deploy method.

1

Page 145: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

1. Minimum Requirements Notice: web deploy was used in early development phase, they wouldn’t install Web Deploy components on the development server. Please use the manual deploy method instead.

To run the application the following requirements should be met:

• ASP.NET 4.5 is installed on the webserver • Web Platform Installer is installed on the webserver • IIS 7 or higher • Visual Studio 2013 (update 2 or higher)

2. Deploying the application There are a number of ways of deploying the application to the webserver. First of all, we need to open the solution in visual studio.

After opening the solution, build the “SCMDB” application to check if everything is working.

2.1. Web Deploy Publishing

2.1.1. Preparing the server for web deployment

2.1.1.1. Installing Web Platform Installer Please install this on the webserver. This is required for the Web Deploy components.

You can install the web platform installer from here: http://www.microsoft.com/web/downloads/platform.aspx

When the installation is complete, restart IIS.

2.1.1.2. Adding Web Deployment functionality Now that you have installed Web Platform, you can install Web Deployment via this tool.

Right click the DefaultWebSite and select “Install Application from Gallery”.

Note: If you don’t see “Install Application From Gallery”, the Web Platform Installer was not correctly installed.

2

Page 146: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

The Web Platform Installer will open. Now search for “Web Deploy”. In the results list, install “Web Deploy 3.5 for Hosting Servers”.

After the installation, restart IIS for the changes to take effect.

2.1.1.3. Creating a new website On the webserver, launch IIS Manager. Create a new website and choose a folder to store the content. There is no need to put the application files in the folder, this will be done automatically in

3

Page 147: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

a later step. For now you can just use an empty folder.

2.1.1.4. Configuring access to web deployment To use Web Deployment Publishing in Visual Studio, it is required to specify which accounts can use that function.

Right click the website you just created and select “Deploy” -> “Configure Web Deploy Publishing”

4

Page 148: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

A new window will display. Here you can select which account can use Web Deploy. By default the account that is currently logged on the webserver will be selected.

You can change this, or press “Setup” to allow the current account.

2.2. Actually deploying the application In Visual Studio, right click the “SCMDB” project and select “Publish”.

A new window will open that wants you to select a profile for publishing. If you have already defined one, select it. If not go to the profile tab and choose a “Custom” publishing target.

5

Page 149: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Now enter a profile name, you can choose this freely. In the next screen, you will need to fill in the details of the webserver. For username and password, use the ones you used in “Configuring access to web deployment”.

It is not required to fill in “Destination URL”, do this only if you have a DNS alias.

In the next screen, you will need to specify if the profile is going to publish the “Debug” or “Release” version of the application.

If that is done, click “Publish”. The application will now be loaded on to the webserver. You should be done.

6

Page 150: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Deploying the application (Manual Deploy)

Contents About this document ............................................................................................................................... 1

1. Minimum Requirements ................................................................................................................. 2

2. Deploying the application ............................................................................................................... 2

2.1. File System Publishing ............................................................................................................. 2

2.1.1. Preparing the server for deployment .............................................................................. 2

2.1.2. Publishing the website from Visual Studio ...................................................................... 3

About this document Project P&V SCMDB

Document Number PV114

Status Final

Revision 20140610F

Changelog Document finalization

Past Revisions Changelog

20140404D Initial Creation

This document contains information about deploying the application on the webserver manually.

1

Page 151: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

1. Minimum Requirements To run the application the following requirements should be met:

• ASP.NET 4.5 is installed on the webserver • Web Platform Installer is installed on the webserver • IIS 7 or higher • Visual Studio 2013 (update 2 or higher)

2. Deploying the application There are a number of ways of deploying the application to the webserver. First of all, we need to open the solution in visual studio.

After opening the solution, build the “SCMDB” application to check if everything is working.

2.1. File System Publishing

2.1.1. Preparing the server for deployment

2.1.1.1. Creating the website The name can be freely chosen in IIS, preferably name the website “SCMDB”.

After the website has been created, go to the application pools and select the “SCMDB” pool (or whatever the application is running in.

Go to the advanced settings of the pool and change the Id from ApplicationPoolIdentity to a custom account ‘pvsys/mgt_sccm_scmdb’. This is required for the SCCM querying to work.

2

Page 152: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

2.1.2. Publishing the website from Visual Studio In Visual Studio, right click the “SCMDB” project and select “Publish”.

A new window will open that wants you to select a profile for publishing. There should be a some profile defined. “SCMDBCreatePackageDEVEL” and “SCMDBCreatePackagePROD”. These templates will create a build in the folder C:/Temp/SCMDB and C:/Temp/SCMDB-DEVEL respectively. The contents of this folder needs to be copied the website’s folder on the IIS server.

3

Page 153: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

SCMDB Practical Guide: Adding or removing a field.

Contents Prerequisites ............................................................................................................................................ 1

Getting Started ........................................................................................................................................ 2

Adding a field ........................................................................................................................................... 3

Step 1: Modifying the database model ............................................................................................... 3

Step 2: Updating the controller ........................................................................................................... 5

Step 3: Updating the views.................................................................................................................. 6

Testing the modifications ........................................................................................................................ 8

About this document Project P&V SCMDB Document Number PV115 Status Final Revision 20140610F Changelog Document finalization Past Revisions Changelog 20140404D Initial Creation

This document contains a how-to , to add or remove a new field in the application.

1

Page 154: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Prerequisites • Visual Studio 2013 (fully updated) or higher • SMCDB Solution

Getting Started For starters, open visual studio and load the SCMDB Solution. Now navigate to the Models directory in the solution and open the CMDBEntities.edmx file. You should now see a diagram.

Figuur 1 CMDBEntities Diagram

2

Page 155: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Adding a field Adding a new field requires three steps: adding the field to the database model, updating the appropriate controllers, updating the appropriate views.

Step 1: Modifying the database model Let’s say we want to a new field ‘ContractOwner’ to the table ‘SupportContract’. To do this you need to right-click the table, select “Add New” -> “Scalar Property”. A new field will new be created in the table, call it “ContractOwner”.

Figuur 2 Adding a new field

To the right of the screen you will see the properties of the selected item. In this window you need to set two properties. The first one is “Nullable”, this determines if the field can be null. The second one is “Type”, here you define if the property is a numeric one or a string. For numeric values select “Int32”.

Remark: setting nullable to false when you have a populated database will give an error when running the application. This is because the old values in the tables have a null value for the new field.

Figuur 3 Properties Window 3

Page 156: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Now that you have modified the data model, you need to sync the changes to the actual database.

To do this, navigate to the Package Manager Console. If you do not see this window, open it by going to VIEW -> Other Windows -> Package Manager Console.

Type “add-migration name-you-can-choose”. If everything is in order, a new file will open containing the command that need to be executed on the database in order to sync it.

Figure 1 Package Manager Console

To sync changes, go back to the Package Manager Console and type “update-database”. The changes are now synced to the database.

Warning: make sure the database connection string defined in Web.config is correct (development-db or prod-db).

When publishing the application to the development or production server, Visual Studio bears in mind the different database connections defined in Web.Debug.config and Web.Release.config. However Visual Studio ignores these configs for any other situation, and uses the default one in Web.Config

4

Page 157: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Step 2: Updating the controller So, now that we have updated the model and pushed the changed to the database, it is time to update the application code.

Navigate to the Controllers folder, and double click the appropriate controller file. In this case the SupportContractController.cs (in CI -> Support).

In this file we see a number of functions, these correspond to the actions a use can do. For example the user can “Create” a new supportcontract.

There are two functions named Create in the file. The first one is the GET, this function deals with loading the create page. The other one is POST, this one deals with getting the inputted data on the “Create“ page in to the database.

We need to add the new field to the create and edit functions. Because it is just a normal field, this will be easy. Just add “ContractOwner” to this line of code. Do this for both the “Create” and “Edit” method.

Create([Bind(Include="Id,Comment,DoesNotExpire,ReferenceNumber,StartDate,EndDate,SupportCompanyId,isWarrantyContract")] Figure 2 Before Change

Create([Bind(Include="Id,Comment,DoesNotExpire,ReferenceNumber,StartDate,EndDate,SupportCompanyId,isWarrantyContract,ContractOwner")] Figure 3 After Change

5

Page 158: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Step 3: Updating the views As a final step, we will be updating the views. Remember that the views are the actual “html” pages the use will see. What we are actually going to do now, is add textboxes to the pages that have to do with ‘SupportContract’.

Index.cshtml We’ll start with “Index.cshtml”. Below is part of the code for that file. To add the new field you simply add a new column name enclosed in <th> tags. You display the data for the new column by adding a new @Html.DisplayFor item enclosed in a <td> tag.

<table class="table"> <tr> @*These are the column names*@ <th> Reference Number </th> <th> Never Expires </th> <th> Warranty Contract </th> <th> Start Date </th> <th> End Date </th> <th> ContractOwner </th> <th></th> </tr> @foreach (var item in Model) { <tr> @*This is the actual data*@ <td> @Html.DisplayFor(modelItem => item.ReferenceNumber) </td> <td> @Html.DisplayFor(modelItem => item.DoesNotExpire) </td> <td> @Html.DisplayFor(modelItem => item.isWarrantyContract) </td> <td> @Html.DisplayFor(modelItem => item.StartDate) </td> <td> @Html.DisplayFor(modelItem => item.EndDate) </td> <td> @Html.DisplayFor(modelItem => item.ContractOwner) </td> <td>

6

Page 159: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

@Html.ActionLink("Edit", "Edit", new { id=item.Id }) | @Html.ActionLink("Details", "Details", new { id=item.Id }) | @Html.ActionLink("Delete", "Delete", new { id=item.Id }) </td> </tr> } </table>

Create.cshtml Adding the new field to the create page, is as easy as copy pasting an existing “form-group” div and changing some data.

<div class="form-group"> @Html.LabelFor(model => model.ContractOwner, new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EditorFor(model => model.ContractOwner) @Html.ValidationMessageFor(model => model.ContractOwner) </div> </div> LabelFor will display the label based on the name of the field in the model. In this case this will be “ContractOwner”. If you want a custom label, change the LabelFor line to this:

@Html.Label("Contract Owner")

Edit.cshtml Exactly the same as Create.cshtml.

Details.cshtml Adding the new field to the detail page is again as easy as copying a <dt> and <dd> tag and changing some values.

Remark: SupportContract uses the default “Definition List” way of displaying a detail page. Other views for PServer etc.., do not use Definition Lists. This step will be different when editing these kinds of views. What always remains the same is that you use @Html.XXX for displaying data.

<dl class="dl-horizontal"> <dt> @Html.DisplayNameFor(model => model.ContractOwner) </dt> <dd> @Html.DisplayFor(model => model.ContractOwner) </dd>

Delete.cshtml Exactly the same as Details.cshtml

7

Page 160: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Testing the modifications By clicking the run button, you can test the application locally (with external connection to database). To deploy the application on a development of production server, read the document “SCMDB Practical - Deploying and Configuring - Manual Deploy”.

8

Page 161: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

SCMDB Practical: Changing Security Settings.

Contents About this document ............................................................................................................................... 1

Prerequisites ............................................................................................................................................ 2

Getting Started ........................................................................................................................................ 2

Change global security settings ............................................................................................................... 2

Changing security on specific pages and functions ................................................................................. 2

Publish the application ............................................................................................................................ 2

About this document Project P&V SCMDB Document Number PV116 Status Final Revision 20140610F Changelog Document finalization Past Revisions Changelog 20140404D Initial Creation

This document contains information about changing security settings within the application.

1

Page 162: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Prerequisites • Visual Studio 2013 (fully updated) or higher • SMCDB Solution

Getting Started For starters, open the SCMDB Solution in Visual Studio. You should know that the application uses Windows Authentication. In practice this means that it checks what rights the currently logged on user has within the application.

Change global security settings Navigate to the “Properties” folder in the project. Double-click on Settings.settings. This file contains parameters the control global security settings.

AdministrativeRoleGroups controls which groups or users are “Administrators” of the application. Separate multiple groups or users by a colon ‘,’.

TeamLeaderUser controls who the team leader is, the team leader can delete servers, something that administrative users can’t.

Changing security on specific pages and functions To change security for specific pages or functions, you need to go to the controllers folder. Open the controller for the page you wish to restrict and apply an annotation to the action you wish to restrict.

For example: you will see that the action “Create” has [AdminOnly] above it. This allows only users that are admins to execute that function.

Possible annotations are:

• [AdminOnly] • [TeamleaderOnly] • None (public access)

Publish the application Now that you have edited security settings, it is time to publish the application. Please refer to “SCMDB Practical - Deploying and Configuring - Manual Deploy” for instructions on deploying the application.

2

Page 163: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Bibliography

1 ABOUT THIS DOCUMENT

Project P&V SCMDB

Document Number PV150

Status Final

Revision 20140610F

Changelog Document finalization

Past Revisions Changelog

20131104D Initial Creation

This document contains all consulted sources.

1

Page 164: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

A specified Include path is not valid. The EntityType does not declare a navigation

property with the name *. (n.d.). StackOverflow. Retrieved March 1, 2014, from

http://stackoverflow.com/questions/20637776/a-specified-include-path-is-not-

valid-the-entitytype-does-not-declare-a-navigat

ASP MVC - Get data from partial view on Create. (n.d.). StackOverflow. Retrieved March

20, 2014, from

http://stackoverflow.com/questions/20119452/asp-mvc-get-data-from-partial-v

iew-on-create

ASP MVC3 view model losing data from collection objects on post back to edit method.

(n.d.). StackOverflow. Retrieved March 20, 2014, from

http://stackoverflow.com/questions/15773929/asp-mvc3-view-model-losing-da

ta-from-collection-objects-on-post-back-to-edit-met

ASP.NET MVC 4 Entity Framework Scaffolding and Migrations. (n.d.). The Official

Microsoft ASP.NET Site. Retrieved February 27, 2014, from

http://www.asp.net/mvc/tutorials/hands-on-labs/aspnet-mvc-4-entity-framew

ork-scaffolding-and-migrations

ASP.NET MVC 5.1.x EditorFor Bug. (n.d.). StackOverflow. Retrieved May 17, 2014, from

http://stackoverflow.com/questions/22916062/asp-net-mvc-5-1-x-editorfor-bu

g

ASP.NET MVC Special Views - Partial View and Layout. (n.d.). CodeProject. Retrieved

March 3, 2014, from

http://www.codeproject.com/Articles/698246/ASP-NET-MVC-Special-Views-Par

tial-View-and-Layout

2

Page 165: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

ASP.NET MVC jquery autocomplete with value and text field. (n.d.). StackOverflow.

Retrieved April 5, 2014, from

http://stackoverflow.com/questions/12511377/asp-net-mvc-jquery-autocompl

ete-with-value-and-text-field

ASP.NET MVC3 Dynamically added form fields model binding. (n.d.). TechiesWeb.

Retrieved March 20, 2014, from

http://www.techiesweb.net/asp-net-mvc3-dynamically-added-form-fields-mod

el-binding/

ASP.NET Scaffolding in Visual Studio 2013. (n.d.). The Official Microsoft ASP.NET Site.

Retrieved February 15, 2014, from

http://www.asp.net/visual-studio/overview/2013/aspnet-scaffolding-overview

Abrahamsson, J. (n.d.). Extending ASP.NET MVC Music Store with elasticsearch.

JoelAbrahamsson. Retrieved April 1, 2014, from

http://joelabrahamsson.com/extending-aspnet-mvc-music-store-with-elasticsea

rch/

Adding Search. (n.d.). The Official Microsoft ASP.NET Site. Retrieved April 7, 2014, from

http://www.asp.net/mvc/tutorials/mvc-5/introduction/adding-search

Autocompletion Textbox in ASP.NET MVC Using jQuery. (n.d.). stick2basic. Retrieved

March 18, 2014, from

http://stick2basic.wordpress.com/2013/03/15/autocompletion-textbox-in-asp-

net-mvc-using-jquery/

Can I refer to the type parameter in an MVC view?. (n.d.). StackOverflow. Retrieved May

13, 2014, from

3

Page 166: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

http://stackoverflow.com/questions/5467746/can-i-refer-to-the-type-paramete

r-in-an-mvc-view

Cannot implicitly convert type 'System.Collections.Generic.List<AnonymousType#1>' to

'System.Collections.Generic.IEnumerable. (n.d.). StackOverflow. Retrieved May

8, 2014, from

http://stackoverflow.com/questions/16645626/cannot-implicitly-convert-type-s

ystem-collections-generic-listanonymoustype1

Capitalize entries using ASP.NET client side validation. (n.d.). StackOverflow. Retrieved

May 13, 2014, from

http://stackoverflow.com/questions/9892962/capitalize-entries-using-asp-net-c

lient-side-validation

Chosen (v1.1.0). (n.d.). Chosen: A jQuery Plugin by Harvest to Tame Unwieldy Select

Boxes. Retrieved March 11, 2014, from http://harvesthq.github.io/chosen/

Cleary, S. (n.d.). Stephen Cleary (the blog). : Async Unit Tests, Part 2: The Right Way.

Retrieved May 20, 2014, from

http://blog.stephencleary.com/2012/02/async-unit-tests-part-2-right-way.html

Client side validation for unique field mvc. (n.d.). StackOverflow. Retrieved May 12,

2014, from

http://stackoverflow.com/questions/18037292/client-side-validation-for-uniqu

e-field-mvc

Code First Migrations. (n.d.). Entity Framework. Retrieved February 15, 2014, from

http://msdn.microsoft.com/en-us/data/jj591621.aspx

Complex scenario with ASP .NET MVC 3 without using Session. (n.d.). StackOverflow.

4

Page 167: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Retrieved April 20, 2014, from

https://stackoverflow.com/questions/8566153/complex-scenario-with-asp-net-

mvc-3-without-using-session

Creating CSV Files. (n.d.). Gyan Sangrah. Retrieved April 24, 2014, from

http://gyansangrah.com/ArticleContent.aspx?ID=reading_csv_files_in_ado_net

Default value in @html.EditorFor() field. (n.d.). The Official Forums for Microsoft

ASP.NET. Retrieved May 16, 2014, from

http://forums.asp.net/t/1883706.aspx?Default+value+in+html+EditorFor+field+

Desjardins, P. (n.d.). Why it is wrong to use the Asp.Net MVC MetaDataType Attribute |

Patrick Desjardins' Blog. patrickdesjardins.com. Retrieved April 30, 2014, from

http://patrickdesjardins.com/blog/why-it-is-wrong-to-use-the-asp-net-mvc-met

adatatype-attribute

Displaying a Custom Error Page (C#). (n.d.). The Official Microsoft ASP.NET Site.

Retrieved February 21, 2014, from

http://www.asp.net/web-forms/tutorials/deployment/deploying-web-site-proje

cts/displaying-a-custom-error-page-cs

Don’t use Code First by mistake. (n.d.). One Unicorn. Retrieved March 21, 2014, from

http://blog.oneunicorn.com/2012/02/26/dont-use-code-first-by-mistake/

Enhancing Data Validation. (n.d.). The Official Microsoft ASP.NET Site. Retrieved April 10,

2014, from

http://www.asp.net/mvc/tutorials/mvc-5/database-first-development/enhanci

ng-data-validation

Entity Framework 4.1 - Cannot rename autogenerated Foreign Key, new Column being

5

Page 168: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Added instead. (n.d.). MSDN Forums. Retrieved May 8, 2014, from

http://social.msdn.microsoft.com/Forums/en-US/a1cf257b-fa45-44f7-a191-c5c

40c36be9a/entity-framework-41-cannot-rename-autogenerated-foreign-key-ne

w-column-being-added-instead?forum=adodotnetentityframework

Entity Framework and Temporary Objects. (n.d.). StackOverflow. Retrieved April 15,

2014, from

http://stackoverflow.com/questions/1236877/entity-framework-and-temporar

y-objects

How Do I Create an Auto-Complete TextBox?. (n.d.). ASP.NET. Retrieved March 17,

2014, from http://www.asp.net/Ajaxlibrary/jquery_mvc_autocomplete.ashx

How to Edit & Save ViewModels data back to database. (n.d.). StackOverflow. Retrieved

March 18, 2014, from

http://stackoverflow.com/questions/18237945/how-to-edit-save-viewmodels-d

ata-back-to-database

How to build and MVC3 search form and results. (n.d.). The Official Forums for Microsoft

ASP.NET. Retrieved February 24, 2014, from

http://forums.asp.net/t/1671805.aspx

How to change navbar/container width? Bootstrap 3. (n.d.). StackOverflow. Retrieved

May 5, 2014, from

http://stackoverflow.com/questions/18548453/how-to-change-navbar-contain

er-width-bootstrap-3

How to detect when a text input changes with ie8. (n.d.). StackOverflow. Retrieved May

14, 2014, from

6

Page 169: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

http://stackoverflow.com/questions/11791855/how-to-detect-when-a-text-inp

ut-changes-with-ie8

How to get a datepicker for Html.Editorfor. (n.d.). StackOverflow. Retrieved February 17,

2014, from

http://stackoverflow.com/questions/10251153/how-to-get-a-datepicker-for-ht

ml-editorfor

How to modify posted form data within controller action before sending to view?. (n.d.).

StackOverflow. Retrieved May 14, 2014, from

http://stackoverflow.com/questions/2686652/how-to-modify-posted-form-dat

a-within-controller-action-before-sending-to-view

How to store array in session in ASP.NET MVC?. (n.d.). StackOverflow. Retrieved April

22, 2014, from

http://stackoverflow.com/questions/2431378/how-to-store-array-in-session-in-

asp-net-mvc

IIS 8.0 Using ASP.NET 3.5 and ASP.NET 4.5. (n.d.). The Official Microsoft IIS Site.

Retrieved May 10, 2014, from

http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-using-aspnet-35-

and-aspnet-45

IP Address Calculations with C# (Subnetmasks, Networks, ...). (n.d.). MSDN Blogs.

Retrieved April 28, 2014, from

http://blogs.msdn.com/b/knom/archive/2008/12/31/ip-address-calculations-wi

th-c-subnetmasks-networks.aspx

Implementing Inheritance. (n.d.). The Official Microsoft ASP.NET Site. Retrieved February

7

Page 170: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

15, 2014, from

http://www.asp.net/mvc/tutorials/getting-started-with-ef-5-using-mvc-4/imple

menting-inheritance-with-the-entity-framework-in-an-asp-net-mvc-application

Implementing Remote Validation in MVC. (n.d.). CodeProject. Retrieved May 13, 2014,

from

http://www.codeproject.com/Tips/669824/Implementing-Remote-Validation-in

-MVC

Installing and Configuring Web Deploy on IIS 7. (n.d.). The Official Microsoft IIS Site.

Retrieved May 10, 2014, from

http://www.iis.net/learn/install/installing-publishing-technologies/installing-an

d-configuring-web-deploy

Is there a solution for using ASP.NET MVC 5 Html.EditorFor() and Bootstrap 3.0?. (n.d.).

StackOverflow. Retrieved May 16, 2014, from

http://stackoverflow.com/questions/18386234/is-there-a-solution-for-using-as

p-net-mvc-5-html-editorfor-and-bootstrap-3-0

JavaScript Error in Production but not Dev/Test (Bundling doesn't handle Linux style line

endings). (n.d.). StackOverflow. Retrieved May 14, 2014, from

http://stackoverflow.com/questions/15100191/javascript-error-in-production-b

ut-not-dev-test-bundling-doesnt-handle-linux-s

JavaScript Get Elements By Class Name getElementsByClassName. (n.d.). World of

Webcraft. Retrieved April 2, 2014, from

http://www.worldofwebcraft.com/blog.php?id=170

Jive. (n.d.). BMC Atrium CMDB Discussions. Retrieved March 5, 2014, from

8

Page 171: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

https://communities.bmc.com/thread/31755

Leeks, S. (n.d.). MSDN Blogs. ASP.NET MVC 3: Integrating with the jQuery UI date picker

and adding a jQuery validate date range validator. Retrieved February 20, 2014,

from

http://blogs.msdn.com/b/stuartleeks/archive/2011/01/25/asp-net-mvc-3-integr

ating-with-the-jquery-ui-date-picker-and-adding-a-jquery-validate-date-range-v

alidator.aspx

Lucene.Net ultrafast search for MVC or WebForms site made easy!. (n.d.). CodeProject.

Retrieved March 30, 2014, from

http://www.codeproject.com/Articles/320219/Lucene-Net-ultra-fast-search-for

-MVC-or-WebForms

MSDN. (n.d.). Entity Framework Add/Attach and Entity States. Retrieved May 14, 2014,

from http://msdn.microsoft.com/nl-be/data/jj592676.aspx

MVC Scaffolding . (n.d.). SharpDevelop Community. Retrieved March 14, 2014, from

http://community.sharpdevelop.net/blogs/mattward/archive/2012/09/28/Mvc

Scaffolding.aspx

Multiple NULL values in column with UNIQUE index [duplicate]. (n.d.). StackOverflow.

Retrieved May 10, 2014, from

http://stackoverflow.com/questions/15206035/multiple-null-values-in-column-

with-unique-index

Normarks, M. (n.d.). Entity Framework Migrations "Cheat Sheet". Martin Normarks blog.

Retrieved May 20, 2014, from

http://martinnormark.com/entity-framework-migrations-cheat-sheet/

9

Page 172: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Paquette, D. (n.d.). Calculated Columns in Entity Framework Code First Migrations. Dave

Paquette. Retrieved May 20, 2014, from

http://www.davepaquette.com/archive/2012/09/23/calculated-columns-in-enti

ty-framework-code-first-migrations.aspx

Persisting data on ActionLink click MVC3. (n.d.). StackOverflow. Retrieved May 12, 2014,

from

http://stackoverflow.com/questions/8972282/persisting-data-on-actionlink-clic

k-mvc3

Posting Data With jQuery AJAX In ASP.NET Razor Web Pages. (n.d.). Mikes DotNetting.

Retrieved March 25, 2014, from

http://www.mikesdotnetting.com/Article/220/Posting-Data-With-jQuery-AJAX-I

n-ASP.NET-Razor-Web-Pages

Reading Related Data. (n.d.). The Official Microsoft ASP.NET Site. Retrieved February 20,

2014, from

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/reading-r

elated-data-with-the-entity-framework-in-an-asp-net-mvc-application

Relationships and Navigation Properties. (n.d.). Entity Framework Relationships &

Navigation Properties. Retrieved February 16, 2014, from

http://msdn.microsoft.com/en-us/data/jj713564.aspx

Replace generated Details view with a viewModel. (n.d.). StackOverflow. Retrieved

March 10, 2014, from

http://stackoverflow.com/questions/9417677/replace-generated-details-view-

with-a-viewmodel

10

Page 173: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Retrieve JSON data from MVC Controllers in ASP.NET MVC. (n.d.). chsakells Blog.

Retrieved April 5, 2014, from

http://chsakell.com/2013/06/08/retrieve-json-data-from-mvc-controllers-in-asp

-net-mvc/

SQL Server connection string problems. (n.d.). Stack Overflow. Retrieved May 4, 2014,

from

http://stackoverflow.com/questions/8063158/sql-server-connection-string-pro

blems

Sample Full-Text Search Engine. (n.d.). SQL Mag. Retrieved March 30, 2014, from

http://sqlmag.com/sql-server/sample-full-text-search-engine

Saving Many to Many relationship data on MVC Create view. (n.d.). The Official Forums

for Microsoft ASP.NET. Retrieved May 8, 2014, from

http://forums.asp.net/t/1824990.aspx?Saving+Many+to+Many+relationship+da

ta+on+MVC+Create+view

Select multiple records based on list of Id's with linq. (n.d.). StackOverflow. Retrieved

May 14, 2014, from

http://stackoverflow.com/questions/16824510/select-multiple-records-based-o

n-list-of-ids-with-linq

Set default value of dropdownlist based on datasource. (n.d.). StackOverflow. Retrieved

May 15, 2014, from

http://stackoverflow.com/questions/19498088/set-default-value-of-dropdownli

st-based-on-datasource

Setting detailed/customer error messages issues, iis7 asp classic. (n.d.). StackOverflow.

11

Page 174: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Retrieved May 15, 2014, from

http://stackoverflow.com/questions/5910147/setting-detailed-customer-error-

messages-issues-iis7-asp-classic

Sorting, Filtering, and Paging. (n.d.). The Official Microsoft ASP.NET Site. Retrieved

February 20, 2014, from

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-fil

tering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application

Thread: [RESOLVED] 'Response' does not exist in the current context. (n.d.). CodeGuru

Forums . Retrieved May 14, 2014, from

http://forums.codeguru.com/showthread.php?466297-RESOLVED-Response-do

es-not-exist-in-the-current-context

Tips for Entity Framework Migrations. (n.d.). Elegant Code. Retrieved March 17, 2014,

from http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/

Turn SELECTs into Comboboxes with jQuery UI Autocomplete. (n.d.). Melrose Solutions

Blog:. Retrieved March 10, 2014, from

http://www.melrosesolutions.com/blog/index.cfm/2010/7/16/Turn-SELECTs-int

o-Comboboxes-with-jQuery-UI-Autocomplete

Unique Constraint with Multiple NULLs. (n.d.). SQL Mag. Retrieved April 16, 2014, from

http://sqlmag.com/sql-server-2008/unique-constraint-multiple-nulls

Unique constraint in Entity Framework [duplicate]. (n.d.). StackOverflow. Retrieved April

17, 2014, from

http://stackoverflow.com/questions/6051055/unique-constraint-in-entity-fram

ework

12

Page 175: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

Unique key with EF code first. (n.d.). StackOverflow. Retrieved May 20, 2014, from

http://stackoverflow.com/questions/5701608/unique-key-with-ef-code-first

Updating Related Data. (n.d.). The Official Microsoft ASP.NET Site. Retrieved March 20,

2014, from

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/updating-

related-data-with-the-entity-framework-in-an-asp-net-mvc-application

Updating Related Data. (n.d.). The Official Microsoft ASP.NET Site. Retrieved March 20,

2014, from

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/updating-

related-data-with-the-entity-framework-in-an-asp-net-mvc-application

Using Multiple Models in a View in ASP.NET MVC 4 / MVC 5. (n.d.). CodeProject.

Retrieved April 15, 2014, from

http://www.codeproject.com/Articles/687061/Using-Multiple-Models-in-a-Vie

w-in-ASP-NET-MVC-M

ViewData vs ViewBag vs TempData vs Session. (n.d.). DotNet-Tricks. Retrieved April 22,

2014, from

http://www.dotnet-tricks.com/Tutorial/mvc/9KHW190712-ViewData-vs-ViewBa

g-vs-TempData-vs-Session.html

Web Deployment Overview for Visual Studio and ASP.NET. (n.d.). MSDN Forums.

Retrieved May 10, 2014, from

http://msdn.microsoft.com/en-us/library/dd394698(v=vs.110).aspx

Web Deployment Overview for Visual Studio and ASP.NET. (n.d.). MSDN Forums.

Retrieved May 9, 2014, from

13

Page 176: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

http://msdn.microsoft.com/en-us/library/dd394698(v=vs.110).aspx

Windows 8 IIS does not load stylesheets and images in asp.net app. (n.d.).

StackOverflow. Retrieved May 11, 2014, from

http://stackoverflow.com/questions/16037933/windows-8-iis-does-not-load-st

ylesheets-and-images-in-asp-net-app

jQuery Autocomplete in MVC 3: Different Approaches and Customizations. (n.d.).

CodeProject. Retrieved March 17, 2014, from

http://www.codeproject.com/Tips/686965/jQuery-Autocomplete-in-MVC-Differ

ent-Approaches

javascript/jquery, CSS not working properly on IIS hosted site. (n.d.). StackOverflow.

Retrieved May 11, 2014, from

http://stackoverflow.com/questions/22005724/javascript-jquery-css-not-worki

ng-properly-on-iis-hosted-site

mvc client side validation broken now that im doing an ajax jquery .post. (n.d.).

StackOverflow. Retrieved May 12, 2014, from

http://stackoverflow.com/questions/4502778/mvc-client-side-validation-broke

n-now-that-im-doing-an-ajax-jquery-post

mvc client side validation broken now that im doing an ajax jquery .post. (n.d.).

StackOverflow. Retrieved May 12, 2014, from

http://stackoverflow.com/questions/4502778/mvc-client-side-validation-broke

n-now-that-im-doing-an-ajax-jquery-post P&V. (sd). Geschiedenis: P&V Groep. Opgeroepen op Mei 5, 2014, van P&V:

http://www.pv.be/nl/home/over-pv/geschiedenis.html

14

Page 177: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

P&V. (sd). Over Ons: P&V Groep. Opgeroepen op Mei 08, 2014, van P&V: http://www.pv.be/nl/home/over-pv/pv-groep.html

15

Page 178: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

20/06/2014

1

STAGE: P&V – PROJECT SCMDB

TIM D’HOE

WAT IS P&V?

• Groot bedrijf

• Brussel & Antwerpen

• Coöperatieve Verzekeringsgroep

• Diverse producten

Page 179: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

20/06/2014

2

WAAROM STAGE BIJ P&V?

• Verderzetting IT‐project 1e semester

• Toffe opdracht

• Uitdaging

HET PROJECT – WAT?

• Toepassing voor het beheren van informatie over servers

(S)CMDB

• Web toepassing

• ASP.NET & SQL Server

Page 180: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

20/06/2014

3

HET PROJECT – WAT IS EEN CMDB?

• ITIL

• KERN: beheren eigendommen van een bedrijf

• Servers, Mensen, Gebouwen, …  Configuration Items (CI)

• Uitbreiding naar bv. service desk

• Beperkt tot servers en afgeleiden in dit project

HET PROJECT – VOOR WIE?

• Afdeling “Server Management” van P&V

• Intranet toepassing

Page 181: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

20/06/2014

4

HET PROJECT ‐ PLANNING

• (S)CMDB

• IT‐Project

• Requirements Analyse

• Design

• Planning

• Stage

• Implementatie

• Testen

• In productie stellen

HET PROJECT ‐ AANPAK

• Tijdens stage

• Bijschaven van requirements uit 1e semester

• Demo versie maken

• Meetings met team

• Bijsturen op basis van feedback

• Testen

Page 182: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

20/06/2014

5

RESULTAAT: VAN PROTOTYPE NAAR PRODUCTIE

RESULTAAT: VAN PROTOTYPE NAAR PRODUCTIE

Page 183: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

20/06/2014

6

RESULTAAT: SWOT‐ANALYSE

Strenghts

• Applicatie zit goed in elkaar

• Resultaat is er

Weaknesses

• Testing kon beter

Opportunities

• App. laat makkelijk aanpassingen toe

Threats

• Gebruikte methodes moeten bij de grote van het project passen

WAT HEB IK GELEERD TIJDENS DE STAGE?

• Communicatie is van het grootste belang

• Planning ‐> alles duurt langer dan verwacht

• Efficiënt vergaderen

Competentie Beginscore Eindscore

Vlot functioneren in een professionele (Internationale) omgeving. 0 2

Competentie Beginscore Eindscore

Nieuwe IT‐oplossingen autonoom uitwerken in overeenstemming 

met de verwachtingen van de opdrachtgever.

1 2

Gegevens verzamelen, opslaan en ter beschikking stellen zodat 

deze op een correcte en gebruiksvriendelijke manier kunnen 

worden opgevraagd.

1 2

De informatiebehoeften van een organisatie gestructureerd en 

overzichtelijk weergeven, gebruik makend van analyse‐ en 

modelleringstechnieken.

1 2

Page 184: STAGEDOCUMENTATIE: P&V · 2014-06-21 · Het project sprak mij aan omdat het een uitdaging is voor mij. Aangezien ik als afstudeerrichting “Systemen en Netwerken” heb, ben ik

20/06/2014

7

WAT KAN IK NOG VERBETEREN?

• Initiatief / de leiding nemen