Våren 2001
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. Teorier om
programvareprosessen og organisering av arbeidslag 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å 4 eller fler arbeidslag.
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 den
instituttansatte gruppelederen inngå som fullverdig deltaker på
arbeidslaget, i andre organisasjonsmodeller vil han være konsulent
eller administrativt ansvarlig,
med oppgave å påse at arbeidet skrider fremover i henhold til
tidsplan og at ressursene arbeidslaget disponerer blir utnyttet best
mulig.
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.
Hvilke oppgaver som blir gitt er ikke helt avklart ennå. Rammen rundt
oppgavene er likevel tenkt som følger:
- Den første oppgaven vil fokusere på vedlikehold av et
programvarebibliotek skrevet i Java. Her vil arbeidslagene bli sett på som
kokurrerende leverandører av et oppgradert bibliotek, og den beste
løsningen vil bli valgt ut etter at hver av lagene har presentert sitt
arbeid. Kriterier for best inkluderer kvalitet på kode, lesbarhet av
dokumentasjon og tilrettelegging for senere vedlikehold.
- Den andre prosjektoppgaven fokuserer på kravanalyse.
Arbeidslagene vil også denne gang konkurrere mot hverandre, og den
beste analysen vil plukkes ut etter en salgspresentasjon.
- Den tredje prosjektoppgaven vil være å gjennomføre en
programvareutvikling basert på den utvalgte kravspesifikasjonen fra
forrige prosjektoppave. Omfanget vil være slik at alle
arbeidslagene arbeider med hver sin del av programvaren, og et
samarbeid mellom lagene er nødvendig for å komme i mål.
Vi vil arbeide med en komponentbasert (objektorientert) programvareoppbygning
etter COTS (Components off the shelf) tankegangen.
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.
Boken ankommer Studia ca. uke 5.
- Bakgrunnsmateriale som innhentes for å kunne løse prosjektoppgavene.
Dette kan dreie seg om informasjon fra verdensveven, håndbøker og
lærebøker.
Foreleser/kursansvarlig:
Magne Haveraaen
Øvelsesledere:
Anders Abrahamsen (andersa) og
Kjartan Storli (s0348).
Følgende tidspunkt er satt av til forelesninger, gruppemøter,
presentasjoner og annen organisert aktivitet ved kurset.
- Mandag kl. 12.15 - 14.00 i seminarrom 2143 HiB
- Torsdag kl. 12.15 - 14.00 i seminarrom 2143 HiB
- Fredag kl. 10.15 - 12.00 i seminarrom 2143 HiB
Oppmøte på forelesninger, presentasjoner og gruppemøter er obligatorisk.
Ved sykdom eller annet nødvendig fravær må beskjed gis til kursansvarlig
eller gruppeledere.
Kurset begynner mandag 22. januar.
- uke 4&5: Introduksjon:
programvareprosesser, -vedlikehold, -kvalitetssikring (dokumentinspeksjon)
og -dokumentasjon,
samarbeidspsykologi og struktur på arbeidslag.
- uke 6&7: Prosjektoppgave: vedlikehold av et lite programvarebibliotek.
- uke 8: Salgspresentasjon for utførte prosjekt.
- uke 9-10: Teori om prosjektplanlegging, programvareutvikling og kostnadsestimering
- uke 11-12: Prosjektoppgave: kravspesifikasjon og -analyse.
- uke 12: Salgspresentasjon for utførte prosjekt.
- uke 13: Teori om programvareutvikling og kostnadsestimering.
- uke 14,: Prosjektoppgave: programvareutvikling.
- uke 15: PÅSKEFERIE.
- uke 16--18: Prosjektoppgave: programvareutvikling (fortsetter).
- uke 19: Presentasjon av utført prosjekt.
- uke 20: Oppsummering av kurset.
Det blir muntlig eksamen i 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 2001-01-15 av
Magne Haveraaen