![]() |
![]() |
|
02121 Ingeniørarbejde - projektdel for Softwareteknologi Januar 2010 |
Generel projektbeskrivelse |
[Til udskrift anbefales PDF versionen.]
Formålet med programmeringsprojektet er at give deltagerne erfaring med at designe og konstruere et simpelt produkt i form af et Java-program med en grafisk brugergrænseflade (GUI) og tilhørende teknisk dokumentation.
Projektet går ud på at implementere et mindre programværktøj, der kan hjælpe med at behandle en problemstilling fra efterårets forløb. Projektet udføres i grupper á 2-3 personer. Grupper med 3 personer forventes at lave visse udvidelser beskrevet under de enkelte opgaver.
Der er mulighed for at vælge mellem følgende opgaver:
www.imm.dtu.dk/courses/02121/proj/projekt.html
Der skal konstrueres et GUI-baseret Java-program, der implementerer et værktøj med den krævede funktionalitet. Programmets konstruktion skal dokumenteres i en rapport som beskrevet i de følgende afsnit.
For hver opgave er der stillet en række basale krav til funktion og udseende. Det er op til deltagerne at uddybe og detaljere disse krav og tage stilling til eventuelle uklarheder.
Værktøjet kan eventuelt udbygges med nogle af de udvidelsesforslag, der er nævnt i hver opgave. Det anbefales kraftigt at vente med dette, til de basale funktioner er implementeret.
Programmet skal implementeres i Java (version 1.6).
Programmet bør designes efter Model-View-Control princippet som beskrevet i GUI-noterne. Dette princip giver en god programopdeling, tillader systematisk test af indre dele og kan evt. benyttes som grundlag for arbejdsdeling.
Opgaven kan med fordel løses i en række trin:
Det forventes ikke, at der laves en udtømmede test af alle programmets dele inden for kursets tidsramme, men som mininum kræves:
Demonstrationsplanen skal inkluderes som et 1-2 siders bilag til rapporten og skal endvidere gives til hjælpelæreren før demonstrationen.
[Det ses at demonstrationsplanen udgør en minimal funktionel test på GUI-niveau. Derudover bør der defineres og gennemføres mere systematiske funktionelle test i det omfang tiden tillader det.]
Programmet skal dokumenteres i en kort teknisk rapport. Formålet med rapporten er at beskrive jeres arbejde på en sådan måde, at andre hurtigt kan sætte sig ind i det, fx. med henblik på tilrettelser eller videreudvikling. Rapporten skal have følgende indhold:
Hvilke åbne delproblemer er der i opgavebeskrivelsen? Hvilke løsningmuligheder er der for disse? Hvilke løsninger har I valgt, og med hvilke overvejelser? Er der i øvrigt uklarheder eller uspecificerede tilfælde i opgavebeskrivelsen, og hvordan har I afklaret dem? Har I indført nye begreber? Hvordan skal bruger-grænsefladen være bygget op? [Skitsér lay-out] Hvilke overvejelser har I gjort jer om hvordan man bruger programmet?
Hvad er den overordnede programstruktur? [Gerne illustreret, fx. med klassediagrammer.] Hvilke klasser er de vigtigste, hvad er deres ansvarsområder og centrale metoder? Hvilke klasser hører til Model, View og Control?
Desuden for de forskellige aspekter:
Visnings-aspekter.
Hvilke grafik-komponenter er brugt til realisering af GUI-en?
Hvordan vises de forskellige dele af tilstanden?
Hvordan er grafikken og modellen knyttet sammen?
Styrings-aspekter.
Hvordan udføres de forskellige operationer via GUI-en?
Hvornår og hvordan opdateres grafikken?
Hvordan reagerer programmet på uventede hændelser?
Hvordan hentes og gemmes tilstanden?
En brugervejledning (eng. user's guide) skal være inkluderet som bilag. Denne skal fortælle, hvad programmet kan, hvordan programmet køres og hvordan forskellige opgaver udføres. De underliggende begreber for værktøjet kan antages kendt. Brugervejledningen forventes at fylde 1-2 sider.
Al programkode skal inkluderes som bilag på en sådan måde, at det er nemt at finde rundt i. Programteksten skal selvfølgelig være velkommenteret. Som nævnt forventes JavaDoc standarden benyttet, men den dermed genererbare dokumentation ønskes ikke vedlagt.
Endvidere skal alle tests og resultater såvel som demonstrationsplanen optræde som bilag.
OBS: Hver gruppe forventes at udarbejde program og dokumentation selvstændigt. Enhver brug af materiale fra andre kilder (andre grupper, www, ...) skal eksplicit angives i introduktionen med detaljer om samarbejde/oprindelse. I modsat fald vil sådan brug blive betragtet som forsøg på snyd og blive indberettet til studieadministrationen.
Hver gruppe skal aflevere rapporten i ét underskrevet papireksemplar senest fredag d. 22. januar kl. 9.00 i postboksene i bygning 322's vestvendte trappeopgang. Samtidigt skal hver gruppe aflevere både rapporten og Java-programmet elektronisk via CampusNet.
Samme dag, mellem kl. 9 og 12, skal hver gruppe demonstrere deres program over for en hjælpelærer.
Det vil også være muligt at aflevere og demonstrere torsdag d. 21. januar i stedet (aflevering senest kl. 12.00). Dette angives ved gruppetilmeldingen.
Instruktion omkring gruppetilmelding, elektronisk aflevering samt demonstration vil fremgå af siden om praktiske detaljer. Rettelser, uddybninger og FAQ til opgaverne kan findes på projektsiden. Væsentlige ændringer vil blive annonceret via CampusNet.
Ved bedømmelse af opgaven vil der blive lagt vægt på følgende: