Objektorientering. Grunderna i OO



Relevanta dokument
Objektorientering Användning

Objektorientering Klasser

Objektorienterad konstruktion

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

Objektorienterad analys och design

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

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

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

Objektorienterad Systemutveckling 1 (7,5 hp)

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

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

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

Objektorienterad analys och design

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

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

Programutvecklingsmetodik

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

Objektorienterad analys och design

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

Objektorienterad programutveckling i ett nötskal

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

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

TDP005 Projekt: objektorienterade system

Unified Modeling Language UML

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

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

Föreläsning 15: Repetition DVGA02

Introduktion. Byggstenar TDBA

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

RUP - Rational Unified Process

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

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

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

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

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

Lite om databasdesign och modellering

RUP Rational Unified Process. 17 november 2004

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Inkapsling (encapsulation)

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

Databaser design och programmering. Design processen ER- modellering

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

Databaser design och programmering. Fö 2: Design processen, ER-modellering

OOMPA 2D1359 Föreläsning 2

Unified Modeling Language UML

Föreläsning om OO, OOA och UML

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

Konceptuell modellering. Formalisering, automatisering och effektivisering

Relationer mellan objekt

Begreppsmodellering i UML

Interaktionsteknik och Design, 7,5hp

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

Teoridel (svaren direkt på lydelsen)

(Data)Modellering. nikos dimitrakas rum 2423

Objektorienterad systemutveckling i ett nötskal

KravinsamlingAnalys Design Implementation Testning

Föreläsning 11 Tisdag 6/6 2000

Konceptuell modellering

SYSTEMUTVECKLING METODER & MODELLER. Suzana Ramadani

Begreppsmodellering i UML

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

Objektorienterad Systemutveckling (7,5 hp)

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

Symptom på problemen vid programvaruutveckling

Objektorienterad programmering. Grundläggande begrepp

Bilaga A. Klassdiagram i OMT (klasser och dess relationer) Klassdiagram i UML (klasser och dess relationer) 1 st

Objektorienterad programmering

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

Frågor och svar till tentamen i Kravhantering

Kursplanering Objektorienterad programmering

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

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

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

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

Introduktionsmöte Innehåll

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

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

Arkitektur Michael Åhs

STUDIE AV SYSTEMUTVECKLINGSMETODER PÅ

Objektorienterad Systemutveckling Period 3

Projektering av informationssystem

Fyra i rad Javaprojekt inom TDDC32

Kursens mål. Objektorienterad programmering. Kursupplägg. Tillgodoräknande. Kursbok. Labsalar

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

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

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

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

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

Objektorienterad programmering, allmänt

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

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

Blekinge Tekniska Högskola UML. - i teori och praktik. Examensarbete inom datavetenskap 10 poäng, C-nivå, våren Eva Henriksson is98

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

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

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Introduktion till UMLs klassdiagram

" «Observable» DataGenerator" betyder att klassen DataGenerator ärver från den abstrakta klassen Observable.

OOMPA 2D1359 Föreläsning 5

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

Transkript:

Objektorientering Grunderna i OO 1

Systemutveckling Tre systemnivåer: Verksamhet Informationssystem Datasystem Huvuduppgifterna i ett systemutvecklingsarbete: Verksamhetsanalys Informationsbehovsanalys Anskaffning och utformning 2

Centrala begrepp Modell Konceptuell modell Logisk modell Fysisk modell Metod Objektorientering System Ligger bakom utformandet av UML 3

System Avgränsning Definieras av en betraktare Ett system har en omgivning Består av Komponenter Relationer mellan komponenter 4

Datasystem och komponenter Andra system Användare Gränssnittskomponenten Kopplar samman systemet med dess omgivning Funktionskomponent De faciliteter som användare gör bruk av i sina arbetsuppgifter för att utnyttja och uppdatera modellkomponenten Modellkomponent En modell av systemet - datasystemets problemområde Gränssnitt Funktioner Modell Datasystem En samling komponenter som realiserar krav på modell, funktioner och gränssnitt Suzana Ramadani 5

Objektorienterad systemutveckling Man brukar dela in arbetet med att utveckla ett program i fyra faser: analys, design, implementation, testning. I analysen är den främsta uppgiften att förstå och beskriva det bakomliggande problemet problemet som skall beskrivas, inte datorlösningen till problemet. 6

Objektorienterad systemutveckling I designen utgår man från de erfarenheter som man skaffat sig under analysen och bygger vidare på dem. Förberedelser för implementation Hårdvara, kommunikation, datalagring osv. 7

Objektorienterad systemutveckling Implementation Programskrivning Testning Testa programkomponenter Testa färdigt program Påvisa fel i programmet 8

Traditionella metoder Analys -> Design -> Implementation -> Testing Vattenfallsmetoder Funktionsinriktade metoder 9

Objektorienterade metoder Analys <=> Design <=> Implementation <=> Testing Data - Objekt Modellering Iterativ och inkrementell 10

Objektorientering Två principer att förstå och beskriva komplexa system: Partitionering Klassificering Notation i systemutvecklingsmetod UML 11

Objektorienterad systemutveckling Analysfas (OOA) Kravspecifikation/Systemdokumentation Användningsfall, olika diagram och annan dokumentation Kravspecifikation Designfas (OOD) Kravspecifikation Förfina klasser, hitta nya Detaljerade beskrivningar av systemet Analysfasen = modellera ett system Designfasen = konstruera ett system Objektorienterad systemutveckling iterativ process! 12

Objektorienterad analys och design Begrepp: Objekt En entitet med identitet, tillstånd och beteende Ett objekt kan hålla information (data) Ett objekt kan göra saker (funktionalitet) Objekt tillhör en klass (är en instans av) Klass En beskrivning av en samling objekt som delar struktur, beteendemönster och attribut En klass definierar vilken typ av information dess objekt skall hålla (Attribut) En klass definierar vad dess objekt skall kunna göra (Metoder/Operationer) System En samling av komponenter som implementerar modelleringskrav, funktioner och gränssnitt. 13

Objektorienterad analys (OOA) Analys av ett system syftar till att kartlägga ett systems funktionalitet utifrån de krav som ställs på systemet. Mål i detalj beskriva vad systemet skall utföra 14

OOA I analysen upprättas: Klassdiagram Objektdiagram Tillståndsdiagram Scenario Användningsfall Sekvensdiagram Användardialoger (skärmbilder) Suzana Ramadani 15

Aktiviteter i analysdelen Vanliga aktiviteter i en analys är: Insamlande av underlag (Verksamhetsanalyser, begreppsmodeller, beskrivningar av befintligt system, intervjuer med användare ) Definition av användningsfall Identifiera kandidater till objekt (brainstorming sen utselektering) Klassificering av objekt (klassificeras med klassnamn, beskrivning, attribut, metod) Relationer mellan objekt och mellan klasser (klassdiagram) Gruppera klasser Specificera operationer och attribut Verifiera modellen 16

Klassdiagram Klassdiagram beskriver olika typer av objekt som finns i ett system och relationer som finns mellan dessa Hitta objekt Klassificera objekt Relationer mellan klasser Gruppera klasser 17

Klassdiagram Relationer mellan instanser av klasser Association Aggregat och komposition Specialisering /Generalisering Subklass Superklass Person 1 Bil 1 1 Fordon 1 1 4 Bil Chassi Motor Hjul Bil Buss 18

Användningsfall (use case) Användningsfall interaktion mellan en användare och ett system. Användningsfall att definiera de olika sätt som systemet kommer att användas på. Identifiera aktörer och användningsfall För att få en djupare insikt om samarbetet mellan objekt Användningsfall en viss funktionalitet i systemet som en aktör använder 19

Sammanfattning av analysfasen Analysen kan beskrivas i olika delmoment: Finn objekt Klassificera objekt Beskriv relationer Gruppera klasser Identifiera aktörer och användningsfall Specificera operationer och attribut Verifiera modellen Ordningen ej viktig, upprepa olika moment Resultat av analysen är ett dokument med: Klassdiagram Textuell beskrivning av varje klass Interaktionsdiagram som beskriver händelseförlopp och hur objekt samarbetar Redovisning av användningsfall Krav på systemprestanda, maskinvara, standarder 20

Övning 1 Leta efter substantiv för att finna lämpliga klasser i det system som beskrivs nedan. Finn också associationer mellan klasserna och definiera lämpliga attribut i klasserna. En institution ger ett antal kurser. Varje kurs har ett namn och en kurskod. Vid institutionen läser ett antal studenter. Varje student har ett namn och ett personnummer. Studenterna läser och tenterar kurser. Vid tentamen registreras datum och ett sifferbetyg. 21

Lösningsförslag Klasser: Institution, Kurs, Student, Tentamen. Associationer mellan klasserna får man också ur texten: en institution ger kurser, studenter läser-vid en (eller antagligen flera) institution(er), studenter läser-och-tenterar kurser, tentamina registreras-vid institutionen. Kopplingen mellan student-tentamen-kurs kan uttryckas: en student deltar-i tentamina, en kurs innehåller tentamina. 22

Övning 2 Gör ett klassdiagram med klasserna Cykel, CykelÄgare, Stadscykel, Cykelram, MountainBike och Hjul med associationer och generaliseringar. Markera särskilt aggregat och komposition och ange multiplicitet. 23

Lösningsförslag CykelÄgare 1 Cykelram 0..* 1 2 Cykel Hjul Stadscykel MountainBike 24

Övning 3 Rita ut lämpliga relationer (association, aggregat, komposition, specialisering) mellan klasserna i följande diagram: Svans Hund Däggdjur Katt Öga 25

Lösningsförslag Däggdjur Svans Öga Katt Hund 26

Litteraturhänvisning Wiktorin: kap 5 27