Book description
Software ist der Rohstoff des Digitalen Zeitalters. Nur wer den Umgang mit diesem Rohstoff beherrscht, wird auch in Zukunft marktfähige Systeme entwickeln können. Themen wie IoT und Industrie 4.0 beschleunigen diesen Trend. Die modellgetriebene Entwicklung (MDSE) bietet einen entscheidenden Beitrag, dieser Herausforderung erfolgreich zu begegnen.Das Buch beschreibt den effektiven Einsatz der MDSE von den Anforderungen über die Architektur bis zum Design, der Codegenerierung und dem Testen. Für jede Phase werden Paradigmen, Methoden, Techniken und Werkzeuge beschrieben, wobei die praktische Anwendung im Vordergrund steht.Der Leser lernt, wie ein modellbasiertes Vorgehen nutzbringend in der Praxis für die Entwicklung eines eingebetteten Systems eingesetzt wird. Das Vorgehen wird unabhängig von Modellierungswerkzeugen dargestellt und derart, dass der Leser es leicht in seinem Umfeld einsetzen kann. Darüber hinaus werden Beispiele exemplarisch auch auf Basis konkreter Werkzeuge aufgezeigt.Im Anhang befinden sich das MDSE-Reifegradmodell, eine UML-Kurzreferenz, ein Glossar sowie ein Überblick zu Modellierungswerkzeugen.
Table of contents
- Cover
- Titel
- Impressum
- Vorwort
- Inhaltsübersicht
- Inhaltsverzeichnis
-
1 Einleitung
- 1.1 Warum gerade jetzt dieses Buch?
- 1.2 Wie sollte man dieses Buch lesen?
- 1.3 Was ist an eingebetteten Systemen so besonders?
- 1.4 Wie sieht das typische Zielsystem aus?
- 1.5 Fallbeispiele
- 1.5.1 Die Anlagensteuerung
- 1.5.2 Die Baumaschine
- 1.5.3 Das Energie-Monitoring-System
- 1.5.4 Das Beispielsystem SimLine
- 1.6 Das Manifest
-
2 Basiswissen
- 2.1 Was sind eingebettete Systeme?
- 2.2 Software Engineering für eingebettete Systeme
- 2.3 Der Qualitätsbegriff
- 2.3.1 Externe Qualität
- 2.3.2 Interne Qualität
- 2.3.3 Qualitätskriterien nach ISO/IEC 25010
- 2.4 Einführung in Model-Driven Software Engineering
- 2.5 Komplexität
- 2.6 Unser Gehirn als Engpass
- 2.7 Vorgehensweisen und Techniken, um einer steigenden Komplexität zu begegnen
- 2.8 Komplexen Systemen lässt sich nicht mit simplen Methoden begegnen
- 2.9 Verstehbarkeit und Redundanz
- 2.10 Was ist ein Modell?
- 2.11 Modelle helfen, die Zukunft vorwegzunehmen?
- 2.12 Modelle helfen zu abstrahieren?
- 2.13 Resümee: Nutzen von MDSE?
-
3 Modellbasierte Softwareprozesse und Toollandschaften
- 3.1 Klassifikation von Modellierungswerkzeugen
- 3.1.1 Modellierungswerkzeuge der Kategorie A (universelle Malwerkzeuge)
- 3.1.2 Modellierungswerkzeuge der Kategorie B (spezialisierte Malwerkzeuge)
- 3.1.3 Modellierungswerkzeuge der Kategorie C (einfache Modellierungswerkzeuge mit Modelldatenbank)
- 3.1.4 Modellierungswerkzeuge der Kategorie D (vollständiger Zyklus einer Embedded-Software-Engineering-Werkzeugkette)
- 3.2 Vorgehensmodelle
- 3.2.1 SYSMOD Zickzack trifft auf IBM Rational Harmony
- 3.2.2 Spezifikation oder Lösung?
- 3.2.3 Wiederverwendung
- 3.3 Best Practice für kleine Teams
-
4 Modellbasiertes Requirements Engineering
- 4.1 Requirements Engineering
- 4.2 Anforderungen in der Modellierung
- 4.3 Anforderungen und Architektur im Zickzack
- 4.4 Szenario: Modellbasierte Spezifikation mit UML erstellen
- 4.4.1 Überblick über Methode
- 4.4.2 Problemanalyse
- 4.4.3 Basisarchitektur
- 4.4.4 Systemidee und Systemziele
- 4.4.5 Stakeholder und Anforderungen
- 4.4.6 Systemkontext
- 4.4.7 Anwendungsfälle und Aktivitäten
- 4.4.8 Fachwissen
- 4.4.9 Szenarien
- 4.5 Mehr Modellierung: Ausführbare Spezifikation
- 4.6 Weniger Modellierung: Diagramme für Anforderungsdokumente
- 4.7 Neuentwicklung versus Weiterentwicklung
- 4.7.1 Basisarchitektur
- 4.7.2 Anwendungsfälle
- 4.7.3 Szenarien
-
5 Modellbasierte Architekturbeschreibung
- 5.1 Architektur – Was ist das eigentlich?
- 5.2 Die technische Softwarearchitektur
- 5.3 Architekturmuster und deren Bedeutung
- 5.4 Das Laufzeitsystem als Basismuster in eingebetteten Applikationen
- 5.5 Referenzmuster für eine Laufzeitarchitektur
- 5.5.1 Sensorik, Einlesen, Filtern, Bewerten
- 5.5.2 Transformation der Sensorik in Aktivitäten (Verarbeitung)
- 5.5.3 Ausgabe der Daten und Ansteuerung der Aktoren
- 5.6 Fachliche Architektur
- 5.7 Architektur-Assessment
-
6 Modellbasiertes Softwaredesign
- 6.1 Gesichtspunkte der fachlichen Architektur und des Designs
- 6.2 Hierarchische Dekomposition
- 6.3 Diskretisierungs- und Laufzeiteffekte im Design
- 6.4 Softwaredesignprinzipien
- 6.4.1 Was ist ein Prinzip?
- 6.4.2 Grundlegende Designprinzipien
- 6.4.3 Designprinzipien in der Modellierung
- 6.5 Hardwareabstraktion
- 6.5.1 Ausgangssituation
- 6.5.2 Evolution der Mikrocontrollerprogrammierung in C
- 6.5.3 Die klassische Vorgehensweise mit der UML
- 6.5.4 Die graue Theorie
- 6.5.5 Lösungsansätze für die Modellierung
- 6.5.6 Lösungsansätze für die Codegenerierung
-
7 Modellbasiertes Testen
- 7.1 Warum eigentlich testen?
- 7.2 Nicht nur sicherstellen, dass es funktioniert
- 7.2.1 Ein angstfreies Refactoring ermöglichen
- 7.2.2 Besseres Softwaredesign
- 7.2.3 Ausführbare Dokumentation
- 7.2.4 Tests helfen, Entwicklungskosten zu sparen
- 7.3 Die Testpyramide
- 7.4 Test-Driven Development (TDD)
- 7.4.1 Viel älter als vermutet: Test First!
- 7.4.2 TDD: Red – Green – Refactor
- 7.5 Model-Based Testing (MBT)
- 7.6 UML Testing Profile (UTP)
- 7.7 Ein praktisches Beispiel
- 7.8 Werkzeuge, die dieses Vorgehen unterstützen
-
8 Integration von Werkzeugen
- 8.1 Anforderungen an Schnittstellen zu Werkzeugen unterschiedlicher Disziplinen
- 8.1.1 Digital Twin
- 8.1.2 Traceability aus Safety-Gesichtspunkten
- 8.1.3 Projekt- und Workload-Management
- 8.2 Synchronisation der Daten zwischen Repositories
- 8.3 Zentrales Repository
- 8.4 Ein Werkzeug für alles
- 8.5 OSLC – Open Services for Lifecycle Collaboration
- 8.6 XMI – Austausch von Daten innerhalb der Fachdomäne MDSE
- 8.7 ReqIF zum Austausch von Anforderungen
- 8.8 FMI (Functional Mock-up Interface)
- 8.9 SysML Extension for Physical Interaction and Signal Flow Simulation (SysPhS)
- 8.10 AUTOSAR
- 8.11 Stand der Praxis
-
9 Modellbasierte funktionale Sicherheit
- 9.1 Funktionale Sicherheit
- 9.2 Entwurfsmuster der funktionalen Sicherheit
- 9.2.1 Zufällige und systematische Fehler
- 9.2.2 Symmetrische und diversitäre Redundanz
- 9.2.3 Architekturmuster
- 9.2.4 Monitor-Actuator Pattern (MAP)
- 9.2.5 Homogenous Redundancy Pattern (HRP)
- 9.2.6 Triple Modular Redundancy Pattern (TMR)
- 9.2.7 SIL-Empfehlung für die Safety and Reliability Design Patterns
- 9.3 Vom Modell zum sicheren Quellcode: Coding-Standards für die sichere Programmierung
- 9.3.1 Normativer Hintergrund
- 9.3.2 MISRA-C und MISRA-C++
- 9.3.3 Prüfwerkzeuge
- 9.3.4 Codegenerierung
- 9.4 Das Safety and Reliability Profile der UML
- 9.5 Praktische Anwendung der Modellierung im Kontext sicherheitskritischer Systeme
- 9.5.1 Beweis der Korrektheit der Transformation
- 9.5.2 Verifikation der Qualität des Werkzeugs
- 9.5.3 Zertifiziertes Framework
- 9.6 Vorteile der modellgetriebenen Entwicklung im Safety-Kontext
- 9.6.1 Traceability
- 9.6.2 Semiformale Spezifikation
- 9.6.3 Normen empfehlen den Einsatz von formalen und/oder semiformalen Methoden und Notationen
- 9.6.4 Automatisierte Transformationen
- 9.6.5 Modellierungsrichtlinien (Guidelines)
- 9.6.6 Dokumentation
- 9.7 Modellgetriebene Entwicklung mit der UML
- 10 Metamodellierung
-
11 Einführung eines modellbasierten Ansatzes in einer Organisation
- 11.1 Ausgangslage
- 11.2 Vorgehen
- 11.2.1 Problem analysieren
- 11.2.2 Idee und Ziele des Vorgehens
- 11.2.3 Stakeholder und Anforderungen
- 11.2.4 Methodikkontext
- 11.2.5 Anwendungsfälle
- 11.2.6 Fachwissenmodell
- 11.2.7 Verifikation und Validierung
- 11.3 Auswahl der Modellierungssprachen
- 11.4 Auswahl der Modellierungswerkzeuge
- 11.5 Typische Fehler
- 11.5.1 Schnellstart
- 11.5.2 Übergewicht
- 11.5.3 Einsame Insel
- 11.5.4 Elfenbeinturm
- 11.5.5 Aus der Lernkurve fliegen
-
12 Lebenslanges Lernen
- 12.1 Lernen – die Sicht des Konstruktivismus
- 12.2 Kompetenzen – der Blick auf die modellbasierte Softwareentwicklung
- 12.3 Agilität – Lernen mit Methoden und Praktiken
- 12.4 Psychologische Grundlagen von Fehlern
- 12.4.1 Denkfallen als Fehlerursache
- 12.5 Software Craftsmanship – ein Beispiel
- 12.6 Modellierungskultur – ein Kodex
- 12.6.1 Manifest – Modeling of Embedded Systems
- 12.6.2 Big Picture – der Blick auf den Kodex einer Modellierungskultur
- 12.6.3 Moderation – die konstruktive Kommunikation
- 12.6.4 Reflexion – Lernen durch Reflektieren
- 12.6.5 Selbstverpflichtung – selbstgesteuertes Lernen als Entwickler und als Team
- 12.6.6 Teamradar – ein Feedbackbarometer
- 12.6.7 Experten als Teamcoach – Agenten der Veränderung
- 12.6.8 Funktionale Sicherheit – ein Beitrag der normativen Sicherheitskultur
- 13 Fazit
-
Anhang
- A Ausblick: Skizze eines Reifegradmodells für MDSE
- A.1 Hintergrund und Motivation
- A.2 Die Skizze als ein Start – Diskussionsforum
- A.3 Ausgangslage Manifest – Ziele kompakt
- A.4 Die Reifegrade – der Weg in die Modellierungskultur
- A.5 Evaluation und Fragenkatalog
- B Kurzreferenz UML und SysML
- B.1 Eine kurze Geschichte der UML
- B.2 Aufbau und Architektur der UML
- B.3 Anwendungsfalldiagramm
- B.3.1 Akteur
- B.3.2 Anwendungsfall
- B.3.3 Anwendungsfallbeziehungen
- B.4 Aktivitätsdiagramm
- B.4.1 Aktivität und Aktivitätsparameter
- B.4.2 Aktion und Pin
- B.4.3 Kontroll- und Objektfluss
- B.4.4 Start- und Endknoten
- B.4.5 Entscheidung und Zusammenführung
- B.4.6 Splitting und Synchronisation
- B.5 Klassendiagramm
- B.5.1 Klasse und Objekt
- B.5.2 Attribut
- B.5.3 Operation
- B.5.4 Assoziation
- B.5.5 Komposition
- B.5.6 Generalisierung
- B.5.7 Signal
- B.5.8 Datentyp
- B.5.9 Templates
- B.6 Kompositionsstrukturdiagramm
- B.6.1 Konnektor
- B.6.2 Port
- B.7 Sequenzdiagramm
- B.7.1 Interaktion
- B.7.2 Lebenslinie
- B.7.3 Nachricht
- B.7.4 Kombiniertes Fragment
- B.7.5 Zeitliche Zusicherungen
- B.8 Zustandsdiagramm
- B.8.1 Zustandsautomat
- B.8.2 Zustand
- B.8.3 Transition
- B.8.4 Start- und Endzustand
- B.8.5 Pseudozustand
- B.9 Paketdiagramm
- B.9.1 Paket und Modell
- B.9.2 Pakete importieren
- B.9.3 Modellbibliothek
- B.10 Querschnittselemente
- B.10.1 Kommentar
- B.10.2 Zusicherung
- B.10.3 Trace-Beziehung
- B.11 Profil
- B.11.1 SysML
- B.11.2 MARTE
- B.11.3 UML Testing Profile (UTP)
- B.11.4 MDESE-Profil (basierend auf SYSMOD-Profil)
- C Glossar
- D Literaturverzeichnis
- Fußnoten
- Stichwortverzeichnis
Product information
- Title: Modellbasierte Softwareentwicklung für eingebettete Systeme verstehen und anwenden
- Author(s):
- Release date: July 2018
- Publisher(s): dpunkt
- ISBN: 9783864905247
You might also like
book
Automotive SPICE in der Praxis: Interpretationshilfe für Anwender und Assessoren
These links have been provided by the publisher. Automotive SPICE ist ein ISO/IEC 15504-kompatibles, speziell auf …
book
Produktiv programmieren
Wer seine Brötchen mit Software-Entwicklung verdient, braucht Strategien, um besser, schneller und kostengünstiger zu programmieren. Dieses …
book
Mikrocontroller – Der Leitfaden für Maker
Die ersten sechs Kapitel beschäftigen sich mit den grundlegenden Themen: Mikrocontrollerfamilien, Minicomputersysteme, E/A-Einheiten, Energieversorgung und Funksysteme. …
book
Softwareentwicklung von Kopf bis Fuß
Was lernen Sie mit diesem Buch? Haben Sie sich schon einmal gefragt, was es mit testgetriebener …