350 likes | 573 Views
FINF4001 - Forelesning 2. 9 2004 Systemutvikling II – metoder & teknikker. Temaer: Utvikling av IS – Rammeverk og tilnærmingsmåter Overblikk over Avison og Fitzgerald Metoder og teknikker Litt om analysemetoder og teknikker Prototyping, litt UML,.. Litteratur
E N D
FINF4001 - Forelesning 2. 9 2004 Systemutvikling II – metoder & teknikker Temaer: Utvikling av IS – Rammeverk og tilnærmingsmåter Overblikk over Avison og Fitzgerald Metoder og teknikker Litt om analysemetoder og teknikker Prototyping, litt UML,.. Litteratur Avison & Fitzgerald, Information Systems, Kap. 4-16 Boehm: A Spiral Model of Software Development and Enhancement, Blomberg, J. et al: Ethnographic Field Methods and Their Relations to design. FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Avison & Fitzgerald, IS development Et kort leseveiledning • 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 -04, 2.9 Arild Jansen. AFIN/UiO
Kap 10-18 Teknikker og verktøy • ’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 FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Utviklingsmodeller • Representerer ulike tilnærminger til systemutvikling • Gjenspeiler også evolusjon av programvareutvikling • Hovedklasser av utviklingsmodeller er: • Kod og fiks • Stegvise utviklingsmodeller • Fossefall/vannfallsmodellen (“waterfall”) • Evolusjonære • Transformasjonsmodeller • Spiralmodeller FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Fossefalls’modellen’ er utilstrekkelig (men fortsatt like aktuell !) • Problemet er ikke veldefinert (upresist) • Ønsker og behov er uklare/ikke konsistente • Rammer og begrensninger er ikke klarlagt • Verden er i forandring • Brukernes ønsker endrer seg • Omgivelsene endrer seg • Tekniske forhold endrer seg Alternative modeller er nødvendig • Evolusjonær systemutvikling • Eksperimentell systemutvikling • Ekstrem programmering • ....... FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Utviklingsmodeller (forts.) • Evolusjonsmodeller: løsningen blir gradvis utviklet basert på erfaring • Iterativ systemutvikling: utvikling der omfanget gradvis økes og fasene gjentas • Prototyping: en prototyp utvikles som til slutt blir systemet • Transformasjonsmodeller: antar at høy nivås spesifikasjoner kan automatisk bli transformert til spesifikasjoner på lavere nivå (fra formelle spesifikasjoner til programvare) FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
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 -04, 2.9 Arild Jansen. AFIN/UiO
Spiralmodellen- skjematisk skisse Fastlegge mål og rammer Vurdere alternativer, risikovurderinger Risikoanalyser Analyse Prototyping Krav utforming Vurdering Planlegge neste fase Utvikle neste produkt FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Metodologier og rammeverk (kap. 19-25) Hva er en metodologi • 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 -04, 2.9 Arild Jansen. AFIN/UiO
Systemutviklingsmetoder og teknikker(Utviklingsmetodikker) • Hva er en SU-metodikk • Aktivitetsliste • Aktivitetsrekkefølge • Spesifikasjon av hva som skal leveres • Programmoduler, • Forslag til milepæler • Anbefalte teknikker • Sjekklister • Rutiner for kvalitetssikring • Verktøystøtte FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Noen ulike utviklingsmetodologier • Riccardi: Structured approach to DB design • Analyse&kravspek. -> Konseptuelt design ->logisk design ->Fysisk design • SASD (Structurert analyse og design) • Analyse& kravspek-> design -> Realisering • RUP & UML • Use Cases & risk analysis -> O-analyse –> Arktek. design … • OOA&D (Mathiassen et al) • Problemanalyse& applik. Analyse-> Arkitektonisk design .. • …… FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
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? FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Hva er prototyping • Prototyping er en systematisk teknikk for å ’oversette’ og prøve ut nye ideer og begreper i praksis • A) Ekte (proper) prototyp : bruk og kast, f eks. skal framvise bestemte sider ved brukergrensesnitt eller funksjonelle egenskaper • B) Smørebrett (Arbeidsbenk, verktøy) Prøve ut tekniske spørsmål i utviklingsarbeidet • C) Pilot system : En tidlig versjon som kan bli brukt i anvendelsesområdet som en del av det framtidige system FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Hvorfor prototyping For brukerne • 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 -04, 2.9 Arild Jansen. AFIN/UiO
Prototyping som tilnærmingsmåte i SU-arbeidet • 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 • NB: Må skille mellom prototyping som teknikk og som metode i evolusjonær SU. FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
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 ( breadboard) • Evolusjonær prototyping : Inngår i en skrittvis SU-prosess (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 -04, 2.9 Arild Jansen. AFIN/UiO
Forhold mellom prototyp og det ferdige system • To alternativer • 1. Prototypen er en del av spesifikasjonen av det ferdige system (ekte prototype eller breadboard) • for eks. å vise funksjonalitet eller brykergrensesnitt • 2. Prototyper blir gradvis utviklet ogforbedret til å produsere demn framtidige systemløsningen FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
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 FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Prioriteringer og valg av tilnærmingsmåte FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Sammenheng kontraktstype og utviklingsstrategi FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Analysemetoder • Metoder og teknikker for å få innsikt i problemet og anvendelsesområder. • Skal bidra til å utarbeide en kravspesifikasjon (men ikke bare det • Formaliserte og mindre formaliserte metoder • Spørreskjemaer, kartleggings- og analysemetoder, • Analyse av skriftlige materiale • Strukturerte og mindre strukturerte intervjuer • Observasjoner , • Etnografiske metoder • Scenarier • Bruksmønstre – (use cases ) FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Modeller og virkeligheten . (Edb)-system Bruker Modell av virkeligheten Virkeligheten Problemområdet: Formål/oppgave: Eks - Informasjonsformidling, beslutningsstøtte, støtte for samhandling,.. Anvendelsesområdet: Del av brukerorganisasjonen Eks: Saksbehandlere eller borgerne FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Analyse av problemområdet • Kartlegging og studier av skriftlige kilder • Intervjuer og kartleggingsarbeid ved behov • Formelle teknikker for analyse av problem/oppgavebeskrivelser, f eks. rettsregler • Andre spesifikasjonsteknikker • Prototyping FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Analysefasen – alternative metoder og teknikker • Rike bilder – basert på ulike metoder: besøkobservasjon, intervjuer, dokumentstudier,.. • Use-cases • Scenarier • Ulike former for prototyping • Etnografiske metoder • ..... FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Eksempel på rikt bilde FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
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/ FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
De 8 mest vanlige UML-diagrammene • Classe/objekt diagram • Komponent diagram • (utplasserings) Deployment diagram • Bruks mønster diagram • Sekvens-diagram • Aktivitetsdiagram • Samarbeidsdiagram • Tilstandsdiagram FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
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 anvedelsesområdet • Det beskriver en avgrenset bruk av (en del av) det framtidige system. • Bruksmønstre tillater oss å lage mange ulike scenarier for framtidig bruk FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Use Cases System Use Case 1 Use Case 2 Actor Use Case 3 FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Sammenheng UML-diagranner og bruksområde Use-Case diagram Class/object diagram Sequence diagram Collaboration diagram State diagram Activity diagram Component diagram Deployment diagram Use- Case view Logi- cal view Compo- nent view Concur- rency view Deploy- ment view FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Hva er bra med bruksmønstre – og mindre bra • Beskriver forventet funksjonalitet av det framtidige system på et passende detaljerings-nivå og på en forståelig • 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 • Stimulerer kanskje ikke til å nye arbiedsformer ? FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Etnografiske metoder • Etnografi : systematiske studier av andre kulturer ( i deres egne omgivelser) • Etnografisk metode i SU-arbeidet : Skal gi best mulig forståelse av arbeidsaktiviteter. • Metode: Observasjon, uformelle intervjuer, deltakelse, videobruk etc. • Fokus: • Studere arbeidstaker på egne premisser (over tid) • Vekt på naturlige aktiviteter som inngår i helheten • Forskjeller mellom idealer og reell adferd • Formelle aspekter • Oppfatninger og holdninger av arbeidet • Det faktiske arbeidet FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Problemer ved etnografiske og andre kartleggingsmetoder • Drukner vi i data om dages situasjon • Er det problemområdet eller anvendelsesområdet (brukerorganisasjonen) vi beskriver • Når og hvordan skal vi trekke grenser mellom (data)systemet og omgivelsene • Eks: Vi skal lage et nettsted for en kommune. • Hva slags metoder tro dere er fruktbare ? FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
Konsekvenser av systemtenkningen i systemutviklingsarbeidet • Vi må fastlegge systemets mål og rammer • Dette kan innebære konfliktfyllte prioriteringer:, eks: Effektivitet <-> sikkerhet <->funksjonalitet <-> brukervennlighet <->fleksibilitet. • Vi må finne en hensiktsmessig avgrensning av systemet • Slike grenser kan (må) endre seg over tid • Vi må klarlegge hvilke deler av omverdenen som er særlig relevant for systemet i bruk • Organisasjonsmessige forhold, hos/ved ’kundene’ , i samfunnet ellers FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO
IS-strategier Kort oppsummering • Behov for ulike tilnærmingsmåter • Software engineering (SE) og Ssoio-teknisk (SO) er komplementære og ikke alterntiver • Utviklingsmetodikker (rammeverk for SU-arbeidet) • Veileder i SU-arbeidet : angir faser og arbeidsformer mm • Viktig for kommunikasjon og organisering av prosjektet • Må brukes med fornuft, tilpasses avhengig av problemtype, betingelser, kompetanse, kultur osv FINF4001 H -04, 2.9 Arild Jansen. AFIN/UiO