Unified Process – Elaboration Iterasjon 3

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Objektorientert systemutvikling og UML  OOSU er den mest anvendte metoden på både store og små prosjekter  UML er det mest anvendte beskrivelsesspråk.
Del 3 : Patterns (Kap 16 – kap 20, Craig Larman) Arne Maus Inst. for informatikk, UiO.
LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller.
Realisering av Software Patterns Software Design Patterns Realisering med kode Refaktorering Gjenkjenning av mønstre.
Gjenfinningssystemer og verktøy II
Kontrollstrukturer (Kapittel 3)
Objektorientert systemutvikling og UML
Modeller for design av Web-Applikasjoner ➔ Kapittel 2: Data Modell ➔ Kapittel 3: Hypertekst Modell Av Eskil Saatvedt og Arianna Kyriacou.
XMLSchema.  Innledende eksempler: Tove 4. Janni 5. Huskelapp 6. Ikke glem avtalen til helgen 7. Vi har sett DTD’en til dette xml dok. Her kommer.
UML & object models av gruppe 8
Normalisering av objektorienterte systemer
Databaseteori.
Objektorientert programmering Objektorientert systemutvikling
Objektorientert programmering i PHP del 2
Prototyping & Use Case Software Engineering Gruppe
IS-102 Klassedefinisjoner
Gjenfinningssystemer og verktøy II
Oppgave gjennomgang Kap. 3 og 4.
Systemmodeller In 140 Sommerville kap. 7. Mål Forstå hensikten med kontekstmodell Forstå ideene bak –oppførselsmodellering –datamodellering –objektmodellering.
Siste forelesning ER/EER-modellering
LC238D Datamodellering og databaser Else Lervik, september 2011 Forelesning 6, Uke 38 Objektorientering i ER-modeller.
Hvordan skrive en god utredning?
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
Læring og tenkning Systemutvikling er læring Gjensidig respekt og samarbeid Følge en konkret oppskrift Velge blant flere oppskrifter Nå målet uten oppskrift,
Prosjektet transparente lag Composite og tegnende objekter Decorator og gui-kontrollere Factory Method Iterator.
En kort innføring i Design Patterns
Forbindelser Diagrammer i UML består av ting med forbindelser
Ting Forbindelser Ting og forbindelser blir til sammen et diagram
Klassediagrammer Klassen er en grunnleggende enhet i det objektorientert systemet Alle kan finne klasser i et domene Det å finne klasser er en intuitiv.
Bendik Bygstad Høgskolen i Vestfold RUP-prosjekt Sammenhengen med UML 1.Hovedstruktur i RUP-prosjekter 2.Faser og iterasjoner 3.Sammenhengen med.
Klassediagrammer II Klassen samler data og operasjoner i passe store enheter Klassen organiserer programdesig net.
Strukturerende elementer i UML
Klassediagrammer Klassen er en grunnleggende enhet i et objektorientert system Alle kan finne klasser i et domene Det å finne klasser er en intuitiv aktivitet.
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
Combining Compound Conceptual User Interface Components with Modelling Patterns - a Promising Direction for Model-based Cross-platform User Interface Development.
UML og grensesnitt UML er standard for modellering innen objekt-orientert programvare kan UML også brukes til modellering av grensesnitt? fordel: bedre.
Hvordan uttrykke krav Kapittel 4.4. Innledning Målet er å samles rundt ett entydig språk som ikke kan misforståes eller feiltolkes. Gjør sporbarheten.
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
DEKOMPONERING OG MODULARITET ~Gruppe 4~. Gjennomgang Designtyper/kriterier innen dekomponering Dekomponeringsspesifikasjon Strukturert og objektorientert.
Teknikker for å bedre design- prosessen -Design by contract -Prototyping design -Fault-tree analyses.
Design patterns: State og Strategy
Hans Fr. Nordhaug (Ola Bø)
DATABASE: Oppgave 2 et medlemsregister for en idrettsklubb med flere idrettsgrener (fotball, håndball, osv). klubben ønsker å lagre informasjon om medlemmenes.
Introduksjon I126 Databaser og datamodellering Høsten 2000 Institutt for informatikk Universitet i Bergen.
Spørsmål og aktiviteter på ulike nivåer
PUG-NORWAY OKTOBER 2008 THOMAS SKJØRTEN, HILDE ANDREASSEN UML og OpenEdge OOABL.
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.
Termbaser Lars Nygaard. Termbaser Database over begreper Innhold –Definisjoner –Oversettelser –Leksikalske relasjoner –Eksempler.
Se ellers læreboka, kap , side
Objektorientert utforming In 140 Sommerville kap. 12.
Generelle definisjoner Oppslagsverk nå og senere! Finnes også i dokumentet Retningslinjer for datamodellering i UML UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet.
Gamle systemer In 140 Forelesning Nr 19 Sommerville kap 26.
Navneregler i UML Geir Myrind Sosi-sekretariatet UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet.
Objektorientert design
Objektorientert utforming In 140 Forelesning Nr 11 Sommerville kap 12 – del 1.
Byggeklosser i UML klassediagram
Objektorientert design In 140 Sommerville kap 12 – del 1.
Use case realisering Designmodellering Kirsten Ribu Kapittel 4 UML Distilled.
Sosialkonstruktivisme
Android-Programmering Våren Oversikt Long-running operasjoner Introduksjon til Android services On-demand service Bruk av servicer på tvers av prosesser.
Lokale variable Hvis vi trenger å ta vare på en verdi, inne i en metode kan vi definere en lokal variabel: int amount = 0; vi må fortelle hvilken type.
Produktnavn Tittel på presentasjon. Oversikt Gi en kort beskrivelse av produktet eller tjenesten, brukerproblemene som løses, og brukerne produktet eller.
Strukturerende elementer i UML
I den prosessorienterte organisasjon spør man
Ting Forbindelser Ting og forbindelser blir til sammen et diagram
Klassediagrammer II Klassen samler data og operasjoner i passe store enheter Klassen organiserer programdesignet.
IS-102 Interaksjon med objekter
INF1300 Introduksjon til databaser
Sett inn bilde av produkt her
Utskrift av presentasjonen:

Unified Process – Elaboration Iterasjon 3 Mål med denne seksjonen: Arbeide videre med Elaboration fasen i UP Se spesielt på Iterasjon 3 Beskrive flere UML konstruksjoner Mer notasjon for Brukstilfeller Relatere Brukstilfeller Mer notasjon for klasssediagram Generalisering av klasser Mer om assosiasjoner Tilstandsdiagram

Unified Process Disciplines Disciplines Elaboration Iterasjoner

UML – Relatere Brukstilfeller (1) Include Brukes til å dekomponere et Brukstilfelle i mindre deler Unngå duplisering i flere Brukstilfeller Splitte opp et stort Brukstilfelle i mindre ”Dekomponering” Refererer til relaterte brukstilfeller i basis Brukstilfelle Notasjon

UML – Relatere Brukstilfeller (2) Include – Eksempel: Referanse i tekst UC1: Betale varer … Systemet presenterer totalsum, inklusive moms Kunden betaler totalsummen Alternativ flyt 6a. Betale kontant: Se UC11: Betale kontant 6b. Betale med bankkort: Se UC12: Betale med bankkort 6c. Betale med sjekk: Se UC13: Betale med sjekk Inkludert brukstilfelle

UML – Relatere Brukstilfeller (2) Include – Eksempel grafisk

UML – Relatere Brukstilfeller (3) Extend Modifisere et Brukstilfelle på bestemte steder Ønsker ikke å endre basis brukstilfelle Kan oppnå mye det samme ved å bruke Include, men da må basis brukstilfelle referere et inkludert brukstilfelle Notasjon

UML – Relatere Brukstilfeller (4) Extend – Eksempel i tekst UC1: Betale varer … Extention point: Betaling, steg 6 Kunden betaler totalsummen UC15: Betale med gavesjekk Trigger: Kunden vil betale med gavesjekk Extension point: Steg 6: Betaling i UC1: Betale varer Hovedflyt Kunden gir gavesjekk til ekspeditør Ekspeditør registrerer gavesjekkens ID i systemet

UML – Generalisering (1) Kan ordne begrep hierarkisk Superklasse = Overordnet begrep Subklasse = Underordnet begrep Generalisering = Identifisere fellestrekk ved flere begrep, og definere dem som eget begrep Definere felles superklasse for gitte (sub)klasser Eksempel: Kontorsjef og lektor generaliseres til ansatt Spesialisering = Identifisere spesialtilfeller av et begrep, og definere dem som eget begrep Definere subklasser for en gitt (super)klasse Eksempel: Ansatt spesialiseres til kontorsjef

UML – Generalisering (2) Notasjon Superklasse Generalisering Subklasse

UML – Generalisering (3) Instanser for super- og subklasser 100% regelen: Alt som gjelder for instanser i en superklasse gjelder også for alle instanser i enhver subklasse IS-A regelen: Alle instanser av en subklasse er også instanser av dens superklasse B C A Venn-diagram

UML – Generalisering (4) Bruk generalisering / spesialisering i en domene-modell kun når det er relevant / nyttig Spesialisering nyttig: En klasse B er en subklasse for en klasse A når … … A og B har de samme attributtene, men B har flere … A og B har de samme assosiasjonene, men B har flere … B håndteres alltid som A, men i tillegg finnes forskjeller … B oppfører seg alltid som A, men i tillegg finnes forskjeller … A og B følger 100% - og IS-A reglene Generalisering nyttig: Klasser A og B kan ha en felles superklasse når … … A og B har felles attributter som kan faktoriseres ut … A og B har felles assosiasjoner kan faktoriseres ut

UML – Generalisering (5) Abstrakt klasse = Klasse som ikke kan ha egne instanser Hvert medlem i en abstrakt klasse må være med i en subklasse Notasjon Kursiv = Abstrakt

UML – Generalisering (6) Bruk av generalisering Domenemodell:  Spesialiseringshierarki mellom begreper ”Faktorisere” ut felles egenskaper Kan gi bedre forståelse av domenebegrepene Basis for bruk av arv i designmodellen Designmodell:  Benytte arv i programmeringsspråket Arve felles attributter og metode Innfør kun relevant generalisering / spesialisering

UML - Mer om assosiasjoner Flere mekanismer for assosiasjoner Assosiasjonsklasse Aggregering Komposisjon Roller Kvalifisert assosiasjon Refleksiv assosiasjon Ordnet assosiasjon Øker uttrykkskraften til assosiasjoner

UML – Assosiasjon som klasse En assosiasjon kan modelleres som en klasse … er ekvivalent med…

UML - Assosiasjonsklasse (1) Assosiasjonsklasse = Klasse som ”holder på” begreper / data som er knyttet til en assosiasjon Notasjon Anonym assosiasjons-klasse Klassen kan også ha navn

UML – Assosiasjonsklasse (2) Assosiasjonsklasse indikerer ofte et eget begrep Assosiasjon blir til klasse…

UML – Aggregering Aggregering = Assosiasjon mellom klasser som er i et Hele – Deler forhold, der Delene kan inngå i flere Helheter Delene kan eksisterer uavhengig av Helheten Notasjon Åpen diamant

UML – Komposisjon Komposisjon = Assosiasjon mellom klasser som er i et Helhet – Deler forhold, der Delene ikke kan inngå i flere Helheter Delene kan ikke eksistere uten Helheten Notasjon Fylt diamant

UML – Aggregering / Komposisjon Bruk av aggregering / komposisjon Når det er et klart helhet - deler forhold Fysisk Logisk Operasjoner på helheten gjelder også delene Sletting Flytting Egenskaper ved helheten gjelder også delene Plassering i rom eller tid Delene har samme levetid som helheten  Komposisjon Kan utelates hvis i tvil – bruk heller en ordinær assosiasjon

UML – Avledet attributt / assosiasjon (1) Avledet attributt = Attributt som kan beregnes på bakgrunn av verdien på andre attributter eller assosiasjoner Avledet assosiasjon = Assosiasjon som kan beregnes på bakgrunn av verdien på andre assosiasjoner Knytte til avledningsregel som beskriver hvordan avledningen gjøres Bruk sparsommelig – kun hvis det er nyttig for forståelsen

UML – Avledet attributt / assosiasjon (2) Notasjon Tilsvarende for avledet assosiasjon / betyr avledet

UML – Kvalifisert assosiasjon (1) Kvalifisert assosiasjon = Definerer Qualifier – en attributt som skiller entydig mellom objektene på mange-side i en assosiasjon Nytte Uttrykke entydig identifikasjon av elementer i mengder Bruk sparsommelig i Domenemodell! Notasjon id Qualifier

UML – Kvalifisert assosiasjon (2) Eksempel ”For hver produktkatalog og id finnes en unik vare” ”For hver produktkatalog finnes mange varer, som hver har en id” id Uttrykker ingenting om entydighet

UML – Roller (1) Rolle = Navn på den ene enden av en assosiasjon Navn på rollen som klassen i ene enden av assosiasjonen spiller Ofte unødvendig å sette på eksplisitt  Rollenavn ofte lik Klassenavn Notasjon Rollenavn

UML – Roller (2) Roller i assosiasjon eller som begrep Rolle Eget begrep

UML – Refleksiv assosiasjon Refleksiv assosiasjon = Assosiasjon fra en klasse til seg selv Roller viktig for å identifisere hvilken ende av assosiasjonen som betyr hva Notasjon / eksempel

UML – Ordning i assosiasjon Elementene i ene enden av assosiasjonen er ordnet Motsatt: Uordnet mengde Notasjon {ordered} Begrensning (constraint): Ordnet mengde

UML – Pakker (1) Pakke = Mekanisme for å organisere modell-elementer i UML Kan organisere pakker i hierarki – pakke i pakke En klasser kan tildeles til en pakke, og eies av denne pakken Kan referere til en klasse i en annen pakke fra enhver pakke Navnekonvensjon: Pakkenavn::Elementnavn Eksempel Pakke: Produkter Klasser: Produkter::Produktkatalog, Produkter::Vare

Avhengighet: B bruker C UML – Pakker (2) Avhengighet mellom pakker En pakke A er avhengig av en pakke B hvis A på en eller annen måte bruker elementer fra B Notasjon Pakkenavn Indre pakke Avhengighet: B bruker C

UML – Pakker (3) Eksempel 1 Organisere klassemodell i flere pakker

UML – Pakker (4) Eksempel 2 Referere til en klasse i en annen pakke Prefix: Pakkenavn

UML – Pakker (5) Eksempel 3 – POS Fig 27.21: Oversikt Fig 27.22: Ymse Fig 27.23: Betaling Fig 27.25: Salg Fig 27.24: Produkter

UML – Pakker (6) Hvorfor gruppere klasser i samme pakke Logisk relaterte klasser Klasser med mange assosiasjoner mellom seg Subklasse- superklasse hierarki Klasser som tilhører ulike delsystem Klasser som lagres på ulike områder Mål med å organisere i pakker Bedre oversikt over modellen Dele opp i naturlige delmodeller av ”passende” størrelse Lav kobling mellom pakker Høy kohesjon innen hver pakke

UML – Tilstandsdiagram (1) Tilstandsdiagram – Modellerer endring (transition) i tilstand (state) som følge av hendelser (events) Tilstand (state) = Beskrivelse av ”situasjonen” til et element Eks.: Telefonen er ledig / Telefonen er opptatt Hendelse (event) = Noe som medfører en endring i tilstand Eks.: Tar av telefonrøret Overgang (transition) = En endring fra en tilstand til en annen når en hendelse opptrer Eks.: Tar av telefonrøret  Telefonen er opptatt

UML – Tilstandsdiagram (2) Eksempel Starttilstand Overgang Tilstand Hendelse

Uml – Tilstandsdiagram (3) Benyttes til å beskrive tilstandsendringer i et eksisterende UML – element Klasser Brukstilfeller ”System” Eksempel Klasse: Telefon Brukstilfelle: Tekstbehandler Brukstilfelle: Brukerdialog Beskriver programlogikk Rekkefølge (eks.: åpne før lagre; cut før paste) Tilgjengelighet (eks.: knapper, menyvalg) Betingelser

UML – Tilstandsdiagram (3) Eksempel - POS

UML – Tilstandsdiagram (4) Mer detaljer for en overgang: kan spesifisere Hendelse - hva som utløser overgangen Betingelse - betingelse for overgangen Aksjon - bieffekter hvis overgangen skjer Notasjon Hendelse : [Betingelse] / Effekt Eksempel: Start telefonsamtale: tar av røret : [gyldig abonnement] / opprett forbindelse Overgang Hendelse Betingelse Aksjon

UML – Tilstandsdiagram (5) Eksempel Betingelse Aksjon Hendelse

UML – Tilstandsdiagram (6) Nøstet tilstand = Tilstand som består av del-tilstander med sine egne overganger En nøstet tilstand arver alle overgangene til sin supertilstand Eksempel Telefon: ”Opptatt” inneholder mer logikk og handlinger enn kun en enkelt tilstand kan angi Opptatt = Summetone + Slå siffer + Få forbindelse + Snakke

UML – Tilstandsdiagram (7) Eksempel Nøstet tilstand Subtilstand

UML – Tilstandsdiagram (8) Mål med å bruke tilstandsdiagram Beskrive klasser / brukstilfeller / delsystem som har kompleks oppførsel Beskrive klasser med tilstand: State dependant = Klasser med ”hukommelse” Motsatt: State independant – ingen ”hukommelse” Eksempler Brukstilfeller – betale for varer (Del)systemer - kredittvurdering GUI vinduer - filbehandling Sesjoner – ”handlevogn” i e-butikk