1 / 27

UML og OpenEdge OOABL

UML og OpenEdge OOABL. PUG-Norway oktober 2008 Thomas Skjørten, Hilde Andreassen. 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

bryga
Download Presentation

UML og OpenEdge OOABL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UML og OpenEdge OOABL PUG-Norway oktober 2008 Thomas Skjørten, Hilde Andreassen

  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 • OpenEdgeArchitect 10.2A Beta

  4. Hvorfor objektorientert programmering? Thomas skjørten

  5. Objektorientert programmeringKort historikk 1960 1967 1980 1990 2000 Simula påbegynnes Smalltalk Java .NET / C# C++ OOABL Simula 67 presenteres. Objektorientering er født.

  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 Prosedyrisk programmering Objektorientert programmering • Klart skille mellom data og funksjoner • Den som kaller prosedyrener 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

  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. Arv, eksempel

  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. Hvorfor objektorientering ? Oppsummering • 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!

  17. UML modellering Basic Hilde Andreassen

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

  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 DEMO

  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 thomass@proventus.no www.proventus.no Hilde Andreassen hian@berg-hansen.no www.berg-hansen.no

  27. Ressurser • Objektorientering • OpenEdge Getting Started: Object oriented programming (whitepaper) • UML • UML Destilled, Fowler • UnifiedModellingLanguageUser Guide, Booch, Rumbaugh, Jacobson • Applying UML and Patterns, Larman • Head First Object-OrientedAnalysis & Design, McLaughlin, Pollice, West • PUG-Norge • www.pugnorway.no

More Related