Eindproject informatica

20
1 Software Engineering EINDPROJECT INFORMATICA

description

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 ) - PowerPoint PPT Presentation

Transcript of Eindproject informatica

1

Software Engineering

EINDPROJECT INFORMATICA

SOFTWARE ENGINEERING

2

• 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

3

• Ontwikkelen van een groot informaticaproduct in teamverband

• Doorlopen van een volledige ontwerpcyclus volgens het waterval model

• Eindproduct belangrijk, maar projectmanagement zeker ook.

• Weging:

• Product: +- 60%

• Proces en documentatie: +- 40%

• Vergelijkbaar: profielwerkstuk

KEUZE

4

• Voor het project kun je kiezen uit:• Gamedesign met Gamemaker of Greenfoot• Dynamische website met Php/MySQL of Joomla• 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)

GAME MAKER

5

• Programmeeromgeving speciaal voor (2D) games

• Eenvoudig om mee te beginnen, maar complexe mogelijkheden. Volledige programmeertaal

• Verwacht wordt dat je mogelijkheden van de programmeertaal benut (1e klassers kunnen ook gamemaker…)

GREENFOOT• Bekend van PO, dus snel mee te starten

• Grafisch wat beperkt, maar inhoudelijk grote complexiteit mogelijk (je hebt “heel Java” tot je beschikking)

• Programmeerwerk goed te verdelen vanwege losse “classes”

• Uiteraard meer diepgang verwacht dan bij PO

6

WEBSITE MET JOOMLA• 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 werkt al “out of the box”, dus verwacht wordt dat je een eigen template bouwt en zelf functionaliteit toevoegt

• Zoek een echte klant!

7

PHP/MYSQL

8

• 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

9

• 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 echteInformatica 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…

• Raspberry Pi? Android?

10

GROEPJES

11

• 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

12

• Verschillende fasen.

• Elke fase levert een mijlpaalproduct

• Fasen lopen in elkaar over

Functioneel ontwerp

Technisch ontwerp

Implementatie

Testen

Documentatie/oplevering

Analyse

ANALYSE

13

• 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)

14

Requirements document1. Inleiding2. Globale beschrijving

2.1 Wat voor een soort game wordt het2.2 Een globaal overzicht van de opbouw van de game.2.3 Profielschets gebruikers

3. Functionele eisen3.1 Gebruikersinterface

3.2 De game3.2.1 start spel3.2.2 level 1

3.2.3 minigame3.2.4 ……….

3.3 Installatieprocedure4. Niet-functionele eisen5. Project eisen

TECHNISCH ONTWERPHOE GAAN WE HET PRECIES MAKEN?

15

• 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

16

• Schrijven van de code

• Nauwkeurig volgen van functioneel en met name het technisch ontwerp

TESTEN

17

• 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

18

• Projectverslag

• Alle mijlpaaldocumenten

• Projectverloop

• Logboek! (om onenigheid binnen groep te voorkomen)

• Handleiding (in geval van klant)

DEADLINES

• 1. Startdocument: 18 december

• 2. Functioneel ontwerp: 17 januari

• 3. Technisch ontwerp: 31 januari

• 4. Implementatie: 16 april (onder licht voorbehoud)

• 5. Testrapport: 16 april (onder licht voorbehoud)

• 6. Einddocumentatie: 16 april (onder licht voorbehoud)

19

START PROJECT

20

• Groepjes maken

• Projecttype en onderwerp kiezen

• Experimenteren met gekozen onderwerp

• Opstellen startdocument