Softwarearchitektur und Embedded-UML mit Echzeitbetriebssystemen (RTOS) -Möglichkeiten und Grenzen-

Größe: px
Ab Seite anzeigen:

Download "Softwarearchitektur und Embedded-UML mit Echzeitbetriebssystemen (RTOS) -Möglichkeiten und Grenzen-"

Transkript

1 1 Softwarearchitektur und Embedded-UML mit Echzeitbetriebssystemen (RTOS) -Möglichkeiten und Grenzen- Anne Gregor Olaf C. Winne Quategra GmbH Karl-Heine-Str. 99, Leipzig T F Zusammenfassung: Der erfolgreiche Einsatz von UML (Unified Modelling Language) und Echtzeitbetriebssystemen (RTOS) für die Softwareentwicklung von kleinen und mittleren Embedded-Systemen setzt eine gute Softwarearchitektur voraus. Knappe Ressourcen, harte Echtzeitanforderungen und hardwarenahe Programmteile können die sinnvolle Anwendung der UML mit Codegenerierung in modellbasierter Softwareentwicklung für diese Systeme einschränken. Kenntnisse und Erfahrungen an den Grenzen der hardwarenahen Programmierung zum RTOS und zum generierten UML Code sind erforderlich, um die Vorteile zu optimieren.

2 2 Moderne Softwareentwicklung für kleine und mittlere Embedded-Systeme Rahmenbedingungen heutiger Embedded-Systeme Kleine und mittlere Embedded-Systeme charakterisieren sich heute vor allem durch [4]: Mikrocontroller 8-, 16- bis 32-Bit kbyte ROM kbyte RAM Zeitkritische Abläufe, harte Echtzeitanforderungen, Interrupts Kein dynamischer Speichercontroller Betriebssysteme sind nicht Standard, oft properitäre Laufzeitsysteme (Main-Loop) Hardwarenahe Programmierung in C oder Assembler Sicherheitskritische Funktionen Programm- und Datenspeicher ist begrenzt. Die Abläufe sind häufig zeitkritisch und werden nicht selten durch Interrupts beeinflusst. Dabei wird oft Systemverhalten durch Priorisierung der Interrupts gestaltet. Insgesamt werden in kleinen (deeply-) Embedded-Systemen kaum Betriebssysteme mit dynamischer Speicherverwaltung eingesetzt, da diese den meist geforderten Determinismus der Anwendung nicht gewährleisten. In den meisten Applikationen herrscht zudem das MAIN-Loop RTOS, um schlanke Systeme entwickeln zu können. Die Gründe für den überwiegenden Einsatz von C liegen nach wie vor in technischen Gegebenheiten (Verfügbarkeit von Compilern, Ressourcen des Systems, Sicherheitsvorschriften) und in anderen Gebieten (Verfügbarkeit von Know-How, vorhandene Investitionen, fertige Programmteile) [4]. Nicht zuletzt kennzeichnen sich kleinere Embedded-Systeme zunehmend durch sicherheitskritische Funktionen, da der Einsatz kleiner Steuerungen zunehmend in sichere Bereiche vordringt (elektrische Lenkung, elektrische Bremsen, Bremsassistenten, Autopiloten und viele andere Einsatzgebiete).

3 3 Komplexität von Embedded-Softwareprojekten Die Software von Embedded-Systemen wird dabei zunehmend komplexer und dabei in seinen bisherigen Rahmenbedingungen gleichzeitig immer anspruchvoller (schneller, sicherer, zuverlässiger und kleiner). Was ist unter der wachsenden Komplexität zu verstehen? Zum einen wächst natürlich die Softwaregröße je Mikrocontroller mit leistungsfähigerer Vernetzung und aufwändigeren Protokollen (z.b. TCP/IP und USB als Standardschnittstellen der nächsten Gerätegenerationen). Zum anderen tragen wachsende Anforderungen an Echtzeit, Sicherheit, Verfügbarkeit und Funktionalität erheblich zum vorhandenen Fehlerpotential bei der Entwicklung bei. Für komplexe Software-Systeme sind Erfahrungen und Kompetenzen in Softwareentwurf und Architektur erforderlich. Bisher nicht ausreichend berücksichtigte Themen der Softwarearchitektur werden zukünftig den Erfolg von Embedded-Softwareprojekten maßgeblich mitbestimmen und sind heute schon als Wettbewerbsfaktor zu betrachten[1] Average Number of K Lines of Code Bit 16 Bit 32 Bit Processor Architecture Abbildung 1: Steigende Programmgröße / Prozessorarchitektur [2] In der Praxis sind dagegen derzeit oft Vorgehensmodelle und Entwicklungsmethoden anzutreffen, die aus alten Zeiten der 8- und 16- Bit Programmierung (meist ohne kommerzielles Echtzeit- Betriebssystem(RTOS)) stammen und nun bei ungleich komplexeren Systemen beibehalten werden.

4 4 Zusammenfassend beschreibt das folgende Zitat aktuelle und zukünftige Tendenzen: Industrien der unterschiedlichsten Anwendungsbereiche haben einen neuen gemeinsamen Kernbereich: Softwareintensive, in Netzwerke eingebundene multimediale Daten verarbeitende eingebettete Systeme [1] Perspektiven von Embedded-Softwareprojekten Durch die ständig wachsende Komplexität der Software für kleine und mittlere echtzeitfähige Systeme (Embedded-Systeme für z.b. Automotive, Luftfahrt, Steuerungstechnik) ist die Bedeutung von Softwarearchitektur, objektorientierten Ansätzen und Echtzeitbetriebssystemen in der Programmierung und Wiederverwendung von Bibliotheken und Komponenten stark gestiegen. Um den neuen Anforderungen gerecht zu werden, sind zunehmend Methoden und Werkzeuge des Entwurfs von komplexen IT-Anwendungen anzutreffen, wie z.b. die Modellierung mit UML - teilweise mit integrierter Code-Generierung (CASE Tools). Weiterhin werden immer häufiger komplexe Bibliotheken (Treiber, Protokollstacks wie TCP/IP oder USB und Graphical-User-Interfaces GUI) zugekauft oder wieder verwendet. Diese sind meist prozedural geschrieben und müssen mit der objektorientierten Welt verheiratet werden. Weil dazu im Bereich der Embedded-Systeme sehr hohe Anforderungen an die Echtzeitfähigkeit gestellt werden, ist die Integration dieser Komponenten mittels objektorientierten Konstrukten in vielen Projekten problematisch, insbesondere da das herkömmliche Schichtenmodell (Hardware-Treiber-RTOS-Applikation) aus Gründen der Echtzeitanforderung nicht immer eingehalten werden kann. Was bedeutet Kreativität und Steigerung der Produktivität in der Softwareentwicklung? Was aber soll nun das Mittel sein? Was sind die Methoden?

5 5 Bisher wurde Embedded-Software aus kleinen überschaubaren Anfängen heraus entwickelt. An die enorm wachsende Komplexität wurde vor 10 Jahren nicht gedacht. Einige Routinen in der Main-Loop, ein paar Interrupt Service Routinen, die Asynchronitäten und gemeinsamen Datenzugriffe per globale Flags synchronisiert, fertig war das System. Quelle: Willert Software Tools Irgendwann wurde das System jedoch größer, die Abhängigkeiten wuchsen (aber Achtung: die meisten Abhängigkeiten wachsen nicht linear, sondern exponentiell) und das System hat niemand mehr wirklich verstanden. Oder nur noch einige wenige, die Helden. Durch neue Mitarbeiter sinkt dann natürlich die Effizienz spürbar, weil die einzigen kompetenten Mitarbeiter nun mit der langwierigen Einarbeitung neuer Leute beschäftigt sind. Solche Systeme kommen oftmals zu einem gewissen Punkt an ihre Grenzen und werden schwere Pflegefälle, die Ressourcen binden und Innovationen verhindern.

6 6 Ein Beispiel: Verkettungen dieser if-else Konstrukte in sequentiellen oder überlappenden (Interrupt-Service-) Funktionsaufrufen bestimmen das Systemverhalten. Wenn in Fkt_A Änderungen erfolgen, kann das Einfluss auf das Laufzeitverhalten und auf die Funktionalität von Fkt_B, C oder D haben. Das Verhalten der einzelnen Funktionen ist separat nicht nachvollziehbar und nicht entkoppelt. Fehler und Änderungen können systemweiten Einfluss haben. Eine Software dieser Art ist riskant, schlecht wart- und erweiterbar. Generell gilt: Je loser ein System gekoppelt ist, desto einfacher können seine Bestandteile konfiguriert und neu kombiniert werden (Wiederverwendbarkeit) [9] und das Risiko sinkt (Fehlervorbeugung, Fehlervermeidung).

7 7 Quelle: Willert Software Tools Werden die einzelnen Bestandteile eines Systems beispielsweise durch die Verwendung eines RTOS entkoppelt, so wird dadurch die Verständlichkeit, aber auch die Wartbarkeit und Erweiterbarkeit der Software wesentlich verbessert. Die Wahrscheinlichkeit des Auftretens systemweiter Fehler sinkt. Fehler innerhalb von Komponenten sind mit gesenktem Aufwand zu beheben [9].

8 8 Verbesserung der Entwicklung von Embedded-Systemen mit RTOS, objektorientierten Ansätzen und UML Die beschriebene Steigerung der Produktivität von Embedded- Softwareprojekten kann durch den Einsatz von geeigneten Softwarearchitekturen und der Verwendung von objektorientierten Methoden erreicht werden. Weiterhin ist der Einsatz von UML zum Systementwurf und Systemdesign geeignet. Die UML kann zur Analyse, Entwurf und Modellierung von Softwareprojekten verwendet werden. Dabei stellt die UML Notation diverse Diagramme und Elemente zur Verfügung, um ein Softwaresystem aus verschiedenen Sichten zu beschreiben [11]. Statisches Modell: - Anwendungsfalldiagramm - Klassendiagramm - Objektdiagramm - Komponentendiagramm - Einsatzdiagramm Dynamisches Modell: - Zustandsdiagramm - Sequenzdiagramm - Kollaborationsdiagramm - Aktivitätsdiagramm Die UML bildet sich letztendlich auf objektorientierte Konstrukte ab. Diese müssen in C darstellbar sein, damit die Anwendung erfolgreich ist. Da dies (je nach vorhandenen Ressourcen) nur teilweise möglich ist, ist der verwendbare UML Vorrat nicht immer nutzbar [4][6]. Folgend die wichtigsten objektorientierten Konstrukte: Klassen Instanzierung von Objekten Timer Mailboxen Events, Messages Ports

9 9 Einige dieser Konstrukte werden durch ein (Embedded-) Betriebssystem (RTOS, Real Time Operating System) zur Verfügung gestellt (Timer, Mailboxen, Events, Messages und ein Scheduler mit Taskverwaltung), andere werden mit C nachgebildet. Aus eventuellen Mangel an dynamischem Speicher können nicht alle objektorientierten Bestandteile sinnvoll und ressourcensparend in C implementiert werden. Daher wird gern auf einige verzichtet (Vererbung, Überladung, intensive dynamische Instanzierung von Objekten zur Laufzeit). Embedded-UML Es sind die Besonderheiten von Embedded-Systemen in objektorientierten Systemen zu berücksichtigen. Dies gilt generell, sobald in einer Software ein RTOS zum Einsatz kommen soll. Dabei ist insbesondere auf Systembeschreibung / Architektur Entkopplung der Programm-Module bezüglich Laufzeit, Funktion, Daten und Priorität Target-Unabhängigkeit, Simulation, Rapid-Prototyping Verwendung vorhandener (getesteter) C-Module und Bibliotheken zu achten. Ein Embedded-System benötigt hardwarenahe zum Teil hart echzeitkritische Reaktionen und Determinismus bei hardwarenahen Diensten. In diesem Kontext sind dies: Harte Echtzeit-Reaktionen Interrupts, Interruptprioritäten Hardwarenahe Routinen (z.b. DMA (Direct Memory Access)) Determinismus

10 10 Grenzen des sinnvollen RTOS und UML Einsatzes Werden objektorientierte UML Konstrukte in C weggelassen, ist sie fast beliebig anwendbar und ohne RTOS in C umsetzbar. So können z.b. statt Messages sogenannte Guards (Bedingungen, Wächter ) zur Steuerung von UML-Statecharts genutzt werden; Messages und Mailboxen entfallen dann (synchrones Modell). Allerdings kann dann durchaus der Nutzen der UML Notation in Frage gestellt sein, siehe dazu [5]. Eine oft genutzte Einschränkung ist der Verzicht auf Klassen und dynamischer Instanzierung. Stattdessen arbeiten kleine Embedded- Systeme mit statischen Objekten und Singleton-Objekten. Damit braucht das System keine dynamische Speicherreservierung (malloc), die in den meisten Embedded-Targets ohne MMU (Memory Mangement Unit) zur gefürchteten Speicherfragmentierung und damit zum sporadischen Fehlverhalten des Systems führen kann. Bestimmte (benötigte) Zusatzinformationen des Embedded- Systems sind nicht ausreichend beschreibbar (Interrupt-Services, Interrupt-Prioritäten, Verschachtelungen und hardwarenahe Routinen). Die UML stellt keine entsprechenden Möglichkeiten zur Verfügung. Auch sind nicht alle Programmteile über UML oder RTOS- Funktionalitäten umsetzbar. Beispielhaft ist hier die harte Echtzeit untersucht: Objekte können in UML aktiv sein, sie haben zur Laufzeit einen eigenen Task/Thread. Dies ist über ein RTOS effizient darstellbar. Die maximale (Echtzeit-) Auflösung hängt stark von der Task- (Kontext-) Umschaltung des verwendeten Betriebssystems ab , 8-Bit, RTX51 (KEIL), bis 100µs [7] - C166, 16-Bit, ARTX (KEIL), bis 25 µs [7] - M16, 16-Bit, EmbOS (Segger), bis 32 µs [8] - ARM7, 32-Bit, ARTX-ARM (KEIL), bis 5 µs [7] Die Interrupt-Latenzzeiten in den untersuchten Betriebssystemen liegen zwischen 50µs (8051) und 1,8µs(ARM7).

11 11 In vielen Applikationen wird daher auf Treiberebene die schnelle Datenverarbeitung oder Prozessreaktion ausgeführt, bevor über das RTOS ein Task zur Reaktion der Applikation initiiert wird. Wenn zum Beispiel über einen UART eine Befehlssequenz empfangen wird, werden zunächst alle Daten der Sequenz in der Treiberebene erfasst und vorverarbeitet, bevor die Applikation benachrichtigt wird. Damit wird nicht bei jedem Datumsempfang Rechenzeit für die Taskumschaltung benötigt. Es ist naheliegend, dass der Laufzeitanteil des RTOS keinen erheblichen Teil der verfügbaren Ressourcen verwenden soll. Anhand der Task- Umschaltzeiten kann abgeleitet werden, dass diese Mechanismen nur für wesentlich geringere Laufzeitanforderungen verwendet werden sollten. Die Zeit für einen Task-Wechsel liegt bei 8-Bit Mikrocontrollern deutlich im Millisekunden- und beim 32-Bit Mikrocontroller im 100µs Bereich (zusätzlich abhängig von der Anzahl der Nebenläufigkeiten, die diese Zeiten ebenfalls noch erhöhen können). Alle härteren Anforderungen sollten weiterhin hardwarenah entworfen und implementiert werden. Neben den zeitlichen Aspekten muss jedoch auch der Speicherverbrauch durch den Einsatz eines RTOS und die Verwendung eines UML-CASE- Tools betrachtet werden. In [5] wird durch Erfahrung (Randbedingungen: Rhapsody in C, Codegenerierung, UML-Framework mit kleinem Betriebssystem) eine Grenze bei Systemen mit < 32kb ROM Applikation hergeleitet, unter der ein Einsatz von UML nicht mehr sinnvoll erscheint. Damit stellt sich die Frage nach dem effizienten Einsatz von UML in Embedded-Systemen. Bei sehr kleinen Projekten können sich somit der erhöhte Speicherverbrauch sowie die zusätzliche benötigte Rechenzeit durchaus negativ auswirken, wenn es gilt mit sehr begrenzten Ressourcen auszukommen.

12 12 Architektur Bei größeren Systemen ist auf die Grenze der Embedded-Paradigmen zur UML zu achten und ist damit ein wesentlicher Erfolgsfaktor von Embedded-UML-Projekten. Kann die Grenzbetrachtung in eine Softwarearchitektur einfließen und als Designvorgabe umgesetzt werden, treten deutlich weniger Schwierigkeiten beim Umsetzen von komplexen Projekten auf. Abbildung 2: Verbrauchte Ressourcen in Codegröße (stat.) und Laufzeit (dyn.) [2] So hat das objekt-orientierte Design deutliche Vorteile im System- (Applikation-) Layer, wo ca. 80% des Codes nur mit 20% der Laufzeit behaftet sind. Bei den 20% laufzeitkritischem Code kommen die Embedded-Erfahrungen voll zum Tragen.

13 13 Anforderungs- und Systemanalyse, Softwarearchitekturen Embedded-Systeme sind ereignisorientierte und keine datenorientierte Softwaresysteme. Der Fokus liegt auf der Reaktion von Systemen auf Ereignisse und der dabei stattfindenden Kommunikation einzelner Teile des Systems. Die Softwarearchitektur beschreibt die Komponenten und Schnittstellen, aus denen das System besteht, und deren Zusammenspiel [10] In Embedded-Systemen sind zu beachten: Echtzeitfähigkeit / Prioritäten Funktionale Abhängigkeiten Datenfluss Abhängigkeiten Zeitliche Abhängigkeiten Grundlagen zur Softwarearchitektur Softwarearchitektur vereinigt in sich das Know-How eines Unternehmens und besitzt durch die Wiederverwendbarkeit einzelner Bestandteile einen projektübergreifenden Einfluß[10]. Ziel muss es sein, das Know-How des Unternehmens, dass prozessbezogen und nicht targetabhängig ist, so zu kapseln, dass es problemlos auf neuen Plattformen wieder verwendbar ist. Die Scheu davor, eine Embedded-Software neu zu entwerfen ( Redesign ) liegt meist nicht in der Verwendung neuer Hardware (und neuer Mikrocontroller) sondern in der Umsetzung der Applikation darauf. Zur Beherrschung der Komplexität ist die Betrachtung der Architektur aus verschiedenen Perspektiven notwendig[12]. Anforderungsperspektive (Requirements) Perspektive des Systemdesigns Perspektive von Infrastruktur und Verteilung

14 14 Im Folgenden betrachten wir die Perspektive des Systemdesigns, um eine beispielhafte Architektur zu entwerfen. Dazu gehören (bei vollständigem Entwurf)[2][12]: Statische Sichten: Dynamische Sichten: Komponenten, Klassen Struktur und Schnittstellen Verhalten, Mechanismen (Prioritäten) Objekte und Threads Die statische Sicht bildet sich übergeordnet als Schichtenmodell ab, das den Rahmen eines Entwurfsmusters vorgibt. Dabei ist auf die Besonderheiten von Embedded-Systemen einzugehen: Abbildung 3: Vergleich native und Embedded-Systeme[2] Bei nativen Systemen, wie sie beispielsweise aus dem PC-Bereich bekannt sind, werden die Schichten im Normalfall von oben nach unten durchlaufen. Bei diesem synchronen Kommunikations-Mechanismus werden alle Zeiten sowie die Prioritäten durch die Methodenaufrufe vererbt. Hingegen werden bei Embedded-Systemen die Schichten meist von unten noch oben durchlaufen (Interrupt/ Ereignis getrieben). Eine synchrone (zeitliche) Kopplung, wie sie bei nativen Systemen auftritt ist hierbei zu verhindern.

15 15 Dabei gibt es in Systemen, die ereignisgetrieben sind, die Frage, wie diese Schichten entkoppelt und wie Ereignisse (z.b. Interrupts) in den oberen Schichten erkannt werden. Dabei soll auch die Wiederverwendbarkeit der hardwarenahen Schicht betrachtet werden. Eine notwendige Identifikation in der Applikationsschicht von Ereignissen in der Hardwareschicht durch Polling ist dabei zu vermeiden. Hier können Messages und Events eingesetzt werden. Beide setzen jedoch einen Adressaten voraus. Damit müsste die hardwarenahe Schicht den Empfänger in der Applikation kennen und wäre somit nicht mehr uneingeschränkt wieder verwendbar. Die Wiederverwendbarkeit von Treibern oder Interrupt Service Routinen kann durch Callback-Funktionen oder Publisher-Subscribern verbessert werden. Abbildung 4: Entkopplung und Wiederverwendbarkeit hardwarenaher Schichten[2]

16 16 Herleitung eines geeigneten Schichtenmodells für kleine und mittlere Embedded-Systeme Diese Design-Pattern zur Entkopplung der Schichten sind häufig in Embedded-Systemen anzutreffen. Auch hier erkennt man, dass die objektorientierte Herangehensweise auf RTOS und Applikation sehr viele Vorteile bietet, die Anbindung und Implementierung der hardwarenahen Schichten jedoch Mechanismen benötigt, die schwer mit Objektorientierung und UML vereinbar sind. Abbildung 5: Schichtenmodell komplexer Embedded-Systeme mit RTOS[2] Bei dem Schichtenmodell ist zu sehen, dass es Interrupt-Service- und Treiber-Routinen geben kann, die am OSAL und RTOS vorbei hardwarenahe Dienste realisieren und eventuell die Applikation im zeitunkritischen Teil unterrichten. Das gleiche gilt auch für bereits vorhandene Programm-Module oder zugekaufte Bibliotheken. Auch diese sollen im Gesamtsystem, teilweise auf allen Schichten, weiter eingesetzt werden. Beispiele sind Grafik- Bibliotheken oder sicherheitstechnische Überwachungen. Es gibt in vielen kleinen Embedded-RTOS keine standardisierte Treiber- Einbindung. Kommunikation, Meßdaten und ähnliches werden oft direkt zwischen Applikation und Hardware-Layer stattfinden. Grund dafür sind die beschriebenen Grenzen, wie zum Beispiel Echtzeitanforderungen.

17 17 Bei der Entwicklung von Embedded-Systemen ist diesen Gegebenheiten in der Praxis Rechnung zu tragen. Um die Applikation tatsächlich hardwareunabhängig zu entwerfen, genügt das klassische OSAL in der Regel nicht. Entweder erweitert man dieses stark oder es werden weitere Schichten in der Applikation geschaffen, die Hardwareabhängigkeiten außerhalb des OSAL kapseln. Für solche Fälle empfiehlt sich die Einführung eines Adapter- oder Abstarktion-Layers in der Applikationsschicht. Dieser soll alle echtzeitkritischen und prozeduralen Dienste, die am Schichtenmodell vorbei gehen müssen, mit der objektorientierte Applikation verbinden und die Anwendung dieser Dienste vereinfachen. Abbildung 6: Schichtenmodell mit hardwarenahen Objekten und Adapter Wird dieses Vorgehen bei Echzeitsystemen sauber umgesetzt, können erfahrungsgemäß mehr als 90% der Applikation in einem neuen Projekt direkt wiederverwendet werden. Dasselbe trifft auf die Wiederverwendbarkeit der hardwarenahen Layer zu. Ziel ist, für die genannten Probleme eine Referenzlösung zu schaffen, die den Entwicklern gleichartiger Systeme zur Verfügung stehen kann und damit den Basisentwurf solcher Systeme erheblich vereinfacht.

18 18 Entwicklung einer Referenzlösung für ein Adapter-Layer Im Folgenden soll eine Referenzlösung für ein Adapter-Layer geschaffen werden, mit deren Hilfe ein Entwickler in der Lage sein soll die echtzeitkritischen und prozeduralen Dienste, die sich außerhalb des Schichtenmodells befinden, zu kapseln. Bei der Entwicklung eines solchen Adapter-Layers müssen auf der Basis der Objektorientierung und der durch UML zur Verfügung gestellten Elemente folgende Vorüberlegungen stattfinden: - Welche Strukturierung soll verwendet werden? - Wie können die Funktionalitäten in Klassen und Objekte gekapselt werden? - Welche Form der Kommunikation zwischen Applikation und Adapter-Layer soll angewendet werden? - Können Elemente und Verhaltensweisen von Objekten gegebenenfalls vereinheitlicht werden? Anhand dieser Punkte sollte schon zu Beginn der Implementierung erreicht werden, dass dem zu entwickelnden Adapter-Layer ein einheitliches Konzept zugrunde liegt. Durch die Verwendung eines modularen und einheitlichen Aufbaus sowie die Vergabe von vereinheitlichten Bezeichnern für Objekte und Kommunikationselemente werden Erweiterungen und Änderungen vereinfacht. Außerdem wird die Einarbeitung in die Anwendung eines solchen Adapter-Layers wesentlich erleichtert. Eine gute Strukturierung kann durch die Aufteilung in Pakete erzielt werden. Alle benötigten Objekte, Klassen und zusätzliche Komponenten für die Bereitstellung eines Dienstes wie beispielsweise die Bereitstellung eines Flash File Systems oder die Kommunikation via TCP/IP können hierbei jeweils in einem Paket abgelegt werden.

19 19 Abbildung 7: Paketstruktur des Referenz-Adapter-Layers Je Dienst, der innerhalb des Adapter-Layers gekapselt werden soll, muss die Entscheidung getroffen werden, ob eine Klasse oder ein Objekt zur Kapselung der Funktionalitäten geeigneter ist. Für einen Dienst, wie beispielsweise die CAN-Kommunikation, wird eine Klasse geeigneter sein, da für jede anzusteuernde Schnittstelle lediglich eine Instanz dieser Klasse erstellt werden muss. Für andere Dienste die auf dem System einzigartig sind kann hingegen ein (Singleton) Objekt verwendet werden. Abbildung 8: Referenz-Klasse und Objekt

20 20 Bei den verwendeten Operationen innerhalb von Klassen und Objekten erleichtern vereinheitlichte Namen die Anwendung, Erweiterung und Änderung von Funktionalitäten. Bei der Instanzierung von Klassen muss jedoch beachtet werden, dass diese nach Möglichkeit nicht zur Laufzeit angelegt werden (dynamische Speicherverwaltung). Besser für die Wahrung der Echtzeitfähigkeit des Systems ist das Anlegen einer Instanz bereits während der Modellierung. Für die Kommunikation zwischen Elementen der Applikation und des Adapter-Layers gibt es verschiedene Ansätze. Für den internen Informationsaustausch können beispielsweise Callback-Funktionen verwendet werden, aber auch Ports oder Interfaces können für diese Form der Kommunikation eingesetzt werden. Abbildung 9: Interner Informationsaustausch mittels Ports Wurde ein Port für ein Element des Adapter-Layers angelegt, so können mittels Interface-Objekten die Ein- und Ausgabe zugewiesen werden. Innerhalb dieser Interface-Objekte werden Events angelegt, die zum eigentlichen Informationsaustausch zwischen den beiden Elementen genutzt werden. Werden innerhalb des Adapter-Layer-Elements bestimmten Events Funktionen zugewiesen (mittels Statecharts), so können auf diese Weise Funktionen aufgerufen ( EingabeDienst1 ) und Rückmeldungen ( AusgabeDienst1 ) realisiert werden.

21 21 Abbildung 10: Statechart von KlasseDienst1 Wie man sieht kann durch ein gut durchdachtes Konzept mit Vereinheitlichung bei der Namensgebung erzielt werden, dass sämtliche Funktionalitäten die mittels Adapter-Layer gekapselt und auf einer hohen Ebene zur Verfügung gestellt werden ohne größere Einarbeitung angewendet werden können. Wird dieses Schema auch bei der Implementierung aller weiteren Dienste angewendet, so erhält man ein Adapter-Layer welches vielseitig einsetzbar ist. Abbildung 11: Sequenzchart für den Aufruf von evdienst1start Eine Applikation auf Basis einer solchen Schicht kann somit in allen Belangen unabhängig von den verwendeten Treibern und Bibliotheken implementiert werden. Im Falle einer Portierung auf eine neue Hardware muss lediglich der Adapter-Layer angepasst werden. Die Applikation wird unverändert übernommen. Dadurch reduziert sich der Portierungsaufwand auf ein Minimum.

22 22 Exemplarische Implementierung eines Adapter-Layer-Dienstes Im Folgenden soll die oben beschriebene Referenzlösung für die Implementierung eines TCP/IP-Dienstes adaptiert werden. Dadurch soll die praktische Umsetzung anhand einer real existierenden Problemstellung veranschaulicht werden. Die gegebene Tool-Chain besteht aus Rhapsody in C von Telelogic, der Bridge WST52 von Willert Software Tools sowie dem RealView MDK 3.10 und der RL-ARM RealView Real-Time Library der Firma Keil. Da innerhalb der Real-Time Library ein TCP/IP Protokoll Stack (TcpNet) zur Verfügung gestellt wird, der allerdings am Schichtenmodell vorbeigeht, soll dieser Dienst innerhalb des Adapter-Layers zur Verfügung gestellt werden, um eine Entkopplung zwischen den Bibliotheks-Funktionen und der Applikation zu ermöglichen. Durch TcpNet werden sowohl alle grundlegenden Funktionalitäten zur Kommunikation via TCP/IP und UDP wie auch zusätzliche Applikationen (z.b. HTTP-Webserver, CGI-Scripting, Telnet) zur Verfügung gestellt. Für den Dienst werden innerhalb des Adapter-Layers ausgewählte Funktionalitäten gekapselt, die durch die Bereitstellung von entsprechenden Operationen und Events realisiert werden. Als Funktionalitäten wurden im vorliegenden Fall die folgenden ausgewählt: - Erstellen eines TCP/IP-Servers - Erstellen eines TCP/IP-Clients - Versenden von Daten via TCP/IP - Empfangen von Daten via TCP/IP - Beenden der TCP/IP-Kommunikation

23 23 Aufruf der Funktionalität Mögliche Rückmeldungen Operation evtcpservercreate evtcpclientcreate evtcpdatasend evtcpdatareceive evtcpconnectionclose evtcpservercreateok evtcpservercreatefailed evtcpclientcreateok evtcpclientcreatefailed evtcpdatasendok evtcpdatasendfailed optcpservercreate optcpclientcreate optcpdatasend evtcpdatareceiveok optcpdatareceive evtcpdatareceivefailed evtcpdatareceivedone evtcpconnectioncloseok optcpconnectionclose evtcpconnectionclosefailed Im nächsten Schritt wird eine Klasse mit den benötigten Operationen angelegt und anschließend die Implementierung hinzugefügt. Außerdem werden noch die Interface-Objekte zur Sammlung der Funktions-Aufrufe und Rückmeldungen benötigt, die dem speziell angelegten Port zugewiesen werden. Abbildung 12: Instanz mit Port für eine TCP/IP-Verbindung Das Verhalten dieser Klasse zur Realisierung einer Kommunikation via TCP/IP wird durch ein Statechart definiert. Darin können alle Zustände sowie die Zustandsübergänge dieses Elements des Adapter-Layers grafisch modelliert werden.

24 24 Abbildung 13:Statechart für eine TCP/IP-Verbindung Der Reaktionen auf den Aufruf einer Funktionalität lässt sich am besten durch ein Sequenzdiagramm darstellen. Darin wird veranschaulicht welche Events, Operationen und Funktionen ausgeführt werden und welche Objekte an der internen Kommunikation beteiligt sind. Abbildung 14: Erstellen eines TCP/IP-Servers (Sequenzchart)

25 25 Besonders anhand des Sequenzcharts kann man erkennen, dass das Objekt aus der Applikation lediglich mit Elementen aus dem Adapter-Layer kommuniziert. Direkte Zugriffe auf die Bibliotheks-Funktionen werden nicht durchgeführt. Durch die daraus resultierende Entkopplung könnte zu einem späteren Zeitpunkt beispielsweise der hierbei verwendete TCP/IP Protokoll Stack ausgetauscht werden. Alle nötigen Änderungen können direkt im Adapter- Layer durch Anpassungen der Operationen durchgeführt werden. Die Applikation kann anschließend unverändert wieder verwendet werden. FAZIT Die hier aufgezeigten Ansätze sind für eine Verbesserung der Softwareentwicklung im Bereich der Embedded-Systeme geeignet und empfehlenswert, um die Systeme für die aktuelle Generation zu entwickeln. Die Grenzen der beschriebenen Methoden sollten bekannt sein und in einer guten Architektur berücksichtigt sein. Die Kunst ist, zu erkennen, was wo gemacht wird (Applikation vs. Treiberund Interrupt-Ebene) und wie diese Schichten so zusammenarbeiten, dass die Echtzeit und die Entkopplung des Applikations-Know-Hows gleichermaßen berücksichtigt wird. Dazu zeigt dieser Beitrag mögliche Lösungsansätze.

26 26 Quellenverzeichnis [1] Vortrag Eingebettete Systeme Die neue IT-Revolution,Prof. Dr.-Ing. Werner Grass, Lehrstuhl für Rechnerstrukturen, Universität Passau, [2]Vortrag Softwarearchitektur und RTOS, Andreas Willert, Willert Software Tool GmbH und Olaf Winne, Quategra GmbH, [3] Standish Group (http://www.standishgroup.com) veröffentlicht in regelmäßigen Abständen den sogenannten Chaos Report (hier 2000) [4] Codegenerierung aus UML nach ANSI-C für kleine Embedded- Systeme, Dr.Martin Geier, , method park GmbH [5] UML für kleine Embedded- Systeme, Elektronik Praxis 07/07, Andreas Willert, Vogel Verlag [6] Object Based Development Using the UML and C, Mark Richardson, Senior Application Engineer, I-Logix (now Telelogic). [7] KEIL RTX Datasheets, [8] Segger EmbOS Datasheet, [9] Der pragmatische Programmierer, Andrew Hunt und David Thomas, Carl Hanser Verlag, ISBN [10] Modernen Softwarearchitektur, Johannes Siedersleben, dpunkt.verlag, ISBN [11] jetzt lerne ich UML, Joseph Schmuller, Mark+Technik Verlag, ISBN [12] isqi: Grundlagen der Softwarearchitektur, 2003

Erfolgreicher Einsatz von modellbasierter Softwareentwicklung - Praxisbericht

Erfolgreicher Einsatz von modellbasierter Softwareentwicklung - Praxisbericht Platz für ein Bild (optional) Erfolgreicher Einsatz von modellbasierter Softwareentwicklung - Praxisbericht 1.0 1.1 Elektronik? Was heisst modellbasierte Software-Entwicklung für uns? Was sind für eine

Mehr

Architektur und Qualität. Tjard Köbberling

Architektur und Qualität. Tjard Köbberling Architektur und Qualität Tjard Köbberling Gliederung Überblick Architektur und Qualität? Architekturentwurf Anforderungsanalyse Strukturierung Architekturbeschreibungen - Sichten Fallbeispiel 2 Architektur

Mehr

Rhapsody in C ein System zur aspektorientierten Embedded- Entwicklung? Dr.- Ing. Alexander Steinkogler B. Braun Melsungen AG

Rhapsody in C ein System zur aspektorientierten Embedded- Entwicklung? Dr.- Ing. Alexander Steinkogler B. Braun Melsungen AG Rhapsody in C ein System zur aspektorientierten Embedded- Entwicklung? Dr.- Ing. Alexander Steinkogler B. Braun Melsungen AG Einführung Was sind Aspekte? Anforderungen: Thema / Aspekt Berühren viele andere

Mehr

Rhapsody in J Modellierung von Echtzeitsystemen

Rhapsody in J Modellierung von Echtzeitsystemen Rhapsody in J Modellierung von Echtzeitsystemen Tobias Schumacher tobe@uni-paderborn.de Rhapsody in J - Modellierung von Echtzeitsystemen p.1/17 Anspruch des Tools Einsatzbereiche/Features Modellierung

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Orientierte Modellierung mit der Unified Modeling Language

Orientierte Modellierung mit der Unified Modeling Language UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Funktionskapselung in Steuergeräten

Funktionskapselung in Steuergeräten Funktionskapselung in Steuergeräten Mobilität und Echtzeit Boppard am Rhein, 07.12.2007 Stand: 07.12.2007 1 Funktionskapselung in Steuergeräten Inhalt Ausgangssituation und Motivation Begriff "Kapselung"

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting

Modellierungstechniken im Softwaredesign. Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting Modellierungstechniken im Softwaredesign Praxisprojekt [ai] Control WS 2011/2012 Lara Baschour und Anne Heiting Was ist Modellierung? Modell = Ein Modell ist eine Repräsentation eines Systems von Objekten,

Mehr

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren Einführung in die Informationsverarbeitung Teil Thaller Stunde VII: Planen und Realisieren Manfred Thaller, Universität zu Köln Köln 18. Dezember 2014 Rekapitulation Der Gang der Argumentation 1. Der Rohstoff:

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

Mehr

Einsatz von UML und C++ am Beispiel einer Satelliten-Lageregelungssoftware

Einsatz von UML und C++ am Beispiel einer Satelliten-Lageregelungssoftware Einsatz von UML und C++ am Beispiel einer Satelliten-Lageregelungssoftware Dipl. Inform. Olaf Maibaum DLR, Abt. Simulations- und Softwaretechnik DLR, Abt. Simulations- und Softwaretechnik 1 Übersicht Bird-Satellit

Mehr

Softwaretechnik. Fomuso Ekellem WS 2011/12

Softwaretechnik. Fomuso Ekellem WS 2011/12 WS 2011/12 Inhalt Wiederholung Weitere Begriffe Programmierung im Großem (Programmierung von Software als Ganzes) Prozess-Modelle 2 Wiederholung: Prozesse Prozesse sind hierarchische Gruppierungen von

Mehr

Vortrag von: Ilias Agorakis & Robert Roginer

Vortrag von: Ilias Agorakis & Robert Roginer MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Embedded OS für ARM Cortex Microcontroller

Embedded OS für ARM Cortex Microcontroller Embedded OS für ARM Cortex Microcontroller RTOS Design, Timinganalyse und Test mit Core Simulation und Hardware Debugger Entscheidende Fragen für oder gegen RTOS Lohnt sich der Einsatz eines RTOS auch

Mehr

Software-Entwicklung

Software-Entwicklung Software-Entwicklung SEP 96 Geschichte der Programmierung Aufgaben von, Anforderungen an Programme mit der Zeit verändert 1 Programmierung über Lochkarten z.b. für Rechenaufgaben 2 maschinennahe Programmierung

Mehr

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 CODESYS a trademark of 3S-Smart Software Solutions GmbH Agenda 1 Warum

Mehr

Software Engineering. Fakultät Elektrotechnik Bachelor-Studiengänge, 4. Semester Prof. Dr.-Ing. Dagmar Meyer

Software Engineering. Fakultät Elektrotechnik Bachelor-Studiengänge, 4. Semester Prof. Dr.-Ing. Dagmar Meyer Fakultät Elektrotechnik Bachelor-Studiengänge, 4. Semester Vorausgesetzte Kenntnisse Allgemeine Kenntnisse aus dem Bereich der Softwareentwicklung - Programmierkenntnisse (Java, C) - Beherrschung der notwendigen

Mehr

Existierende Systeme I Bibliotheken & Frameworks

Existierende Systeme I Bibliotheken & Frameworks Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen Existierende Systeme I Bibliotheken & Frameworks Von Christian Schneider Paderborn, den 18.06.2004 Übersicht Motivation Dynamische

Mehr

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog 10.Klasse: Themenschwerpunkt I: Datenbanken Datenbanken o Einsatzbereiche von Datenbanken o Verwaltung von großen Datenmengen o Probleme aus dem Alltag in Datenbanken abbilden o Relationale Datenbanksysteme

Mehr

EasyLab: Modell-basierte Software-Entwicklung für mechatronische Systeme

EasyLab: Modell-basierte Software-Entwicklung für mechatronische Systeme EasyLab: Modell-basierte Software-Entwicklung für mechatronische Systeme Prof. Dr.-Ing. habil. Alois Knoll (k@tum.de) Lehrstuhl für Echtzeitsysteme und Robotik Institut für Informatik Technische Universität

Mehr

Softwaretechnik Unified Modeling Language (UML)

Softwaretechnik Unified Modeling Language (UML) Softwaretechnik Unified Modeling Language () Karsten Weicker, Nicole Weicker HTWK Leipzig, FHTW Berlin David Shayne: She s so charismatic, and she s brilliant and beautiful. I mean, a real artist, and,

Mehr

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme Tillmann Schall, anaptecs GmbH : Agenda Grundlagen modellgetriebener Entwicklungsprozesse Schritte zur Einführung Erfahrungen

Mehr

Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen

Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen Christian Wawersich Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Universität Erlangen-Nürnberg

Mehr

Programmieren in Java

Programmieren in Java FG TECHNISCHE INFORMATIK V JV A00 00 TH 0 Programmieren in Java Anhang A A. Modellierung von OOP-Programmen A.. Klassenkategorien A.2. Klassembeziehungen A.3. Klassendiagramm und Sequenzdiagramm der UML

Mehr

UML statt C. Vorurteile gegenüber der UML Fiktion oder Realität? EVOCEAN GmbH UML statt C Seite 1 von 8 Willert Software Tools GmbH

UML statt C. Vorurteile gegenüber der UML Fiktion oder Realität? EVOCEAN GmbH UML statt C Seite 1 von 8 Willert Software Tools GmbH UML statt C Vorurteile gegenüber der UML Fiktion oder Realität? EVOCEAN GmbH UML statt C Seite 1 von 8 Willert Software Tools GmbH Einleitung Obwohl die UML mittlerweilen über 15 Jahre alt ist, ist ihre

Mehr

Software Produktlinien: Einführung und Überblick

Software Produktlinien: Einführung und Überblick C A R L V O N O S S I E T Z K Y Software Produktlinien: Einführung und Überblick Johannes Diemke Vortrag im Rahmen des Seminars Software System Engineering im Wintersemester 2007/2008 Übersicht 1 Motivation

Mehr

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0 Für den Einsatz in der Praxis Seite 2 Überblick 1. Ziele 2. Warum das alles? 3. Was ist UML 4. Diagrammarten 5. Umfeld Seite 3 1. Ziele 1. Ziele dieses

Mehr

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Objekt Objekt kapselt Variablen und Routinen Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Eigenschaften jedes Objekts: Identität (identisch = mehrere

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Inhalt Nachlese Aufgaben Literatur Software Engineering in der Praxis Praktische Übungen Inhalt Nachlese Aufgaben Literatur Marc Spisländer Dirk Wischermann Lehrstuhl für Software Engineering Friedrich-Alexander-Universität

Mehr

Modellierung von Echtzeitsystemen mit dem UML CASE Tool Telelogic Tau G2 Developer

Modellierung von Echtzeitsystemen mit dem UML CASE Tool Telelogic Tau G2 Developer Modellierung von Echtzeitsystemen mit dem UML CASE Tool Telelogic Tau G2 Developer Holger Sinnerbrink Einführung Firmenentwicklung Gründung von Telelogic 1983 als Forschungs- und Entwicklungsabteilung

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 8 10. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Modellbasierter Entwurf sicherheitskritischer Anwendungen. Von Moritz Borgmann Für VL Eingebettete Systeme Sommer Semester 2009

Modellbasierter Entwurf sicherheitskritischer Anwendungen. Von Moritz Borgmann Für VL Eingebettete Systeme Sommer Semester 2009 Modellbasierter Entwurf sicherheitskritischer Anwendungen Von Moritz Borgmann Für VL Eingebettete Systeme Sommer Semester 2009 Einführung Einführung Modellbasierter Entwurf und der IEC 61508 Ausblick Zusammenfassung,

Mehr

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent

Mehr

Die Revolution der Konsumelektronik

Die Revolution der Konsumelektronik Übersicht Betrachtung der technischen Entwicklung von Embedded Systemen im Konsumelektronikbereich Softwareentwicklung für Audio & Visuelle Geräte der Unterhaltungselektronik Hochintegrierter Embedded-Webserver-

Mehr

Ministerium für Kultus, Jugend und Sport Baden-Württemberg

Ministerium für Kultus, Jugend und Sport Baden-Württemberg Anlage zu 45-6512-2420/31 Ministerium für Kultus, Jugend und Sport Baden-Württemberg Schulversuch 51-6624.20/100 (früher: /84) vom 26. August 2003 Lehrpläne für das berufliche Gymnasium der sechs- und

Mehr

6 Architektur-Mittel (WOMIT)

6 Architektur-Mittel (WOMIT) 6 Architektur-Mittel (WOMIT) Abb. 6-1: Positionierung des Kapitels im Ordnungsrahmen. Dieses Kapitel befasst sich mit der WOMIT-Dimension des architektonischen Ordnungsrahmens, indem es grundlegende Konzepte

Mehr

Domänenspezifisch entwickeln mit UML (Vortrag mit Demo)

Domänenspezifisch entwickeln mit UML (Vortrag mit Demo) Gert Bikker, Kevin Barwich, Arne Noyer Domänenspezifisch entwickeln mit UML (Vortrag mit Demo) Die Modellierung mit UML bietet auch für eingebettete Systeme viele Vorteile. Um die Vorteile effizient nutzen

Mehr

Software Engineering und Projektmanagement

Software Engineering und Projektmanagement Software Engineering und Projektmanagement Motivation! Fachliche Sicht trifft auf technische Realisierung Entwurf 2009W - 5. November 2009 Andreas Mauczka Email: andreas.mauczka@inso.tuwien.ac.at Web:

Mehr

Management & Softskills Management für Projekte & Prozesse Agile Entwicklung von Embedded-Systemen

Management & Softskills Management für Projekte & Prozesse Agile Entwicklung von Embedded-Systemen MicroConsult Training: Termine Preise bis Juni 2015 (S. 1) Management & Softskills Management für Projekte & Prozesse Agile Entwicklung von Embedded-Systemen Agiles Testen und Test Driven Development von

Mehr

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Grundzüge der Programmierung Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Inhalt dieser Einheit JAVA ist objektorientiert! Grundbegriffe der objektorientierten Programmierung:

Mehr

Tier-Konzepte. Vertiefungsarbeit von Karin Schäuble

Tier-Konzepte. Vertiefungsarbeit von Karin Schäuble Vertiefungsarbeit von Karin Schäuble Gliederung 1. Einführung 3. Rahmenbedingungen in der heutigen Marktwirtschaft 3.1 Situation für Unternehmen 3.2 Situation für Applikationsentwickler 4. Lösungskonzepte

Mehr

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7 Echtzeitprogrammierung und Echtzeitverhalten von Frank Erdrich Semester AI 7 Inhalt Einleitung Echtzeit und Echtzeitsysteme Echtzeitprogrammierung Real-Time Operating System Keil RTOS RTX Zusammenfassung

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

Military Air Systems

Military Air Systems Trennung von Applikationen unterschiedlicher Kritikalität in der Luftfahrt durch Software en am Beispiel des Real-time Operating Systems PikeOS Dr. Bert Feldmann DGLR Workshop Garching, 09.10.2007 Seite

Mehr

Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1

Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1 Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1 Die Unified Modeling Language Die UML (hier in der Version 0.9) ist ein Satz von Notationen zur Beschreibung objektorientierter Softwaresysteme.

Mehr

Modellbasierte Softwareentwicklung

Modellbasierte Softwareentwicklung CD OCL OD Statechart SD Modellbasierte Softwareentwicklung 7. Evolutionäre Methodik 7.1. Vorgehensmodell Vorlesungsnavigator: Prof. Dr. Bernhard Rumpe Sprache Codegen. http://www.se-rwth.de/ Testen Evolution

Mehr

Softwaretechnik. Fomuso Ekellem

Softwaretechnik. Fomuso Ekellem WS 2011/12 Inhalt Entwurfsphase Systementwurf Software Architektur Entwurf Software Komponenten Entwurf Struktur Verhalten OO Entwurf (OOD) 2 Entwurfsphase 3 Entwurfsphase Lernziele Aufgaben der Entwurfsphase

Mehr

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I) Historisch Kulturelle Informationsverarbeitung Hauptseminar: KLIPS 2.0 Dozent: Prof. Dr. Thaller Referent:

Mehr

Key Note und Abstracts Stream 4

Key Note und Abstracts Stream 4 Key Note und Abstracts Stream 4 Key-Note: Future of Google Search Referent: Emmanuel Mogenet, Engineering Director, Google Zurich Agile Embedded Projekte mit Scrum & Kanban Tips & Tricks aus der Praxis

Mehr

KNX EtherGate Eine universelle Plattform für KNX/IP Interfaces

KNX EtherGate Eine universelle Plattform für KNX/IP Interfaces WEINZIERL ENGINEERING GMBH F. Heiny, Dr. Th. Weinzierl Bahnhofstr. 6 84558 Tyrlaching Tel. +49 (0) 8623 / 987 98-03 Fax +49 (0) 8623 / 987 98-09 E-Mail info@weinzierl.de KNX EtherGate Eine universelle

Mehr

Xcalibur-2 Alpha. Time. Christian Rempis University of Applied Sciences Bonn-Rhein-Sieg 17. Januar 2006 1

Xcalibur-2 Alpha. Time. Christian Rempis University of Applied Sciences Bonn-Rhein-Sieg 17. Januar 2006 1 Time Christian Rempis University of Applied Sciences Bonn-Rhein-Sieg 17. Januar 2006 1 Control and Command Environment for a Robotic Experimenter R&D 1 Examination Presentation by Christian Rempis Christian

Mehr

Programmierung von Steuerungen künftig objektorientiert?

Programmierung von Steuerungen künftig objektorientiert? 1 Programmierung von Steuerungen künftig objektorientiert? R. Hungerbühler, Dozent BFH R. Hungerbühler Dozent Automation BFH 2 Sichten auf Fragestellung Wissenstand Mitarbeiter /Ausbildung Entwickler,

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Meitner, Spisländer FAU Erlangen-Nürnberg Objektorientiertes Design 1 / 16 Objektorientiertes Design Matthias Meitner Marc Spisländer Lehrstuhl für

Mehr

FRAUNHOFER-INSTITUT FÜR PRODUKTIONSTECHNOLOGIE IPT PROJEKTGRUPPE ENTWURFSTECHNIK MECHATRONIK

FRAUNHOFER-INSTITUT FÜR PRODUKTIONSTECHNOLOGIE IPT PROJEKTGRUPPE ENTWURFSTECHNIK MECHATRONIK FRAUNHOFER-INSTITUT FÜR PRODUKTIONSTECHNOLOGIE IPT PROJEKTGRUPPE ENTWURFSTECHNIK MECHATRONIK DIE METHODE FÜR DEN SOFTWAREENTWURF VERNETZTER MECHATRONISCHER SYSTEME Innovative Funktionen moderner mechatronischer

Mehr

Unified Modeling Language (UML)

Unified Modeling Language (UML) Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine

Mehr

IO-Link Komponenten einfach, individuell, unkompliziert

IO-Link Komponenten einfach, individuell, unkompliziert IO-Link Komponenten einfach, individuell, unkompliziert www.iq2-development.de iqinterface Ihr einfacher Zugang zu IO-Link Geräten iqinterface ist ein vielseitiges Entwicklungs- und Produktionstool für

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Software, Services & Success

Software, Services & Success Unser Team sucht für den Standort Stuttgart einen Diplomand Softwareentwicklung (m/w) Thema: Regelbasierte Messdatenauswertung Im Verlauf der Entwicklung und der Integration von neuen Automotive-Steuergeräten

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET

Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Timo Wagner & Sebastian Kühn Entwurf einer Multi-Tier Anwendung in ASP.NET Überblick 1.Einfürung in die Multi-Tier Architektur 2.Ausgangspunkt und Probleme 3.Rundgang durch die Architektur 4.Architektur

Mehr

Methodische objektorientierte Softwareentwicklung

Methodische objektorientierte Softwareentwicklung Methodische objektorientierte Softwareentwicklung Eine Integration klassischer und moderner Entwicklungskonzepte von Mario Winter 1. Auflage Methodische objektorientierte Softwareentwicklung Winter schnell

Mehr

Virtualisierung im Echtzeitbereich. Andreas Hollmann FH Landshut EADS Military Air Systems

Virtualisierung im Echtzeitbereich. Andreas Hollmann FH Landshut EADS Military Air Systems Virtualisierung im Echtzeitbereich Andreas Hollmann FH Landshut EADS Military Air Systems 2 Überblick Hintergrund und Motivation Vorstellung von Lösungsansätzen Auswahl und Evaluierung Einschränkungen

Mehr

Reflex The Real-Time Event Flow EXecutive

Reflex The Real-Time Event Flow EXecutive Einführung The Real-Time Event Flow EXecutive Karsten Walther, und Jörg Nolte Brandenburgische Technische Universität Cottbus 1. Statusseminar des InnoProfile Projekt TANDEM 2007 Gliederung Einführung

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

OSEK-OS. Oliver Botschkowski. oliver.botschkowski@udo.edu. PG AutoLab Seminarwochenende 21.-23. Oktober 2007. AutoLab

OSEK-OS. Oliver Botschkowski. oliver.botschkowski@udo.edu. PG AutoLab Seminarwochenende 21.-23. Oktober 2007. AutoLab OSEK-OS Oliver Botschkowski oliver.botschkowski@udo.edu PG Seminarwochenende 21.-23. Oktober 2007 1 Überblick Einleitung Motivation Ziele Vorteile Einführung in OSEK-OS Architektur Task Management Interrupt

Mehr

Development Tools for 16/32 Bit Microcontroller

Development Tools for 16/32 Bit Microcontroller Praktika- und Diplomthemen bei Stand 01/2013 Die nachfolgend aufgeführten Themen sind Vorschläge und können in Absprache mit dem Praktikanten / Diplomanden sowie der Hochschule modifiziert werden. Die

Mehr

Guten Tag! CampusSource. Die CSE Integration Platform. CampusSource Engine. Christof Pohl Softwareentwicklung Medienzentrum Universität Dortmund

Guten Tag! CampusSource. Die CSE Integration Platform. CampusSource Engine. Christof Pohl Softwareentwicklung Medienzentrum Universität Dortmund Engine Die CSE Integration Platform Guten Tag! Christof Pohl Softwareentwicklung Medienzentrum Universität Dortmund Integriertes Informationsmanagement mit der Engine - A2A vs. EBI Folie 2 Integration

Mehr

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG Unit-Test Theorie und Praxis Stephan Seefeld, INGTES AG Inhalt Was sind Unit-Test? NUnit für.net Demo Seite 2 Quellen Für diesen Vortrag verwendete Quellen: dotnet User Group Berlin Brandenburg http://www.dotnet-berlinbrandenburg.de/

Mehr

Grundlagen der Softwaretechnik

Grundlagen der Softwaretechnik Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Musterlösung Name: Matrikelnummer: Note: Prüfungstag:

Mehr

Optimierung der Code-Generierung virtualisierender Ausführungsumgebungen zur Erzielung deterministischer Ausführungszeiten

Optimierung der Code-Generierung virtualisierender Ausführungsumgebungen zur Erzielung deterministischer Ausführungszeiten Optimierung der Code-Generierung virtualisierender Ausführungsumgebungen zur Erzielung deterministischer Ausführungszeiten Martin Däumler Matthias Werner Lehrstuhl Betriebssysteme Fakultät für Informatik

Mehr

1. Grundbegriffe des Software-Engineering

1. Grundbegriffe des Software-Engineering 1. Grundbegriffe Software Engineering 1 1. Grundbegriffe des Software-Engineering Was ist Software-Engineering? (deutsch: Software-Technik) Teilgebiet der Informatik, das sich mit Methoden und Werkzeugen

Mehr

Gliederung des Vortrages

Gliederung des Vortrages Gliederung des Vortrages Unified Modeling Language Rational Rose Sergej Schwenk Oktober 1999 0. Einführung 1. Historie 2. Der Entwicklungsprozeß 3. UML 3.1 Anwendungsfalldiagramme 3.2 Klassendiagramme

Mehr

SEA. Modellgetriebene Softwareentwicklung in der BA

SEA. Modellgetriebene Softwareentwicklung in der BA SEA Modellgetriebene Softwareentwicklung in der BA MDA bei der BA Ziele/Vorteile: für die Fachabteilung für die Systementwicklung für den Betrieb Wie wird MDA in der BA umgesetzt? Seite 2 MDA bei der BA

Mehr

oscan ein präemptives Echtzeit-Multitasking-Betriebssystem

oscan ein präemptives Echtzeit-Multitasking-Betriebssystem ein präemptives Echtzeit-Multitasking-Betriebssystem 2011. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V0.9 2011-10-12 Management

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

Inhaltsverzeichnis. Gernot Starke. Effektive Softwarearchitekturen. Ein praktischer Leitfaden ISBN: 978-3-446-42728-0

Inhaltsverzeichnis. Gernot Starke. Effektive Softwarearchitekturen. Ein praktischer Leitfaden ISBN: 978-3-446-42728-0 sverzeichnis Gernot Starke Effektive Softwarearchitekturen Ein praktischer Leitfaden ISBN: 978-3-446-42728-0 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42728-0 sowie im

Mehr

EIN BRANCH FÜR JEDEN KUNDEN?

EIN BRANCH FÜR JEDEN KUNDEN? EIN BRANCH FÜR JEDEN KUNDEN? WIE INDIVIDUALISIERUNG UND STANDARDISIERUNG IN EINKLANG GEBRACHT WERDEN KÖNNEN AIT GmbH & Co. KG Ihre Software effizienter entwickelt. 2 AGENDA Die Unternehmen und ihre Produkte

Mehr

Integrierte, universelle Entwicklungsplattform für die fahrzeugbezogene Applikationsentwicklung mit Schnittstellen für FlexRay, CAN, LIN und K-Line

Integrierte, universelle Entwicklungsplattform für die fahrzeugbezogene Applikationsentwicklung mit Schnittstellen für FlexRay, CAN, LIN und K-Line Integrierte, universelle Entwicklungsplattform für die fahrzeugbezogene Applikationsentwicklung mit Schnittstellen für FlexRay, CAN, LIN und K-Line In zunehmendem Maße finden heute PC-basierte Entwicklungs-

Mehr

Softwaretechnik. Fomuso Ekellem WS 2011/12

Softwaretechnik. Fomuso Ekellem WS 2011/12 WS 2011/12 Weiteren Verlauf der Vorlesung 31.10.2011(2 Std) OO Vorgehensmodelle, UML, Teamarbeit, Gruppenbildung,. 07.11.2011(2,5Std) Projektvorstellung, Planungsphase 14.11.2011(2 Std) Angebotspräsentation,

Mehr

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6.

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6. 6. Modellierung von Informationssystemen Spezialseminar Matr. FS 2000 1/10 Volker Dobrowolny FIN- ITI Quellen: Oscar Pastor, Jaime Gomez, Emilio Insfran, Vicente Pelechano The OO-Method approach for information

Mehr

Untersuchungen zur Zulassung von Software unterschiedlicher Sicherheitsklassen auf einem Prozessormodule unter dem neuartigen Betriebssystem PikeOS

Untersuchungen zur Zulassung von Software unterschiedlicher Sicherheitsklassen auf einem Prozessormodule unter dem neuartigen Betriebssystem PikeOS Untersuchungen zur Zulassung von Software unterschiedlicher Sicherheitsklassen auf einem Prozessormodule unter dem neuartigen Betriebssystem PikeOS Automotive Safety & Security 2008 Stuttgart, 19. 20.11.2008

Mehr

Software Engineering

Software Engineering Literatur Gliederung Software Engineering Herbert Kuchen Universität Münster Di+Fr 14:15-15:45, M2 Wintersemester 2009/2010 1 Literatur Gliederung Basis-Literatur H. Balzert: Lehrbuch der Software-Technik,

Mehr

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008 Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008 Jörg Rödel Virtualization - Whats out there? Virtualisierung hat bereits längere Geschichte auf x86 Startete mit VMware Setzte

Mehr

J.6 Programmierung eingebetteter Systeme

J.6 Programmierung eingebetteter Systeme Vorteile von C in eingebetteten Systemen: leichter Zugriff auf die Hardware gute Kontrolle über die verwendeten Ressourcen (Speicher, CPU) Probleme mit C: stark eingeschränkte Laufzeitüberprüfungen ISO

Mehr

SurefireKernel ÜBERSICHT SPEZIFIKATION. www.triadem.ch. Sicherheitskernel DATASHEET

SurefireKernel ÜBERSICHT SPEZIFIKATION. www.triadem.ch. Sicherheitskernel DATASHEET Sicherheitskernel ÜBERSICHT SurefireKernel ist ein schlanker skalierbarer nicht preemptiver Echtzeit-Kernel der für den Einsatz auf Kontrollersysteme optimiert ist. Er verfügt über eine Realtime-Überwachung

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die "Softwarekrise"

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise im Überblick im Überblick Inhalt 1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise 1. Merkmale von Software 2. Fortlaufende Veränderungen 3. Erschwerte Rahmenbedingungen bei der

Mehr

Model Driven Architecture

Model Driven Architecture Model Driven Architecture Wilhelm Stephan Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Seminar Softwareentwicklung in der Wissenschaft Betreuer: Julian Kunkel SommerSemester

Mehr

Aspektorientierte Programmierung (aspect-oriented programming, AOP)

Aspektorientierte Programmierung (aspect-oriented programming, AOP) Aspektorientierte Programmierung (aspect-oriented programming, AOP) Abstract Die aspektorientierte Programmierung ist ein neues Programmierparadigma, das die Probleme und Nachteile, die aus der prozeduralen

Mehr

Grundlagen Software Engineering

Grundlagen Software Engineering Grundlagen Software Engineering Rational Unified Process () GSE: Prof. Dr. Liggesmeyer, 1 Rational Unified Process () Software Entwicklungsprozess Anpassbares und erweiterbares Grundgerüst Sprache der

Mehr

Software - Testung ETIS SS05

Software - Testung ETIS SS05 Software - Testung ETIS SS05 Gliederung Motivation Was ist gute Software? Vorurteile gegenüber Testen Testen (Guidelines + Prinzipien) Testarten Unit Tests Automatisierte Tests Anforderungen an Testframeworks

Mehr

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Vorbereitung zur Prüfung Echtzeitbetriebssysteme Vorbereitung zur Prüfung Echtzeitbetriebssysteme Zugelassene Hilfsmittel: Taschenrechner Bitte verwenden Sie keinen roten Farbstift! 1. Echtzeitbetriebssysteme - Allgemein (15 Punkte) 1.1. Warum setzen

Mehr

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit EMF ist ein eigenständiges Eclipse-Projekt (Eclipse Modeling Framework Project) EMF ist ein Modellierungsframework und Tool

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 1 17. Oktober 2002 www4.in.tum.de/~rumpe/se

Mehr

1 Die Active Directory

1 Die Active Directory 1 Die Active Directory Infrastruktur Prüfungsanforderungen von Microsoft: Configuring the Active Directory Infrastructure o Configure a forest or a domain o Configure trusts o Configure sites o Configure

Mehr