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



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

Software Arkitektur - anno 2002

En todelt arkitekturmodel for hændelsesstyrede signalbehandlingssystemer

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

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

Kapitel 21: Softwarearkitektur designprincipper

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

A Profile for Safety Critical Java

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

Real-time programming safety in Java and Ada

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

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

Arkitektur for begyndere

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

Introduktion til design patterns.

educasoft - en professionel samarbejdspartner med speciale i uddannelse!

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

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

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

Ribe Amts forslag til EPJ-arkitektur

Model og Metode til Programudvikling. Jens Dalsgaard Nielsen

Computer Networks Specielt om Infrastrukturer og Teknologi

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

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

DANSK IT ARKITEKTUR CERTIFICERING

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

System Arkitekt Practitioner

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

Database. lv/

Om forretningsmæssige kompetencer

Datatekniker med programmering som speciale H5

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

Objektorienteret design med arv og polymorfi:

2a. Conceptual Modeling Methods

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

Objektorienteret Analyse & Design

IT-UNIVERSITETET I KØBENHAVN. KANDIDAT I SOFTWAREUDVIKLING OG -TEKNOLOGI ITU.dk/uddannelser

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

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

SAS USER FORUM DENMARK 2017 USER FORUM. Rune Nordtorp

Revision af studieordninger

Datatekniker med infrastruktur som speciale

Educasoft 2010 Side 1. Søgemaskineoptimering

MOC On-Demand Administering System Center Configuration Manager [ ]

CONNECTING PEOPLE AUTOMATION & IT

Succesfuld implementering af automatiseret test

Semesterbeskrivelse cand. it uddannelsen i it-ledelse 1. semester.

Kommunikationsprotokoller Summit06 worksession. Lisa Wells Datalogisk Institut Aarhus Universitet

Arkitekturdokument for Cruise Control

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

Plan for præsentationen

Software Dokumentation

Introduktion til OO* og UML

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

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

Undervisningsbeskrivelse

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

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

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

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

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

What s Our Current Position? Uddannelsesstruktur i AUE. What Can You Choose After DE5? Uddannelsesstruktur i AUE

Abstrakte datatyper C#-version

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

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

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

Vejledning til udviklingsprocessen for projekt 2

3C03 Concurrency: Model-based Design

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

Undervisningsbeskrivelse

Kursuskatalog 2018 TwinCAT 2 TwinCAT 3

Emergency call button. Stabilt og simpelt

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.

Connect2Care. Udvikling af åben infrastruktur for IKT-baserede produkter på social- og sundhedsområdet. UNIK projektmøde. 25.

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

Grundlæggende OOA - OOD

ITONK1 Obligatorisk opgave 2 Badger Brewery Surveillance System

make connections share ideas be inspired

Introduction til.net remoting i C#

Information Meeting for DE5 and DE3 Further Study Possibilities

Torsdag 5. oktober 2017 Hal F DIGITALISERINGSKONFERENCE

Curriculum vitae. Personlige oplysninger. Præsentation. Projekterfaring

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

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

Datatekniker med programmering som speciale

Singleton pattern i Java

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

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

Casper Fabricius ActiveRecord. O/RM i Ruby on Rails

WINDCHILL THE NEXT STEPS

Heuristics for Improving

Aktuelle SW teknologier for distribuerede systemer

Uddannelsen giver ret til betegnelsen cand. polyt. i Teknisk IT; på engelsk Master of Science in Engineering (Information Technology)

Uge 5.3: (Search,) Select & implement and development methods

Valg af Automationsplatform

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

Sporbarhed og Rapportering i Quality Center. Kim Stenbo Nielsen NNIT Application Management Services

Introduktion til Pervasive Computing

Kursuskatalog 2017 TwinCAT 2 TwinCAT 3

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

Transkript:

Software Arkitektur Softwareudvikling-på-tværs konference København den 19. november 2001 Finn Overgaard Hansen Ingeniørhøjskolen i Århus Elektro- og IKT-afdelingen foh@e.iha.dk Agenda Introduktion Hvorfor er arkitektur vigtig Udvikling inden for SW design State of the Art Architectural Styles Architectural- and Design Patterns Frameworks Dokumentation og udviklingsproces Opsummering SW arkitektur, 19. november 2001 2 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 1

Nye uddannelsesmuligheder i Århus Diplomingeniørstudie IKT Informations- og Kommunikationsteknologi Kandidatuddannelse 3 1/2 år 2 år Teknisk (nået til 3. semester efter start) informationsteknologi - Distribuerede Realtidssystemer - Multimedieteknologi Elektroteknik - Automatisering og energiteknik - Elektroniske apparater - Datateknik Biomedicinsk teknik Civilingeniørstudie AUC/DTU SW arkitektur, 19. november 2001 3 Distribuerede realtidssystemer Forår 2002 Efterår 2002 Forår 2003 1. Semester 2. Semester 3. Semester Efterår 2003 4. Semester Indlejrede realtidssystemer - Arkitektur/design - Implementering - Test - Udviklingsproces AU AU Concurrency - modeller - realtidsaspekter - OO modellering 10 10 10 Distribuerede systemer og sikkerhed Distribuerede 10 Realtidssystemer - Arkitektur/design - Implementering - Test - Udviklingsproces Brugergrænseflader til apparater Objektorienteret Netværkskommunikation Trådløse netværk 5 5 5 5 Tilvalgs kursus Tilvalgs kursus Tilvalgs kursus Tilvalgs kursus Tilvalgs kursus Speciale i distribuerede realtids - systemer Udvikling af Forberedelse af SW arkitektur, 19. november 2001 protokoller speciale 4 5 5 5 5 5 30 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 2

Udfordringer inden for SW udvikling Stigende kompleksitet Reduktion aftime to Market Større projekter flere skal arbejde sammen mere specialisering Fra stand alone systemer til netværk af distribuerede systemer Fra enkeltstående apparater til produktlinier 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, 19. november 2001 5 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 Kilde: 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, 19. november 2001 6 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 3

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 Kilde: Software Architecture for Product families, Jazayeri, Addison- Wesley2000 SW arkitektur, 19. november 2001 7 Kontekst for SW arkitektur Architectural Styles Dokumentationsaspekt Architectural- & Design- Patterns SW arkitektur Agentteknologi Komponentteknologi Objektteknologi (UML) Frameworks Udviklingsproces Middelware standarder SW arkitektur, 19. november 2001 8 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 4

OO analyse OO design Kravspec. og Use Case model OO analyse model Løsning 1. OO design model Use Case x Node Aktør 1 Task1 Task2 Use Case x Løsning 2. Node1 Node2 Ikke funkt. krav Task1 Task2 Task3 SW arkitektur, 19. november 2001 9 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 Interaktions-, Deployment-, Komponentdiagrammer og Use Case diagrammer Ver. 2.0 af UML er på vej. SW arkitektur, 19. november 2001 10 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 5

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, 19. november 2001 11 Udvikling inden for SW design 2. Objektorienteret Programmering Klasser og associationer Nedarvning og polymorfi Dokumentation: Klassediagrammer (UML) Eksempler på sprog: Smalltalk, C++, Java, C# Class A B D ændringer i B s grænseflade påvirker kun A og D C D1 D2 SW arkitektur, 19. november 2001 12 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 6

Concurrent Pascal accesgraf eksempel Overvågnings- Specifikation Operatør M Overvågning Overvågningsenhed P P DM Operatør konsol DM Alarm P Alarm Tabel M indsætalarm() hentalarm() fjernalarm() P: Proces M: Monitor (klasse med udelelig adgang) DM: Device Monitor SW arkitektur, 19. november 2001 13 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 Class B +op1() +op2() +op3() if 1 if 2 Class D C op1() Class C op2() op3() SW arkitektur, 19. november 2001 14 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 7

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, 19. november 2001 15 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, 19. november 2001 16 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 8

State of the Art for SW arkitektur Architectural Styles Styles dominereren 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, 19. november 2001 17 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, 19. november 2001 18 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 9

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, 19. november 2001 19 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, 19. november 2001 20 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 10

Pipes & Filters so: Source f1: Filter1 p1: Pipe f2: Filter2 Dynamisk konfiguering af processering 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, 19. november 2001 21 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 eller en støjmåler en CD spiller Kilde: Center for Objektteknologi projekt (Case 2) www.cit.dk/cot SW arkitektur, 19. november 2001 22 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 11

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, 19. november 2001 23 Anvendte Design Patterns i en OO-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, 19. november 2001 24 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 12

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 Shaw & Garlan process control style SW arkitektur, 19. november 2001 25 Speed Open loop controller: Frekvensomformer eksempel Blokdiagram for to forskellige driftsformer Reference Reference calculation Slip Output f Frequency f f f Resonance f Frequency Ramp Bypass Damping Limits Voltage calculation generation f U angle transangle PWM compensation f U Slip estimation I Process Closed Loop controller: Reference Reference calculation PID Controller Output f Frequency f f f Resonance f Frequency Ramp Bypass Damping Limits Voltage calculation generation f U angle transangle PWM f U Feedback Calcualation Feedback SW arkitektur, 19. november 2001 26 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 13

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, 19. november 2001 27 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, 19. november 2001 28 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 14

Architectural Style: todelt arkitekturmodel Event kontrolleret del Bruger Styring Konfigurering INPUT OUTPUT Kontinuert processerings del Sensor Processering Overvågning Aktuator Bruger SW arkitektur, 19. november 2001 29 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, 19. november 2001 30 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 15

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, 19. november 2001 31 Event-driven arkitektur Event-driven Her anvendes afslutning afi/o operationer ogtimer 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, 19. november 2001 32 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 16

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 gennemsystemet 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, 19. november 2001 33 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 I/O SW arkitektur, 19. november 2001 34 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 17

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, 19. november 2001 35 Proxy (stedfortræder) Pattern Client Watch settime() ProxyWatch RealWatch TestWatch settime() settime() settime() Objekter af RealWatchklassen befinder sig på en anden maskine end Client objektet. Et eksempel på en Remote Proxy - der kan karakterisers som et ArchitecturalPattern. SW arkitektur, 19. november 2001 36 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 18

Proxy objektdiagrammer Local processor Remote processor :Client settime() :TestWatch :Client settime() :RealWatch :Client settime() :ProxyWatch settime() :RealWatch SW arkitektur, 19. november 2001 37 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, 19. november 2001 38 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 19

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, 19. november 2001 39 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, 19. november 2001 40 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 20

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, 19. november 2001 41 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, 19. november 2001 42 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 21

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, 19. november 2001 43 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 1/28/2002 SW arkitektur, 19. november 2001 44 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 22

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 1/28/2002 SW arkitektur, 19. november 2001 45 4+1 View model for SW arkitektur Logical View Implementation View (development) Klasser, Packages Interfaces Use cases Use Case View Komponenter, Lag Process View Processer, Threads, Tasks Deployment View (Physical) Nodes Ref.: Philippe Kruchten, The 4+1 View of Architecture, IEEE Software, 12(6) Nov. 1995 SW arkitektur, 19. november 2001 46 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 23

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, 19. november 2001 47 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 arkitekturniveau 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, 19. november 2001 48 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 24

Samarbejdsmuligheder med IHA Ingeniørpraktik ½ år på 5 semester Afgangsprojekter på diplomingeniørstudiet udført i virksomheden eller på IHA - vejleder fra virksomheden eller fra IHA omfang 2/3 af sidste semester (25 ECTS point) På længere sigt specialeprojekter på overbygningsuddannelsen (start forår 2003) PhD projekter Deltagelse i enkeltfag på IHA s kurser under Åben Uddannelse Eksterne lektorer Eksterne censorer (udpeges for 4 årig periode) Vi søger også nye kollegaer til E og IKT linien og til overbygningsuddannelser SW arkitektur, 19. november 2001 49 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, 19. november 2001 50 Ingeniørhøjskolen i Århus, Finn Overgaard Hansen 25