Objektbasert modellering med UML (og Rational Rose ) - intro

Slides:



Advertisements
Liknende presentasjoner
Hvor stor er en fisk? Yggdrasil Hvor stor er en fisk?  Vanlige kundetyper og prosjekter  Faktorer som påvirker.
Advertisements

Del 3 : Patterns (Kap 16 – kap 20, Craig Larman) Arne Maus Inst. for informatikk, UiO.
Sekvensdiagram En sekvens viser hvordan objekter samarbeider om en oppgave Diagrammet viser hvem som har kontrollen til enhver tid Det spesifiserer nøyaktig.
Litt mer om PRIMTALL.
Grafisk design Visuell kommunikasjon
Sunndalsøra Registertjenester Per Ivar Larsen Sugar
1 Objektorientert samvirke - del 4 av Arne Maus, Institutt for informatikk, Universitetet i Oslo.
Møre og Romsdal. 2 Ligger det et bedehus eller et kristelig forsamlingshus (ikke kirke) i nærheten av der du bor? (n=502) i prosent.
1 Litt om OO og programmering Arne Maus. 2 OO og Java (og C++, C#)  Arven fra Simula  Programstruktur i Java  Generering av objekter  Beskyttelse.
UML & object models av gruppe 8
Objektorientert programmering Objektorientert systemutvikling
ObjektOrientert Systemutvikling del I
Programmering av dynamiske websider i C# - hva er det, og hvordan undervise? Tom Heine Nätt.
Eiendomsregister - eksempel
Flere UML diagrammer UML Distilled kap. 7,8, 9 Kirsten Ribu
Flere UML diagrammer UML Distilled kap. 7,8, 9 Kirsten Ribu
Forelesningsnotater SIF8039/ Grafisk databehandling
Operativsystemer.  Tilstandsmaskiner kalles på engelsk Finite State Machines.  Tilstandsmaskiner er en metode til å beskrive systemer med logisk og.
Verifikasjon og validering
Programvare-prosesser
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
Hovedprosjekt nr 57E: Et nettverksspill laget med Microsoft komponentteknologi, Microsoft Transaction Server og Rational Unified Process Gjennomføres av.
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.
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”
Kirsten Ribu HiO Systemutvikling – LO 135A Høsten 2005 Kirsten Ribu.
Oppsummering av hovedområdene i kurset LO 135A Kirsten Ribu
Kirsten Ribu HiO Systemutvikling – LO 135A Våren 2005 Kirsten Ribu.
Bygg og funksjon – å bestille et bygg – roller i en byggeprosess
1 Skal vi snakke sammen? Jan Håvard Skjetne SINTEF / University of Melbourne
Empiriske metoder Oppgaveanalyse, observasjon
Mats B. Pettersen Jøran B. Sandberg SIF80AP
UML og grensesnitt UML er standard for modellering innen objekt-orientert programvare kan UML også brukes til modellering av grensesnitt? fordel: bedre.
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
Automated Testing Tool & When to Stop Testing
Hva er UML (Martin Fowler)
Verktøy i faget ”Objektorientert systemutvikling og UML” Eclipse Together Architect for Eclipse
Prosjektoppgave Modelldrevet utvikling og brukeragenter for kommunikasjon i sykehusomgivelser Marie S. Fuglesang NTNU, høsten 2004.
Testing av objektorienterte systemer Testplanlegging
PUG-NORWAY OKTOBER 2008 THOMAS SKJØRTEN, HILDE ANDREASSEN UML og OpenEdge OOABL.
Umlus Program for å teikne UML-diagrammar Hovedprosjekt ved Høgskolen i Bergen Våren 2002.
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.
Main metoden n public static void main(String[] args){ } n Inni denne metoden skjer alt! n Det kan bare finnes en main metode per program. n Den kan ligge.
Programvare- prosesser - del2 In 140 Forelesning nr. 4 Sommerville kap. 3.
Dagligbankundersøkelsen Fakta Dagligbankundersøkelsen intervju Befolkning 15 år + TNS Gallup Forfatter Bente Pettersen Roar Thorvaldsen.
Forstudie Nå situasjonen: dagens situasjon med ulemper og fordeler
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.
IN 265 Våren 2003 : Forelesning : Design av arkitektur og komponent 1 IN250 – Om komponent design Mål for forelesningen: l Se på prinsipper.
Strukturerende elementer i UML
RUP-prosjekt Sammenhengen med UML
Ting Forbindelser Ting og forbindelser blir til sammen et diagram
Programvareprosessen styrer utviklingen
Utlånssystem for datautstyr
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

Objektbasert modellering med UML (og Rational Rose ) - intro Arne Maus Inst. For Informatikk Univ. I Oslo

Hvorfor lager vi modeller Som hus-arkitekter, må enhver ansvarlig (programvare-) ingeniør lage en modell før man lager den virkelige konstruksjonen. Enkle konstruksjoner (< 1 dagsverk) trenger bare enkle modeller Vi trenger derfor modeller for våre kompliserte systemer: Synliggjøre konstruksjonen og alternativer (for oss selv) Beherske kompleksitet - oversikt og oppdeling Kommunikasjon mellom flere utviklere - og med brukere/oppdragsgiver Vi trenger flere typer og flere modeller - ulike perspektiver på: ulike egenskaper ved (hele) systemet modeller for deler av systemet Sentralt i modellering av alle systemer står ulike diagramtyper.

”full pakke” for OO systemutvikling Systemutviklings-modell (prosess) : I.Jacobson, G. Booch, J. Rumbaugh:’The Unified Software Development Process’, Addison Wesley, 1999 Notasjon/diagrammer/dokumentasjon for analyse/kravspesifikasjon og design: UML (ver 1.3) Verktøy for sømløs utvikling fra spesifikasjon/analyse til kode : f.eks Rational Rose XDE Verktøy for kode-bearbeiding (kompilering, debugging, versjoner og varianter..): eks: Visual Studio /.NET Database modellering og sammenknytning : eks: ERWin Tilsvarende RationalRose mot databaser (forward- og reverse-engineering av ER-diagrammer mot relasjonsdatabaser)

OO systemutviklings-prosesser: Iterative - dvs. ikke som fossefallsmodellen, hvor en fase fullføres / sluttføres før neste fase tar til : (Fossefalls-fasene: Kravspesifikasjon, system spesifikasjon, arkitekturdesign, grensesnittdesign, detaljert design, koding, enhetstesting, modultesting, integrasjonstesting, system/beta-testing, akseptansetest, leveranse, vedlikehold) OO har ofte tidlige prototyper, som Boems spiralmodell Fleksibel, tilpasses problemtype ulike diagramtyper ulik vekt på ulike faser Ikke teoretisk, men pragmatisk Analyse (kalles ofte kravspesifikasjon) og design tett sammenvevet Mange foreslag er nær sammenfallede (Rational, Mathiassen,..)

RUP fra Rational – ellers UP: Prosjektet deles inn i 4 faser: Forprosjekt (Videre)utvikling Konstruksjon Transisjon, ferdiggjøring Hele tiden holder vi på med flg. aktiviteter med produkter som resultat Kravspesifikasjon - bruksbeskrivelser Design arkitektur - designmodell for system, moduloppdeling klasser - designmodell for klasser Implementasjon - implementasjonsmodell (programmkoden) Test - testplan Prosjektledelse - prosjektplaner Prosesskonfigurering - beskrivelser, retningslinjer Bortsett fra i forprosjekt-fasen, itererer vi disse aktivitetene og forbedrer produktene en rekke ganger: 1,2,..,m

Faser, aktiviteter, iterasjoner og produkter (Rational)

Rationals systemutviklingsprosess Meget godt beskrevet i Martin Fowler & Kendall Scott: ”UML Distilled” Ikke formell - behøver ikke å beskrive hele systemet med diagrammer etc. før man skriver koden Diagrammene er for: selv å holder oversikt over oppdelingen av systemet og logikken i systemet kommunikasjon innad i prosjektet hjelp i utformingen av vanskelige punkter dokumentasjon av vanskelige punkter skal være en hjelp - ikke tvangstrøye UML er dekket av flere verktøy - bl.a Rational Rose, men man trenger alltid ikke fancy verktøy

Mathiassen: OO systemutvikling - modell, bruk og arkitektur Analyse av problemområde Design av arkitektur Analyse av bruk og grensesnitt OO- modell Spek. av Bruker- krav system- komponenter

Mathiassen: OO systemutvikling (II) Problemområde: Analyse av det systemet vi skal lage et edb-system for Finne ut hvilke objekter, deler det består av for vårt formål Bruk og grensesnitt ( anvendelsesområdet) Analyse av den organisasjon (med brukere og andre systemer) som skal nytte det nye edb-systemet Arkitektur Hvordan gruppere programvaren i (større) komponenter Hvordan fordele programkomponentene på maskinutstyret Baserer seg på UML notasjon i analyse og design

UML og Rational Rose - oversikt Er begge laget av samme firma, som eies av de 3 store innen OO analyse&design (’the three amigos’): I.Jacobsen, G. Booch, J. Rumbaugh. UML: vedtatt ’industristandard’ for OO-analyse/design diagrammer Rational Rose: CASE-verktøy for spesifikasjon, analyse, design og kodegenereringsfasene av et prosjekt Tegneverktøy for alle typer UML-diagrammer med utfyllende tekster Generer kode (C++, Visual Basic, Java,..) fra diagrammene (forward engineering) Genererer UML diagrammer fra gammel kode - og: Oppdaterer eksisterende UML-diagrammer fra korreksjoner/tillegg i koden (reverse engineering) Meget dyrt

Rational og UML Rational UML Firma som laget et OO-CASE-vektøy ROSE og har slått seg sammen med/kjøpt opp : Atria (som lager Quantify og Purify) Objectory (som var firmaet til I. Jacobson) Se: http://www.rational.com for nedlasting av UML - dokumenter og gratis demo (9.5 Mb) av RationalRose for WinNT Ser ut til å bli en vinner, brukes bla. av SDS og Norges Bank med positive erfaringer UML Den viktigste av flere forslåtte standarder for OO diagrammer Ett diagram kan aldri si alt om et system / en modell 9 ulike diagramtyper - hver viser ulike aspekter ved en del av systemet (noen typer nyttes oftere enn andre) UML brukes av mange metoder (er uavhengig av RationalRose) Anbefalte bøker: Martin Fowler &Kendal Scott : ” UML distilled” Addison Wesley 1999 L. Matiassen, A. Munck-Madsen, P.A. Nielsen, J. Stage: ” Objektorientert analyse og design”, MARKO Aalborg 1997, (ISBN 87-7751-123-9) Craig Larman : Applying UML and Patterns, sec.ed. Prentice Hall 2002

UML - Unified Modeling Language Definerer notasjon og semantikk for: class-diagram * * * - forhold mellom klassene og pakker, statisk og dynamisk object diagram ** - typisk forhold mellom noen objekter ved et tidspunkt use case diagram* * * - hovedfunksjonalitet mellom bruker og system sequence diagram * * - rekkefølge på kall/meldinger mellom klasser collaboration diagram * - interaksjon og forhold mellom objektene(sqd-,cd-) state diagram * - tilstandsdiagram for ett eller flere samvirkende objekter activity diagram * - spesialtilfelle av std component diagram - organisering og forhold mellom moduler / pakker deployment diagram - hvordan systemets deler er distribuert på maskinvaren.

Sentrale UML begreper (I) klasser, subklasse, innkapsling, polymorfisme (virtuelle) og objekter pakke ansamling av klasser og evt. andre pakker modul programvare-enhet som kompileres separat melding utveksling av en melding (ved prosedyrekall) fra ett objekt til et annet assosiasjon forhold/avhengighet mellom to klasser - med antall-begrensninger (f.eks: ansatte og lønn, hus og eier, vare og selger, vare og regning..) aggregering betegner at et objekt inneholder/består av et visst antall andre objekter (en bil har fire hjul, en stor bedrift har mange ansatte,..)

Sentrale UML begreper (II) synkron/asynkron meldingsutveksling Sendende objekt venter/venter-ikke på svar før det fortsetter samarbeid (collaboration) flere objekter som løser en oppgave ved utveksling av meldinger synspunkt (view) spesielt syn på (del av) modellen - utelater ikke-interessante detaljer Skillet mellom assosiasjon og aggregering er ikke alltid like klart i praksis, UML opererer også med enda et begrep: sammensetting (composition) (= alltid-del-av) Sterkere enn aggregering - betegner livslangt, fast forhold som ikke kan brytes (et menneske har en hjerne og et hjerte, et fly har vinger ,..) I praksis er dette skillet ikke så viktig, men assosiasjon, aggregering, composition betegner svak-middels, sterk, alltid forbindelse mellom objekter

Ulike systemer kan modelleres Administrativ edb Use cases, klassediagrammer, sekvensdiagrammer, deployment Tekniske , naturvitenskapelig databehandling (use cases), klassediagrammer, sekvensdiagrammer, tilstandsdiagrammer Sanntidssystemer use cases, klassediagrammer, aktivitetsdiagrammer, sekvensdiagrammer, tilstands-diagrammer

use case Brukes først i analysen Lettest: Finne først noen aktører Deretter finne typisk brukssituasjoner for disse Utfyller disse senere med sekvensdiagram for hvert interessante ’use case’ Meld på kurs Arranger eksamen student Opprett nytt kurs Foreleser Registrer påmelding Stud-adm Skriv vitnemål

Klasse-diagrammer beskriver: Ulike typene av objekter i systemet De forhold objekter av disse klassene evt. har til hverandre assosiasjon (tilknytning): a) inneholder / aggregering (eks : en student har tatt 20 eksamner, en datamaskin har 2 CPUer) b) annen tilknytning/ bruker/kaller prosedyre i (eks: en student melder seg til et kurs hos en studie-adm objekt, en kunde tar ut penger fra et konto-objekt via en minibankobjekt,..) Antall objekter på hver side av forholdet (f.eks: 1 - til -mange) Evt. subklasse (eks: en student er en subklasse av klassen person)

Klassediagram eksempel 1

class-diagram (I)

class-diagram (II) forhold mellom klassene, statisk og dynamisk

class-diagram (III)

arv

object diagram Viser forholdet mellom noen objekter (ofte av angitt type) under eksekvering Brukes til å eksemplifisere bruk av klassene i implementasjonen. ArneMaus DagSjøberg foreleser foreleser in219

sequence diagram

sequence diagram, Studentregistrering - eksempel

Parallellitet i sekvensdiagrammer Asynkron melding (sender fortsetter) Pallellisering controller Objektet terminerer (’delete’ på seg selv) Beregning prosess 1 new new Beregning prosess 2 Vanlig sekvensielt kall returOK returOK

Automatisk generert prosedyre i ’kurs.cpp’ - tatt fra VisualC++

collaboration diagram

Samarbeids-diagram (generert fra sekvensdiagrammet)

object diagram Viser forholdet mellom noen objekter (ofte av angitt type) under eksekvering Brukes til å eksemplifisere bruk av klassene i implementasjonen. ArneMaus DagSjøberg foreleser foreleser in219

Parallellitet i sekvensdiagrammer Asynkron melding (sender fortsetter) Pallellisering controller Objektet terminerer (’delete’ på seg selv) Beregning prosess 1 new new Beregning prosess 2 Vanlig sekvensielt kall returOK returOK

tilstands-diagram (state diagram) Brukes til å vise hvordan ett enkelt objekt oppfører seg over flere ’use cases’ = mulige endringer i objektet og handlinger fra dette ved ytre påvirkning (ved kall/signaler/inndata fra brukere, andre objekter eller systemer)

activity diagram Finn drikke Finn Cola Finn kopper Ta i vann Putt kaffe i Sett i filter Skru på Trakt kaffe Hell kaffe Drikk Start Kaffe = NEI Kaffe = JA Cola ? Cola = JA Cola = NEI Inneholder brede linjer som sprer og samler parallelle aktiviteter. Slutt

component (pakke) diagram Pakke navn 2 klasse 1 Pakke navn 1 klasse 3 klasse 2

deployment diagram

Hva kan vi oppnå med UML Oversikt og oppdeling (for deg og prosjektet) Kommunikasjon med andre Gjenbruk av analyse/design Bedre utgangspunkt for kode enn: et gammelt ’lignende system’ en udokumentert (i-hodet) ide Kan vedlikeholdes effektivt Bedret dokumentasjon UML har mangler - mangler f.eks. kobling mot mer formelle metoder (som: Z) og databaser Går vi mot ’visuell’ programmering ?

Erfaringer med RRose & VisualC++ Generelt sett gode Uhyggelig mange opsjoner (plassering, kodegenerering.. etc) Lett å få plassert kode i feil katalog Standardopsjonene virket rimelig OK Rational har ca 13 utviklingsverktøy på hjemmesidene sine. Meget dyre brukerlisenser Genererer bare skjelettkode fra klassediagram Det finnes tilleggsverktøy som genererer kode fra sekvensdiagrammet