Aspekt-orienteret programmering (AOP) Lars Christensen Daniel Simonsen.

Slides:



Advertisements
Lignende præsentationer
Et projekt til undersøgelse af udviklingsmetodologi.
Advertisements

Alexander V. Breum, Emil Rotzler og Christian Peter Berg.
Log direkte fra GSAK Der er en kæmpe fordel at logge direkte fra GSAK, for det første er det let, da men ikke skal åbne alle cachesiderne for at kunne.
Scientific Investigation
Web 2.0 Teoretisk viden.
Hvordan programmerer man?? STREAM - en model. Programmører arbejder ofte i teams Hver programmør arbejder på sin del af en større helhed.
1 • Best practice for exception handling • Exception klasser • Division med nul uden exception handling • Division med nul med exception handling •. NET.
Programmeringsparadigmer.
Begreber og Redskaber 6. Afprøvning Formål: •Ekstern afprøvning (Funktionstest). •Hvordan dokumenterer man afprøvning i en rapport. •Hvordan konstuerer.
Et projekt til undersøgelse af udviklingsmetodologi.
Kort & Matrikelstyrelsen
07 – Kort om OO Introduktion.
Et projekt til undersøgelse af udviklingsmetodologi.
1 Intro nedarvning (eng.: inheritance) Nedarvningshierarkier Intro polymorfisme (eng.: polymorphism) Abstract / virtual / override / sealed Intro interfaces.
Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Selve objektet versus referencen til objektet Nedarvning
Informationsteknologi B-A, HHX, 2005,
Objektorienteret programmering
Exceptions. 2 Nordjyllands Erhvervakademi – 2009 Objectives “Unfortunately, errors are a part of life. Some are detected by the compiler, some are detected.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Tietgen Skolen Kvalitet og kvalitetssikring Review Test.
Arv Idéen i arv et at kunne genbruge gennem generalisering
10.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Komponenter Oversigt, principper og teknikker Kapitel 10.
Indledende Programmering Uge 5 - Efterår 2006 Om at udvikle korrekte og pålidelige programmer Susanne Lindros.
”Søg og du skal finde” fra idé til applikation af Mads Thomsen og Bent Guldager.
Et projekt til undersøgelse af udviklingsmetodologi.
Delphi og C++ Builder C++ Referencer og pointere.
1 Datalogi C Datastrukturer og algoritmer ved Keld Helsgaun.
Kap 19 E – handel Kapitel 19.
1. Semester rapporter Det skal fremgå af rapporten at man kan planlægge implementere afprøve dokumentere middelstore programmeringsopgaver.
MMP Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling.
Udregning af UseCasePoints UCP = UUCP*TCF*EF UseCasePoint = Ujusteret Use Case Point * Tekniske Komplexitets Faktor * Miljø Mæssige Faktor.
Hvordan ændrer jeg min SkoleIntras setup, så den passer til de lokale forhold? Man kan tilpasse SkoleIntra til skolens eller kommunens behov på mange måder.
Claus Brabrand, ITU, Denmark Mar 17, 2009Projekt: “Visualisering” Claus Brabrand [ ] ( “FÅP”: First-year Project Course, ITU, Denmark )
Objekter og klasser Rasmus D. Lehrmann DM
Interaktionsformer En begrebsmæssig model kan understøttes med forskellige interaktionsformer Interaktionsformen fastlægger centrale egenskaber: Hvordan.
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
GP9, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 11 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
Tekst filer Tekstfiler opbygges normalt af linier, hvor disse ikke behøver at være samme længde. Når man skal arbejde med tekstfiler, ønsker man metoder.
Unified Modeling Language
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
DAIMIIntroducerende objektorienteret programmering3C.1 Design af klasser Specifikation og implementation.
Variabler, klassevariabler, identitet og lighed, collections
 Jens Bennedsen, 2003Introducerende objektorienteret programmering Exceptions.
Indledende Programmering Uge 6 - Efterår 2006
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Pervasive Computing: Gateway Architecture for Home Integration Jonas Thomsen Ph.d. studerende Kvalifikationseksamen 27. september 2004.
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor.
DIEB8.1 Kursusgang 8 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
01.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Objektorienteret Analyse & Design (OOA&D) Grundbegreber, principper og metode Kapitel 1.
Robot Styringen Formålet er at give introduktion til robottens fysiske kontrolenheder. Servosystemer, encoder mm Betjenings boks I/O systemer og netværk.
1.09 Dokumentation.
Parametrisk programmering
”Avanceret” Programmering
1.09 Dokumentation.
Tre lags arkitektur.
Dokumentation.
Forelæsning Uge 2 – Torsdag
Kapitel 12 - Organisationsstruktur
ROBOTTERNE KOMMER - OZOBOTTERNE.
Software Construction
Radioaktiv henfald med NetLogo
Præsentationens transcript:

Aspekt-orienteret programmering (AOP) Lars Christensen Daniel Simonsen

Præsentation af AOP Hvad er AOP og hvordan komplementerer det objekt-orienteret udvikling? Kodeeksempel Fordele og ulemper

AOP terminologi Tværgående funktionalitet (eng. crosscutting concerns) Advice Point-cut Aspekt (eng. aspect)

Tværgående funktionalitet Ex. sikkerhed, validering af inddata, fejlhåndtering, logning m.m. Klasser (OO programmering)

Join punkt (eng. join point) Et veldefineret punkt i programudførelsen, der bruges til at sammenføje eksekvering af ”ny” og ”gammel” kode Eksempler på join punkter er metodekald, tilgang til variable og ved kode til undtagelseshåndtering (eng. exception handling)

Advice Kode, der skal eksekveres på et bestemt tidspunkt; før, efter eller omkring et join punkt before(): før join punktet after(): efter join punktet around(): kan styre om join punktet bliver eksekveret eller ej ved brug af proceed()

Pointcut Et pointcut er en sprogkonstruktion, der udvælger et sæt af join punkter, der opfylder visse kriterier

Aspekt Et aspekt er kombinationen af et pointcut og advice kode.

Introduction Brug af introduction gør det muligt for aspekter at ændre programmets struktur; –Kan tilføje nye metoder og variable –Erklære, at en klasse implementerer et interface

Implementationer AspectJ Jboss AOP Nanning Aspectwerkz Spring

Kodeeksempel

Fordele Reduceret kodekompleksitet og udviklingstid Tilsyneladende ingen ydelsesforringelse Man undgår fejl forårsaget af (næsten) identisk kode Nemt at vedligeholde og udvide systemer ved at tilføje aspekter Aspekter kan genbruges

Ulemper Fejlfinding kan blive vanskeligere (?) Mulighed for spaghettikode, hvis aspekter bliver brugt ukritisk