+ All Categories
Home > Documents > Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in...

Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in...

Date post: 27-Jun-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
28
brightONE brightONE 16.10.2013 Qualitätsmerkmal orientierte SW-Architektur durch Anwendung von Architectural Styles 1 Software-Architektur Markus Pauls [email protected] blog.brightONE.de/smartproducts
Transcript
Page 1: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

brightONEbrightONE 16.10.2013

Qualitätsmerkmal orientierte SW-Architekturdurch Anwendung von Architectural Styles

1

Software-ArchitekturMarkus Pauls

[email protected]

blog.brightONE.de/smartproducts

Page 2: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

brightONEbrightONE 16.10.2013

Vorstellung

Was ist Software-Architektur?Qualitätsmerkmale

Szenarien

Was sind Architectural Styles?

Projektbeispiele

Zusammenfassung

2

Inhalt

Page 3: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

brightONEbrightONE 16.10.2013

VorstellungbrightONE Embedded Systems

3

Smart Products for a Connected World

Page 4: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 5: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

brightONEbrightONE

Was istSW-Architektur?

16.10.20135

Page 6: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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?

Page 7: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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?

Page 8: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

brightONE 16.10.20138

Qualitätsmerkmale== „non functional requirements“

ISO/IEC 25010Product Quality Model

Safety

Page 9: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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.

Page 10: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 11: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 12: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 13: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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.

Page 14: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

brightONEbrightONE 16.10.2013

Was sindArchitectural Styles?

14

Page 15: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 16: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 17: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 18: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 19: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

brightONEbrightONE 16.10.2013

Projektbeispiele

19

Page 20: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 21: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 22: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 23: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 24: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 25: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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()

Page 26: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 27: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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

Page 28: Software-Architektur€¦ · Software-Architektur bedeutet das Zerlegen eines Gesamtsystems in Komponentenund eine Beschreibung der Komponenten, sowie der Schnittstellenund derBeziehungendieser

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


Recommended