Objektorientert systemutvikling og UML  OOSU er den mest anvendte metoden på både store og små prosjekter  UML er det mest anvendte beskrivelsesspråk.

Slides:



Advertisements
Liknende presentasjoner
Memento Object Behavioral Design Pattern. Lagre og hente tilstander • Et system inneholder ofte mekanismer som trenger gjenbruk av tilstander • Memento.
Advertisements

Sekvensdiagram En sekvens viser hvordan objekter samarbeider om en oppgave Diagrammet viser hvem som har kontrollen til enhver tid Det spesifiserer nøyaktig.
Realisering av Software Patterns Software Design Patterns Realisering med kode Refaktorering Gjenkjenning av mønstre.
Brukstilfeller Hva en bruker kan sette i gang
Objektorientert systemutvikling og UML
IMT OOSU 28.sept Dagens tema : forts. DESIGN PATTERNS ObjektOrientert Design = Bevissthet i tildeling/fordeling av ansvar til softwareklasser for.
Beslektede algoritmer. Isolere klient fra algoritme  Klienter trenger av og til helt forskjellige måter å gjøre det samme på  Men klienten selv kan.
UML & object models av gruppe 8
Unified Process – Elaboration Iterasjon 3
Variasjoner i subklasser.  Prinsippskissen er meget enkel  En abstrakt klasse har en konkret metode og en abstrakt metode  Hver subklasse realiserer.
Mønstre og tekniske applikasjoner
Flere UML diagrammer UML Distilled kap. 7,8, 9 Kirsten Ribu
Flere UML diagrammer UML Distilled kap. 7,8, 9 Kirsten Ribu
Operativsystemer.  Tilstandsmaskiner kalles på engelsk Finite State Machines.  Tilstandsmaskiner er en metode til å beskrive systemer med logisk og.
Systemmodeller In 140 Sommerville kap. 7. Mål Forstå hensikten med kontekstmodell Forstå ideene bak –oppførselsmodellering –datamodellering –objektmodellering.
Objektorientert utforming In 140 Forelesning Nr 13 Sommerville kap 12 – del 2.
Siste forelesning ER/EER-modellering
4/4/2017 IMT2243: 17.februar 2011 Domenemodellering / Konseptuelle Klassediagram Monopol- eksempel SSD : System Sequence Diagram Kort repetisjon av teknikken.
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,
Sekvensdiagram En sekvens viser hvordan objekter samarbeider om en oppgave Diagrammet spesifiserer hvem som har kontrollen til enhver tid Det vises nokså.
Prosjektet transparente lag Composite og tegnende objekter Decorator og gui-kontrollere Factory Method Iterator.
Sammensatt struktur Visning av intern struktur i et samarbeid mellom objekter Fokuserer på ett av en klasses flere mulige ansvar.
GRASP General Responsibility Assignment SP GRASP er et hjelpemiddel for å lære om OD GRASP er retningslinjer for å fordele og tildele ansvar mellom klasser.
En kort innføring i Design Patterns
GoF GoF er fire systemutviklere, Gang of Four GoF fikk utgitt boken Design Patterns høsten 1994 Boken Design Patterns er en klassiker Design Patterns beskriver.
Tilstandsmaskiner Tilstandsmaskiner kan beskrives med tilstandsdiagrammer Nivået er teknisk Tilstandsdiagrammet viser ett objekts tilstander og transisjoner.
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.
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.
Domeneklasser En applikasjon kan ha domenesvake og domenesterke klasser.
Koblingspunkter De fire forbindelsene (avhengighet, assosiasjon, generalisering og realisering) definerer konkrete koblingspunkter I tillegg har UML mer.
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”
 Diagramtypene gir til sammen  oversikt over modulene i systemet  innsikt i strukturen  innsikt i dynamikken 1V. Holmstedt 2009.
Combining Compound Conceptual User Interface Components with Modelling Patterns - a Promising Direction for Model-based Cross-platform User Interface Development.
DEKOMPONERING OG MODULARITET ~Gruppe 4~. Gjennomgang Designtyper/kriterier innen dekomponering Dekomponeringsspesifikasjon Strukturert og objektorientert.
Innkapsling av request. Køing, logging, angre Command tilhører gruppen av ”behavioral patterns” Instanser av mønsteret leder til instanser av forespørsler.
XML og Composite Pattern Mønstre og bygging av xml-tre.
Aktivitetsdiagrammer
Verktøy i faget ”Objektorientert systemutvikling og UML” Eclipse Together Architect for Eclipse
Aktivitetsdiagrammer Viser en side ved systemets dynamikk Kan spesifisere et brukstilfelle Viser rekkefølgen i aktiviteter Konstruerer løsningen av en.
Billettautomat med felle. Forbedret automat Klasse og operasjon i aktiviteten Klassen er Billettluke Operasjonen er pengerTilbake() Skilletegnet er dobbelt.
CARISMA Context-Aware Reflective Middleware System for Mobile Applications.
Verktøy i faget ”Objektorientert systemutvikling og UML” Eclipse Together for Eclipse
PUG-NORWAY OKTOBER 2008 THOMAS SKJØRTEN, HILDE ANDREASSEN UML og OpenEdge OOABL.
Objektorientert utforming
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.
Brukermedvirkning In 140 Forelesning. Historie Skandinaviske tradisjon Sosio-teknisk metode NJMF-prosjektet( ) –Dataavtalen LO-NAF(i dag NHO) –Arbeidsmiljøloven.
Brukstilfeller Mange skiller mellom flere typer brukstilfeller
Objektorientert design
Objektorientert utforming In 140 Forelesning Nr 11 Sommerville kap 12 – del 1.
Systemmodeller In 140 Forelesning nr. 9 Sommerville kap. 7.
Objektorientert design In 140 Sommerville kap 12 – del 1.
Use case realisering Designmodellering Kirsten Ribu Kapittel 4 UML Distilled.
Arv Gjenbruk. Begreper Super Overriding – Samme signatur Polymorfi – «en ting kan bety mange ting»
Tilstandsmaskiner Tilstandsmaskiner kan beskrives med tilstandsdiagrammer Nivået er ofte teknisk, men kan også beskrive biologiske tilstander Tilstandsdiagrammet.
Strukturerende elementer i UML
Aktivitetsdiagrammer
RUP-prosjekt Sammenhengen med UML
Ting Forbindelser Ting og forbindelser blir til sammen et diagram
Koblingspunkter De fire forbindelsene (avhengighet, assosiasjon, generalisering og realisering) definerer konkrete koblingspunkter I tillegg har UML mer.
Diagramtyper og formål
Billettautomat med felle
Koblingspunkter og diagramtyper
”Objektorientert systemutvikling og UML” Eclipse Visual Paradigm
Utskrift av presentasjonen:

Objektorientert systemutvikling og UML  OOSU er den mest anvendte metoden på både store og små prosjekter  UML er det mest anvendte beskrivelsesspråk for OOSU  UML er universelt anvendelig innenfor alle områder i OOSU  OOSU og UML er en teknisk/vitenskapelig tilnærming til systemutvikling

UML personligheter  David Harel, tilstandsgrafer  Grady Booch, Booch method  Jim Rumbaugh, OMT  Ivar Jacobson, Objectory  Alan Turing (

Historisk om UML

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, realisere en abstraksjon

Ogdens triangel

UML har fire formål  Visualisering  Spesifisering  Konstruering  Dokumentering

UML og ting  Det er 1 type forklarende ting  Det er 1 type grupperende ting  Det er 2 typer ting med oppførsel  Det er 7 typer strukturerende ting

Klasse  Grunnsymbolet for klasse er en firkant med klassenavnet på innsiden  Symbolet kan utstyres med attributter og operasjoner  Attributtene står for det klassen vet  Operasjonene er hva klassen kan gjøre

Abstrakte klasser  Vanlige klasser kan instansieres  Abstrakte klasser kan ikke instansieres  Abstrakte klasser kan ha attributter  En abstrakt klasse har minst en udefinert operasjon  Abstrakte klasser utnyttes gjennom spesialisering  Spesialiseringen er å definere udefinerte operasjoner

Interface  Interface er mindre enn abstrakte klasser  Interface mangler nemlig attributter og konkrete operasjoner  Interface bygger en felles meldingsstruktur mellom rammeverk og domeneklasser

Samarbeid  Strukturen i et samarbeid vises med en stiplet ellipse  Navnet på samarbeidet vises inne i ellipsen  Symbolet kan også vise mer detaljert hvilke elementer i systemet som inngår i samarbeidet  Samarbeid kalles også kommunikasjon i UML  Samarbeidsgrafen kan nemlig vise hvilke elementer som sender meldinger til hverandre  Samarbeidsgrafen er et teknisk symbol

Brukstilfeller  Brukstilfeller minner om samarbeid  Symbolet brukes ofte i ikke-teknisk sammenheng  Grafen er en heltrukken linje  Symbolet kan brukes både om systemaktiviteter og domeneaktiviteter  Mange bruker det også om forretningsaktiviteter  Grunngrafene kan brukes i møtet mellom systemutviklere og domeneeksperter  Objektorienterte ornamenter (s. 60) brukes bare av systemutviklere

Aktive klasser  Aktive klasser kontrollerer sine egne tråder eller prosesser  Klassen har derfor ofte et statisk deklarert entry point  Men klassen kan også ha et dynamisk deklarert entry point fra et interface

Komponenter  En komponent er en utskiftbar enhet  UML-brukere har litt ulik praksis for hva begrepet komponent dekker  En komponent er en instans av noe kjørbart  Med UML 2.0 har mange tidligere komponenter blitt til artifakter

Noder  En node er et fysisk punkt  Et stykke maskinvare er en node  Et operativsystem er en node  JRE og JVM er noder  En node er nemlig et fysisk kjøremiljø for en applikasjon

Assosiasjon  En assosiasjon kan være svak  En assosiasjon kan være sterk  Disse to formene for assosiasjon kalles også aggregering og komposisjon

Generalisering  Generalisering innebærer gjenbruk  Symbolet peker mot det mer generelle og gjenbrukbare  Det spesielle er mer domenespesifikt enn det generelle  Det spesielle er derfor mer brukbart og samtidig mindre gjenbrukbart

Generalisering  En generalisering kan spesialiseres for flere ulike domener

Realisering  Realisering innebærer konkretisering av det abstrakte  Symbolet peker fra det konkrete mot det abstrakte  Det peker altså fra noe domenespesifikt til noe generelt

Realisering  Interface og abstrakte klasser må implementeres eller realiseres før de kan brukes i et domene

Hvorfor diagrammer?  Bruk diagrammer  for å lære om systemet eller deler av det  for å konstruere systemet eller deler av det  for å dokumentere systemet eller deler av det  for å spesifisere entydig systemet eller deler av det  Hva får vi?

Viser en side ved systemets dynamikk Kan spesifisere et brukstilfelle Viser rekkefølgen i aktiviteter Konstruerer løsningen av en oppgave Dokumenterer vanligvis mer menneskelig enn teknisk dynamikk

Forgrening  Kan vises som aktivitet med flere utgående transisjoner  Hver transisjon kan forsynes med en betingelse  En av dem kan ha else

Parallelle aktiviteter  En transisjon går inn i det første symbolet  Flere transisjoner går ut fra det første symbolet og inn i det parallelle området  Flere transisjoner går inn i det andre symbolet  En transisjon går ut fra det andre symbolet

Kombinasjon av signaler  Avanserte signaler kan kombineres  Eksterne signaler kan også modelleres

Tilstandsmaskiner kan beskrives med tilstandsdiagrammer Nivået er teknisk Tilstandsdiagrammet viser ett objekts tilstander og transisjoner Objektdiagrammet viser flere objekters tilstander på en gang Tilstandsdiagrammet viser hva som skal til for å endre tilstanden

Grunnleggende diagram  Hver tilstand vises som en avrundet firkant  Hver tilstand må ha en merkelapp  Hver transisjon har retning  Transisjonen kan ha merkelapp  Stopp viser hvilken tilstand objektet må være i rett før det destrueres

Transition label  Transition label, eller ”merkelapp”, har tre avdelinger  Alle avdelingene er valgfrie

Tilstandsoperasjoner  entry/ spesifiserer operasjoner ved inngangen til tilstanden  exit/ spesifiserer operasjoner ved utgangen fra tilstanden  do/ spesifiserer operasjoner i selve tilstanden  I tillegg kan språket utvides ved å definere nye tilstandsord

Sammensatte tilstander  Sammensatte tilstander har topptilstand  Under topptilstanden kan det finnes ulike sammensatte tilstander

Sekvensielle tilstander  Husholdningsmaskiner kan kreve høy grad av systemforståelse fra vanlige brukere  Adax elektroniske varmelistsystem er et eksempel  Adax veiledninger og oversikter for forbrukerenveiledningeroversikter

Forenkling og fokusering  Kompliserte diagrammer er ikke så lærerike  Diagrammer som ser for enkle ut er ofte bedre

Samtidige tilstander  Samtidige tilstander modellers i samme tilstandsgraf  Tilstandene deles med en stiplet linje

Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”

High Cohesion  Metoder med en oppgave  Objekter med få og enkle tilstander  Klasser med høy konsentrasjon om ett ansvarsområde  Applikasjonslag med konsentrasjon om ett område  Bidrar til enkel API  Høy grad av abstraksjon og enkel gjenbruk  Bidrar til lav kobling

Low coupling  Kobling vises som assosiasjoner mellom klasser  Lav kobling vises som få assosiasjoner

Struktur i Command  Isolerer kilde og utfører  Mønsteret viser isoleringen mellom invoker - receiver, og Client - ConcreteCommand

Command  Command oversetter brukerimpulser til systemoperasjoner

Praktisk problem og LoD  Snakk bare med de nærmeste

Praktisk design med LoD  La en venn ordne problemet

Generelt kart over LoD  Klassen Ansvar har bare noen få nære Venn-er

Layers, 3-tier  GRASP Forretningssystemer er lagdelte

Layers, n-tier  Systemets størrelse krever av og til flere lag  Klikk for detaljer Klikk

Praktisk lagdeling  Figuren viser en lagdeling av et kinosystem