Kurzfassung
Im Rahmen dieser Arbeit wird eine Methode für die Modellierung wissensintensiver Prozesse im Software Engineering entworfen. Ausgehend von den Prozessen im Software Engineering, welche gemäß dem SWEBOK der IEEE dargestellt werden, wird nach einer Darstellung der einzelnen Wissensgebiete der Softwareentwicklung ein Überblick über allgemeine Aspekte geboten. Diese Gebiete werden nach einer Definition und Darstellung des Begriffes der wissensintensiven Geschäftsprozesse kategorisiert und auf Eigenschaften wissensintensiver Prozesse untersucht. Dadurch können wissensintensive Prozesse identifiziert und ihre jeweiligen Schwerpunkte und Prozessunterstützungen dargestellt werden. Aus den Erkenntnissen über wissensintensive Prozesse,Wissensgebiete der Softwareentwicklung und der Unterstützung der Wissensgebiete lassen sich zusammen mit dem Stand der Unterstützung der Softwareentwicklung durch Wissensmanagement und Anforderungen an Modellierungsprachen Anforderungen für die im Rahmen der Arbeit zu entwickelnde Modellierungssprache KMDL SE (Knowledge Modeling Description Language for Software Engineering) ableiten. Diese wird im letzten Kapitel der Arbeit entwickelt und stellt eine Unterstützung zur Modellierung wissensintensiver Prozesse in der Softwareentwicklung auf Basis von fundierten Erkenntnissen aus den Gebieten der Softwareentwicklung und des Wissensmanagements dar. Dabei werden ausgewählte Teilaspekte der KMDL SE vertieft dargestellt.
Inhaltsverzeichnis
1 Einführung und Motivation
1.1 Einführung
1.2 Motivation des Themas
1.3 Gliederung der Arbeit
I Stand des Software Engineering und Prinzipien wissensintensiver Prozesse
2 Wissensgebiete und Prozesse im Software Engineering
2.1 Einführung
2.2 Exkurs: Was ist eine Ingenieursdisziplin
2.3 Wissensstand im Software Engineering
2.4 Wissensgebiete eines Software Ingenieurs
2.5 Anforderungsanalyse und -erfassung
2.5.1 Einführung und Definition
2.5.2 Der Anforderungsprozess
2.5.3 Erfassung der Anforderungen
2.5.4 Analyse der Anforderungen
2.5.5 Spezifikation der Anforderungen
2.5.6 Überprüfung der Anforderungen
2.6 Design von Software
2.6.1 Einführung und Definition
2.6.2 Hauptinteressensgebiete
2.6.3 Software Architekturen
2.6.4 Software Design Qualität
2.6.5 Software Design Notationen
2.6.6 Software Design Strategien
2.6.7 Software Konstruktion
2.7 Testen von Software
2.7.1 Einführung und Definition
2.7.2 Testgrundlagen
2.7.3 Ebenen des Testens
2.7.4 Arten des Testens- was wird getestet
2.7.5 Arten des Testens- wie wird getestet
2.7.6 Testmetriken
2.7.7 Der Testprozess
2.8 Softwarekonfigurationsmanagement
2.8.1 Einführung und Definition
2.8.2 Planung des Konfigurationsmanagements
2.8.3 Änderungsmanagement
2.8.4 Versionsmanagement
2.8.5 Releasemanagement
2.8.6 Systemzusammenstellung
2.9 Weitere Wissensgebiete des Software Engineering
2.9.1 Softwarewartung
2.9.2 Software Engineering Management
2.9.3 Software Engineering Prozesse
2.9.4 Software Engineering - Werkzeuge und Methoden
2.9.5 Qualität und Software
2.10 Fazit und Folgen für die Arbeit
3 Software Engineering Prozesse als wissensintensive Prozesse
3.1 Einführung und Motivation
3.2 Wissensmanagement
3.2.1 Motivation
3.2.2 Definitionen
3.2.3 Wissensmanagementansätze
3.2.4 Wissensmanagement im Rahmen dieser Arbeit
3.3 Prozessorientierung
3.3.1 Der Prozessbegriff
3.3.2 Begriff des Geschäftsprozesses
3.3.3 Geschäftsprozessmodellierung
3.4 Wissensintensive Geschäftsprozesse
3.4.1 Definition und Merkmale wissensintensiver Prozesse
3.4.2 Wissens- und Geschäftsprozessmanagement
3.4.3 Ansätze zum prozessorientierten Wissensmanagement
3.5 Wissensintensive Prozesse im Software Engineering
3.5.1 Software Engineering Prozesse
3.5.2 Klassifikation der SE Prozesse
3.6 Fazit und Folgen für diese Arbeit
4 Stand der Prozessunterstützung im Software Engineering
4.1 Einführung
4.2 Unterstützung der Anforderungsanalyse
4.2.1 Der Anforderungsprozess
4.2.2 Das Anforderungsdokument
4.2.3 Werkzeugunterstützung des Prozesses
4.2.4 Ausblick zur Unterstützung
4.3 Unterstützung des Designprozesses
4.3.1 Der Designprozess
4.3.2 Entwicklungsmodelle
4.3.3 Das Patternkonzept
4.3.4 Die UML
4.3.5 Ausblick zur Unterstützung
4.4 Unterstützung des Testens
4.4.1 Der Testprozess
4.4.2 Testtechniken
4.4.3 Dokumentation von Testfällen
4.4.4 Automatisierte Unit Tests
4.4.5 Ausblick zur Unterstützung
4.5 Unterstützung des Konfigurationsmanagements
4.5.1 Der Konfigurationsmanagementprozess
4.5.2 Toolunterstützung
4.5.3 Configuration Management Patterns
4.5.4 Ausblick zur Unterstützung
4.6 Fazit und Folgen für diese Arbeit
4.6.1 Anforderungsanalyse
4.6.2 Design von Software
4.6.3 Testen von Software
4.6.4 Konfigurationsmanagement
4.6.5 Generelle Anforderungen durch die Softwareentwicklung
II Integration von Wissensflüssen und Software Engineering
5 Integration von Modellierung und Entwicklung
5.1 Erstellung einer Modellierungslösung zur Unterstützung der Softwareentwicklung
5.2 Stand des Wissensmanagement in der Softwareentwicklung
5.2.1 Einführung
5.2.2 Ziele des Wissensmanagement in der Softwareentwicklung
5.2.3 Typen von untersuchten Wissen und Arten von Prozessen
5.2.4 Methoden der Unterstützung
5.2.5 Anforderungen an eine Wissensmanagementlösung für die Softwareentwicklung
5.2.6 Zusammenfassung und Ausblick
5.3 Anforderungen an die Sprache zur Modellierung
5.3.1 Anforderungen durch Wissensmanagement im SE
5.3.2 Anforderungen durch die Definition von Wissen
5.3.3 Anforderungen durch die Softwareentwicklung
5.3.4 Anforderungen zur Unterstützung wissensintensiver Prozesse
5.3.5 Anforderungen an Modellierungssprachen
5.3.6 Fazit
5.4 Die KMDL
5.4.1 Einführung in die KMDL
5.4.2 Objekte
5.4.3 Wissenskonversionen
5.4.4 Beschreibung des stillschweigenden Wissens
5.4.5 Erzeugung von Wissens- und Informationsobjekten
5.4.6 Die Sichten der KMDL
5.4.7 Weiterentwicklung zur KMDL SE
5.4.8 Einbindung in die Softwareentwicklung
5.4.9 Ausgewählte Konzepte der KMDL SE
5.5 Zusammenfassung und Ausblick
6 Zusammenfassung und Ausblick
6.1 Zusammenfassung der Kapitel
6.2 Ausblick für weitere Arbeiten im Bereich
III Anhang
A Die Arbeit im Kontext des Projektes M-Wise
A.1 Die unterstützten Pakete in der Übersicht
A.1.1 2.UO Review KMDL
A.1.2 8.UO Entwurf und Spezifikation der KMDL-SE
A.1.3 9.O Survey: Einsatz von Wissensmanagement in der Softwareentwicklung in Deutschland
A.1.4 14.O KMDL-SE als UML-Erweiterung
A.1.5 22.O Entwurf einer flexiblen Architektur für Wissensmanagementsysteme
A.2 Unterstützung der Pakete
A.2.1 Review der KMDL
A.2.2 Entwurf und Spezifikation der KMDL SE
A.2.3 Einsatz von Wissensmanagement in der Softwareentwicklung in Deutschland
A.2.4 Die KMDL-SE als UML Erweiterung
A.2.5 Entwurf einer flexiblen Architektur für Wissensmanagementsysteme
B UML Erweiterung der KMDL SE
C Wissensgebiete aus [Let99]
Zielsetzung & Themen
Das Hauptziel dieser Diplomarbeit besteht darin, eine Modellierungsmethode zu entwickeln, die spezifisch auf die Bedürfnisse wissensintensiver Prozesse im Software Engineering zugeschnitten ist. Die Forschungsfrage untersucht, wie sich Methoden des Wissensmanagements in die Softwareentwicklung integrieren lassen, um die Modellierung und Prozessqualität nachhaltig zu verbessern.
- Analyse der Wissensgebiete und Prozesse innerhalb des Software Engineering (SWEBOK).
- Charakterisierung und Klassifizierung von Prozessen als "wissensintensiv".
- Evaluierung bestehender Modellierungssprachen und deren Eignung für wissensintensive Workflows.
- Weiterentwicklung der KMDL (Knowledge Modeling Description Language) zur KMDL SE für den Software Engineering Kontext.
- Entwurf von Pattern zur Schwachstellenanalyse in Softwareentwicklungsprozessen.
Auszug aus dem Buch
Die KMDL als UML Erweiterung
Um eine Integration der KMDL SE in die Arbeits- und Entwicklungsumgebung der Softwareentwickler zu erreichen, wird in diesem Abschnitt eine prototypische Integration auf Basis einer UML Erweiterung vorgestellt. Die Entwicklung dieser Notation lehnt sich dabei an die Konzepte der Business Extensions von Eriksson und Penker an. Die UML hat sich als Stand der Technik in der objektorientierten Modellierung etabliert, leider bietet sie jedoch noch keinerlei Sichten auf die der Entwicklung zugrunde liegenden Prozesse und dem im Prozess genutzten Wissen der Entwickler, diese Sicht kann durch die KMDL integriert werden. Die UML bietet verschiedene Erweiterungsmöglichkeiten, das Konzept der Profile wird vor allem durch drei Mechanismen unterstützt, den sogenannten tagged values, den constraints und den stereotypes.
Tagged values: Unter tagged values werden Attribute verstanden, die an UML Elemente angehängt werden. Beispielsweise wäre ein Tag „Autor“ mit dem Namen des Autors einer Klasse als Wert ein Tagged Value, welcher an eine Klasse angehängt werden könnte. Die Notation erfolgt dabei direkt in der Klasse in geschweiften Klammern mit Namen und Wert (Bsp.: {Autor=Mathias Uslar}) Im Rahmen der KMDL SE könnten die Attribute der jeweiligen KMDL Objekte und deren Defaultwerte als tagged values realisiert werden, da jedoch die Attribute frei wählbar sein sollten bzw. die entgültige KMDL SE im Rahmen dieser Arbeit nicht spezifiziert werden kann, wird in der im Anhang zu findenden UML Erweiterung auf das Konzept der tagged values verzichtet. Das Konzept kann aber zum Setzen von Attributen in der entgültigen KMDL adaptiert werden.
Zusammenfassung der Kapitel
Einführung und Motivation: Dieses Kapitel motiviert die Arbeit durch die Darstellung von Softwarefehlern und Defiziten der traditionellen Softwareentwicklung, die eine Integration von Wissensmanagementmethoden notwendig machen.
Wissensgebiete und Prozesse im Software Engineering: Hier wird der theoretische Stand der Softwareentwicklung auf Basis des SWEBOK analysiert, um essenzielle Wissensgebiete für Praktiker zu identifizieren.
Software Engineering Prozesse als wissensintensive Prozesse: Dieses Kapitel definiert den Begriff des wissensintensiven Prozesses und überträgt diesen auf Kernprozesse der Softwareentwicklung wie Anforderungsanalyse und Design.
Stand der Prozessunterstützung im Software Engineering: Eine Bestandsaufnahme existierender Methoden und Tools zur Unterstützung von Software-Prozessen, die als Ausgangsbasis für die eigene Modellierung dient.
Integration von Modellierung und Entwicklung: Das Kernkapitel der Arbeit, das die Anforderungen an die KMDL SE definiert, die Sprache spezifiziert und Konzepte wie Pattern zur Schwachstellenanalyse einführt.
Zusammenfassung und Ausblick: Eine abschließende Synthese der Ergebnisse und eine Diskussion über weiteren Forschungsbedarf in Bezug auf Metamodelle und Simulationsmöglichkeiten.
Schlüsselwörter
Wissensmanagement, Software Engineering, KMDL SE, Prozessmodellierung, Wissensintensive Geschäftsprozesse, SWEBOK, UML Erweiterung, Wissenskonversion, Anforderungsanalyse, Software Design, Konfigurationsmanagement, Wissensbasis, Personalisierungsstrategie
Häufig gestellte Fragen
Worum geht es in dieser Arbeit grundsätzlich?
Die Diplomarbeit befasst sich mit der Anwendung von Methoden des Wissensmanagements auf die Softwareentwicklung, um wissensintensive Prozesse besser zu modellieren und zu unterstützen.
Was sind die zentralen Themenfelder?
Die Arbeit verknüpft Software Engineering nach dem SWEBOK-Standard mit verschiedenen Wissensmanagement-Ansätzen wie dem SECI-Modell von Nonaka und Takeuchi.
Was ist das primäre Ziel der Arbeit?
Ziel ist die Entwicklung einer Modellierungssprache (KMDL SE), die speziell auf die Anforderungen und Eigenschaften von Software-Prozessen ausgelegt ist.
Welche wissenschaftliche Methode wird verwendet?
Die Arbeit basiert auf einer Literaturanalyse, einer Klassifizierung von SE-Prozessen nach Kriterien des Wissensmanagements und der prototypischen Erweiterung einer existierenden Modellierungssprache.
Was wird im Hauptteil behandelt?
Der Hauptteil analysiert den Stand des Wissensmanagements in der Softwareentwicklung, definiert Kriterien für wissensintensive Prozesse und entwickelt die KMDL SE sowie zugehörige UML-Erweiterungen.
Welche Schlüsselwörter charakterisieren die Arbeit?
Zentrale Begriffe sind KMDL SE, Software Engineering, Wissensmanagement, Prozessmodellierung und Wissenskonversion.
Wie trägt das Patternkonzept zur Arbeit bei?
Die Arbeit nutzt Pattern zur Identifikation und Analyse von Schwachstellen in Softwareentwicklungsprozessen, wie z.B. bei der Allokation von Wissen oder dem Umgang mit veralteten Informationen.
Warum ist die UML-Erweiterung für die KMDL SE wichtig?
Sie ermöglicht eine nahtlose Integration der KMDL-Modellierung in gängige Softwareentwicklungsumgebungen, da sie auf bewährten UML-Mechanismen wie Stereotypen und Constraints basiert.
- Quote paper
- Mathias Uslar (Author), 2004, Referenzmodelle und Pattern in der Modellierung wissensintensiver Prozesse im Software Engineering, Munich, GRIN Verlag, https://www.grin.com/document/36505