OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Relevanta dokument
Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

Objektorientering. Grunderna i OO

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Föreläsning 11 Tisdag 6/6 2000

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

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

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

Design och utveckling. 2203$ ) UHOlVQLQJ

Objektorienterad analys och design

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

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 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

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

Objektorienterad analys och design

Arkitektur Michael Åhs

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

RUP - Rational Unified Process

Inkapsling (encapsulation)

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

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

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

Programutvecklingsmetodik

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

Objektorientering Användning

Objektorienterad konstruktion

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

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

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

Symptom på problemen vid programvaruutveckling

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

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

729G06 Föreläsning 1 Objektorienterad programmering

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

TDP005 Projekt: objektorienterade system

RUP Rational Unified Process. 17 november 2004

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

Objektorienterad programutveckling i ett nötskal

Introduktion. Byggstenar TDBA

Unified Modeling Language UML

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Lite om databasdesign och modellering

Föreläsning om OO, OOA och UML

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

Objektorienterad Systemutveckling 1 (7,5 hp)

Företagsmodellering i UML

Praktikum i programvaruproduktion

Institutionen för programvaruteknik och datavetenskap FRÅN OMT TILL UML - ETT NÖDVÄNDIGT VAL?

Objektorienterad programmering

OOMPA 2D1359 Föreläsning 2

Unified Modeling Language UML

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

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

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

Examen i 2D1359 & 2D1360 Objektorienterad modellering programmering och analys Tisdagen, 23 Oktober 2001, 14:00-19:00

OOMPA 2D1359 Föreläsning 5

Programmeringsstil 18/3-2002

Tentamen i Objektorienterad modellering och design

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

Föreläsning 15: Repetition DVGA02

Objektorientering Klasser

Problemlösning. Analys och design OOA&D. Programutveckling sker i faser OOA&D. Fastställa och analysera förutsättningarna/ kraven.

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

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

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

Handbok Umbrello UML Modeller

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

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Programmering = modellering

Vad är. Domändriven design?

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod

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

Chaos om datorprojekt..

Objektorienterad programmering, allmänt

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

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

Teoridel (svaren direkt på lydelsen)

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

In-flight Information System utveckling med ett användningscentrerat synsätt

Användarcentrerad Systemutveckling

Konceptuell modellering. Formalisering, automatisering och effektivisering

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

Objektorienterad Systemutveckling (7,5 hp)

Frågor och svar till tentamen i Kravhantering

Tentamen i Objektorienterad modellering och design Helsingborg

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

Informationssystem och databasteknik, 2I-1100

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

Chaos om IT-projekt..

7. Konstruera Koncept

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen

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

Projektering av informationssystem

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

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen

Användning av modeller för system/produktutveckling

Processbeskrivning Systemutveckling

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

Föreläsning 8, Design

SYSTEMUTVECKLING METODER & MODELLER. Suzana Ramadani

Transkript:

2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ Föreläsning 7 OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram - Kravspecifikationer, användningsfall, systemarkitektur - Analysfas vad är analys? introduktion och grundläggande diagramtyper - Strukturella modeller - Funktionell modell previous next Kravspecifikationer Traditionellt Beskriver kravspecifikationen mjukvaran som ska konstrueras I ett inbäddat system så måste vi också ta hänsyn till hårdvaran Ofta kan man anta att man konstruerar mjukvaran med hjälp av befintlig hårdvara Fast tex kostnads- och prestandakrav kan göra att hårdvaran väsentligt påverkar mjukvaran (möjligheter osv) Vi analyserar kravspecifikationen och försöker bygga en modell över systemet som skall konstrueras Idag brukar man börja med att identifiera aktörer och användningsfall, och konstruera användningsfallsdiagram som beskriver vad systemet skall göra och för vem previous next 2 Björn Eiderbäck 2000 1

Användningsfall Vad är ett användningsfall? Ett användningsfall är en funktion i systemet Vad är ett användningsfallsdiagram? Ett användningsfallsdiagram illustrerar grafiskt relationer mellan aktörer och användningsfall i ett system Varför användningsfallsdiagram? Ger bra (konceptuella) beskrivningar av systemets funktionalitet och dess aktörer Intuitiva, vilket bla gör det enkelt att kommunicera med tänkta användare eller beställare Systematiskt sätt att ett systems funktionalitet och dess aktörer Vilket språk används i användningsfallsbeskrivningar? Jo, kundens eller domänens språkbruk är att föredra previous next 3 Användningsfallsdiagram OCTOPUS Awad 2-4, s 21 UML previous next 4 Björn Eiderbäck 2000 2

Systemomgivningsdiagram Vad? Användningsfall hjälper till att beskriva funktionaliteten för systemet Denna information kan användas för att skapa ett systemomgivningsdiagram, dvs en strukturerad översikt av systemets omgivning Varför? Ger en bild av aktörer och hur systemet är relaterat till dem AWAD f 3-7 i UML framgår systemkontexten direkt i användningfallsdiagrammen (se OH-4) previous next 5 Systemarkitektur Systemarkitekturen behandlar Hårdvara Mjukvara Man kan utveckla båda tillsammans men det brukar bli onödigt komplicerat och bla därför brukar dessa utvecklas separat normalt designas hårdvaran först hårdvaran "drivs" ofta av krav som kostnad och dom olika delarnas energiförbrukning mjukvaran påverkar bara hårdvaran om det visar sig att det inte går att uppfylla givna krav med aktuell hårdvara I OCTOPUS inkapslas hårdvaran med hjälp av så kallade hårdvaruwrappers previous next 6 Björn Eiderbäck 2000 3

Modulärisering Problem Ett system är alldeles för komplext för att hanteras som en (monolitisk) enhet Om vi behandlar systemet som en enhet får vi problem med analys, design, underhåll, anpassning, osv Om systemet är stort och flera utvecklare deltar i systemets utveckling blir det hela inte effektivt... Lösning Dela upp systemet på mindre moduler previous next 7 Uppdelning på delsystem Det är önskvärt att tidigt dela upp systemet på delsystem problemet kan vara att uppdelningen av problemrymden inte i tidigt skede kan delas upp i disjunkta mängder och därför leder till att samma problem löses i flera delsystem försök därför att dela upp systemet så att dom olika delsystemen baseras på olika problemrymder AWAD f 4-3, f4-4, f4-5 previous next 8 Björn Eiderbäck 2000 4

UML och delsystem Paket (med access och import) previous next 9 Inkrementell utveckling Problem Vi kan vanligen inte konstruera ett system enligt en linjär vattenfallsmetod Lösning Utveckla systemet inkrementellt där olika delar av systemutvecklingen påverkar varandra Använd en metod al la Boehms spiralmodell och/eller kanske Becks extreme Programming previous next 10 Björn Eiderbäck 2000 5

Delsystem och gränssnitt AWAD f 4-7 UML Delsystem och gränssnitt previous next 11 Exempel: SLT AWAD 4.6 f 4-8 till f4-10, t4-1, t4-2 previous next 12 Björn Eiderbäck 2000 6

Analysfas Vad är analys? I analysen undersöker vi systemets krav och försöker att omforma och strukturera dem Varför analys? Vi vill få en mer precis förståelse av kraven för att åstadkomma en beskrivning som är enkel att underhålla och hjälper oss att skapa en struktur för hela systemet Ingen kristallklar beskrivning detta heller! Vad skiljer analys från (nästa steg) design och implementation? (Efter RUP) I design måste vi, till skillnad från i analys, forma systemet så att det lever upp till alla krav i form av kodkomponenter, ta hänsyn till prestanda- och distributionskrav, visa hur systemet skall optimeras för att klara av kraven, osv. previous next 13... Vilket språk används? RUP Jo, utvecklarens därför kan vi införa mer formella beskrivningar och därmed får vi möjlighet att i mer detalj resonera om systemet OCTOPUS Jo, domänens troligen därför att hjälpa till att hålla det hela på en abstrakt nivå, ha bra (och naturlig/enkel) spårbarhet och undvika att olika delsystem använder olika namn för samma objekt previous next 14 Björn Eiderbäck 2000 7

... Speciella problem/frågeställningar Vilken precision har beskrivningarna? Dom skall vara på en konceptuell översiktlig nivå, där tex bara viktiga attribut och metoder visas i klassdiagrammen. I huvudsak används klassdiagram och avsikten är mer att förstå systemet och ge en övergripande struktur än att beskriva hur det skall implementeras Hur omfattande är analysen? 1:5-regeln som säger att analysen är en femtedel så omfattande som designen. Jacobson, Booch och Rumbaugh"The Software Development Process" sidan 177. previous next 15 Från användningsfall till analys Det finns många olika strategier för att hitta klasser, objekt, associationer och andra relationer i analysfasen tex kan man titta på substantiv, verb och adjektiv i kravspecifikationen RUP och även OCTOPUS förordar en användningsfallcentrerad utgångspunkt via användningsfallen hittar vi aktörerna och viktig (yttre) funktionalitet kandidater till andra objekt, attribut och relationer genom att studera kraven vi kan sedan också studera scenarier, konstruera samarbetsdiagram och sekvensdiagram för att se om vi missat några objekt, relationer eller funktionalitet fast med användningsfallen har vi identifierat dom yttre ramarna Spårbarhet En analysmodell av en användningsfallsmodell skall kunna spåras genom att lämpligt dokument upprättas previous next 16 Björn Eiderbäck 2000 8

En jämförelse mellan användningsfall och analys, enligt RUP Användningsfallsmodell Använd kundens språk Extern vy av systemet Struktureras mha användningsfall: ger struktur till den externa vyn Används primärt som kontrakt mellan kund och utvecklare Kan innehålla redundans, inkonsekventa delar osv bland kraven Fångar funktionaliteten för systemet Definierar användningsfall som analyseras vidare i analysmodellen Analysmodell Använd utvecklarens språk Intern vy av systemet Struktureras mha stereotypiska klasser: ger struktur till den interna vyn Används primärt av utvecklare för att förstå hur systemet skall formas Skall inte innehålla redundans, inkonsekventa delar osv bland kraven Ger en skiss över hur funktionaliteten skall realiseras (fungerar också som ett första designsteg) Definierar realisering av användningsfallen previous next 17 Samarbetsdiagram Då vi har identifierat objekt så kan vi konstruera samarbetsdiagram för att beskriva dom meddelanden eller relationer som olika objekt har sinsemellan Samarbetsdiagram finns på olika precisionsnivå Vissa beskriver bara objekt och stimuli som kan utbytas mellan dem ungefär händelseflödesdiagram Andra är mer av klassdiagram med roller och associationer Ytterligare andra beskriver också scenarier, iterationer och liknande previous next 18 Björn Eiderbäck 2000 9

Objektmodeller Vad? en objektmodell beskriver objekt och deras relationer allt med en egen identitet är ett potentiellt objekt men för att komma med i analysens objektmodell måste det ha en meningsfull relation till problemet Består av klassdiagram, objektdiagram och textuella beskrivningar Syfte? Att beskriva systemets övergripande arkitektur samt viktiga objekt och deras relationer previous next 19 Objekt, klasser och klassbeskrivningar Grundläggande är klasser med attribut och operationer För att förtydliga kan vi använda stereotyper eller dela in klassrektangeln i flera delar previous next 20 Björn Eiderbäck 2000 10

... objekt (dvs instanser av klasser) previous next 21... templates previous next 22 Björn Eiderbäck 2000 11

Generalisering previous next 23... diskriminatorer previous next 24 Björn Eiderbäck 2000 12

Aggregering och komposition Speciell typ av association med "hela-del-av"-relation Aggregering Ett objekt består av andra (mer eller mindre fristående) objekt Komposition Som aggregering fast objekten hårdare knutna till "helheten" Om objektet som består av delarna försvinner så försvinner också delarna Exempel OH-30, 31, 33 och 35 nedan previous next 25 Attribut och associationer Attribut används för att beskriva ett objekts egenskaper Associationer används för att modellera relationer mellan objekt Beroende av vilken typ av nivå (detalj, analys, implementation) kan vi antingen utelämna attribut eller kanske ge dom mer detalj i form av typ och hur dom är åtkomliga Associationer kan ha namn, riktning, arritet och rollnamn associationer kan också gå mellan fler än två objekt till en association kan också knytas ett så kallad associativ klass (tidigare också kallat länkattribut) används då en relation också innehåller information och det inte är naturligt att knyta den till vare sig det ena eller andra associerade objektet ibland kan också en association vara kvalificerad a la uppslagsbok där varje beskrivning associeras via uppslagsordet previous next 26 Björn Eiderbäck 2000 13

...exempel: olika detaljnivå... previous next 27...exempel: association, arritet och rollnamn... previous next 28 Björn Eiderbäck 2000 14

...exempel: associativ klass, riktning, notation mm... previous next 29...exempel: aggregering, komposition, mm... previous next 30 Björn Eiderbäck 2000 15

...exempel: kvalificerade associationer... previous next 31...exempel: tenär association... previous next 32 Björn Eiderbäck 2000 16

...exempel: olika sätt att visa komposition... previous next 33...exempel: länkar... previous next 34 Björn Eiderbäck 2000 17

...exempel: härledda attribut och associationer samt constraints... previous next 35 Gränssnitt previous next 36 Björn Eiderbäck 2000 18

Dela upp klassdiagram på olika delar För att hantera klassdiagram så kan vi både dela upp diagram i olika delar samt beskriva olika objekt med olika precision i olika diagram AWAD f 5-10 till f5-13 previous next 37 Iterera och kontrollera objektmodellen Det är viktigt att som vi tidigare sett jobba enligt en iterativ modell, där dom olika stegen fram och tillbaks påverkar varandra men också kontrolleras mot varandra Genom att systematisk gå igenom användningsfallen och fundera över hur objektmodellen skall utföra ett visst användningsfall så kan vi hitta eventuella brister Följande problem kan uppstå (Awad s 71) problem med att se hur ett viss användningsfall skall hanteras eller vilket ansvar dom olika objekten skall ha kan vara en indikation på saknade associationer eller felbenämnda abstraktioner om deltagande objekt inte har några relationer tyder det på att associationer saknas om objekten inte vet hur dom skall reagera så så tyder detta på saknade attribut eller associationer previous next 38 Björn Eiderbäck 2000 19

Funktionell modell Vad? Den funktionella modellen visar mer i detalj vad som skall hända Varför? Vi behöver ibland ge en mer detaljerad beskrivning av tex en algoritm Hur? (OCTOPUS) påminner om användningsfallsbeskrivningar (lakan) fast oftast på en mer detaljerad bseksrivningsnivå Funktionella modellens roll i nyare metoder baserade på UML I nyare modelleringsmetoder, tex RUP, har den funktionella modellen försvunnit anledningen är bland annat att den inte riktigt är objektorienterad, känts lite påklistrad och delvis överlappas av andra beskrivningssätt överlappar delvis med användningsfall, tillståndsdiagram, händelsediagram och aktivitetsdiagram previous next 39 Beskrivning av operationer AWAD s 73-75 previous next 40 Björn Eiderbäck 2000 20