@phdthesis{Maydl2005, author = {Maydl, Walter}, title = {Komponentenbasierte Softwareentwicklung f{\"u}r datenflußorientierte eingebettete Systeme}, url = {http://nbn-resolving.de/urn:nbn:de:bvb:739-opus-681}, school = {Universit{\"a}t Passau}, year = {2005}, abstract = {Diese Dissertation besch{\"a}ftigt sich mit den Problemen bei der Entwicklung von effizienter und zuverl{\"a}ssiger Software f{\"u}r eingebettete Systeme. Eingebettete Systeme sind inh{\"a}rent nebenl{\"a}ufig, was mit einen Grund f{\"u}r ihre hohe Entwurfskomplexit{\"a}t darstellt. Aus dieser Nebenl{\"a}ufigkeit resultiert ein hoher Grad an Kommunikation zwischen den einzelnen Komponenten. Eine wichtige Forderung zur Vereinfachung des Entwurfsprozesses besteht in der getrennten Modellierung von Kommunikationsprotokollen und eigentlichen Verarbeitungsalgorithmen. Daraus resultiert eine h{\"o}here Wiederverwendbarkeit bei sich {\"a}ndernden Kommunikationsstrukturen. Die Grundlage f{\"u}r die sogenannten Datenflußsprachen bildet eine einfache von Gilles Kahn konzipierte Sprache f{\"u}r Parallelverarbeitung. In dieser Sprache besteht ein System aus einer Menge sequentieller Prozesse (Komponenten), die {\"u}ber Fifokan{\"a}le miteinander kommunizieren. Ein Prozess ist rechenbereit, wenn seine Eingangsfifos mit entsprechenden Daten gef{\"u}llt sind. {\"U}bertragen werden physikalische Signale, die als Str{\"o}me bezeichnet werden. Str{\"o}me sind Folgen von Werten ohne explizite Zeitangaben. Das Einsatzgebiet von Datenflußsprachen liegt in der Entwicklung von Programmen zur Bild- und Signalverarbeitung, typischen Aufgaben in eingebetteten Systemen. Die Programmierung erfolgt visuell, wobei man Icons als Repr{\"a}sentanten parametrisierbarer Komponenten aus einer Bibliothek ausw{\"a}hlt und mittels Kanten (Fifos) verbindet. Ein im allgemeinen dynamischer Scheduler {\"u}berwacht die Ausf{\"u}hrung des fertiggestellten Anwendungsprogramms. Diese Arbeit schl{\"a}gt ein universelleres Modell physikalischer Signale vor. Dabei werden zwei Ziele verfolgt: 1. Effiziente Kommunikation zwischen den Komponenten 2. Entwurfsbegleitende {\"U}berpr{\"u}fung von Programmeigenschaften unter Verwendung komplexerer Komponentenmodelle Zur Effizienzsteigerung werden nur relevante Werte innerhalb von Str{\"o}men {\"u}bertragen. Dies erh{\"o}ht zwar den Mehraufwand zur Kennzeichnung des Aufbaus eines Teilstroms, in praktischen Anwendungen ist die hier vorgestellte Methode jedoch effizienter. Die Einf{\"u}hrung neuer Signalmerkmale erlaubt unterschiedlichste {\"U}berpr{\"u}fungen der Einhaltung von Typregeln durch die Eingangs- und Ausgangsstr{\"o}me einer Komponente. Anstelle einfacher Schaltregeln werden aufwendigere Kommunikationsprotokolle f{\"u}r die verschiedenen Arten von Komponenten eingef{\"u}hrt. Fifomaten (Fifo-Automaten) dienen als formale Grundlage. Mittels eines dezidierten Model-Checking-Verfahrens wird das Zusammenspiel der Fifomaten daraufhin untersucht, ob ein zyklischer Schedule existiert. Die Existenz eines solchen zyklischen Schedules schließt Speicher{\"u}berlauf und Deadlocks aus und garantiert dar{\"u}ber hinaus, daß das Programm nach endlicher Zeit wieder in die Ausgangssituation zur{\"u}ckfindet. Da im allgemeinen die Datenflußprogramme turing{\"a}quivalent sind, kann es allerdings zyklische Schedules geben, die das Verfahren nicht entdeckt. Mit der hier vorgestellten und implementierten Methode wird die Entwicklungszeit korrekter Datenflußprogramme deutlich reduziert. Das neue Modell physikalischer Signale macht zudem die Ausf{\"u}hrung effizienter.}, subject = {Softwareentwicklung}, language = {de} }