Praktische Opdracht Datebase Inleiding In deze afsluitende projectopdracht heb je de kennis en vaardigheden die je de afgelopen anderhalf jaar bij het vak informatica hebt verworven nodig. Denk hierbij aan: Samenwerken Plannen Verzamelen van informatie Bedenken van oplossingen Vastleggen van het werkproces, door middel van het bijhouden van logboeken Informatiemodellering Ontwerpen van een database Maken van queries in SQL Ontwerpen van interfaces Maken van programmastructuurdiagrammen Programmeren in Visual Basic Maken van HTML pagina’s met PHP Jullie opdracht: Maak producten die voldoen aan alle wensen van de opdrachtgever en je werkgever. Zie de casusbeschrijving. Documenteer het gehele proces van ontwikkeling van de software. Algemeen Bij een groep van 3,4 of 5 personen bedraagt de studielast zo’n 30 a 40 uren per persoon. Het project is gepland over meerdere weken. Het systeem wordt ontwikkeld in Access, Visual Basic en HTML/PHP. Werkverdeling: Dit project voeren jullie uit in groepjes van 3 ,4 of 5 personen. Stel een projectleider aan die de voortgang van het project aanstuurt. Deze projectleider is ook de contactpersoon naar jullie docent en naar de opdrachtgever. De rol van opdrachtgever wordt gespeeld door je docent. In te leveren producten: Product Lijst met naam van de groep en deelnemers Plan van aanpak Software requirements document + opzet uitwerking Technisch ontwerp van of webdesign of stand alone programma HTML Alle eindproducten zoals Database. Een stand alone programma. Toelichting van de code in het programma. Handleiding. Uitgevoerde test. Logboek. Projectweek 1 2 3 4 laatste Zoals altijd levert te laat ingeleverd werk korting op je cijfer op! Logboeken Een belangrijk deel van jullie opdracht is dat het gehele ontwikkelproces goed wordt gedocumenteerd. Daarvoor gebruiken we een groepslogboek en individuele logboeken die jullie tijdens je werkzaamheden bijhouden. De individuele logboeken worden aan het eind van het project aan het groepslogboek toegevoegd. In het groepslogboek staan in ieder geval de volgende zaken: 1. Cursusjaar 2. Naam van de klas 3. Namen van alle deelnemers. 4. Naam van de schrijver van het groepslogboek. 5. Naam van de casus 6. Groepsprocesevaluatie 7. Omschrijving van de tegengekomen problemen 8. Omschrijving van de gevonden oplossingen. Ter afsluiting van dit project houden jullie een presentatie (in de klas en met beamer). Je laat dan de werking van jullie software zien.en geeft een beschrijving van het ontwikkelproces. Stappenplan:1 Vooronderzoek 1. Lees de gehele opdracht van dit project door. 2. Bespreek met de leden van jullie groep de gehele opdracht. Bekijk vooral ook de lijst van in te leveren producten. 3. Maak een voorlopige werkverdeling. Definitiestudie 1. Bestudeer de casusbeschrijving. Zie casusbeschrijving. 2. Maak een software requirements document. Dit is een lijst van de doelstellingen van de te ontwikkelen software. Dit wordt gemaakt in overleg met de opdrachtgever van het project. In dit project speelt je docent de rol van directeur of directrice van het relatiebemiddelingsbureau. Let op! Het software requirements document vormt het contract van jullie opdracht en MOET door zowel het softwarebedrijf als het relatiebemiddelingsbureau worden ondertekend voor dat het ontwikkelproces verder kan gaan. Dit document is ook de basis van de acceptatietest die uiteindelijk bepaalt of de software goed is. Wijzigingen in het software requirements document tijdens de ontwikkeling van de software kunnen alleen goedvinden na overleg met en schriftelijke goedkeuring door de opdrachtgever. Uitleg over een SRD (software requirements document, en een voorbeeld vindt je aan het eind van deze opdracht. Technisch ontwerp In deze fase wordt vastgelegd wat er in de volgende fase precies door de programmeurs moet worden gebouwd. Maak de volgende producten: 1. Ontwerp van de database. Maak eerst een Entiteiten Structuur Diagram. Bepaal vervolgens welke tabellen jullie nodig hebben. Bepaal welke velden de tabellen bevatten. Bepaal de sleutelvelden. Bepaal de verbinding(en) tussen de tabellen. Maak een strokendiagram. 2. Ontwerp van de schermen van de interfaces. Ten minste één van de schermen wordt gebruikt om de database met de gegevens van de klanten te muteren. Je maakt of een stand alone programma of een webdesign. 3. Maak in elk geval een website waar je of het standaloneprogramma kunt downloaden of via webdesign rechtstreeks zaken kunt aanpassen. 4. Voer een test uit om na te gaan of een en ander werkt. 5. Maak een keuze voor de representatie. D.w.z. de uiterlijke kenmerken van het systeem, zoals lay-out, lettertype, eventueel gebruik van geluid en afbeeldingen, enz. Kortom alles wat voor de gebruiker zichtbaar wordt. 6. Ontwerp van de queries. Er moeten bij het systeem een aantal queries geleverd worden, zodat er met behulp van deze “basis”-queries snel goede zoekopdrachten gemaakt kunnen worden. Bepaal wat de resultaten van de queries moeten zijn. Vermeld ook welke tabellen je bij de verschillende queries gebruikt en hoe je wilt gaan selecteren. 1 Raadpleeg bij twijfel je docent. Voor technieken: www.evertkok.nl/informatica 7. Ontwerp van een gebruikershandleiding. Welke onderwerpen moeten er in staan? Programmeren en toekennen van taken. In deze fase worden de ontwerpen uit de vorige fase geïmplementeerd. 1. Maak opnieuw een taakverdeling. Leg schriftelijk vast wie wat doet en vooral ook wanneer de onderdelen klaar moeten zijn. 2. Implementeer de verschillende onderdelen en test ze. Testen 1. Black box test Alle deelprogramma’s worden nu in samenhang getest. Om dit goed te kunnen doen zul je een testdatabase moeten aanmaken. Deze bevat de gegevens van tenminste 50 fictieve klanten. Maak een testrapport waarin duidelijk wordt beschreven wat er getest is en wat er wel en wat er (nog) niet goed werkt. 2. Handleidingtest Laat jullie handleiding testen door iemand die onbekend is met jullie software. Maak een testrapport waarin staat wat er nog verbeterd moet worden aan de gebruikershandleiding. 3. Acceptatietest Nadat jullie het programma zo hebben aangepast dat de software goed werkt, stel je het geheel ter beschikking van de klant, die een zogenaamde acceptatietest uitvoert. 4. Verbeteringen Nadat alle testen zijn afgerond moeten de noodzakelijke verbeteringen worden aangebracht. Tenslotte moeten de black box test en de acceptatietest nogmaals worden gedaan. Deze tweede acceptatietest neem 3 werkdagen in beslag. Pas als alles goed is bevonden kun je verder met de volgende fase. Conversie (en invoering) Het programma wordt klaar gemaakt voor aflevering aan de klant. 1. Eventuele programmacode moet worden omgezet in een executable bestand. 2. Alle benodigde bestanden moet op schijf worden verzameld. 3. Zo mogelijk moet er een set-up bestand gemaakt worden. 4. Tenslotte moet er een papieren of digitale handleiding worden toegevoegd. Toelichting Bronmateriaal: Edu Aktief Informatica, Visual Basic met databases. Mogelijke tools: Een tekstverwerker ( b.v. Microsoft Word 2007 of ouder) Microsoft Access 2003 of 2007 Microsoft Visual Basic.Net of 2003 of 2008 express HTML editor (b.v. Internet Evolutions)http://www.internetevolutions.nl/ Het product moet kunnen werken op de computers in C12 met de daarop geïnstalleerde software! Software Requirements Document Een document waarin de afspraken omtrent het functioneren van het te ontwikkelen systeem in overleg met de opdrachtgever/klant wordt vastgelegd. Deze eisen vallen uiteen in twee groepen: Functionele eisen (deze omschrijven het pakket): Beschrijf de minimumeisen waaraan het ontwikkelde pakket moet voldoen De functionele eisen moeten zo duidelijk zijn dat ze slechts op één manier uit te leggen zijn. Zo kan er later ook geen misverstand zijn met de opdrachtgever over wat de software nu precies moet kunnen. Elke uitbreiding van het eisenpakket door de opdrachtgever leidt tot meerwerk en zal dus moeten worden betaald. Stel dit duidelijk. Niet-functionele eisen (deze omschrijven de omgeving waarin het pakket gaat functioneren): Beschrijf de eisen waaraan het systeem waarop het pakket gaat draaien moet voldoen. Leg op zijn minst vast op welk besturingssysteem de software draait, welke andere software aanwezig moet zijn. Bepaal of er ook papieren handleidingen gemaakt moeten worden. Beschrijf de minimumeisen aan de kwaliteit van de gebruiker(s). Geef een omschrijving van de minimumcapaciteit van het product. Beschrijf hoeveel records de database moet kunnen bevatten. Beschrijf eventueel hoe snel de software moet zijn. Leg eventueel eisen wat betreft de interfaces vast. Deze eisen worden vaak in overleg met de opdrachtgever/klant vast gesteld. Niet-functionele eisen volgen vaak niet meteen uit de omschrijving van de opdracht. Je moet wellicht nadere uitleg vragen van de opdrachtgever. Het totale Software Requirements Document dient als basis voor het maken van de contractafspraken en dient ook als basis voor het uitvoeren van de acceptatietest bij oplevering van het product. Het is een bindend document voor beide partijen. Voorbeeld “Hardware” Requirements Document voor het product waakhond: Functionele eisen: Het product maakt middels afgesproken geluid duidelijk dat er sprake is van betreden van het te bewaken terrein door onbekenden. Het product onderneemt pogingen om onbekenden te stoppen in hun bewegingen of te verjagen van het terrein. Het product is binnen redelijke grenzen in staat om onderscheid te maken tussen bekend en onbekend en kiest in twijfelgevallen voor onbekend. Het product blijft te allen tijde niet levensbedreigend voor ieder bezoek. Niet functionele eisen: Het product dient afdoende te worden voorzien van voedingsstoffen. Het product dient voldoende te worden onderhouden op het terrein van lichaamsbeweging. - Het product dient afdoende en regelmatig in contact te worden gebracht met personen die de kwalificatie bekend dienen te krijgen. Het product dient voldoende te worden onderhouden op het gebied van training, gehoorzaamheid en reactiepatronen. Het product heeft op de momenten dat het in bedrijf is ongelimiteerde toegang tot het te bewaken terrein. Het product is niet af te leiden van de taak door middel van snoep, seks of drugs. Je ziet dat je je met de niet-functionele eisen voor een deel indekt tegen het mogelijk onvoldoende functioneren van je systeem, veroorzaakt door onvolkomenheden in de omgeving waarin je product moet functioneren. Voor een deel beschrijven deze niet functionele eisen verantwoordelijkheden van de opdrachtgever/klant! Casusbeschrijving Casus: Boten Jullie groepje werkt bij een softwarebedrijf dat van een boothandel “De Stevige Schuit” de opdracht heeft gekregen hun werkzaamheden te automatiseren. Deze boothandel “De stevige schuit” heeft als kernbezigheid het verkopen van boten aan klanten of het verhuren van boten. Klanten kunnen van te voren aangeven of ze een boot willen huren via een website. In een verkennend gesprek tussen een contactpersoon van jullie softwarebedrijf en “De Stevige Schuit” is de volgende informatie over de werkwijze van het bureau naar boven gekomen: Boothandel “De stevige schuit” wil een klantenbestand opbouwen van alle klanten. Klanten kunnen via een website aangeven of ze boten huren of kopen, ze hebben dan de keuze uit acht verschillende soorten. Zeilboot Plezierjacht Roeiboot Motorboot Rubberboot Kano Woonboot Op deze website vullen klanten in wat ze willen bestellen,een afleveradres of ze van een boot willen huren of kopen. In het laatste geval krijgen ze 10% korting als ze tenminste een vasteklantenkaart hebben. Een nieuwe klant kan een vasteklantenkaart krijgen door zich aan te melden op de website. Er werken 2 medewerkers die elk doorkrijgen op een scherm en zien wat er gehuurd of gekocht wordt. Verder werken er in het magazijn 2 medewerkers die de boten klaar maken voor verkoop of verhuur. Jullie softwarebedrijf wil in de toekomst vaker dit soort programma’s gaan ontwikkelen en jullie moeten het hele proces van ontwikkelen van de software goed documenteren zodat er naderhand een soort draaiboek gemaakt kan worden dat in de toekomst voor soortgelijke projecten gebruikt kan worden. Let op! Maak een technisch ontwerp. Maak of een stand alone programma of een webdesign. Maak een database. Maak een handleiding voor “De Stevige Schuit”. Houd een logboek bij. Maak in elk geval een website waarin informatie over vishandel “De Stevige Schuit” Het product moet kunnen werken op de computers van lokaal C12 met de daarop geïnstalleerde software! Beoordelingsmodel Eindpo De beoordeling vindt plaats volgens onderstaande tabel. In principe is het eindcijfer voor alle groepsleden het zelfde. Indien de docent daartoe aanleiding ziet kan hiervan worden afgeweken. Logboek Software requirements document Of PSD of Strokendiagram Database Ontwerp van de queries Ontwerp van de interfaces Black box testrapport Handleiding Toelichting in code Visual Basic i.c.m. de database (Of PHP ODBC i.c.m. de database) HTML/PHP gedeelte werkt naar behoren Totaal aantal punten: Groepseindcijfer: Namen 5 5 5 10 10 5 5 10 15 15 15 100 aantal punten/10 Individuele eindcijfers