Ich beginne mit der Programmierung eingebetteter Software unter Verwendung eines RTOS. Da ich bereits Entwickler für Desktop-Anwendungen bin, habe ich mich immer wieder gefragt, wie es ist, eingebettete Software mithilfe von UML-Diagrammen wie Aktivitätsdiagrammen, Sequenzdiagrammen, Anwendungsfällen usw. zu modellieren.
Wird eingebettete Software mit UML genauso entwickelt wie Desktop-Anwendungen? Ist es die beste Option oder gibt es eine bessere? Kann ich einige Beispiele haben?
Gibt es ein bestimmtes Tool, das dies tut?
Antworten:
Es gibt Echtzeit-Erweiterungen für UML, die von einem Unternehmen populär gemacht wurden, dessen Name mir im Moment entgeht. Ich erinnere mich, dass ich vor einigen Jahren ein Papier darüber geschrieben habe. Bruce Powell Douglass hat einige Bücher zum Thema Modellierung eingebetteter Systeme mit UML geschrieben, aber sein Unternehmen ist nicht das, an das ich denke.
Um Wouter zu wiederholen, ist eingebettete Software an sich nichts Besonderes. Ich schreibe jeden Tag eingebettete Software für ein System, das auf Prozessoren der Pentium-Klasse läuft. UML ist durchaus anwendbar. Denken Sie auch daran, dass UML im Laufe der Zeit viele Aspekte der Steuerungssoftware hinzugefügt wurden: Es gibt eine Syntax für die Angabe synchroner oder asynchroner Ereignisse sowie die Antwortzeit in Sequenzdiagrammen. Das Verhalten des Petri-Netz-Typs ist in Aktivitätsdiagrammen und im Verhalten von Statecharts-Modellen noch besser zu finden als Zustandsdiagramme können, etc.
OTOH, viele Leute bevorzugen es, eingebettete Software mithilfe von strukturierten Design- und Datenflusskonzepten zu modellieren. Es geht um die Art des Systems, das Sie entwerfen, und darum, was am besten funktioniert.
quelle
Wenn wir uns an ein RTOS wenden, haben wir es normalerweise mit einer Anwendung zu tun, die viele gleichzeitige Aufgaben hat, die optimal geplant werden müssen, damit jeder von ihnen seine Fristen pünktlich einhält oder Ressourcen sicher teilt. Das von Ihnen ausgewählte RTOS-Framework implementiert einen Taskplaner. Ihre Aufgabe besteht (normalerweise) darin, diese einzelnen Aufgaben mit bestimmten Eigenschaften (Zeitraum, Priorität usw.) zu schreiben und dann an den Scheduler zu übergeben. Für die Dokumentation würde ich also jede Aufgabe sorgfältig dokumentieren.
Die meisten eingebetteten Programme und, soweit ich weiß, die meisten RTOSs sind nicht in einer objektorientierten Sprache geschrieben und profitieren daher möglicherweise nicht von vielen Dingen, die darauf ausgerichtet sind, wie zum Beispiel Klassendiagramme.
Bei der Dokumentation Ihrer RTOS-Aufgaben wäre jedoch jedes Diagramm, das die Aufgabe gut beschreibt, von großem Vorteil. Ich würde mir vorstellen, dass ein Sequenzdiagramm für jede Aufgabe zum Beispiel sehr hilfreich sein könnte. Darüber hinaus können Sie die harten Anforderungen wie Zeitraum / Häufigkeit, Priorität, gemeinsam genutzte Ressourcen, Vorkaufsanforderungen usw. angeben. Sie können auch dokumentieren, wie Sie das RTOS konfiguriert haben, und möglicherweise einen Status. Maschine seines Planungsalgorithmus.
Nehmen Sie einen dieser Ratschläge an, wie Sie möchten. Ich habe mich seit meiner College-Zeit nicht mehr mit RTOS beschäftigt und die Arbeit nie wirklich "dokumentiert".
quelle
Beim Modellieren dreht sich alles um
zu wissen, welcher Aspekt in Ihrer Anwendung schwierig und komplex ist,
Finden eines Modellierungswerkzeugs / einer Sprache / Abstraktion / Konvention / Notation, die für diesen Aspekt geeignet ist
diesen Aspekt zu entwerfen
Daher ist kein Modellierungswerkzeug / Ansatz / usw. für alle Situationen geeignet. Ein Satellit wird wahrscheinlich ein Echtzeit-Multitasking-System sein, wahrscheinlich mit mehr als einem Prozessor. Aufgabenstrukturdiagramme, STDs und Sequenzdiagramme sind wahrscheinlich nützlich (um nur einige zu nennen). Wenn das Projekt in C durchgeführt wird, ist ein Klassendiagramm weniger nützlich (wenn es sich als sehr nützlich herausstellt, war die Wahl für C wahrscheinlich falsch). Ich mag UseCases nicht sehr und ein Satellit an-sich hat keinen Benutzer. Anwendungsfälle sind am besten geeignet, wenn Sie die Anforderungen für Ihr System mit einem nicht technischen Benutzer besprechen möchten. Wenn dies die Situation ist, in der Sie sich mit einem Satellitenprojekt befinden, ist ein Fehler aufgetreten.
quelle
Ich habe nichts für den Weltraum qualifiziertes entworfen. Aber ich habe für einen Subunternehmer des Verteidigungsministeriums (DoD) für Luft- und Raumfahrt gearbeitet und viele meiner Entwürfe waren flugqualifiziert. Sie erfordern viel Dokumentation zu Ihren Entwürfen und bieten Data Item Descriptions (DIDs), die genau beschreiben, was sie sehen möchten.
Sie können die DoD ASSIST-Schnellsuche verwenden , um alle DIDs für die Dokumente anzuzeigen, die möglicherweise erforderlich sind, wenn Sie "Software" in das Feld "Word (s) In Title" eingeben und auf "Submit" klicken. (Ich finde es lustig, dass eine DoD-Site eine Sicherheitswarnung für Zertifikate auslöst, aber ich versichere Ihnen, es ist sicher).
Da Sie speziell nach einem Designdokument fragen, finden Sie hier die SDD-DID ( Software Design Description ). Sie betonen die Verwendung von Wörtern, um jeden Teil des Designs zu beschreiben. Wenn jedoch die Verwendung von UML, Zustandsdiagrammen, Flussdiagrammen, Pseudocode usw. das Verständnis des Entwurfs verbessern kann, möchten sie natürlich, dass Sie es einbeziehen.
Welche Modellierungsmethode Sie wählen, hängt, wie andere angegeben haben, von Ihrem Design ab. Ich dachte jedoch, dass das Anzeigen einer DID für Luft- und Raumfahrtsoftware Ihnen beim Schreiben Ihres Konstruktionsdokuments helfen könnte, da Ihr Projekt platzbezogen ist.
quelle