Objektorientert utforming In 140 Sommerville kap. 12.

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

Memento Object Behavioral Design Pattern. Lagre og hente tilstander • Et system inneholder ofte mekanismer som trenger gjenbruk av tilstander • Memento.
Sekvensdiagram En sekvens viser hvordan objekter samarbeider om en oppgave Diagrammet viser hvem som har kontrollen til enhver tid Det spesifiserer nøyaktig.
Programmering i ActionScript - hva er det, og hvordan undervise?
Høgskolen i Oslo - GM Vær metodisk  Definer og forstå problemet  Spesifiser hva du har av hardware  Lag en prototyp av brukersnittet  Design.
Introduksjon til objektorientert programmering i PHP
Programvaretesting In 140 Sommerville kap 20.
UML & object models av gruppe 8
Objektorientert programmering Objektorientert systemutvikling
Objektorientert programmering i PHP del 2
ObjektOrientert Systemutvikling del I
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.
Grunnleggende testteori
Utforming av arkitektur
Verifikasjon og validering
Prototyping In 140 Sommerville kap. 8. Mål Forstå hensikten med prototyping i forskjellige utviklingsprosjekt Forstå forskjellen mellom evolusjonær 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.
Introduksjon til systemutvikling
Objekt Orientert Programmering (OOP). Objektorientering (OO)1/6 Objektorientering er en grunnleggende måte å organisere komplekse fenomener på.
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.
Sammensatt struktur Visning av intern struktur i et samarbeid mellom objekter Fokuserer på ett av en klasses flere mulige ansvar.
En kort innføring i Design Patterns
Tilstandsmaskiner Tilstandsmaskiner kan beskrives med tilstandsdiagrammer Nivået er teknisk Tilstandsdiagrammet viser ett objekts tilstander og transisjoner.
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.
Strukturerende elementer i UML
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
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.
Automated Testing Tool & When to Stop Testing
Object Oriented Measurement
Programmering i ActionScript - hva er det, og hvordan undervise?
Hjelp! Jeg skal undervise i IT 2!
VI LAGER EN PLATEBUTIKK
Skjemaendringer i systemer bestående av XML-data i relasjonsdatabaser Høgskolen i Gjøvik Master i Medieteknikk, Marianne Brattrud.
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.
Objektorientert utforming
Parallellisering av Coin3D for Systems in Motion av Sveinung Thunes.
1 Systemering In 140 forelesning nr. 2 Sommerville kap. 3.
Programvareendring del 1 In 140 Forelesning Nr 21 Sommerville kap 27, 1. Del.
Programvare- prosesser - del2 In 140 Forelesning nr. 4 Sommerville kap. 3.
Forstudie Nå situasjonen: dagens situasjon med ulemper og fordeler
Gamle systemer In 140 Sommerville kap 26. Forelesninger fremover 8/4:Gamle systemer 22/4: Systemevolusjon og vedlikehold 28/4: Konfigurasjonsstyring.
Gamle systemer In 140 Forelesning Nr 19 Sommerville kap 26.
Objektorientert design
Konstruksjon og Testing Torsdag 30. september 2004 Av Even Aasland Harald Ueland.
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.
Introduksjon til in 140 Systemering. In 140 Systemering Forelesninger Rom 112 –Mandag –Torsdag Lærebok: –Sommerville, Ian. Software.
Use case realisering Designmodellering Kirsten Ribu Kapittel 4 UML Distilled.
1 Programvaretesting del 2 In 140 Forelesning Nr 18 a Sommerville kap 20 del 2.
IN 265 Våren 2003 : Forelesning : Design av arkitektur og komponent 1 IN250 – Om komponent design Mål for forelesningen: l Se på prinsipper.
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.
Tilstandsmaskiner Tilstandsmaskiner kan beskrives med tilstandsdiagrammer Nivået er ofte teknisk, men kan også beskrive biologiske tilstander Tilstandsdiagrammet.
I den prosessorienterte organisasjon spør man
Identifisere behov – og etablere krav
RUP-prosjekt Sammenhengen med UML
Ting Forbindelser Ting og forbindelser blir til sammen et diagram
Objektorientert programmering i Java
Utskrift av presentasjonen:

Objektorientert utforming In 140 Sommerville kap. 12

Mål n Forstå hvordan programvare kan utformes som samhandlende objekter med egen tilstand og egne operasjoner n Kjenne de viktigste stegene i en objektorientert utformingsprosess n Forstå de viktigste modellene som kan brukes til å dokumentere en objektorientert utforming n Bli kjent med hvordan disse modellene kan uttrykkes i UML

Introduksjon n "Ting" heller enn funksjoner n Det ferdige systemet bygges opp av samhandlende objekter n Hvert objekt har ansvar for sin egen tilstand og gir adgang til operasjoner på denne tilstanden. n Tilstand er verdiene til objektets attributter

Introduksjon n Objektorientert utforming går ut på –Identifisere og utforme objektklasser –Designe sammenhenger mellom objektklasser n Når det ferdige systemet kjører –Skapes objekter som definert av objektklassene

Introduksjon n Objektorientert utforming er trinn 2 1. Objektorientert analyse gir en objektorientert modell av anvendelsesområdet. Objekter og operasjoner som identifiseres her hører til anvendelsesområdet 2. Objektorientert utforming gir en objektorientert modell av programvaren som skal oppfylle identifiserte krav. Objekter fra analysen kommer igjen her, men flere objekter må opprettes. 3. Objektorientert programmering er å overføre utformingen til et kjørbart program vha et Objektorientert programmeringsspråk som Java, C++, Smalltalk eller Simula)

Introduksjon – Samme notasjon i hvert trinn – Overgang fra trinn til trinn med økende detaljering og nye objektklasser – Innkapsling gir mulighet for å utsette avgjørelser om datarepresentasjon, objektfordeling og sekvensiell vs samtidig eksekvering

Introduksjon – Uavhengige objekter er vedlikeholdbare –Jo færre andre objektklasser det er kobling til jo større uavhengighet –Innmatendringer og øket tjenestetilbud skal ikke gi behov for endringer hos andre objekter – Klar sammenheng mellom programvareobjekter og tilsvarende virkelige objekter gir forståelighet og dermed lettere vedlikehold – Objekter er gjenbrukbare – fordi de representerer virkelige "ting", ting som går igjen i flere systemer. – Flere mulige metoder for utforming

Objekter og objektklasser – Definisjon Et objekt er en ”ting” eller begrep som har en tilstand og et definert sett av operasjoner som arbeider på tilstanden. Tilstanden representeres ved et sett av objektattributter. Operasjonene til et objekt gir tjenester til andre objekter som benytter tjenestene når data skal behandles Objekter skapes i følge en objektklassedefinisjon. Objektklassedefinisjonen tjener dermed som mal for å lage objekter. Den inneholder deklarasjoner av alle attributter og operasjoner som hører til et objekt av klassen

Objekter i UML

Kommunikasjon mellom objekter – Bruk av tjenester fra andre objekter= metodekall – Informasjonsutveksling gjennom parametere og eventuelt funksjonsverdi – Meldingsbasert kommunikasjon – I samme program som tradisjonelle prosedyrekall

Samtidige (Concurrent objekter) n Objekter kan kjøre som parallelle prosesser (tråder) n Objekter kan eksistere på separate systemer n I praksis er standardinnstillingen utførelse i rekkefølge, med metoder som prosedyrekall n Java inneholder støtte for tråder. Enkelt å lage parallelle prosesser n To vanlige løsninger –Severobjekter, som starter for å betjene et behov. Eksempel: separate systemer, utskriftstjeneste. Hensikt: Unngå venting –Aktive objekter, selvstyrte tilstandsmaskiner. Hensikt: Tidsstyrt operasjon, Enklere programlogikk.

An active transponder object

OO utformingsprosess n Definer kontekst og modeller av bruk n Utform systemarkitektur n Identifiser objekter og deres klasser n Utvikle utformingsmodeller n Spesifiser objektgrensesnitt

Eksempel værdatasystem n Hensikt: Lage værkart fra forskjellige datakilder –automatiske værstasjoner –værobservatører –ballonger –satellitter n Lagdelt arkitektur

System kontekst og modeller av bruk n Utvikle en forståelse av relasjonene mellom programvaren som skal utvikles og omgivelsene til systemet n System kontekst –Statisk modell som beskriver andre systemer i omgivelsene. n Modell av bruk av systemet – Beskriver hvordan systemet samhandler med omgivelsene

Lagdelt arkitektur

Subsystemer i værstasjonsystemet

Use-cases for en automatisk værstasjon

Use-case beskrivelse

Utformingsmodeller n Utformingsmodeller viser objekter og klasser og relasjoner mellom dem n Statiske modeller beskriver strukturen til systemet basert på klasser og relasjonene mellom dem n Dynamiske modeller beskriver dynamikken i objekter og/eller mellom objekter

Eksempler på utformingsmodeller n Subsystem modeller n Klassediagrammer n Sekvensdiagrammer n Tilstandsmaskinsmodeller n Use-case

Værstasjonens arkitektur

Weather station object classes

Værstasjonens subsystemer

Subsystem modeller n Viser hvordan utformingen er organisert i logiske deler (pakker) av objekter n Bruker UML ”packages” for å innkapsle delsystemer. Logisk modell, kan være annerledes i programmet.

Sekvensdiagrammer n Viser hvordan objekter samhandler –Objektene på toppen av diagrammet –Vertikal tidsakse –Samhandling vist med piler –Bokser på tidsaksen viser at objektet er aktivt(har kontroll)

Sekvensdiagram for datainnsamling

Tilstandsdiagrammer n Dynamisk modell n Viser hvordan objektet endrer tilstand etter interaksjon med andre objekter

Tilstandsdiagram for værstasjon

Objekt grensesnitt spesifikasjon n Bør defineres så tidlig som mulig => muliggjør parallell utvikling n Ikke definer representasjon av objektet, kun grensesnittet n Objektet kan ha flere grensesnitt n Klassediagrammer kan være tilstrekkelig spesifikasjon, men også bruk av programmerspråk, for eksempel JAVA

Grensesnitt for værstasjon

Evolusjon av objektorienterte systemer n Lett å endre utforming –Attributtrepresentasjon påvirker ikke utformingen –Å endre innmaten i et objekt skal ikke påvirke andre objekter –Lav kobling gjør det lett å introdusere nye objekter –Arv og polymorfisme letter introduksjon av nye objekter –Nye metoder kan introduseres uten å endre metodene som er der fra før.