software-architektur€¦ · software-architektur bedeutet das zerlegen eines gesamtsystems in...
TRANSCRIPT
brightONEbrightONE 16.10.2013
Qualitätsmerkmal orientierte SW-Architekturdurch Anwendung von Architectural Styles
1
Software-ArchitekturMarkus Pauls
blog.brightONE.de/smartproducts
brightONEbrightONE 16.10.2013
Vorstellung
Was ist Software-Architektur?Qualitätsmerkmale
Szenarien
Was sind Architectural Styles?
Projektbeispiele
Zusammenfassung
2
Inhalt
brightONEbrightONE 16.10.2013
VorstellungbrightONE Embedded Systems
3
Smart Products for a Connected World
brightONE 16.10.20134
Smart Products for a Connected WorldMedicalHi-Tech
ElectronicsAutomotive
Human-Machine-Interface Solutions
M2M- & High-Speed-Connectivity Solutions
Functional Safety Solutions
Concepts &Innovation
Design &Development
LifecycleServices
brightONE EmbeddedSystems GmbH
brightONEbrightONE
Was istSW-Architektur?
16.10.20135
brightONE 16.10.2013
Software-Architektur bedeutet das Zerlegen eines Gesamtsystemsin Komponenten und eine Beschreibung der Komponenten, sowieder Schnittstellen und der Beziehungen dieser Komponentenuntereinander.
„Teile und herrsche“ Strategie
Software-Architektur ist das Ergebnis von weitreichenden Design-Entscheidungen, die notwendig sind bevor eine Gruppe vonPersonen gemeinsam ein Software-System erstellen können.
Die Design-Entscheidungen werden im wesentlichen durchQualitätsmerkmale bestimmt.
6
Was ist SW-Architektur?
brightONE 16.10.2013
Kategorien von Design-Entscheidungen:1.Zuweisung von Verantwortlichkeiten
2.Koordinations-Modell
3.Daten-Modell
4.Ressourcen-Management
5.Abbildung zwischen Architektur-Elementen
6.Binde-Zeit-Punkt
7.Wahl der Technologie
7
Was ist SW-Architektur?
brightONE 16.10.20138
Qualitätsmerkmale== „non functional requirements“
ISO/IEC 25010Product Quality Model
Safety
brightONE 16.10.20139
Bewertung von ArchitekturenSzenarien
Non-functional requirements häufig schlecht quantifizierbar:
“The system shall be robust.”
“The system shall be highly modifiable.”
“The system shall be secure from unauthorized break-in.”
“The system shall exhibit acceptable performance.”
Bewertung mit Hilfe von Szenarien:
Uses Cases typische Anwendungen
Growth scenarious typische zukünftige Änderungen
Exploratory scenarious extreme Änderungen, „Stresstest“
Szenarien helfen Fragen an die Architektur des System zu stellen.
brightONE 16.10.201310
Bewertung von ArchitekturenFormalisierung von Szenarien
Stimulus: Das Ereignis auf das die Architektur reagieren muss.
Source: Quelle des Stimulus
Environment: Satz von Randbedingungen unter dem das Szenarium stattfindet.
Architectural Artifact: Der Teil der Architektur der auf das Ereignis reagiert.
Response: Ein messbare (oder zumindest beobachtbare) Reaktion auf den Stimulus.
Measure: Akzeptanz-Kriterium für die Reaktion
Source
Environment
Stimulus ResponseArchitecturalArtifact
Measure
brightONE 16.10.201311
TaxonomiePerformance Szenarien
Source Stimulus Environment ArchitecturalArtifact
Response Measure
Internal … Periodic … Normal … System Processevents
Latency
External … Sporadic … Overload … Component Change levelof service
Deadline
Bursty … Reducedcapacity …
Throughput
Stochastic … Emergency … Jitter
Peak … Miss rate
Data loss
… to thesystem
… events … mode
brightONE 16.10.201312
TaxonomieModifizierbarkeit‘s SzenarienSource Stimulus Environment Architectural
ArtifactResponse Measure
End-user Add … At Runtime Code Make … Cost in effort
Developer Delete … At CompileTime
Data Test … Cost in money
SystemAdministrator
Modify … At Build Time Interfaces Deploy … Cost in time
Design Time Components Cost in number,size, complexityof affectedartifacts
Initiation Time Resources Extent affectsother systemfunctions orqualities
Configurations New defectsintroduced
… functionality,quality attribute,capacity ortechnology
… modification
brightONE 16.10.201313
Sensitivity and tradeoff pointsDiese Begriffe charakterisieren Schlüssel-Entscheidungen:
A sensitivity point is a property of one or more components (and/orcomponent relationships) that is critical for achieving a particular qualityattribute.
Sensitivity points tell you where to focus your attention when trying to achievea quality goal. They serve as yellow flags: “Use caution when changing thisproperty of the architecture”.
A trade-off is a situation that involves losing one quality of something inreturn for gaining another quality.
A trade-off point is a property that affects more than one quality attributeand is a sensitivity point for at least one attribute.
brightONEbrightONE 16.10.2013
Was sindArchitectural Styles?
14
brightONE
Ziel: Das Rad nicht jedes mal neu erfinden.
Verwendung von Lösungs-Mustern mit bekanntenVor- und Nachteilen.
„An architectural style is a description of component types and theirtopology, which includes a description of the pattern of data and controlinteraction among the components. Architectural styles also provide aninformal description of the benefits and drawbacks of using that style.”
15
Architectural Styles
16.10.2013
brightONE 16.10.201316
Beispiel:Data Indirection – Abstract Data Repository
Ziel:Verbesserung der Modifizierbarkeit durchVerringerung der Datenfluss- und Kontroll-Beziehungen zwischen den Komponenten.
Charakteristika:
Topologie: SternDaten-Persistenz: persistentKenntnis der Datenstruktur im Client:vollständige KenntnisAktivität: passiv
Producer und Consumer können leichtausgetauscht werden.
Änderung der Daten-Strukturenproblematisch.
Synchronisation der Schreib- undLeseraten evtl. erforderlich.
Producer
Producer
Consumer
Consumer
DataRepository
Legend
Data FlowComputational
ComponentData
Component
brightONE 16.10.201317
Beispiel:Data Indirection – Publish/Subscribe
Ziel:Verbesserung der Modifizierbarkeit durchVerringerung der Datenfluss- und Kontroll-Beziehungen zwischen den Komponenten.
Charakteristika:
Topologie: SternDaten-Persistenz: transientKenntnis der Datenstruktur im Client: keineKenntnisAktivität: Aktiv
Publisher und Subscriber können leichtausgetauscht werden.
Schreib- und Leseraten automatischsynchronisiert.
Keine Aussage darüber wann derSubscriber informiert wird.
Publisher(Producer)
Publisher(Producer)
Subscriber(Consumer)
Subscriber(Consumer)
SubscriptionManager
Legend
Data FlowComputational
ComponentData
Component
brightONE 16.10.201318
Beispiel: Layering
Ziel:Verbesserung der Wartbarkeit undPortierbarkeit.
Charakteristika:
Topologie: SchichtenAbhängigkeiten:
strikt lockerDownwards only
Downwards and UpwardsKenntnis der Datenstrukturen: keineKenntnis
Schichten können leicht ausgetauschtwerden.
Negativer Einfluss auf Performance.
Lockere Schichtung oder Abhängigkeiten inbeiden Richtungen kann dem Ziel entgegenwirken.HW
Hardware Adaptation Layer
Device Driver
GUIFramework
User Application
brightONEbrightONE 16.10.2013
Projektbeispiele
19
brightONE 16.10.2013
1. Display- und Bedien-Einheit eines Intensiv-Medizinischen Gerätes
Neuentwicklung der Display- und Bedien-Einheit.
Wiederverwendung der bestehenden Gerätesoftware mit nurgeringfügigen Änderungen.
Kopplung Backend Display Einheit über einen Feldbus.
RTOS mit monolithischem Speichermodell
2. Notfall-Medizinisches Gerät mitReanimations- und Überwachungsfunktion
Neuentwicklung von Elektronik und SW der ‚Steuerplattform‘.
Hardware nahe SW Anteile (BSP, Treiber)Objektorientierte Applikationssoftware
Steuerung verschiedener zugelieferterSensor- und Aktuator-Module
Graphische BenutzeroberflächePOSIX-RTOS Multi-Prozess-Environment
20
Projektbeispiele
brightONE 16.10.201321
Data Indirection:Notify/Oberver Pattern (Projekt 1)
class Ntfy-Obsrvr
NotifierBase
+ attach() : void+ detach() : void# notify() : void
Notifier1
Observ er1
+ update() : void
«interface»INotifier
+ attach() : void+ detach() : void
Notifier2
«interface»IObserver
+ update() : void
Observ er2
+ update() : void
«real ize»
«use»
«real ize»«real ize»
Objektorientierte Umsetzungvon Publish/Subscribe
class Projekt1
Data Layer
Representation Layer
Bus RX/TX DataStorage
+ attach(int, IObserver) : void+ detach(int, boolean) : void+ write() : void
DataItem
+ write() : void
Screen
Dialog1
CurveField
+ update() : voidIObserver
Dialog2
ValueBox
+ update() : voidIObserver
RotaryKnob
+ update() : voidIObserver
ValueButton
+ update() : voidIObserver
Framwork::NotifierBase
+ attach() : void+ detach() : void# noti fy() : void
Publish/Subscribe
Subscriber
«flow»
ItemId
Publ isher
Data Repository
Data Repository
brightONE 16.10.201322
Distributed Systems:Client/Server
Partitions tasks or workloadsbetween the providers of aresource or service, called servers,and service requesters, calledclients.
Often clients and servers communicateover a computer network on separatehardware, but both client and server mayreside in the same system.
Clients and servers exchangemessages in a request-responsemessaging pattern:
The client sends a request, and theserver returns a response.
Directed communication
Notification requires a statefulserver
Client
Server(Client)
Server
Server Server(Client)
Request Response Notification
Synchron/Asynchron Asynchron
brightONE 16.10.201323
Data IndirectionPublish/Subscribe (Projekt 2)
class Architecture
GUI Process
Other or same Process
DataMngmtProcess
QNXServerBase
«singleton»IdbServ er
IdbClients::IdbClient
«struct»IdbClients::IdbSharedMemory
ArbitraryIdbClientUser
«interface»IdbClients::IIdbClient
«interface»IdbClients::IIdbObserv er
«interface»IdbClients::IIdbSpy
IdbClients::IdbSpy
GUI
Client/Server
Publish/Subscribe
Data Repository
Adapter
Subscription Manager«flow»
«flow»
«cal l»
1..*
Publisher/Subscriber
Cl ient
«include»
Producer/Consumer
Producer/ConsumerData Repository
Adapter Adapter
«extend»
«extend»
Client
Server
Publ isher/Subscriber
brightONE 16.10.201324
Safety and Reliability:Monitor-Actuator
Problem:Detect faults and provide correctiveactions in the presence of faults.
Solution:Use a primary heavyweightchannel providing the fullfunctionality.Use a second lightweightchannel that detect faults withinthe primary by checking theresults of the actuation.
Definition:A channel is a collaboration ofobjects which performs a series ofsafety-relevant computations oractuations.
cmp Monitor Actuator
Controller Actuator Channel
Monitor Channel
Monitor-Actuator
1 1
1
*Controller Actuator Channel
Monitor Channel
brightONE 16.10.201325
Safety and Reliability:Monitor-Actuator
sd Monitor Actuator
Controller Monitor Channel Actuator Channel
System Boundary
Discrepancyfound
alt good case
alt bad case
Desired Result()
Desired Result()
Actuation()
Environmental Condi tion()
Is OK()
Desired Result()
Desired Result()
Actuation()
Environmental Condi tion()
FAULT()
brightONE 16.10.201326
Safety and Reliability:Monitor-Actuator (Projekt 2)
cmp Monitor-Actuator
«library»AED Package::Defi
Algorithms
«library»Platform Package::Internal Database
«executable»AED Package::AED GUI
«library,executable,SOUP»Bundled Driver &
Middleware Package::Photon GUI Framework
«HW»Display
Monitor-Actuator
Moni tor ChannelActuator Channel
Actuator Channel
Controller
Pixel
«flow»Energy value
«flow»
Key pressed
«flow»
Energy
«flow»
Energy
«flow»
Moni tor Channel
brightONE 16.10.2013
1. Software-Architektur ist das Ergebnis vonDesign-Entscheidungen.
2. Software-Architektur bestimmt in erheblichem Umfangdie erreichbaren Qualitätsmerkmale eines Systems.
3. Szenarien präzisieren Qualitätsmerkmale.
4. Szenarien helfen Software-Architekturen zu bewerten.
5. Architectural-Styles sind Lösungsmuster mitbekannten Vor- und Nachteilen.
30
Zusammenfassung
brightONEbrightONE 16.10.2013
Smart Products for a Connected WorldYour reliablePartner forInnovation & Development
www.brightONE.de/SmartProducts
blog.brightONE.de/SmartProducts
Markus [email protected]
31