Våren 2003
Oversikt over innholdet på denne vev-siden:
Emnet I122 er et praktisk rettet kurs, som gir en innføring i
systemkonstruksjon ("software engineering") gjennom
kursdeltakernes arbeid med programvare og programvareutvikling.
Det blir lagt vekt på gruppearbeid ved at større prosjektoppgaver skal
løses av arbeidslag. Dette vil illustrere ulike sider ved
programvareprosessen og organisering av arbeidet.
En viktig side ved prosjektoppgavene er å påse at arbeidet skrider
fremover i henhold til tidsplan og at ressursene arbeidslaget disponerer
blir utnyttet best mulig.
Bakgrunnsteori om disse sidene ved programutvikling vil bli gjennomgått.
På grunn av arbeidsformen er det satt et tak på 24 studenter for kurset.
Kurset blir organisert omkring 3 større prosjektoppgaver med intensive
perioder med teori imellom. Studentene fordeles på arbeidslag. Størrelse
og sammensetning av disse varieres fra gang til gang.
I det ene prosjektet vil arbeidslagene gå sammen om en
større oppgave. I de to andre prosjektene vil arbeidslagene konkurrere mot
hverandre om å levere den beste løsningen. Arbeidslagene vil bli
organisert etter ulike organisasjonsmodeller. I enkelte av disse vil de
instituttansatte gruppelederne inngå som fullverdig deltakere på
arbeidslaget, i andre organisasjonsmodeller vil de være konsulenter.
Gjennomføringen av prosjektene er avhengig av at alle deltakerne på
et arbeidslag yter sin del. Hele laget vil derfor få problemer om
enkeltpersoner trekker seg ut i løpet av en prosjektoppgave. Vi vil derfor
inngå en avtale med kursdeltakerne som sikrer at ingen trekker seg fra
kurset under en prosjektoppgave. Mellom prosjektoppgavene vil arbeidslagene
reorganiseres, og det vil da være mulig å trekke seg fra kurset uten
at dette går ut over andre deltakere.
Oppgavene er som følger:
- Den første oppgaven fokuserer på vedlikehold av et
programsystem skrevet i Java. Her skal arbeidslagene samarbeide
om å forstå et programsystem, ved at hvert arbeidslag tar for seg
en del av, eller et perspektiv på, programsystemet, og deretter
presenterer det for hverandre slik at alle skal få et inntrykk av
helheten.
Arbeidsoppgaven går på å sjekke dokumentasjon og testprogram mot
den implementerte koden, fullføre manglende deler og rette eventuelle
feil som blir oppdaget.
Oppgavetekst og
litt om cvs-bruk.
- Den andre prosjektoppgaven fokuserer på analysering og planlegging av
et prosjekt. Nye arbeidslag blir satt sammen, og de skal konkurrere
mot hverandre. Den beste analysen plukkes ut etter en
salgspresentasjon.
Oppgavetekst
- Den tredje prosjektoppgaven er å gjennomføre en
programvareutvikling basert på planene fra
prosjektoppave nummer 2. Omfanget vil være slik at alle
arbeidslagene arbeider om hver sin del av programvaren, og et
samarbeid mellom lagene er nødvendig for å komme i mål.
Også denne gang blir arbeidslagne satt sammen på nytt.
Vi vil arbeide med en komponentbasert (objektorientert) programvareoppbygning
etter COTS (Components off the shelf) tankegangen.
Som et verktøy for kommunikasjon på kurset vil vi bruke FMS.
All aktivitet og arbeidsmateriale for kurset er pensum. Dette omfatter:
- Forelesninger, gruppemøter, prosjektpresentasjoner, mm.
- Prosjektene.
- Ian Sommerville: Software Engineering, 6th edition,
Addison Wesley/Pearson, Harlow 2001,
ISBN: 0-201-39815-X. 693 sider.
Dette er et standardverk innen Software Engineering.
- Bakgrunnsmateriale som innhentes for å kunne løse prosjektoppgavene.
Dette kan dreie seg om informasjon fra verdensveven, håndbøker og
lærebøker.
Spesielt gjelder dette UML-notatene til Trond
Løvereide, Høyskolen i Østfold (Halden), i første omgang modul1:
UML med papir og blyant.
Foreleser/kursansvarlig:
Magne Haveraaen
Øvelsesledere:
Helge Holm og
Gard Vaaler.
Forelesninger/oppgavepresentasjoner holdes
- Tirsdager, kl. 1415-1600, rom 2143 HiB
- Torsdager, kl. 1015-1200, rom 2142 HiB
- Noen få torsdager, kl. 1415-1600, rom 2144 HiB
- Fredager, kl. 1015-1200, rom 2143 HiB
Kurset begynner tirsdag 22. januar.
Utkast til arbeidsplan for kurset er satt opp i tabellen nedenfor.
Den vil bli endret i løpet av semesteret.
| uke | datoer | tema | mandag | tirsdag | onsdag | torsdag | fredag |
| 4 | 20.1.-24.1. |
introduksjon: programvareprosesser, -vedlikehold,
-kvalitetssikring (dokumentinspeksjon) og -dokumentasjon,
samarbeidspsykologi og struktur på arbeidslag |
| F | | F | F |
| 5 | 27.1.-31.1. |
-"- |
| F | | F | F |
| 6 | 3.2.-7.2. |
prosjektoppgave 1 |
O | O | O | O | O |
| 7 | 10.2.-14.2. |
-"- |
O | O | O | O | O |
| 8 | 17.2.-21.2. |
presentasjoner prosjektoppgave 1 |
| P | | P | P |
| 9 | 24.2.-28.2. |
teori om prosjektplanlegging, programvareutvikling og kostnadsestimering |
| F | | F | F |
| 10 | 3.3.-7.3. |
teori om prosjektplanlegging, programvareutvikling og kostnadsestimering |
| F | | F | F |
| 11 | 10.3.-14.3. |
prosjektoppgave 2, fase 1 |
O | O | O | O | O |
| 12 | 17.3.-21.3. |
-"- |
O | O | O | O | O |
| 13 | 24.3.-28.3. |
salgspresentasjoner prosjektoppgave 2, fase 1 |
| P | | P/F | F |
| 14 | 31.3.-4.4. |
teori om prosjektplanlegging, programvareutvikling og kostnadsestimering/prosjektoppgave 2, fase 2 |
| F | | F/O | O |
| 15 | 7.4.-11.4. |
prosjektoppgave 2, fase 2 |
O | O | O | O | O |
| 16 | 14.4.-18.4. |
påskeferie |
| | | H | H |
| 17 | 21.4.-25.4. |
prosjektoppgave 2, fase 2 fortsetter |
H | O | O | O | O |
| 18 | 28.4.-2.5. |
-"- |
O | O | O | H | O |
| 19 | 5.5.-9.5. |
presentasjoner prosjektoppgave 2, fase 2 |
| P | | P | P |
| 20 | 12.5.-16.5. |
oppsummering |
| F | | | |
Symbolbruk
- F: forelesninger
- O: oppgaver
- P: presentasjoner
- H: helgedager
Det blir muntlig eksamen i mai/juni.
Gjennomførte prosjektoppgaver er nødvendig for å kunne gå opp til eksamen.
Det vil ikke bli gitt karakter på prosjektene, men kursdeltakerne vil på
eksamen få spørsmål om prosjektoppgavene og hvordan arbeidslagene løste disse.
Sist oppdatert 2003-03-17 av
Magne Haveraaen