Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Relevanta dokument
OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

UML: konceptuell modell. 2203$' ' ) UHOlVQLQJ. Innehåll UML. Strukturella saker UML. Olika typer av diagram Att läsa.

Design och utveckling. 2203$ ) UHOlVQLQJ

Objektorientering. Grunderna i OO

2203$ ) UHOlVQLQJ. Utvecklingsprocessen en översikt. Lite om kravspecifikationer. CRC-kort. XP som exempel på lättviktigare process.

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

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

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

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

OOMPA 2D1359 Föreläsning 2

Objektorienterad analys och design

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

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

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

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

Introduktion. Byggstenar TDBA

LÖSNINGSFÖRSLAG. Tentamen. Objektorienterad modellering och design. EDA665, 4 poäng

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

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

Föreläsning 11 Tisdag 6/6 2000

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

Objektorienterad analys och design

Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl

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

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

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

RUP - Rational Unified Process

Inkapsling (encapsulation)

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

Praktikum i programvaruproduktion

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

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

RUP Rational Unified Process. 17 november 2004

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

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

Symptom på problemen vid programvaruutveckling

OOMPA 2D1359 Föreläsning 5

Objektorienterad konstruktion

Objektorienterad programutveckling i ett nötskal

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

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

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

Föreläsning 15: Repetition DVGA02

Objektorienterad Programmering DAT043. Föreläsning 10 13/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

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

Objektorientering Användning

Tentamen. DD2385 Programutvecklingsteknik vt 2014 Måndagen den 2 juni 2014 kl Hjälpmedel: penna, suddgummi, linjal

Tentamen i Objektorienterad modellering och diskreta strukturer

Relationer mellan objekt

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

Objektorientering Klasser

Unified Modeling Language UML

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

TDDE10 TDDE11, 725G91/2. Objektorienterad programmering i Java, Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

Classes och Interfaces, Objects och References, Initialization

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

Tentamen i Objektorienterad modellering och design

TDP005 Projekt: objektorienterade system

Principles of subclasses. Objekt-orienterad programmering och design Alex Gerdes, 2018

Teoridel (svaren direkt på lydelsen)

Lösningar till tentamen i EDAF25

OOMPA 2D1359 Föreläsning 8

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

Arkitektur Michael Åhs

Datavetenskap. Therese Sundström. Utveckling av ett affärssystem med. Unified Process. Examensarbete, D-nivå 30 ECTS 2005:05

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

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

Tentamen. DD2385 Programutvecklingsteknik vt Tisdagen den 26 maj 2009 kl Inga hjälpmedel utom penna, sudd och linjal

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

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

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

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Tentamen i Objektorienterad modellering och design Helsingborg

Objektorienterad programmering. Grundläggande begrepp

Objektorienterad mjukvaruutveckling. 15 högskolepoäng. TentamensKod: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Objektkonstruktion. Vilka sorter finns? Varför ärver vi? Aggregering ger en lösare koppling till delarna än komposition. 1nJUDÃJUXQGOlJJDQGHÃUHJOHU

Objektorienterad metodik. Programutvecklingsmetodik. Objektmodellen. Varje objekt har en unik identitet

Programutvecklingsmetodik

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

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

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

Föreläsning 13 Innehåll

Konstruktion av klasser med klasser

Tentamen i Objektorienterad modellering och design Helsingborg

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

Objektorienterad programmering

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander

Information. Computer

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

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

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

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

Objektorienterad Programmering (TDDC77)

Unified Modeling Language UML

2203$ ) UHOlVQLQJ. Varför fungerar XP Några motiveringar till varje regel efter Beck. Innehåll. Planeringsspelet

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Är objektorienterad modellering ett måste? (HS-IDA-EA )

Objektorienterad Systemutveckling 1 (7,5 hp)

Transkript:

2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion previous next

Svårt att utveckla system Strukturerad programmering Flera metoder Utvecklingsmetoder... Problem Svårt att utveckla system 80% underhåll Vi vill ha formalism fast enkel och användbar Kommunikation mellan inblandade Många anser att kostnaden för förändring av ett system ökar exponentiellt över tiden. Fast inte säkert sant med dagens metoder. 70-talet Flödesdiagram Strukturerad programmering Top-down, bottom-up och middle-out kostnad Flera objektorienterade metoder blev populära på 80-talet och dominerar idag OMT, ObjectOry, Booch, Shlaer-Mellor, Coad-Yourdon... previous next 2 krav design analys implementation test produktion

UML... Unified Modeling Language UML 90-talet UML är de facto standard Förening av tre dominerande metoder Booch OMT Objectory Standard, OMG (Object Management Group) med fler än 600 intressenter Mer notation än metod (än så länge) Ej (för) stringent = användbart Det finns möjligheter till vissa egna utvidgningar, bla via så kallade stereotyper previous next 3

Få utvecklare Design och utveckling Vilken typ av projekt kan vara avgörande för hur man går tillväga Programmera i det lilla kod skapas av en eller få programmerare. En enskild person kan ha överblick och vara insatt i alla delar av projektet. huvudproblem (mjukvara): designa och utveckla algoritmer Många utvecklare Programmera i det stora mjukvaran tas fram av ett stort team. Vissa personer kan specificera eller designa andra kan koda vissa komponenter, slutintegration/applikationen görs kanske av en tredje grupp, osv. Ingen person har möjlighet att sätta sig in alla delar av projektet. previous next 4

Krav Analys Design Implementation Test Utvecklingsprocess typiskt tillvägangångsätt Kravanalys - beskriv och validera vad systemet skall göra Analys - identifiera systemets struktur så att systemet är enkelt att modifiera om kraven förändras Design - beskriv hur systemet skall realiseras Implementation - implementera systemet och utför enhetstester Testning - verifiera systemet previous next 5

Proceduren Hitta potentiella aktörer Namnge och gör kortfattad beskrivning av varje aktör Begränsa systemet Sammanställ gloslista (så att vi kan enas om vokabulär) För varje aktör: Hitta nödvändiga användningsfall Namnge och gör kortfattad beskrivning av varje användningsfall Granska aktörer och användningsfall och iterera Missade aktörer eller användningsfall? Duplikat? Identifiera gemensamma delar, strukturera modellen, iterera Beskriv varje användningsfall Granska beskrivningarna och iterera Missad eller felaktig funktionalitet? Granska, validera och godkänn modellen previous next 6

Vad är (objektorienterad) analys? Den tidiga fasen i systemutvecklingen då en abstrakt modell av systemet skapas, utan att gå in på detaljer i den tekniska implementationen En modell av centrala objekt och relationer mellan objekten Analysen utförs utan hänsyn till tekniska lösningar eller begränsningar Syftet är att skapa en förståelse för den verksamhet systemet skall hantera Används som grund för att i en designfas konstruera systemet i detalj och välja teknisk lösning previous next 7

Analys: vanliga aktiviteter Insamla underlag kravspecifikationer, önskemål, beskrivningar av verksamheten eller befintligt system, intervjuver. Problemdomän definieras Definiera användningsfall dvs hur systemet kommer användas Sök objektkandidater tex mha CRC-kort eller annan brainstormingliknande teknik Klassificera objekt klassnamn, ansvarsområde och eventuellt karaktäristiska attribut och metoder Relationer mellan objekt mha klass- och objektdiagram Slutdokumentation av analysfasen skrivbordstest där olika användningsfall gås igenom, relationer mellan klasser och objekt testas. Valda namn på klasser värderas. Dokumenteras mha grafiska diagram med kompletterande text. previous next 8

Perspektiv Konceptuellt I detta perspektiv ritar man diagram över koncept i domänen. Dessa koncept avbildas ofta på klasser som implementerar dem, men ofta är så inte fallet. En konceptuell modell ritas med liten eller ingen hänsyn till den mjukvara som skall användas vid implementationen Specifikations I detta perspektiv tittar vi i första hand på gränssnitten för mjukvaran, inte implementationen. Vi tittar snarare på typer än klasser Implementations I detta perspektiv har vi verkligen klasser och implementationen görs tydlig previous next 9

Processen bestäm strategi och mål med projektet kalkylera kostnader konstruera systemet i en serie av iterationer Påbörjande Utformande Konstruktion Överföring samla detaljerade krav och gör analys och design på en hög nivå för att konstruera en grundarkitektur och planera konstruktionen. analysera risker (krav, teknik, skicklighet och politiska) testa, prestandaoptimera, träna användare previous next 10

Vattenfallsmodellen 7UDGLWLRQHOOLGHDOLVHUDGPRGHOODYXWYHFNOLQJVSURFHVVHQ Analys Design Implementation Testning Underhåll previous next 11

Boehms spiralmodell previous next 12

Utvecklingsprocessen, olika konfigurationer Implementation Kravanalys Design Implementation Testning Kravanalys Analys Design Implementation Testning previous next 13

Nyare (kontroversiell?) metod för systemutveckling extreme Programming (XP), av Kent Beck, inne och hett Tillvägagångsätt (12 grundpelare) 3ODQHULQJVVSHO SODQHUDVQDEEWI UXWVlWWQLQJDUQDI U QlVWDUHOHDVHSULRULWHUDWHNQLNNUDY 6PnUHOHDVHU VOlSSQ\DYHUVLRQHURIWD 0HWDIRU KLWWDHQHQNHOEUDPHWDIRU (QNHOGHVLJQ J UGHVLJQHQVnHQNHOVRPP MOLJW 7HVWD WHVWDNRGHQNRQWLQXHUOLJW0nVWH O\FNDVLQQDQXWYHFNOLQJHQJnUYLGDUH 2PVWUXNWXUHUDUHIDFWRULQJ VWUXNWXUHUDRPRIWDWDERUWRQ GLJ NRGI UHQNODRVY 3DUSURJUDPPHULQJ WYnSURJUDPPHUDUHSHUPDVNLQ.ROOHNWLYWlJDQGHDYNRGHQ DOODlJHURFKNDQlQGUDLNRGHQ.RQWLQXHUOLJLQWHJUDWLRQ LQWHJUHUDRFKE\JJV\VWHPHWIOHUD JnQJHUSHUGDJ WLPPDUVYHFND MREEDVRPUHJHOLQWHPHUlQ WLPPDUSHUYHFND,QNOXGHUDHQNXQGLWHDPHW LQNOXGHUDHQULNWLJDQYlQGDUHSn IXOOWLG ) OMNRGVWDQGDUG YLONHWI UHQNODUNRPPXQLNDWLRQ previous next 14

UML (en kort introducerande översikt) Unified Modeling Language UML är de facto standard används i bla utvecklingsmetoder designmönster Massor av litteratur se tex "standardverken" av Booch, Rumbaugh och Jacobson börja förslagsvis med "The Unified Modeling Language User's Guide" previous next 15

Vi bryter ner systemet och ser på det på olika sätt Användningsfallsdiagram: Sätt gränser Uppdatera konto Chefsförhandlare Analysera risker «uses» Redovisningssystem Prisförhandla «uses» Värdera aktör Handlare Slut avtal användningsfall «extends» Gränserna överskridna Försäljare previous next 16

Klassdiagram (Enheter och relationer) klassnamn multiplicitet association attribut Person name : String address : String * employee employer Company name : String address : String rollnamn previous next 17

...Klassdiagram (med arv, dvs bla specialiseringar och generaliseringar) Shape * operationer arv position : Point bounds() :Rectangle draw() : void extent() : Point return new Rectangle(position, extent()); Shape1 extent : Point Shape2 extent : Point ComposedShape parts draw() : void draw() : void bounds() :Rectangle draw() : void aggregat metod/pseudokod b = new Rectangle(); for all p in parts do b = b.merge(p.bounds()); return b; previous next 18

Sekvensdiagram (samarbete mellan delar) previous next 19

Tillståndsdiagram: previous next 20

Aktivitetsdiagram (beskriver parallella förlopp) Exempel: "Person::ordna dryck" Hitta dryck [kaffe hittat] [inget kaffe] [ingen cola] [cola hittad] Kaffe i filtret Häll i vatten Hämta koppar Filtret i bryggaren Hämta cola Slå på bryggaren ^kaffepanna.slåpå Brygg slå av lampan Häll upp kaffe Drick previous next 21

Samarbetsdiagram previous next 22

Hello world-exempel Javakod för en applet import java.awt.graphics; class Hello extends java.applet.applet { public void paint(graphics g) { g.drawstring( Hallå!, 10, 10); } } previous next 23

Hello klassdiagram... Hello paint() g.drawstring( Hallå!, 10, 10); previous next 24

Hello... Applet Hello paint() Graphics previous next 25

Hello... Object ImageObserver Container Component Panel Applet Hello previous next 26

Hello paketering... java Hello applet awt lang previous next 27

Hello sekvensdiagram... run :Thread :Toolkit :ComponentPeer target:hello run callbackloop handleexpose paint previous next 28

Hello komponenter Hello.java Hello.html Hello.class ----- ----- --- ----- ----- -- ----- ----- --- ----- ----- -- Hello.jpg ----- ----- --- ----- ----- -- previous next 29

OCTOPUS-metoden en översikt Objektorienterad Hanterar viktiga problem i realtidssystem som parallellitet synkronisering kommunikation avbrottshantering ASICs (Application-Specific Integrated Circuit), kundanpassad hårdvara på chip hårdvarugränssnitt responstider I huvudsak för icke hårda realtidssystem Utgår från OMT och Fusion previous next 30

Olika faser, en översikt Faser systemkravfas struktur via kontextdiagram funktionalitet och dynamiskt beteende mha användingsfallsdiagram och användningsfall kan kompletteras med scenarier systemarkitekturfas systemstruktur via delsystemdiagram delsystem analysfas görs för varje delsystem delsystem designfas delsystem implementationsfas previous next 31

Utvecklingsprocessen: mjukvarusystem Systemkravsfas Användningsfall och kontextdiagram Systemarkitektur Delssystem och gränssnitt Delsystem analys Delsystem design Delsystem implementation Delsystem analys Delsystem design Delsystem implementation Hårdvaruwrapper Delsystem program Delsystem program Wrapper program Systemprogram previous next 32