SW arkitektur 7. maj 2001. Software Arkitektur. Tiltrædelsesforelæsning 7. maj 2001



Relaterede dokumenter
SW arkitektur 7. maj Software Arkitektur. Softwareudvikling-på-tværs konference. København den 19. november 2001

Software Arkitektur - anno 2002

En todelt arkitekturmodel for hændelsesstyrede signalbehandlingssystemer

Hvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag

SOFTWARE PROCESSES. Dorte, Ida, Janne, Nikolaj, Alexander og Erla

UML-Light (Note: UML-Light T133, ver. 2004) Finn Overgaard Hansen, IHA

Kapitel 21: Softwarearkitektur designprincipper

A Profile for Safety Critical Java

Arkitektur for begyndere

IBM Software Group. SOA v akciji. Srečko Janjić WebSphere Business Integration technical presales IBM Software Group, CEMA / SEA IBM Corporation

Real-time programming safety in Java and Ada

Avancerede Datanet. Udviklingen i Netværksarkitekturer. Ole Brun Madsen Professor Department of Control Engineering University of Aalborg

DANSK IT ARKITEKTUR CERTIFICERING

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

System Arkitekt Practitioner

Model og Metode til Programudvikling. Jens Dalsgaard Nielsen

DM531 - Softwarearkitektur Projekt - TaxaTracer, Statisk Kort. Martin Dissing-Hansen Alexander Poopeiko Jens Riise Danielsen

Introduktion til design patterns.

Succesfuld implementering af automatiseret test

Computer Networks Specielt om Infrastrukturer og Teknologi

educasoft - en professionel samarbejdspartner med speciale i uddannelse!

Curriculum Vitae. Uddannelse: 2001 Civilingeniør fra Danmaks tekniske universitet, fagprofil: styring og regulering.

Ribe Amts forslag til EPJ-arkitektur

Fra Assembler, Basic, Comal, Pascal, C til Object Orienteret software udvikling

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav.

Byg din informationsarkitektur ud fra en velafprøvet forståelsesramme The Open Group Architecture Framework (TOGAF)

Database. lv/

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

Sesam Automationstrend. Spørgsmål til leverandørerne? New Automation Technology

Distribuerte Objekter. Våren 2010 Professor II Eric Jul F

Arkitekturdokument for Cruise Control

Introduktion til OO* og UML

Special VFR. - ved flyvning til mindre flyveplads uden tårnkontrol som ligger indenfor en kontrolzone

MOC On-Demand Administering System Center Configuration Manager [ ]

SAS USER FORUM DENMARK 2017 USER FORUM. Rune Nordtorp

Om forretningsmæssige kompetencer

Objektorienteret design med arv og polymorfi:

Struktureret system udvikling Minimodul 1: Introduktion, UML og use cases

Abstrakte datatyper C#-version

Microservices. Hvad er det og hvordan kommer du i gang?

IT-Basecamp Real World Java EE Patterns Adam Bien. Real World Java EE Patterns, Adam Bien Copyright Lund&Bendsen A/S

Begreber og principper Arkitekturframeworket PCMEF. Det er softwarearkitekturen der gør den store forskel mht.

Kommunikationsprotokoller Summit06 worksession. Lisa Wells Datalogisk Institut Aarhus Universitet

CONNECTING PEOPLE AUTOMATION & IT

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

Sunlite pakke 2004 Standard (EC) (SUN SL512EC)

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)

PAXNET. - Den tekniske implementering - Offentlig netværks ydelser - Det fysiske netværk - Drift af netværket

SPU UML note. Systematisk Program- Udvikling med UML. Finn Overgaard Hansen

Fart på SAP HANA. Sådan laver du analyser direkte på dine data i realtid. Copyright 2012 FUJITSU. Fujitsu IT Future, København, den 16.

PEMS RDE Workshop. AVL M.O.V.E Integrative Mobile Vehicle Evaluation

Kursuskatalog 2018 TwinCAT 2 TwinCAT 3

Valg af Automationsplatform

Datatekniker med programmering som speciale H5

2a. Conceptual Modeling Methods

DTU s automations uddannelser: hvor kommer vi fra og hvor er vi på vej hen?

2. Metode. 2.1 Interessentanalyse Interessenterne i projektet er vist i nedenstående figur: Aftalekalenderprojektet. Indledning

Udfordringer og problemstillinger. En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling

Undervisningsbeskrivelse

Sesam seminar nr Sesam seminar nr Opbygning af standard bibliotek til PLC / SCADA / MES

Plan for præsentationen

Objektorienteret Analyse & Design

Educasoft 2010 Side 1. Søgemaskineoptimering

Singleton pattern i Java

CURRICULUM VITAE. Personlige oplysninger. Michael Alrøe. Uddannelse. Kurser og efteruddannelse. Michael Alrøe. Navn Fødselsår 1964 LinkedIn

Kursuskatalog 2017 TwinCAT 2 TwinCAT 3

Datatekniker med infrastruktur som speciale

Strategic Business Area. LINAK og vores rejse ind i AUTOMOTIVE krav og regulativer

Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net)

Revision af studieordninger

Grundlæggende OOA - OOD

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Torsdag 5. oktober 2017 Hal F DIGITALISERINGSKONFERENCE

Emergency call button. Stabilt og simpelt

Dagens program. Domæner. change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog. Hvad er widgets.

Software Dokumentation

Undervisningsbeskrivelse

3C03 Concurrency: Model-based Design

Vejledning til udviklingsprocessen for projekt 2

Software Construction 1. semester (SWC) januar 2014 Spørgsmål 1

WINDCHILL THE NEXT STEPS

Curriculum vitae. Personlige oplysninger. Præsentation. Projekterfaring

Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder.

MOC On-Demand Identity with Windows Server 2016 [20742]

RAVE. The New Radar Motion Sensor Rated IP67: Optimized for Harsh Outdoor Applications

4 Basal Objekt-orienteret Programmering I.

Standardisering af PLC Programmering. SESAM Præsentation 2. November 2016

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Velkommen til. Kravspecifikation i Softwareudvikling Workshop hos Brüel & Kjær. 14. september 2012,

Visual Studio Team System. Team Build en grundpille i søgen efter it-projektproduktivitet?

SPU UML note. Systematisk Program- Udvikling med UML. Finn Overgaard Hansen

Processen at vælge leverandører og systemintegratorer

Introduction til.net remoting i C#

METODER ARV KLASSER. Grundlæggende programmering Lektion 5

ECE 551: Digital System * Design & Synthesis Lecture Set 5

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

UML til kravspecificering

Bypassing the. Brian Marick

Transkript:

Software Arkitektur Tiltrædelsesforelæsning 7. maj 2001 Finn Overgaard Hansen Ingeniørhøjskolen i Århus Elektro- og IKT-afdelingen foh@e.iha.dk Agenda Hvorfor er arkitektur vigtig Udvikling inden for SW design State of the Art Architectural Styles Architectural- og Design Patterns Frameworks Dokumentation og udviklingsproces Opsummering SW arkitektur, 7. maj 2001 2 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 1

Udfordringer inden for SW udvikling Stigende kompleksitet Reduktion af Time to Market Større projekter flere skal arbejde sammen mere specialisering Fra stand alone systemer til netværk af distribuerede systemer WWW tilkobling (overvågning, konfigurering og opdatering) Sørre krav om genbrug - det er blevet for dyrt at starte forfra Mange nye og konkurrerende middelware teknologier CORBA, DCOM, RMI,.NET, Jini, SOAP Real Time udgaver på vej af RT-Linux, RT-CORBA, RT-Java SW arkitektur, 7. maj 2001 3 Definering af SW arkitektur Et eksempel på definition af SW arkitektur: The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components and the relationships among them Software Architecture in Practice, L.Bass, Addison-Wesley 1998 Eller en pragmatisk udlægning: Et systems SW arkitektur er den overordnede beskrivelse af hvorledes softwaren er organiseret i komponenter og hvorledes disse er indbyrdes forbundet SW arkitektur- og designbeskrivelser udgør en SW vedligeholders vigtigste arbejdsredskab SW arkitektur, 7. maj 2001 4 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 2

Kontekst for SW arkitektur Architectural Styles Dokumentationsaspekt Architectural- & Design- Patterns SW arkitektur Agentteknologi Komponentteknologi Objektteknologi (UML) Frameworks Udviklingsproces Middelware standarder SW arkitektur, 7. maj 2001 5 Software beskrivelsesteknikker Diagrammerings- og designteknikker Rutediagrammer, tilstandsdiagrammer Struktureret Programmering, Go-To less programming, Dijkstra 1968 Jackson Diagrammer, Jacksons JSP 1975 Structure Charts - Constantines Struktureret design 1975 Access graph - Brinch Hansens Concurrent Pascal 1977 Ward & Mellors SA/SD-Real Time, 1985 Dataflowdiagrammer, tilstandsdiagrammer, entitets relationsdiagrammer og strukturdiagrammer OO Metoder f.eks. OMT 1991 Klassediagrammer, tilstandsdiagrammer, dataflowdiagrammer UML (Unified Modelling Language) - OMG standard i 1997 Interaktionsdiagrammer, Use Case diagrammer, Ver. 2.0 er på vej. SW arkitektur, 7. maj 2001 6 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 3

Udvikling inden for SW design 1. Indkapsling Abstrakte datatyper, objektbaseret programmering Eksterne/public funktioner, private funktioner og data Dokumentation: moduldiagrammer Realiseret i f.eks. Assembler, PLM, C, Pascal Modul A private data og funktioner public funktioner Modul B Modul C SW arkitektur, 7. maj 2001 7 Concurrent Pascal - eksempel Overvågnings- Specifikation Operatør P M Overvågning P Overvågningsenhed DM Operatør konsol DM Alarm P AlarmTabel M indsætalarm() hentalarm() fjernalarm() P: Proces M: Monitor DM: Device Monitor SW arkitektur, 7. maj 2001 8 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 4

Udvikling inden for SW design 2. Objektorienteret Programmering Klasser og associationer Nedarvning og polymorfi Dokumentation: Klassediagrammer Eksempler på sprog: Smalltalk, C++, Java Class A B D ændringer i B s grænseflade påvirker kun A og D C D1 D2 SW arkitektur, 7. maj 2001 9 Udvikling inden for SW design 3. Nyere OO begreber (UML): Vigtige ved udvikling af større systemer Composition Interfaces (understøttes af Java) Class A B C Class A B Class A B op1() op2() if 1 op3() if 2 D C op1() C op2() op3() SW arkitektur, 7. maj 2001 10 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 5

Udvikling inden for SW design 4. Flere nyere OO begreber (UML): Pakker (understøttes af Java) Anvendes til at vise både logisk og fysisk indkapsling Pakke K Kunne være Façade klasse Pakke J Class A B D F G C D1 D2 H SW arkitektur, 7. maj 2001 11 Udvikling inden for SW design 5. Flere nyere OO begreber (UML): Aktive objekter Nodes Alarm Window «Task» Motor Supervisor «Monitor» Alarm Table «Task» Alarm Handler Base Station Controller Comm Server Mobil Switch Deployment diagram <<TCP/IP>> Application Server <<TCP/IP>> DB Server SW arkitektur, 7. maj 2001 12 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 6

Dokumentationsaspekter Statiske forhold: Klassediagrammer: Pakker, klasser og interfaces Komponentdiagrammer Deployment diagrammer Dynamiske forhold: Interaktionsdiagrammer f.eks. sekvensdiagrammer Tilstandsdiagrammer for klasser med tilstandsafhængig opførsel Aktivitesdiagrammer: kan f.eks. vise synkroniseringsaspekter SW arkitektur, 7. maj 2001 13 State of the Art for SW arkitektur Architectural Styles Styles dominerer en given arkitektur Eksempler: Pipes and Filters, Layered architectural structure Architectural Patterns Retter sig mod System-wide design problemer Er ikke dominerende og kan ofte kombineres med andre mønstre Eksempler: concurrency og persistens Design Patterns (GoF) Design mønstre har ofte mere lokal effekt Eksempler: Observer pattern, State Pattern Idioms Kodenære mønstre og mekanismer Eksempel: Counted pointer for C++ SW arkitektur, 7. maj 2001 14 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 7

Architectural Styles (Shaw&Garlan) 1. Fem kategorier af Architectural styles: Dataflow systems Batch sequentiel, Pipes and filters Call-and-return systems OO systems, Main program and subroutine, Hierarchical layers Independent compontents Event systems, Communicating processes Virtual machines Interpreters, Rule-based systems Data-centered systems (repositores) Databases, Hypertext systems, Blackboards SW arkitektur, 7. maj 2001 15 Architectural Styles (Shaw&Garlan) 2. Eksempler på architectural styles: Pipes and filters Data abstraction and Object-Oriented organization Event-based, implicit invocation Layered systems OSI model, Adm. system: præsentation, logik og model lag Repositores Interpreters Process control SW arkitektur, 7. maj 2001 16 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 8

Buschmann s mønster kategorier Arkitektur mønstre: Layers Pipes & Filters Styles Blackboard Broker Model-View-Controller Presentation-Abstraction- Control (PAC) Microkernel Reflection Design mønstre: Observer (GoF) Publisher-subscriber Strategy (GoF) Composite (GoF) Abstract Factory (GoF) Bridge (GoF) Proxy (GoF) Command Processor View Handler Master-slave Idioms: Singleton (GoF) Factory Method (GoF) Counted pointer, Handle-Body Envelope-Letter SW arkitektur, 7. maj 2001 17 so: Source Pipes & Filters f1: Filter1 p1: Pipe f2: Filter2 f4: Filter4 p3: Pipe Dataflow arkitektur, hvor komponenterne kan være: Objekter Tasks (aktive objekter) Computere (maskiner) p2: Pipe f3: Filter3 si: Sink SW arkitektur, 7. maj 2001 18 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 9

Todelt arkitekturmodel Kombinerer følgende to architectural styles: Event-based Process control (plus pipes & filters internt) Denne kombination kan anvendes for mange apparatsystemer Eksempler på anvendelse: styrings og regulering f.eks. frekvensomformer til styring af en motor f.eks. en Danfoss frekvensomformer (VLT). måleinstrumenter f.eks. et oscilloscop en CD spiller Kilde: COT projekt - case 2. SW arkitektur, 7. maj 2001 19 Ventilator control as process control Danfoss frekvensomformer (VLT) Disturbances: heat production, heat loos, temperature outside, etc Setpoint: desired temperature Controller: VLT Manipulated variables: frequency+ voltage Process: Motor + ventilator + room Controlled variable: roomtemperature Feedback: measured roomtemperature Example of closed-loop feedback control SW arkitektur, 7. maj 2001 20 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 10

Todelt arkitekturmodel - et eksempel Danfoss frekvensomformer (VLT) Event controlled part VLT user VLT Control Configuration Continuos processing part Sensor Motor Controlling VLT & Motor supervising Motor SW arkitektur, 7. maj 2001 21 Anvendte Design Patterns i VLT Discrete event based part VLT user Command, State Sensor Motor Controlling VLT & Motor supervising Strategy, Pipes&Filters Observer Continuous processing part Motor SW arkitektur, 7. maj 2001 22 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 11

Frekvensomformer eksempel Speed Open loop: Blokdiagram for to forskellige driftsformer Reference Reference calculation Output f Frequency f f f Resonance f Bypass Frequency Ramp Damping Limits Voltage calculation PWM generation f U angle transangle Slip compensation f U Process Closed Loop: Slip estimation I Reference Reference calculation PID Controller Output f Frequency f f f Resonance f Bypass Frequency Ramp Damping Limits Voltage calculation PWM generation f U angle transangle f U Feedback Calcualation Feedback SW arkitektur, 7. maj 2001 23 Objektdiagram for SpeedOpenLoopController :SpeedOpen LoopController Pipe komponenten er her implementeret som et simpelt funktionskald f=output(f) :SlipFilter input frequency f=output(f) :BypassFilter f=output(f) :FreqLimiterFilter f=output(f) :RampFilter f=output(f) :ResonanceDamperFilter output frequency SW arkitektur, 7. maj 2001 24 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 12

Two types of VLT Use Cases Control VLT Actor initiated Use Cases (discrete) VLT user Change VLT configuration parameters System initiated Use Cases (continuous) Motor Controlling Motor Protection Motor Sensor SW arkitektur, 7. maj 2001 25 Architectural Style: todelt arkitekturmodel Event kontrolleret del Bruger Styring Konfigurering INPUT Kontinuert processerings del OUTPUT Sensor Processering Overvågning Aktuator Bruger SW arkitektur, 7. maj 2001 26 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 13

Taksonomi for Real-Time arkitektur Der anvendes i dag fire basale arkitektur typer for real-time systemer: Timeline Event-driven Pipeline Client-Server Kilde: Doug Locke, TimeSys Corporation - Embedded System Conference, San Francisco, 2001 SW arkitektur, 7. maj 2001 27 Timeline arkitektur Timeline Systemet designes som et antal procedurer, der hver har et bestemt tidskrav (p1: hver 25 ms, p2: hver 200 ms) Procedurer kaldes med faste tidsintervaller, hvis timeren er 25 ms - så aktiveres p1 hver gang og p2 kun hver fjerde gang. Lange procedurer må opdeles i mindre. Eksempel: Flight Control Computer 2-5 processorer, 1 MB RAM 1 task for hver computer, ingen synkronisering De fleste krav er Hard Real Time krav, typisk 20 ms Anvendes f.eks. i nyere Airbus fly og i Boeing 747 SW arkitektur, 7. maj 2001 28 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 14

Event-driven arkitektur Event-driven Her anvendes afslutning af I/O operationer og timer events til at igangsætte ventende task Der anvendes operativsystem, hvor hvert Task har en prioritet Kræver synkronisering mellem task Eksempel: Aircraft Mission Processor 1-20 RISC processorer, 32-96 MB RAM Soft Real Time krav, typisk i området fra 1 ms - 100 ms I/O Clock Task 1 Task 2 Output Manager I/O SW arkitektur, 7. maj 2001 29 Pipeline arkitektur Pipeline Her anvendes også inter-proces meddelelser ud over afslutning af I/O operationer og timer events til at igangsætte ventende task En hændelse sendes gennem systemet fra source til destination og bevirker et sæt af task aktiveringer Eksempel: Air Traffic Control 50-300 processorer, 64-256 MB RAM Soft Real Time krav, typisk i området fra 100 ms - 6 sek Msg I/O Message Handler Task 2 Filter Output Manager I/O SW arkitektur, 7. maj 2001 30 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 15

Client-server arkitektur Client-Server Som for pipeline anvendes også her inter-proces meddelelser ud over afslutning af I/O operationer og timer events til at igangsætte ventende task I modsætning til pipeline - så forbliver kontrollen her på en given node (klienten) Eksempel: Vehicle Training System 1-200 processorer, 32-128 MB RAM Soft Real Time krav, typisk i området fra 33 ms - 150 ms Msg I/O Message Handler Task 2 Filter Output Manager SW arkitektur, 7. maj 2001 31 I/O To vigtige designprincipper Bertrand Meyers Open-Closed principle: Software entities (Classes, Modules, Functions etc) should be open for extension, but closed for modification Object Oriented Software Construction, B. Meyer, 1988 Liskovs Substitution Principle (LSP): Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it (den pragmatiske udgave). Data Abstraction and Hierarchy, Barbara Liskov, SIGPLAN Notices, May 1988 LSP anvendes til at realisere Open-Closed princippet. SW arkitektur, 7. maj 2001 32 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 16

Proxy (stedfortræder) Pattern Client Watch settime() ProxyWatch RealWatch TestWatch settime() settime() settime() Objekter af RealWatch klassen befinder sig på en anden maskine end Client objektet. Et eksempel på en Remote Proxy - der kan karakterisers som et architectural pattern. SW arkitektur, 7. maj 2001 33 Proxy objektdiagrammer Local processor Remote processor :Client settime() :TestWatch :Client settime() :RealWatch :Client settime() :ProxyWatch settime() :RealSubject SW arkitektur, 7. maj 2001 34 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 17

Observer Pattern (push version) hour minute second Subject notify() addwatch(watch*) removewatch(watch*) * Watch destination gmtadjustment update(hour,min,sec) AtomControlledClock DigitalWatch update(hour,min,sec) AnalogWatch update(hour,min,sec) tick() pla= new AnalogWatch( Los Angeles,-8); AtomControlledClock::Instance().addWatch(pLA); pcph= new DigitalWatch( Copenhagen,+1); etc. SW arkitektur, 7. maj 2001 35 Observer Pattern (push version) Subject hour min sec notify() addwatch(watch*) removewatch(watch*) * Watch destination gmtadjustment update(hour,min,sec) AtomControlledClock DigitalWatch update(hour,min,sec) AnalogWatch update(hour,min,sec) ProxyWatch update(hour,min,sec) tick() læs tid fra modtagen meddelelse ind i hour, min, sec kald notify() notify() { for all in list pw->update(hour,min,sec); } SW arkitektur, 7. maj 2001 36 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 18

Sekvensdiagram for Observer :AtomControlledClock pcph:digitalwatch pla:analogwatch :ProxyWatch tick notify() update(hour,min,sec) update(hour,min,sec) update(hour,min,sec) SW arkitektur, 7. maj 2001 37 Frameworks Frameworks opbygges vha. mønstre Forskellige slags framework: Applikationsframework ofte til et specifikt domæne Serviceorienterede frameworks som f.eks. Kommunikationsframework Databaseframework Multiprogrammeringsframework Disse kan være implementeret som: Whitebox framework Blackbox framework SW arkitektur, 7. maj 2001 38 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 19

Whitebox Framework Her skal man kende den indre struktur for at kunne anvende Frameworket til en konkret applikation f.eks. ved at man tilføjer nye specialiserede klasser til de eksisterende klassehierarkier Applikationsspecifik kode SW arkitektur, 7. maj 2001 39 Blackbox Framework Her er det ikke nødvendigt at kende detaljer i Frameworket, da man tilføjer den ønskede funktionalitet vha. Composition dvs. at man instantierer objekter der hægtes på Frameworket obj3: Class3 obj1: Class1 Applikationsspecifik kode obj2: Class2 SW arkitektur, 7. maj 2001 40 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 20

Erfaring med anvendelse af et framework Fordele: Genbrug af basisklasser og struktur i Frameworket Genbrug af serviceklasser Kan opbygges vha. GoF design patterns (er veldokumenterede) Samme SW struktur for forskellige protokoller Letter dokumentation Letter vedligeholdelsen pga. færre klasser og samme struktur Muliggør en hurtigere protokolimplementering, da man kan koncentrere sig om det protokolspecifikke Fremmer inkrementel udvikling 10-05-2001 SW arkitektur, 7. maj 2001 41 Framework erfaringer - fortsat Ulemper: Kræver indgående kendskab til Frameworket for at kunne genbruge dette til en ny protokol Frameworket bliver først stabilt efter mindst 2 implementationer Senere ændringer til Framework strukturen bliver dyrere, da flere projekters SW skal tilpasses Kaldestrukturen er mere kompliceret og dermed sværere at teste og debugge 10-05-2001 SW arkitektur, 7. maj 2001 42 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 21

4+1 View model for SW arkitektur Logical View Implementation View (development) Klasser, Packages Interfaces Use cases Use Case View Komponenter, Lag Process View Deployment View (Physical) Processer, Threads, Tasks Nodes Ref.: Philippe Kruchten, The 4+1 View of Architecture, IEEE Software, 12(6) Nov. 1995 SW arkitektur, 7. maj 2001 43 De fem arkitektur views Logisk view Beskriver det logisk design vha. klassediagrammer og organisering vha. pakker Implementation view (development) Beskriver organiseringen af de statiske software moduler herunder den fysiske lagdeling og gruppering af Source kode, data filer, komponenter mm. Process view Beskriver parallellitet på runtime tidspunktet ved at vise samspil mellem task, threads og processer Deployment view Beskriver systemets fysiske computere og hardware og allokering af runtime komponenter på computerne Use Case view Beskriver hvorledes elementerne i de forskellige views interagerer SW arkitektur, 7. maj 2001 44 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 22

Forskellige interessenter Funktionalitet Styring Slutbrugere, Kunder Udviklere Logical View Use cases Use Case View Implementation View (development) Programmører Projektledelse System integratorer Process View Deployment View (Physical) System arkitekter System administration Performance, Aflevering, Installation Skalerbarhed Topologi, Kommunikation SW arkitektur, 7. maj 2001 45 Udviklingsproces og arkitektur Use Case drevet udviklingsproces Udvælg de Use Cases, der har størst betydning for fastlæggelse af systemets arkitektur Foretag en iterativ og inkrementel udvikling styret af Use Cases Concurrent Engineering (SW + HW udvikling) Arkitektur definerer systemet dvs. både HW og SW Fokuser på udvikling af infrastruktur tidligt i et projektforløb Muligt at wrappe eksisterende kode ind i klasser Udvikling af produktfamilier (HP, Nokia, DD) SW arkitektur, 7. maj 2001 46 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 23

Eksempel på en udviklingsmodel Analyse og kravspecifikation OO Analyse Kravspec. med System design SW & HW implementering af X Use Case s System integrations test Accept test Use Case Model Use Case Model evt. redesign næste iteration Kilde: Teknologisk Institut SW arkitektur, 7. maj 2001 47 SW og HW implementering System design SW & HW implementering af X Use Case s System Integrations test SW implementering af X Use Case s Detaljeret Implemen- Unit System design design tering test System Integrations test HW implementering af X Use Case s SW arkitektur, 7. maj 2001 48 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 24

En længere definition på SW arkitektur Software Architecture: is a set of concepts and design decisions about the structure and texture of sofware that must be made prior to concurrent engineering to enable effective satisfaction of architectural significant explicit functional and quality requirements and implicit requirements of the product family, the problem and the solution domains Software Architecture for Product families, Jazayeri, Addison-Wesley2000 SW arkitektur, 7. maj 2001 49 Opsummering Arkitektur er vigtigere end nogensinde Abstraktioner og notationer er ved at være på plads Arkitektur styles udvikles i disse år Mønstre (Patterns) spiller en afgørende rolle på såvel det overordnede arkitektur niveau som på det mere lokale designniveau Udviklingsprocesser bør understøtte og lægge vægt på arkitekturaktiviteten Arkitektur- og designdokumentation er sammen med kravspecifikationen den vigtigste udviklingsdokumentation SW arkitektur, 7. maj 2001 50 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 25

Referencer Design Patterns, Elements of Reusable Object-Oriented Software Eric Gamma et. al., Addison-Wesley, 1995 Software Architecture, Perspectives on an Emerging Discipline Mary Shaw, David Garlan, Prentice-Hall, 1996 Pattern-Oriented Software Architecture - A System of Patterns, Frank Bushmann et. al., John Wiley & Sons, 1996 Design and Use of Software Architecture Jan Bosch, Addison-Wesley, 2000 Software Architecture for Product Families Mehdi Jazayeri, Alexander Ran, Frank van der Linden, Addison-Wesley, 2000 The 4+1 View Model of Architecture Philippe Kruchten, IEEE Software, 12 (6), November 1995, IEEE Center for Objekt Teknology (COT), har flere rapporter om SW arkitektur http://www.cit.dk/cot/ - se under Report Series SW arkitektur, 7. maj 2001 51 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 26