UML 2.0 och dess roll för modellbaserad utveckling



Relevanta dokument
UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget % misslyckades!

TDP005. Föreläsning 3 - UML. Filip Strömbäck

Inkapsling (encapsulation)

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

RUP - Rational Unified Process

Arkitektur Michael Åhs

Användning av modeller för system/produktutveckling

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

Symptom på problemen vid programvaruutveckling

Metoder och verktyg för funktionssäkerhet

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Copyright Syntell AB 1

RUP Rational Unified Process. 17 november 2004

Objektorienterad analys och design

Föreläsning 1, vecka 6: Abstraktion genom objektorientering

Opponentrapport på examensarbete Utveckling av ett affärssystem med Unified Process av Therese Sundström.

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

Objektorientering. Grunderna i OO

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Imperativ programmering. Föreläsning 4

Lösningsförslag till tentamen i EDAF25 Objektorienterad modellering och design Helsingborg

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Tentamen i EDAF25. 1 juni Skrivtid: Skriv inte med färgpenna enda tillåtna färg är svart/blyerts.

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN Åbo, Finland url:

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Modellbaserad utveckling med UML 2.0 JOHAN SÄFSTRÖM

Objektorienterad analys och design

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

Introduktion. Byggstenar TDBA

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Lyckade projekt - finns det?

Tillämpning av Unified Process och Design Patterns vid integrering av system

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Objektorientering Användning

+5V. start. Styrsystem. stopp. Tillståndsmaskiner

Tentamen i Objektorienterad modellering och diskreta strukturer

Tentamen i Objektorienterad modellering och diskreta strukturer

Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved.

Design. Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering sammanfa0ning 13/04/14

Föreläsning 15: Repetition DVGA02

Designmönster - EMW. Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL:

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Web Services. Cognitude 1

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Projektering av informationssystem

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

+5V. start. Styrsystem. stopp. Tillståndsmaskiner

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Relationer mellan objekt

Hur tycker vi det hänger det ihop?

Föreläsning 11 Tisdag 6/6 2000

Informationssystem och databasteknik, 2I-1100

Företagsmodellering i UML

Objektorienterad programmering

Våra erfarenheter av Modellbaserad

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Föreläsning om OO, OOA och UML

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Observer Pattern och MVC. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Tentamen i: Affärssystem och tjänsteorienterad arkitektur

Lambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017

Praktikum i programvaruproduktion

TDP005 Projekt: objektorienterade system

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Programmerbar logik (PLD) Programmeringsspråket VHDL Kombinatoriska funktioner i VHDL för PLD Sekvensfunktioner i VHDL för PLD

F2: Krav på objektorienterat språk

Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Roller i mjukvaruprojekt. Åke Liljenberg ake.liljenberg@volvo.com

Begreppsmodellering i UML

Prototypningsverktyg. A Human-Centered Design Process (ISO , 2010) Mattias Institutionen för datavetenskap

Separation of Concern. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018

Tentamen. DD2385 Programutvecklingsteknik vt Fredagen den 5 juni 2009 kl Inga hjälpmedel utom penna, sudd och linjal

Tentamen i Objektorienterad modellering och design

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Testdriven utveckling av Web Services. Ole Matzura

Föreläsning 2. Operativsystem och programmering

Konstruktion av klasser med klasser

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

SKOLFS. beslutade den XXX 2017.

Instuderingsuppgifter läsvecka 2

Vad är. Domändriven design?

Observer Pattern och MVC. Objekt-orienterad programmering och design Alex Gerdes, 2016

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Transkript:

UML 2.0 och dess roll för modellbaserad utveckling Morgan Björkander Senior Methods Engineer mbj@telelogic.com 1 Telelogic AB

Agenda UML 2.0 översikt översikt nya språkkonstruktioner Modellbaserad utveckling UML och MDA (Model Driven Architecture) verktygsstöd 2 Telelogic AB

Unified Modeling Language UML standardiserades av Object Management Group (OMG) 1997 har accepterats av en stor del av mjukvaruindustrin lämpar sig väl för modellbaserad utveckling UML är ett grafiskt modelleringsspråk vars främsta syfte varit att specificera och dokumentera källkod många implementationer specialiserade på olika områden (tex. inbyggda system och affärssystem) 3 Telelogic AB

Varför behövs UML 2.0? Begränsningar i UML 1.x erfarenheter från verktygsmakare och användare visar på bra och dåliga egenskaper konsistensproblem mellan diagram och otillräcklig språkprecision saknar tillräcklig skalbarhet för att kunna hantera större system svårt att använda Nya krav verktyg har egna tillägg som användare sedan vill se i standardspråket teknikskifte med komponentbaserad utveckling och exekverbara modeller modellbaserad utveckling (MDA) olika förbättringar av alla områden (klasser, komponenter, samarbeten, tillståndsmaskiner, användningsfall, aktiviteter, sekvenser) 4 Telelogic AB

OMG-terminologi för UML 2.0 Infrastructure Definerar de konstruktioner som används för att beskriva UML (klassdiagram) och utöka språket mot specifika områden 6:e januari, 2003 Superstructure ( UML ) Definierar användarbegrepp för att modellera systemstruktur och beteende; klass diagram, sekvensdiagram, tillståndsdiagram, etc. Superstructure inkluderar hela Infrastructure. Object Constraint Language Diagram Interchange 5 Telelogic AB

OMGs Model Driven Architecture (MDA) MDA är ett konceptuellt ramverk inom OMG modellbaserad utveckling Tre basbegrepp plattformsoberoende modell logisk beskrivning av struktur och funktionalitet plattformsberoende modell hantera specifika implementationsfrågor applikation källkod förfinade modeller plattformsoberoende modell (PIM) plattformsberoende modell (PSM) applikation 6 Telelogic AB

MDA är ett konceptuellt ramverk Modellen utgör kärnan i ett utvecklingsprojekt olika diagram visar mer eller mindre detaljer om systemet UML Språk- och plattformsoberoende det är möjligt att mappa eller till olika teknologier profiler och standardiserade mappningar transformation mellan modeller baserat på olika regler CORBA Java.NET J2EE UML C# UML C/C++ 7 Telelogic AB

Illustration av MDA PIM till PSM «component» Customer Customer CustomerHome «EJBSessionBean» CustomerEJB PSM till Applikation PSM till Applikation Notera att termerna PIM och PSM är relativa. // // CustomerEJB.java public class CustomerEJB implements SessionBean {/*... */} // // Customer.java public interface Customer extends EJBObject {/*... */} // // CustomerHome.java public interface CustomerHome extends EJBHome {/*... */} 8 Telelogic AB

Några mål med modellbaserad utveckling Minska gapet mellan de olika rollerna i ett utvecklingsprojekt gör det möjligt för alla involverade att tala samma språk arkitekter, programmerare, testare projektledare, chefer kunder tredje part gör det lättare att flytta resurser till där de behövs mest för tillfället Betrakta utveckling mer som en ingenjörsverksamhet utveckling underhåll Undvik kodcentrisk utveckling fokusera på systemets funktionalitet att förstå systemet är A och O krav, skisser, dokument, designbeslut, kod allt är en del av systemet modellen fungerar som sambandscentral Verktyg kan generera mycket eller all kod från en modell låt verktyg ta hand om minneshantering, distribution, etc. undvik tidskrävande lågnivåavlusning 9 Telelogic AB

Exekverbara modeller Ett av de starkaste argumenten för modellbaserad utveckling är exekverbara modeller beteende och detaljerad funktionalitet kan beskrivas i modeller i stället för i kod om modelleringspråket tillåter detta högre abstraktionsnivå än i programspråk Modeller kan exekveras oavsett i vilken utvecklingsfas man befinner sig en vanlig missuppfattning är att det bara går att exekvera detaljerade designmodeller eller implementationsmodeller env System env System tidig fas System System sen fas Delsystem1 Delsystem2 Delsystem3 env d31 d31 d32 10 Telelogic AB

Utvecklingscykeln traditionell utveckling modellbaserad utveckling kravhantering systemanalys design implementation test 11 Telelogic AB

Verktygsstöd för UML 1.x 1. Rena ritverktyg 2. Skelettkodsgenerering 3. Skelettkodsgenerering med synkronisering mellan kod och modell 4. Kodfragment direkt i modellen 1 2 3 Konsistensproblem gäller koden eller modellen? Programspråksberoende 4 class A { op() {/*... */} } class A { op() {/*... */} } class A { op() {/*... */} } 12 Telelogic AB

Modellbaserad utveckling Baserat på en modell varför blanda in programspråk i modellen? utveckla i modellen Generera koden (eller andra modeller); modellen innehåller abstraktioner ( patterns ) inbyggda i språket användardefinierade kodgenereringsregler Andra hänsyn: kravhantering konfigurationshantering utvecklingsprocess // C++ } class A { // C# op() {/*... */} }; // Java class A { op() {/*... */} class A { op() {/*... */} } // C struct A { } op(a) {/*... */} 13 Telelogic AB

Förslag på UML 2.0 Det finns flera konsortier som arbetar med olika delar av UML de olika konsortierna samarbetar med varandra U2 Partners är det enda konsortium som tagit fram ett komplett förslag för Superstructure ( UML ) www.u2-partners.org www.omg.org de exempel vi tittar på senare baseras på förslaget från U2 Partners U2 Partners Alcatel CA ENEA Ericsson Fujitsu HP IBM I-Logix IONA Kabira Motorola Oracle Rational SOFTEAM Telelogic Unisys WebGain 14 Telelogic AB

Användningfall Notationsmässigt har det inte hänt särskilt mycket med användningsfall Varuautomat Stoppa i mynt Kund Ångra Fyll på varor Leverantör 15 Telelogic AB

Sekvenser Syften: uttrycka händelseförlopp beskriva krav tester och testsviter sd Förlopp :Kund Visa(10) :Varuautomat Visa(9) Visa(4) Mynt(1) Mynt(5) Mynt(5) 16 Telelogic AB

Referenser till andra sekvenser För att undvika duplicering av information kan man referera till andra sekvensdiagram gör det möjligt att enkelt och snabbt skapa nya sekvenser (tester/krav) baserade på redan existerande sekvenser sd KöpScenario ref Kund VäljProdukt VaruAutomat Visa(pris) ref MyntKontroll 17 Telelogic AB

Variationer i sekvenser Reducera antalet nödvändiga sekvensdiagram för att uttrycka systemfunktionalitet hos större system krävs i regel många sekvensdiagram Variationer: alternativ iterationer (loopar) möjliga händelser parallellism sd Myntkontroll Kund VaruAutomat alt Mynt(valör) Visa(kvar) OgiltigtMynt() 18 Telelogic AB

Nerbrytning av sekvenser (decomposition) Nerbrytning av livslinjer gör det möjligt att beskriva hur delsystem interagerar med varandra zooma in för att få mer detaljer zooma ut för att dölja detaljer sd Nedbrytning Detektor sd Översikt Mynt(valör) create Controller Kund Varuautomat ref Nedbrytning Mynt(valör) OgiltigtMynt() KontrolleraMynt() OgiltigtMynt() 19 Telelogic AB

Komponentbaserad utveckling Gränsnitt mellan delsystem erbjudna tjänster provided interfaces förutsatta tjänster required interfaces hur kan gränssnitten att användas? Inkapsling av implementation struktur och beteende black box MyntInkast Varuautomat Skärm klass «interface» Skärm Visa() OgiltigtMynt() Trasig() erbjudet gränssnitt förutsatt gränssnitt 20 Telelogic AB

Kommunikation mellan klasser Enbart klasser med matchande gränssnitt kan kommunicera med varandra kontrakt beskrivs direkt i modellen möjliggör att avgöra vilka klasser man kan kommunicera med port port En port ( port ) har flera roller: knutpunkt för att koppla ihop klasser ger en sammanhållen vy av en klass MyntKontroll Controller pctrl Underhåll Skärm MyntInkast Detektor Myntkontroll, Räknare Räknare Räkneverk 21 Telelogic AB

Hierarkisk nerbrytning av klasser klass Ett system kan brytas ner i sina beståndsdelar ( parts ) hierarkisk nerbrytning; delarna kan i sin tur brytas ner ytterligare white box livscykelberoende Varuautomat En kanal ( connector ) kopplar ihop delar med varandra kontextberoende association delarna kan kopplas ihop olika beroende på var de används representerar giltiga kommunikationsvägar del MyntInkast MyntInkast :Detektor pctrl Räknare :Räkneverk Controller Räkneverk MyntKontroll Skärm :Controller Detektor Skärm kanal 22 Telelogic AB

Blandning av struktur och beteende Beteendet hos ett system kan ges direkt av systemet av dess delar (delegering) En beteendeport kopplar till systemets beteende Sensor beteendeport Från systemets omgivning bryr man sig inte om systemets implementation utifrån sett skiljer man inte på beteendeportar och vanliga portar beteendebeskrivning Underhåll :Monitor[*] InitieraSensor pm ps Input Regulator 23 Telelogic AB

Att uttrycka detaljerad funktionalitet För att uttrycka mer detaljerat beteende kan man beskriva satser ( actions ) på i princip samma nivå som i de flesta programmeringsspråk /sum = 0 Idle, Betalning Mynt(c) Sedel(c) action -semantik för UML ingen textuell syntax definierad i UML; detta kräver profiler sum = sum + c ger grunden för exekverbara modeller i UML Gör det möjligt för UML-verktyg att simulera, avlusa och testa modellen [true] sum < pris skärm. Belopp (pris sum) [false] kontroll. Växel (sum-pris) Betalning Växel 24 Telelogic AB

Andra ändringar Tillståndsmaskiner inkapslade tillstånd in- och utgångar till tillstånd Aktiviteter kopplas loss från tillståndsmaskiner baseras på Petrinät arbetsflöden (kontroll- och dataflöden) verksamhetsmodellering Användningsfall Bättre integration med språket i övrigt Beteende action semantics bättre precision exekverbara modeller större uttrycksfullhet med fler satser Komponenter bättre stöd för komponentramverk som.net och J2EE deployment... Vi strävar efter att bibehålla bakåtkompabilitet så långt det går 25 Telelogic AB

Sammanfattning UML 2.0 ger grunden för modellbaserad utveckling förbättrad användbarhet och skalbarhet adresserar en bredare del av mjukvaruindustrin uttrycker mer på en högre abstraktionsnivå Verktygsstöd kommer att avgöra hur väl modellbaserad utveckling faller ut Telelogic Tau Generation2 Tau/Architect Tau/Developer 26 Telelogic AB