Hovedoppgave 2002 for Dataingeniører

Slides:



Advertisements
Liknende presentasjoner
Teknologi i klasserommet
Advertisements

Effektiv prosjektplanlegging
Praktisk info til prosjektkunder
Elkem Research Prosess IT
Kan arbeidsmetodikken i IT-prosjekter overføres til rådgiverene ? VIANOVA Network Meeting 2013 Geir Andersen/Vianova Systems AS.
Dokumentasjon og Planlegging av større IT-prosjekter
Copyright © 2009, CIBER Norge AS 1 Scrum i ikke-utviklingsprosjekter Mario Aparicio.
Prosjektstyring In 140 Sommerville kap 4.
Elementer av en utviklingsprosess
Prosjektstyring i kulturbedrifter Mentorcafe 5. febr Arne Kristiansen.
Leselos Ordforråd/metakognisjon
UML & object models av gruppe 8
Prototyping & Use Case Software Engineering Gruppe
Om prosjektarbeid og prosjektet i kurset
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
Forstudie og Kravspesifikasjon
Usikkerhet skal integreres i prosjektstyringen
1 Oppgave gjennomgang Kap Oppgaver -Kap 12: 1, 2, 3, 5, 7, 8, 11, 18, 19.
EVALUERING AV PRODUKTER, PROSESSER OG RESSURSER. Gruppe 4 Remi Karlsen Stian Rostad Ivar Bonsaksen Jonas Lepsøy Per Øyvind Solhaug Andreas Tønnesen.
Grunnleggende testteori
Hvordan lykkes med et prosjekt?
Kvalitetssikring av analyser til forskningsbruk
Prosjektstyring In 140 Sommerville kap 4.
Prototyping In 140 Sommerville kap. 8. Mål Forstå hensikten med prototyping i forskjellige utviklingsprosjekt Forstå forskjellen mellom evolusjonær og.
1 KravprosessenKravprosessen Noen sentral punkter.
Hovedprinsipper i Rational Unified Process
Bendik Bygstad Høgskolen i Vestfold RUP-prosjekt Sammenhengen med UML 1.Hovedstruktur i RUP-prosjekter 2.Faser og iterasjoner 3.Sammenhengen med.
Oppsummering av hovedområdene i kurset LO 135A Kirsten Ribu
Human Factors (HF) i kontrollrom - En revisjonsmetode 2003
Empiriske metoder Oppgaveanalyse, observasjon
Teknikker for å bedre design- prosessen -Design by contract -Prototyping design -Fault-tree analyses.
Tema: Test First Positivist: Det som ikke kan måles, eksisterer ikke! Reduserer sjanser for defekter! Gir en oppdatert ”TODO-liste” Gir trygghet til å.
Kp 4 Målformulering Godt formulerte mål skal:
Prosjekt- og porteføljestyring i Telenor Nett
Læring prosjektpraksis Førsteamanuensis Prosjektledelse,
Lis Byberg Forelesning 14. oktober 2005
Nettverksmøte FUNNKe 18.juni 2012 Elektronisk meldingsutveksling Forberedelser.
Anette Jacobsen Prosjektleder Statens Pensjonskasse
Hvorfor bruke tid på testing ?
Å omfavne forandringer med ekstrem programmering(XP) Brukt i In140 Skrevet av Ola Bø Bygger på Kent Becks artikkel "Embracing change with extreme programming."
Eziz Annagurban Veiledere: Sven-Olai Høyland Carsten Helgesen
Testing av objektorienterte systemer Testplanlegging
Spørsmål og aktiviteter på ulike nivåer
Kontinuerlig kvalitetskontroll. Hvordan komme helt i mål.
BUCS Utfordringer og valg av fokus Tor Stålhane. Rammebetingelser Første spørreundersøkelse viser at det vi gjør må kunne: Brukes sammen med UML Passe.
Objektorientert utforming In 140 Sommerville kap. 12.
Valgforums valgkonferanse 2014 Har du tenkt på hva som kan gå galt?
Brukermedvirkning In 140 Forelesning. Historie Skandinaviske tradisjon Sosio-teknisk metode NJMF-prosjektet( ) –Dataavtalen LO-NAF(i dag NHO) –Arbeidsmiljøloven.
Forstudie Nå situasjonen: dagens situasjon med ulemper og fordeler
Moscito2 Guro, Tone, Mari og Elna. Om prosjektet Tilstedeværelsesinformasjon i organisasjoner Tilstedeværelsesinformasjon i organisasjoner - systemer.
Subversion addin for Visual Studio.NET Gruppe 03-10: Arild Fines Per August Krämer Kristin Borud.
Matematikk 1 årskurs 26. oktober 2009
Using the personalized system of instruction in an introductory programming course Hallgeir Nilsen Universitetet i Agder.
Inventardatabase Hovedprosjekt våren Oppdragsgiver Kunsthøgskolen Studie innen design, skuespill, dans osv Størst i Norge.
Evaluering av [prosjektnavn] [navn]. Resultat kontra mål Målsetting: Oppgi opprinnelig mål eller prosjektmål –Lag en liste over de viktigste måleenhetene.
Prosjektbeskrivelse PROSJEKTNAVN Forklaring til presentasjon:
Prosjektbeskrivelse PROSJEKTNAVN Prosjekteier: …
RUP-prosjekt Sammenhengen med UML
Nytt Intranett Trøndelag Fylkeskommune
Evaluering av [prosjektnavn]
Programvareprosessen styrer utviklingen
Prosjektbeskrivelse PROSJEKTNAVN Prosjekteier: …
Hva er XP ? Ikke ekstrem, men heller meget forsiktig
Prosjektbeskrivelse PROSJEKTNAVN Prosjekteier: …
Prosjektpresentasjon
Når virker 1:1 kommunikasjon? Miriam Gade Nicolaisen
Gruppe 46 (Team Innovation)
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

Hovedoppgave 2002 for Dataingeniører Carsten Helgesen AI – Data HiB

Hovedoppgave for dataingeniører Mål Utføre oppdrag hos ekstern oppdragsgiver Næringsliv FoU Levere et produkt til avtalt tid Erfaring i realistisk prosjektarbeid Del av eksamensarbeidet for Ingeniørutdanningen Dagens presentasjoner Prosjektstyring (CH) Iterativ utvikling (CH) Testing (Inger Lien Krabbestig)

Styringsregler: Murphy’s lover Ingenting er så lett som det ser ut Alt tar lenger tid enn du tror Alt som kan gå galt vil gå galt Alt som kan gå galt vil gå galt på verst tenkelige tidspunkt Korollar: Hvis det finnes et verre tidspunkt, vil det gå galt da Hvis ingenting kan gå galt, går noe galt likevel Hvis du ser fire måter noe kan gå galt på, og du håndterer alle disse, vil en femte måte du ikke har tenkt på opptre når du minst aner det Ting som overlates til seg selv utvikler seg fra dårlig til verre Hvis alt ser ut til å gå bra, har du oversett noe Dessuten: Murphy var en optimist

Prosjektstyring – Hva inngår? (1) Estimering Hva skal gjøres (aktiviteter) Oppgavene som skal løses Avhengigheter mellom oppgavene Hvor stor er oppgaven Estmering Planlegging Hvilke ressurser er tilgjengelige Tid - Tidsfrist Penger - Budsjett Mennesker – Prosjektgruppe + andre ressurser Hvem gjør hva Tildeling av aktiviteter til personer Når gjøres hva Tidsplanlegging

Prosjektstyring – Hva inngår? (2) Oppfølging Hvordan er framdriften i henhold til planen? Hvilke aktiviteter ligger godt an? Hvilke aktiviteter er forsinket? Har noen problemer? Er det dukket opp uforutsette ting eller endringer? Korreksjon Trenger noen hjelp? Omfordele arbeid? Flere folk? ( - vel, ikke i dette prosjektet) Endre løsningsmetode? Endre rekkefølge på aktiviteter? Endre strategi? Revidere planen Endre tidsplan? (- vel, ikke i dette prosjektet)

Prosjektstyring - Estimering Mål: Gi et forslag til ressursbehov for et prosjekt Totalt antall timer som medgår Prosess Bryt arbeidet ned i passende, mindre aktiviteter Estimer nødvendige ressurser for hver aktivitet Summer estimater for alle aktivitetene Legg til for prosjektmøter etc – Typisk 1-3 timer per uke Det er vanskelig å spå, særlig om framtiden! Finnes mange metoder, men erfaringstall er essensielle En enkel metode: Lichtenberg modellen - virker bra i praksis Murphy 1: Ingenting er så lett som det ser ut til Murphy 2: Alt tar lenger tid enn du tror

Lichtenberg estimeringsmodell (1) For hver aktivitet, oppgi… Min - Minste tenkelige tid som trengs Tro - Trolig tid som trengs Max - Største tenkelige tid som trengs Modellen beregner for hver aktivitet… Forventet tid: Usikkerhet: Totalt estimat… Forventet total tid: Total usikkerhet:

Lichtenberg estimeringsmodell (2) Link på hjemmesiden for Hovedprosjekt 2002

Prosjektstyring - Planlegging Definere aktiviteter Navn Estimere omfang – Summen av total tid som medgår Avhengigheter mellom aktiviteter – Hva kan gå i parallell Tildele ansvar Hvem utfører hvilke aktiviteter Sette sammen aktivitetene til en helhet Total prosjektplan Kalendertid Milepæler PERT-diagram Avhengigheter mellom aktiviteter Kritisk sti = Korteste tiden prosjektet kan ta Gantt-diagram Viser aktiviteter på tidsskala Kan også vise hvem som gjør hvilke aktiviteter

Gantt diagram - Plan

Prosjektstyring – Noen gullkorn If you fail to plan, you plan to fail. Plans are worthless. Planning is essential. Eisenhower A good plan today is better than a perfect plan tomorrow. Patton It is a mistake to look too far ahead. Only one link in the chain of destiny can be handled at a time. Winston Churchill

Prosjektstyring - Oppfølging Prosjektdeltagerne må rapportere… Forbrukt tid på hver aktivitet Estimert gjenstående tid på hver aktivitet Problemer som har dukket opp Prosjektleder følger opp planen ved å… Samle data fra prosjektdeltagerne Plotte framdrift ved rapporteringstidspunkt Gantt-diagram Visualisere oppgaver, ansvar og framdriftsplan Følge opp framdrift

Gantt diagram - Oppfølging I dag

Prosjektstyring - Problemhåndtering Vær proaktiv – prøv å forutse problemer Ta fatt i problemer tidlig Ting som overlates til seg selv utvikler seg fra dårlig til verre. Murphys 7. Lov Ikke tro at problemer løser seg av seg selv Tilkall hjelp om nødvendig Konkret kompetanse Erfaring

Prosjektstyring – Time Boxing Ofte: Har kun tilgjengelig en viss tid for å gjøre en oppgave Enhver aktivitet vokser til å bruke all tilgjengelig tid. Parkinsons lov Time Boxing: Planlegge med å bruke kun tilmålt tid Dele opp i aktiviteter Tildele hver aktivitet sin tilmålte tid Samlet tid summerer til total tilmålt tid Bruke kun tilmålt tid på hver aktivitet Passe klokken strengt! Gå videre når tiden er over. Prosjektoppgaven er av denne typen Kompromiss mellom ideelt mål og tilgjengelige ressurser Planlegging: Prosjektplanlegging + Time Boxing

Prosjektstyring - Risiko Prosjekter har alltid risiko Ressurser Mangler folk - Mangler penger Kompetanse Mangler kompetanse - Misforstår krav - Overser viktige krav Kommunikasjon Dårlig koordinering – Misforståelser – ”Dårlig kjemi” Teknologi – Ny? Klarer vi å utnytte den? - Er den god nok for vårt prosjekt? Tidsfrister Sykdom - Feilvurderer arbeidsomfang - Samarbeidspartnere Fjerne risiko Identifisere risiko, evaluere effekt og sannsynlighet Ha en plan for å håndtere risiko hvis den opptrer Utvikle prototyper (del-løsninger) og teste dem tidlig

Utviklingsmodell - Fossefallmodellen Tradisjonelt: Fossefallsmodellen Fungerer dårlig i praksis for IT-prosjekter T I D Integrasjon System Test Koding Analyse og design Kravspes.

Faser i fossefallsmodellen Kravspesifikasjon Beskrive fullstendig alle systemets egenskaper Anta at de er uendret for resten av prosjektet Analyse og design Utforme systemet i detalj: Alle grensesnitt, komponenter, klasser, all kommunikasjon, fullstendig databaseskjema, etc. Få endringer i design under koding Koding Programmere alle komponentene i systemet slik beskrevet i designdokumentasjonen Teste hver komponent - enhetstest Integrasjon Integrere alle komponentene til et fullstendig system. Systemtest Teste det fullstendige systemet

Risiko i fossefallsmodellen T I D Integrasjon System Test Koding Analyse og design Kravspes.

Utviklingsmodell - Iterativ utvikling (1) Iterasjon 1 Iterasjon 2 Iterasjon 3 Time Box: typisk 2-4 uker Komponenter med høy risiko utvikles i tidlige iterasjoner. Hver iterasjon lager en kjørbar release Hver release er fullstendig integrert og testet

Utviklingsmodell – Iterativ utvikling (2) Første prosjektplan Grov plan for hele prosjektet Milepæler for alle iterasjoner Detaljert plan for første iterasjon Første estimater Vurdering av risiko I hver iterasjon… ”Mini” fossefall prosess Arbeide med ”små” tema om gangen Utvikle testet og kjørbar kode Tilbakemelding fra brukerne Aktiviteter som det ikke ble tid til utsettes til neste iterasjon Planlegg neste iterasjon i mer detalj Revurder estimater

Utviklingsmodell – Iterativ utvikling (3) Utvikle i bredden – ”vidt og grundt”… Dekke alle deler av systemet i tidlige iterasjoner Kritisk funksjonalitet tidlig Fokus på samspill mellom ulike komponenter Risiko… Angripe tema med høy risiko tidlig Utvikle prototyper for å lære om risiko-områder Revurder risiki - effekt og sannsynlighet

Risiko i iterativ utvikling Risiko Fossefall Risiko iterativ T I D Iterasjon 1 Iterasjon 2 Iterasjon 3 R I S K O

Iterativ utvikling - Essens Fokus i tidlige iterasjoner Høyrisiko tema – ukjente, vanskelige Bygge basisarkitektur Bygge kritisk funksjonalitet Små steg Kontinuerlig tilbakemelding fra brukerne Time Box iterasjoner Iterativ (adaptiv) planlegging Planlegge kun neste iterasjon i detalj Milepæler for kommende iterasjoner Revurdere estimater fortløpende I hovedprosjektet: Trolig… 2 ukers iterasjoner Tilbakemelding fra brukerne etter hver iterasjon Kontinuerlig testing

Unified Process

Unified Process – Disipliner Business modelling – Virksomhetsmodellering Modellere data og prosesser i virksomheten med UML Requirements – Kravspesifikasjon Beskrive funksjonelle krav med Use Case Ikke-funksjonelle krav – ytelse, påtrykk, etc Analysis and Design - Analyse og design Arkitektur, komponenter, objekter, databaser, nettverk etc Analyse: Fokus på virksomheten – Hva skjer med hvilke data Design: Fokus på tekniske løsninger - Hvordan skal det virke Implementation – Implementasjon Test – Testing Enhets- og Integrasjonstest Deployment – Utrulling

Unified Process – Faser (1) Inception Forstå siktemål og nytte av systemet i virksomheten Første utkast til kravspesifikasjon Omfang - initielle estimater Hovedvekt: Overordnet forståelse av krav og omfang. Inception = Forprosjektet i hovedoppgaven Problembeskrivelse Risikovurdering Tidsplan Krav til leveranse Elaboration Videreutvikle kravspesifikasjon Iterativ utvikling av basisarkitektur og kritisk funksjonaliteten Fokus på risiko - utvikle deler med høy risiko først I hver iterasjon: Fullstendig integrasjon og testing av all kode Hovedvekt: Kravspesifikasjon, analyse og design. Noe koding.

Unified Process – Faser (2) Construction Iterativ utvikling av resten av funksjonaliteten I hver iterasjon: Fullstendig integrasjon og testing av all kode Forberedelser for utrulling (deployment) Hovedvekt: Koding. Noe design. Transition Beta testing Utrulling hos brukerne Opplæring av brukerne Hovedvekt: Utrulling, feilretting

Testing Testing er essensielt for å sikre at systemet fungerer korrekt Alt som kan gå galt vil gå galt. Murphys 3. lov Hvis du ser fire måter noe kan gå galt på, og du håndterer alle disse, vil en femte måte du ikke har tenkt på opptre når du minst aner det. Murphys 6. lov

Test Først – En god arbeidsvane Testing av hver enkelt klasse - Enhetstesting Praksis fra Extreme Programming (XP) Skriv en testdriver for en klasse før klassen selv skrives Testdriver og klasse kan eventuelt skrives i parallell Fordeler: Testkode for enhetstestene blir faktisk skrevet! Kan kjøre testene igjen senere for se om nye feil er introdusert Oppklarende for design Kan ”bevise” korrekthet ved å kjøre alle testene JUnit – Nyttig verktøy for å skrive testdrivere Se mer på www.junit.org

Metode arvet fra Junit-klassen TestCase Test Først - Eksempel Testdriver for metoden Sale.getTotal() Public class SaleTest extends TestCase { public void testTotal() { // sett opp testdata Money total = new Money( 7.5 ); Money price = new Money( 2.5 ); ItemID id1 = new ItemID( 1 ); ProductSpec spec1 = new ProductSpec( id1, price, ”Prod1” ); ItemID id2 = new ItemID( 2 ); ProductSpec spec2 = new ProductSpec( id2, price, ”Prod2” ); // opprett et salg Sale sale = new Sale(); sale.makeLineItem( spec1, 1 ); sale.makeLineItem( spec2, 2 ); // sjekk resultatet assertEquals( sale.getTotal(), total ); } Metode arvet fra Junit-klassen TestCase

☺ Et siste råd på veien… Fokus på produktet og brukernes behov Fokus på risiko Bygge basisarkitektur tidlig Bygge kritisk funksjonalitet tidlig Bygge systemet iterativt - ”Bredt og vidt” Planlegge og følge opp What Every Computer Consultant Needs to Know: 1) In case of doubt, make it sound convincing. 2) Do not believe in miracles. Rely on them. Murphy ☺

LYKKE TIL MED ABEIDET!