Eindproject informatica Software Engineering
Software engineering Managen van grotere softwareprojecten Onstaan uit noodzaak: betrouwbare software Grote projecten gestructureerd aanpakken Heel precies specificeren: Wat gaat er precies gemaakt worden (eisen) Wie gaat wat precies doen (taakverdeling en planning) Wat is er precies gedaan (documentatie en verantwoording)
Eindproject Informatica Ontwikkelen van een groot informaticaproduct in teamverband Doorlopen van een volledige ontwerpcyclus volgens het waterval model Eindproduct belangrijk, maar projectmanagement en proces zeker ook. Weging: Product: +- 60% Proces en documentatie: +- 40% Vergelijkbaar: profielwerkstuk
Keuze Voor het project kun je kiezen uit: Gamedesign met bv. Greenfoot of Gamemaker Dynamische website met Php/MySQL of een CMS of Joomla/Wordpress From NAND to Tetris Eventueel eigen idee (in overleg met Wt uiteraard) ±16 weken -> ± 42 lessen Lessen + thuiswerk = 70 SLU per persoon SE valentie 6 (= 3x een normale PO)
Gamedesign / Simulatie Kies een geschikte programmeertaal (Greenfoot, Python, UDK/Unity (3D), evt Gamemaker, …) Je hebt gamedesign ervaring (Ganzenbord en Greenfoot shooter). Verwacht wordt dat je daar qua complexiteit ruim overhen gaat Een game kan ook een simulatie zijn (een biologisch proces bijvoorbeeld). Verzin een interessante case en bouw een zinvol model waar ook berekeningen en/of voorspellen
Website met Joomla of Wordpress Kant en klaar CMS (content management systeem) Zeer uitgebreid configureerbaar en vele extensies beschikbaar Gebruikt voor 1000-en complexe websites op het internet. (Bedrijfswebsites, blogs, etc). Joomla/Wordpress werkt al “out of the box”, dus verwacht wordt dat je een eigen template bouwt en zelf functionaliteit toevoegt Zoek een echte klant! -> Er ligt een concrete opdracht vanuit de Oudervereniging.
Php/Mysql Dynamische website gekoppeld aan SQL database Volledig “met de hand” te bouwen. Zelf php taal leren (lijkt op Java) Denk aan bijv. Browsergame.
From nand to tetris Zelfstudiecursus Computer Science Niveau: 1e jaar universiteit (Harvard) Bouw een (virtuele) computer vanaf de grond af op en programmeer een tetris game ervoor Logische poorten -> Hardware -> Machinetaal -> Hogere programmeertaal -> Operating system -> Software Uitdaging voor de echte Informatica held
Eigen idee Eigen ideeën voor de invulling zijn welkom Informatica gerelateerd Qua diepgang en omvang vergelijkbaar met andere keuzes. Zelfde ontwerpcyclus Zelfstandigheid vereist: Wt heeft niet overal verstand van… Wt heeft beschikbaar: 2x Raspberry Pi. 1x Arduino Android/iOS app …
Groepjes Groepjes van 3 (eventueel 4) Verschillende rollen (vaak meerdere rollen per persoon of meerdere personen per rol): Projectleider (verplicht!) Programmeur Grafisch ontwerper Gamedesigner (game) Leveldesigner (game) Databaseontwerper (php) Tester ...
Watervalmodel Verschillende fasen. Elke fase levert een mijlpaalproduct Fasen lopen in elkaar over Analyse Functioneel ontwerp Technisch ontwerp Implementatie Testen Documentatie/oplevering
Analyse Vaststellen eisen (indien van toepassing: in overleg met opdrachtgever) Maken projectplan (startdocument) Taakverdeling Tijdsplanning Beknopte beschrijving van de projectinhoud
Functioneel ontwerp Wat gaan we maken? (eisen) Requirements document 1. Inleiding 2. Globale beschrijving 2.1 Wat voor een soort game wordt het 2.2 Een globaal overzicht van de opbouw van de game. 2.3 Profielschets gebruikers 3. Functionele eisen 3.1 Gebruikersinterface 3.2 De game 3.2.1 start spel 3.2.2 level 1 3.2.3 minigame 3.2.4 ………. 3.3 Installatieprocedure 4. Niet-functionele eisen 5. Project eisen
Technisch ontwerp Hoe gaan we het precies maken? Beschrijft o.a. het volgende: De structuur van de programmacode. Objecten Scripts Pagina’s (php) Databaseontwerp (php) Te maken afbeeldingen, achtergronden en animaties. Te gebruiken geluidsfragmenten en fonts. …
Implementatie Schrijven van de code Nauwkeurig volgen van functioneel en met name het technisch ontwerp
Testen Testcases uitvoeren a.d.h.v. ontwerp Maak uitgebreide lijst testcases Verkeerde invoer Uit het scherm lopen Pagina bekijken zonder ingelogd te zijn. … Verhelp zo veel mogelijk bugs en fouten n.a.v.. Het testrapport Onverholpen bugs en verschillen met originele ontwerp toelichten
Documentatie Projectverslag Alle mijlpaaldocumenten Projectverloop Logboek! (om onenigheid binnen groep te voorkomen) Handleiding (in geval van klant)
Deadlines 1. Startdocument: 18 december 2. Functioneel ontwerp: 23 januari 3. Technisch ontwerp: 6 februari 4. Implementatie: 15 april 5. Testrapport: 15 april 6. Einddocumentatie: 15 april
Start project Groepjes maken Projecttype en onderwerp kiezen Experimenteren met gekozen onderwerp Opstellen startdocument