|
 |
Tags: Apex | Applicatieontwikkeling | Oracle
|
|
Modulair Ontwikkelen met Oracle Application Express
Door Ome-B: Douwe Pieter van den Bos
Oracle Application Express, kortweg
APEX, is hard op weg een
van de populairste ontwikkelomgevingen van Oracle te worden. En niet
voor
niets; APEX is een manier om snel resultaten te boeken en toch gebruik
te maken
van de mogelijkheden die het web te bieden heeft. Deze snelheid in
ontwikkelen
wordt ook als de grootste zwakte en misschien wel gevaar van APEX
genoemd. Maar
waarom zouden we deze kracht dan niet zo inzetten dat de zwakheden
weggenomen
worden en er juist gebruik van gemaakt wordt? Modulair ontwikkelen is
het
antwoord op deze prangende vraag.
Modulair Ontwikkelen
Modulair Ontwikkelen is het
opsplitsen van het ontwerp, de
ontwikkeling en de oplevering van een te ontwikkelen software pakket.
Door te
splitsen in functionele of technische brokken, modules, is het mogelijk
om
eigenlijk grote teams op te splitsen in kleine samenwerkingsverbanden
en om
iteratief onderdelen van de software op te leveren en te testen.
Hierdoor is de
druk op de organisatie meer gefaseerd en dus zal de organisatie minder
impact
hebben van het op te leveren software pakket. Functionele en technische
scheiding geschiedt meestal doormiddel van, al dan niet geprioriteerde,
eisen-
en wensenlijsten, hierdoor is modulair ontwikkelen bijzonder goed toe
te passen
op timeboxing. Doordat het mogelijk is om kleine samenwerkingsverbanden
te
creëren binnen de ontwikkelteams kan hiermee vol gebruik
gemaakt worden van de
kracht van APEX, de snelheid van ontwikkelen, zonder dat het een
valkuil hoeft
te worden.
Modules en Iteraties
Modules en Iteraties zijn niet
hetzelfde. Iteraties zijn
afzonderlijk op te leveren onderdelen van het systeem, en kunnen dus
best uit
meerdere modules bestaan. Toch is het wijs om modules zo snel mogelijk
op te
leveren. Door zo min mogelijk modules in een iteraties te stoppen zal
het
mogelijk zijn om op een vroegtijdig stadium fouten in de software te
ontdekken.
Hierdoor zal ook de doorlooptijd van een project aanzienlijk beter te
managen
zijn. Als leidraad voor de grootte van een module kan grofweg gezegd
worden dat
er maximaal twee ontwikkelaars aan mogen werken voor een periode van
maximaal
een week. Door deze strenge regel toe te passen is er voor
ontwikkelaar,
ontwerper en projectleiding minder moeite nodig om tijd te plannen en
ook om de
bestede tijd te managen.
Applicatie Ontwerp
Om een applicatie in meerdere module
te kunnen ontwikkelen
moet er rekening worden gehouden met het ontwerp van de applicatie.
Door vanaf
de analyse en het ontwerp te faseren in meerdere modules is het
mogelijk om
deze in functionele of technische gedeeltes op te splitsen. Voorbeeld
hiervan
is een te onderhouden, informatieve website. Een van de modules zal de
frontend
zijn, hier komen de bezoekers terecht en zij zullen de informatie die
in de
beheermodule in het systeem wordt gezet te zien krijgen. Daarnaast zou
er
bijvoorbeeld ook een aparte module kunnen zijn waarin de afbeeldingen
gebruikt
in de frontend worden beheerd.
Applicaties en Modules
Een te ontwikkelen systeem in Oracle
Application Express
bestaat meestal al uit meerdere applicaties. Toch is het wijs
functionele en
technische onderdelen te onderkennen om de applicaties op te delen in
meerdere
modules. Deze zijn afzonderlijk van elkaar op te delen in eigen
applicaties in
APEX. Voor het hergebruik van bepaalde eigenschappen, zoals de user
interface,
autorisatie, authenticatie en het aanroepen van gemeenschappelijke
database
procedures, is het wijs gebruik te maken van een zogenaamde
‘Core Applicatie’.
Door overerving is het op die manier mogelijk om deze herbruikbare
onderdelen van
je applicatie ook in de verschillende module te gebruiken terwijl hier
geen
verdere moeite voor gedaan hoeft te worden.
Core Applicatie
De Core Applicatie binnen een Oracle
Application Express
ontwikkeld systeem zal de meeste gangbare, logische en overerfbare
onderdelen
van je applicatie bevatten. Onderdeel hiervan zijn bijvoorbeeld de
JavaScript
Libraries en de autorisatie en authenticatie schema’s.
Daarnaast worden
veelgebruikte onderdelen als knoppen en paginaprocessen hier in
aangemaakt. Veelal is het handig om te werken met
twee types van de Core
Applicatie, eentje voor al je APEX projecten en eentje gespecificeerd
voor het
systeem welke ontwikkeld wordt. In elk systeem zitten
applicatiespecifieke en
toch over meerdere modules herbruikbare applicatieonderdelen. Denk
hierbij aan
de User Interface template, de stylesheet en klant- of
applicatiespecifieke
processen en procedures.
Common Sence
In ontwikkelen in Application Express
is misschien wel de
belangrijkste regel om het gezonde verstand erbij te houden. Op het
moment dat
een onderdeel van de applicatie meerdere malen gebruikt gaat worden,
dan hoort
deze naar alle waarschijnlijkheid thuis in de Core Applicatie. Mocht
het te
hergebruiken onderdeel niet thuis horen in de Core Applicatie, maak er
dan een
aparte module van. Daarnaast dient Oracle Application Express gezien te
worden
als User Interface technologie, niet om je Business Logica mee aan te
maken.
Het grote merendeel van de
ontwikkelaars en ontwerpers in
ons vakgebied weten meestal wel wat slim is om te doen en te laten.
Door dit
gezonde verstand erbij te houden zijn ook grote APEX projecten niet
anders dan
andere projecten.
Model – View –
Controller
In de Java wereld wordt al jaren
gebruik gemaakt van het
zogenoemde ‘Model – View – Controller
Design Patern’. Dit model voor
architectuur worden in grote applicatiesystemen, ontwikkeld met
Application
Express, in een versimpelde vorm ook gebruikt. Het Model wordt
gedefinieerd door het
datamodel en de
datalogica, de Controller door de Business Logica en de specifieke
functies als
Tabel Functies en instead of Triggers. Uiteindelijk wordt de View
neergezet
door de database Views en de API’s welke neergezet zijn ten
behoeve van de
applicatie en de Applicaties in Application Express zelf.
Door deze concrete scheiding van
Data, Logica en User
Interface is het mogelijk om met veel consistentie en betrouwbaarheid
te
ontwikkelen in Application Express. Door elke pagina binnen APEX te
baseren op
een eigen View in de database is het tevens mogelijk om
data-inconsistentie te
voorkomen. De database doet met een dergelijke opbouw van een
applicatie het
werk en het DBMS is hier immers voor ingericht.
Conclusie
Applicatie ontwikkeling met Oracle
Application Express is
ongekend snel. Deze snelheid in ontwikkelen is ook vast te houden in
grote
ontwikkelteams en zal geen vijand hoeven te zijn als er modulair
ontwikkeld
wordt. Daarnaast is het mogelijk om, doormiddel van het opbouwen van
een
applicatie in data, logica en interface lagen en gebruik te maken van
‘Core Applicaties’,
zoveel mogelijk hergebruik van applicatie onderdelen en code te
bevorderen.
Als grote APEX ontwikkelteams zo eng
zijn, waarom maken we
er dan geen kleine teams van?
|
|
Ga terug naar We Love IT uitgave 5 - 2008
|
|
|
|