Oppsummering INF050 Hvedtemaene i INF050 Prduksjn av infrmasjnssystemer Styring av prduksjn av infrmasjnssystemer Rammer fr utvikling av infrmasjnssystemer Thedr Kittelsen: Og i det fjerne, langt, langt brte så han ne lyse g glitre Nasjnalgalleriet Verktøy g plattfrmer Dagsrden Prduksjn av infrmasjnssystemer Systemutviklingsprsessen Eventuelt INF050-ppsum- INF050-ppsum-2 Figur 2-2. Et verrdnet rammeverk fr systemutvikling Hva Analyse Realisering Prdukt Utfrming Hva Vurdering Regulering Styring Hvrdan Refleksjn Frandring Hvrdan Planlegging Etter N. E. Andersen et.al. (986): Prfessinel Systemudvikling Utviklingsverktøy g plattfrmer Utviklingsverktøy CASE-verktøy Editrer, kmpilatrer Utviklingsmiljøer Prgrammeringsspråk Utviklingsverktøy Systemutvikler Infrmasjnssystem Plattfrm (prgramvare) Plattfrm (maskinvare) Plattfrmer Operativsystemer Webtjenere Databasehåndteringssystemer Mellmvarer (Middleware) Plattfrm (prgramvare) Plattfrm (maskinvare) Bruker INF050-ppsum-3 INF050-ppsum-4
Hva raklet skal kunne vite uttrykkes i ORM, datarientert UML-klassediagram eller sm tabelldatabasestruktur registrering Fra kjernen g ut Interessemrådet påvirkning Fra kjernen g ut : Datarientert klassediagram -> Relasjnsdatabase -> Spørringer De funksjnelle krav uttrykkes i UML-bruksmønstre Fra skallet g inn registrering Interessemrådet påvirkning Fra skallet g inn: Bruksmønster -> Sekvensdiagram -> Klassediagram Jeg svarer på alle spørsmål (nesten, da) Oppfatningen av interessemrådet Jeg gjør det du frventer at jeg skal gjøre Oppfatningen av interessemrådet Orakel Infrmasjnssystem Organisasjnen Brukere INF050-ppsum-5 Infrmasjnssystem Organisasjnen Brukere INF050-ppsum-6 Datarientert vs. bjektrientert utfrming Utviklingsretninger g utfrminger Prgram SQL Infrmasjnssystem CREATE TABLE INSERT INSERT Datarientert klasse (entitet) Datarientert arkitektur Fra kjernen g ut Fra skallet g inn? Objektrientert arkitektur? metdekall create/new Infrmasjnssystem create/new klasse Objektrientert Er rutene med? interessante? INF050-ppsum-7 INF050-ppsum-8
Mdellenes t frmål Interessemrådet Hva brukes UML til? Ntasjn sm støtter pp under (et virvar av) metder fr bjektrientert analyse ( hva systemet skal gjøre ) Beskrivelse Oppfatningen av interessemrådet Freskrivelse bjektrientert design ( hvrdan systemet skal gjøre det ) datarientert analyse ( hva skal systemet vite ) Dkumentasjn av systemets krav, design g implementasjn fr andre utviklere (g fr deg selv) Evt. fr kmmunikasjn med kunde/sluttbruker under utviklingsprsjektet Infrmasjnssystem Brukere INF050-ppsum-9 INF050-ppsum-0 Nytteverdi av mdeller Sftware is becming larger and mre cmplex: mdeling helps develpers cmmunicate mre efficiently. With cde alne it s harder t grasp the big picture. The success f mdeling is highly dependent n gd tls. Mdels must be cnnected t the cde. Nytteverdien av UML sm dkumentasjn fr andre utviklere resultater fra et kntrllert eksperiment (m/java endringsppgaver g Tau UML) % subjects with crrect task 00 90 80 70 60 50 40 30 20 0 Task Crrectness N UML UML 0 Task Task2 Task3 Task4 Erik Arishlm, Samera Afsheen Ali & Siw Elisabeth Hve: An Initial Cntrlled Experiment t Evaluate the Effect f UML Design Dcumentatin n the Maintainability f Object-Oriented Sftware in a Realistic Prgramming Envirnment, Simula TR-2003-4 INF050-ppsum- Institutt fr infrmatikk G. Skagestein/E. Arishlm Arishlm/O. Hanseth 8. mai 2005 INF050-ppsum-2
Nytteverdi av UML tidsfrbruk på kding g testing Nytteverdi av UML ekstra tidsfrbruk fr å ppdatere UML-mdellene med Tau UML Effrt t understand, cde and test tasks 2+3+4 250 250 Effrt (incl. updating UML dc) fr tasks 2+3+4 Time (minutes) 200 50 00 50 Time (minutes) 200 50 00 50 0 0 NUML UML NUML UML Erik Arishlm, Samera Afsheen Ali & Siw Elisabeth Hve: An Initial Cntrlled Experiment t Evaluate the Effect f UML Design Dcumentatin n the Maintainability f Object-Oriented Sftware in a Realistic Prgramming Envirnment, Simula TR-2003-4 Erik Arishlm, Samera Afsheen Ali & Siw Elisabeth Hve: An Initial Cntrlled Experiment t Evaluate the Effect f UML Design Dcumentatin n the Maintainability f Object-Oriented Sftware in a Realistic Prgramming Envirnment, Simula TR-2003-4 Institutt fr infrmatikk G. Skagestein/E. Arishlm Arishlm/O. Hanseth 8. mai 2005 INF050-ppsum-3 Institutt fr infrmatikk G. Skagestein/E. Arishlm Arishlm/O. Hanseth 8. mai 2005 INF050-ppsum-4 Datarientert (statisk) virkelighetsmdell Datarientert klassediagram (ugruppert) Virkelighetsmdellen mfatter interessemrådets tilstander g deres representasjner regler fr lvlige/ulvlige tilstander g tilstandsverganger Virkelighetsmdellen mfatter ikke transfrmasjner fra en tilstand til den neste Infrmasjnssystemet får istedenfr en melding m at virkeligheten har endret seg, g virkelighetsmdellen ppdateres ved hjelp av funksjner i applikasjnslaget. Virkelighetsmdellen deles av alle funksjner Vi har i INF050 brukt datarienterte klassediagrammer (ugrupperte g grupperte) fr å beskrive mdellene jf. figur 5-0 kmmunenr {id} «begrep» Kmmunenavn «begrep» År «begrep» Kmmune årstall {id} «begrep» Materialgjenvinning gjenvunnet_ materiale 0: gjenvunnet mengde «begrep» Materiale materialnavn {id} «begrep» Mengde # tnn {id} kmmunenavn {id} INF050-ppsum-5 INF050-ppsum-6
Kmmune kmmunenr {id} kmmunenavn Kmmunenavn kmmunenavn {id} Datarientert klassediagram (gruppert) År årstall {id} Materialgjenvinning kmmunenr {id} årstall {id} materialnavn {id} mengde gjenvunnet_ materiale 0: gjenvunnet mengde Materiale materialnavn {id} Mengde # tnn {id} UI Realisering av et klassediagram Fylke fylkenr {id} fylkenavn {unique} fylkenr fylkenr fylkenavn Østfld kmnr2s kmmunenavn 04 relasjnsdatabase Halden Mss Østfld:Fylke Østfld evt. metder Kmmune fylkenr {id} {fk} kmnr2s {id} kmmunenavn bjekter realiseres ved hjelp av OIDs eller relatinships :Kmmune Halden evt. metder :Kmmune 04 Mss evt. metder INF050-ppsum-7 INF050-ppsum-8 Fra datamdell til relasjnsdatabase Sjekk datamdellen Fylke fylkenr {id}. mfatter : primærnøkkel referanseintegritet (fra implisitt delmengdeskranke) UI Fylke fylkenr 02 03 Er representasjnene i samsvar med begrepene? Er asssiasjnene velvalgte g frnuftige? Gir de interessante pplysninger? Er det sikkert at de ikke kan avledes? Hvis tvil: Lag frekmsttabeller! fremmednøkkel null / nt null Er multiplisitetene krrekte? ligger-i Kmmune kmnr2s {id}. plassering av fremmednøkkel primærnøkkel Kmmune NOT NULL fylkenr kmnr2s 04 05 Hvis tvil: Lag frekmsttabeller! Er rller angitt der hvr latmannsregelen ikke hlder? Er hmgenitetsregelen anvendt? Er viktige skranker dkumentert? INF050-ppsum-9 INF050-ppsum-20
Sjekk relasjnsdatabasestrukturen Er fremmednøkkelen generert på riktig side? Er {null} angitt fr fremmednøkler der minimumsmultiplisiteten er 0? Har du fått med deg eventuelle sammensatte fremmednøkler? Er delmengdeskranker satt på mellm fremmednøkler g primærnøkler? Er undertrykking av tabeller begrunnet? Er NOT NULL angitt fr alle ikke {null} attributter? Er valg av partisjnering, absrbsjn eller separasjn ved gruppering rundt underbegreper begrunnet? Er eventuelle avvik fra tredje nrmalfrm/bcnf begrunnet? Finnes det ne i relasjnsdatabasestrukturen sm ikke finnes i datamdellen, eller mvendt? Objektrientert (dynamisk) virkelighetsmdell Virkelighetsmdellen gjenspeiler knkrete g/eller tenkte (mentale) bjekter, med hver sin tilstand g hver sin ppførsel Virkelighetsmdellens bjekter kan selv sørge fr transfrmasjner fra en tilstand til den neste Infrmasjnssystemet må i tillegg ha funksjner (fte implementert ved hjelp av bjekter) fr (resten av) frretningslgikken brukergrensesnittet Vi har i INF050 brukt sekvens-, bjekt- g klassediagrammer fr å beskrive mdellene INF050-ppsum-2 INF050-ppsum-22 Metde fr ansvarsdrevet OO Inf050 metden (Iterativ): Kursregistrering bruksmønstermdell Analyse av krav () Identifiser aktører g deres mål (2) Lag et høynivå bruksmønsterdiagram (3) Spesifiser hvert bruksmønster tekstlig med nrmal hendelsesflyt g variasjner Objektdesign Fr hvert bruksmønster: (4) Identifiser bjekter g frdel ansvar mellm dem (CRC) (5) Lag sekvensdiagram fr nrmal hendelsesflyt g viktige variasjner (6) Lag klassediagram sm tilsvarer sekvensdiagrammene (7) Lag til slutt klassediagram på systemnivå Institutt fr infrmatikk G. Skagestein/E. Arishlm Arishlm/O. Hanseth 8. mai 2005 INF050-ppsum-23 INF050-ppsum-24
Revidert spesifikasjn av Meld på kurs Navn: Meld på kurs Aktør: Student Trigger: Student ønsker å melde seg på et kurs Pre-betingelse: Student har betalt semesteravgift g er lgget inn på systemet Pst-betingelse: Student er meldt på kurset eller er satt på venteliste Nrmal Hendelsesflyt:. Studenten velger emne 2. Systemet sjekker at studenten kvalifiserer til å ta emnet 3. Systemet finner kurs fr emnet 4. Systemet sjekker m det er ledig plass på kurset 5. Systemet registrerer studenten på kurset Meld på kurs (frts.) Variasjner: a. Emnet finnes ikke:. Studenten velger et annet emne eller avslutter 2a. Emnet frutsetter andre emner:. Systemet sjekker at studenten har bestått kurs fr emner sm frutsettes a. Studenten har ikke bestått kurs fr emner sm frutsettes:. Studenten velger et annet emne eller avslutter 3a. Det hldes ikke kurs i emnet dette semesteret:. Studenten velger et annet emne eller avslutter 4a. Kurset er fullt:. Systemet spør m studenten ønsker å bli satt på venteliste a. Studenten ønsker å bli satt på venteliste:. Systemet setter studenten på venteliste Relatert infrmasjn: I denne versjnen hldes administrasjn av gruppeundervisning utenfr systemet INF050-ppsum-25 INF050-ppsum-26 Utfrdringen i å lage OO-mdeller Tre typer bjekter Frretningsbjekter ( entity bjects ) Kntrllbjekter ( cntrl bjects ) Kantbjekter ( bundary bjects ) Gitt et sett bruksmønstre: Hvrdan finne bjekter g frdele ansvar mellm dem slik at bruksmønstrene blir realisert! Litt frenklet kan man si at denne tredelingen skiller mellm ) bjekter sm skal lagres i en database, 2) bjekter sm krdinerer handlingene i et bruksmønster g 3) bjekter sm kmmuniserer med aktørene. Men hvr mye ansvar bør kntrllbjektene ha, g i hvilken grad bør vi bevisstgjøre frretningsbjektene våre?? INF050-ppsum-27 INF050-ppsum-28
Nrmal hendelsesflyt fr Meld på kurs (sentralisert kntrllstil, kntrllbjektet har ansvar fr det meste av handlingsfrløpet) Nrmal hendelsesflyt fr Meld på kurs (delegert kntrllstil: Emne g Kurs har vertatt mye av ansvaret fra kntrllbjektet) Institutt fr infrmatikk G. Skagestein/E. Arishlm Arishlm/O. Hanseth 8. mai 2005 INF050-ppsum-29 Institutt fr infrmatikk G. Skagestein/E. Arishlm Arishlm/O. Hanseth 8. mai 2005 INF050-ppsum-30 Klassediagram fr nrmal hendelsesflyt Freløpig klassediagram på systemnivå INF050-ppsum-3 INF050-ppsum-32
Figur 0-0. Sekvensdiagram fr avfallsstatistikk-system Be m statistikk new( ) lagstatistikk(args) Kntrllbjekt :Kantbjekt :Statistikkinteressert persn :Statistikkprdusent hentdata(args) :HeleLandet Fjern bjektet det trengs ikke lenger Halden: Kmmune Frretningsbjekter Mss: Kmmune mengde :=gjenvunnetmengde (peride,materiale) gjenta fr alle kmmuner Halden998: Gjenvinning mengde:=gjenvunnetmengde (peride,materiale) mengde :=gjenvunnetmengde(materiale) mengde := gjenvunnetmengde(materiale) Halden20: Gjenvinning mengde := gjenvunnetmengde(materiale) gjenta fr alle aktuelle år Mss998: Gjenvinning INF050-ppsum-33 -... +...() Emne -emnet -kurs Realisering av asssiasjner (NB! Det finnes verktøystøtte fr dette) Kurs -antallplasser : int -antallpaameldt : int -semester : String +ledigplass() : blean +meldpaa(in studenten : Student) class Kurs { } -paameldtekurs //asssiasjner Emne emnet; // referanse til emnet fr kurset Vectr paameldtestudenter; // liste ver påmeldte studenter // attributter private int antallplasser; private int antallpaameldt; private String semester; public blean ledigplass() {} 0.. public blean meldpaa(student s) { antallpaameldt = antallpaameldt + ; paameldtestudenter.addelement(s); } er meldt på -paameldtestudenter 0.. class Student { } //asssiasjner Vectr paameldtekurs; Student -studentid : String -navn : String +ermeldtpaa(in kurset : Kurs) // attributter private String studentid, navn; public blean ermeldtpaa(kurs k) { paameldtekurs.addelement(k); } // liste ver påmeldte kurs INF050-ppsum-34 Frmalisme i UML UML Et tegneverktøy eller fremtidens systemutviklingsspråk? De fleste utviklere i dag bruker UML sm et rent tegneverktøy fr å lage relativt ufrmelle mdeller av IT-systemer, sm de deretter kder i et prgrammeringsspråk Behv fr å ppdatere ikke bare kde, men gså UML-mdellene, dersm de skal ha verdi sm fremtidig dkumentasjn av et system. Ofte gidder ikke systemutviklere benytte seg av eksisterende mdeller fr å frstå et system frdi de av erfaring regner med at mdellene ikke er ppdatert? mdellene er fr upresise eller ufullstendige, slik at man likevel må se på kden? kden uansett er den beste dkumentasjnen? Mdell-drevet utvikling (MDA/MDD): Tneangivende grupperinger (OMG, IBM m.fl.) begynner nå å lage teknlgier hvr UMLmdeller (tilsvarende de vi har laget i Inf050) i praksis blir en sentral del av plattfrmuavhengig kde. Integrert verktøystøtte fr systemspesifikasjn (med UML g OCL Object Cnstraint Language) g autmatisk kdegenerering er sentralt Veien videre? http://www.mg.rg/mda/ OMG Mdel Driven Architecture Key standards that make up the MDA suite f standards include Unified Mdeling Language (UML); Meta-Object Facility (MOF); XML Meta-Data Interchange (XMI); and Cmmn Warehuse Meta-mdel (CWM). Institutt fr infrmatikk G. Skagestein/E. Arishlm Arishlm/O. Hanseth 8. mai 2005 INF050-ppsum-35 Institutt fr infrmatikk G. Skagestein/E. Arishlm Arishlm/O. Hanseth 8. mai 2005 INF050-ppsum-36
Lver g regler Rammer Persnpplysningslven Relevante pplysninger Samtykke i innsamling av persndata Arbeidsmiljølven Medvirkningsrett Regler fr saksbehandling Teknlgi Etikk Styring av prduksjn av infrmasjnssystemer Styringsmdell (fssefall, iterativ, inkrementell, ) velges avhengig av ppdraget (hva slags system vi skal utvikle) hvilke usikkerheter er frbundet med ppdraget? hvilke rammer settes fr ppdraget? Estimering: hvr mye g hvilke ressurser trenger vi? Milepælsdefinisjner veldefinert, målbar prsjekttilstand kblet til et bestemt tidspunkt Kntrakter g avtaler INF050-ppsum-37 INF050-ppsum-38 Evlusjnære strategier fr å håndtere usikkerheter Iterativ utviklingsmdell (skrittvis frbedring) Gjentatte evalueringer, frbedringer g tilpasninger av kravspesifikasjn, arkitektur, prgrammer g infrmasjnssystemet Evaluering av risik før hver iterasjn Barry W. Behm (988) A spiral mdel f sftware develpment and enhancement. IEEE Cmputer, May, 6-72 Inkrementell (del-leveranser) Gjentatte leveranser av mindre deler av systemet Evaluering av nytte før hvert nytt delsystem utvikles Tm Gilb (988) Principles f sftware engineering management. Addisn-Wesley, Wkingham, UK Oppsummering Hvem bestemmer hvilke systemer vi skal ha? Orakel Vi lager det systemet vi får til: det vi kan frstå av bruken (g brukerne) Infrmasjnssystem det vi kan få til teknisk (håndverk & teri) Systemutviklingsprsessen Vi designer både systemet g prsessen med å lage systemet vi må velge strategi etter hvr de største prblemene er Brukergrensesnittdesign Brukergrensesnittet presenterer systemet fr brukeren g infrmasjnen i systemet (presentasjn på ulike nivåer) NB husk at brukerne tenker med sin lgikk Evaluering av infrmasjnssystemer Systemet må virke i praksis riktig system (validering) g at systemet er riktig (verifisering) heuristisk testing (etter retningslinjer) realistisk testing med brukere INF050-ppsum-39 Institutt fr infrmatikk G. Skagestein/E. T. Bratteteig Arishlm/O. Hanseth 8. mai 2005 INF050-ppsum-40
Læringsmål Du har lært hva det innebærer å utvikle et infrmasjnssystem hvrdan man fastlegger systemets 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 Lykke til! INF050-ppsum-4