3 software architectuur
TRANSCRIPT
![Page 1: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/1.jpg)
Bas Kruiswijk
Amersfoort2 november 2011
Softwarearchitectuur
![Page 2: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/2.jpg)
2© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Softwarearchitectuur
Enterprise-architectuu
r
Software-architectuu
rService-georiënteerdearchitectuur
Individuele systeemscope
Gericht op ontwerp, realisaties en specificatie
Organisatiebrede scope
Gericht op strategie en communicatie
Conceptuelebasis
![Page 3: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/3.jpg)
3© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Softwarearchitectuur begint metsoftware engineering– Software engineering is in de informatica het vakgebied dat
zich bezighoudt met (de totstandkoming van) ‘goede’ software (qua product en proces)
– Wat is ‘goede’ software eigenlijk?– Correct, betrouwbaar, robuust
– Performance
– Gebruikersvriendelijk
– Verifieerbaar
– Onderhoudbaar
– Herbruikbaar
– Portable
– Begrijpelijk
– Interoperabiliteit
– Productiviteit
![Page 4: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/4.jpg)
4© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Software engineering principesTop 3 (?)
– Separation of concerns
– Vanwege de inherente complexiteit van softwaresystemen zorgen dat verschillende aspecten gescheiden kunnen worden aangepakt (bijvoorbeeld functionaliteit en performance)
– Modulariteit
– Reduceer de complexiteit door het totaal op te delen in kleinere, relatief zelfstandige delen die zelfstandig kunnen worden ontworpen, ontwikkeld en geïmplementeerd
– Modules hebben een hoge interne cohesie en een lage externe koppelingsgraad
– Anticiperen op veranderingen
– In het ontwerp, de ontwikkeling en de implementatie van software rekening houden met waarschijnlijke veranderingen
![Page 5: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/5.jpg)
5© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Modules en objectoriëntatie
– Modules– Groepering van functionaliteit en gegevensverzamelingen
– Hoger abstractieniveau dan functies, eenheid van (overigens beperkt) hergebruik
– Min of meer zelfstandig realiseerbaar en implementeerbaar
– Objectoriëntatie– Eigenlijk een programmeerconcept
– Objecten zijn een directere representatie van objecten in de reële wereld
– Objecten combineren structuur (statische aspect) en gedrag (dynamische aspect) in een ontwerp- en programmeerconcept
– Scheiding van interface en implementatie
![Page 6: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/6.jpg)
6© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
ObjectoriëntatieScheiding van interface en implementatie
implementatievan hetobject
De van buitenaf zichtbare beschrijving van de functie van
het objecten hoe deze te gebruiken
De van buitenaf niet-zichtbareinterne realisatie van het object
middels werkende software
inte
rface interface
inte
rfaceinterface
![Page 7: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/7.jpg)
7© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Componenten
– Gebaseerd op de concepten van objectoriëntatie
– Gericht op het samenstellen van applicaties uit componenten: component based developement
– Componenten hebben vergeleken met objecten enkele extra eigenschappen
– Distribueerbaar (platformonafhankelijk, koppelbaar aan middleware)
– Op run-time te (de)activeren (disconnectable)
– Bruikbaar (herkenbaar, inspecteerbaar, configureerbaar) door ontwikkeltools om applicaties te assembleren
![Page 8: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/8.jpg)
8© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Services
– In technische zin een doorontwikkeling van object- en componenttechnologie
– Brede adoptie van (internet)standaarden voor webservices
– Platformonafhankelijk
– Basisconcept van (bijna) alle ontwikkelplatforms
– Diensten aan gebruikers staan centraal
– Niet (alleen) de softwareconstructie staat centraal, maar de dienst die geleverd wordt
– Niet (alleen) relevant voor ontwikkelaars, maar ook voor gebruikers / organisaties
– Applicaties worden minder relevant – het gaat om services
![Page 9: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/9.jpg)
9© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Service
Dienstinhoud(implementatie)
Dienstaanvraag(request)
Dienstbeschrijving(interface)
Dienstresultaat(respons)
De van buitenaf zichtbare beschrijving van dienst
De interne realisatie van de dienst middels werkende software
request
respons
![Page 10: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/10.jpg)
10© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Programmeertalen en modulariteit
1e generatiemachine
2e generatieassembler
3e generatiegestructureerd
4e generatieabstract
5e generatiefunctioneel
Modulair Object-georiënteerd
Component-gebaseerd
Service-georiënteerd
C++Java
Visual BasicC#
COBOLC
Oracle formsSQL
LISPProlog
J2EE
.Net
![Page 11: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/11.jpg)
11© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Monolitische en modulaire softwarearchitectuur
![Page 12: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/12.jpg)
12© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Client/Server architectuur
Client
Server
Client
Client
Centraal
Decentraal
Decentraal
Decentraal
![Page 13: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/13.jpg)
13© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Gedistribueerde drie- en meerlaagsesoftwarearchitectuur
Presentatie
Businesslogica
Data
Presentatie
Processervices
Data
Samengestelde services
Basisservices
![Page 14: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/14.jpg)
14© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Integratie van applicatieontwikkelingen in de tijd geplaatst (1)
Applicatie1
Applicatie2
Applicatie3 Applicatie
4
Client
Server
Client
Server
Client
Server
Generieke faciliteitenDoorgaans bulkuitwisseling
Corporate databases
1:1 Interfaces Gemeenschappelijkedatabases
specifiek
generiek
![Page 15: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/15.jpg)
15© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Integratie van applicatieontwikkelingen in de tijd geplaatst (2)
Business-logica
Generieke middleware Synchroon (services)
Asynchroon (berichten)
Presentatie
Data
Business-logica
Presentatie
Data
Business-logica
Presentatie
Data
Middleware(generieke servicebus)
Business-logica
Middleware
Presentatie
Data
Business-logica
Presentatie
Data
Webservices(technologie neutraal)
Middleware
Berichtuitwisselinggebaseerd op webservice-standaarden (SOAP)
Technologische oforganisatorische
grens
specifiek
generiek
![Page 16: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/16.jpg)
16© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Integratie van applicatieontwikkelingen in de tijd geplaatst (3)
Business-logica
Presentatie
Data
Business-logica
Data
Business-logica
Data
Portaal voor geïntegreerdewerkprocesondersteuning
Orkestratie
Business-logica
Presentatie
Data
Business-logica
Presentatie
Data
Business-logica
Presentatie
Data
Portaal voor geïntegreerdetoegang en authenticatie
PortaalAuthenticatie, single sign-on
personalisatielook-and-feel
PortaalAuthenticatie, single sign-on
Personalisatie
specifiek
generiek
![Page 17: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/17.jpg)
17© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Andere benadering m.b.t. softwarearchitectuur
– 4+1 View model (Kruchten, UML)
– Design patterns
– Model Driven Architecture
![Page 18: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/18.jpg)
18© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Het 4+1 View-model
– In het 4+1 View-model worden vier views onderkend die samen de architectuur van een systeem beschrijven. Elke view geeft daarbij weer wat, bezien vanuit het perspectief van een bepaalde belanghebbende, fundamenteel is.
Logical view
Process view
Component view
Physical view
Use cases
![Page 19: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/19.jpg)
19© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
The 4+1 Views
– Logical view– Logische opbouw van het systeem
– Objecten en hun onderlinge relaties
– Component view– Wijze waarop de objecten (in de logical view) zijn samengesteld tot componenten of zijn
gecombineerd tot services
– Process view– De ‘runtime’-componenten, de ‘executables’
– De onderdelen waaruit de te implementeren applicatie bestaat
– Physical view– De benodigde hardware en andere fysieke componenten om het systeem daadwerkelijk te
kunnen laten werken
– De vijfde view (de +1-view)– Illustreert de samenhang vanuit de invalshoek van het beoogde gebruik van het systeem in de
vorm van ‘use cases’
![Page 20: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/20.jpg)
20© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Design patterns
– Geïntroduceerd door ‘The gang of four’: Gamma, Helms, Johnson,’ Vlissides, in ‘Design Patterns, Elements of Reusable Object-Oriented Software’
– Herbruikbare oplossingen, templates voor ontwerpproblemen
– Ervaring en kennis van ‘goede’ architectuuroplossingen herbruikbaar gemaakt
– Goed gedocumenteerd
– Doel, wanneer gebruiken, voorbeeld van gebruik etc.
– Bijvoorbeeld
– Scheiding van presentatie, interactie en logica (model-view-controller of Observer pattern)
– Verbergen van een verzameling interfaces (Facade pattern)
![Page 21: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/21.jpg)
21© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Model Driven Architecture
– Architectuurbenadering gericht op interoperabiliteit
– Genereren van model tot implementatie (Extreme Non-Programming)
– Platform Independent Model– Modelleert functionaliteit en gedrag, zonder technologische
beperkingen
– Gebruikmakend van gangbare middleware features
– Extra details toegevoegd om vertaling naar Platform Specific Model mogelijk te maken
– Platform Specific Model– Toepassing van een profile op het Platform Independent Model,
om dit sterk geautomatiseerd te kunnen vertalen naar Platform Specific Model
– Uiteindelijk automatisch genereren van software uit het model
Computation IndependentModel
Platform IndependentModel
Platform SpecificModel
mapping
mapping
![Page 22: 3 software architectuur](https://reader038.vdocument.in/reader038/viewer/2022102815/557cb9bcd8b42abf328b52ad/html5/thumbnails/22.jpg)
22© Twynstra Gudde | Universiteit Leiden 2-11-2011
Softwarearchitectuur
Alle intellectuele eigendomsrechten met betrekking tot deze presentatie berusten bij Twynstra Gudde. Niets uit deze presentatie mag worden verveelvoudigd of openbaar gemaakt zonder schriftelijke toestemming van Twynstra Gudde.
www.twynstragudde.nl