Velkmmen til INF1050 Systemutvikling 2009 J Hannay Simula Research Labratry & Institutt fr Infrmatikk INF1050 Dagsrden 14. jan. 2009 Om kurset: Læringsmål Struktur, frelesere, undervisningsplan Undervisningsmateriell Gjennmføring Obligatriske ppgaver Vurderingsfrm Intrduksjn til systemutvikling INF1050-innledning-1 INF1050-innledning-2 Læringsmål Læringsmål Du skal frstå hva det innebærer å utvikle et system Du skal frstå hva det innebærer å utvikle et system hvrdan man fastlegger systemets t egenskaper Sftware-system = Datasystem = IT-system hvilke rammer sm gjelder fr utviklingen hvrdan man lager selve systemet hvrdan man mest effektivt får tatt systemet i bruk hvrdan utviklingsprsessen styres Sftware = Prgramvare Systemutvikling = Sftwareutvikling = Prgramvareutvikling INF1050-innledning-3 INF1050-innledning-4
Læringsmål Du skal frstå hva det innebærer å utvikle et system hvrdan man fastlegger systemets t egenskaper hvilke rammer sm gjelder fr utviklingen hvrdan man lager selve systemet hvrdan man mest effektivt får tatt systemet i bruk hvrdan utviklingsprsessen styres Industrien ettersøker bedre kmpetanse i alle disse feltene! Mange dårlige kandidater på jbbintervjuer! j x Kursets struktur g frelesere Systemutvikling sm helhet 1. Systemutvikling: mtivasjn... J Hannay, Simula & Ifi 2. Systemutviklingsprsessen... Rune Steinberg, Visma Sftware AS 3. Prsjektledelse g prsjektarbeid... Rune Steinberg, Visma Sftware AS Kunde/leverandør/bruker-frhldx 15. Oppsummering & eksamenstips Erik Arishlm 16. Faglig ssial ettermiddag... Freleserne g dere! 4. Kravhåndtering. Erik Arishlm, Simula & Ifi Detaljert undervisingsplan: 5. Avtaler & kntrakter... Jørgen Petersen, Prmis AS ui.n/studier/emner/matnat/ifi/inf1050/v09/undervisningsplan.xml 6. Estimering...... Stein Grimstad, Simula 7. Jus & etikk...... Dag W. Schartum, Senter fr Rettsinfrmatikk Systemets struktur g design 8. Mdellering av krav med use cases Erik Arishlm, Simula & Ifi 9. Objektrientert analyse (2 frel.)... Erik Arishlm, Simula & Ifi 10. Persistens g databaser Erik Arishlm, Simula & Ifi 11. Arkitektur.... Dag Lrås, Visma Sftware AS Kding, validering g vedlikehld 12. Mdellbasert utvikling med Genva Esit AS 13. Validering g verifisering (2 frel.)... Linel Briand, Simula & Ifi 14. Knfigurasjnsstyring.. Hans Christian Benestad, Simula INF1050-innledning-5 INF1050-innledning-6 Kunde Leverandør Bruker INF1050-innledning-7 INF1050-innledning-8 x
Lærebøker: Undervisningsmateriell Gunnar Gurhlt g Thr E. Hasle: Grunnleggende Systemutvikling (GS), 2003. Cappelen. ISBN: 82-02-19868-2. Pensum: Kapitler 1-11 g 14-19; samt emner 1-4 g 7-9 Thr E. Hasle: Systemutvikling Applikasjner g databaser. ISBN 9788202286057 Pensum blir fastlagt etter hvert. Støttelitteratur: Leszek A. Maciaszek: Requirements Analysis and System Design (RASD), 3rd editin, 2007. Addisn Wesley. ISBN: 978-0-321-44036-5. Kapitler 1-4 g 7-9. Frelesningsntater, filer g annet materiell: Legges ut senest mandagen før frelesning (sm regel). Ukeppgaver til hver frelesning: Gjennmgås på gruppene i uka etter frelesningen. Legges ut senest etter frelesningen. Tre bligatriske ppgaver Orakeltjeneste i frbindelse med bligatriske ppgaver! Gjennmføring Gå på frelesninger g grupper! Studer undervisningsplan, les kapitlene i lærebka, samt frelesningsntater g filer (ppdateres hver uke) på http://www.ui.n/studier/emner/matnat/ifi/inf1050/v09/undervisningsplan.xml Frelesninger gir dere utfyllende stff, samtidig sm de vil fkusere på det vi mener er mest sentralt. Gjennm frelesningene vil vi frsøke å sette pensum i bedre kntekst av reelle systemutviklingssituasjner. Frelesninger vil gi mer kritisk hldning til pensum g guruers påstander. Frelesninger kan være disiplinerende. Frelesninger gir mulighet til diskusjner g spørsmål. sm gjør det mulig å scre ekstrapeng på eksamen ;-) INF1050-innledning-9 INF1050-innledning-10 Læringskmpnenter Obligatriske ppgaver Tilegnet kunnskap Du skal få øving i å kunne msette kursets teri til praksis Lære- bøker Obligatriske ppgaver Frelesninger + ntater Ukeppgaver Kunnskap testet til eksamen pparbeide kjennskap til et utvalg plattfrmer g utviklingsverktøy kunne anvende et utvalg systemutviklingsteknikker Oppgavene følger hvedtemaene (grvt sett): Oblig 1: Idefasen, prsess, krav, kntrakter g estimering Utlevering: 19.feb, innlevering: 6.mars Oblig 2: Fra krav til UML analysemdell (Ratinal Rse) Utlevering: 12.mars, innlevering: 3.april Oblig 3: Prttyping av brukergrensesnitt (Genva). Frslag til databaseskjema. Hint: Bruk frelesningene til å fkusere lesing av pensum! Utlevering: 16. april, innlevering: 4.mai Du leverer individuelle besvarelser INF1050-innledning-11 INF1050-innledning-12
Du kan påvirke undervisningen! Kntinuerlig kursevaluering g -frbedring Når sm helst: Send e-pst til inf1050@ifi.ui.n dersm du har negative eller psitive tilbakemeldinger på kursets innhld eller gjennmføring Eventuelt gi tilbakemeldinger til gruppelærerne, sm vi har ukentlige møter med Etter blig 1: 5-minutters annymt spørreskjema (detaljer kmmer senere) Du har gså et ansvar fr undervisningen! Vis mtanke g flkeskikk! Våre frelesere g dine medstudenter frventer at: du er på plass i det frelesningen begynner du ikke småprater med andre under frelesningen du ikke spiller spill, surfer, chatter, emailer under frelesningen du ikke leser avisen under frelesningen du gjør alt du kan fr å engasjere deg g følge med i frelesningen - selv m det iblant kan være tungt! INF1050-innledning-13 INF1050-innledning-14 Vurderingsfrm e-pst-adresser Tre gdkjente bligatriske ppgaver Studenter sm tidligere har fått gdkjent Inf1050 prsjektppgave trenger ikke levere nye bligatriske ppgaver. En skriftlig 3 timers eksamen (2. juni). Alle trykte g skrevne hjelpemidler er tillatt. Infrmasjn m utsatt prøve (kntinuasjn) finner du her: http://www.matnat.ui.n/studier/eksamen/kntinuasjn.html Faglige spørsmål g kmmentarer: inf1050@ifi.ui.n (går til kursansvarlige: Erik Arishlm & J Hannay) Gruppespørsmål: inf1050-x@ifi.ui.n der x er gruppenummeret (går til gruppelæreren) Studieadministrative spørsmål: studieinf@ifi.ui.n (går til studieadministrasjnen) INF1050-innledning-15 INF1050-innledning-16
INF1050 Dagsrden 14. jan. 2009 Om kurset: Mtivasjn Det utvikles g vedlikehldes trlig prgramvare fr mellm 10 g 40 milliarder krner i året i Nrge. Ca. 75% av IT-prsjektene har verskridelser (2003) Intrduksjn til systemutvikling Mtivasjn: Ting må gjøres bedre! Ting kan gjøres bedre! Metdikk Sftware engineering (Industriell systemutvikling) I gjennmsnitt er kstnadsverskridelsene på 30-40% En str andel av prsjektene fullføres aldri særlig de svært stre prsjektene er utsatt fr ttalstpp eller langvarige frsinkelser. Ofte dårlig kvalitet. INF1050-innledning-17 3 døde, $ 186 mill. $ 7,5 mrd. 2 skadde INF1050-innledning-18 Ting kan gjøres bedre! F.eks.: Utviklingsprsess har str påvirkning på kntrllen. Studier vi har gjennmført viste blant annet at (2003): Fssefall: 55% verskridelse Inkrementelle/iterative prsesser: 24% verskridelse Eksempel: SKARP-prsjektet utvikle et skatteregnskapssystem k t 2003: 1 mrd., 7 år, ikke i drift 2008: i drift! SKARP-prsjektet 1995: Dagens skatteregnskapssystem (Standardskatt) er ver 20 år gammelt, Cbl-basert basert g vanskelig å vedlikehlde, g ppfyller ikke frmelle krav til sikkerhet, kntrll g sprbarhet i slike systemer. Det kster gså svært mye å drifte (50-60 mill krner pr år). 1996: Prsjektet initiert. Dette er det største it-prsjektet direktratet nensinne har igangsatt, med en kstnadsramme på nærmere 1 milliard krner. 2000: WM-Data får fastpriskntrakt på levering av det nye skatteregnskapssystemet (SOFIE) fr Skattedirektratet. 2002: Testingen av leveransene fra WM-data skulle startet tidlig våren 2002, g skulle etter planen settes i drift høsten 2002. Det er frsinkelser i prsjektet. Rykter m at WM-data allerede utvikler gratis. 2003: Skattedirektratet hever avtalen med WM-Data. Skatteetaten mener at årsaken til frsinkelsene i SKARP-prsjektet først g fremst skyldes det uføre kntrakten med VM-data medførte. VM-data taper prestisje, 250 milliner krner, g 28 ansatte måtte gå. 2003: Ny avtale inngås med Cap Gemini, basert på Tdelt kntrakt: SOFIE Basis (kjernen) g SOFIE Innføring (brukergrensesnittet)) PS2000 kntraktstandarden (freleses av Jørgen Petersen: Avtaler g kntrakter) g iterativ/inkrementell prsess (freleses av Rune Steinberg: Utviklingsprsesser). 2005: Piltkmmuner i drift (Str bidragsyter fr å bedre e kvaliteten på systemet. et Brukerstøtte sentralt. t Str utfrdring sm må løses: knvertering av data fra gammelt system). 2006: Cap Gemini inngår tre kntrakter m sluttleveranser (utvidet funksjnalitet g feilrettinger). Svært fleksibel kntraktsfrm i frhld til hvilke utvidelser g feilrettinger sm skal med i hvilken release. 2007/2008: Alle skatteppkreverne tar i bruk systemet i løpet av 2007, med unntak Osl kemnerkntr sm ikke vil ta systemet i bruk før 2008. SOFIE er basert på Oracle Applicatins g ver 1000 egenutviklede prgramvaremduler. INF1050-innledning-19 INF1050-innledning-20
Evidens-basert Metdikk: Sftware Engineering Sftware engineering (industriell systemutvikling) mhandler terier, metder g verktøy fr spesifikasjn, design, knstruksjn g vedlikehld ld av prgramvare. Tar i betraktning de menneskelige aspektene i samspill med de teknlgiske aspektene! Er ment å bidra til at vi lager bedre systemer, raskere, med færre ressurser g på en mer frutsigbar måte. Basert på ingeniørprinsipper (systematiske metder) med fkus på: Planlegging g frutsigbarhet (i mtsetning til ta den tiden sm trengs ) Oppdeling g strukturering av prblemer i mindre kmplekse bestanddeler (i mtsetning til prøv g feil ) Mdularitet g gjenbruk (i mtsetning til lag alt fra bunnen av hver gang ) Abstraksjn g mdellering (i mtsetning til kden er systemet ) Systematisk kvalitetssikring (i mtsetning til gjør sm du vil bare prduktet blir bra ) Planlegging g frutsigbarhet Veldefinerte, repeterbare g planlagte aktiviteter Alle persner vet hva de skal gjøre, hvrdan det gjøres (standarder/metder/verktøy), hva de skal levere g når det skal leveres. Prsjektplaner g -rapprtering Ressursplaner: Kstnadsrammer, persnal, utstyr Tidsplaner: Estimering, milepæler, aktivitetsnettverk Kvalitetsplaner g -rapprtering Sjekklister, inspeksjner, testplaner, testresultater Rutiner fr å håndtere endringsfrespørsler, sprbarhet, Men graden av planlegging g g frmalitet i systemutvikling er et kntrversielt tema Lettvektsprsesser (f.eks. extreme Prgramming XP) vs sekvensielle prsesser (f.eks. Fssefall) eller mer frmelle metder (f.eks. Mdel Driven Architecture - MDA). INF1050-innledning-21 INF1050-innledning-22 Oppdeling g strukturering av prblemer i mindre kmplekse k bestanddeler Oppdeling i fr eksempel Tid (faser) PS2000 kntraktstandarden: Behvsfase, Løsningsbeskrivelse, Iterativ knstruksjnsfase, Gdkjenningsfase Timebxing/tidsavgrensning Oppgaver (aktiviteter g tilhørende leveranser): Analyse, design, prgrammering, testing, Tekniske aspekter Kvalitetsaspekter, funksjnalitet, mduler, kmpnenter Mdeller på frskjellige abstraksjnsnivåer Kravspesifikasjner versus Objektrientert analyse versus Detaljert design versus Kde Mdularitet g gjenbruk Datasystemer deles pp i mindre delsystemer (kmpnenter, mduler, aspekter) slik at: Hvert delsystem implementerer et veldefinert prblem (høy khesjn) g Man frsøker å redusere avhengigheter på tvers av delsystemer (lav kbling) Fr nyvinninger innen dette, se aspekt-rientert utvikling Eksempler på aspekter: sikkerhet, kntrll g sprbarhet (se SKARP-prsjektet) Mdularisering Muliggjør gjenbruk innen et prsjekt eller på tvers av prsjekter Letter arbeidsfrdeling g samarbeid Muliggjør inkrementell utvikling INF1050-innledning-23 INF1050-innledning-24
Abstraksjn g mdellering Identifiser de viktigste mmentene g ignrer detaljer sm er irrelevante fr å løse et gitt prblem Mdeller er en type abstraksjn: spesifikasjner g designmdeller skjuler irrelevante prgrammeringsdetaljer Selve prgrammet kan gså ses på sm en presis mdell av hvilke ppgaver sm skal gjøres g hvrdan, sm deretter versettes til maskinkde slik at datamaskinen kan utføre dem I Inf1050 vil dere lære hvrdan Unified Mdeling Language (UML) kan brukes til å spesifisere kravene til et system g gjøre en analyse av hvrdan disse kravene kan realiseres i et bjektrientert prgrammeringsspråk definere en database fr lagring av dataene generere prttyper av blant annet brukergrensesnittet (vha Genva) fr å få tidlige tilbakemeldinger fra ptensielle brukere Systematisk kvalitetssikring Validering g verifisering Validering: Har vi spesifisert systemet riktig? Verifisering: Lager vi det spesifiserte systemet riktig? X Endringshåndtering g knfigurasjnsstyring Kundeinvlvering Inkrementell g iterativ utvikling Reduserer risik ved at man kan levere g evaluere (validere g verifisere) enkelte delsystemer INF1050-innledning-25 INF1050-innledning-26 Systemutviklerens arbeid (GS kap. 1) Utviklingsprsesser Dmenekunnskap Jus g etikk Prsjektstyring Avtaler g kntrakter Endringshåndtering Kravhåndtering Kmpetansemråder Estimering i Knfigurasjnsstyring Mdellering Kvalitetssikring/Testing Arkitektur Prgrammering Utviklingsverktøy Databaser Nen myter m systemutvikling Myte 1: Systemet må tilpasse seg datamaskinens krav (bruke få ressurser, være tilpasset fysisk arkitektur) Infrmasjnssystemet skal være tilpasset bruker g deres krav! Nøkkelrd: Evlusjnær utvikling, evaluering av prttyper, brukergrensesnittdesign g Myte 2: De beste datasystemer er de du selv bygger pp fra grunnen ( Nt Invented Here -syndrmet) Studier viser at det er verraskende lite gjenbruk av funksjnalitet eller kde mellm pen-surce prsjekter! Undersøk først m det finnes standardprgrammer (eller et sett med standardkmpnenter) sm allerede dekker (deler av) behvene, eller sm enkelt kan tilpasses til å dekke behvene Nøkkelrd: kmpnentbasert utvikling INF1050-innledning-27 INF1050-innledning-28
Myte 3: Datasystemet skal autmatisere gamle rutiner Systemutvikling dreier seg gså m åid identifisere frbedrings- di muligheter g intrdusere nye løsninger (rutiner g prsesser) fr å ppnå bestemte t mål. Ofte vil innføringen av et nytt datasystem mlegge rutinene i en bedrift ttalt! Nøkkelrd: Målanalyse Business prcess reengineering Analyser nåværende situasjn Beskrivelse av virkelighet Sammenlign g pririter it Skap ideer m alternative løsninger Velg løsning, lag handlings- plan Analyser ønsket situasjn Beskrivelse av ønsker Beskrivelse av de viktigste endringer Beskrivelse av alternative løsninger En myte til Myte 4: Prgramvare er så fleksibel at den kan alltids endres senere er skstnade Endrings 1 x 1.5-6 x 60-100 x Spesifikasjn Utvikling Drift INF1050-innledning-29 INF1050-innledning-30 Nen flere myter m systemutvikling Myte 5: Løsningen ligger i å bruke riktige verktøy A fl with a tl is still a fl Myte 6: Ansett flere prgrammerere hvis prsjektet er frsinket Brk s Mythical Man-Mnth: adding peple t a late sftware prject makes it later : Opplæring Antall kmmunikasjnskanaler = n(n-1)/2 INF1050-innledning-31 INF1050-innledning-32
Gd reise! INF1050-innledning-33