OOS Object geOrienteerd Software-ontwerp - 2

Slides:



Advertisements
Verwante presentaties
Informatieanalyse klassediagram I.
Advertisements

Les 2 klassediagrammen II
KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
OOS Object geOrienteerd Software-ontwerp
OOS Object geOrienteerd Software-ontwerp - 3
OO analyse en de kunst van het motoronderhoud
Van domeinklasse tot implementatie
Het ontwerpen van een klasse
Het type int Tekenen met Java operatoren
Klassen en objecten.
Greenfoot Workshop Bobby - Snake.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
‘Inleiding programmeren in Java’ Derde college Maandag 22 januari 2001 drs. F. de Vries.
Opleiding AI cursus Databases
1 Voorwaarden hergebruik Modulair ontwerp Low coupling High cohesion.
Inleidend probleem Data structuur (hiërarchie van classes)
Static Keyword static voor functieleden functie niet voor een object aangeroepen class K {... static int minimum( int i, int j); } aanroep: K::minimum(
JAVA -- H51 CONSTRUCTOR –- COPY-CONSTRUCTOR 1Constructor: Dezelfde naam als de klasse Wordt uitgevoerd d.m.v. new Initialisatie van de (private) attributen.
Consoletoepassing Variabelen Klassen
Algoritmiek Object-georiënteerd Programmeren
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
Hoofdstuk 2 Objectgeoriënteerde basisbegrippen
C/S varianten s /CSpaginas/
Internetapplicaties - VI Herhaling 1 Internetapplicaties Deel 6: Herhaling.
OO Analyse in de praktijk OO Analyse in de praktijk IV OO basisregels.
Herhaling Java-programmatie en geautomatiseerd testen (vervolg)
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 15: Herhaling Java-programmatie en geautomatiseerd testen.
KINN 2010 OOP O Object O Georiënteerd P Programmeren.
Object geOrienteerd Software-ontwerp - 6
Overerving: It’s a kind of magic…. Principes van OO: 1) Overerving 2) Encapsulatie 3) Polymorphisme = (deel van het) OO. paradigma.
Interfaces Hoofdstuk 23 Hoofdstuk 23.
Database beveiliging in Access 97. Database beveiliging Overzicht van Access beveiliging Het 10 stappen programma Onderhoud van beveiligde database Anders.
Tircms03-p les 4 Klassen. Abstracte datatypes in C struct stack { char info[100]; int top; }; void reset(stack *s) { s->top = -1; } void push(stack *s,
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Polymorphisme en Interfaces: inleiding
OOS Object geOrienteerd Software-ontwerp
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 7 Polymorfie en overerving © 2014, Gertjan Laan, versie 2.
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
Eigen klassen maken A new way of thinking.. Wat? Zie voorbeeld. Zie voorbeeld.
GEGEVENSSTRUCTUREN IN.NET. Inleiding  Enumerated type  Structure  Collecties  Typed collections  Untyped collections.
Java voor beginners Doel: Een spel maken in LWJGL Door: Jim van Leeuwen.
De definitie van een object. Een object is een verzameling van eigenschappen en bewerkingen. Veel voorkomende objecten zijn: D (display) Gui (user interface)
Bespreking testpracticum.  Javaconventies! ◦ KlasseNamen beginnen met Hoofdletter ◦ objectNamen/methodeNamen met kleine letter  Aanspreken GUI ◦ Zie.
PPGM Voor databeheerders Johan Van Rensbergen 09/08/2016.
Sway.
Windows applicatieontwikkeling
Objectgeoriënteerd Programmeren (2)
Gameprogrammeren: Lists en interfaces
Gameprogrammeren: Overerving
Hoofdstuk 9.2 Strings.
Windows-applicatie using System.Windows.Forms; using System.Drawing;
Gameprogrammeren: Methoden
Gameprogrammeren: Overerving in Painter
Gameprogrammeren: Properties
OOS Object geOrienteerd Software-ontwerp - 5
Gameprogrammeren: Game Basics
Voorbeeld: Simulatie van bewegende deeltjes
Voortborduren op eerder gedaan werk
Gameprogrammeren: Exceptions
Gameprogrammeren: Abstracte klassen
Gameprogrammeren: Tiles en File I/O in Tick Tick
Unified Modeling Language
‘Inleiding objectgeoriënteerd programmeren met PHP’ ‘Inleiding’
Arjan Egges & Paul Bergervoet
ASP.NET MVC Web Development
Software Development fundamentals
Software Development fundamentals
Software Development fundamentals
Unified Modeling Language
Transcript van de presentatie:

OOS Object geOrienteerd Software-ontwerp - 2 Generalisatie Compositie Gedrag Hoe ontwerpen?

Generalisatie

Generalisatie voorbeeld onvoorwaardelijk overerven van: eigenschappen Klant Zakelijke Klant Prive Klant onvoorwaardelijk overerven van: eigenschappen gedrag constraints

Generalisatie voordelen gevalsonderscheid duplicatie van code onderhoudbaarheid betere typecontrole maar er zijn ook nadelen …

Generalisatie versus Specialisatie

Type is bevroren Exemplaar Aanwezig Uitgeleend Beschikbaar leenUit(Lid) komtTerug() legApart() Aanwezig Uitgeleend Beschikbaar

State pattern Toestand Exemplaar Aanwezig Uitgeleend Beschikbaar 1 leenUit(Lid) komtTerug() legApart() Aanwezig Uitgeleend Beschikbaar 1 state

Compositie

Compositie bij 1 parent verantwoordelijkheid life-time dependency Logical Drive letter : Char Root bij 1 parent verantwoordelijkheid life-time dependency

0..* Container Onderdeel public class Container { private ArrayList onderdelen; public Container() { onderdelen = new ArrayList(); } public void addOnderdeel(...) onderdelen.add( new Onderdeel(...) ); public class Onderdeel { Onderdeel(...) { }

1 LogicalDrive Root public class LogicalDrive { private char driveletter private Root root; public LogicalDrive(char letter) { driveletter = letter root = new Root(); } public class Root extends Directory { Root() { super(); }

Aggregatie Folder name : Text File 0..* compositie Folder name : Text File 0..* aggregatie Folder name : Text File 0..* 1 associatie Vervang elke aggregatie, die geen compositie is, door een associatie met multipliciteit 1 (of soms zelfs 0..1)

Navigatie 0..* 0..* Land Plaats Weg Route 1 2 0..* 1 ◄ ligt in naam: Text Land naam: Text pos: Position Plaats afstand: Real Weg /afstand: Real Route 0..* 0..* 1 2 0..* 1 ◄ ligt in ◄ uiteinden ◄ bestaat uit

Compositie-procedure life-time dependency extra compositieklassen toevoeg-, verwijder- en zoekmethoden afgeschermde constructor

Toe te voegen compositie Aarde naam: Text Land naam: Text Land naam: Text pos: Position Plaats naam: Text pos: Position Plaats afstand: Real Weg afstand: Real Weg /afstand: Real Route /afstand: Real Route 0..* 0..* 1 2 0..* ◄ ligt in ◄ uiteinden ◄ bestaat uit

Gedrag

Standaardgedrag Constructor(en) Inspectie Wijzigiging

Constructor Niet-optionele eigenschappen: Via parameter Defaultwaarde Interne berekening

Inspectiemethoden Getters Boolean-eigenschappen Zoekmethoden

Wijziging Read-only eigenschappen Setters Add, Remove

Hoe ontwerpen?

Ontwerpproces OMT – heuristieken CRC – cards Eerst toestand dan gedrag Inventariseer alle soorten van informatie Controleer of alle informatie in CD voorkomt Standaardgedrag op basis van toestand Verfijnen van gedrag

Naamgeving Klassenaam  Objectnaam Meervoudige eigenschap  meervoud Rolnaam  Associatienaam

Deze week Toepassen van compositie. Navigatierichting toevoegen. Standaardgedrag toevoegen.

Volgende week Scenario’s Sequentiediagram Coderen aan de hand van het klassendiagram