Oppsummering : IMT2243 Systemutvikling Målformuleringen i emnebeskrivelsens : Studentene skal ha forståelse for grunnleggende administrative og teknologiske aspekter ved spesifisering, utvikling, innføring og vedlikehold av datasystemer. De skal være i stand til å reflektere over IT-systemenes betydning i verdiskapningen i virksomheter og ulike tilnærmingsmåter i systemutviklingsprosesser De skal kunne anvende metoder og teknikker for kravspesifisering og analyse. Hensikt med kurset Gi en generell innføring i hvordan man utvikler datasystemer Systemer som brukes profesjonelt og som er større og mer komplekse enn at de kan håndteres av enkeltpersoner Har fulgt produktet i ulike stadier Har fulgt prosessen i utviklingsforløpet Innfallsvinkel : Fokus på at vi ikke driver systemutvikling for moro skyld, men at vi alltid må tenke på den virksomheten som i neste omgang skal hente gevinster av å anvende systemet gjennom flere års aktiv bruk Gått gjennom alle steg i en utviklingssyklus Det er lagt klart mest vekt på kravspesifisering/analyse Sett på generelle prinsipper innen prosjektstyring,, testing, vedlikehold Gitt kunnskaper om alternative rammeverk innen fagfeltet modeller, metoder, teknikker, verktøy Gitt innblikk i utviklerens rolle som : systemingeniør brobygger mellom brukerorganisasjonen og teknologien IMT2243 : Systemutvikling 1
Pensumlitteratur Er preisert under Pensum på emnets hjemmeside Software Engineering, Ian Sommerville, 8. Edition Artikkelsamlingen (årets utgave) Enkeltartefakter fra RUP (bl.a. Supplementary Specification og Software Architecture Document) Kopier/linker innen spesielle temaer Eksamen : 3 timer, alle trykte og skrevne hjelpemidler (teller 40 %, må bestås separat) Prosjekt : Gruppearbeid (teller 60 %, må bestås separat) Systemutviklingsmodeller Systemutviklingsmodell : Et rammeverk som ligger til grunn for utviklingsarbeidet Gir de overordnede trekk i hvordan arbeidet legges opp Dekker alle trinn fra idè til ferdig gprodukt Gjennomgått følgende SU-modeller : Fossefallsmodellen Evolusjonær Spiralmodellen RUP Inkrementell Gjenbruksbasert Agile modeller generelt Scrum+eXtreme Programming Vår Prosjektplanmal 1. MÅL OG RAMMER Bakgrunn, Prosjektmål, Rammer 2. OMFANG Oppgavebeskrivelse/ avgrensning 3. PROSJEKTORGANISERING 4. PLANLEGGING, OPPFØLING OG RAPPORTERING Hovedinndeling av prosjektet, statusmøter og beslutningspunkter 5. RISIKOANALYSE 6. KVALITETSSIKRING 7. GJENNOMFØRING Hovedaktiviteter, Milepæler, Beslutningspunkter, Tids- og ressursplaner, Kostnader IMT2243 : Systemutvikling 2
Risikoanalyse Risikonanalyse går ut på å arbeide systematisk for å finne, forstå og unngå (evt. være forberedt på) uønskede/utilsiktede tilstander i prosjektet, produktet eller organisasjonen Stegene i analysen : Identifisere Analysere Planlegge Overvåke På prosjektnivå og på use case nivå. Eksempler på risikokriterier man trekker inn i vurderingen er Forretningsmessige, Teknologiske og Prosjektmessige. Håndteres ulikt i ulike utviklingsmodeller Kravspesifiseringsprosessen Feasibility study elicitation and analysis Feasibility report System models User and system requirements validation document Kunne og kjenne krav innen kravspesifisering Kunne : Prosessen i de ulike SU-modellene Kravspekdokumentet Objektorientert analyse med Use Case Konseptuell modellering Operasjonelle krav Kjenne til : Viewpoints Systemsekvensdiagram Rup sitt Visjonsdokument IMT2243 : Systemutvikling 3
Stegene i prosessen Design activities Architectural Abstract Interface Component specificatio n Data structure Algorithm System architecture Software Interface Component Data structure Algorithm Design products Sentrale temaer innen Design Fundamentale arbeidsprinsipper i Designfasen Top Down tilnærming Strukturmodeller Repository Klient/Tjener Lagdeling Kontrollmodeller Sentralisert kontroll (call-return, manager) Hendelsesbasert kontroll (broadcast, avbruddsdrevet) Dekomponering Modulstyrke / Cohesion ( ideal om sterke moduler) Modulkobling / Coupling ( ideal om lave koblinger) OOD-prinsipper UML Sekvensdiagram og Design Klassediagram Kvalitetsstyring og Vedlikehold Inspeksjoner og Testing (strategier, metoder, teknikker) Planlegging og gjennomføring av testprosessen V-modellen Konfigurasjonsstyring Kvalitetssystemer Omfanget av vedlikehold Ulike typer av vedlikehold IMT2243 : Systemutvikling 4
Estimering + nye trender Hva estimerer vi? Hvorfor estimerer vi? Hvem estimerer? Hvordan? Ekspertestimering Analogibasert estimering Algoritmiske modeller Offshore Software Development Open Source Software Development SOA Service Oriented Architecture IMT2243 : Systemutvikling 5