Programutvecklingsmetodik

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

Objektorientering Användning

Objektorientering. Grunderna i OO

Objektorienterad programutveckling i ett nötskal

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

Objektorienterad konstruktion

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

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

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

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

Objektorienterad analys och design

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

Inkapsling (encapsulation)

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

TDP005 Projekt: objektorienterade system

Objektorienterad systemutveckling i ett nötskal

Objektorientering Klasser

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

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

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

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

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

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

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

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

Objektorienterad analys och design

Introduktion. Byggstenar TDBA

RUP - Rational Unified Process

Föreläsning 15: Repetition DVGA02

OOMPA 2D1359 Föreläsning 2

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

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

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

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

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

Begreppsmodellering i UML

RUP Rational Unified Process. 17 november 2004

Introduktion till arv

Symptom på problemen vid programvaruutveckling

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

Objektorienterad programmering, allmänt

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

Relationer mellan objekt

Begreppsmodellering i UML

Objektorienterad Systemutveckling 1 (7,5 hp)

Objektorienterad programmering

Objektorienterad analys och design

Nationell informationsstruktur 2015:1 Bilaga 1: Läsanvisning till modellerna

SKOLFS. beslutade den XXX 2017.

Personal. Objektorienterad programmeringsmetodik 5DV133. Kursmål. Kursens uppläggning. Lärare. Handledare och gruppövningar.

Kursplanering Objektorienterad programmering

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT / 33

Arv. Objektorienterad och komponentbaserad programmering

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

Objektorientering Ett av de senaste inneorden i datavärlden. Man baserar uppbyggnaden av ett programsystem på de objekt som ingår i systemet istället

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

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

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

Unified Modeling Language UML

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

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

Objektorienterad programmering. Grundläggande begrepp

Tentamen i Objektorienterad modellering och design

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

Programmering för språkteknologer II, HT2014. Rum

Interaktionsteknik och Design, 7,5hp

Programmering = modellering

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

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

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Undervisningen i ämnet programmering ska ge eleverna förutsättningar att utveckla följande:

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

Konceptuell modellering. Formalisering, automatisering och effektivisering

Kurs-PM fo r HI1028, Projektkurs inom programvaruutveckling, VT16

KravinsamlingAnalys Design Implementation Testning

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

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

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

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

Classes och Interfaces, Objects och References, Initialization

Föreläsning 11 Tisdag 6/6 2000

Objektorienterad programmering

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

UML. Unified Modeling Language

Arkitektur Michael Åhs

Övning / handledning Användningsfall

TDDI82 - Projekt. Christoffer Holm. Institutionen för datavetenskap (IDA)

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

1 Klasser och objektorientering Vad är objektorientering?

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

Högskolan Dalarna sid 1 av 5 Data-sektionen Hans-Edy Mårtensson

Klasser och objekt. Henrik Johansson. August 20, 2008

Transkript:

OH Objektorienterad programutveckling 1 Programutvecklingsmetodik Stegen vid programutveckling är typiskt kravspecifikation analys ska ge en modell av systemet som är mer exakt och en specifikation som är mer fullständig ge en bättre förståelse av systemet och dess relation till omvärlden design förfining av analysen utgöra underlag för kodning kodning vidareutveckling och underhåll

OH Objektorienterad programutveckling 2 Objektorienterad metodik Objektorienterade metoder är typiskt byggda kring användningsfall use cases inkrementella och iterativa moment upprepas och förfinas Agila metoder ( lättrörliga ) har vunnit stor popularitet under senare år utveckling sker i nära samarbete med kunden utvecklingen bedrivs inkrementellt och iterativt och med regelbundna små delleveranser saker utvärderas löpande och kan ändras för att möta nya krav och önskemål

OH Objektorienterad programutveckling 3 Objektmodellen objekt bildar den strukturella grunden program består av objekt som kommunicerar med varandra underlättar återanvändning kan försvåra underhåll en naturlig begreppsmodell används abstraktion inkapsling klassificering hierarkisk strukturering generalisering/specialisering

OH Objektorienterad programutveckling 4 Varje objekt har en unik identitet varje objekt måste kunna särskiljas från alla andra objekt Annas bil Pers hus Eriks cykel Stinas dator

OH Objektorienterad programutveckling 5 Objekt har attribut attribut avser gemensamma egenskaper för en viss typ av objekt ett objekts egenskaper beskrivs av dess attributs värden hustyp: villa antal_rum: 5 taxeringsvärde: 765.000 ägare: Per fabrikat: Volvo regnr: ABC123 ägare: Anna fabrikat: Crescent modell: terrängcykel ramnummer: MBC1024718 fabrikat: Macintosh serienummer: MAC239008761

OH Objektorienterad programutveckling 6 Objekt har beteende beteende avser de tjänster som ett objekt ställer till förfogande för andra startamotor stängavmotor körframåt backa ökafarten bromsa

OH Objektorienterad programutveckling 7 Objekt samarbetar Objekt sägs kommunicera genom meddelanden definierar interaktion mellan objekt identifierar beroenden (associationer) mellan objekt står för informationsöverföring Person ökafarten(km/h) Bil

OH Objektorienterad programutveckling 8 Hur hittar man objekt? sök i problemområdet analysera kravspecifikationen brainstorming checklista substantiv i kravspecifikationen eller i beskrivningar av användningsfall objekt kan finnas i många former faktiska ting roller händelser interaktioner begrepp information som måste lagras

OH Objektorienterad programutveckling 9 Definiera ansvar för objekt bra objekt/klasser gör en sak bra kan vara en komplex sak kan krävas flera deloperationer för att utföra kan kräva samarbete med andra objekt objekt ska ha dataattribut och operationer motiverar objekts existens hur hittar man ansvar? adjektiv i kravspecifikationen vid analys av användningsfall beskrivningen av ett objektet hur hittar man operationer, tjänster? verb och verbfraser i kravspecifikationen vid analys av användningsfall

OH Objektorienterad programutveckling 10 Beskriv klasserna se till att alla är överens om innebörden av varje klass vad är syftet med klassen? var noga med namngivningen ska vanligtvis vara ett beskrivande substantiv i singularis Student Person som är inskriven vid fakulteten. Registreringsformulär Formulär som innehåller en students namn, personnummer, linje, antagningsår, läsår, samt val av kurser under läsåret.

OH Objektorienterad programutveckling 11 CRC-kort En standard för att översiktligt dokumentera klasser Class klassens namn Responsibilities ansvar som klassens har ( max 3-4 stycken ) Collaborators samarbetspartners (andra klasser) baksidan kan användas för att notera dataattribut hämta nästa brev radera brev svara på brev E-brevlåda Brev Brevkö lista med inkomna brev lista med sparade brev

OH Objektorienterad programutveckling 12 Klassificering en klass representerar alla objekt med samma egenskaper klass Bil

OH Objektorienterad programutveckling 13 Klasser en klass beskriver det som är gemensamt för alla objekt av typen ifråga kan ses som en stämpel eller stans för att skapa objekt Bil fabrikat registreringsnummer ägare startamotor stängavmotor körframåt backa bromsa klassnamn data operationer

OH Objektorienterad programutveckling 14 Objekt Objekt är klassinstanser är konkreta förekomster av klassen skapas under programkörningen Bil SvensBil:Bil AnnasBil:Bil :Bil

OH Objektorienterad programutveckling 15 Relationer Relationer mellan klasser eller objekt kan grovt delas upp i härledning arv andra former av relationer, som association känner till, har en aggregation en helhet del -relation (en form av sammansättning) composition som aggregation men livstiden för delarna kontrolleras av det hela

OH Objektorienterad programutveckling 16 Association objekt kan känna till och använda andra objekt i sin omgivning Äger Anna Annas bil

OH Objektorienterad programutveckling 17 Association, forts. association mellan klasser anger hur klassens objekt kan vara relaterade en association mellan objekt gäller specifika objekt multiplicitet, riktning m.m. kan anges i diagrammen 1 Person 0..* Bil 0..1 0..* Anna:Person ABC123:Bil 1..* 1, 3-5

OH Objektorienterad programutveckling 18 Aggregation objekt består av andra objekt helhet/del -relation innebär inte ägarskap det behöver inte innebära att delobjekt förstörs då det hela förstörs

OH Objektorienterad programutveckling 19 Composition som aggregation men composition innebär ägarskap det hela kan ha direkt ansvar för att skapa och destruera delarna det hela kan tänkas acceptera en redan skapad del och senare överlämna den till en annan hel Universitet Institution Professor om ett universitet läggs ner kommer dess institutioner inte längre existera ( composition ) professorerna kommer att fortleva (flyttar kanske till ett annat universitet) om en institution läggs ned professorerna flyttar kanske till en annan institution Inte alltid lätt att bestämma vilken av association aggregate composition som bör väljas. Implementering? Pekare referenser medlemsskap.

OH Objektorienterad programutveckling 20 Diagram för att beskriva aggregate och composition enrutersymbol placeras vid det sammansatta objektet ofylld rutersymbol anger aggregation objekten behöver inte ha samma livstid som helheten (Bil) en fylld rutersymbol anger composition objekten kan ha samma livstid objekten delas inte med andra objekt Bil 4 Chassi Motor Hjul Transmission

OH Objektorienterad programutveckling 21 Generalisering specialisering beskriver likheter mellan klasser Vilka likheter finns?

OH Objektorienterad programutveckling 22 En möjlig arvshierarki för transportmedel. triangeln sitter vid basklassen Fraktare Flygplan Lastbåt Rymdfärja

OH Objektorienterad programutveckling 23 Dokumentering av projektet i kursen Samtliga dokument ska bestå av följande, utöver de dokumentspecifika delarna försättsblad projektets namn typ av dokument (analys, design, ) datum projektmedlemmar innehållsförteckning inledning dokumentkonventioner (t.ex. användning av olika typsnitt, kursiv och fet stil, ) Kravspecifikation är redan gjord en funktionell beskrivning av systemet utgångspunkt för analysen

OH Objektorienterad programutveckling 24 Objektorienterad analys OOA Analys omfattar typiskt följande moment: finn objekten skapa en lista med alla objekten klassificera objekten vilka klasser ska finnas, vad ska de heta använd exempelvis CRC-kort identifiera och utför användningsfall utförs och beskrivs steg-för-steg kan även komma först och då vara ett sätt att finna objekten underlag för testning beskriv relationer mellan klasser rita klassdiagram och eventuella andra diagram om det finns delsystem eller liknande kan det kan vara aktuellt att gruppera klasserna En iterativ och inkrementell process!

OH Objektorienterad programutveckling 25 Användningsfall Fokus på externt beteende systemet specificeras utifrån användarens perspektiv bildar grund för både konstruktion och testning användningsfallsmodellering ger två huvudsakliga resultat aktörer en katalog med användningsfall utgör funktioner som är synlig för användaren uppnår distinkta mål för användaren kan vara stora eller små kan bestå av delfall

OH Objektorienterad programutveckling 26 Definiera aktörer Aktörer är systemexterna utbyter information med systemet används för att modellera interaktion med systemet analyseras inte i detalj Skilj på användare och aktör. en användare är en person eller en sak herr Linus, fröken Linnéa en aktör är en roll som en användare kan anta avdelningschef, bankkund Bankkund

OH Objektorienterad programutveckling 27 Definiera användningsfall utgör en sekvens av händelser i systemet ger den ordning som operationer ska utföras i initieras av en aktör bankomatkund rökdetektor visar systemet funktionalitet vad ska göras, hända användningsfall är den funktionalitet en aktör använder göra uttag utlösa brandlarm Uttag

OH Objektorienterad programutveckling 28 Användningsfallsmodell systemet i en box (den vita nedan) en aktör har en extern roll befinner sig utanför boxen användningsfall visas som ellipser Uttag Bankkund Överföring

OH Objektorienterad programutveckling 29 Användningsfall beskriver detaljer Uttag Kund Överföring Uttag: Kunden stoppar in sitt kort i bankomaten. Kunden matar in sin kod och trycker KLAR. Kunden väljer UTTAG. Kunden anger önskat belopp och trycker KLAR. Bankomatkortet matas ut och kunden tar detta. Pengarna matas ut och kunden tar dessa. Kvitto matas ut.

OH Objektorienterad programutveckling 30 Användningsfall kan använda andra användningsfall Uses och extends. Uttag uses Korttransaktion Kund Överföring uses

OH Objektorienterad programutveckling 31 Diagram klassdiagram visar statiska samband mellan klasser och därmed samband mellan objekt sekvensdiagram varje objekt har en egen livslinje pilar mellan objektens livslinjer visar funktionsanrop och tidssekvens samarbetsdiagram (alternativ/komplement till sekvensdiagram) visar relationer mellan ingående objekt på sammanbindningslinjerna mellan objekten anges funktionsanropen ordningen kan visas genom numrering av anropen aktivitetsdiagram beskriver arbetsflöden beskriver samtidiga förlopp eller förlopp vars inbördes ordning är oviktig

OH Objektorienterad programutveckling 32 Dokumentering av analysfasen Analysdokumentet ska omfatta följande dokumentspecifika delar kort allmän beskrivning av projektet och dess ramar (återanvänd från KS) beskrivning av användargränssnitt (återanvänd från KS) beskrivning av permanent datalagring, i förekommande fall (återanvänd från KS) klasskatalog en översikt av alla klasser och deras syfte användningsfall namn och utförande om många, ska åtminstone några väsentliga fall dokumenteras mer noggrant övriga kan då i princip listas med kort kommentar diagram av olika slag klassdiagram obligatoriskt eventuellt sekvensdiagram, samarbetsdiagram, tillståndsdiagram, aktivitetsdiagram klassbeskrivningar, motsvarande till exempel CRC-kort med tillagda kommentarer Utgångspunkt för designfasen. Eventuella brister korrigeras i designdokumentet.

OH Objektorienterad programutveckling 33 Objektorienterad design systemkonstruktion systemarkitektur användargränssnitt, permanentlagring av data, delsystem, val av klassbibliotek, standarder, etc. infrastrukturkonstruktion till exempel klasser för ett databasgränssnitt detaljkonstruktion klassdesign

OH Objektorienterad programutveckling 34 Detaljdesign av klasser Klassbeskrivningsformulär kan användas klassens namn klassens syfte eventuella basklass(er) vid arv konstruktor(er) andra medlemsfunktioner typ av returvärde parametrars namn och typ om undantag kastas datamedlemmar namn och typ

OH Objektorienterad programutveckling 35 Dokumentering av designfasen uppdaterade beskrivningar och diagram från analysen detaljdesign för klasserna motsvarande klassbeskrivningsformulär får vara C++-orienterad Utgör underlag för kodning.

OH Objektorienterad programutveckling 36 Dokumentering av implementeringsfasen Implementeringsfasen dokumenteras i form av programkoden all kod ska ha en enhetlig stil projektgruppen beslutar vilken exempel på kodmallar finns på webben det ska framgå vem som gjort vad

OH Objektorienterad programutveckling 37 Erfarenhetsrapport Gruppen ska i samband med projektets avslutning lämna in en erfarenhetsrapport en gemensam sammanställning av gruppens samlade erfarenheter, eller delar bestående av varje gruppmedlems personliga erfarenheter