SlideShare a Scribd company logo
Softwarearchitectuur
Softwarearchitectuur Enterprise- architectuur Software- architectuur Service- georiënteerde architectuur Individuele systeemscope Gericht op ontwerp, realisaties en specificatie Organisatiebrede scope Gericht op strategie en communicatie Conceptuele basis
Softwarearchitectuur begint met software 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
Software engineering principes Top 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
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
Objectoriëntatie Scheiding van interface en implementatie implementatie van het object De van buitenaf zichtbare beschrijving van de functie van het object en hoe deze te gebruiken De van buitenaf niet-zichtbare interne realisatie van het object middels werkende software interface interface interface interface
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
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
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
Programmeertalen en modulariteit 1 e  generatie machine 2 e  generatie assembler 3 e  generatie gestructureerd 4 e  generatie abstract 5 e  generatie functioneel Modulair Object- georiënteerd Component- gebaseerd Service- georiënteerd C++ Java Visual Basic C# COBOL C Oracle forms SQL LISP Prolog J2EE .Net
Monolitische en modulaire softwarearchitectuur
Client/Server architectuur Client Server Client Client Centraal Decentraal Decentraal Decentraal
Gedistribueerde drie- en meerlaagse softwarearchitectuur Presentatie Businesslogica Data Presentatie Processervices Data Samengestelde services Basisservices
Integratie van applicatie ontwikkelingen in de tijd geplaatst (1) Applicatie 1 Applicatie 2 Applicatie 3 Applicatie 4 Client Server Client Server Client Server Generieke faciliteiten Doorgaans bulkuitwisseling Corporate databases 1:1 Interfaces Gemeenschappelijke databases specifiek generiek
Integratie van applicatie ontwikkelingen 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 Berichtuitwisseling gebaseerd op webservice- standaarden (SOAP) Technologische of organisatorische grens specifiek generiek
Integratie van applicatie ontwikkelingen in de tijd geplaatst (3) Business- logica Presentatie Data Business- logica Data Business- logica Data Portaal voor geïntegreerde werkprocesondersteuning Orkestratie Business- logica Presentatie Data Business- logica Presentatie Data Business- logica Presentatie Data Portaal voor geïntegreerde toegang en authenticatie Portaal Authenticatie, single sign-on personalisatie look-and-feel Portaal Authenticatie, single sign-on Personalisatie specifiek generiek
Andere benadering m.b.t. softwarearchitectuur 4+1 View model (Kruchten, UML) Design patterns Model Driven Architecture
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
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’
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)
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 Independent Model Platform Independent Model Platform Specific Model mapping mapping
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. Bas Kruiswijk [email_address] www.twynstragudde.nl

More Related Content

PDF
Profecto - REPAF
PPT
Strategisch veranderen met behulp van architectuur
PPTX
Building a Service Oriented System: An Introduction
PDF
Skelta Bedrijfsbrochure
PPT
2 enterprise architectuur
PPT
Sdb Presentatie
PDF
111450
PPT
Quickr Connectors and ECM
Profecto - REPAF
Strategisch veranderen met behulp van architectuur
Building a Service Oriented System: An Introduction
Skelta Bedrijfsbrochure
2 enterprise architectuur
Sdb Presentatie
111450
Quickr Connectors and ECM

Viewers also liked (8)

PDF
IT- Presentatie.Net 2011 05
PDF
The power of powershell in Office 365 - TechDays 2015
PPT
Agile Open Holland 2011 keynote
PPTX
Software engineering : Layered Architecture
PPTX
Software Architecture and Design - An Overview
PPTX
A Software Architect's View On Diagramming
PPTX
Fundamentals Of Software Architecture
PPTX
Layered Software Architecture
IT- Presentatie.Net 2011 05
The power of powershell in Office 365 - TechDays 2015
Agile Open Holland 2011 keynote
Software engineering : Layered Architecture
Software Architecture and Design - An Overview
A Software Architect's View On Diagramming
Fundamentals Of Software Architecture
Layered Software Architecture
Ad

Similar to 3 software architectuur (20)

PPTX
Presentatie enterprise-architectuur en GEMMA
PDF
20170901 - Over wyStack
PDF
Industrialisatie van Software Ontwikkeling
PDF
Een praktische invulling van TOGAF
PPT
Het wat, hoe en waarom van gidistribueerde componenten
PDF
Informatie Architectuur in evolutie
PPTX
Architectuur als taal v1 1.1
PPT
1 introductie architectuur
ODP
H5ontwerpfase Vervolg
PDF
Innovatie architectuur
PPTX
Meelzolder ronde 1 informatievoorziening en architectuur
PPS
Presentatie Ict Architectuur Projectgroep Dienstverlening
PPT
Devnology Community Day
PDF
9 soa infrastructuur
PPTX
Een introductie in CQRS
PPTX
ICT Architectuur Principes
PDF
SOA basisconcepten
PDF
4 soa basisconcepten
PDF
Standaardpresentatie architectuur
PDF
Kennissessie SOA Architectuur en Governance
Presentatie enterprise-architectuur en GEMMA
20170901 - Over wyStack
Industrialisatie van Software Ontwikkeling
Een praktische invulling van TOGAF
Het wat, hoe en waarom van gidistribueerde componenten
Informatie Architectuur in evolutie
Architectuur als taal v1 1.1
1 introductie architectuur
H5ontwerpfase Vervolg
Innovatie architectuur
Meelzolder ronde 1 informatievoorziening en architectuur
Presentatie Ict Architectuur Projectgroep Dienstverlening
Devnology Community Day
9 soa infrastructuur
Een introductie in CQRS
ICT Architectuur Principes
SOA basisconcepten
4 soa basisconcepten
Standaardpresentatie architectuur
Kennissessie SOA Architectuur en Governance
Ad

More from Dan Kamminga (20)

PPT
Twynstra gudde presentatie implementatie juni 2012
PDF
7 soa event driven architecture
PDF
SOA procesbesturing
PDF
SOA organisatorisch perspectief
PDF
SOA ontwerpproces en migratie
PDF
8 soa technisch perspectief
PDF
Lac 2009 eco architectuur
PPT
Lac 2003 blauwdrukken en andere kleurendrukken
PPT
Lac 2010 Track architectuur als hefboom in de zorg
PPT
Lac 2006 achilles en de schildpad
PDF
Lac2004 werken onder architectuur
PDF
Lac 2005 implementatie soa provincie gelderland
PDF
Congres: Ketenregie in Facility Management - Workshop Alliander sourcing th...
PDF
Congres: Ketenregie in Facility Management - Het FB van RIVM in regie
PDF
Congres: Ketenregie in Facility Management - Presentatie Leo Schunck
PDF
Onderzoek waardesturing
PPT
Presentatie van NISB: Samenwerkingsstrategie,
PPT
Samenwerken tussen organisties
PPTX
Social media presentatie twynstra
PPT
Kiezen of verliezen
Twynstra gudde presentatie implementatie juni 2012
7 soa event driven architecture
SOA procesbesturing
SOA organisatorisch perspectief
SOA ontwerpproces en migratie
8 soa technisch perspectief
Lac 2009 eco architectuur
Lac 2003 blauwdrukken en andere kleurendrukken
Lac 2010 Track architectuur als hefboom in de zorg
Lac 2006 achilles en de schildpad
Lac2004 werken onder architectuur
Lac 2005 implementatie soa provincie gelderland
Congres: Ketenregie in Facility Management - Workshop Alliander sourcing th...
Congres: Ketenregie in Facility Management - Het FB van RIVM in regie
Congres: Ketenregie in Facility Management - Presentatie Leo Schunck
Onderzoek waardesturing
Presentatie van NISB: Samenwerkingsstrategie,
Samenwerken tussen organisties
Social media presentatie twynstra
Kiezen of verliezen

3 software architectuur

  • 2. Softwarearchitectuur Enterprise- architectuur Software- architectuur Service- georiënteerde architectuur Individuele systeemscope Gericht op ontwerp, realisaties en specificatie Organisatiebrede scope Gericht op strategie en communicatie Conceptuele basis
  • 3. Softwarearchitectuur begint met software 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
  • 4. Software engineering principes Top 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
  • 5. 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
  • 6. Objectoriëntatie Scheiding van interface en implementatie implementatie van het object De van buitenaf zichtbare beschrijving van de functie van het object en hoe deze te gebruiken De van buitenaf niet-zichtbare interne realisatie van het object middels werkende software interface interface interface interface
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. Programmeertalen en modulariteit 1 e generatie machine 2 e generatie assembler 3 e generatie gestructureerd 4 e generatie abstract 5 e generatie functioneel Modulair Object- georiënteerd Component- gebaseerd Service- georiënteerd C++ Java Visual Basic C# COBOL C Oracle forms SQL LISP Prolog J2EE .Net
  • 11. Monolitische en modulaire softwarearchitectuur
  • 12. Client/Server architectuur Client Server Client Client Centraal Decentraal Decentraal Decentraal
  • 13. Gedistribueerde drie- en meerlaagse softwarearchitectuur Presentatie Businesslogica Data Presentatie Processervices Data Samengestelde services Basisservices
  • 14. Integratie van applicatie ontwikkelingen in de tijd geplaatst (1) Applicatie 1 Applicatie 2 Applicatie 3 Applicatie 4 Client Server Client Server Client Server Generieke faciliteiten Doorgaans bulkuitwisseling Corporate databases 1:1 Interfaces Gemeenschappelijke databases specifiek generiek
  • 15. Integratie van applicatie ontwikkelingen 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 Berichtuitwisseling gebaseerd op webservice- standaarden (SOAP) Technologische of organisatorische grens specifiek generiek
  • 16. Integratie van applicatie ontwikkelingen in de tijd geplaatst (3) Business- logica Presentatie Data Business- logica Data Business- logica Data Portaal voor geïntegreerde werkprocesondersteuning Orkestratie Business- logica Presentatie Data Business- logica Presentatie Data Business- logica Presentatie Data Portaal voor geïntegreerde toegang en authenticatie Portaal Authenticatie, single sign-on personalisatie look-and-feel Portaal Authenticatie, single sign-on Personalisatie specifiek generiek
  • 17. Andere benadering m.b.t. softwarearchitectuur 4+1 View model (Kruchten, UML) Design patterns Model Driven Architecture
  • 18. 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
  • 19. 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’
  • 20. 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)
  • 21. 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 Independent Model Platform Independent Model Platform Specific Model mapping mapping
  • 22. 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. Bas Kruiswijk [email_address] www.twynstragudde.nl