Hensikten med denne delen av kurset. Objektorientering hva er det? Objektets egenskaper. Best practises ved programvareutvikling

Like dokumenter
Hensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen

UML-Unified Modeling Language

Oppsummering av hovedområdene i kurset LO 135A Kirsten Ribu

Ulike typer prosessmodeller. Systemutvikling. Utviklingsmodeller. Prosessmodell - faser

UML 1. Use case drevet analyse og design Kirsten Ribu

I dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser?

UML-Unified Modeling Language. Prosess-oversikt. Use case realisering

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case? Use case modellering. Eksempel

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case?

UML- Use case drevet analyse og design. Domenemodeller Sekvensdiagrammer Use case realisering med GRASP patterns Klassediagram - designmodeller

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

Inception Elaboration Construction Transition Bemanning 1 1,5 2 2 Varighet i uker Antall iterasjoner (lengde i uker i parentes) Tabell 1

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Gruppenavn. Prosjektnavn Beskrivelse av design For Navn på systemet. Versjon <1.0>

UKE 9 Prosesser og prosessmodeller inkludert smidige metoder. Gruppetime INF1055

UNIVERSITETET I OSLO

Use Case-modellering. INF1050: Gjennomgang, uke 04

Use case drevet design med UML

UNIVERSITETET I OSLO

Systemutvikling - oppsummering. Alexander Nossum blog.eksplisitt.net 22. mai 2006

UKE 11 UML modellering og use case. Gruppetime INF1055

GJENNOMGANG UKESOPPGAVER 4 USE CASE MODELLERING HELGA NYRUD & KRISTIN BRÆNDEN

Modellering av krav. INF1050: Systemutvikling 11. februar Universitetslektor Yngve Lindsjørn

Forside. Eksamen i IN1030 for Våren Ingen hjelpemidler tillatt.

Produktrapport Gruppe 9

Modellering av krav. INF1050: Systemutvikling 07. februar Førstelektor Yngve Lindsjørn

Prøveeksamen INF1050: Gjennomgang, uke 15

Kravspesifikasjon med UML use case modellering. Erik Arisholm

Systemutviklingsmetoder

Vakt og lønnssystem - Rema 1000

Gjennomgang av prøveeksamen. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Oppgave 1: Multiple choice (20 %)

S Y S T E M U T V I K L I N G ( L O A )

Forfattere: Daníelsdóttir, Drífa Meland, Maiken Mijalkovic, Biljana Svendsen, Simen H. Gruppelærer: Zarei, Amir Hossein. 5.

Utvikling fra skallet og inn

Prosjektrettet systemarbeid

Systemutviklingssprosesser, prosjektarbeid Forelesning 3 - INF1050 Systemutvikling 1. feb.2010

A Study of Industrial, Component-Based Development, Ericsson

IN2001: Kravhåndtering, modellering, design

Innhold. Innledning Del 1 En vei mot målet

Avdeling for Ingeniørutdanning Høgskolen i Oslo. Prosjektplan. Systemutvikling (lo138a) Høst Taxisentral. Forfattere:

Forside Eksamen INF1055 V17

prosjektarbeid Forelesning 3 - INF1050 Systemutvikling

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

prosjektarbeid Forelesning 3 - INF1050 Systemutvikling Eksempel Evolusjonære modeller Utviklingsprosesser Evolusjonære modeller Foranalyse

Spesifikasjon av Lag emne

Kap. 2 Prosessen. Utviklingsmodeller -2. Utviklingsmodeller. Utviklingsmodeller -4. Utviklingsmodeller - 3. Software Engineering - definisjoner

UKE 13 Mer UML modellering. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Fra krav til objektdesign

Eksamen INF1050: Gjennomgang, uke 15

OptimalJ-kurs UIO Oppsummering av kurset. De ulike modellene egenskaper og formål

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign

Kravspesifikasjon. Dagens forelesning. Mal for kravspesifikasjon. Hvordan finne fram til kravene? Kravspesifikasjon og objektorientert analyse

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

DOMAINING AS GRUPPENR.24

Oppsummering. Thomas Lohne Aanes Thomas Amble

Løsningsforslag Sluttprøve 2015

UNIVERSITETET I OSLO

IN2000:&Kravhåndtering,&modellering,&design

Web Accessibility Toolbar. Struktur. Funksjonene. Headinger. Mer om tilgjengelighet og Flash.

Krav analyse og objektorientert

Gruppenavn. Prosjektnavn Kravdokument For Navn på systemet. Versjon <1.0>

Arne Maus, Ifi. med takk til Gerhard Skagstein(Ifi), Rune Steinberg, (Visma), Jo Hannay (Ifi), Ian Sommerville m. fl. for lån av gamle foiler

Eksamen 2013 Løsningsforslag

DRI 2001 Systemutviklingsarbeidet et overblikk Forelesning

DRI2001 forelesning

Avdeling for ingeniørutdanning Høgskolen i Oslo. Prosjektrapport Systemutvikling (lo138a) Høst Taxisentral

Løsningsforslag til Case. (Analysen)

Use case modellering. Use case modellen. Metode for systembeskrivelse og Nettsted-design

Conference Centre Portal (CCP)

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Hva gjøres i design? 19. september 2002, Tore Berg Hansen, TISIP

Forprosjektrapport for Agresso R&D Ansettelsessystem Hovedprosjekt våren Skrevet av:

God objektorientert design Flere UML diagrammer UML Distilled kap. 7,8, 9 Using UML, kap. 11, 12, 14 Kirsten Ribu

Tom Røise IMT2243 : Systemutvikling 1. IMT2243 Systemutvikling 26. februar Klassediagrammet. Klasse

Kravspesifikasjon. Kravspesifikasjon. Mal for kravspesifikasjon. Hvordan finne fram til kravene? Hva skal systemet gjøre? Hvem og hva påvirker krav?

Kravspesifikasjon med. UML diagrammer. systemutvikling. Dokumentasjon av systemets krav, arkitektur, design og implementasjon

Kravspesifikasjon. Erik Arisholm. Simula Research Laboratory. Institutt for Informatikk. INF1050-krav-1

Unified Modeling Language (UML) Kravspesifikasjon med UML use case modellering. UML diagrammer. Notasjon som støtter opp under modellbasert

Hva gjøres i analysen? 2. oktober 2001, Tore Berg Hansen, TISIP

t Institutt for informatikk Erik Arisholm 13. mai 2009 INF1050-oppsummering-1

Eksamen INF

DRI2001 h04 - Forelesning Systemutvikling og nettsteder

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process

Forelesning IMT Mars 2011

Mer om objektorientering og UML

TESTRAPPORT Tittel på hovedprosjektet: Varebestillingssystem for Wokas Salg AS

INF Modellering med objekter (Oblig 2) **TimeregistreringSystem** (Designet av Alen Cemer

Kravspesifikasjon med. Erik Arisholm

EKSAMEN 05HBINDA, 05HBINFA, 05HBISA, 05HBMETEA, 06HBINFA. Tom Røise. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

Fra krav til modellering av objekter

DRI2001 Offentlige nettsteder. Litt om systemutvikling Torsdag 24 aug Arild Jansen, AFIN, UiO

Forslag til løsning. Oppgave 1

INF Obligatorisk prosjektarbeid INNHOLD:

PROSJEKTPLAN FOR INF [4 3]120-PROSJEKT: PROJECT HOSPITAL 2004

Universitetet i Oslo Institutt for informatikk. Eskild Busch. UML hefte

INF Obligatorisk prosjektarbeid

Transkript:

Objektorientert systemutvikling, litt UML og Rational Unified Process (RUP) UML Distilled kap. 2 Hensikten med denne delen av kurset Å lære og øve på modelleringsteknikker Å lære om gode designprinsipper Sammen bidrar dette til å oppnå høy kvalitet på det ferdige produktet Kirsten Ribu Kirsten Ribu HiO 2005 1 Kirsten Ribu HiO 2005 2 Objektorientering hva er det? Objektets egenskaper Et objektorientert system er bygget opp av selvstyrte strukturer Hvert objekt representerer en konkret ting (entitet) Objektet reagerer med seg selv og med andre objekter Innkapsling Polymorfisme Arv Kirsten Ribu HiO 2005 3 Kirsten Ribu HiO 2005 4 Best practises ved programvareutvikling Iterativ utvikling Håndtering av krav Bruk av komponentbasert arkitektur Visuell modellering Kontinuerlig verifisering av programvarekvaliteten Kontrollerte endringer i programvaren Kirsten Ribu HiO 2005 5 Kirsten Ribu HiO 2005 6 1

Kravspesifikasjonen Noen kvalitetsattributter Tilhører analysefasen Definerer funksjonelle og ikke-funksjonelle krav Funksjonelle krav: Konkrete krav til systemet som beskriver en ønsket tilstand. Enten er kravet oppfylt, eller ikke. Eks: Vi ønsker å bestille en time i Zebra systemet, og få en tilbakemelding om at timen er bestilt. Ikke-funksjonelle krav: Kan ofte uttrykkes i tall (prosenter, antall, tid etc.) Eks: Ønskede (målbare) kvaliteter på systemet (svartid, feilprosent, antall samtidige brukere) Sikkert Pålitelig Robust Forståelig Portabelt Brukervennlig Gjenbrukbart Utvidbart Testbart Modulært Effektivt Kirsten Ribu HiO 2005 7 Kirsten Ribu HiO 2005 8 RUP Rational Unified Process En systemutviklingsprosess (industristandard) som beskriver: Hvem som gjør hva, hvordan og når Retningslinjer Maler og mønstre Konsepter for overvåkning/måling av fremdrift IBM/Rational: http://www-306.ibm.com/software/awdtools/rup/index.html Kirsten Ribu HiO 2005 9 Kirsten Ribu HiO 2005 10 IBM kjøpte Rational Software IBM Rational Unified Process, or RUP, is a configurable software development process platform that delivers proven best practices and a configurable architecture. Enables you to select and deploy only the process components you need for each stage of your project. The RUP platform includes: Tools for configuring RUP for your project's specific needs Tools for developing your own internal knowledge into process components Powerful and customizable Web-based deployment tools An online community for exchanging best practices with peers and industry leaders Kirsten Ribu HiO 2005 11 The Unified Process En prosessmodell Use-case dreven: Use case modellen driver utviklingsprosessen, ikke bare for kravspesifikasjon, men også for prosjektplanlegging og definisjon av test cases Arkitektursentrisk: Basisarkitekturen, dvs. klassestrukturen etableres før utviklingen starter. Arkitekturen forfines underveis Iterativ og inkrementell: Kontrollert inkrementell utvikling med mange iterasjoner Kirsten Ribu HiO 2005 12 2

UP disipliner Kirsten Ribu HiO 2005 13 The Unified Process forts. Prosessmodell som kombinerer best practises i software utvikling: Iterativ livssyklus Risikodrevet utvikling UP består av 4 faser: Inception gjennoførbarhetsanalyser, tidlige estimater Elaboration iterativ implementering av basisarkitektur, løsning av høyrisiko faktorer, identifikasjon av mesteparten av kravene Construction iterativ implementering av lavrisiko-elementer og forberedelser til innføring av systemet Transition beta-test og innføring Kirsten Ribu HiO 2005 14 Oversikt over prosessen Eksempel på faser. Inception Elaboration Construction Transition Idefase Utdypning Konstruksjon Overgang Idefasen: Krav, omfang, lønnsomhet Utdypning: planlegging, krav, arkitektur, risiko, prototyping Konstruksjon: konstruksjon, implementering, testing Kirsten Ribu HiO 2005 15 Overgangsfasen: kvalitetskontroll, brukeropplæring Inception og Elaboration 1. iterasjon Analyse: Kravanalyse: Utarbeide use case og identifisere ikke-funksjonelle krav Utarbeide domenemodell Design: Use case realisering: Utforme sekvensdiagrammer Utforme designmodell Kirsten Ribu HiO 2005 16 En iterativ og inkrementell prosess Iterativ utvikling med flere korte, tidsbestemte iterasjoner i hver fase (for eksempel 4 uker) Hver iterasjon er et mini-prosjekt med egen kravanalyse, design-, implementering- og testaktiviteter Resultatet av en iterasjon er et testet og kjørbart system Systemet vokser inkrementelt - iterasjon for iterasjon - og leveres kunden i inkrementer (deler) RUP (Rational Unified Process) brukes i dag som prosessmodell i mange bedrifter i store prosjekter (www.rational.com) Inception (idéfasen) noen aktiviteter Gjennomførbarhetsanalyse Prototyping for å klargjøre krav Planlegging av 1. iterasjon Overordnet use case utforming Finn aktører og use cases Beskriv funksjonelle og ikke-funksjonelle krav Finn riktig detaljeringsnivå for beskrivelsene Detaljer ut ca 10-20% av use casene: de mest interessante, komplekse eller risikofylte Kirsten Ribu HiO 2005 17 Kirsten Ribu HiO 2005 18 3

Elaboration (utdypningsfasen) Analysefase på systemnivå, ikke detaljnivå De viktigste eller mest kritiske deler av systemet utvikles inkrementelt Alle modeller som innvirker på hele systemet lages nå: Mesteparten av kravene blir identifisert 80-90% av use casene blir skrevet i detalj Sekvensdiagrammer Klassediagram Risikohåndtering Mønstre (patterns) vurderes Fasen består av flere iterasjoner (f.eks 4) Kirsten Ribu HiO 2005 19 Construction (konstruksjonsfasen) Består av mange iterasjoner Hver iterasjon inneholder analyse, design, implementering og testing på detaljert nivå Delprodukter blir ferdig dokumentert, testet og integrert Et delprodukt realiserer ett eller flere use cases Testing: Enhetstesting: Gjøres av utvikleren på han/hennes delprodukt Funksjonstest: En systemtest som involverer mange delprodukter, og gjøres av testere Ved testing brukes use casene fra use case modellen Kirsten Ribu HiO 2005 20 Transition (overgangsfasen) Programmering er ferdig Endringer gjøres for optimalisering Feilrettinger Ferdigstilling av produktet Forberedelse til pilotprosjekt Brukeropplæring Planlegging av videreutvikling (nye versjoner) Kirsten Ribu HiO 2005 21 Kirsten Ribu HiO 2005 22 Kort repetisjon av grunnleggende UML Use case modellen Beskriver kravene til systemet Beskriver systemet sett fra kundens perspektiv Beskriver hva som skjer, ikke hvordan det skjer Use case er ikke objekt-orienterte, men beskrivelser av hendelsesforløp Ordrebehandlingssystem Kravspesifikasjon: En bedrift ønsker et online ordresystem for å kunne selge produkter fra flere forhandlere. Når kunder bestiller varer legger de inn en ordre sammen med betalingsinformasjon. Man kan legge til varer og lagre underveis for å kunne fortsette bestillingen senere. Ordre kan kanselleres etter at de er lagt inn, men før varene sendes. Kirsten Ribu HiO 2005 23 Kirsten Ribu HiO 2005 24 4

Use case modell for Ordrebehandlingssystem Sekvensdiagrammer: fra krav til design Et UML sekvensdiagram viser hendelsesflyten i et use case viser interaksjoner (samarbeid) mellom objekter i systemet viser rekkefølgen på beskjedene som sendes mellom objektene kan brukes til å identifisere metodene til objektene i systemet Kirsten Ribu HiO 2005 25 Kirsten Ribu HiO 2005 26 Use case Lag ordre Sekvensdiagram for Lag ordre Aktør: Kunde Sekundær aktør: Regnskapssystem 1. Systemet viser et ordreskjema med varebeskrivelser 2. Kunden skriver inn de ønskede varene og betalingsinformasjon 3. Systemet sjekker at alle felt er fylt ut og viser totalsum 4. Kunden bekrefter bestillingen 5. Systemet lagrer ordren og sender betalingsinformasjon til regnskapssystemet 6. Regnskapssystemet bekrefter betalingsinformasjonen 7. Systemet sender en ordrebekreftelse til kunden Kirsten Ribu HiO 2005 27 Kirsten Ribu HiO 2005 28 Domenemodell Overordnet domenemodell Domenemodellen tilhører analysefasen og er en representasjon av objekter i domenet. Domeneklassene gjenspeiler objekter i den virkelige verden, ikke systemkomponenter Lages i parallell med use case modellen Typisk informasjon om objektene: Assosiasjoner Attributter Multiplisitet Kirsten Ribu HiO 2005 29 Kirsten Ribu HiO 2005 30 5

Designmodell - Design Eksempel En designmodell viser systemklasser, ikke konseptuelle klasser som i domenemodellen Typisk informasjon er: Klasser, assosiasjoner, attributter og navigasjon Grensesnitt Metoder Avhengigheter assosiasjonsnavn Ordre multiplisitet 1 har 1 * Pil for leseretning (kan utelates) Produkt navigasjonspil Kirsten Ribu HiO 2005 31 Kirsten Ribu HiO 2005 32 Designmodell for ordresystemet - overordnet Kirsten Ribu HiO 2005 33 Om prosjektoppgaven Obligatoriske innleveringer Frister for innleveringer kommer fortløpende på websiden Webside for prosjektet: Skal være ferdig i løpet av neste uke. For tips om utforming: http://www.webpagesthatsuck.com/ Bestem dere for et prosjekt Eksempel: 4 kokker http://student.iu.hio.no/~s115359 Husk: Prosjektet må ha et navn 1. Leveranse: Prosjektbeskrivelse med kravspesifikasjon og overordnet use case modell. Frist: fredag 4. februar Kirsten Ribu HiO 2005 34 Oppgaver Hva er en modell? Hva er en systemutviklingsmodell (prosessmodell)? Hvorfor bruker vi prosessmodeller? Beskriv Fossefallsmodellen med egne ord Hva er RUP? Hvilke faser inngår i RUP, og hva skjer i de ulike fasene? Hva kjennetegner objekt-orientering? Hva er et use case, og hva brukes det til? Neste gang Use case modellering utbrodert Kap 3 i UML Distilled Kirsten Ribu HiO 2005 35 Kirsten Ribu HiO 2005 36 6