Teilvorhaben II: Anforderungsanalyse und Architekturentwicklung
Ausgangssituation
Anforderungsanalyse und Architekturentwurf stellen die zentralen Bestandteile im Softwareentwicklungsprozess dar und sind entscheidende Voraussetzungen für den Erfolg des gesamten Softwareprojektes. Bei traditionellen Vorgehensmodellen zur Softwareentwicklung sind diese Phasen mit einem hohen Entwicklungsaufwand verbunden, den kleine und mittlere Unternehmen (KMU) weder personell noch finanziell tragen können. Viele der derzeit existierenden Vorgehensmodelle sind für KMU überdimensioniert. Außerdem bieten sie wenig Flexibilität bei Änderungen und richten sich nicht nach Geschäftsprozessen.
Der erste Schritt hin zu einer integrierten Betrachtung der Lebenszyklen (vgl. TV 1) besteht in der Analyse der Geschäftsprozesse und der Ableitung von Anforderungen an die Unternehmenssoftware. Die Ergebnisse der Geschäftsprozessanalyse und die Anforderungsspezifikation stellen damit die Basis für den Entwurf einer geeigneten Softwarearchitektur. Besonders kritisch anzusehen ist dabei der erstmalige Entwurf, da es sich mit der Qualität der Softwarearchitektur entscheidet, wie gut spätere Änderungen durchgeführt werden können, welche Softwarekomponenten eine hohe Wertschöpfung darstellen und daher im Unternehmen bleiben sollen.
Um die Wettbewerbssituation der KMU zu verbessern, soll bereits beim Entwurf der Architektur darauf geachtet werden, dass Teile der Implementierungsaufgaben an Fremdanbieter ausgelagert werden können. KMU benötigen leichtgewichtige Vorgehensmodelle und Werkzeuge, die sie bei der Softwareentwicklung unterstützen und mit denen sie ihre Stärke - die direkte Kommunikation mit dem Kunden und die exakte Kenntnis der zu unterstützenden Prozesse - zu ihrem Vorteil nutzen können.
Ziele
Im Rahmen dieses Teilvorhabens soll ein ganzheitlicher Ansatz vorgestellt werden, der die KMU nicht nur bei der geschäftsprozessorientierten Softwareentwicklung unterstützt, sondern auch die Durchgängigkeit bei der Anforderungsanalyse und die Nachverfolgbarkeit von Änderungen über den gesamten Prozess hinweg sicherstellt.
Damit die funktionalen Anforderungen aus den Geschäftsprozessen abgeleitet werden können, bedarf es einer Modellierungssprache, mit der die Geschäftsprozesse formal beschrieben und somit analysiert werden können. Durch die Ergänzung der Modellierungssprache um die Möglichkeit, detaillierte Informationen zu den technischen und technologischen Anforderungen an das Softwaresystem darzustellen, kann das entstehende Modell als Basis für Architekturentscheidungen dienen. Weiterhin soll diese Sprache sowohl für Fachleute, die die Geschäftsprozesse modellieren, als auch für IT-Experten geeignet und verständlich sein. Die Bereitstellung einer solchen Modellierungssprache sowie Entwicklung eines Dokumentationsverfahrens für Geschäftsprozesse sind die Aufgaben des ersten Arbeitspaketes.
Aufbauend auf das beschriebene Geschäftsprozessmodell erfolgt die Definition eines Metamodells zur Beschreibung der Architektur des zu entwickelnden Softwaresystems. Das Metamodell soll es erlauben, die Komponenten eines Software-Entwicklungsprozesses zu beschreiben. Dabei sollen die spezifischen Komponenteneigenschaften wie Komplexität oder Wertschöpfungsanteil berücksichtigt werden, um kritische Teile von Softwaresystemen identifizieren zu können. Dies bildet die Grundlage für eine Bewertung der Teile, für deren Entwicklung in einem globalisierten Prozess externe Dienstleister beauftragt werden können.
In Form von Güteanforderungen (Antwortzeiten, Performance, Durchsatz) geforderte nicht-funktionale Eigenschaften können gleichermaßen an Schritte innerhalb eines Geschäftsprozesses oder an durch Softwarekomponenten erbrachte Funktionen gestellt werden. Das Software entwickelnde Unternehmen soll bei der Abbildung von Geschäftsprozessen und deren Güteanforderungen auf die betriebliche Software und ihre Ablaufumgebung (und umgekehrt) unterstützt werden. Notwendig ist hierfür eine Methodik, welche die Abbildung der Anforderungen aus dem Geschäftsprozessmodell auf Anforderungen an das Softwaresystem unter Berücksichtigung der funktionalen und nichtfunktionalen Anforderungen im Architekturmodell erlaubt. Ziel ist die Ableitung eines Spezifikationsmodells für die Implementierung und/oder Komposition des Gesamtsystems. Dadurch wird ermöglicht, exakte nicht-funktionale Spezifikationen aus den Geschäftsprozessen heraus für Softwarekomponenten herzuleiten.
Die Konzeption eines modellbasierten Analyseverfahrens für Geschäftsprozessmodell und Architekturmodell wird in einem prototypisch implementierten Werkzeug umgesetzt, das anschließend an die durchgeführte prozessbasierte Anforderungsanalyse noch vor Beginn der Implementierung des Systems die Abschätzung von Systemleistung und Auswirkungen von Änderungen auf beiden Seiten der Modelle (vgl. Lebenszyklusmanagement) ermöglicht. Durch die Vernetzung von Artefakten im Lebenszyklusmanagement lassen sich die Verknüpfungen untereinander auswerten und nachvollziehen. Dies ermöglicht modellübergreifend Vernetzungen sichtbar zu machen und somit Änderungen an allen möglichen Ansatzpunkten im Lebenszyklusmanagement, sei es im Geschäftsprozess- als auch im Architekturmodell, besser abschätzbar zu machen. Sobald das zu ändernde Artefakt identifiziert wurde, lassen sich direkt und indirekt verknüpfte Artefakte ausfindig machen und damit auch der damit jeweils verknüpfte Stakeholder. Genauer betrachtet lassen sich durch eine soziale Netzwerkanalyse alle beteiligten Personen ausfindig machen, die evtl. von Änderungen betroffen sein könnten. Das Feedback aus dem sozialen Netz eines Artefakts kann daher als Grundlage zur Abschätzung des erforderlichen Aufwands verwendet werden.
Arbeitspakete
| 2.1 | Entwicklung einer Modellierungssprache zur formalen Beschreibung von Geschäftsprozessen sowie Verbindung mit detaillierten Informationen zu den technischen und technologischen Anforderungen |
| 2.2 | Entwicklung eines Metamodells zur Beschreibung der Architektur und Modellierung der spezifischen Komponenteneigenschaften |
| 2.3 | Entwicklung von Methodik und Werkzeug zur Verknüpfung von Geschäftsprozessmodell und Architekturmodell und Spezifikation |
| 2.4 | Konzeption und prototypische Implementierung eines modellbasierten Analyseverfahrens für Geschäftsprozessmodell und Architekturmodell vor der Implementierung |
| 2.5 | Erweiterung des Analyseverfahrens zur Darstellung und Berücksichtigung von Randbedingungen bei Optimierungsproblemen sowie Werkzeug zur Zielkonfliktanalyse |
Vorarbeiten
Leichtgewichtige Modellierungsumgebung (SLiM)
SLIM (Synchronous Lightweight Modeling Tool) ist ein kollaborativer UML-Editor, der ohne Installation direkt über den Web Browser genutzt werden kann (kein Java, kein Plug-in notwendig). Änderungen am Diagramm, die während einer kollaborativen Sitzung durchgeführt werden, sind in Echtzeit auf den Bildschirmen aller Sitzungsteilnehmer sichtbar. Durch die integrierte XMI-Import/Export Funktion besteht die Möglichkeit zum Datenaustausch mit existierenden Werkzeugen, wie Poseidon, IBM Rational und MagicDraw.
Palladio Component Model
siehe Teilvorhaben IV
Semantische Wikis (Semantic Media Wiki)
Semantic MediaWiki (SMW) ist eine freie Erweiterung von MediaWiki - dem Wiki-System auf dem auch Wikipedia aufbaut - mit der die Inhalte eines Wikis durchsucht, organisiert, gebrowsed, ausgewertet und mit anderen geteilt werden können. Während traditionelle Wikis nur Texte enthalten, die Computer weder verstehen noch auswerten können, fügt SMW semantische Annotationen hinzu, und bringt so die Möglichkeiten des Semantic Web ins Wiki. SMW erlaubt es Seiten und Links zwischen Seiten zu typisieren, so dass Informationen von Maschinen interpretiert und automatisiert ausgelesen werden können. Diese Technologie kann im Rahmen der verteilten Softwareentwicklung genutzt werden (siehe Ontobrowse Semantic Wiki).
Ontobrowse Semantic Wiki
Ontobrowse ist eine Dokumentationslösung für IT-Projekte, die je nach unternehmensspezifischen Anforderungen unterschiedlich genutzt werden kann. Die zentralen Vorteile der Dokumentation und Suche in einem Single Point of Information lassen sich dabei zügig realisieren. Die Idee von Ontobrowse Semantic Wiki ist, dass Architekturwissen automatisch aus externen Ressourcen (Source Code, Modelle, Textdokumente, Excel Dateien) extrahiert und in eine Wissensbasis eingefügt werden.
