240 likes | 488 Views
Introduktion til Systemudvikling og organisatorisk IT (II) Peter Carstensen. Dagsorden. Systemudvikling • Proces-produkt • Karakteristika ved software-produkter • Generelle begreber for at forstå systemudvikling som en proces
E N D
Introduktion tilSystemudvikling og organisatorisk IT (II) Peter Carstensen
Dagsorden Systemudvikling • Proces-produkt • Karakteristika ved software-produkter • Generelle begreber for at forstå systemudvikling som en proces • Procesmodeller og metodiske tilgange Organisatoriske aspekter af IT • IT som løftestang for forandring • Interessent-analyser
Systemudvikling Krav og behov Konceptuelt design Hovedbevægelsesretning Moduldesign Programmering og test Integration Test og afprøvning Aflevering Vedligeholdelse Faser ifølge Sommerville: 1) Requirements definition 2) System and software design 3) Implementation and unit-test 4) Integration and system test 5) Operation and maintenance.
Proces - produkt Proces Produkt Kvalitetskrav: oftest til produktet Specifikationer: for og til produktet Styringsmekanismer: på processen Ledelse: af processen Systemudvikling: Organisering af processen så produkt bliver godt !
Produktet - hvad er software? ”algorithms + data structures = programs” (Wirth) Iflg. Pressmann, Sommerville, (og mange andre): - instruktioner - data strukturer - dokumentation Applikation - et stykke software som understøtter et sæt opgaver = program(mer) = kode + kodebiblioteker + runtime-system + operativsystem + databaser og DBMS’er + netværk + kommunikationssoftware + eksterne enheder + drivere mv. + dokumentation etc. etc. etc.
Produktet - hvad er der udover software? Applikationen (alt inklusive) ..og.. - Dokumentation - Undervisning samt…….. - Nye/ændrede begreber - Nye kommunikations- og interaktionsformer - Nye opgaver og forretningsområder - Organisationsændringer - Krav om nye kompetencer etc. etc. dvs.: Forandring!!
Fra sidst:Udfordringer og problemer Systemudviklingen skal……. • Designe på grundlag af utilstrækkelig forståelse af problem og behov • Designe til nogen ”vi ikke ved hvem er” • Skyde efter levende mål – styre en proces som først forstås undervejs • Tilfredsstille en hastigt stigende efterspørgsel • Forholde sig til at platformene udvikler sig eksplosivt • Vedligeholde store mængder af dårligt programmel • Etablere og vedligeholde centrale infrastrukturer • Håndtere og bygge videre på strukturer, som ingen forstår og kan forklare (Naur: ”Hver gang en programmør forsvinder ’dør’ noget af koden”) • Bygge på strukturer, som ikke har et standardiseret format og fundament • Afhjælpe at aktørerne ”kun er mennesker” • Rationelt forklare en proces som langt hen ad vejen er ”politisk” / økonomisk • Håndtere en verden, hvor ”runing code is king” - selvom det måske ikke er ønskværdigt
Systemudvikling - elementer i termer af funktioner Konstruktion (produktrettet): Ledelse og styring (procesrettet): Tværgående (nødvendigheder): • Analyse • Design • Realisering - konstruktion - implementering i organisation/brugerkreds • Vurdering • Planlægning • Regulering • Beslutning • Kommunikation • Socialisering Bemærk: Dette vil i reglen ikke være de termer der bruges i forskellige ”metoder”, men de fleste metoder kan forstås i disse termer.
Håndtering af kompleksiteten:Systems life cycle Et typisk life cycle forløb 1 - Udvikling 2 - Vedligehold -rettelser og tilpasning 3 - Vedligehold - udvidelser og forbedringer 1) Information modelling 2) Requirements analysis 3) Design 4) Code generation 5) Testing 1) Information modelling 2) Requirements analysis 3) Design 4) Code generation 5) Testing 1) Information modelling 2) Requirements analysis 3) Design 4) Code generation 5) Testing
Håndtering af kompleksiteten: Forskellige tilgange / procesmodeller / metoder • Vandfaldsmodellen • Evolutionær udvikling • Komponentbaseret udvikling • Inkrementel udvikling • Extreme programming (XP) • Spiralmodellen + 117 varianter og metoder
Vandfaldsmodellen Styrker: - Klart forløb - Fremdrift delvist målbar - Giver rimelig sammen- hængende systemer Problemer: - ”Der er altid iteration” - Kræver krav og overblik up front - Længe før der er noget synligt - Kan give forsinkelser imellem processerne
Komponentbaseret - genbrug • Styrker: • - Genbrug • Hurtige produkter • Uklart hvordan komponentner virker • Mere og mere almindeligt • Problemer: • - Uklart hvordan komponenter virker • Kræver overblik og robust arkitektur
Inkrementel udvikling • Styrker: • - Kan overskues daklumperne er små • Hurtige første resultater • Problemer: • - Kernefunktionalitet skalkunne identificeres • Kræver kunde/bruger forstår at tingene kommer løbende
Spiralmodellen – en teoretisk tilgang • Spiralmodellen’s fokus: • Mål • Begrænsninger • Alternativer • Risici • Risici - løsninger • Planlæg næste fase • ”Commitment” Spiralmodellen iflg Boehm: Runde 0: ”Feasibility study” Runde 1: Konceptudvikling Runde 2: Krav specification Runde 3: Preliminært design Runde 4: Detaljeret design
Tilgange til systemudvikling - metoder Idé: - Tilbyde et sæt begreber, notationer, teknikker, principper og retningslinier - Give et værktøj til den uøvede og støtte den øvede - Sikre ensartethed, styrbarhed, og fælles sprog • Nogle klassiske tilgange: • Objektorienterede metoder og teknikker • Contextual design • Funktionsmodellering • Lauesens virtuelle vindues metode • Struktureret analyse og design (DFD, E/R og minispecs) • Forskellige former for prototyping • RUP • ......... De centrale aktiviteter (iflg Sommerville): - Specifikation - Design og implementering - Validering - Evolution / vedligeholdelse
Opgave 3 – i grupper • Du har fået til opgave at udvikle IT-systemer sammen med 3 af dine studievennertil den tenisklub, du er medlem af. De skal bruge noget kontingentstyring, banereservation, en blogfacilitet til alt-og-intet fra klubben, samt noglefeatures som kan forbedre det sociale liv i klubben. De forestiller sig at dele af det • er web-baseret og at de administrative applikationer kører lokalt på en enkelt PC.De har ikke valgt OS, PC-type etc. endnu. • Overvej: • - hvilke dele af dette vil du gribe an som et vandfaldsforløb? – hvorfor? • hvilke dele vil du udvikle vha iteration og vha. komponenter? – hvorfor? • hvordan vil du organisere de iterative forløb (hvis der er nogen)? • Klubben håber at kunne tjene penge på at sælge programmerne til andresportsklubber på længere sigt. Overvej hvad det betyder for måden I skal opdele komponenterne på. • Ups!: Lad være med at gå i teknisk løsningsmode! Opgaven går ud på at overveje tilgang til opgaven – ikke løsningen
Organisatoriske aspekter af IT • IT som løftestang for forandring • Interessent-analyser
IT som forandringsprojekter Hvad (kan) påvirkes i en organisation ifm. indførelse af ny IT? • nye arbejdsrutiner ændret flow i arbejdet • øget fleksibilitet • ændret organisering af arbejdet • nye kommunikationskanaler • ændrede produkter og afsætningsformer • forbedrede ledelsesinformationer og grundlag for planer mv. • outsourcing af opgaver / adskillelse af lokation og arbejde (Laudon & Laudon, s 27)
IT som forandringsprojekter Hvem er relevante og centrale aktører ? • brugerne • brugernes ledelse • køberne, distributører, etc. • brugerorganisationens aftagere / kunder • andre berørte parter • projektledelsen • diverse i linieledelsen i udviklerorganisationen • projektdeltagere • underleverandører til projektet • eksterne leverandører ……. hvem ellers?? – kantinepersonalet?
Interessentanalyser For at kunne navigere os gennem et udviklingsprojekt skalvi have overblik over hvem der har interesser i vores projekt. - Forstå deres mål og succeskriterier - Være forberedt på modstand, kritik, etc. - Lave forventningsafstemning - Vælge metoder og værktøjer - Planlægge inddragelse etc.
Interessentanalyse - fremgangsmåde • Identifikation af mulige interessenterAktører som deltager, leverer, bruger resultatet eller tager vigtige beslutninger ift. projektet • Beskriv deres position ift. projektetHvad og hvordan berører projektet, forståelse for projektet, indstilling, indflydelse, cost / benefit, aktivitet og deltagelse • Analyse af mulige interessekonflikter og –sammenfaldVurdering af konflikter og interesser, valg af metoder, organisering, involvering af interessenter etc.
Opsamling 10 timers oplæg og øvelser på én slide ;-) • Udvikling af systemer er komplekst og usikkert • Software er usynligt og svært at tale om • Der er behov for formalisering, styring, samarbejde og kommunikation • Både processer og produkter i systemudvikling • Mange tilgange og metoder til håndtering af kompleksiteten • IT-projekter i organisationer er ofte forandringsprojekter • Der er mange og meget forskellige interessenter
Opgave 4 - i grupper Firmaet Eurest leverer kantineydelsen til ITU. ITUs ledelse har besluttet sig for at udvikle et web-baseret system, via hvilketansatte, studerende, eventarrangører, etc. kan bestille mad og drikke til forskellige typer af møder, arrangementer mv. som foregår på ITU. Man skal kunne se priser på standardvarer, indhente tilbud på større arrangementer osv. Det er vigtigt, at systemet sikrer, at regningerne sendes til bestilleren, og at det klart hvilken bestilling det drejer sig om, og hvor den skal konteres. Lav en interessentanalyse som Mikkelsen & Riis foreslår den. Hvis der er tid så diskutér de enkelte interesserenter ved brug af rubriceringenforeslået på s. 263. Husk altid Mikkelsen & Riis’ råd om at arbejde med facts og undgå formodninger og forhåndsopfattelser!! Men det er ok at bruge fantasien i denne opgave ;-)