Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

PUG-NORWAY OKTOBER 2008 THOMAS SKJØRTEN, HILDE ANDREASSEN UML og OpenEdge OOABL.

Liknende presentasjoner


Presentasjon om: "PUG-NORWAY OKTOBER 2008 THOMAS SKJØRTEN, HILDE ANDREASSEN UML og OpenEdge OOABL."— Utskrift av presentasjonen:

1 PUG-NORWAY OKTOBER 2008 THOMAS SKJØRTEN, HILDE ANDREASSEN UML og OpenEdge OOABL

2 Om foredragsholderne Thomas Skjørten, ProVentus  Jobbet i ProVentus siden 2004  Jobber mye med teknologi og forskning  I hovedsak teknologi fra Progress og Microsoft  Begynte med Progress i 2004 Hilde Andreassen, Berg-Hansen Reisebureau AS  Jobbet i Berg-Hansen siden 2005  4 års erfaring med modellering  Begynte med Progress i 2006

3 Dagens meny Hvorfor objektorientert programmering? UML-modellering  Hva er UML?  Hvorfor UML?  Eksempelmodeller Objektorientert Progress OOABL  OpenEdge Architect 10.2A Beta

4 Hvorfor objektorientert programmering? THOMAS SKJØRTEN

5 Objektorientert programmering Kort historikk Simula påbegynnes Simula 67 presenteres. Objektorientering er født. Smalltalk C++ Java.NET / C# OOABL

6 Hvorfor objektorientering? Å programmere handler om å lære maskiner å utføre menneskelige oppgaver I objektorientering struktureres koden i logiske enheter som både inneholder data og logikk Disse enhetene settes i sammenheng og benytter hverandres funksjonalitet får å lage systemer

7 Innkapsling Innkapsling lar oss bygge enheter som er selvforsynte med alt de trenger for å utføre funksjonaliteten de tilbyr Disse enhetene kan enkelt gjenbrukes Klart skille mellom data og funksjoner Den som kaller prosedyren er ansvarlig for å holde på de dataene som trengs, samt å sende med disse verdiene til hvert kall Prosedyren har levetid på et enkelt kall Funksjoner grupperes i klasser som også inneholder data Klassen holder selv styr på sine data Også mellom kall Levetiden til et objekt av klassen bestemmes av den som oppretter objektet Prosedyrisk programmeringObjektorientert programmering

8 Innkapsling, eksempel (prosedyrisk) Kasse.p

9 Innkapsling, eksempel (OO) Kasse.p

10 Hvorfor objektorientering? Arv  Mer gjenbruk!  Mulighet til å organisere klasser i hierarkier der klasser kan arve funksjonalitet fra andre klasser slik at man slipper å implementere dette flere ganger  Når en klasse arver fra en annen vil den automatisk inneholde alle data og funksjoner fra klassen den arver fra  Ofte vil klasser som arver fra en annen tilby ekstra funksjonalitet i forhold til klassen den arver fra

11 Arv, eksempel

12

13 Arv: typesikkerhet

14 Hvorfor objektorientering? Polymorfisme gir oss muligheten til å programmere ”dynamisk” uten å bryte med typesikkerhet Ved å benytte arv kan vi i koden gjøre kall der mottakeren av kallet ikke er kjent før ved kjøring av programmet Programmet kan dermed oppføre seg forskjellig basert på valg som blir tatt av brukeren eller andre eksterne faktorer

15 Polymorfisme, eksempel

16 Mye mer oversiktlig kode. Koden er organisert etter menneskelige begreper, ikke etter programfunksjoner (substantiver / verb)  Bil, Konto, Faktura, Lån  CreatePlan, ExcecutePlan, ExecutePlan2, DoMagic, SuperFunction Enklere gjenbruk av kode  Innkapsling  Arv Typesikkerhet  Kompileringsfeil, ikke runtimefeil! Hvorfor objektorientering ? Oppsummering

17 UML modellering BASIC HILDE ANDREASSEN

18 Hva er UML? UML = Unified Modelling Language Et språk definert for å beskrive virkeligheten Viser hoveddelene i ett system og deres avhengigheter Modell System Bruker

19 Hvorfor UML? Oppnår bedre forståelse mellom kunden og utvikleren om hva som faktisk skal lages  Diagrammer gir en presis forståelse av løsningen som skal utvikles. Vi lager det kunden FAKTISK ønsker. I OO programmering kan vi ofte få komplekse løsninger, det er derfor lurt å planlegge før og underveis i programmeringen Gir god oversikt Slipper mye tekst i dokumentasjonen

20 Basic UML modellering UseCase  Kartlegger ulike senario for systemet  Avdekke risiko områder  Inneholder krav til systemet  Ofte brukt som basis for testing Class diagram  Objekter satt i system  Viser objekter og relasjoner mellom dem Sequens diagram  Viser sekvensen og flyten for løsningen  Baserer seg ofte på senario i UseCase

21 ProCargo UseCase – Overordnet diagram

22 ProCargo Class diagram

23 ProCargo Sequence diagram

24 Progress OOABL

25 Oppsummering Objektorientering lar oss strukturere koden i logiske enheter  Dette gir oss store muligheter for gjenbruk av kode  Sterk typing fører til færre runtimefeil UML hjelper oss til å få en gjennomtenkt løsning

26 Flere sprøsmål / kontakt Thomas Skjørten Hilde Andreassen

27 Ressurser Objektorientering  OpenEdge Getting Started: Object oriented programming (whitepaper) OpenEdge Getting Started: Object oriented programming (whitepaper) UML  UML Destilled, Fowler UML Destilled, Fowler  Unified Modelling Language User Guide, Booch, Rumbaugh, Jacobson Unified Modelling Language User Guide, Booch, Rumbaugh, Jacobson  Applying UML and Patterns, Larman Applying UML and Patterns, Larman  Head First Object-Oriented Analysis & Design, McLaughlin, Pollice, West Head First Object-Oriented Analysis & Design, McLaughlin, Pollice, West PUG-Norge 


Laste ned ppt "PUG-NORWAY OKTOBER 2008 THOMAS SKJØRTEN, HILDE ANDREASSEN UML og OpenEdge OOABL."

Liknende presentasjoner


Annonser fra Google