270 likes | 407 Views
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
E N D
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 • Hilde Andreassen, Berg-Hansen Reisebureau AS • Jobbet i Berg-Hansen siden 2005 • 4 års erfaring med modellering • Begynte med Progress i 2006
Dagens meny • Hvorfor objektorientert programmering? • UML-modellering • Hva er UML? • Hvorfor UML? • Eksempelmodeller • Objektorientert Progress OOABL • OpenEdgeArchitect 10.2A Beta
Hvorfor objektorientert programmering? Thomas skjørten
Objektorientert programmeringKort historikk 1960 1967 1980 1990 2000 Simula påbegynnes Smalltalk Java .NET / C# C++ OOABL Simula 67 presenteres. Objektorientering er født.
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
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
Innkapsling, eksempel (OO) Kasse.p
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
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
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!
UML modellering Basic Hilde Andreassen
Modell Hva er UML? • UML = UnifiedModellingLanguage • Et språk definert for å beskrive virkeligheten • Viser hoveddelene i ett system og deres avhengigheter Bruker System
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
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
ProCargo • UseCase – Overordnet diagram
ProCargo • Class diagram
ProCargo • Sequence diagram
Progress OOABL DEMO
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
Flere sprøsmål / kontakt Thomas Skjørten thomass@proventus.no www.proventus.no Hilde Andreassen hian@berg-hansen.no www.berg-hansen.no
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