Kirsten Ribu HiO Systemutvikling – LO 135A Våren 2005 Kirsten Ribu
Kirsten Ribu HiO Innledning til kurset Pensum: Forelesningsfoiler, artikler, ressurser Lærebøker: Martin Fowler UML Distilled, Second (or third) edition, Addison- Wesley eller: Perdita Stevens Using Uml - Software Engineering with Objects and Components, Updated edition 2000 ISBN: Addison-Wesley
Kirsten Ribu HiO Hva er systemutvikling? Systemutvikling handler mye om å lage beskrivelser Systemutvikling baserer seg på bruk av modeller og metoder – systematisk arbeid (ingeniørprinsipper) Planlegging og forutsigbarhet (vs. “ta den tiden som trengs”) Strukturering av prosesser (vs. “gjør som du vil bare produktet blir bra”) Kvalitetssikring (vs. “produktegenskaper som varierer mye fra gang til gang”)
Kirsten Ribu HiO Systemutvikling er også en endringsprosess som omfatter både mennesker, organisasjoner og IT bedriftspolitikk, ikke bare teknologi
Kirsten Ribu HiO Hva omhandler faget? Teorier, metoder og verktøy for følgende: Spesifikasjon Design konstruksjon vedlikehold av programvaresystemer
Kirsten Ribu HiO Læringsmål Ferdigheter og evalueringskompetanse innen: Prosjektplanlegging og prosjektgjennomføring Beskrivelse av krav ved hjelp av Use Cases (bruksmønstre) Utarbeidelse av designmodeller ved hjelp av objekt-orientert design Bruk av verktøy
Kirsten Ribu HiO Ellers får vi mangel på styring …….. ( Spaghetti-kode ) Systemet viser tegn på uregulert vekst, gjentatte og kostbare reparasjoner. Informasjonen flyter åpent mellom deler av systemet som er fjernt fra hverandre Noen ganger er all informasjon global eller redundant
Kirsten Ribu HiO Farer i utviklingsprosessen – prototyping ’Bruk og kast’ kode Noen ganger oppstår store, kaotiske systemer på bakgrunn av bruk-og- kast kode Bruk-og-kast har til hensikt å bli brukt en gang – prototyping for klargjøring av krav f.eks. Fare: Å sette prototypen i produksjon
Kirsten Ribu HiO Systemutviklingsprinsipper Oppsplitting i delproblemer Strukturer som letter samarbeid (feks faseinndeling og kodestandarder) Strukturer som motvirker typiske “svakheter” hos mennesker (f eks at vi har lett for å gyve løs på problemløsningen før problemet er forstått) Strukturer som forenkler gjenbruk av erfaringer (f eks gjennom at alle bruker samme utviklingsmodell, kodestandard og mal for prosjektplan).
Kirsten Ribu HiO Temaer i kurset Systemutviklingsmodeller og -metoder Prosjektplanlegging og - styring Objektorientert analyse og design med UML Kravspesifikasjon Design ’patterns’ (mønstre) Konfigurasjonsstyring og versjonshåndtering Testing Systemutviklingsverktøy Vedlikehold Kvalitetssikring og prosessforbedring Erfaringer fra industrien -gjesteforelesning
Kirsten Ribu HiO Modellering Analyse - modellering av brukerkrav (grafisk utforming av kravspesifikasjon) Designmodeller Arkitekturmodeller
Kirsten Ribu HiO Eksempel – use case modellen Timebestillingssystem Grensesnitt Aktør Use case
Kirsten Ribu HiO Designmodell Klasse Aggregering Assosiasjon Navigering
Kirsten Ribu HiO Arkitektur: 3 lags arkitektur (Microsoft eksempel)
Kirsten Ribu HiO Microsoft.NET arkitekturen
Kirsten Ribu HiO Systemutviklingsprosessen deles i faser
Kirsten Ribu HiO Ulike faser og aktiviteter Behovsanalyse Kravanalyse Kravspesifikasjon Estimering av kostnader Design Implementering (programmering) Testing Pilotprosjekt Utrulling Feilretting Vedlikehold Nye versjoner
Kirsten Ribu HiO Kurset Forelesninger Øvinger – ukeoppgaver skal løses Prosjekt – selvvalgt tema
Kirsten Ribu HiO Evaluering Mappeevaluering Et utvalg av ukeoppgavene Prosjektinnleveringer – delleveranser Produktrapport (gruppeinnlevering) Prosessrapport (individuell innlevering) Studentevaluering av kurset: fortløpende tilbakemelding på forelesninger, øvinger, arbeidsmenge etc.
Kirsten Ribu HiO Prosjektoppgave Generelt om prosjektarbeidet: Den viktigste aktiviteten i kurset 3-5 personer på hver gruppe Del-leveranser De som velger.NET plattformen kan delta på ’Imagine cup’ (mer om dette etter pausen) Dette skal være lærerikt, utfordrende og GØY!
Kirsten Ribu HiO Profesjonelt ansvar Som systemutviklere skal dere ikke bare fokusere på tekniske spørsmål. Dere har også etisk, sosialt og profesjonelt ansvar. Det er ikke alltid enkelt å avgjøre hva som er riktig og galt.
Kirsten Ribu HiO Etikk Hva skal systemet brukes til? (”Systemet skal brukes til å overvåke de ansatte uten at de vet det.”) Kunnskap om systemet (”Programvaren er ikke særlig anvendelig, men det vet ikke kunden”.) Konfidensialitet (Databasen inneholder sensitiv informasjon om personer.) Opphavsrettigheter (Bruk av programvare og komponenter utviklet av andre – uten kompensasjon) Kompetanse (Deling av kunnskap – kan det føre til at egen kompetanse blir mindre verdifull?) Misbruk av datamaskiner (Bruk av arbeidsgivers utstyr til privat bruk.)
Kirsten Ribu HiO Etter pausen… Frode Kristensen fra Microsoft Norge presenterer Imagine cup og.NET
Kirsten Ribu HiO Spørsmål? ?
Kirsten Ribu HiO Neste gang Mandag kl i Aud. 1 Tema: Overblikk over systemutviklingsmetoder Iterative og ‘agile’ og utviklingsteknikker: feks Extreme Programming, the UnifiedProcess, prototyping og andre metoder Vi ser litt på historikk – ‘Fossefallsmetoden’, ‘Spiralmodellen’ Forberedelser: Les om ‘Software lifecycle’ ap2.pdf ap2.pdf Se på følgende artikler på Wikipedia.org: