Serie Software Engineering für Embedded Systeme, Teil 1

Einführung in das Software Engineering

Seite: 2/2

Anbieter zum Thema

Resultierende Software Units werden dann in der darüber liegenden Schicht des System Engineering zu einem kompletten ausführbaren System integriert. Innerhalb dieser Schicht wurde schon zuvor die Softwarearchitektur erstellt, die als Grundlage für die spätere Integration der Software Units dient.

Zwar kann prinzipiell das hierbei entstandene System bereits ausgeführt werden, jedoch kann an dieser Stelle noch keine Aussage darüber getroffen werden, ob die Software auch das Problem des jeweiligen Auftraggebers löst. Deswegen wird in der obersten Schicht des Application Engineering – zu Beginn des Entwicklungsprozesses – das eigentliche Problem des Kunden analysiert, um dadurch die Benutzeranforderungen erheben zu können.

Dies ist wichtig, da in vielen Fällen der Kunde keine klare Vorstellung vom Funktionsumfang oder von anderen Details der Software hat. Trotzdem kann es passieren, dass Software auf nicht korrekten oder unvollständigen Anforderungen aufsetzt. Dies ist in den meisten Fällen nicht dem Auftraggeber zuzuschreiben, sondern passiert durch einen Fehler in der Anforderungsphase.

Fehler in dieser frühen Entwicklungsphase führen meist zu schwerwiegenden finanziellen Folgen. Denn je später ein Fehler gefunden wird, desto mehr Produkte sind dadurch betroffen und müssen zur Beseitigung des Fehlers angepasst werden. Deswegen wird das ausführbare System zusätzlich je nach Grad der Validierung unterschieden – z.B. valide in Bezug auf die Anforderungen (aus Sicht des Benutzers) oder valide in Bezug auf die Problembeschreibung (aus Sicht des Auftraggebers). Dies ermöglicht das Messen der Qualitätseigenschaften der Software, um diese mit den Anforderungen abzugleichen.

Ausgewählte Aspekte des Software Engineerings

Die hier vorgestellten Aspekte verdeutlichen, dass Software Engineering ein sehr komplexes und umfangreiches Themengebiet ist. In dieser Artikelserie werden in den kommenden Ausgaben von ESE Report ausgewählte Aspekte des Software Engineering näher besprochen, welche gerade bei der Entwicklung von Software für eingebettete Systeme im Vordergrund stehen.

Im Einzelnen sind dies die Themen Mehrkernprozessoren und Deployment (Realtime Systems) von Dr. Thomas Kuhn, Non-FunctionalRequirements (Requirements Engineering) von Jörg Dörr, Quality Assurance (Software Quality Assurance) von Prof. Peter Liggesmeyer und Model-based Development (Model-based Component Engineering) von Dr. Mario Trapp.

21696430

Alle Artikel dieser Serie vermitteln Fachwissen des Fraunhofer-Instituts für Experimentelles Software Engineering (IESE) in Kaiserslautern und sind Teil des von der TU Kaiserslautern in Kooperation mit dem IESE angebotenen Masterfernstudiengangs „Master Software Engineering for Embedded Systems“. Studierenden wird hier eine praxisrelevante Ausbildung im Bereich Software Engineering für eingebettete Systeme angeboten.

Fortsetzung der Serie: Juli 2010;

Leser können die Serie kostenlos abonnieren über ESE Report - der kostenlose Infodienst für Embedded Software Entwickler

Referenzen

[1] Prof. Dr. P. Liggesmeyer, TU KL & FraunhoferIESE et al (Sonderheft 2009 „Embedded Software Engineering“ der Fachzeitschrift ELEKTRONIKPRAXIS)

[2] Broy, Manfred (2006) Dagstuhl-Manifest zur strategischen Bedeutung des Software Engineering in Deutschland. Informatik Spektrum, 29 (3).

[3] Helmut Balzert: Lehrbuch der Software-Technik. Bd.1. Software-Entwicklung. Spektrum Akademischer Verlag, Heidelberg 1996, 1998, 2001.

[4] Standish Group: http://www.standishgroup.com/newsroom/chaos_2009.php

[5]GI Regionalgruppe: http://www.pentaeder.de/projekte/2009/02/18/vortrag-gpm-gi-regionalgruppe

(ID:345757)