Planningsfase 1. Afspraken maken over doelstelling en randvoorwaarden De doelstelling van het project: De doelstelling van het project: het maken van het gewenste product. De doelstelling van de student: kennis en ervaring opdoen rond het opzetten en uitvoeren van een softwareontwikkelproject. De randvoorwaarden: deadline, budget, middelen Deadline: einde van de vierde periode? ??? Budget: nvt Middelen: werkruimte : periode 3: dinsdags 1516h, donderdags 1113h computer: periode 3 : gezamenlijk woensdags 0913h werkdirectory website (www.students.cs.nl/swp/2006/massanalyst oid) mailing list Op de computer kan naar eigen inzicht software op worden geïnstalleerd, een andere besturingssysteem is mogelijk. 2. Een ontwerp maken: het projectplan.
Het projectplan: Business waarde: nvt Analyse Haalbaarheid Technisch: Can we? Het is de bedoeling dat er een programma wordt ontwikkeld dat de kwalitatieve en kwantitatieve analyse doet van massaspectometie data. Verder hoort hier uiteraard rapportage en handleiding bij. We maken gebruik van het boek Software Project Management, Bob Hughes en Mike Cotterell en van het boek System Analysis and Design with UML Version 2.0, Alan Dennis, respectievelijk gebruikt bij het vak Projectmanagement en het vak Modelleren en systeemontwikkeling. Alle leden hebben de verplichte vakken gevolgd, waardoor we aannemen dat er voldoende kennis aanwezig is om dit project tot een succes te maken. De voorkeur van de klant gaat naar een object georiënteerde aanpak, in dit geval Java. Alle leden van het team gedegen kennis van Java. Ook is er beperkte
kennis van biologie nodig. Tijdens de rondleiding van de klant is dit wat toegelicht en verder hebben enkelen dan niet alle leden biologie op middelbare school niveau gehad. Economisch: Would we? Aangezien er geen economisch profijt is, komt hier geen onderzoek naar. Organisatorisch: Should it be accepted? Dit is afhankelijk van hoe duidelijk de klant zijn wil aan de leden kan overbrengen en in hoeverre wij dit juist interpreteren. Nader in te vullen. Analyse project Identificeren van scope en objectieven Scope: Objectieven: Identificeren van project infrastructuur Onderzoek naar het oude systeem; waar wordt er op dit moment mee gewerkt. Analyse van project karakteristieken Objective of product driven Human life could be threatened by malfunction?
Identificeren van projectproducten en activiteiten (H6 PM)
Schatten van de tijd en moeite per activiteit (H5 PM) Identificeren risico’s (H7 PM) Hulpmiddelen toekennen (H8 PM) (Staff project) Workplan (samenvattende lijst met alle taken, eventueel weergeven in Pert of Gant chart) Projectgrootte bepalen (samenvattend na analyse project, bijv. m.b.v. function points of CoCoMo) Bemannen project naar kennis en ervaring Witte, Taco Claassen, Michel Kammer, Marnix
Website Contactpersoon klant Secretaris
Borgdorff, Joris Voorzitten vergadering Bitter, Steven Voorzitten vergadering Yzelman, AlbertJan Luitwieler, Roeland Dubbeld, Marilou Projectmanager periode 3 Nader te bepalen welke taken hieraan worden toegevoegd a.d.h.v. de workplan CPA : Coördineren Project Activiteiten: CASE studie, standaards, documentatie. Methodologie : selectie van de juiste projectaanpak (de volgorde van uitvoer van SDLC) (H4 PM) Methodologen en SDLC Het kiezen van een methodologie, oftewel de volgorde van uitvoer van het SDLC. Methodologen: Structured Design Waterfall (fase per fase, licht terugkoppeling mogelijk, systeem eigen zijn van te voren bekend, veranderingen worden geminimaliseerd. Maar: alles moet gespecificeerd zijn voor begin van het project, er is veel tijd tussen systeemvoorstel en aflevering van het product) Prallell (Subproducten opleveren, hoewel het moeilijk is deze subproducten onafhankelijk te maken en het hierna moeilijk is deze aan elkaar te koppelen.) RAD Phased (Versies maken, users hebben snel een systeem in handen, belangrijk dat alle eisen al in de eerste versie zitten) Prototyping (Delen ontwikkelen, beginnend bij wat de user het eerste zou gebruiken. Het grote beeld van het project gaat snel verloren) Throw Away prototyping (Er worden design prototypes gemaakt, zodat de interface en de bouw van het systeem aan de user word uitgelegd. Duurt lang maar is erg stabiel) Agile XP (Veel testen, in paren werken, alleen geschikt voor kleine projecten. ) Keuze afhankelijk van: Duidelijkheid requirements, ervaring met technologie, complexiteit systeem, betrouwbaarheid systeem, hoeveel tijd er is en in hoeverre er overzicht is in de planning.
SDLC: Planning: Resultaat: projectplan Business waarde Analyse Haalbaarheid (technisch, economisch, organisatorisch) Werkplan (lijst met alle taken, weergegeven in Pert of Gant Cart) Projectgrootte (bijv mbv function points of CoCoMo) Bemannen project CPA Analyse Resultaat: Systeem Proposal Analyse : BPA, BPI, BPR (mate verandering aan oud systeem) Informatie verzameling (interviews, JAD, Questionnaires, etc) Proces modelering: Functioneel: activity diagrams, use case descriptions Structureel: CRC cards, Class and Object Diagram Gedragsmatig: Sequence diagram, communication diagram, behavioral state machine Data modelering Design Resultaat: Systeem Specificatie Physical design Architectural design Interface design Database, file en program design Implementatie Resultaat: Nieuw systeem Constructie Installatie Nazorg Design Principles: Omdat we waarschijnlijk gebruik gaan maken van een objectgeorienteerde taal, staan hieronder diens design principles: OpenClosed Principle : alleen door subklasses te maken is wijziging mogelijk
Liskov Substitution Principle: subklasses moeten alle taken van diens superklasse aankunnen Design by Contract: bij bepaalde omstandigheden komt er een garantie Abstract Coupling : zo min mogelijk aanroepen om concrete klasses, liever aanroep op interfaces of abstracte klasses.