FINF4001 - Forelesning 9.9 Systemutvikling II metoder & teknikker Temaer: Rammeverk og tilnærmingsmåter Overblikk over Avison og Fitzgerald Objekt-orientert tilnærming Objekter, klasser, strukturer og handlinger Metoder og teknikker Litt om analysemetoder og teknikker, litt UML,.. Brukermedvirkning Prototyping, Litteratur Avison & Fitzgerald, Information Systems, Kap. 4-16 Dahlbom, B. and L. Mathiassen, kap. 4-6 Avison & Fitzgerald, IS development Et kort leseveiledning. Overblikk og temaer (kap. 1-9 ) Kap. 1-3 : Forstå IS, omgivelser og kontekst Introduksjon og kritikk av Livsyklusmodellen Kap. 4-9 Temaer i IS utvikling Organisatoriske temaer Modellering Prosess-, data, og objekt-modellering Programvareutvikling Konstruksjon, evolusjonær utvikling, prototyping vev-utvikling.. Menneskeperspektiver Brukere og brukerdeltaking, kunnskapsforvaltning mm Ekstern utvikling: kjøp av standardpakker, utskilling, mm FINF4001 H-08, Arild Jansen. AFIN/UiO 1 FINF4001 H-08, Arild Jansen. AFIN/UiO 2 Teknikker og verktøy (Kap 10-18) Holistiske analyseteknikker Rike bilder, rot-definisjoner.begrepsmodeller,.. Data (modellerings-) teknikker (ER,ORM...) Prosess (modellering-) teknikker: Dataflyt,.beslutningstabeller, strukturerte språk Objekt-orienterte modellering /teknikker OOA&D, UML & Use cases Organisatoriske og menneske teknikker Kritisk suksess-faktorer, risiko-analyse,..swot, Verktøy Web-verktøy, Database MS, Prosjektstyringsverktøy Integrerte pakker, f eks. Oracle MS, Designer 2000 Metodologier og rammeverk (kap. 19-25) Hva er en metodologi ( metodikk ) En samling av prosedyrer, metoder, teknikker og dokumentasjonsstøtte som skal bistå systemutviklere i å planlegge, gjennomføre, kontrollere og evaluere arbeidet... Den vil omfatte faser og retningslinjer for valg av teknikker og verktøy.. Prosess-orienterte (Strukturert analyse (SA), eks. JSP) Blandete metoder (eks SSADM, både SA og datamodellering) Objekt-orienterte metodologier Mathiassen OOA&D, RUP: Use cases &UML,... Rapid development metodologier : RAD, XP,.Web dev. Menneske og organisasjonsorienterte metologier Sosio-teknikk tilnærming/ethics, Soft System methodlogy,... FINF4001 H-08, Arild Jansen. AFIN/UiO 3 FINF4001 H-08, Arild Jansen. AFIN/UiO 4 teknikker Arild Jansen AFIN 1
Systemer, perspektiver og tenkemåter Computer context, kap. 3-9, 12. Systemer (Dahlbom og Mathiassen, kap. 3) Teknologi, data, informasjon og kunnskap Rasjonell versus romantisk tenkemåter Systemutvikling: utforming og realisering (development) Konstruksjon (spesifikasjonsstyrt), evolusjon (skrittvis, prøving og feiling), intervensjon (problem- og konflikt-orientert, provokasjoner og Sammenbrudd ) Systemkvalitet Dingser, kultur & estetikk og makt & politikk Fra filosofi til praksis Blant annet inspirert av Peter Checkland : Soft Systems Methodology (In System Thinking, Systems Practice) Men også den skandinavisk skole innen systemutvikling. FINF4001 H-08, Arild Jansen. AFIN/UiO 5 Fra krypteringsalgoritmer til Windows -menyer Bakgrunnen for Objekt-Orientert (O-O) tenkning Funksjonsorientert tenkning Utgangspkt er prosedyre(algoritmer) som basis i å løseen oppgave Eks. beregne brospenn, kalkulere krypteringsnøkkel, anvende en /transformert lovtekst. Behandlingsreglene er sentrale Y F(x) Y Dataorientert tenkning Utgangspkt er datastrukturen som styrer oppgaveløsningen Eks Folkeregister, kunderegister i bank, lønnsberegninger, samme opplysninger for alle enheter (objekter) Hendelses (transaksjons)orientert tenkning Utgangspunkt er hendelser som utløser handlinger, f eks. innlogging, legge inn data, bestilling, bekrefte, betale/signere,.. Moderne systemløsninger omfatter alle disse perspektiver, dvs. både prosedyrer, datastruktur og transaksjoner FINF4001 H-08, Arild Jansen. AFIN/UiO 6 Hva innebærer Objekt-orientert tenkning O-O programming is a method.. in which programs are organised a co-operative collection of objects, each of which represents an instance of some class, and whose classes are members of hierarchy of classes united via inheritance relationships (Avison and Fitzgerald) Object har en identitet, en tilstand og som framviser en adferd som avhenger av dens attributter Historia Simula1 (1965) Simula 67 (1968) (O. J.Dahl og K. Nygaard) Programmeringspråket Ada (1976) Utviklingen av SmallTalk og Apple Window-system (1978) C++ (1981 (?) O_O System analysis og Design (1990 - JAVA (1995) UML (1998+) FINF4001 H-08, Arild Jansen. AFIN/UiO 7 Hva er Objekt-orientert modellering i praksis O-O modellering: kombinere funksjons-, data-, og hendelsesorientering ved å kunne beskrive kompliserte datastrukturer, funksjoner og interaksjonsmønstre på en enhetlig måte Nøkkelbegreper : Objekter og klasser Generalisering og spesialisering (arv) Spesialiserte klasser arver egenskaper fra generelle Eks: Mennesker (menn kvinner, barn, voksne), bil (P-bil, lastebil, ) Helhet (Aggregering) og deler (komponenter) En overordnet klasse består av underordnede objekter Eks. Bil: karosseri, hjul, motor, Strukturer : Relasjoner mellom klasser og mellom klasser og objekter Eks. Eierforhold, Dynamikk: Hendelser /aktiviteter som endrer (tilstanden) av objektene Lagdeling, modularisering og innkapsling FINF4001 H-08, Arild Jansen. AFIN/UiO 8 teknikker Arild Jansen AFIN 2
Hvordan skrive en klasse (et klasseobjekt) Klassediagram Eksempel på ulike typer relasjoner: Kjøretøy Generalisering spesialisering Klassebetegnelse (eks; Bil, Student, Emne) Bil Motorisert sykkel Attributter (eks.: Nr, Navn, Adresse, Alder,.. P-bil L-bil Buss Moped Scooter Motorsykkel Operasjoner (funksjoner, tjenester,..) eks : Søke, bekrefte, melde_seg_på, Melde_seg_av Kjøretøy Helhet- deler (aggregering ) Hjul Ratt Motor Karosseri FINF4001 H-08, Arild Jansen. AFIN/UiO 9 FINF4001 H-08, Arild Jansen. AFIN/UiO 10 Objekt-Orientert (O-O) tilnærming i systemutvikling O-O tenkningen skal hjelpe oss til å beskrive fruktbare modeller av virkeligheten (problemområdet) O-O brukes både i analyse og design: Analyse: Forstå og modellere problemområdet Design : Utforme en helhetlig modell (arkitektur og komponenter) som basis for implementasjon Modellene kan framkomme ved analyse, f eks. ved en detaljering av overordnet problemstruktur til delstrukturer Ved mer konkrete handlinger F eks. utprøving av prototyper, eksperimenter, rollespill, scenarier,. FINF4001 H-08, Arild Jansen. AFIN/UiO 11 Tradisjonell SU fokuserer problemet men har lett for å glemme brukerne og brukernes organisasjon!. Virkeligheten Problemområdet: Formål/oppgave: Eks -Økonomistyring -Studentregistrering Modell av virkeligheten Bruker (Edb)-system Anvendelsesområdet: Del av brukerorganisasjonen Eksemple : Økonomiavd. eller brukerne (sjølbetjening) Studentenes egen hverdag FINF4001 H-08, Arild Jansen. AFIN/UiO 12 teknikker Arild Jansen AFIN 3
Hva Analysefasen hvordan få fram krav og beskrive representere dette på en god måte Formelle krav : Lover/regler, Rammebet. Funksjonelle krav Tekniske krav Bruksmessige krav Hvordan (metode/teknikker Analyse av skriftlige materiale (Lover, budsjetter, andre Dokumenter Bestemmes av formålet (problemområdet ) Bestemmes av teknisk plattform Bestemmes av anvendelsesområdet Rike bilder Scenarier Workshops /brukerseminarer (framtidsverksteder) Rollespill Spørreskjemaer, kartleggings- og analysemetoder, Strukturerte og mindre strukturerte intervjuer Bruksmønstre (use cases) Brukes til å bestemme funksjonalitet og spesielt hvordan aktører samhandler med systemet Aktør : Bruker eller andre systemer Bruksmønstre modellerer aktiviteter i anvendelsesområdet Det beskriver en avgrenset bruk av (en del av) det framtidige system. Bruksmønstre tillater oss å lage mange ulike scenarier for framtidig bruk Andre krav F eks. sikkerhet FINF4001 H-08, Arild Jansen. AFIN/UiO 13 FINF4001 H-08, Arild Jansen. AFIN/UiO 14 Use Cases System A Use Case for an Automatic Teller Machine Actor Use Case 1 Use Case 2 Automatic Teller Machine Withdraw cash Insert card Give PIN Select amount Remove card Take money Use Case 3 Customer Show recent transactions Show currency exchange rates FINF4001 H-08, Arild Jansen. AFIN/UiO 15 FINF4001 H-08, Arild Jansen. AFIN/UiO 16 teknikker Arild Jansen AFIN 4
Hva er bra med bruksmønstre og mindre bra Eksempel på rikt bilde : Gir overblikk, kan beskrive sammenhenger, relasjoner, rammer.. Beskriver forventet funksjonalitet av det framtidige system på et passende detaljerings-nivå og på en forståelig måte Godt egnet for å utarbeide kravspesifikasjoner Lett åforståav brukerne Utmerket grunnlag for testing og validering Men bruksmønstre kan låse grensesnitt mellom system og omgivelsene Viktig å skissere alternative bruksmønstre i ide/scenarie-fasen FINF4001 H-08, Arild Jansen. AFIN/UiO 17 FINF4001 H-08, Arild Jansen. AFIN/UiO 18 UML - The Unified Modelling Language UML er en standardisert grafisk notasjon for å støtte OO analyse og utforming grafiske symboler og enkel gramatikk (regler for bruk) Uavhengig av programmeringsspråk og utvikl. Metoder Adminstrert av OMG (obj. Man. Group) Aktører: Rumbaugh, Booch, Jacobson, Cod &Yourdan,... Bygger på grunnideene i SIMULA (Dahl&Nygård 1965..) Tilsammen 12 ulike diagrammer http://www.rational.com/uml/index.jsp?smsession=no http://www.omg.org/uml/ De 8 mest vanlige UML-diagrammene Bruks mønster diagram Klass og objekt diagram Komponent diagram Sekvens-diagram Aktivitetsdiagram Samarbeidsdiagram Tilstandsdiagram (utplasserings) Deployment diagram FINF4001 H-08, Arild Jansen. AFIN/UiO 19 FINF4001 H-08, Arild Jansen. AFIN/UiO 20 teknikker Arild Jansen AFIN 5
Forutsetninger UML-Øvelse Case: Student-web en Anta at det eksisterer 3 student-kategorier: (bachelor&masterstudent, enkeltemne-student og ferdig kandidat Bachelor- og masterstudenter er knyttet til kun ETT program, men kan ha hospitant-status i andre programmer Anta at alle emner er knyttet til et program Emner er på 10, 20 eller 30 stp. Studentene skal kunne melde seg av og på emner, og av eksamen. Nytt tema Hvilken rolle spiller brukerne i SU-prosessen og hvordan Spørsmål : Hva forstå dere med brukermedvirkning og hvordan bør det skje? Oppgave: Lag klasse/objekt-, komponent- og sekvensdiagram. FINF4001 H-08, Arild Jansen. AFIN/UiO 21 FINF4001 H-08, Arild Jansen. AFIN/UiO 22 Brukermedvirkning for hvem, hvor og hvordan Hvem: hvilke brukere skal involveres? Ledelse, interne brukere, eksterne (nettbaserte) brukere, andre Hvor: hvilke faser skal inngå? I analyse: lage kravspek, særlig brukergrensesnitt og design: Utforme struktur på nettside, skisse av funksjoner realisering: < Mindre aktuelt>?? Implementering : Utprøving og testing med mer sette Hvordan : Aktuelle metoder/teknikker Rike bilder, scenerier, Use-caser Ulike former for Prototyping.. Brukermedvirkning- viktige punkter Avklare formålet, involvere ledelsen Klarlegge hvem (de viktigste ) brukergrupper Målgruppe og interessent-analyse Sikre god/riktig brukerrepresentasjon Involvere representanter for ulike grupper Skille mellom storbrukere (daglige ) og sjeldne brukere Hva er de viktige kravene til brukskvalitet Hva er brukskvalitet for dette prosjekt :funksjoner, brukergrensesnitt, sikkerhet, stabilitet/svartid, Kvantifisere /definere nyttemål: brukerens nytteverdi Få fram alle behov for utvikling FINF4001 H-08, Arild Jansen. AFIN/UiO 23 FINF4001 H-08, Arild Jansen. AFIN/UiO 24 teknikker Arild Jansen AFIN 6
Brukermedvirkning og prototyping Noen sentrale spørsmål Hva er prototyping? Hvorfor bruker vi prototyping? Når bruker vi prototyping? Hvilke perspektiver/tilnærminger, metoder og teknikker kan omfatte prototyping? Hva er prototyping Prototyping er en systematisk teknikk for å oversette /prøve ut nye ideer og konkrete løsninger i praksis. Eks: bilmodell, flymodell, prøvebil,..testversjon av nettside,.. Ulike tilnærminger til prototyping Prototyping som teknikk Lage prototyper til å prøve ut brukergrensesnitt, tekniske løsninger osv. som IKKE inngår i den ferdige løsningen Tilsvarer bil- og flymodell Prototyping som metode i evolusjonær SU-proses (dvs. inkrementell (skrittvis) utvikl. og innføring Utvikle prototyper som en integrert del av en skrittvis SU-prosessen og vil utgjøre pilotsystem (er) FINF4001 H-08, Arild Jansen. AFIN/UiO 25 FINF4001 H-08, Arild Jansen. AFIN/UiO 26 Ulike typer prototyper A) Ekte (proper) prototyp : bruk og kast, f eks. skal framvise bestemte sider ved brukergrensesnitt eller funksjonelle egenskaper Ikke del av et ferdig system B) Pilot system : En tidlig versjon som kan bli brukt i anvendelsesområdet som en del av det framtidige system Eksperimentell og/eller iterativ SU [C) Verktøy (Arbeidsbenk ): Prøve ut tekniske spørsmål i utviklingsarbeidet)] Ulike mål ved prototyping Utforskende (eksplorerende) prototyping: avklare uklarheter i problemområdet (ekte prototyper) Eksperimenterende prototyping: teste ut ulike aspekter ved teknisk løsning eller f eks. brukergrensesnitt Evolusjonær prototyping : Inngår i en skrittvis SUprosess (pilot systemer ) Mens de 2 første målene utgjør prototyping en teknikk for å avklare, framskaffe informasjon osv, så innebærer det siste målet prototyping som metode FINF4001 H-08, Arild Jansen. AFIN/UiO 27 FINF4001 H-08, Arild Jansen. AFIN/UiO 28 teknikker Arild Jansen AFIN 7
Prototyping som metode i SU-prosessen Representerer et evolusjonært syn på SU-prosessen Kan lage tidlig virkende versjoner tidlig i prosessen Gjør det mulig å drive programutvikling basert på eksperimentering og erfaring Husk: Må skille mellom prototyping som teknikk og som metode i evolusjonær SU. For brukerne Hvorfor prototyping Brukerne kan prøve ut operative versjoner tidlig i prosessen Gir god basis forlæring Grunnlag for å planlegge/gjennomføre organisatoriske endringer For systemutviklere Relevante problemer kan avklares gjennom eksperimentering Prototyper representerer en felles basis for kommunikasjon mellom systemutviklere og brukere Utprøving av alternative tekniske løsninger FINF4001 H-08, Arild Jansen. AFIN/UiO 29 FINF4001 H-08, Arild Jansen. AFIN/UiO 30 Prototyping er ingen enkel løsning på vanskelige problemer Viktig å avklare mål og strategier Prototyping må planlegges Det tar (lenger) tid, både for utviklere og brukerorganisasjon Det stiller krav til brukerne (ansvarliggjøring ) Dere sa at det var dette dere ville ha Viktig å dokumenterer hva som blir besluttet Brukeren (etter 4. prototyp) : Nei, det er ikke slik jeg vil ha det Utvikler: det var dette du sa du ville ha på siste møte Spiralmodellen Et forsøk på å kombinere evolusjonær tankegang med de positive sider av konstruksjonstenkning Fokus på risiko og reduksjon av risiko Utvikling oppdelt i et sett av sykler (i spiralen) Målsetning (hva skal oppnås f.eks. funksjonalitet, ytelse, etc.) Alternative måter å realisere løsning for dette (utvikle, kjøpe, etc.) Identifisere begrensningene (kostnad, grensesnitt, etc.) FINF4001 H-08, Arild Jansen. AFIN/UiO 31 FINF4001 H-08, Arild Jansen. AFIN/UiO 32 teknikker Arild Jansen AFIN 8
Spiralmodellen- skjematisk skisse Fastlegge mål og rammer Analyse Vurdering Vurdere alternativer, risikovurderinger Risikoanalyser Krav utforming Prototyping Eksempel på strategi for valg mellom ulike SUmetoder Et konsulentselskap har plukket ut 4 kriterier for å velge mellom ulike SU-metoder: Funksjonalitet/brukervennlig, dvs. viktig med et god system (f eks. Skatt, SO, lånekassa Holde tidsfrist(er), dvs. frister er absolutt (OL, 17. mai,.. Feilfritt (lav feiltoleranse): (Styre/Kontrollsystemer) Kontrollere ressursforbruk (utv. Nettsteder) Dette knyttes opp mot ulike kontrakst-typer (fastpris timepris, eller blanding av disse Planlegge neste fase Utvikle neste produkt FINF4001 H-08, Arild Jansen. AFIN/UiO 33 FINF4001 H-08, Arild Jansen. AFIN/UiO 34 Prioriteringer og valg av tilnærmingsmåte I valget av tilnærmingsmåte og konkrete metoder er viktig å definere de viktigste faktorene, og denne prioriteringstabellen kan være nyttig Sammenheng kontraktstype og kostnadsforløp Disse kan illustreres slik: Kostnader = inntekter for konsulenten Prioritet Krav Oppfylle krav til Funksjonalitet Oppfylle Leveransetidspunkt (er) Lav Feiltoleranse Kontrollere Ressursforbruk Høyeste Middels høy Minimum FINF4001 H-08, Arild Jansen. AFIN/UiO 35 Leveransetidspunkt Timepris : PS: fast + timep Fastpris Tid FINF4001 H-08, Arild Jansen. AFIN/UiO 36 teknikker Arild Jansen AFIN 9
Sammenheng kontraktstype og utviklingsstrategi 1. Fastpris: Sett fra leverandørens/konsulentens side er dette en god betalingsform når usikkerhet knyttet til funksjonalitet er liten. Fokus på å styre leveranse og ressursbruk: Prioriteter: Leveransetpkt: H, Ressurser:M, Funksj.& feil: L Fossefallmetoden vil ofte kunne være en egnet metode 2. Timepris: Stor usikkerhet knyttet til funksjonalitet/brukergrensesnitt (høy prioritet ), feil: G. Iterativ SU-metode (prototyping) best egnet 3 PS : Her vil usikkerheten kunne være knyttet til flere faktorer, og utfordringen ligger i å avdekke de kritiske risiko-områdene. Prioritetene må fastlegges for hvert prosjekt. Spiralmodellen er en egnet tilnærmingsmåte. Aktuelle metoder kan være MS Foundation, RUP, XP. Hvorfor ulike metodologier Målet for et SU-prosjekt vil være svært forskjellig Konstruksjonsprosess, OU-prosess, ledelsesstyrt (politisk) prosess Egenskaper ved det ferdige system er forskjellig Eks. database, vev-tjeneste, transaksonssystem Ulike rammebetingelsene rundt utvikling av systemet Tekniske, organisatoriske, økonomiske, juridiske,.. SU-prosjektet organiseres på ulike måter Top-down, Bottom-up, spesialist bruker styrt,.. FINF4001 H-08, Arild Jansen. AFIN/UiO 37 FINF4001 H-08, Arild Jansen. AFIN/UiO 38 Ulike strategier i SU-arbeidet Hva er resultat: Et produkt eller en prosess? Overordnet strategi og metode: Analytisk (topp-styrt/) vs Eksperimentell/Iterativ (prototyping) Ekspertdominert vs brukerdrevet Ensidig teknisk SU vs sosioteknisk SU Strategi for realisering Egenutvikling vs kjøp av standardsystem Leveranse/innføringsform: Revolusjonær (alt på en gang) vs evolusjonær/inkrementell (skrittvis ) Eksempel: Utvikling av Regjeringen.no Hvorfor: Politisk profilering, prioritere målgrupper Faggrupper: Ulike brukere Utviklere Interaksjonsdesigner & grafisk designee Infoavdelingen Netteredaktører Publisere Driftsstab: (DSS) 3 løp : Teknologi Organisering og innhold Løsningsutvikling FINF4001 H-08, Arild Jansen. AFIN/UiO 39 FINF4001 H-08, Arild Jansen. AFIN/UiO 40 teknikker Arild Jansen AFIN 10