Your SlideShare is downloading. ×
3 software architectuur
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

3 software architectuur

609
views

Published on

Published in: Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
609
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Softwarearchitectuur
  • 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