Skriptums (als )

Werbung
Humboldt-Universität zu Berlin
Skriptum zur Vorlesung
"Modellbasierte Software-Entwicklung eingebetteter Systeme"
Prof. Dr. H. Schlingloff
Sommersemester 2014
Stand: 15.05.2016 14:26:00
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 1
Inhalt
1
Eingebettete Systeme ..................................................................................................................... 3
2
System- und Anforderungsanalyse................................................................................................ 14
3
Modellierung ................................................................................................................................. 31
3.1
Systemmodellierung (SysML) ................................................................................................ 31
3.2
Kontinuierliche Modellierung (Simulink / Scilab) .................................................................. 31
3.3
Diskrete Modellierung (UML) ................................................................................................ 31
4
Codegenerierung und Modelltransformation ............................................................................... 31
5
Hardware für eingebettete Systeme ............................................................................................. 31
6
Sicherheit ....................................................................................................................................... 31
7
8
6.1
Funktionale Sicherheit ........................................................................................................... 31
6.2
Fehlertoleranzkonzepte ........................................................................................................ 31
6.3
Werkzeugqualifikation .......................................................................................................... 31
Validierung .................................................................................................................................... 31
7.1
Modellbasierter Test ............................................................................................................. 31
7.2
Verifikation und statische Analyse ........................................................................................ 31
Spezielle Domänen ........................................................................................................................ 31
8.1
Automotive Software Engineering ........................................................................................ 31
8.2
Medizintechnik ...................................................................................................................... 31
8.3
Automatisierungstechnik, Robotik ........................................................................................ 31
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 2
1 Eingebettete Systeme
Eingebettete Steuerungs-, Regelungs- und Überwachungssysteme sind zum integralen Bestandteil
unseres Alltags geworden. Bereits heute gibt es mehr eingebettete Systeme als Menschen auf
diesem Planeten. Ihre Funktion wird über immer umfangreichere Softwareanteile mit stark
ansteigender Komplexität realisiert.
Wir beginnen mit der Definition des Begriffs „eingebettetes System“:
Ein System (von griechisch σύστημα) ist nach der Herkunft des Wortes etwas „Zusammengesetztes“,
„Verbundenes“. Da absolut alle Dinge dieser Welt aus kleineren Bestandteilen zusammengesetzt
sind, dient der Begriff also nicht dazu, eine Klasse von Dingen abzugrenzen, sondern betont den
Aspekt eines Objektes, aus anderen Objekten (den Komponenten, „Zusammenzusetzenden“) zu
bestehen. Die Norm ISO/IEC 15288:2008 definiert ein System als “a combination of interacting
elements organized to achieve one or more stated purposes”; das “Systems Engineering Handbook“
des INCOSE (International Council of Systems Engineering) 1führt dazu weiter aus:
[A system is] an integrated set of elements, subsystems, or assemblies
that accomplish a defined objective. These elements include products
(hardware, software, firmware), processes, people, information,
techniques, facilities, services, and other support elements. (INCOSE)
Interessant ist, dass beide diese Definitionen nur solche Zusammensetzungen als System bezeichnen,
bei denen damit eine Absicht (purpose, objective) verfolgt werden kann. Das bedeutet, es fallen nur
solche Systeme darunter, die von Menschen zusammengesetzt sind. In diesem Skript folgen wir
dieser Sichtweise, d.h., wir beschäftigen uns nicht mit Ökosystemen, biologischen Systemen, sozialen
Systemen oder anderen „natürlichen“ Systemen.
Üblicherweise konstruieren Menschen Systeme, damit sie eine Funktion erfüllen. Wir sprechen von
einem technischen System, wenn die Funktion des Systems in der Verarbeitung von Materie oder
Energie besteht. Unter Verarbeitung verstehen wir die Umformung oder den Transport. Im
Gegensatz zu technischen Systemen sind Informatiksysteme solche, deren Funktion in der
Verarbeitung von Informationen besteht.
Der griechische Philosoph Platon (428-348 v.Chr.) unterschied zwischen der „Welt der
Dinge“ und der „Welt der Ideen“. Dabei schrieb er der ideellen Welt einen höheren
Wirklichkeitsgrad als der materiellen Welt zu. Die Welt der Dinge besteht aus Materie
(oder, nach Einstein, aus Energie), die Welt der Ideen besteht aus Informationen.
Technische Systeme funktionieren in der Welt der Dinge, Informatiksysteme
funktionieren in der Welt der Ideen.
Die Begriffe „Materie“ und „Information“ sind Grundbegriffe, die hier nicht weiter erklärt werden.
1
INCOSE Systems Engineering Handbook v.3.2, A Guide for System Life Cycle Processes and Activities, Jan. 2010
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 3
Ein technisches System ist ein System zur Verarbeitung
(Umformung oder Transport) von Materie / Energie,
ein Informatiksystem verarbeitet Informationen.
Beispiele für technische Systeme sind:



ein Heizkraftwerk (Umwandlung),
eine Stanzpresse (Umformung), und
ein Bagger (Transport).
Beispiele für Informatiksysteme sind:



ein Taschenrechner,
ein Übersetzungsprogramm, und
ein Mobiltelefon.
Das letzte der genannten Beispiele weist auf eine Abgrenzungsproblematik hin: Da die
Repräsentation von Informationen in der materiellen Welt immer an physische Objekte gebunden ist,
enthält jede Informationsverarbeitung zwangsweise auch die Verarbeitung dieser physischen
Objekte. Zur Festlegung, ob wir ein System als technisches System oder Informatiksystem
bezeichnen, ist also entscheidend, welcher Aspekt überwiegt. Im Falle eines Taschenrechners ist die
Einordnung relativ eindeutig; eine Funktionsbeschreibung der Art „Ein Taschenrechner ist ein Gerät
zur Umwandlung von Batteriestrom in Licht und Prozessor-Abwärme“ wäre sicher unzureichend. Für
ein Telefon ist die Situation nicht so eindeutig: Bei den ersten „Fernsprechern“ ab 1876 überwog der
(technische) Aspekt der Umwandlung von Schallwellen in elektrische Signale und zurück, bei der so
gut wie keine Informationsverarbeitung stattfindet: Der Spannungsverlauf am Mikrofon oder
Lautsprecher entspricht mehr oder weniger genau der Amplitude der entsprechenden Schallwellen.
Bei heutigen Smartphones hingegen überwiegt eindeutig der Aspekt der Informationsverarbeitung:
Digitalisierung der Signale, Aufteilung in Pakete, Ver- und Entpacken gemäß dem verwendeten
Übertragungsprotokoll usw.
Die Definition von technischem System und Informatiksystem erlaubt uns, einen der zentralen
Begriffe der Vorlesung zu definieren:
Ein eingebettetes System ist ein Informatiksystem,
welches Komponente eines technischen Systems ist.
Lapidar ausgedrückt: Ein eingebettetes System ist ein Computer, der fester Bestandteil einer
Maschine ist. Das bedeutet, dass die Informationsverarbeitung für einen spezifischen Zweck in einer
technischen Umgebung entworfen, eingebaut und betrieben wird.
Aus der Definition ergeben sich einige kennzeichnenden Merkmale eingebetteter Systeme:

fester Bestandteil eines technischen Systems
Ein eingebettetes System ist oft physisch mit dem Gesamtsystem verbaut, nicht leicht
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 4



austauschbar, von den räumlichen Abmessungen und logischen Kapazitäten auf das
technische System abgestimmt.
Zweckbestimmtheit
Ein eingebettetes System erfüllt im technischen System einen fest vorbestimmten Zweck. Im
Gegensatz zu einer universellen Turing-Maschine oder einem Desktop-Computer kann es
daher oft nur bestimmte Berechnungen durchführen und lässt sich nicht oder nur in Grenzen
frei programmieren.
Interaktion mit physischer Umgebung
Das technische System, in dass das Informatiksystem eingebettet ist, verarbeitet Materie
oder Energie in der physischen Realität. Um mit dieser physischen Umgebung zu
interagieren, benötigt das eingebettete System Sensoren und Aktuatoren.
Reaktivität, meistens Realzeitabhängigkeit
Reine Informatiksysteme sind oft so konstruiert, dass sie nach Berechnung der geforderten
Funktion terminieren. Da die Funktion, die ein eingebettetes System erbringt, mit der
Gesamtfunktionalität des technischen Systems gekoppelt ist, muss es ständig reaktionsbereit
sein und terminiert im allgemeinen nicht (reaktives System). Meist sind für die Berechnung
der Funktion äußere Zeitschranken vorgegeben, die mehr oder weniger strikt einzuhalten
sind (hartes oder weiches Realzeitsystem).
Neben diesen kennzeichnenden Merkmalen gibt es sekundäre Merkmale, die eingebettete Systeme
überwiegend, aber nicht immer aufweisen:




oft für Regelungs- / Steuerungsaufgaben vorgesehen
Meist ist die Funktion, für die das eingebettete System vorgesehen ist, die Steuerung und
Regelung des technischen Systems (etwa die Steuerung einer Waschmaschine). Es gibt aber
durchaus auch eingebettete Systeme, die nicht für die Steuerung des technischen Systems
benötigt werden (z.B. ein Messdatenerfassungsgerät).
häufig Massenware
Eingebettete Systeme sind oftmals in Konsumgüter eingebaut, und müssen daher billig
hergestellt werden. Als Beispiel seien hier Steuergeräte im Auto genannt, bei denen im
0,01€-Bereich optimiert wird: bei 1.000.000 produzierten Stück bedeutet eine
Kostenreduktion um 1ct eine Ersparnis von 10.000€!
vielfach schlecht bzw. nicht wartbar und nicht erweiterbar
Da das eingebettete System zusammen mit dem technischen System vertrieben wird, ist ein
„Software-Update“ oft nur mit großem Aufwand oder gar nicht durchführbar (Beispiel:
Waschmaschinensteuerung, Mars-Roboter); in vielen Fällen lohnt es sich auch einfach nicht,
ein eingebettetes System zu warten (Beispiel elektronisches Spielzeug). Da das eingebettete
Informatiksystem auf den speziellen Einsatzzweck zugeschnitten ist, ist es in den allermeisten
Fällen nicht möglich, die Funktion wie bei Desktop-Software nachträglich zu erweitern
(„Version 2.0“).
vielfach unverzichtbar, manchmal auch sicherheitskritisch
Auf Grund der gestiegenen Leistungsfähigkeit elektronischer Informatiksysteme ist eine
wesentlich bessere Regelung als mit mechanischen Komponenten zu erreichen; dadurch
werden eingebettete Systeme notwendige Bestandteile der technischen Geräte die sie
steuern. Zum Beispiel ließen sich die heutigen Abgasnormen für PKWs ohne eingebettete
Motorsteuergeräte gar nicht mehr erfüllen. Zunehmend erfüllen eingebettete Systeme auch
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 5

sicherheitskritische Aufgaben (im Auto z.B. ABS, ASR, ESP, usw.), so dass ein Ausfall fatale
Konsequenzen haben kann.
zunehmend auch vernetzt
Seit etwa einem Jahrzehnt ist der Trend zu beobachten, dass eingebettete Systeme mit
anderen solchen Systemen kommunizieren, um im Verbund eine neue Leistung erbringen zu
können. Man spricht hier auch von cyber-physischen Systemen (siehe unten). Wenn
eingebettete Systeme überall in der menschlichen Umgebung zu finden sind, spricht man
auch von ubiquitären Systemen.
Typische Beispiele für eingebettete Systeme sind:








die Lageregelung einer Ariane-Rakete
das TCAS (Kollisionsvermeidungssystem) eines Airbus
die ETCS-OBU (On-board-unit) eines ICE
ABS, ESP, GRA, Motorsteuerung, … im Automobil
die Temperaturregelung in einem Kraftwerk
die Steuerung einer Stanzpresse
ein Fahrradcomputer
ein Herzschrittmacher
Innenansicht einer Motorsteuerung aus
einem Golf III TDI; Quelle: Wikipedia
Man schätzt, dass in Deutschland jeder Mensch ca. 20 eingebettete Systeme besitzt und täglich die
Funktion von 50-100 verschiedenen eingebetteten Systemen benutzt. Die „Nationale Roadmap
Embedded Systems“ des ZVEI (Zentralverband Elektrotechnik und Elektronikindustrie e.V.) von 2009
zitiert eine BITKOM-Studie, in der der Weltmarkt auf 71 Mrd. € und der deutsche Markt für
eingebettete Systeme in 2007 auf über 18,7 Mrd. € geschätzt wird, mit einer weiteren
durchschnittlichen Wachstumsrate von 9-10 % pro Jahr.
Eingebettete Systeme sind für den Wirtschaftsstandort Deutschland von herausragender
Bedeutung. […] Eingebettete Systeme stellen in vielen für Deutschland wichtigen
Branchen eine Schlüsseltechnologie dar, sind Innovationstreiber und durch
Diversifizierung von Produkten in Bezug auf Funktionalität und Qualität maßgeblich am
Erhalt von Wettbewerbsfähigkeit und Arbeitsplätzen dieser Branchen beteiligt.
Beispielsweise nimmt der Wertanteil von elektrischen und elektronischen Komponenten im
Automobil stark zu und beträgt derzeit etwa 25-35%. Etwa 90% der Innovationen im Automobil
werden von eingebetteten Systemen bestimmt. Die wichtigsten Branchen, in denen eingebettete
Systeme entwickelt werden, sind folgende.



Verkehrstechnik
o Flug- und Fahrzeuge: Motor/Triebwerkssteuerung, X-by-wire, Lagestabilisierung,
Dynamikregelung, Fahrerassistenz, Insassenkomfort, Navigation, …
o Verkehrsleitsystem, Ampelsteuerung, Radarerfassung, …
Automatisierungs-, Produktions- und Umwelttechnik
o Maschinen- und Anlagenbau und -steuerung
o Kraftwerks- und Fabriksteuerungen, Emissionskontrolle, Robotik
Energie- und Gebäudetechnik
o Heizungs-, Lichtsteuerung, „intelligent home“, „smart grid“
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 6


Medizintechnik
o Patientensysteme, Behandlungsgeräte, Meß- und Diagnosegeräte
Hausgerätetechnik
o Mikrowelle, Waschmaschine, Gasbrenner, Fernbedienung, Spielzeug, …
Eingebettete Systeme können zur Lösung wichtiger Herausforderungen unserer Zeit beitragen:






Smart Cities
Im Jahr 2050 werden neun Milliarden Menschen auf der Erde leben, davon 70% in
städtischen Ballungsgebieten. Eingebettete Systeme können durch effiziente und integrierte
Informationsflüsse zwischen Bürgern, Unternehmen, Institutionen und Verwaltung die
Lebens- und Arbeitsqualität aller Beteiligten steigern. Beispiele sind „Smart metering“, bei
dem der Stromverbrauch der aktuell verfügbaren Kapazität angepasst wird, „Smart
buildings“, die sich auf ihre Bewohner einstellen, und „Smart mobility“, bei dem öffentliche
und individuelle Verkehrsmittel kombiniert werden.
Alternde Gesellschaft
Unter „Ambient assisted living“ (AAL) versteht man häusliche Umgebungen, die es Menschen
ermöglichen, auch im Alter selbständig in ihrer eigenen Wohnung zu leben. Dazu gehören
Monitoring- und Notfallassistenzsysteme, Haushaltsroboter und Versorgungssysteme.
Nachhaltige Mobilität
Hybrid- und Elektrofahrzeuge können dazu beitragen, die hohen Emissionswerte unseres
heutigen Verkehrssystems zu reduzieren. Car-Sharing-Konzepte helfen, die Gesamtzahl der
benötigten Fahrzeuge zu reduzieren. Car-to-Car-Kommunikation und Verkehrsmanagementsysteme verbessern den Verkehrsfluss und die Effizienz des Individualverkehrs.
Gesundheitsfürsorge
Medizinische Diagnose- und Therapiegeräte können helfen, die Ausbreitung von Krankheiten
einzudämmen bzw. deren Auswirkungen zu beschränken.
Katastrophenschutz und –management
Frühwarnsysteme können helfen, die Auswirkungen eines Erdbebens oder Tsunamis zu
mildern, indem bei Erkennung erster Wellen z.B. Gasleitungen gesichert und Züge gebremst
werden. Mit Hilfe vernetzter Lokalisierungssysteme können Helfer gezielt an Einsatzorte
geführt werden.
Energieversorgung
Zur effizienten Regelung dezentraler Systeme zur Energieerzeugung und -verteilung (vor
allem auf Basis erneuerbarer Energiequellen, Windräder, Photovoltaikanlagen usw.) sind
vernetzte eingebettete Systeme erforderlich, die Bedarf und Produktion aneinander
anpassen.
Cyber-physische Systeme
Vielfach werden heute eingebettete Systeme mit Kommunikationskomponenten (WLAN, Bluetooth,
GSM/UMTS/LTE, Zigbee, …) ausgestattet, so dass sie mit anderen Informatiksystemen Informationen
austauschen können. Durch den Verbund vieler eingebetteter Systeme kann so eine neue Qualität in
der Funktionalität des Gesamtsystems entstehen.
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 7
Ein cyber-physisches System ist eine Menge
eingebetteter Systeme, die miteinander und/oder mit
anderen Informatiksystemen vernetzt sind.
Der Begriff „cyber-physisches System“ ist ein aktuelles Modewort, welches aus der Rückübersetzung
des amerikanischen „cyber-physical system“ entstanden ist. Von der Wortbedeutung her ist
Kybernetik die Wissenschaft der Steuerung von Maschinen, Organismen oder Organisationen
(griechisch κυβέρνησις = Steuerung, Leitung), also geht es um die Steuerung physischer Geräte oder
Systeme. Beispiele für cyber-physische Systeme sind




das Netz der Steuergeräte in einem KFZ
in heutigen PKWs sind 50-80 Steuergeräte verbaut, die über verschiedene Bordnetze (CAN,
LIN, MOST, FlexRay, …) miteinander kommunizieren. Zum Beispiel regelt die elektrische
Heckklappe beim Schließen die Ventilation herunter.
die Steuergeräte einer industriellen Produktionsstraße
in Fabriken mit automatischen Produktionsstraßen werden die einzelnen Stationen immer
mehr miteinander vernetzt und mit der Logistik verbunden, um eine „just-in-time“Produktion individualisierter Produkte zu ermöglichen.
ein Sensornetz zur Erdbebenfrühwarnung
während einzelne seismische Sensoren keine sichere Aussage über Epizentrum und Stärke
eines Bebens machen können, lässt sich aus einem Netz solcher Sensoren bereits vor
Eintreffen der zerstörerischen Wellen eine sichere Vorhersage treffen.
ein Fußballteam humanoider Roboter
erklärtes Ziel der internationalen RoboCup Federation ist es, bis spätestens zum Jahr 2050
ein Team humanoider Roboter gegen ein menschliches Team antreten und gewinnen zu
lassen. Bereits heute gibt es jährliche Meisterschaften mit vereinfachten Regeln.
Nach der obigen Definition ist ein eingebettetes System der Trivialfall eines cyber-physischen
Systems (eine Menge mit nur einem Element); umgekehrt kann ein einzelnes Steuergerät heute
durchaus mehrere miteinander kommunizierende Prozessoren enthalten und wäre demnach auch
ein cyber-physisches System. Daher soll im Rahmen dieser Vorlesung nicht weiter zwischen
eingebetteten und cyber-physischen Systemen unterschieden werden.
Entwicklung eingebetteter Systeme
Die Entwicklung eingebetteter Systeme bietet einige Herausforderungen, die über die „normalen“
Probleme bei der Software-Entwicklung hinaus gehen. Diese ergeben sich mehr oder weniger
unmittelbar aus den kennzeichnenden und sekundären Eigenschaften eingebetteter Systeme.

Komponente eines technischen Systems
Diese Eigenschaft bedingt die Notwendigkeit des mechanischen Einbaus in das technische
System. Das bedeutet, Abmessungen und physikalische Randbedingungen wie z.B.
Wärmeentwicklung müssen bei der Konstruktion berücksichtigt werden. Oft muss der Einbau
in unmittelbarer Nähe der technischen Umgebung erfolgen (beim Auto z.B. in Hohlräume, im
Motorraum, in der Ölwanne, sogar im Inneren der Reifen). Dadurch ergeben sich teilweise
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 8




sehr starke physikalische Belastungen und Robustheitsanforderungen, sowie Platz- und
Energieprobleme.
Zweckbestimmtheit
Da ein eingebettetes System nur eine bestimmte, vorher festgelegte Funktion zu erfüllen hat,
lohnt es sich, das System auf diese Funktion hin zu optimieren. Die Effizienz der Erbringung
der spezifizierten Funktion ist oft das wichtigste Kriterium; das System soll mit minimalem
Ressourceneinsatz auskommen. Das bedeutet, dass anders als bei Desktop-Systemen z.B.
Speicherplatz nicht in beliebiger Menge zur Verfügung steht, und dass die Prozessorleistung
genau auf die Aufgabe zugeschnitten wird.
Ein anderer Unterschied zu Desktop-Programmen ist, dass bei eingebetteter Software die
Systemschnittstellen im Allgemeinen vorher festliegen und nicht vom Programmierer
definierbar sind. Das bedeutet, dass die Phase der Anforderungsanalyse viel gründlicher als
bei „herkömmlicher“ Software durchlaufen werden muss; spätere Änderungen sind
normalerweise nicht oder nur mit sehr großem Aufwand realisierbar.
Interaktion mit Umgebung durch Sensorik und Aktuatorik
Eine unmittelbare Konsequenz dieser Eigenschaft ist, dass der Systemingenieur genaue
Kenntnis der Umgebung des Systems haben muss: Welche physikalischen Werte haben
Einfluss auf das System, welche soll das System beeinflussen können? Eine saubere
Schnittstellenbeschreibung und Systemarchitektur ist für eingebettete Systeme
unumgänglich. Des Weiteren muss der Systemdesigner aber auch genaue Kenntnisse über
das Verhalten der Sensoren und Aktuatoren haben: Bis zu welcher Genauigkeit sind die
erhaltenen Sensordaten verlässlich? Wie groß sind die mechanischen Ungenauigkeiten der
Motoren? Es kann durchaus sein, dass sich das tatsächliche Verhalten des technischen
Systems signifikant von dem eines „idealisierten“ Systems (etwa in einer Simulation)
unterscheidet. Hinzu kommen Rückkopplungseffekte: Da das eingebettete System über die
Aktuatoren Einfluss auf das technische System hat, führen Ungenauigkeiten der Aktuatoren
zu abweichenden Sensorsignalen, welche wiederum zu fehlerbehafteten Aktuatorbefehlen
führen können, usw.
Schließlich ist durch die Interaktion mit der „realen“ Welt auch immer die Ausfallproblematik
zu berücksichtigen: Bei herkömmlichen Programmen geht man in der Regel davon aus, dass
die Hardware (Prozessor, Speicher, Ein- und Ausgabegeräte usw.) zuverlässig und korrekt
arbeitet. Bei eingebetteten Systemen ist diese Annahme nicht gerechtfertigt: Motoren
unterliegen mechanischer Abnützung, Sensoren können bei Überschreitung des
vorgesehenen Messbereichs defekt werden. Selbst Prozessoren und Speicher können, wenn
sie rauhen Umgebungsbedingungen ausgesetzt werden (etwa der erhöhten GammaStrahlung im Weltraum) nicht unbedingt als zuverlässig betrachtet werden.
Reaktivität, meistens Realzeitabhängigkeit
Auf Grund dieser Forderungen sind „herkömmliche“ Multitasking-Betriebssysteme wie Unix
oder Windows in eingebetteten Systemen nur bedingt einsetzbar; es können keine
Antwortzeiten garantiert werden. Aus dem gleichen Grund verbieten sich z.B. Sprachen wie
Java mit automatischer Speicherbereinigung. Für eingebettete Systeme gibt es eine Reihe
spezialisierter Betriebssysteme (QNX, VxWorks, PikeOS, Coqos, OSEK, Embedded Linux,
WindowsCE), die für verschiedene Anwendungsdomänen optimiert sind.
oft für Regelungs- / Steuerungsaufgaben vorgesehen
Die Definition von „Steuerung“ und „Regelung“ wird später behandelt. Wichtig ist, dass
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 9




Regelungstheorie ein eigenes Fach im Rahmen des Maschinenbaus und der Elektrotechnik
ist; Informatiker haben hier oft nur rudimentäre Grundkenntnisse. Andererseits sind
Informatiker oft versierter in Fragen der Softwaretechnik als Ingenieure; daher folgt aus
dieser Eigenschaft, dass bei der Entwicklung eingebetteter Systeme Informatiker und
Ingenieure zusammenarbeiten müssen. Dies bewirkt oft Kommunikationsprobleme
häufig Massenware, Konsumgut, billig
Aus dieser Eigenschaft folgt ein hoher Kostendruck für die Produktion. Wir haben oben schon
gesehen, dass Optimierungen im Cent-Bereich ein Einsparpotential im 5- bis 6-stelligen
Bereich bieten. Andererseits bedeutet dies, dass man immer versuchen muss, mit den
absolut minimal notwendigen Ressourcen auszukommen (z.B. Verarbeitungsbreite, Energie);
daraus resultieren unter anderem Anforderungen an die zu verwendenden Algorithmen.
vielfach schlecht bzw. nicht wartbar und nicht erweiterbar
Diese Eigenschaft ist teilweise verbunden mit der vorhergehenden: In vielen Fällen sind für
massenhaft gefertigte eingebettete Systeme die Instandsetzungskosten höher als die
Produktionskosten, so dass sich eine Reparatur nicht lohnt. Bei Geräten wie
Waschmaschinen oder Kühlschränken ergeben sich hieraus Umweltbelastungen. Selbst wenn
sich die Reparatur lohnen würde, ist es oftmals nicht möglich (z.B. Raumsonde) oder
wirtschaftlich sehr aufwändig (z.B. Rückrufaktion bei Autos), die Software zu aktualisieren.
Ein Rückruf bzw. eine Garantieleistung kann leicht eine Firma ruinieren! Im Gegensatz zu
Desktop-Software ist es im Allgemeinen nicht möglich, eine Haftungsbeschränkung zu
vereinbaren und regelmäßig „Patches“ oder „Service Packs“ in das Gerät einzuspielen, alles
muss bereits bei der Auslieferung richtig funktionieren. Daraus ergeben sich Forderungen an
Entwicklungs- und Validierungsprozesse.
für viele unverzichtbar, manchmal auch sicherheitskritisch
Solange eine Technologie „neu“ ist, sind Kunden eher bereit, Ausfälle zu akzeptieren. Sobald
sie jedoch „selbstverständlich“ geworden ist, ergeben sich erhöhte Anforderungen an
Verlässlichkeit, Verfügbarkeit, und Instandhaltbarkeit (Reliability, Availability,
Maintainability). Dies gilt vermehrt in den Bereichen, in denen eingebettete Systeme
„klassische“ mechanische oder elektrische Lösungen ersetzen oder verbessern.
Bei sicherheitskritischen Systemen ist zudem die Ausfallsicherheit (Safety) ein
entscheidendes Kriterium. Diese wird meist durch Fehlertoleranz realisiert, wobei für
Hardware und Software unterschiedliche Fehlermodelle zugrunde gelegt werden müssen.
Man spricht von einer RAMS-Analyse, wenn die vier Bereiche gleichzeitig behandelt werden.
zunehmend auch vernetzt
Die Entwicklung ubiquitärer und cyber-physischer Systeme stellt neben den oben genannten
eine Reihe weiterer Herausforderungen an den Entwurfsprozess. Zu nennen sind hier
zunächst einmal Synchronisationsprobleme, die sich durch die parallele Ausführung der
miteinander kommunizierenden eingebetteten Systeme ergeben. Dann kann natürlich die
Kommunikation an sich ein Problem darstellen, wenn viele Teilnehmer über dünne bzw.
verrauschte Kanäle mit möglichst wenig Energie effizient und schnell einzelne Nachrichten
oder große Datenmengen austauschen wollen. Schließlich können sich durch die Tatsache,
dass der Zustand des Gesamtsystems von außen nicht ohne weiteres erkennbar ist, so
genannte Feature Interaction und Mode Confusion Probleme bei der Benutzung ergeben, die
im Voraus nur schlecht vorhersehbar sind. Für cyber-physische Systeme mit vielen
Komponenten, bei denen sich durch die Interaktion eine ganz neue Gesamtfunktion ergibt
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 10
(z.B. Sensornetze), sind die Fragen nach Spezifikation, Verifikation und Test weitgehend
ungelöst.
Realzeitsysteme
Ein kennzeichnendes Merkmal eingebetteter Systeme ist, dass sie „meistens Realzeitabhängigkeit“
sind. Natürlich gibt es eingebettete Systeme, die nicht realzeitabhängig sind (z.B. ein elektronischer
Schalter), und Realzeitsysteme, die nicht eingebettet sind (z.B. ein Streaming-Video –Player).
Trotzdem sind die beiden Begriffe „eingebettetes System“ und „Realzeitsystem“ so stark
überlappend, dass sie manchmal gleichgesetzt werden. Tatsächlich wurden bis vor einigen Jahren
Vorlesungen zu eingebetteten Systemen unter dem Titel „Realzeitsysteme“ angeboten! Doch
zunächst zur Definition des Begriffs „Realzeitsystem“: umgangssprachlich bedeutet „in Echtzeit“ oder
„echtzeitfähig“, dass die Transformation von Daten (Encoding oder Decoding) durch ein
Informatiksystem in derselben Geschwindigkeit wie der Dateneingang erfolgt. Im Allgemeinen ist
dies jedoch ein zu eng gefasster Begriff; zum Beispiel wollen wir eine Ampelsteuerung oder ein
elektronisches Bremssystem auch als Echtzeitsystem bezeichnen, obwohl sie so gut wie keine
Eingabedaten benötigen.
Ein Echtzeitsystem ist ein Informatiksystem, bei dem
nicht nur die korrekte, sondern auch die zeitgerechte
Erbringung der Funktion spezifiziert ist.
Dabei bedeutet „zeitgerecht“ nicht unbedingt „möglichst schnell“, sondern „innerhalb vorgegebener
Zeitschranken“. Im Beispiel einer Ampelsteuerung etwa: „Wenn der Knopf gedrückt wird, schaltet die
Ampel frühestens nach 10 Sekunden (damit Autos noch bremsen können) und spätestens nach 120
Sekunden (damit Fußgänger nicht ungeduldig werden).“ Die Spezifikation der Echtzeit erfolgt dabei in
Bezug auf eine äußere Uhr (die nicht Teil des Echtzeitsystems ist), z.B. die Atomuhr der physikalischtechnischen Bundesanstalt PTB in Braunschweig. Diese äußere Uhr dient zur Synchronisation
zwischen dem System und seinen Benutzern (nicht-relativistische Weltsicht).
DIN 443000 definiert den Echtzeitbetrieb eines Informatiksystems als „ein Betrieb eines
Rechensystems, bei dem Programme zur Verarbeitung anfallender Daten ständig betriebsbereit sind,
derart, dass die Verarbeitungsergebnisse innerhalb einer vorgegebenen Zeitspanne verfügbar sind.“
Die vorgegebene Zeitspanne bezieht sich hier auf die Spezifikation; der Echtzeitbetrieb eines
bezüglich seiner Spezifikation korrekten Programms bedeutet, dass die spezifizierten oberen und
unteren Schranken bei der Ausführung garantiert werden können.
Manchmal unterscheidet man zwischen „harten“ und „weichen“ Echtzeitanforderungen (hard real
time bzw. soft real time); harte Anforderungen sind solche, bei denen eine Verletzung einem
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 11
kompletten Funktionsausfall gleichkommt (z.B. Nichteinhaltung einer Abgabefrist für Hausaufgaben),
während bei weichen Anforderungen eine Verletzung lediglich eine Verminderung der Leistung
bedeutet (z.B. Klötzchenbildung im Videobild). Oft sind weiche Realzeitanforderungen als so
genannte „nichtfunktionale Eigenschaften“ formuliert (siehe nächstes Kapitel), z.B. „die
Übertragungsrate ist durchschnittlich x MB/s“.
Neben der oben genannten Ampelsteuerung ist ein weiteres typisches Beispiel für ein eingebettetes
System mit harten Echtzeitanforderungen ein Antiblockiersystem (ABS) im Auto. Die Zeitkritikalität
dieses Beispiels ist offensichtlich: Man möchte nicht, dass das System „irgendwann“ die Bremse löst
oder anpresst, sondern innerhalb fest vorgegebener unterer und oberer Schranken für die
verminderte Druckphase.
Der Echtzeitbetrieb eines Betriebssystems verbietet gewisse Freiheiten, die man im „Normalbetrieb“
in Anspruch nehmen kann. So ist es zum Beispiel nicht möglich, eine Speicherbereinigung (garbage
collection) durchzuführen, wenn der Speicher erschöpft ist, da die dafür benötigte Zeit schwer
abschätzbar ist. Daher werden für Echtzeitsysteme üblicherweise keine Sprachen (wir z.B. Java)
verwendet, bei denen dynamische Speicherbereinigung fest vorgesehen ist. Auch ist Multitasking nur
mit großer Vorsicht zu verwenden, da die Ausführungsgeschwindigkeit eines Prozesses stark von der
Last abhängt, die von quasi-parallel ausgeführten Prozessen erzeugt wird. Daher erlauben
Echtzeitbetriebssysteme Multitasking oft nur in sehr eingeschränkter Form. Schließlich ist selbst auf
der Ebene der Prozessoren nicht alles erlaubt, was man von Arbeitsplatzrechnern her gewohnt ist:
Zum Beispiel werden im Cache häufig benötigte Daten für einen schnelleren Zugriff vorgehalten, und
weniger oft benötigte Daten werden in langsamere Hintergrundspeicher ausgelagert. Wenn die
Strategie hierfür unbekannt ist, führt das zu einem nicht vorhersagbaren Echtzeitverhalten.
Hardware-Aufbau eines eingebetteten Systems
Prinzipiell interagiert ein eingebettetes System mit seiner Umgebung über Sensoren und Aktuatoren
(manchmal fälschlicherweise kurz als Aktoren bezeichnet). Sensoren kommunizieren über AnalogDigital-Wandler (AD) mit dem System, und Aktuatoren über Digital-Analog-Wandler (DA). Falls die
Aktuatoren eine hohe elektrische Leistungsaufnahme haben, sind hier entsprechende elektronische
Leistungsregler (etwa sogenannte H-Bridges oder Vierquadrantensteller) verbaut. Da Sensoren
immer „intelligenter“ werden, haben sie heute oftmals einen eigenen Prozessor integriert, der die
Messdaten vorverarbeitet und über digitale Schnittstellen (wie etwa den I2C-Bus) mit dem
eigentlichen eingebetteten System kommuniziert. Umgekehrt haben viele Motoren ihre eigenen
digitalen Motorsteuerungen und/oder integrierte Sensoren, und sind deshalb ebenfalls über digitale
Leitungen angeschlossen. Auf dem Bord selbst befinden sich der Prozessor und der Hauptspeicher.
Für eingebettete Systeme werden aus Kostengründen vielfach „kleine“ (8-16 Bit-) Prozessoren und
„kleine“ Speicher (8 KB-128 MB) verbaut. Der Speicher selbst besteht oft aus nichtflüchtigem EPROM,
in dem BIOS bzw. Betriebssystem abgelegt werden, und RAM-Speicher für Berechnungen. Manchmal
ist die Möglichkeit für Speichererweiterungen durch Flash-Karten oder andere Schnittstellen
vorgesehen. Fast immer sind eine oder mehrere Schnittstellen für verschiedene Bus-Systeme (z.B.
CAN, LIN, USB, …) und/oder drahtlose Kommunikation (WiFi, Bluetooth, IR, …) vorgesehen. Weitere
digitale Kommunikationsschnittstellen betreffen Displays und Monitoring-Ports. Schließlich ist das
eingebettete System mit Gehäuse und Stecker vom technischen System getrennt.
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 12
Eine detailliertere Beschreibung eingebetteter Hardware findet sich in einem späteren Kapitel.
Programmierung eingebetteter Systeme
Zur Programmierung eingebetteter Systeme wird üblicherweise ein Host-System (meist ein
Arbeitsplatzrechner oder Laptop) verwendet. Manchmal ist zusätzlich ein Interface-Modul
(„Programmer“) erforderlich, mit dem der Speicher des eingebetteten Systems beschrieben werden
kann. Die Software auf dem Host-Computer besteht üblicherweise aus einer IDE (integrierten
Entwicklungsumgebung) aus Editor, Compiler, Linker und Übertragungsmodul. Zur Programmierung
wird in der Praxis überwiegend die Sprache C verwendet, andere Sprachen kommen nur
ausnahmsweise zum Einsatz.
Die Software auf dem eingebetteten Gerät selbst (welches in diesem Zusammenhang als Zielsystem,
target bezeichnet wird), ist meist in einer Schichtenarchitektur angeordnet: Die unterste Schicht ist
das Betriebssystem (operating system, OS), welches von einer einfachen Befehlsschleife über
verschiedene Firmware-Varianten bis hin zu voll ausgewachsenen Realzeitbetriebssystemen (RTOS)
mit verschiedenen Treibern und Protokollstapeln reichen kann. Darauf aufbauend hat man oft eine
Hardware-Abstraktionsschicht (hardware abstraction layer, HAL), die den direkten Zugriff auf die
Hardware und Signale kapselt. Eine spezielle Treiber können die Schichtenarchitektur durchbrechen.
Die oberste Schicht besteht aus der Anwendungs-Software (application layer), in der die logische
Funktion des eingebetteten Systems realisiert wird.
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 13
2 System- und Anforderungsanalyse
In den frühen Phasen der Entwicklung eines eingebetteten Systems sind vor allem die Systemanalyse
(systems engineering) und die Anforderungsanalyse (requirements engineering) von Bedeutung. Die
Systemanalyse beschäftigt sich mit Entwurfs- und Konstruktionsprozesse komplexer Systeme, die
Anforderungsanalyse definiert Prozesse zur Anforderungserhebung, -verwaltung und –vernetzung.
Systemanalyse
Das Hauptproblem bei der Realisierung „großer“ technischer Systeme ist die wachsende Komplexität.
Die Systemanalyse ist eine Disziplin, die sich mit den Entwurfs- und Konstruktionsprozessen
komplexer Systeme beschäftigt. Der Gegenstandsbereich ist dabei nicht eingeschränkt auf
eingebettete Systeme oder Informatiksysteme; auch z.B. der Bau eines neuen Flughafens ist ein
Thema für die Systemanalyse. Die Systemanalyse soll dazu dienen, die Komplexität beherrschbar zu
machen. Eine wesentliche Herangehensweise dabei ist es, alle verschiedenen Aspekte zu
berücksichtigen, also sowohl technische als auch nichttechnische Gesichtspunkte wie
Nutzerverhalten, kaufmännische Aspekte, Betrieb, Verwaltung und Entsorgung des Systems.
Ursprünge der Verwendung von Methoden der Systemanalyse in der Softwaretechnik war der
Vergleich zum Vorgehen eines (Maschinenbau-)Ingenieurs, der zunächst einen Plan des zu
entwickelnden Systems auf Papier macht, diesen Plan dann analysiert, und erst dann das System
baut. Im Gegensatz dazu wurde und wird Software oft mit „trial-and-error“-Methoden entwickelt:
Man geht von gewissen Wunschvorstellungen aus, implementiert und testet einen Prototypen, und
ändert diesen dann solange, bis das Ergebnis zufriedenstellend ist. Diese Herangehensweise ist
insbesondere für eingebettete Systeme aus den im vorigen Kapitel besprochenen Gründen nicht
möglich. Die Systemanalyse beschäftigt sich mit der Frage, wie Anforderungen systematisch erfasst
und verwaltet werden und wie sie in den Entwurf einfließen. Der Hauptunterschied zu
herkömmlichen Vorgehensweisen ist die eine Betonung der Systemziele, die ständige Exploration
mehrerer Lösungswege, und die ganzheitliche Sicht auf Prozesse und Abläufe sowohl im Entwurf als
auch bei der Realisierung des Systems.
Systemanalyse ist der Prozess, ein komplexes System als Ganzes zu
verstehen, zu entwerfen und zu entwickeln (im Gegensatz zur
Komponentensicht). Wesentlich dafür ist die ganzheitliche Erfassung
der Anforderungen, insbesondere bezüglich Integration und Betrieb
des Systems im sozio-technischen Umfeld.
INCOSE1 definiert: “Systems engineering is an interdisciplinary approach and means to enable the
realization of successful systems. It focuses on defining customer needs and required functionality
early in the development cycle, documenting requirements, and then proceeding with design
synthesis and system validation while considering the complete problem: operations, cost and
schedule, performance, training and support, test, manufacturing, and disposal. Systems engineering
considers both the business and the technical needs of all customers with the goal of providing a
quality product that meets the user needs.”
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 14
Sommerville2 gibt eine Schichtenarchitektur der Abstraktions- oder Betrachtungsebenen von
(eingebetteten) Systemen: Die unterste Schicht ist die Hardware, auf der das System aufbaut. Dazu
gehören Prozessor, Speicher, Sensoren, usw. Die darüber liegende Abstraktionsebene betrachtet die
Plattform, das heißt, Hardware zusammen mit Betriebssystem und Middleware/HAL, Protokollstacks
usw. Darauf aufbauend folgt die Betrachtungsebene der Applikationen, die die Anwendungslogik
realisieren und Benutzungsschnittstellen bereit stellen. Als darüber liegende Schicht sind die
Prozesse (die technischen und organisatorischen Abläufe) zu verstehen, in die das System
eingebunden ist. Die oberste Schicht schließlich sind die Organisationen, innerhalb derer diese
Prozesse ausgeführt werden.
Die Softwaretechnik umfasst dabei überwiegend die Ebene der Applikationen, gegebenenfalls mit
den angrenzenden Ebenen der Plattformen und Prozesse. Eine ganzheitliche Sicht in der
Systemanalyse muss jedoch alle Ebenen mit berücksichtigen. Als Beispiel betrachten wir die
Entwicklung eines Herzschrittmachers: die reine Hardware besteht aus einem Pulsgeber mit
Elektrode, wobei man sich Gedanken über Material, Gehäuse, Batterielebensdauer, Fehlertoleranz
und so weiter machen muss. Beim Entwurf der Plattform ist über Betriebssystem und Architektur zu
entscheiden. Auf der Applikationsebene muss die Software, die den Schrittmacher betreibt und die
Kommunikation mit dem behandelnden Arzt durchführt, realisiert werden. Dazu sind unter anderem
Prozesse wie Implantation, medizinische Nachsorge und Langzeitdiagnose zu berücksichtigen. Diese
Prozesse werden in Organisationen wie dem Krankenhaus oder beim behandelnden Hausarzt
durchgeführt. Ohne gewisse Kenntnisse der gesamten Hierarchie kann ein großes Projekt nicht zum
Erfolg geführt werden: Beispielsweise ist es nötig, zu verstehen, wie die Patientenverwaltung im
Krankenhaus funktioniert, wenn man eine Exportschnittstelle für Datenlogging des Schrittmachers
erstellen will.
ISO 15288:2008 nennt die folgenden Prozesse, die bei der Systemanalyse behandelt werden müssen.
2
Ian Sommerville, Software Engineering. 9. Aufl. 2012, Pearson-Verlag, ISBN: 978-3-8689-4099-2
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 15
Jedes System hat einen Lebenszyklus, der grob in die Phasen Konzeptentwurf, Entwicklung,
Produktion, Einsatz und Entsorgung eingeteilt werden kann. Der Aufwand für die Systemanalyse,
eingeteilt nach den verschiedenen Prozessgruppen, kann nach INCOSE wie folgt angegeben werden:
Das bedeutet konkret, dass kein Prozess während der Entwicklung „abgeschlossen“ ist und beendet
werden kann; alle Prozesse sind während der Systementwicklung (mit wechselndem Aufwand) zu
betreiben! Systemanalyse ist demnach also ein Entwicklungs- bzw. Lebenslauf-begleitender Vorgang.
Insbesondere wendet sich diese Auffassung gegen Wasserfall- und V-Modell-artige
Vorgehensmodelle, bei denen eine Phase beendet wird bevor die nächste beginnt, und entspricht
daher viel eher den in der Praxis häufig anzutreffenden Vorgehensweisen.
Für jeden der oben genannten Prozesse ist im „INCOSE Systems Engineering Handbook“ 1 eine
detaillierte, standardisierte Beschreibung zu finden. Sie besteht aus der Definition der Aktivitäten, die
für diesen Prozess durchzuführen sind, den dafür nötigen Eingaben, den Ergebnissen, sowie
Randbedingungen die den Prozess unterstützen oder einschränken. Als Beispiel betrachten wir die
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 16
Prozesse „Stakeholder Requirements Definition“ (auf Deutsch etwa: Lastenhefterstellung) und
(weiter unten) „Requirements Analysis“ (auf Deutsch etwa: Pflichtenhefterstellung).
Eingangsdaten für den Prozess der Lastenhefterstellung sind alle allgemeinen Quellen, die für das zu
entwickelnde System oder vergleichbare Systeme zur Verfügung stehen, projektbezogene
Rahmenbedingungen festlegen, und vor allem die Erfordernisse der „Stakeholder“. Auf Deutsch nur
unzulänglich mit „Akteure“ oder „Interessentengruppen“ übersetzt, sind dies alle Personen oder
Organisationen, die direkt oder indirekt mit dem System zu tun haben („any entity (individual or
organization) with a legitimate interest in the system“).
Im Beispiel „Herzschrittmacher“ sind dies etwa:
Patient, Chirurg, behandelnder Arzt, Pflegepersonal, Klinik, Entwicklungs- und
Herstellungsfirma, Zulieferer, Wartungstechniker, Notfallambulanz, TÜV,
und gegebenenfalls weitere.
Wir betrachten die Personen, die mit der Entwicklung des Systems befasst sind (Systemdesigner,
Entwickler SW/HW, Tester, Systemintegrator, Manualschreiber, Softwarewartung, Management,
Einkaufsabteilung, Buchhaltung, ...), nicht als Akteure in diesem Sinne (siehe weiter unten,
Pflichtenheft bzw. Systemanforderungen).
Eine wesentliche Aktivität bei der Lastenhefterstellung besteht darin, diese Erfordernisse in einem
Lastenheft schriftlich zu erfassen. Oft geschieht dies im Rahmen einer Vorstudie, oder durch
Workshops und Interviews mit den Beteiligten. Wichtig ist dabei, alle Akteure/Stakeholder mit zu
beteiligen! Das Lastenheft ist eine Beschreibung der durch das System bereitgestellten Dienste und
operationalen Randbedingungen; in der Sprache der Akteure verfasst und für diese verständlich; in
vielen Fällen ist es die Grundlage für Auftragserteilung! DIN 69901-5 definiert das Lastenheft als „die
vom Auftraggeber festgelegte Gesamtheit der Forderungen an die Lieferungen und Leistungen eines
Auftragnehmers innerhalb eines Auftrages“. Das Lastenheft wird oft auch als
Anforderungsspezifikation (requirements specification oder user requirements specification bzw.
stakeholder requirements specification) bezeichnet. Es ist das für die Systementwicklung wesentliche
Dokument und beschreibt das System in seiner Gesamtheit, aus Sicht der Stakeholder. Üblicherweise
ist das Lastenheft ein Textdokument von 50-500 Seiten, das oft wie folgt aufgebaut ist:
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 17
1.
2.
3.
4.
5.
6.
7.
8.
9.
Titel, Dokumentenname und –ID, Verfasser, Freigabe, usw.
Änderungshistorie, Inhalts-, Abbildungs- und Tabellenverzeichnis
vorgesehener Leserkreis, Abstrakt, Dokumentenwartung
Verzeichnis von Abkürzungen, Definitionen und Fachbegriffen
Sicherheitsanforderungen und relevante Standards
System- und Schnittstellenübersicht, Nutzungsbeschreibungen
Funktionale Anforderungen
Nichtfunktionale Anforderungen
Indices und Anhänge
Für eingebettete Systeme gibt es einige besondere Anforderungen, die im Lastenheft vermerkt sein
sollten. Da das Informatiksystem Teil eines technischen Systems ist, muss die physikalische
Umgebung zu einem gewissen Teil mit spezifiziert werden. Zum Einen heißt das, dass spezielle
operationale Randbedingungen, z.B. erlaubte Betriebstemperaturen, Beschleunigungswerte,
zulässige Sensorbereiche usw., angegeben werden müssen. Zum Anderen bedeutet es, dass auch die
physikalischen Gegebenheiten des eingebetteten Systems selbst Teil der Spezifikation sind: geplante
Abmessungen, Formfaktor, zu verwendende Stecker und Buchsen usw. Die Spezifikation eines
eingebetteten Systems bezieht sich, anders als eine reine Softwarespezifikation, auf das gesamte
technische System, mit Software und Hardware des eingebetteten Informatiksystems. So müssen
eventuelle Kosten- oder Leistungsbeschränkungen, etwa bezüglich des zu verwendenden Prozessors
oder der Prozessorfamilie, der zu verwendender Architektur, dem maximalem Speicherausbau usw.
im Lastenheft angegeben werden. Auch Randbedingungen zur Sensorik und Aktuatorik sind
anzugeben: zum Beispiel die zulässigen Toleranzbereiche, erlaubten Mess- und Regelabweichungen,
Leistungsgrenzen usw. Wichtig ist, dass im Lastenheft noch keine Festlegung auf eine spezifische
technische Lösung stattfindet; dies ist späteren Entwicklungsstufen vorbehalten.
Meist ist im Lastenheft auch ein domänenspezifischer Teil zu finden: ein Verzeichnis der
verwendeten Fachbegriffe, der anzuwendenden Normen und Standards, einzuhaltenden
gesetzlichen Vorschriften usw. Falls das System Teil einer Produktfamilie ist, wird dieser Teil
allerdings oftmals als generisches Dokument ausgelagert und im Lastenheft durch eine Referenz
ersetzt.
Da eingebettete Systeme oft für Steuerungs- und Regelungszwecke vorgesehen sind, ist im
Lastenheft die realisierte Funktion als Regelkreis oder Schaltfunktion beschrieben. Auch hier ist es
wichtig, bei der Erstellung des Lastenheftes darauf zu achten, nur die Funktion, nicht jedoch die
Realisierung der Funktion zu definieren. Üblicherweise besteht die Funktion aus kontinuierlichen
und diskreten Anteilen, etwa dem Analysieren der Herzfrequenz und dem Auslösen eines
elektrischen Pulses zum Stimulieren des Herzens. Formale Methoden zur Beschreibung solcher
Funktionen werden in den nächsten Kapiteln behandelt.
Oft werden Anforderungen in funktionale und nichtfunktionale Anforderungen aufgeteilt;
funktionale Anforderungen betreffen die vom System zu erbringende Funktion, und nichtfunktionale
Anforderungen sind alle anderen. Funktionale Anforderungen beschreiben die Dienste des Systems,
wie es auf bestimmte Eingaben reagiert oder sich in bestimmten Situationen verhält (zum Beispiel:
was passiert wenn ein bestimmter Knopf gedrückt wird). Die Formulierung hängt dabei ab von der zu
erwartenden Nutzung und dem Einsatzbereich des Systems; wichtig ist im Lastenheft, eine
Außensicht (Black-box-view) auf das System einzunehmen. Nicht-funktionale Anforderungen
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 18
beschreiben Randbedingungen für die Dienste, zum Beispiel zeitliche Einschränkungen,
Entwicklungseinschränkungen, usw. Sie betreffen z.B. Lebensdauer oder Leistung des Systems. Es ist
umstritten ob es überhaupt nicht-funktionale Anforderungen gibt, oder ob es nicht lediglich
unterspezifizierte die Funktion betreffende Anforderungen sind. Manchmal separiert man eine dritte
Klasse von Anforderungen, nämlich die Domänen-Anforderungen. Das sind allgemeine
Anforderungen für alle Systeme einer bestimmten Anwendungsdomäne (Medizintechnik,
Schienenverkehr, Automotive usw.). Domänen-Anforderungen sind z.B. anwendbare Standards der
Domäne, oder die Indikationen und Kontraindikationen eines medizinischen Gerätes.
Fallstudie Herzschrittmacher
Als Beispiel für eine Anforderungsspezifikation soll in diesem Skript die „PACEMAKER System
Specification“ der Fa. Boston Scientific dienen3. Oftmals sind Lastenhefte streng vertrauliche
Dokumente, die zu den am besten gehüteten Geheimnissen eines Unternehmens gehören. Dieses
Dokument wurde zu akademischen Zwecken vom Ersteller freigegeben und entspricht dem Stand der
Technik auf dem Gebiet der Systemanalyse. Diese und weitere öffentlich freigegebene textuelle
Anforderungsspezifikationen sind auf den Seiten des Projektes NLRPBench zu finden4.
Um das Dokument zu verstehen, sind zunächst rudimentäre Kenntnisse des Anwendungsgebiets
„Herzschrittmacher“ erforderlich. Wir beschränken uns hier auf das Wesentliche; eine
tiefergreifende Domänenanalyse übersteigt den Rahmen dieses Skripts.
Das menschliche Herz ist der “Motor” des kardiovaskulären Systems. Es besteht aus zwei Teilen
(rechte und linke Seite des Herzens) für den Lungenkreislauf (rechte Seite) und den Körperkreislauf
(linke Seite des Herzens). Jede Seite des Herzens besteht aus Vorhof (Atrium) und Kammer
(Ventrikel), wobei das Herz als doppelte Pumpe wirkt, bei der beide Teile synchronisiert sind. Wir
skizzieren kurz den Ablauf eines Herzschlags:




Anfangs sind die Muskeln entspannt und das Blut fließt in die beiden Atria.
Dann ziehen sich die Atria zusammen und pressen das Blut in die Ventrikel.
Danach kontrahieren sich die Ventrikel und das Blut fließt in die Lunge bzw. den Körper.
Schließlich entspannen sich die Muskeln wieder und der Zyklus beginnt von vorn.
Kardiovaskuläre Krankheiten sind eine der Haupt-Todesursachen weltweit. Es gibt verschiedene
Formen von Rhythmusstörungen:




Bradykardie: das Herz schlägt zu langsam
Tachykardie: das Herz schlägt zu schnell
Flimmern (Fibrillation): das Herz schlägt unregelmäßig
Stillstand: das Herz schlägt überhaupt nicht mehr
Das Herz schlägt, indem elektrische Impulse vom Sinusknoten (im Atrium) generiert und durch den
Atrioventrikularknoten (AV-Knoten, im Ventrikel) propagiert werden; diese verursachen das
Zusammenziehen der Herzmuskeln Zur Therapie chronische Herzerkrankungen können beide Knoten
3
PACEMAKER System Specification, Boston Scientific 2007,
http://sqrl.mcmaster.ca/_SQRLDocuments/PACEMAKER.pdf
4
http://nlrp.ipd.kit.edu/index.php/Main_Page
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 19
auch künstlich (durch elektrische Impulse) stimuliert werden. Diese Entdeckung (in den 1920-er
Jahren) führte in den 1930-er Jahren zu den ersten Herzschrittmachern; dies waren externe Geräte
mit implantierten Elektroden. Natürlich ergibt sich an der Durchgangsstelle durch die Haut eine
permanente Infektionsgefahr. Der erste voll-implantierbare Schrittmacher wurde 1958 bei Patienten
eingesetzt; er bestand aus einem Kondensator mit zwei Transistoren
und einer Energiequelle (Akku oder Batterie), die einen regelmäßigen Puls auslösten. Das Ganze war
in Dosenform mit Gießharz versiegelt. Es ergaben sich folgende Probleme:
1. Die ursprünglich verwendeten Batterien hatten nur eine vergleichsweise kurze
Lebensdauer (Wochen bis Monate), was ständige Neuoperationen erforderlich machte.
Zur Verbesserung der Energieversorgung wurde daher in den 1960-er Jahren unter
anderem mit Plutoniumbatterien experimentiert; diese halten zwar bis zu 40 und mehr
Jahre, sind aber sehr umweltschädlich. Heute werden Lithium-Verbindungen als
Energieträger verwendet. Auf Grund verbesserter elektronischer Komponenten ist die
aktuelle Batteriekapazität ausreichend für 5-8 Jahre, welches in etwa der Lebensdauer
der Steuereinheit entspricht. Das Problem kann daher momentan als gelöst betrachtet
werden.
2. Die einfache Transistorschaltung erzeugt einen gleichmäßigen Puls. Gleichmäßige
Stimulation kann zu Herzflimmern führen (“Schrittmacherkrankheit”), falls der künstliche
Impuls dem natürlichen zuwider läuft. Die entscheidende Idee zur Lösung dieses
Problems war, dass die Elektroden auch als Sensoren genutzt werden können, um die im
Sinusknoten bzw. AV-Knoten erzeugte natürliche Elektrizität zu messen. Natürlich ist eine
Regelelektronik erforderlich, um den Aktuator (Elektrode zur Stimulierung) vom Sensor
(Elektrode als Messfühler) abhängig zu machen. Durch die Fortschritte im Bereich der
Mikroelektronik und eingebetteten Systeme ist auch dieses Problem inzwischen
überwunden.
Die Hauptprobleme der ursprünglichen Schrittmacher sind also gelöst, was dazu geführt hat, das
Herzschrittmacher inzwischen eine Standardtechnik darstellen. Heutzutage werden weltweit jährlich
mehr als 500.000 Schrittmacher implantiert. Natürlich bedeutet das nicht, dass die Entwicklung
stehenbleibt und die Funktionalität nicht mehr verbessert werden kann. Die Hauptfunktionalität
eines Schrittmachers ist es, einen Puls auszulösen dann und nur dann, wenn es nötig ist. Die
Definition, wann ein Puls erforderlich ist, ist von vielen Faktoren, unter anderem vom Fortschreiten
der medizinischen Erkenntnis, abhängig. Zum Beispiel können moderne Schrittmacher mit
Beschleunigungssensoren die sportliche Aktivität des Patienten messen und die Pulsrate
entsprechend adaptieren. Durch minimale Verzögerungen oder Verkürzungen der Pulsrate kann
zudem die Herzmuskulatur trainiert werden, so dass bestimmte Herzerkrankungen mit
Schrittmachern therapiert werden können. Wenn die Elektroden entsprechend angeordnet sind,
kann das Gerät eine Neusynchronisierung und verbesserte Synchronisierung zwischen linker und
rechter Herzhälfte herbeiführen. Durch eingebaute Kommunikationsschnittstellen kann das Gerät die
Elektrode nutzen, um ein vollständiges EKG (Elektrokardiogramm) des Patienten zu erstellen.
Aktuelle Trends bei der Entwicklung neuer Generationen von Schrittmachern betreffen die
Integration von weiteren Funktionen, zum Beispiel die Integration von implantierbaren
Defibrillatoren und Schrittmachern (ICDs). Zur Lösung mechanischer Probleme mit den Elektroden,
die etwa 20% der Patienten betreffen, erforscht man die Möglichkeit drahtloser intrakardialer
Schrittmacher (direkt im Herz implantiert), oder außerhalb vom Brustkorb implantierter subkutaner
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 20
Kardioverter-Defibrillatoren. Ein hochaktuelles Gebiet ist außerdem die telemedizinische
Überwachung, Diagnose und Nachsorge von Schrittmacher-Patienten.
Das von Boston Scientific verfügbar gemachte Spezifikationsdokument beschreibt das Gesamtsystem
als aus drei Komponenten bestehend:




Puls-Generator (PG)
-
Steuer-Elektronik
-
Energieversorgung (Lithium-Iodine)
-
Titangehäuse, implantiert in der rechten Brust
-
Beschleunigungssensor (Accelerometer)
Elektroden (Leads)
-
ein oder zwei Elektroden (atrial / ventrikulär)
-
Standard- Steckverbindung (PG-Wechsel!)
-
Durch eine Vene ins Herz geführt
Externer Device Controller Monitor (DCM)
-
Für Programmier- und Diagnosezwecke
-
Separates Gerät, zum Setzen und Anpassen der
Parameter durch den behandelnden Arzt
Ringmagnet (donut-shaped magnet)
für Notfallzwecke
Stimulationsmodi (Pacing Modes)
•
Z.B. Typ DDDR, VDDR, DDIR, D00R, AAIR, D00, V00, VVI, VVT, ...

•
X = “don’t care”; DXXX sind Zweikammermodi, 0X0 sind reine Diagnosemodi etc.
Triggered: Puls wird generiert wenn Herzaktivität gemessen wird
(um den natürlichen Impuls zu verstärken)
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 21
•
Inhibited: Puls wird unterdrückt wenn Herzaktivität gemessen wird
(um Interferenz mit dem natürlichen Stimulus zu vermeiden);
d.h., Puls wird nur dann generiert wenn keine Herzaktivität gemessen wird
•
Tracked (D): gemessene atriale Aktivität löst nach definierter Verzögerungszeit (AV delay)
einen ventrikulären Puls aus
•
Rate modulation: dynamische Adaption der Pulsrate an die sportlichen Aktivitäten des
Patienten (nur im Modell DR1 verfügbar)
•
Multisite: kann mehrere Stellen innerhalb der gewählten Kammer stimulieren (n.a.)
Beispiel-Modi
•
•
•
VVIR

Nur eine Elektrode nötig

Puls nach Bedarf: falls genügend Eigenaktivität vorhanden, keine Stimulation; falls
die ventrikuläre Aktivität ausbleibt, wird ein Puls generiert

Nachdem eine Aktivität gemessen wurde oder ein Puls generiert wurde, löst der
Schrittmacher nach einer festgelegten Zeit einen Puls aus, falls bis dahin keine
Aktivität gemessen werden kann

Die Zeit zwischen zwei Pulsen wird durch die Werte des Beschleunigungssensors
beeinflusst
DDD

Ständige Überwachung von Atrium und Ventrikel

Falls eine erwartete atriale Aktivität ausbleibt, wird ein Puls im Atrium ausgelöst

Nachdem eine Aktivität im Atrium gemessen oder stimuliert wurde, wird nach einer
festgelegten Zeit (AV delay) ein ventrikulärer Puls ausgelöst, falls bis dahin keine
vertrikuläre Aktivität gemessen werden konnte

also: eine Aktivität im Atrium oder Ventrikel verhindert die Stimulation; eine
gemessene Vorhofaktivität löst einen Puls im Ventrikel aus
Sonderfälle: Atriale Tachykardie-Reaktion

Falls eine unakzeptabel hohe Aktivitätsrate im Atrium erkannt wird, muss die
Stimulation vorübergehend eingestellt werden
Relevante Parameter im PG
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 22
Lebenszyklus und Betriebsmodi
Permanent: normale Betriebsart; die eingestellten Parameter werden verwendet
Temporary: zu Testzwecken; alle Parameter können vom Arzt (innerhalb vorgegebener Grenzen)
beliebig gesetzt und ausprobiert werden
Pace-Now: kommandierter Notbetrieb; ein fester Modus und feste Standardparameter werden
verwendet
Power-on Reset: bei nachlassender Spannung; auch „sicherer” Betriebszustand wenn die Spannung
sich wieder erhöht
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 23
Magnet: ähnlich wie „Pace-Now“, aber durch Notfallambulanz durch einen externen Magneten
ausgelöst (bei Elektroschock oder Herzflimmern); keine Messung mehr, aber die Pulsrate kann durch
den Batteriestatus beeinflusst werden
Anforderungen (Boston Scientific)
5.7 Rate-Adaptive Pacing
The device shall have the ability to adjust the cardiac cycle in response to metabolic need as
measured from body motion using an accelerometer.
5.7.1 Maximum Sensor Rate (MSR)
The Maximum Sensor Rate is the maximum pacing rate allowed as a result of sensor control.
The Maximum Sensor Rate shall be
1. Required for rate adaptive modes
2. Independently programmable from the URL
5.7.2 Activity Threshold
The activity threshold is the value the accelerometer sensor output shall exceed before the
pacemaker’s rate is affected by activity data.
5.7.3 Response Factor
The accelerometer shall determine the pacing rate that occurs at various levels of steady
state patient activity. Based on equivalent patient activity:
1. The highest response factor setting (16) shall
allow the greatest incremental change in rate.
2. The lowest response factor setting (1) shall
allow a smaller change in rate.
5.7.4 Reaction Time
The accelerometer shall determine the rate of increase of the pacing rate. The reaction time
is the time required for an activity to drive the rate from LRL to MSR.
5.7.5 Recovery Time
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 24
The accelerometer shall determine the rate of decrease of the pacing rate. The recovery time
shall be the time required for the rate to fall from MSR to LRL when activity falls below the activity
threshold.
Anforderungsanalyse
Analyse der (Nutzer / Stakeholder-) Anforderungen und Umformung in Entwickler-Sicht
Anforderungsdefinition
Siehe auch Sommerville ch2.ppt Sozio-technische Systeme
Im Gegensatz zum oben beschriebenen Lastenheft, welches das „was“ aus Sicht der Anwender
definiert, beschreibt das Pflichtenheft das „wie“ aus Sicht der Entwickler. Die schon oben genannte
DIN 69901-5 definiert das Pflichtenheft als „die vom Auftragnehmer erarbeiteten
Realisierungsvorgaben aufgrund der Umsetzung des vom Auftraggeber vorgegebenen Lastenhefts“.
Das Pflichtenheft wird oft auch als Systemspezifikation (system specification oder system
requirements specification) bezeichnet; allerdings ergibt sich dadurch die Gefahr der Konfusion mit
der oben genannten Anforderungsspezifikation (user requirements specification). Auch Begriffe wie
Fachkonzept u.ä. sind gebräuchlich.
INCOSE: „The purpose of the Requirements Analysis Process is to transform the stakeholder,
requirement-driven view of desired services into a technical view of a required product that could
deliver those services.”
DIN 69901-5: Pflichtenheft = „die vom Auftragnehmer erarbeiteten Realisierungsvorgaben aufgrund
der Umsetzung des vom Auftraggeber vorgegebenen Lastenhefts“
Systemspezifikation (System Specification, System Requirements Specification): beschreibt das
System aus der Innensicht
Keine Festlegung auf spezifische Lösungswege, aber Definition interner Parameter und Schnittstellen
Funktionen und externe funktionale Schnittstellen des Gesamtsystems
Grundlage für die Systementwicklung
Pflichtenhefterstellung
Iterative und rekursive Vorgehensweise
Strukturierung und Verlinkung von Anforderungen
Benennung von Evaluationskriterien (Measures of Performance)
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 25
Eigenschaften von Anforderungen
•
verständlich

•
•
eindeutig

kein Interpretationsspielraum, präzise

aber nicht notwendigerweise: nur auf eine Art implementierbar!
verifizierbar/testbar

•
•
warum ist die Anforderung vorhanden, ist sie notwendig?
konsistent

keine Widersprüche zu anderen Anforderungen

realisierbar, d.h. nicht in sich widersprüchlich
abstrakt

•
wie kann die korrekte Implementierung festgestellt werden?
nachvollziehbar

•
von allen Akteuren (nicht nur den Entwicklern) lesbar, klar
keine unzulässige Einschränkung des Implementierungsraumes
adaptierbar

kann ggf. erweitert, ersetzt oder gelöscht werden
Gängige Probleme in Spezifikationen
Mangelnde Klarheit
•
•
Mangelnde Klarheit

Präzision versus Lesbarkeit

shall / will / must / should / is to / ought to / …
Konfusion

•
Amalgamation

•
Vermischung funktionaler und nichtfunktionaler Anforderungen
Vermischung verschiedener Belange in einer Anforderung
Ambiguität
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 26

•
Überspezifikation

•
Selber Sachverhalt mehrfach beschrieben
Unterspezifikation

•
Verschiedene Interpretationsmöglichkeiten
Sachverhalte unvollständig oder gar nicht beschrieben
Mangelnde Modularisierung

Strukturierung in Prosa ist schwierig
Traceability (Verfolgbarkeit)
•
Wichtigste Eigenschaft an Spezifikationen
(neben Konsistenz & Vollständigkeit)
•
Anforderungen können ohne Bezüge nicht sinnvoll verwaltet werden!
•
Verfolgbar bedeutet, dass die folgenden Informationen da sind

wer die Anforderung aufgestellt hat (Bezug zu Stakeholder)

warum die Anforderung existiert (Bezug zu Lastenheft)

welche anderen Anforderungen damit zusammenhängen (Querbezüge)

wie die Anforderung weiter verwendet wird in
-
Systementwurf / Architektur,
-
Implementierung / Code,
-
Test / Testfälle, und
-
Dokumentation
****************************************************
Erstellen von Spezifikationen
•
Standardformat verwenden
•
Konsistente Sprache

e.g. shall for mandatory requirements, should for desirable requirements

avoid the use of technical terms; if necessary, define them

avoid constants (use identifiers with a table of values)

formulate as precisely as possible
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 27
•
Structure the requirements clearly

identify key parts, derived requirements,
implementation issues

baumartige Strukturierung
•
Use diagrams and semi-formal notations as much as possible
•
Use tools to enhance consistency
Requirements Properties
•
Verifiability / Testability

•
Comprehensibility

•
is the requirement properly understood by all stakeholders, or is there imprecision,
vagueness, source of confusion?
Purposefulness

•
is it clear whether the requirement is implemented or not?
Can this realistically be tested? Test result clear?
is the origin and intention of the requirement stated?
Why is the requirement necessary?
Adaptability

Is the scope of the requirement well-defined?
Can it be changed without a large impact on other requirements? What are the
consequences of a change?
Aufgaben bei der Anforderungsanalyse
•
Requirements elicitation

•
Requirements recording

•
grouping and documenting the requirements in a designated form, such as naturallanguage sentences,
use cases, user stories, or process specifications
Requirements analysis

•
communicating with customers and users to determine what their requirements are
determining whether the stated requirements are clear, complete, unambiguous,
and consistent
Requirements tracing
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 28

linking the requirements to other design artifacts such as code fragments and test
cases
What can be tool supported
•
Requirements definition and elicitation

•
•
•
check lists, tables, templates, …, import functionaity
Requirements recording, documentation and reporting

interaction to word processing and document generation

models, use cases, use case validator
Requirements analysis, verification and validation

refinement, model checking & transformation, consistency

mostly academic methods
Requirements tracing

classification, prioritization, selection possibilities

description, stakeholders, effort estimations

linking, integration with other tools

configuration/change control, history

requirements reuse / software product lines
Howto zur Formulierung von Anforderungen
****************************************************
Funktionalität von RM Tools
•
•
Kernfunktionalität: Datenbank
(jede Anforderung ist ein Eintrag)

Sammlung und Speicherung,

Versionierung und Verwaltung,

Verlinkung
Zusätzliche Funktionalität

Versionsmanagement (e.g. CVS)

Konfigurationsmanagement (e.g. configurator)
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 29

•
•
Groupware (CSCW, Task lists usw.)
Anforderungserhebungshilfe

Checklisten, Tabellen, Schablonen, …, Importfunktionen

Interaktion zu Texteditoren und Dokumentgenerierungssystemen

Interaktion zu Modellierungswerkzeugen
Validierungshilfe

Formalisierung, Transformation & Verfeinerung, Modellprüfung, …
Requirements Engineering – Tools
•
Industriestandard:
DOORS®

•
3-8K€/Lizenz
Open Source Varianten
verfügbar
+ Bemerkungen von Copreci
Polarion Requirements / ALM
Ausarbeiten
Pohl5 klassifiziert drei Arten von Artefakten: Ziele, Szenarien und Lösungsorientierte Anforderungen
(Strategien)
Fabrice Kordon, Jerome Hugues, Agusti Canals, Alain Dohet: Embedded Systems - Analysis and
Modeling with SysML, UML and AADL. ISBN: 978-1-84821-500-9 Wiley-ISTE, 320 pages (April 2013)
5
W. Pohl, Requirements Engineering: Grundlagen, Prinzipien, Techniken. Springer 2007
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 30
3 Modellierung
Ein Ansatz, die Software-technischen Herausforderungen bei der Erstellung und Absicherung
eingebetteter Software zu meistern, ist die modellbasierte Entwicklung. Bei diesem
Entwicklungsparadima werden unterschiedliche Phasen des Software-Entwicklungsprozesses durch
verschiedenartige Modelle unterstützt. Die Veranstaltung führt in die verschiedenen Aspekte der
modellbasierten Entwicklung eingebetteter Software ein. Themen sind neben der Formulierung von
Anforderungen und Methoden der Modellierung auch Modelltransformationen sowie Code- und
Testgenerierung. Es werden Modellierungssprachen und -werkzeuge vorgestellt, die in der
industriellen Praxis weite Verbreitung erlangt haben. In den begleitenden Übungen werden Beispiele
typischer Steuerfunktionalitäten und ihre Umsetzung in eingebetteten Systemen behandelt und von
den Teilnehmern vorgestellt.
3.1 Systemmodellierung (SysML)
3.2 Kontinuierliche Modellierung (Simulink / Scilab)
3.3 Diskrete Modellierung (UML)
4 Codegenerierung und Modelltransformation
5 Hardware für eingebettete Systeme
6 Sicherheit
6.1 Funktionale Sicherheit
6.2 Fehlertoleranzkonzepte
6.3 Werkzeugqualifikation
7 Validierung
7.1 Modellbasierter Test
7.2 Verifikation und statische Analyse
8 Spezielle Domänen
8.1 Automotive Software Engineering
8.2 Medizintechnik
8.3 Automatisierungstechnik, Robotik
Prof. Dr. H. Schlingloff, Modellbasierte Software-Entwicklung eingebetteter Systeme
Seite 31
Herunterladen