INF3221/4221 Problemdefinering, krav og modellering Introduktion Christina Mörtberg, Informationssystem gruppen, IFI 1 (original Arild Jansen IN265 om ej annat anges)
Kursorganisering: Forelesere: Christina Mörtberg, Dagny Stuedahl,, Pål Sørgaard, Sundeep Sahay, Anders Kluge Gruppelærer: Magnus Fuglerud, Ram Yoga, Marte Ødegaard E-post: chrismmo at ifi.uio.no magnujf at ifi.uio.no ram.yoga at student.jus.uio.no marteod at student.matnat.uio.no Elektronisk informasjon: http://www.uio.no/studier/emner/matnat/ifi/inf3221/v05/ 2
Konkret vil emnet ta opp: Problemdefinering og krav: forholdet mellom beskrivelse og virkelighet Systembeskrivelse, modellering og overordnet funksjonelt design Ulike teknikker for analyse og design med brukere Ulike strategier for systemutvikling 3
Hva lærer du? Etter emnet skal studentene kunne: Kunne analysere informasjonssystemer i realistiske omgivelser og kunne bruke undersøkelsesteknikker som intervju og observasjon Ha oversikt over forskjellige tilnærmingsmåter og perspektiver i systemutviklingsarbeidet, og kunne vurdere ulike metoder og teknikker Kjenne til teknikker som er egnet til å avklare formål og ønsket resultat av en systemutviklingsprosess (inkludert definisjon av problemer og krav) Kjenne til ulike former for systembeskrivelse og prototyping Kunne anvende objekt-orientert tilnærming i analyse og design 4
Undervisningsform 2 timer forelesning og 2 timer gruppeøvelser per uke prosjektoppgave Prosjektoppgaven skal gjøres i kontakt med ekstern oppdragsgiver. Koble teori og praksis med basis i reelle problemer Oppgaven går ut på å lage en forundersøkelse, deretter en objektorientert analyse og til slutt objektorientert design ved hjelp av teknikkene som er beskrevet i kompendium og OOA&D. Se: http://www.uio.no/studier/emner/matnat/ifi/inf3221/v05/ 5
Vurderingsform Evalueringen baseres på en større prosjektoppgave (50%) 3 timers skriftlig eksamen (50%). Bokstavkarakter (A - F) 6
Prosjektoppgaven obligatorisk oppgave Skaffe praktisk erfaring med virkelig problem og organisasjon Identifisere problem og krav Få trening i å bruke verktøy Rike bilder for å fange mangfold i problemområdet Fastlegge strategi Analyse av problemområdet Analyse av anvendelsesområdet Spesifikasjon av design Bruk kompendium og OOA&D-boka som veileder i arbeidet, og D & M som bakgrunn for å se flere perspektiver og innfallsvinkler 7
Obligatorisk oppgave Plan -milepæler uke 4 Inndeling i grupper uke 5 Etablere prosjekter - valg av organisasjon 11.3 Foranalyse - Del I rapport presentasjon for "brukere" 15.4 Analyse - Del II rapport presentasjon for "brukere" 6.5 Design - Del III rapport refleksjon prototype 8
Forundersøkelse prosjekt IT prosjekt Rapport Systemutviklings prosjekt Anbud Avtale MUST Implementerings prosjekt 9 Bødker et al 2000, 2004
Visjoner om framtidig situasjon IT-forundersøkelse Forundersøkelse prosjekt Evaluering Rapport Nåværende situasjon Anbud Framtidig situasjon Avtale MUST Implementerings prosjekt 10 Bødker et al 2000, Tone 2004 Bratteteig
Fyre typer av resurser - MUST Begreper visjoner faser IT-bruk etc. Prinsipper om 1 en samlet versjon 2 virkelig brukermedvirking 3 arbeidspraksis skal oppleves/erfares 4 forankre IT forundersokelse 11 Teknikker og verktøy intervjue observasjon scenarier workshops etc Organisering i 4 faser 1 forberedelse 2 analyse av strategier 3 analyse av organisasjon/område 4 visjonsutvikling Bødker et al 2000, 2004
Hva er systemutvikling 1? Systemutvikling (SU): alle aktiviteter knyttet til analyse, utforming og innføring av IT-baserte informasjonssystemer i virksomheter - Lage både gode og nyttige IS - Fokus på alle forhold som ansees viktige - Både tekniske, organisatoriske, sosiale, kulturelle, som alle henger sammen - Usikkerhet, målkonflikter, interessekonflikter, ikke-rasjonell adferd - Anvende teorier og tilpasse metoder til lokale forhold 12
Hva er systemutvikling 2? Reflection Action Visions Systems development Performance Design Realization Present reality Analysis Visions Management Planning Regulation Productoriented Processoriented Present reality Evaluation Andersen et al (1986): Professional Systems Development p.43 (46) 13
Modell En forenklet avbildning av utvalgte deler av virkeligheten, med en bestemt hensikt (ut fra en gitt referanseramme) - F eks. en tegning, et kart, en husmodell, en datamodell, Et informasjonssystem (IS) baserer seg på en forenklet modell av virkeligheten 14
Metodologi, metode, teknikk og verktøy Metodologi: En samling av metoder/prosedyrer, teknikker, verktøy og dokumentasjon som understøtter alle fasene en SU-prosess (fra analyse til innføring, opplæring, endre organisasjon) F eks. OOA&D med UML, STRA NB: Livssyklus modellen i seg sjøl er ikke en metodologi En metode: En framgangsmåte (prosedyre) for å nå et resultat -SU-metode: Aktivitetsliste, retningslinjer, sjekklister, for å gjennomføre en eller flere faser i SU-forløpet - Eks: Datamodellering, fossefallsmetoder, spiralmodellen, inkrementelle og iterative metoder, OO-metoder, testmetoder,.. Teknikk: Konkret oppskrift for å utføre en aktivitet, - Eks: intervjuer, observasjoner, tenke-høyt, scenarier, rike bilder, use-cases, prototyping,. 15
Hva er en systemutviklingsmetode? Veileder i SU-arbeidet - En fornuftig samling av hva & hvordan - ikke en kokebok eller fasitsvar ingen tvangstrøye - Viktig for kommunikasjon og organisering av prosjektet Må brukes med fornuft, tilpasses avhengig av - Problemets type og betingelser - Personalets kompetanse - Kulturelle og historiske forhold - Improvisasjon forutsetter at en kan grunnlaget 16
Noen analyse og design-metoder Funksjonsorientering (FO) - Beskriver hva som skal gjøres: funksjoner, beslutninger,.. - Eks Lønns-, regnskaps-, beslutningsstøtte,.. Dataorientering (DO) - Beskriver hvilke data systemet skal ha - Eks personregister, bilregister, lagersystem Hendelsesorientert (HE) - Hvordan reagerer på viktige begivenheter - Eks transaksjonssystemer, styringssystem Objektorientering - Objekter som grunnlag for innkapsling av data og operasjone på disse - Beskriver hvilke data systemet skal bearbeide - Kombinerer særlig FO og DO på en elegant måte 17
Hva er et system? Noe forslag: - En samling av elementer og relasjonene mellom dem - Et sett av komponenter som interagerer på bestemte måter for å utføre en oppgave (nervesystem, fordøyelsen) - Et ordnet sett av fakta, prinsipper, klassifikasjon (Linnee s plantesystem, det periodiske system,..) - Et struktur av prosedyrer & metoder (kvalitetssikringssyst.) - Noe som kan atskilles fra sine omgivelser (økosystem,.. Systemer er en abstraksjon ut fra en bestemt hensikt Systemer kan betraktes utenfra eller innenfra 18
Systemtenkning Dahlbom & Mathiassen, kap. 3 Tre typer systemtenkning Hard Systems: klare og sanne representasjoner av verden Soft Systems: systemene er i våre hoder, det er flere og like relevante systembetraktninger å velge mellom Dialektisk systemtenkning: systemer er definert av iboende motsigelser 19
Hard Systems antakelser Virkeligheten er selv et velordnet, stabilt system Systemutviklernes rolle er å avbilde verden sannferdig, konsistent og fullstendig Systemutviklerne studerer verden for å utlede krav Språket er en avbilding av verden, vi må bruke presist, helst formelt, språk (jfr. matematisk informatikk) Hard Systems vurderinger Kraftfull tankemåte Våre beskrivelser er svært fattige Idéen om at det finnes en sann representasjon blandes sammen med forestillingen om at vår representasjon er den sanne 20
Soft Systems Vi velger å betrakte noe som et system Vi kan anlegge ulike perspektiver og vil ut fra det komme med ulike Systembetraktninger Fortolkning er viktig, prøve å forstå ulike tankemåter. Det er viktig med flere rike bilder og systemdefinisjoner De ulike betraktningsmåtene skal bringes sammen Soft Systems antakelser Design oppfattes som læring Forskjeller mellom ulike oppfattelser kan håndteres gjennom en læreprosess hvor de ulike synene beskrives og defineres Systemutvikleren blir prosesskonsulent Se Peter Checkland: Soft Systems Methodology 21
Dialektikk Ulike perspektiver ses på som uttrykk for konflikter og motsigelser, f.eks. basert på interessekonflikter og maktkamp Konflikter/motsigelser som skyldes misforståelser og uvitenhet kan løses med kommunikasjon og diskusjon Konflikter/motsigelser som skyldes interessemotsetninger kan ikke det, de må løses ved forhandlinger, maktkamp eller revolusjon Det antas normalt at det er en hovedmotsigelse som dominerer bildet Det forhandles og inngås kompromisser Dialektikk antakelser Design er handling Systemutvikleren agerer som intervensjonist og forandringsagelser 22 Hegel, Marx
Systemer, perspektiver og tenkemåter datorer, data, informasjon rasjonell versus romantisk tenkemåter kunnskap Systemer (Dahlbom og Mathiassen, kap. 1-3) 23
To verdensanskuelser - det rasjonelle versus det romantiske Rasjonalisme - arven fra Aristoteles, Galileo, Descartes, Bacon, Newton, Leibniz,.. Utviklingen av naturvitenskapen Skille mellom en ytre (sann) og indre (sanset) verden Sann kunnskap er basert vitenskapelig representasjon av virkeligheten (formalisering) Tenkning er symbolmanipulasjon Romatikken arven fra Socrates, Platon, Data blir til informasjon gjennom fortolkning basert på forståelse av bakgrunn og kontekst Kunnskap utvikles både fra teori og praksis Noen begreper kan ikke defineres, men forklares ved eksempler Vekt på kultur, kunst, følelser 24
Datamaskinen - kalkulasjon eller informasjonsbehandling Utgangspunktet er Descartes m fl. mekanistisk systemforståelse - Klar, eksakt og sann representasjon av verden - Verden er stabil - Reduksjonisme, gjentagbarhet bevis- /forkastbarhet - Verden oppfattes som en maskin f eks. som byråkratier med formell arbeidsdeling og styring Utgangspunkt i organisk, dialektisk forståelse av virkeligheten - Verden må forstås som helheter kan bare beskrives ved fortolkning - Virkeligheten er i stadig forand-ring - uforutsigbar- kaotisk - Organisasjoner koordineres ved uformell, direkte interaksjon mellom medlemmene - ikke skille mellom styring og utføring Den logiske, analytisk tenkende maskin (Babbage, Turing, von Newman Datamaskinen som medium for menneskelig samhandling 25
Organisasjonen : Maskin eller kultur Arbeidsdeling og koordinering Byråkratiet Nøyaktig beskrivelse av arbeidsoppgaver Organisasjon som optimal algoritme Stabile omgivelser Rasjonalitet og effektivitet Entydige mål Forutsigbarhet Lav usikkerhet Vertikale informasjonssystemer Organismen Lever i dynamisk samspill med omgivelser i stadig endring Forandring skaper usikkerhet Liten grad av formalisering Sjølstendige, men samspillende enheter ( ansvar) Tette nettverk- uformelle strukturer Horisontale nettverk: E_post, CSCW,.. 26
Kunnskapssyn Kunnskap som mekaniske helheter Deler kan tas ut av helheten uten at dennes karakter endres Fenomener kan defineres formelt Kunnskap som organiske helheter Helheten utgjør mer en delene Fenomener forståes gjennom sosiale prosesser 27
3 syn på systemutvikling (systemtenkning) Konstruksjon Evolusjon Intervensjon Dahlbom og Mathiassen, kap. 4-6 28
Konstruksjon Stabil verden, kompleksitet men forutsigbar Problemet er kjent Rasjonalitet og optimalisering Evolusjon Virkelig verden preget av usikkerhet Problemet er uklare problembeskrivelse, utilstrekkelig beskrevet Begrenset rasjonalitet, søk etter tilfredstillende løsning gjennom eksperimentering Intervensjon Virkelig verden er preget av forandring og konflikter Problemet er åpen, ikke definert Søkeådefinereproblemet Utviklingsarbeidet er en integrert del av løpende aktiviteter 29
Konstruksjon (av programvarer) Skrittvise forfining (Stepwise refinement) Start med en gitt problemformulering Bryt ned i mindre og mindre delproblemer Fortsett inntil delproblemene er trivielle Forutsetninger Veldefinert problem Stabilt problem Lukket problemstilling Full kunnskap om problemet Problemløseren har perfekt rasjonalitet Ofte er problemene enkle, men betydelige integrasjonsbehov Hva gjør vi når brukeren midtveis sier«jeg vil ha det sånn i stedet»? 30
Konstruksjonsvirksomhet er et godt eksempel på en del av håndverket vårt, på hvordan vi kan jobbe i de deler av systemutvikling som har disse egenskapene Eksempel på bruk av konstruksjon som metode: Operativsystem, Kommunikasjon, matematiske modeller,... 31
Evolusjon: hva er det? Eksperimentering og læring Trinnvis utvikling (prøv og feil) Konkurranse og andre elimineringsmekanismer («natural selection», «survival of the fittest», Darwin og ikke Linné) Utvikle og teste ut alternativer er viktige! Fokus på usikkerhet (ikke kompleksitet) Manglende kunnskap : nødvendig med læring Ustabile omgivelser Endring - forståelse av organisk tilnæring til ledelse Systemutvikling er en vitenskapelig utforskning av alternative løsninger, ikke et tilfeldig utvalg 32
The spiral model (Boehm 1988) Decide on goals and frameworks Analysis Risk Risk analysis Evaluate alternatives Risk evaluations Prototyping Evaluation, Planning Plan next phase Requirements Design Realization Simulations Tests Tests Develop next level product 33 Tone Bratteteig
Intervensjon Sammenheng Intervensjonssyn preget av konfliktperspektiv (dialektikk) fokus på problemdefinering opportunistisk atferd (rasjonalitet) problemet antas åpent Design is action 34
Intervensjon Verden er kaotisk - problemet er ikke gitt => Prøv å forstå - finn en hensiktsmessig definisjon av problemet Ofte vanskelig å finne ut hva brukerne egentlig gjør - gjør en liten endring som skaper nye konflikter og dermed bringer saker til overflaten 35 => Utprøving av prototyp, enkelt system En endring skaper en ny situasjon - opprinnelige muligheter vil være lukket Konflikter - etabler allianser, søk kompromisser Teknologien vil kunne være en viktige aktør - både konfliktskaper og løser
Hard, myk og dialektisk systemtenkning OOA &D? Konstruksjon: Problemområdet er veldefinert, applikasjonsområdet er stabilt Top-down tilnærming kan være hensiktsmessig Evolusjon Flere problemer med ulike oppfatninger av problemområdet, aplikasjonsområdet i endring, Rike bilder og prototyping for å prøve ut alternativer Intervensjon Problemområdet ikke definert, applikasjonsområdet preget av konflikter Rike bilder får å identifisere konfliktområder, prototyping med vekt på virkelige situasjoner 36