Het stage- en afstudeerverslag

advertisement
Afstudeeropdracht
Verbeteren van het klanteninformatiesysteem
van Inaxion en het uitbreiden met de project,
ticket en website modules.
Saidou Diallo
Hogeschool van Amsterdam- Instituut van Informatica
maart 2010
Student
Onderwijsinstelling:
Instituut:
Auteur:
Studentnummer
Afstudeer periode
Laatst gewijzigd
Hogeschool van Amsterdam
Instituut van Informatica
Saidou Diallo
225558
december 2009- april 2010
17 maart 2010
Afstudeerbedrijf
Bedrijfsnaam
Land, plaats
Stagebegeleider
Functie
Inaxion
Nederland, Lelystad
Jan Derriks
Docent
Versiebeheer
Versie
0.1
0.2
0.3
0.4
Datum
24 december 2009
28 december 2009
29 december 2009
15 januari 2010
0.5
19 januari 2010
0.6
0.7
22 januari 2010
24 januari 2010
0.8
28 januari 2010
2 februari 2010
4 februari 2010
6 februari 2010
0.9
14,15 februari
2010
1.0
17 februari 2010
10,11 en 13 maart
2010
14 maart 2010
21 maart 2010
Finale
versie
Wat
 Documentstructuur opgezet
 Hoofdstukken 2,3 en 4 aangevuld
Documentstructuur aangepast,
 Hoofdstuk 4 aangepast
 Begin van hoofdstuk 5
 Verbeteringen van hoofdstuk 2,3 en 5
 Gewerkt aan de lay-out
 Afbeeldingen toegevoegd














Begin Hoofdstuk 7
Hoofdstuk 6
Bijlage1 toegevoegd
Hoofdstuk 6, 7, 8
Bijlage 2
Reflectie verslag
Inhoudsopgave
Voorwoord
Samenvatting
Summary
Inleiding‟
Conclusie
Bijlage3
Bilage4/Bijlage5


Correctie en lay-out
Verbeteren na feedback van de examinator


Website module gedeelte toegevoegd
Laatste correcties
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 2
maart 2010
Voorwoord
Bij het zoeken naar een stage opdracht had ik een paar doelen gesteld: leren van
een nieuwe programmeertaal, een klein bedrijf waar ik mijn verbale communicatieve
vaardigheden kan verbeteren.
Inaxion is een bedrijf dat hieraan voldoet. Daarom heb ik dit bedrijf gekozen voor
mijn afstudeeropdracht.
Werken bij Inaxion vond ik erg leuk. Dit kwam onder meer doordat ik heel veel
vrijheid kreeg bij de inrichting en de uitvoering van mijn project. Het was uitdagend
om nieuwe technieken te leren in dit bedrijf. Ook is het interessant om te zien hoe
het werken bij Inaxion anders is dan bij mijn vorige stage bij Genetics. Er was
bijvoorbeeld goed te merken dat er bij Inaxion veel minder formeel wordt
gecommuniceerd tussen de werknemers, wat ik zelf een stuk prettiger vind.
Allereerst bedank ik Inaxion voor de gelegenheid, om mij dit afstudeerproject te
laten doen met vol vertrouwen in mij en mijn kwaliteiten, en zonder ook maar een
enkele eis te stellen aan mijn vaardigheden.
Naast iedereen bij Inaxion wil ik in het bijzonder bedanken:
Mijn bedrijfsbegeleider Frans Loos, de projectmanager Joeri Bauw en project
medewerker Mathijs Huis, omdat zij altijd voor me klaar stonden om vragen te
beantwoorden als ik die had. De rest van de medewerkers dank ik voor hun
medewerking, gezelligheid en bijdragen van kennis.
Mijn stagebegeleider Jan Derriks voor begeleiding vanuit de Hogeschool. Hij heeft me
vooral ontzettend goed geholpen met het verbeteren van dit document, en zijn
advies was altijd handig. Ik wil ook mijn studie loopbaanadviseurs Heleen Stapel en
Marlies Nijenhuis-Stelder hartelijk bedankten voor hun advies en begeleiding.
Het is ook de gelegenheid voor me om Kurt Anzenhofer van de stichting het Gilde
Amsterdam voor de ondersteuning van de afgelopen 4 jaren te bedanken; Karolijne
Barrie voor het mee lezen van het verslag.
Ik wil ook iedereen bedanken die mij ondersteund heeft tijdens mijn studie, het gaat
om: familie, vrienden en mijn Nederlandse docenten.
Dit verslag is geschreven voor de Hogeschool van Amsterdam om mijn studie tot een
goed einde te brengen.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 3
maart 2010
Inhoudsopgave
Summary _____________________________________________________________ 6
Samenvatting _________________________________________________________ 7
Lijst van symbolen en verklarende woordenlijst ________________ 8
Inleiding ____________________________________________________________ 10
1.
Stagebedrijf ____________________________________________________ 11
1.1.
Inaxion_____________________________________________________________ 11
1.2.
Organogram ________________________________________________________ 12
2.
Opdracht ______________________________________________________ 13
2.1.
Situatieomschrijving __________________________________________________ 13
2.2.
Mijn plaats binnen het bedrijf __________________________________________ 15
2.3.
Opdrachtformulering _________________________________________________ 15
3.
Project ________________________________________________________ 16
3.1.
Doelstellingen _______________________________________________________ 16
3.2.
Producten __________________________________________________________ 16
3.3.
Projectactiviteiten ____________________________________________________ 16
3.4.
Eisen en beperkingen _________________________________________________ 18
3.5.
Aanpak ____________________________________________________________ 18
3.6.
Bereik _____________________________________________________________ 19
3.7.
Randvoorwaarden ___________________________________________________ 19
3.8.
Kosten en baten _____________________________________________________ 19
3.9.
Kwaliteit ___________________________________________________________ 20
3.10.
4.
Risicobeheer ______________________________________________________ 20
Test __________________________________________________________ 23
4.1.
Master testplan _____________________________________________________ 23
4.2.
Statische tests ______________________________________________________ 23
4.3.
Functionele test _____________________________________________________ 23
4.4.
Selenium testing en Performance testing _________________________________ 24
4.5.
Bruikbaarheids test __________________________________________________ 24
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 4
4.6.
5.
maart 2010
Acceptatie test ______________________________________________________ 25
Verloop van de werkzaamheden ___________________________________ 26
5.1.
Planning ___________________________________________________________ 26
5.2.
Methode ___________________________________________________________ 26
5.3.
Gemaakte keuzes ____________________________________________________ 27
5.4.
Functioneel & technisch ontwerp _______________________________________ 29
Legend ________________________________________________________________ 29
5.5.
Structuur van het project ______________________________________________ 33
5.6.
Ontwikkeling ________________________________________________________ 34
6.
Technieken ____________________________________________________ 45
6.1.
Programmeertalen ___________________________________________________ 45
6.2.
Overige Technieken __________________________________________________ 47
7.
Eindresultaat ___________________________________________________ 51
8.
Reflectie _______________________________________________________ 52
8.1.
Leerdoel 1: Zelfstandig een bestaande applicatie bestuderen en uitbreiden. ____ 53
8.2.
Leerdoel 2: Zich verdiepen in nieuwe technieken ___________________________ 53
8.3.
Leerdoel 3: Een goede planning maken en bijhouden _______________________ 54
8.4.
Leerdoel 4: Gebruik maken van de kennis van teamleden ___________________ 55
Conclusie ___________________________________________________________ 56
Literatuurlijst ________________________________________________________ 57
Boeken en artikels ________________________________________________________ 57
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 5
maart 2010
Summary
Inaxion is a successful communications and ICT small business. By paying close
attention to the needs and aspirations of its customers, the company is able to offer
them the best solutions to their problems through advice, consultancy,
communications and web development. To detail the expanded and improved
customer information system for Inaxion, the results of a research assignment are
presented in the form of a final HBO thesis of the University of Applied Science,
Amsterdam.
During the execution of this assignment, the customer and the contact modules of
the information system were improved and then expanded to 3 modules: project,
ticket and website.
In the past, Inaxion used to work with AxiTrack, a system that contained only a
collection of clients and contacts information.
To successfully execute this project, two developing methods were used: the Sashimi
and the FDD model.
The project is divided into a series of activities. The first few are focused on
improving the existing modules of CIS (KIS), which could later be expanded. The
SRS document contains the tools required to develop the CIS.
The programming languages and some of the techniques used in the execution of
this project include PHP, SQL, jQuery, Blueprint.
To ensure a good quality of the final product, a master test plan was developed in
which functional test, usability test were all carried out.
To enable Inaxion‟s employees use the CIS, a comprehensive and quality training
session was organized and given to them.
At the time of writing this report the KIS is already being put into use by the
company to support its business processes.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 6
maart 2010
Samenvatting
Inaxion is een succesvol klein communicatie en ICT bedrijf, dat met de klant naar de
beste oplossing zoekt via advies, consultancy, communicatie en webontwikkeling.
Voor dit bedrijf is het klanteninformatiesysteem verbeterd en uitgebreid tijdens een
eindstage opdracht van de Hogeschool van Amsterdam.
Gedurende het uitvoeren van deze stageopdracht is een begin gemaakt met het
verbeteren van de klant en contact modules. Daarna is het klanteninformatiesysteem
uitgebreid met 3 modules (project, ticket en website).
Eerder werkte Inaxion met AxiTrack dat bestond alleen uit een verzameling van zijn
klanten en contacten.
Om dit project met succes af te ronden zijn twee ontwikkelingsmethoden gebruikt:
het Sashimi-model en FDD.
Het project is verdeeld in een serie activiteiten. De eerste activiteiten waren het
verbeteren van de bestaande modules van het KIS, die later konden worden
uitgebreid. In het SRS document was een basis gezet wat komt in het KIS en hoe de
ontwikkeling wordt gedaan.
De programmeertalen en enkele technieken die gebruikt zijn, waren bijvoorbeeld:
PHP, SQL, jQuery en Blueprint.
Voor een goede kwaliteit van het eindproduct is een masterplan gemaakt en een
functionele test en bruikbaarheids test uitgevoerd.
Om het KIS te kunnen gebruiken is een training opgezet en gegeven aan de
medewerkers van Inaxion.
Op dit moment van het schrijven van dit verslag is het KIS al in gebruik bij het
bedrijf om zijn bedrijfsprocessen te ondersteunen.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket, website modules
maart 2010
Lijst van symbolen en verklarende woordenlijst
Term
Uitleg
Blueprint
Een CSS framework dat kan helpen om snelle en
consistente lay-out van de pagina‟s te maken.
Het te ontwikkelen klanteninformatiesysteem van Inaxion
Lightweight directory access protocol, een protocol
waarmee een databank via een netwerk ondervraagd kan
worden
Unified Modeling Language. Dit is een modelleertaal die is
ontworpen om objectgeoriënteerde analyses en ontwerpen
voor een informatiesysteem te kunnen maken.
Een softwarepakket dat gebruikt kan worden tijdens het
programmeren van applicaties.
Model-View-Controller is een ontwerppatroon ("design
pattern") dat het ontwerp van complexe toepassingen
opdeelt in drie eenheden met verschillende
verantwoordelijkheden: Datamodel (Model),
Datapresentatie (View) en Applicatielogica (Controller).
Functioneel ontwerp
Een open source framework ontwikkeld
in objectgeoriënteerde PHP5 code. Met zend framework kan
de MVC toegepast worden en het verhoogt de
herbruikbaarheid tijdens het ontwikkelen.
Een afkorting in het Engels van Software Requirements
Specifications.
Het is een document waarin de eisen van de applicatie
vermeld zijn
Klant van Inaxion
Inaxion
Een type van een kwetsbaarheid dat vaak voorkomt bij de
webapplicaties. Het gebeurd tijdens het invoeren van data
als dat op onvoldoende wijze is gecontroleerd.
Een aangepast waterval model waarin de
ontwikkelingsfasen kunnen overlappen
Een traditionele methode in software ontwikkeling waarin
de ontwikkeling regelmatig vloeiend naar beneden loopt
(als een waterval).
Het oude klanteninformatiesysteem van Inaxion
Feature driven development is een modeldriven ontwikkelmethode dat uit vijf basistaken bestaat. De
FDD is een van de vele soorten van de agile methoden
Content management Systeem
Naam adres en woonplaats
Application program interface, is een verzameling definities
KIS
LDAP
UML
Framework
MVC
FO
Zend Framework
SRS
Klant
Opdrachtgever
SQL Injectie
Sashimi-model
Waterval model
AxiTrack
FDD
CMS
NAW
API
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 8
maart 2010
CIS
DAO
J2EE
Selenium
op basis waarvan een computerprogramma kan
communiceren met een ander programma of onderdeel
(meestal in de vorm van bibliotheken)
Customer Information System, de Engelse benaming van
het KIS.
Data access object zijn de klassen waarin de SQL
statements zijn gezet om te kunnen communiceren met de
database. De DAO's kunnen als datalaag genoemd.
Een Java ontwikkelplatform dat biedt een multi-tier
ontwikkeling mogelijkheden.
Een draagbaar software testing framework voor
webapplicaties.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 9
maart 2010
Inleiding
Dit verslag presenteert het resultaat van een afstudeerderopdracht bij Inaxion, in
Lelystad.
De projectopdracht van deze afstudeerstage bestaat uit het verbeteren van klant en
contact modules en het ontwerpen, bouwen en testen van de project, ticket, en
website modules voor een klanteninformatiesysteem.
In hoofdstuk 1 is gesproken over het stagebedrijf, vooral de organisatiestructuur, de
diensten en producten die het bedrijf aanbiedt.
Hoofdstuk 2 van het verslag gaat over de stageopdracht, vooral de huidige situatie
omschrijving en mijn plaats binnen Inaxion.
Hoofdstuk 3 vertelt over het project: de doelstellingen, de in te leveren producten en
de projectactiviteiten. De eisen en beperkingen, de aanpak, kosten en baten en het
risicobeheer worden in dit hoofdstuk besproken.
Vervolgens bevat hoofdstuk 4 de soort testen en testtechnieken om een
gekwalificeerd product op te leveren.
In hoofdstuk 5 staat hoe het project precies is verlopen. Het project is onderverdeeld
in zes onderdelen waar bij elk onderdeel tot in detail beschreven wordt.
Alle technieken die gebruikt worden tijdens het ontwikkelen van het KIS zijn
uitgelegd in hoofdstuk 6
Het eindresultaat van de stage is beschreven in hoofdstuk 7. Omdat dit verslag
geschreven is tijdens het project, en niet erna, staan niet alle onderdelen volledige
beschreven.
De hoofdstukken 8 en 9 gaan over het eindresultaat, de leerdoelen en de zelfreflectie
in de loop van dit project.
Ten slotte komt de conclusie van het project en aanbevelingen voor een toekomstige
uitbreiding van het KIS.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 10
maart 2010
1. Stagebedrijf
Inaxion is een succesvol klein design- en communicatiebureau, dat met de klant naar
de beste oplossing zoekt via consultancy, webontwikkeling, advies. Het bedrijf
bevindt zich in Lelystad. Inaxion bestaat meer dan 30 jaar en had de naam AxiPress
en heet sinds 25 september 2009 Inaxion.
In dit hoofdstuk wordt het bedrijf beschreven. Paragraaf 1.1 behandelt de
organisatiestructuur binnen het bedrijf. Het organigram is beschreven in paragraaf
1.2.
1.1.
Inaxion
Inaxion is een multidisciplinair bedrijf met veel diversiteit en deskundigheid. Met
deze deskundigheid, ervaring en professionele opstelling bouwt Inaxion een goede
relatie op met hun klanten. Het bedrijf probeert elk van hun producten zoveel
flexibiliteit mee te geven, dat het product voor meerdere soorten klanten geschikt is.
De klanten van Inaxion zijn door deze flexibiliteit divers; kleine en middelgrote
bedrijven maar het merendeel zijn onderwijs- en overheidsinstanties.
De medewerkers van Inaxion zijn ruwweg in vijf groepen in te delen:
AxiPress: een onderdeel van Inaxion dat professionele foto's, teksten en video's
levert.
AxiSmart: in deze afdeling worden websites en webapplicaties ontworpen, gebouwd
en beheerd.
AxiCreate: Het is de afdeling vormgeving die maakt kant en klare grafische
producten. Van een enkelvoudig visitekaartje tot het maken van logo's, huisstijlen
AxiConsult: Bij AxiConsult krijgen de klanten advies over marketing, creativiteit en
ondernemerschap.
AxiEvent: Het is het deel van Inaxion dat organisaties en bedrijven helpt bij het
organiseren van evenementen.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 11
maart 2010
1.2.
Organogram
Hieronder is het organogram van Inaxion
Directie
Administratie
Account manager
Vormgeving
Web Ontwikkeling
Fotograaf/tekst
Afbeelding 1: Organogram van Inaxion
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 12
maart 2010
2. Opdracht
2.1.
Situatieomschrijving
Gedurende geruime tijd heeft Inaxion gebruik gemaakt van het AxiTrack systeem. In
dit systeem waren klantgegevens opgeslagen bestaande uit de algemene klanteninformatie en de contactpersonen van deze klant. In dit systeem waren beperkte
mogelijkheden om de bedrijfsprocessen te ondersteunen. Inaxion is een groeiend
bedrijf, daardoor bestond de behoefte aan een nieuw KIS
(klanteninformatiesysteem). De nieuwe applicatie moet zinvol zijn voor zowel
directie, accountmanagement, vormgeving als internet. De klant en contact module
van het KIS zijn al gebouwd in een eerder stadium. De huidige behoefte is, om die
modules te verbeteren en uit te breiden met extra modules.
Hieronder zijn paar afbeeldingen van de huidige situatie van de klant en contact
modules
Afbeelding 2: klant module
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 13
maart 2010
Afbeelding 3: Contact module
Hieronder op afbeelding 4 staat een voorbeeld waar te zien is hoe Inaxion op dit
moment met zijn tickets werkt. Deze afbeelding laat de behoefte zien voor het
automatiseren binnen het bedrijf.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 14
maart 2010
Afbeelding 4: Een nieuw ticket op papier
2.2.
Mijn plaats binnen het bedrijf
Tijdens deze stage heb ik gewerkt aan een applicatie die niet verbonden is aan de
producten die Inaxion aan zijn klanten oplevert. Ik heb zelfstandig gewerkt met
ondersteuning van de andere ontwikkelaars van de internet afdeling. Mijn taak
tijdens het uitvoeren van dit project was het verbeteren en het uitbreiden van het
nieuwe KIS met extra modules.
2.3.
Opdrachtformulering
De uit te voeren opdracht is als volgt geformuleerd:
Het verbeteren van het huidige KIS van Inaxion en het uitbreiden met project, ticket
en website modules.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 15
maart 2010
3. Project
3.1.
Doelstellingen
De doelstellingen van dit project zijn het bouwen van werkende modules van het
KIS. De lijst van die doelstellingen staat hieronder.
 Klant en contact modules: verbeteren met extra functionaliteiten
 Project module: waarmee een gebruiker een nieuw project kan maken voor een
bepaalde klant en die kan updaten en verwijderen.
 Ticket module: waarmee een ticket gemaakt kan worden voor een bepaald
project en die ticket toewijzen naar een gebruiker.
 Website module: een website als product kan worden afgenomen door een klant,
een website kan meerdere modules bevatten.
3.2.
Producten
Naast het verbeteren van de klant en contact modules, volgt hier een overzicht van
de modules die opgeleverd dienden te worden.






Project module: het is een deel van het systeem om de projecten van de klanten
te beheren.
Ticket module: het is een deel van de applicatie om de tickets van een project te
beheren, de tickets zijn verbonden aan projecten.
Website module: het is een deel van de applicatie om websites aan een klant te
koppelen en ontkoppelen.
Technische documentatie: Het is het document met de ontwerpen van de
applicatie en de architectuur van het project
Handleiding: in de handleiding wordt uitgelegd hoe de verschillende gebruikers
van de applicaties hiermee gaan werken
Test documenten master testplan en bruikbaarheids test document
3.3.
Projectactiviteiten
Hieronder worden de projectactiviteiten besproken. Ze zijn onderverdeeld in hoofden subactiviteiten, en staan op chronologische volgorde. De hoofdactiviteiten zijn
terug te vinden in de planning (paragraaf 5.1 )
a) Plan van Aanpak
 Maken concept plan van aanpak;
 Bespreken plan van aanpak met opdrachtgever;
 Maken definitief plan van Aanpak.
b) Opstellen van het SRS document




Bespreken van de eisen en grenzen van het systeem
SRS opstellen
SRS bespreken
SRS aanpassen
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 16
maart 2010
c) Klant en contact modules in exploitatie
 De klant en contact modules gebruiken
 Feedback verzamelen
 Lijst van aanpassingen opstellen
d) Onderzoek voor het gebruiken van een template
 Bestuderen van verschillende templates
 Bekijken de voordelen en nadelen voor dit project
 Beslissen van het gebruik van een template
e) Master testplan




Doel van de test bepalen
Het bereik bepalen
Soort rapportage
Tijdsplanning opzetten
f)



Ontwerpen maken voor de drie modules
Use cases bespreken
Klassen diagram maken
Database ontwerp maken
g) Project module



Gedetailleerd ontwerp
Ontwikkelen
Testen
h) Ticket module



i)
Gedetailleerd ontwerp
Ontwikkelen
Testen
Website module



Gedetailleerd ontwerp
Ontwikkelen
Testen
j)
Testen


Code reviews
Einde gebruikertest
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 17
maart 2010
k) Documentatie& Training






Handleiding voor de gebruiker maken
Technische documentatie voor verdere uitbreiding van de applicatie
Training geven aan de gebruikers
l)
Afstudeerverslag schrijven
Een concept afstudeerverslag maken
Concept bespreken met examinator
Maken definitief afstudeerverslag.
3.4.
Eisen en beperkingen
Het requirements document is een document waarin de afspraken over het
functioneren van het te ontwikkelen systeem in overleg met de opdrachtgever/klant
worden vastgelegd. Deze eisen vallen uiteen in twee groepen:
 Functionele eisen
 Niet-functionele eisen
Hier volgt een korte weergave van de lijst van requirements. Een completere lijst
van requirements in het Engels staat beschreven in bijlage 1:
3.4.1. Functionele eisen
OE-1: De applicatie moet benaderbaar zijn met alle nieuwe webbrowsers
OE-2: Het KIS moet worden gerund op het intranet van Inaxion
C0-1: De programmeertaal is PHP
CO-2: Alle HTML codes voldoen aan de eisen van HTML 4.0 of hoger
CO-3: Code eenvoudig te onderhouden en scheiding van lagen (MVC)
3.4.2. Niet functionele eisen
UD-1: Handleiding voor de gebruiker en voor een verder uitbreiding van KIS
SE-1: Login met rechten
SE-3: De applicatie beschermen tegen SQL injecties
PE-2: Alle webpagina‟s kunnen genereren volledige pagina‟s in minder dan 10
seconden bij een verbinding van 5MBps van internet snelheid.
3.5.
Aanpak
De eerdere gebouwde modules (klant en contact) zijn de basis van de applicatie,
deze twee zijn in exploitatie gebracht en daar zijn de bugs opgelost. Stabiele klant
en contact modules zullen zorgen voor een betere ontwikkeling van de andere
modules. Een geheel en beknopt (use cases, klassen diagrammen en database
ontwerp ) ontwerp is gemaakt. Daarna is per module of functionaliteit een
gedetailleerd ontwerp gemaakt voor de ontwikkeling en testen is ook per module
gedaan.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 18
maart 2010
3.6.
Bereik
Het volgende valt binnen de grenzen/scope van het project:
Het implementeren van de klant en contact modulen en daarvan bug oplossen en
extra functionaliteiten toevoegen als er nieuwe eisen komen.
Ontwerpen, bouwen, testen en implementeren van het project, ticket en website
modules.
Buiten het project valt:
Het beheer en uitbreiding van de modules nadat deze zijn opgeleverd.
3.7.
Randvoorwaarden
1. Op de PC staat een IDE (software-ontwikkelomgeving) of die kan
geïnstalleerd worden.
2. De bestaande software, broncode en documentatie van het KIS en de
AxiTrack moet te bekijken zijn.
3. De software van het KIS moet functioneren, zodat deze geanalyseerd en
uitgebreid kan worden.
4. Beschikbaarheid van medewerkers voor kennisoverdracht en hulp.
3.8.
Kosten en baten
Omdat dit een stageproject is, zal dit project weinig kosten met zich meebrengen.
Dit is alleen te meten in het aantal werkuren dat hieraan besteed zullen moeten
worden. Hier een kort overzicht van alle benodigde uren:
Omschrijving
Bestuderen van technieken
Ontwerpen
Bouwen
Testen/Training geven
Documentatie
Total
Uren (ongeveer)
120
80
300
100
80
680
Tabel: kosten overzicht
Om de kosten in geld uit te drukken kan een berekening worden gemaakt:



Duur van de stage: 5 maanden
Stage vergoeding per maand: € 240
Totale stage vergoeding voor de stage: 5*240= €1200
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 19
maart 2010
De opbrengsten (baten) van dit project zijn als volgt:




Meer mogelijkheden geven voor het beheren van klanten, een centraal
klantendossier voor Inaxion
Alle informatie van de klanten wordt geautomatiseerd
Een beter klantinformatiesysteem kan tijd besparen daardoor minder kosten
voor Inaxion
Voorkomen van fouten
3.9.
Kwaliteit
Hoewel KIS een los systeem wordt, dat zoveel mogelijk gebruik gemaakt van
dezelfde technieken, software, codestructuur en dergelijke die door de rest van het
ontwikkelingsteam gebruikt worden.
Dit houdt bijvoorbeeld in:
 De toepassing van OO programmeren
 Het werken in dezelfde productieomgeving op de server
 Een goede structuur gebruiken zoals de MVC.
Netbeans is de IDE die wordt gebruikt tijdens dit project en dat helpt om een betere
structuur en overzicht van de codes te houden.
3.10.
Risicobeheer
Om goede resultaten te bereiken binnen dit project is rekening gehouden met
dreigingen die problemen kunnen veroorzaken. Bij een project komen 3 soorten
risico‟s: projectrisico‟s, productrisico‟s en businessrisico‟s. Er is begonnen met het
identificeren van de risico‟s daarna kwamen de analyses en als laatste de controle
van die dreigingen. Voor dit project zijn er alleen product- en projectrisico‟s die
kunnen in 2 delen gegroepeerd: interne en externe risico‟s
3.10.1.
Interne Risico’s
Dit is een opsomming van alle risico‟s die het succes van dit project kunnen
bedreigen. Door de kans te vermenigvuldigen met het effect worden er prioriteiten
en risico‟s verkregen.
Kans
1
Zeer klein
2
Klein
3
Middelmatig
4
Groot
5
Zeer groot
Effect
1
Minimaal
2
Niet Serieus
3
Serieus
4
Kritiek
5
Zeer Kritiek
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 20
maart 2010
Onvoldoende kennis bij de projectmedewerker
Omschrijving
Het kan voorkomen dat de projectmedewerker
technieken tegenkomt waar hij nooit eerder mee heeft
gewerkt. Het aanleren van nieuwe technieken kost
meer tijd, wat tot een langere projectduur kan leiden
Punten
Kans 5, Effect 2, Risico 10
Tegenmaatregel Gebruik maken van de rest van het projectteam, zodat
nieuwe technieken snel aangeleerd kunnen worden.
Langdurige ziekte van de projectmedewerker.
Omschrijving
Punten
Tegenmaatregel
Aangezien het project wordt uitgevoerd door een
persoon wordt in het geval van langdurige ziekte het
project stopgezet.
Kans 2, Effect 5, Risico 10
Duidelijke structuur van het project, regelmatige
rapportage kan helpen voor een betere en snellere
overdracht.
Veranderde Software Requirements
Omschrijving
Punten
Tegenmaatregel
Het is mogelijk dat door de opdrachtgever beslist
wordt dat er requirements bij komen tijdens het
project
Kans 5, Effect 3, Risico 15
Tijdig communiceren met opdrachtgever als blijkt dat
het implementeren van een nieuwe requirements te
veel tijd gaat kosten.
Onvoldoende begeleiding
Omschrijving
Punten
Tegenmaatregel
Het kan dat begeleiding bij het bedrijf onvoldoende is,
door tijd gebrek van de begeleiders.
Kans 1, Effect 5 Risico 5
Goede afspraak maken met de begeleider en op tijd
aangeven als dit probleem voorkomt.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 21
maart 2010
Langdurige ziekte van de projectmanager
Omschrijving
Punten
Tegenmaatregel
3.10.2.
Het kan dat de projectmanager langdurig ziek wordt.
Kans 1, Effect 10 Risico 10
Bespreken met de bedrijfsbegeleider, de vooruitgang
van het project bekijken. Aan de hand van deze
analyse een beslissing nemen: requirements
aanpassen of project stoppen
Externe Risico’s
Een NO-GO van de examinator, die kan leiden tot vroegtijdige beëindiging van het
project of verlenging van de stage.
3.10.3.
Conclusie
Veranderingen in de SRS hebben een risico waarde van 15, daar moet meer
aandacht worden besteed.
Er zijn veel punten met risico 10, die verdienen meer aandacht dan punten met risico
5.
Tijdens het uitvoeren van dit project is het vaak voorgekomen dat punten in het
requirements document worden aangepast of toegevoegd, concrete voorbeelden
daarvan zijn vermeld in (paragraaf 5.4.1)waar de bijgekomen eisen te zien zijn. Het
is voorgekomen dat de projectmanager ziek was. Dat gebeurde in een stadium
waarin het project en ticket modules klaar waren, daardoor was de invloed op het
project gering.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 22
maart 2010
4. Test
Om een goede kwaliteit van het eindproduct te waarborgen is een master testplan
gemaakt. Dit testplan zorgt voor gestructureerde en optimale test.
4.1.
Master testplan
Het master testplan bevat de testtechnieken, de tijdsplanning en de te uitvoeren
tests. Dit document is als product ingeleverd aan Inaxion. Het volledige document is
als bijlage ( bijlage 3) bij dit verslag toegevoegd. Hieronder komen een aantal die in
het document besproken zijn.
4.2.
Statische tests
Tijdens het uitvoeren van dit project, vond regelmatig controle (code reviews) door
de projectmanager of een ander lid van de internetafdeling plaats. Deze controle
vond twee keer plaats tijdens het ontwikkelen van elke module: de eerste keer
tijdens het ontwikkelen en de tweede keer na het voltooien van de module.
Er is vooral aandacht besteed om de SQL injectie te voorkomen. Na elke review is
gekeken of de applicatie beschermd is tegen injecties door het gebruiken van de PHP
functie “mysql_real_escape_string”
4.3.
Functionele test
Deze test is vaak uitgevoerd door de directeur van het bedrijf, hij is de
hoofdgebruiker van de applicatie. Hij voert die tests uit om te controleren of de
applicatie de functionaliteiten bevat die besproken zijn in het SRS document. De
tests zijn uitgevoerd na het voltooien van elke module.
Aantal voorbeelden van fouten die gevonden zijn tijdens het runnen van de KIS
applicatie zijn hieronder weergegeven.
Bij de klant (' t Groene Weekblad) tijdens het aanpassen van de klant gegevens
kwam deze foutmelding.
“You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 't Groene”
Oplossing:
Gebruik maken van mysql_real_escape_string, Deze functie van PHP, wordt
gebruikt om data veilig te maken voor het versturen van een query naar de MySQL
database.
*Warning*: session_start() [function.session-start]: Cannot send session
cache limiter - headers already sent (output started at
/srv/sites/web/kis/kis.nl/htdocs/include/header.php:2) in
*/srv/sites/web/kis/kis.nl/htdocs/config.php* on line *2*
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 23
maart 2010
4.4.
Selenium testing en Performance testing
Voor het KIS is Selenium gebruikt om het systeem te testen. Om deze test te
kunnen uitvoeren is het gebruikt gemaakt van een record playback plug-in die bij
Firefox geïnstalleerd is.
Voor de performance is het YSlow gebruikt om de kwaliteit van het KIS te
controleren en verbeteren. Op afbeelding 5 is weergegeven een van de resultaten
tijdens het uitvoeren van deze test.
Afbeelding 5:Yslow test resultaat
4.5.
Bruikbaarheids test
Het is een test om de bruikbaarheid van de applicatie te controleren. De
bruikbaarheids test is een blackbox test waarin een gebruiker kan de applicatie
testen.
Tijdens deze test is gekeken naar:
 Gemiddelde tijd voor een taak
 Het percentage van de onvoltooide/voltooide taken
 Aantal keer dat de gebruiker naar hulp vraagt
 Aantal keren dat er frustratie wordt uitgedrukt omdat een taak niet kan
worden voltooid.
 Aantal fouten
 De feedback van de gebruiker/tester
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 24
maart 2010
Afbeelding 6: feedback formulier voor de bruikbaarheids test
4.6.
Acceptatie test
De acceptatie test is uitgevoerd na het maken van de release van het KIS, het
voltooien van een module of het toevoegen van een functionaliteit. Een medewerker
van de opdrachtgever controleert of de applicatie voldoet aan de eisen die het bedrijf
zich gesteld heeft.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 25
maart 2010
5. Verloop van de werkzaamheden
5.1.
Planning
Tijdens het project is gewerkt aan verschillende activiteiten. De planning is meerdere
malen gewijzigd door het toevoegen van nieuwe functionaliteiten, en herzien van
prioriteiten. Hieronder is op afbeelding 7 de laatste geüpdate planning weergegeven.
De andere versies van de planning zijn als bijlage 3 toegevoegd aan dit verslag.
In de planning is te zien de overlapping van de fases (Sashimi- model paragraaf
6.2). In de rood gemarkeerde taken zijn toegevoegd of de order van de uitvoering is
gewijzigd.
nov 2009
ID
Task Name
dec 2009
jan 2010
feb 2010
mrt 2010
tijd
1-11
1
Plan van aanpak
2
SRS
8d
3
Klant en Contact module in exploitatie
14d
4
Test plan
9d
5
Project module
14d
6
Ticket module
20d
7
Website module
21d
8
Extra functionaliteiten klant /contact
15d
9
Testing
10
Documentatie/training
37d 6,12h
11
Afstudeer verslag
61d 2,52h
8-11 15-11 22-11 29-11 6-12 13-12 20-12 27-12
3-1
10-1
17-1
24-1
31-1
7-2
14-2
21-2
28-2
7-3
14-3
21-3
6d 5,1h
66d ,1h
Afbeelding 7: einde planning
5.2.
Methode
De volgende twee methodes zijn toegepast tijdens het doorlopen van het gehele traject:
 Het Sashimi- model (afbeelding 8) dat is een aangepast model van het waterval
model
 Feature driven methode(FDD).
In het Sashimi-model zijn de fasen hetzelfde als in het traditionele waterval model,
alleen komt er een overlapping van de fases.
Het Sahimi-model is toegepast voor elke module en FDD wanneer een extra
functionaliteit wordt gebouwd aan de hand van nieuwe eisen.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 26
maart 2010
Afbeelding 8: Sashimi-model
5.3.
Gemaakte keuzes
5.3.1. Ontwerp
PHP is niet een volledige objectgeoriënteerde taal, daardoor is het niet eenvoudig om
een ontwerp te maken die goed aansluit op de ontwikkeling. Om dit project uit te
voeren is UML als ontwerptaal gekozen. UML is gemaakt vooral voor volledig
objectgeoriënteerde talen zoals Java. PHP is een taal waar de combinatie tussen
objectgeoriënteerde en paginageoriënteerde met scripts bestanden gebruikt worden.
Om de applicatie te modelleren zijn er veranderingen nodig bij UML standaard
modellering.
Hieronder zijn de aanpassingen die toegepast zijn voor het ontwerp van het
klanteninformatiesysteem van Inaxion.
Voor de PHP pagina‟s is de relatie tussen de pagina‟s weergegeven met de “includes”
tussen de pagina‟s.
Dit voorbeeld laat zien dat index.php in houdt de common-code.php met de include
functie van PHP.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 27
maart 2010
Hier boven is de weergave van een PHP bestand of klas dat houdt in de instantie van
een andere PHP klas. Het uitgebreide ontwerp is toegevoegd in de bijlage 5.
Om een goed en overzichtelijk ontwerp te maken zijn de volgende keuzes gemaakt.
1. Ontwerp van de klas diagrammen van de objectklassen op hoog niveau met alle
klassen van alle modules van het KIS.
2. Ontwerp met het gebruik van het artikel van Prof Jim Universiteit van California
Santa Cruz ( zie literatuurlijst)
3. Uitgebreid ontwerp op module niveau.
5.3.2. Ontwikkeling
Een keuze om niet het Zend Framework te gebruiken. Om een keuze te maken zijn
een aantal elementen meegenomen.
Ten eerste Inaxion gebruikt niet Zend Framework als standaard framework.
Ten tweede, een van de voordelen van frameworks is om tijd te kunnen besparen
voor grote projecten. In dit geval: KIS is niet een groot project dus de tijd om het
beste framework te kiezen, aan te leren en de bestaande modules te herbouwen, is
groter dan de tijd die bespaard kan worden met het gebruik van een framework.
Als laatste: het is bekend dat in het geval van een verkeerde keuze van framework
de programmeur wordt gelimiteerd door het framework en zijn mogelijkheden. De
keuze voor de programmeur wordt verder gaan met het framework met onvoldoende
functionaliteiten of helemaal opnieuw beginnen met een ander framework.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 28
maart 2010
5.4.
Functioneel & technisch ontwerp
5.4.1. Use Case
Op afbeelding 9 hieronder staat de use cases diagram.
KIS
Login
Project Toevoegen
Project Wijzigen
Project Verwijderen
Ticket Toevoegen
Ticket Wijzigen
Ticket Verwijderen
Website Detail
Raadplegen
Directeur/
Account Manager
Web Ontwikkelaar/
Ontwerper/
Fotograaf
Website Ontkoppelen
Website Koppelen
Ticket Detail
Uitprinten
Contact Notitie
Toevoegen
Contact Notitie
Verwijderen
Mail Template
Uitprinten
Contact Gegevens
Uitprinten
Afbeelding 9: Use cases diagram
Legend
Login
Ticket Detail
Uitprinten
use case in het SRS document
use cases na het SRS document
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 29
maart 2010
Lijst van de use cases
Klas van de use case
Use case
Use cases gerelateerd aan
de autorisatie
Use cases gerelateerd aan
een project
Login
Project toevoegen
Project Wijzigen
Project Verwijderen
Use case gerelateerd aan
een ticket
Ticket toevoegen
Ticket aanpassen
Ticket verwijderen
Use cases gerelateerd
aan website of a
customer
Website koppelen
Website ontkoppelen
Website details
raadplegen
Use cases gerelateerd aan
een contact
Contact data uitprinten
Mail template
uitprinten
Beschrijving van de use
case
Inloggen op het KIS
Hiermee wordt een project
toegevoegd
Hiermee wordt een project
aangepast
Hiermee wordt een project uit
de database verwijderd
Hiermee wordt een ticket
toegevoegd
Hiermee wordt een ticket
aangepast
Hiermee wordt een ticket
verwijderd
Hiermee wordt een website
gekoppeld aan een klant
Hiermee wordt een website
ontkoppeld aan een klant
Hiermee wordt de details van
een website bekeken, vooral
wat voor modules die heeft
Hiermee wordt de gegevens
van een contact uitgeprint
Hiermee wordt een mail
template voor de gekozen
contact uitgeprint
De uses scenario‟s zijn te vinden in het SRS document (bijlage1, hoofdstuk 3) waarin
zijn aangegeven: de gebruiker, preconditie, hoofdscenario, alternatieve scenario
postconditie
5.4.2. Klassen Diagram
Afbeelding 10 geeft de weergave van het klassen diagram van het KIS. Het ontwerp
wordt per module gedetailleerd met attributen en methoden. In dit diagram is het
verbeeld de klassen zonder hun attributen en de methoden. De relatie tussen de
klassen en de kardinaliteit zijn meegenomen in dit niveau van het ontwerp. De
attributen en methoden zijn vermeld in het ontwerp per module (zie paragrafen
6.6.3 en 6.6.5)
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 30
maart 2010
Afbeelding 10: klassen diagram op hoog niveau
5.4.3. Database Ontwerp
Afbeelding 10 geeft de database ontwerp van de applicatie, hierzijn de verschillende
tabellen te zien. Alle entiteiten van de tabellen van de websites en site-modules zijn
niet gepresenteerd omdat het KIS communiceert via een API om de websites van de
klanten te weergeven. Om te kunnen communiceren met de bibliotheek heeft de API
alleen een tabel genaamde website nodig met de identiteit en de release als
entiteiten.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 31
maart 2010
Afbeedling 11: database ontwerp van de applicatie
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 32
maart 2010
5.5.
Structuur van het project
De architectuur van het project wordt gepresenteerd op afbeelding 12. Deze
architectuur laat de scheiding zien tussen de modellen, de views en de controllers.
Deze gekozen architectuur verhoogt de onderhoudbaarheid en de herbruikbaarheid
van de codes
Afbeelding 12: architectuur van KIS
Om een beter overzicht van het project en een duidelijk scheiding van de lagen te
krijgen is een structuur aangehouden die op een J2EE architectuur lijkt.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 33
maart 2010
De modellen zijn de representatie van de informatie waarmee het KIS werkt. De
daadwerkelijke opslag van data wordt gedaan met behulp van een persistent
opslagmedium, in dit project is het een MySQL database. De applicatie zal gegevens
die gebruikt worden in het model, ophalen en wegschrijven van en naar de
dataopslag via een datalaag.
De views zijn HTML bestanden die op het webserver worden getoond. De views zijn
de gebruiker interface op een browser. Hier worden geen verwerking ( zoals
berekeningen, controles,..) gedaan van de gegevens die getoond worden
De controllers communiceren tussen de views en de modellen. Ze verwerken en
reageren op events, die meestal het gevolg zijn van handelingen van de gebruiker.
Afbeelding 13: project structuur
5.6.
Ontwikkeling
5.6.1. Login
Een van de eisen van de opdrachtgever was dat de gebruikers hun LDAP login
gegevens kunnen gebruiken om binnen de KIS in te loggen. Op het stroomdiagram
afbeelding is te zien hoe de login verloopt. Als een gebruiker inlogt wordt gekeken of
hij in de LDAP server staat, als dat het geval is dan wordt zijn volledige naam in de
PHP session-gegevens gezet die wordt in de hele applicatie gebruikt.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 34
maart 2010
Afbeelding 14:
stroomdiagram
Van de login
Login
G ebruiker login m et
zijn/haar
gebruikersnaam en
passw ord
H et systeem controlt
of de gebruiker
bestaat al in de K IS
database
Ja
N ee
C ontroleer
ingevoerd data
H aal de
gebruikersnaam
in de sessie
Ja
N ee
Terug sturen
startPagina
Login Error
N ee
Ja
Voeg de
gebruikersnaam
en rechten(0) in
de database
Applicatie
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 35
maart 2010
5.6.2. Uitbreiding van de contact module
Afbeelding 15: wens van de opdrachtgever voor een brief
Tijdens het gebruiken van de klant en het contact modules kwam Inaxion met extra
eisen. Om die functionaliteit te ontwikkelen is gebruikt gemaakt van de FDD
methode.
Het maken van een brief sjabloon was niet gepland maar omdat het Sashimi -model
gebruikt is als standaard ontwikkelingsmethode, kan het terugkeren naar eerdere
fases.
Gebaseerd op de wensen van Inaxion ( afbeelding 15) is een grafisch ontwerp
gemaakt hoe de brief zal uitzien. Vooral voor die brief waren, de klant NAW en de
contact gegevens nodig. Er is gebruik gemaakt van klant en contact modules om het
brief sjabloon te maken.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 36
maart 2010
Het resultaat van deze functionaliteit is weergegeven op het onderste printscreen
(afbeelding 16)
Afbeelding 16: brief template
5.6.3. Modulaire Ontwikkeling
Gedurende het ontwikkelen van het KIS is er modulair gewerkt met gebruik van een
vernieuwde waterval model, dat betekent dat elke module wordt verdeeld in 4
subfasen. Per module is opnieuw naar de eisen gekeken en een gedetailleerd
ontwerp gemaakt. Tijdens het ontwerpen is rekening gehouden met de
gemeenschappelijke punten tussen een ticket en een project dat is de reden van een
superklasse Opdracht(Overerving). Afbeelding 17 laat die overerving zien met de
attributen, de getters en setters. Een gedetailleerd ontwerp document is als bijlage
toegevoegd aan dit verslag( bijlage 5)
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 37
maart 2010
Afbeelding 17: objectklassen van het project en het ticket modules
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 38
maart 2010
5.6.4. Project Module
Ontwikkeling
Tijdens het ontwikkelen van deze module is gebruikt gemaakt van:
 modellen: Assignemt, Project, Login
 dao: ProjectDao, LoginDao
 controllers: deleteProjectController, saveProjectController
 views:addProject, viewAllProjects, viewProjectByCustomer
Testen
Het testen van deze module is gedaan op verschillende niveaus, de directeur heeft
de applicatie uitgevoerd om naar fouten de sporen en om naar de functionaliteiten te
bekijken. De codes reviews is 2 keer gedaan.
Het is ook een selenium test uigevoerd om naar de kwaliteit te waarborgen.
Eind resultaat
Voor dit deel van het KIS is een de module project aangeleverd. Een gebruiker kan
projecten maken, beheren voor een bepaalde klant.
Afbeelding 18: project module
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 39
maart 2010
5.6.5. Ticket Module
Op afbeelding 17 zijn de attributen van de modellen te zien en een uitgebreid
ontwerp is in de technische documentatie.
Ontwikkeling
Om dit deel te bouwen het is gebruik gemaakt van aantal klassen en PHP bestanden.
Models: Ticket, Project, Login
Dao: TicketDao, LoginDao
Controllers: deleteTicketController, saveTicketController
Views: addTicketview, viewAllTicketsbyProject, viewTicketsByProject
Testen
Om deze module te testen is hetzelfde principe als in de projectmodule test gebruikt.
De opdrachtgever heeft de applicatie uitgevoerd om naar fouten te zoeken en om de
functionaliteit te controleren. De codes review is 2 keer gedaan
Er is ook een selenium test uitgevoerd om de kwaliteit te waarborgen
Eind resultaat
Het eindresultaat is hieronder afgebeeld.
Afbeelding 19: Ticket module
5.6.6. Website module
Voor het ontwikkelen van de website module is gebruikt gemaakt van een API om te
kunnen communiceren met een bibliotheek die alle gemaakt websites bevat bij
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 40
maart 2010
Inaxion. Wanneer een nieuwe site gemaakt wordt, wordt die toegevoegd aan de lijst
van de websites van Inaxion.
Voor het KIS is er een connectie gemaakt met de sitebibliotheek via een API met dit
URL ......., na de connectie de inhoud van sitebibliotheek wordt doorgegeven aan het
KIS met het gebruik maken van cURL en JSON.
Ontwerpen
Er is een activiteitendiagram gemaakt om de communicatie tussen het KIS en sitebibliotheek via de API te weergeven afbeelding 20. Na het activiteitendiagram is een
gedetailleerd ontwerp van het model en de dao klassen met hun attributen
methoden dat is weergegeven op afbeelding.
Afbeelding 20: Activiteitendiagram communicatie API-KIS
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 41
maart 2010
Afbeelding 21: website module ontwerp
Ontwikkeling:
Om deze module te coderen is gebruik gemaakt van de klassen Website.php,
WebisiteDao.php en de PHP bestanden viewAssignWebiste.php en
viewWebsitePerCustomer.php.
Met het gebruik van cURL en JSON zijn de data uit de sitebibliotheek gehaald en
geconverteerd in een array.
De gebruiker kan via het KIS een site koppelen of ontkoppelen aan een klant.
Tijdens de koppeling de ID en de release van de site wordt opgeslagen in de
database.
Testen:
Voor deze module is ook code reviews, functionele test, selenium test en
bruikbaarheids test gedaan.
Eind resultaat
Voor deze module is een functionaliteit gebouwd om een site te kunnen koppelen
aan een klant, zie afbeeldingen 22 en 23. Op afbeelding 24 staat de gegevens van
een klant na het koppelen van een site aan hem.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 42
maart 2010
Afbeelding 22: release koppelen
Afbeelding 23: site koppelen
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 43
maart 2010
Afbeelding 24: klant details na het koppelen van site aan een klant.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 44
maart 2010
6. Technieken
In dit deel staan alle technieken die in het KIS gebruikt zijn. De paragraaf 6.1 gaat
over programmeertalen en de paragraaf 6.2 gaat over technieken zoals sofware
pakketten.
6.1.
Programmeertalen
PHP
PHP of Hypertext Preprocessor is een scripttaal die bedoeld is om op webservers
dynamische webpagina's te creëren. De syntaxis lijkt meer op C maar bij PHP is het
mogelijk om OO te programmeren. De AxiSmart, de CMS van Inaxion is helemaal
ontwikkeld in PHP.
Op afbeelding 25, 26 en 27 zijn paar voorbelden van het gebruik van PHP
weergegeven
.
Afbeelding 25: voorbeeld van een DAO klas
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 45
maart 2010
Afbeelding 26: voorbeeld van een model klas
Afbeelding 27: voorbeeld van een controller
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 46
maart 2010
JavaScript
JavaScript is een programmeertaal die veel gebruikt wordt om webpagina's
interactief te maken en webapplicaties te ontwikkelen.
Het is een programmeertaal die overeenkomsten vertoont met de
programmeertaal Java in het kader van syntaxis. JavaScript heeft inhoudelijk meer
gemeen met functionele programmeertalen terwijl Java meer een
objectgeoriënteerde taal is.
SQL
SQL of Structured Query Language, het is gestandaardiseerde taal waarmee met
relationele databases wordt gecommuniceerd.
6.2.
Overige Technieken
Blueprint
Het is een CSS framework dat kan helpen om snelle en consistente lay-out van de
pagina‟s te maken.
Hieronder zijn paar voorbeelden weergegeven van het gebruik van Blueprint
Dit zijn klassen die al in de framework gemaakt zijn, hier worden ze alleen in het
project toegepast.
Afbeelding 28: gebruik van Blueprint
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 47
maart 2010
Hierboven met “span-23” is gegeven de breedte van de “div” klass. Met “appendtop” is gegeven de distantie tussen die “div” en bovenliggende “div”.
jQuery
jQuery is een JavaScript framework voor het maken van een dynamische en
interactieve website.
In dit project is jQuery gebruikt vooral voor de validatie van de invoervelden. Om dat
te kunnen doen is gebruikt gemaakt van een bibliotheek.
Op afbeelding 29 is te zien een voorbeeld van het gebruikt van jQuery
Afbeelding 29: jQuery
Afbeelding 27 is de weergave van de werkelijkheid van die boven stuk of broncode
als de gebruiker de naam van het project niet ingevuld heeft.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 48
maart 2010
Afbeelding 30: jQuery op de voorkant
MySQL: Is een open source relationele databasemanagementsysteem die meestal
in combinatie met PHP. Tegenwoordig is het de basis van een breed scala aan
internettoepassingen, maar ook stand-alone software.
UML is gebruikt voor het maken van een functioneel en technisch ontwerp van de
applicatie. UML is vooral een taal voor objectgeoriënteerde programmeertalen. Om
UML te gebruiken voor PHP is er een aantal aanpassingen gedaan (zie bijlage 5
technisch ontwerp).
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 49
maart 2010
cURL: het is een PHP bibliotheek die helpt om te kunnen verbinden en
communiceren met verschillende servers met verschillende protocollen. Voor dit
project is een http connectie gemaakt met API van de sites
“Voor bedrijf reden is de afbeelding verwijdert”
Afbeelding 31: gebruik van cURL
JSON: staat voor JavaScript Object Notation en is een deel van de programmeertaal
JavaScript. Het wordt gebruikt voor het uitwisselen van datastructuren in de vorm
van JavaScript-expressies. Kortom het is een lichtgewicht data-uitwisseling formaat.
In dit project is vooral gebruik gemaakt van PHP functie json_decode.
Afbeelding 32: gebruik van JSON
Hier boven is te zien hoe de inhoud van de website API is gedecodeerd en
geconverteerd in een PHP variabel.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 50
maart 2010
7. Eindresultaat
Tijdens het schrijven van deze scriptie was het project nog niet helemaal afgerond,
en is het nog niet mogelijk om alle deelproducten in een staat van compleetheid te
laten zien.
Behalve de deelproducten die deel maken van de KIS applicatie waarvan de
eindresultaten zijn vermeld op de paragrafen 5.6.4 en 5.6.5 en 5.6.6 zijn er ook
aantal producten die aangeleverd zijn of moet nog aangeleverd:

Een in het Engels SRS geschreven document waarin staat
de voorgedefinieerde eisen voor het bouwen van de applicatie en
de use cases scenario‟s. Dit document kan gebruik worden voor het uitbreiden
van de applicatie.

Voor een verdere uitbreiding van KIS wordt de technische
documentatie overgedragen.

Alle documenten betreffende het testen van de applicatie worden in een map
genaamd “KIS_Test” ingeleverd.

Als laatste zal een beknopte gebruikershandleiding ingeleverd bij Inaxion.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 51
maart 2010
8. Reflectie
Om op mezelf en mijn functioneren gedurende mijn afstudeerstage te reflecteren zal
ik een paar zaken naar voren brengen die me in het bijzonder over mezelf zijn
opgevallen.
Als ik terugkijk op het project, vind ik dat de communicatie goed is gegaan tussen
mij en andere leden van het project. Vergeleken met mijn derdejaarsstage is het een
behoorlijke vooruitgang. De meeste doelen zijn behaald.
Wat minder is gegaan bij dit project is het maken en bijhouden van een dagplanning.
Ik heb vaak elke dag bij aankomst een “toDo” lijst opgesteld en die bijgehouden,
maar het is niet gegaan zoals wenselijk. Het is een punt om mee te nemen naar de
toekomst.
Ik heb vaak genoeg de projectmanager op de hoogte gebracht over de vooruitgang
van het project. Aangezien de communicatie binnen het bedrijf informeel is, zou ik
een andere aanpak pakken om het project formeel te maken. Dat zou een aantal
punten voorkomen zoals die vele veranderingen in SRS document.
Tijdens het uitvoeren van deze opdracht heb ik veel geleerd over de kloof tussen de
theorie en de praktijk. Met het maken van een bruikbaarheids test heb ik meer
begrepen hoe de gebruikerskant van belang is tijdens het maken van
Informatiesystemen.
Ik vind dat de communicatie tussen mij en mijn schoolbegeleider ook goed verlopen
is.
Tijdens de 5 maanden van de stage bij Inaxion heb ik mijn mondelinge
communicatievaardigheden verbeterd.
Een van mijn belangrijkste leerpunten bij Inaxion was verantwoordelijkheid nemen.
Ik was eindverantwoordelijk voor het KIS, en soms kwamen momenten waar ik
verantwoordelijke beslissingen moest nemen.
Voor het begin van dit project had ik aantal leerdoelen opgesteld.
Technische leerdoelen
Zelfstandig een bestaande applicatie bestuderen en uitbreiden.
Zich verdiepen in nieuwe technieken
Passende testtechnieken gebruiken
Niet technische leerdoelen
Een goede planning maken en bijhouden
Gebruik maken van de kennis van teamleden
Door deze op een SMART (Specifiek, Meetbaar, Aanwijsbaar, Realistisch,
Tijdgebonden) manier weer te geven is precies te zien waar het over gaat, en wat er
bereikt moet gaan worden.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 52
maart 2010
Hieronder word op een paar van die leerdoelen teruggeblikt in details.
8.1.
Leerdoel 1: Zelfstandig een bestaande applicatie
bestuderen en uitbreiden.
Specifiek:
AxiTrack was in gebruik bij Inaxion, het is wel een eenvoudig systeem, maar
bestuderen van dit systeem was nodig om KIS met succes te ontwikkelen. Ik heb
ook tijdens de stage de functionaliteiten van een bestaande applicatie in de markt
bestudeerd
Meetbar:
Ik zal de AxiTrack runnen en naar broncodes bekijken, voor de Leismo webapplicatie
een demo volgen en die functionaliteiten gebruiken
Aanwijsbaar: Ik beschouw dit leerdoel als gehaald als ik gedurende het project
gebruik heb gemaakt van de bestudeerde applicaties voor input van het KIS en voor
advies naar de opdrachtgever
Realistisch: Dit leerdoel was haalbaar en zou wel tijd kosten om de broncodes van
een bestaande applicatie te bekijken maar het was van belang voor de te
ontwikkelen applicatie.
Tijdgebonden: Het bestuderen van het AxiTrack systeem zal het in het begin van
de ontwikkeling gedaan worden en voor de Leismo applicatie kan het voor het
afronden van het afstudeerproject gedaan worden.
Resultaat: Dit leerdoel is gehaald omdat ik de bestaande applicatie gebruikt heb
voor het ontwikkelen van het KIS.
8.2.
Leerdoel 2: Zich verdiepen in nieuwe technieken
Specifiek:
Ik had alleen basis kennis van PHP, jQuery, Blueprint, dit zijn specifieke technieken
waar ik me in kan verdiepen. In hoofdstuk 7 zijn al die gebruikte technieken te zien.
Meetbaar:
Het niveau van kennis in die technieken in het begin van het project en het niveau
aan het einde van het project is verschillend. In het begin van het project had ik
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 53
maart 2010
alleen basiskennis van die technieken en nu het KIS is gebouwd met al die
technieken, beheers ik deze beter.
Aanwijsbaar:
Ook dit leerdoel beschouw ik als gehaald, ik mag zeggen dat ik van “junior” naar
“medior” gegaan voor die technieken.
Realistisch: Gezien mijn ervaring met andere programmeertalen zoals Java en
objectgeoriënteerde talen was dit leerdoel verstandig.
Tijdgebonden: Verdiepen in nieuwe technieken, kan op ieder moment tijdens het
uitvoeren van het project voor komen. Dit leerdoel wordt behouden voor de gehele
duur van de stage
Resultaat: Het heeft wel langer geduurd dan geschat, het beheren van PHP.
Tijdens het ontwikkelen van de website module worden nieuwe technieken (cURL en
JSON) geleerd als die worden beheerst, dan is dit doel gehaald.
8.3.
Leerdoel 3: Een goede planning maken en bijhouden
Specifiek: Ik heb al een aantal projecten gedaan waarbij ik vooraf een planning had
opgesteld. Deze planning werd door mij in de meeste gevallen na het maken weinig
nageleefd. Ook komt het wel eens voor dat ik de benodigde tijd voor onderdelen
verkeerd inschat omdat ik er niet goed genoeg over na heb gedacht. Naast die
planning zal ik een dagelijkse takenlijst opstellen.
Meetbaar: Voor de duur van mijn stage zal ik een goede planning maken waarin ik
alle hoofdactiviteiten heb staan en een schatting in weken heb gemaakt voor elk
onderdeel. Deze planning zal ik iedere week controleren of hij klopt met mijn
voortgang in het project, en indien nodig wijzigen.
Aanwijsbaar: Behalve de dagelijkse takenlijst, die me niet gelukt is om bij te
houden, beschouw ik dit leerdoel als gehaald als ik gedurende mijn project
regelmatig gebruik heb gemaakt van mijn planning, en hij altijd up-to-date is
gebleven.
Realistisch: Dit leerdoel is zeker haalbaar. Het zal weinig tijd in beslag nemen om
af en toe naar de planning te kijken en/of te wijzigen. Dit zal ik aan het einde van
elke werkweek doen.
Tijdgebonden: Dit leerdoel wordt behouden voor de gehele duur van het project.
Resultaat: Op het moment van schrijven zit ik ruim in de tweede helft van het
project. Ik heb tot nu toe goed gebruik gemaakt van mijn planning. Als ik zo doorga
tot het einde van mijn project kan ik dit leerdoel dan als „behaald‟ beschouwen.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 54
maart 2010
8.4.
Leerdoel 4: Gebruik maken van de kennis van teamleden
Specifiek: Vaak als ik in een project bezig ben heb ik mijn eigen taken waar ik
zelfstandig aan werk. In de meeste gevallen vind ik dat ik iets te zelfstandig bezig
ben. Ik zou er beter aan doen de kennis van mijn overige teamleden te gebruiken
zodra ik ergens ook maar enige moeite mee heb, zodat mijn werkzaamheden een
stuk makkelijker zullen gaan.
Meetbaar: Tijdens mijn stage wil ik veel contact hebben met mijn teamleden om
gebruik te maken van hun kennis. Als ik aan het programmeren ben en een
moeilijkheid tegenkom (zoals het gebruiken van de cURL en jQuery technieken) ga ik
mijn teamleden om hulp vragen.
Aanwijsbaar: Ik wil dat ik, wanneer ik aan het werk ben aan mijn project, meer of
sneller gebruik maak van de kennis van mijn teamleden.
Realistisch: Het is niet goed mogelijk om concreet neer te zetten wanneer ik dit
leerdoel gehaald zou hebben.
Resultaat: Ik vind dat ik dit leerdoel heb behaald als ik mijn project succesvol en
binnen de geplande tijd heb beëindigd en van mezelf vind dat ik genoeg om hulp heb
gevraagd aan andere teamleden.
Hoewel ik nog verbeterpunten voor de toekomst zie, samenvattend vind ik dat,
procesmatig, de stage goed verlopen is.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 55
maart 2010
Conclusie
Gedurende deze afstudeerstage is een gloednieuw informatiesysteem voor Inaxion
ontwikkeld. Het oud AxiTrack systeem is al vervangen door het KIS.
Om dit resultaat te bereiken zijn: PHP, jQuery, Blueprint, OO, SQL gebruikt als
technieken. Sashimi-model en de FDD zijn de twee methodes die gebruikt zijn om
het KIS te ontwikkelen. Voor een verdere uitbreiding of hergebruiken is de MVC
toegepast.
Naast de technieken die ik allemaal heb mogen bestuderen tijdens mijn stage heb ik
ook een aantal andere dingen kunnen leren. Het maken van een Plan van Aanpak
blijkt zeer handig geweest te zijn, en het was zeer interessant om de risicoanalyse te
maken
Een training is gegeven aan de gebruikers van de applicatie.
Doelstellingen van dit Project:
 Verbeteren van klant en contact modules
 Ontwikkelen project, ticket en website modules
Ingeleverde producten:
 Verbeterde klant en contact modules met een brief template en print
functionaliteit
 Project module waarmee de gebruikers kunnen de projecten beheren.
 Ticket module: waarmee alle tickets kunnen worden beheerd.
 Test documentatie: deze bevat alle documenten betreffende de kwaliteit van het
KIS
 Technische documentatie voor een toekomstige uitbreiding
 Handleiding voor de eindgebruikers.
Gebaseerd op de ingeleverde producten, is te zien dat de doelstellingen van het
project gehaald zijn.
Voor een verdere uitbreiding van de applicatie is het aan te bevelen om de
documentatie te bestuderen. Gezien de grootte van Inaxion zouden het document,
mailsysteem en offerte modules voldoende moeten zijn voor een compleet
informatiesysteem dat alle bedrijfsprocessen zal ondersteunen.
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 56
maart 2010
Literatuurlijst
Internet
Link
http://php.net/
http://www.carrieretijger.nl/
http://wiki.leismo.nl/wiki/Hoofdpagina
http://www.visualcase.com/tutorials/class-diagram.htm
http://www.w3schools.com/
http://www.linuxonly.nl/docs/28/55_Conclusie_schrijven.h
tml
http://www.phpro.org
http://nl3.php.net
http://jquery.com/
http://www.ibuildings.nl/zend/zendframework/
www.processimpact.com/process_assets/srs_template.d
oc
Wat
Informatie over cURL
betekenis, JSON, PHP
etc..
Richtlijnen voor het
maken van een verslag
Vaktermen wat betreft
een
klanteninformatiesystee
m
Ontwerpen met de UML
taal
Verschillende vak
termen
Richtlijnen voor het
maken van een verslag
MVC in PHP
Verschillende informatie
over PHP
Informatie wat betreft
jQuery
Informatie over het
Zend Framework
Template document
voor het SRS document
Boeken en artikels




Sommerville: Software Engineering 8 (ISBN 0-321-31379-8)
Martin Fowler & Kendall Scot UML beknopt: (ISBN:9043001996
Prof Jim Whitehead Paper Universiteit van California Santa Cruz CMPS 183 –
Spring 2006 May 8, 2006
Greenspan J & Bulger, B : MySQL/PHP Database applicatie ISBN
9039518149
Afstudeerverslag
Verbeteren van het KIS van Inaxion en het uitbreiden met de project, ticket en website modules.
Page 57
Download