Användning av modeller för system/produktutveckling



Relevanta dokument
Lars Wiktorin, IT plan

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

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

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

UML 2.0 och dess roll för modellbaserad utveckling

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

Arkitektur Michael Åhs

Objektorienterad programmering, allmänt

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

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

Föreläsning om OO, OOA och UML

RUP - Rational Unified Process

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

RUP Rational Unified Process. 17 november 2004

Symptom på problemen vid programvaruutveckling

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

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Objektorientering. Grunderna i OO

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

Objektorientering Användning

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

Informationssystem och databasteknik, 2I-1100

Objektorienterad programmering. Grundläggande begrepp

Inkapsling (encapsulation)

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

När? Varför? För vem? Resultat? (Artefakter?)

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

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

SAS Intelligence Architecture. Patrick Eckemo IT Arkitekt / PM Arkitektur SAS Institute

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

RUP är en omfattande process, ett processramverk. RUP bör införas stegvis. RUP måste anpassas. till organisationen till projektet

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

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

Objektorienterad programmering

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

SKOLFS. beslutade den XXX 2017.

Företagsmodellering i UML

OOMPA 2D1359 Föreläsning 2

Objektorienterad analys och design

Designmönster, introduktion. Vad är det? Varför skall man använda mönster?

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

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

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

TDDI02. Programmeringsprojekt, Föreläsning 2. Filip Strömbäck. Med utgångspunkt i tidigare slides av Jonas Lindgren

Karlstads Universitet, Datavetenskap 1

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15

SYSTEMUTVECKLING METODER & MODELLER. Suzana Ramadani

Objektorienterad Systemutveckling Period 3

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Programvara i säkerhetskritiska tillämpningar

Distribuerade affärssystem

Design för användbarhet

1 Klasser och objektorientering Vad är objektorientering?

Objektorienterad analys och design

Metoder och verktyg för funktionssäkerhet

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

Objektorientering Klasser

Vad händer med L3: ΔL3-L4 för Krav följs upp av annan projektgrupp. Föreläsning 5: V&V II + Design II Efterläsning Kodning

Programmering och digital kompetens

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

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

TDDI02. Programmeringsprojekt. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till?

Web Services. Cognitude 1

Teknisk guide för brevlådeoperatörer. Annika Melin Version: 1.1

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

TDDI02. Programmeringsprojekt. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Projektering av informationssystem

Användningsfalls- mönster

Kursinformation. Metodik för programvaruutveckling. Utvecklingsprocessen för programvara. Innehåll. Processmodell. Exempel

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

Från modell till modell

Datorrepresentation av vårdriktlinjer

Geografisk information Representation av förändringar i datamängder

Modern utvecklingsmetodik. Användarcentrering i företag. Användarcentrering i företag. Användarcentrering i företag. Användarcentrering i företag

Övning / handledning Användningsfall

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

F2: Krav på objektorienterat språk

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

Introduktion till programmering. Programspråk och paradigmer

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Objektorienterad programmering

SAS VIYA JOHAN ELFMAN ROLAND BALI

Tentamen NOA011 Systemarkitektprogrammet. 51 poäng

Föreläsning 7 Mentala modeller, metaforer och emotionell interaktion. Kapitel 5 (3) i Rogers et al.

Historik: OOP. Objektorientering. Historik: OOP (forts) En Dum Fråga

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

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

HUR UPPNÅS ETT OBRUTET INFORMATIONSFLÖDE FRÅN PROJEKT TILL FÖRVALTNINGEN?

Datavetenskapligt program, 180 högskolepoäng

Föreläsning 3 Användare, uppgift och omgivning. Kapitel 3-4 i Stone et al.

Människa-Datorinteraktion

Konceptuell modellering. Formalisering, automatisering och effektivisering

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Objektorienterad konstruktion

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

Transkript:

Användning av modeller för system/produktutveckling Lars Wiktorin, IT plan lars.wiktorin@itplan.se 1

Disposition Modellbegreppet Användningsområden Att välja modeller Mottagare Krav För system/produktutveckling Slutsatser 2

Modellbegreppet Att skapa bilder av en företeelse Avbildning porträtt, karta, liknelse, En avsiktligt förenklad avbildning Med avseende på vad? Filter, perspektiv, utgångspunkt Hur mycket förenklad? Vad skall modellen förmedla? Hur skall modellen utformas? Beskrivningsspråk, formalism, 3

Bilden är inte företeelsen 4

Modell eller mall? Bilmodell Mall eller Modellbil Avbildning En modellbil kan vara en modell av en bilmodell. Se upp med språket! 5

Modelltyper En modell är av en viss typ Jfr objekt och klass Vilka typer är relevanta? Statisk - dynamisk Formell informell Abstraherande nivåer Perspektiv Kan en modell tillhöra flera typer? Jfr multipelt arv inom OO 6

Många är det - hur välja? En modell är av en viss typ Jfr objekt och klass Vilka typer är relevanta? Statisk - dynamisk Formell informell Abstraherande nivåer Perspektiv Kan en modell tillhöra flera typer? Jfr multipelt arv inom OO Dynamisk, formell v(t) = I a(t) dt Informell begreppsmodell Informell statisk 7

Abstraktioner Zachmans modell Data, objekt Vad Funktion, Uppgift Hur Nätverk Var Människor Vem Tid När Motiv Varför Omfattning/mål Förteckning över nyckelbegrepp Förteckning över processer Förteckning över platser Förteckning över organisationer Förteckning över händelser Strategi, mål, Verksamhetsmodell Konceptuell modell, VO Processflöden Logistiknät Logisk modell, VO och gränssnitt Uppgiftsmodell med script, workflow Distribuerad systemark. MDI arkitektur Affärsplan Organisationsstruktur Händelsescheman Informationssystemmodell Processstruktur Kunskapsstruktur Teknikbegränsad modell Designmodell Strukturdiagram, sekvensdiagram Systemark MDI design Styrstruktur Kuskapsdesign Detaljrepresentation Fysisk modell, typer, klasser Programkod Nätverks ark Säkerhet, Avbrott System i drift Data Funktion Kunskapsbas Kommunikation Organisation Tidplan Användning 8

Perspektiv och utsiktspunkt S1 White box S2 Sn Black box Utsiktspunkt Viewpoint Är det skillnad på dessa? Perspektiv Synvinkel 9

Black/white box Black box Utifrån och in Gränssnitt Tjänster Aktörer Användningsfall White box Struktur Samband Flöden Algoritmer Data Att gå från B->W är analys och design 10

Avbildningar Eng. map och mapping (från -> till) Samband mellan modell och verklighet Allt eller enbart delar, aggregeringar Exempel: Relationsmodellen för databaser Samband 1:1 1:N N:1 N:M 11

Användningsområden Kommunicera Gemensam uppfattning Analysera Hur fungerar Instruera Hur gör man för att Exekvera Vad händer om. Beställare Utvecklare, reparatörer Användare Utvecklare, forskare, 12

Att välja modell För vem? Intressenterna För att förklara vad? Kraven ->Välj vyer som svarar mot kraven Intressent Perspektiv ModellTyp Typnivå har System Krav svarar upp mot beskrivs med Vy tillhör rekommenderar användning av byggs upp av Modell tillhör Förekomstnivå Fritt efter IEEE1471 13

Vy, perspektiv och modell Ett perspektiv rekommenderar ett antal modelltyper En vy följer ett perspektiv och innehåller ett antal modeller Exempel Perspektiv: Funktion Vyer: Klass, Användningsfall Modelltyper: Statiska och dynamiska Indelningen i exemplet kan diskuteras men avsikten borde vara klar 14

Konsekvenser Olika intressenter kräver olika perspektiv Det kan löna sig att enas om ett antal grundperspektiv Exempel Arkitekturramverk DoD, IEEE1471 15

Möjliga arkitekturperspektiv IEEE 1471 Enterprise, Information, Computation, Engineering, Technology FMA System, Verksamhet, Organisation, Personal, Information, Tekni RUP Logical, Implementation, Process, Deployment, Use Case. Business Architecture (Eriksson, Penker. See ref.) Vision,Process, Structure, Behavior Herzum Business Component Factory Functional, Application, Technical, (Proj mgmt) Siemens (Hofmeister, Appl SW Arch. See ref.) Conceptual, Module, Code, Execution 16

Verksamhetsmodellering En gruppverksamhet som avser att nå gemensam förståelse, som samlas i begripliga beskrivningar Modelltyper Begreppsmodeller Flödesmodeller (t ex processer) Funktionsmodeller (t ex användningsfall) Kund Kund Order kan lägga Skapa order 17 Order Ordermottagning Tillverkning

Objektmodeller(ing) Objekt eller objektorientering? Objektmodell Trad beteckning på en dataorienterad statisk modell Objektorienterad modell Tekniknära modell som fyller OO kraven Inkapsling av beteende och egenskaper Samverkan via meddelande utbyte Klass och förekomst - arv mellan klasser 18

Exekverbara modeller Simulering Vad händer om? Styrning Processindustri Servomekanismer Förenklad konstruktion Programvaruutveckling 19

MDA - Model Driven Architecture Att skapa körbara system från modeller som definieras och förvaltas oberoende av exekveringsmiljö Tekniken förändras fortare än verksamheten Håller isär verksamhetsfunktioner och teknisk realisering Initiativ från OMG 20

Det här har vi hört förut Integrated CASE Att skapa en miljö som hanterar modeller och överför dem till programkod Ex COOL GEN, fd Texas Instruments IEF Repositories Ex AD Cycle från IBM Fungerade inte bl a pga omogen och komplicerad teknik 21

Vad är annorlunda denna gång? Ett gemensamt modellspråk UML Etablerade modeller och specifikationer för infrastruktur Definierade APIer till programspråk (profiler) Mer omfattande och användbara programmeringsmiljöer Gemensamt leverantörsintresse 17 st nämns i nyhetsbrevet Comp Dev Strat 22

MDA omfattar tre nivåer CIM Computation Independent Model PIM - Platform Independent Model Verksamhetsmodell (domänmodell) Specifikation av verksamhetsinnehållet i tillämpningssystemet Ligger utanför MDA PSM Platform Specific Model EDM Enterprise Deployment Model Konkret modell med tillägg för aktuell realiseringsmiljö Programkod Här fordras tillägg profiler, som levereras av produktleverantörer 23

Kom ihåg En modell är inte lika med det avbildade systemet. En black box kan inte förväntas exekvera som om den vore en white box. Det fordras tillägg Regler, algoritmer, datavärden Kan komma från vänster - externa leverantörer jfr MDA PSM och PDM Men vem tar fram PIM från CIM? 24

MDA kräver programmering UML innehåller Diagram klass, aktivitet, tillstånd, sekvens,. OCL Object Constraint Language UML saknar Möjlighet att beskriva innehållet i aktiviteter och åtgärder Detta kommer i UML v2 AL, Action Language AL specificerat på semantisk men ej syntaktisk nivå 25

Sammanfattning Modellen är inte systemet Modellen kan inte göra mer än vad den är avsedd för Att beskriva ett komplext system kräver många perspektiv och modeller Välj modell med hänsyn till syfte och mottagare 26