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

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

SuperOffice - Visma Global ERP link - Tilbud/Ordre SuperOffice - Visma Global integrasjonen består av 3 produkter. ERP link SuperOffice - Visma Global.
PUG Norway – 12. nov 09Thomas Skjørten / Jan Kolstad.
Ditt eget integrerte utviklingsmiljø med OpenEdge i fokus Hamar 27. mars 2009 Thomas Skjørten/Jan Kolstad.
Realisering av Software Patterns Software Design Patterns Realisering med kode Refaktorering Gjenkjenning av mønstre.
Programmering i ActionScript - hva er det, og hvordan undervise?
Java database persistence framework.  SELECT by FROM postnr AS p WHERE ( SELECT DISTINCT postnr FROM addr AS a WHERE user.adrId = a.Id ) = p.postnr;
Introduksjon til objektorientert programmering i PHP
Tips og råd for praktisk kompetansearbeid
Etter forarbeidet og dagen i dag er målet at dere skal kunne:
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Gruppe 6 Gunnar Henrik Mathias Morten Ronny Svein Ivar.
UML & object models av gruppe 8
Objektorientert programmering Objektorientert systemutvikling
Objektorientert programmering i PHP del 2
ObjektOrientert Systemutvikling del I
Prototyping & Use Case Software Engineering Gruppe
Grunnleggende testteori
Systemmodeller In 140 Sommerville kap. 7. Mål Forstå hensikten med kontekstmodell Forstå ideene bak –oppførselsmodellering –datamodellering –objektmodellering.
Feilhåndtering. Feil er uunngåelige! Erfaring viser at feil i dataprogrammer som består av mer enn noen få linjer ikke er til å unngå. For å få et godt.
Kort om oppgavestiller Sintef Energiforskning AS, avdeling for kraftproduksjon og marked. Driver med oppdragsforskning i det nasjonale og internasjonale.
LocMoc : Avatar 3D – Visualisering av menneskelige bevegelser ved bruk av Java og Coin3D. En presentasjon av: Øivind Hoff Johansen og Jon Kåre Sørensen.
Et Prosjekt av: Truls Haaland Åsmund Østvold Alf Solbakken
4/4/2017 IMT2243: 17.februar 2011 Domenemodellering / Konseptuelle Klassediagram Monopol- eksempel SSD : System Sequence Diagram Kort repetisjon av teknikken.
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
Læring og tenkning Systemutvikling er læring Gjensidig respekt og samarbeid Følge en konkret oppskrift Velge blant flere oppskrifter Nå målet uten oppskrift,
Prosjektet transparente lag Composite og tegnende objekter Decorator og gui-kontrollere Factory Method Iterator.
En kort innføring i Design Patterns
Tilstandsmaskiner Tilstandsmaskiner kan beskrives med tilstandsdiagrammer Nivået er teknisk Tilstandsdiagrammet viser ett objekts tilstander og transisjoner.
Ting Forbindelser Ting og forbindelser blir til sammen et diagram
Hovedprinsipper i Rational Unified Process
Bendik Bygstad Høgskolen i Vestfold RUP-prosjekt Sammenhengen med UML 1.Hovedstruktur i RUP-prosjekter 2.Faser og iterasjoner 3.Sammenhengen med.
Strukturerende elementer i UML
Patterns (mønstre) Patterns er erfaringer Patterns er best-practices Patterns er how-to Patterns er velkjent design Larman: ” ’new Pattern’ is an Oxymoron”
I dag snakker vi om: Brukergrensesnitt med kvalitet Bruksegenskaper Normans 7 stadier Testing med papirprototyp.
A UML-based Design Environment for Interactive Applications Paulo Pinheiro Da Silva og Norman W Paton IEEE, Second International Workshop on User Interfaces.
Hvordan uttrykke krav Kapittel 4.4. Innledning Målet er å samles rundt ett entydig språk som ikke kan misforståes eller feiltolkes. Gjør sporbarheten.
Design Patterns Iterator & Mediator. Gruppe 8 Presentasjonsgruppe:Resten av gruppen: Marianne AtesAndrè Johansen Tom Vidar LundeHege-Kristin Johansen.
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
Design patterns: State og Strategy
Object Oriented Measurement
Hva er UML (Martin Fowler)
Flash og ActionScript - Nye muligheter Jostein Nordengen.
Programmering i ActionScript - hva er det, og hvordan undervise?
Verktøy i faget ”Objektorientert systemutvikling og UML” Eclipse Together Architect for Eclipse
Retningslinjer for spesifikasjoner til oppdrag
VI LAGER EN PLATEBUTIKK
OBJEKTORIENTERT ARBEIDSMETODE
Verktøy i faget ”Objektorientert systemutvikling og UML” Eclipse Together for Eclipse
Testing av objektorienterte systemer Testplanlegging
Praktiske erfaringer med Objektorientert Progress og.NET Jan Kolstad PUG Norway, Lillehammer 2005.
BUCS Utfordringer og valg av fokus Tor Stålhane. Rammebetingelser Første spørreundersøkelse viser at det vi gjør må kunne: Brukes sammen med UML Passe.
Objektorientert utforming In 140 Sommerville kap. 12.
Generelle definisjoner Oppslagsverk nå og senere! Finnes også i dokumentet Retningslinjer for datamodellering i UML UML-seminar 12. og 13. mars 2003 SOSI-sekretariatet.
Utvikling av tegneverktøy for Generalized Sketches Student: Ørjan Hatland Veiledere: Yngve Lamo, Høgskolen i Bergen Uwe Wolter, Universitetet i Bergen.
Main metoden n public static void main(String[] args){ } n Inni denne metoden skjer alt! n Det kan bare finnes en main metode per program. n Den kan ligge.
Forstudie Nå situasjonen: dagens situasjon med ulemper og fordeler
Objektorientert design
Konstruksjon og Testing Torsdag 30. september 2004 Av Even Aasland Harald Ueland.
Objektorientert utforming In 140 Forelesning Nr 11 Sommerville kap 12 – del 1.
Systemmodeller In 140 Forelesning nr. 9 Sommerville kap. 7.
Objektorientert design In 140 Sommerville kap 12 – del 1.
Use case realisering Designmodellering Kirsten Ribu Kapittel 4 UML Distilled.
Strukturerende elementer i UML
I den prosessorienterte organisasjon spør man
RUP-prosjekt Sammenhengen med UML
Ting Forbindelser Ting og forbindelser blir til sammen et diagram
Programvareprosessen styrer utviklingen
”Objektorientert systemutvikling og UML” Eclipse Visual Paradigm
Objektorientert programmering i Java
Utskrift av presentasjonen:

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

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  OpenEdge Architect 10.2A Beta

Hvorfor objektorientert programmering? THOMAS SKJØRTEN

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

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 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

Innkapsling, eksempel (prosedyrisk) Kasse.p

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

Arv, eksempel

Arv: typesikkerhet

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

Polymorfisme, eksempel

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

UML modellering BASIC HILDE ANDREASSEN

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

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

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 Hilde Andreassen

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 