Wissensmanagement und Software Engineering - Expert Assistance -

    19. Juni 2001 von Dr. Bernhard von Guretzky

    Dieses Papier ist der erste Teil einer Serie von Artikeln, in der die Bedeutung des Wissensmanagement für das Software Engineering beschrieben wird. Die diesem Ziel dienenden Schlüsseltechnologien sind ´Expert Assistance´, das ´Kooperative Arbeiten´, ´Projektmanagement und Decision Support´, die ´Wiederverwendbarkeit´ und das ´Reverse Engineering´. Dieser Teil ist der ´Expert Assistance´ gewidmet.

    1. Problemstellung

    Wesentliches Merkmal bei der Durchführung großer Softwareprojekte ist der hohe Grad an Arbeitsteilung, der aus dem Umfang und der Komplexität eines Gesamtsystems resultiert. Als ´groß´ werden üblicherweise Systeme bezeichnet, die über mehr als 1 Mio. Programmzeilen (source lines of code = ´sloc´) verfügen. Bei der Definition von ´groß´ ist zusätzlich die Komplexität des Systems mitsamt den sicherheitstechnischen Anforderungen zu berücksichtigen. So stellt die Entwicklung eines Avioniksystems mit ca. 0,5 Mio slocs für den Airbus eine ganz andere Herausforderung dar, als etwa die Programmierung eines Buchhaltungssystems mit 5 Mio slocs.

    Die bei solchen Projekten notwendige und durch die Globalisierung der Forschung und Entwicklung noch forcierte Arbeitsteilung hat zur Folge, dass die vielen beteiligten Projektmitarbeiter Wissen über das zu entwickelnde Systeme untereinander austauschen müssen. Entsprechend der verschiedenen Aufgaben der einzelnen Mitarbeiter kann es sich dabei Wissen über

    • den Entwicklungsprozess (Software Engineering) selbst,
    • über das Fachgebiet, für das dieses System entwickelt wird (Anwendungswissen),
    • über die beteiligten Systeme oder Produkte (Produktwissen) und
    • sog. Kontext- bzw. organisationales Wissen

    handeln. Die notwendige Kommunikation über diese verschiedenen Wissensarten wird durch die Anzahl der beteiligten Personen noch zusätzlich behindert, da bei großen Projektteams die Einführung weiterer Hierarchieebenen und projektspezifischer Rollen notwendig wird, die den informellen Austausch untereinander eher behindern denn fördern. Der Kommunikationsfluss für das Wissen muss also formalisiert werden.

    Ein weiteres Problem großer Softwareprojekte ist ihre lange Laufzeit. Hier ist nicht nur die Entwicklungsphase von Bedeutung, sondern ebenso die Wartungs- und Updatephasen. Insgesamt addieren sich dieses Zeiten z.B. bei Anwendungen in der Luft- und Raumfahrt (Spaceshuttle, B747) leicht auf 40 bis 50 Jahre, bei den Energieversorgungsunternehmen sind es etwa 10 Jahre weniger. Solche langen Projektlaufzeiten haben naturgemäß eine hohe Personalfluktuation zur Folge; Wissensträger scheiden regelmäßig aus und müssen durch neue Mitarbeiter ersetzt werden. Je länger die Projektlaufzeit, desto größer ist zudem der Wissensverlust aller vier o.g. Wissensarten.

    Im vorliegenden Papier wird untersucht, welchen Beitrag das Wissensmanagement zur Lösung dieser Probleme beitragen kann. Dabei geht es um folgende Schlüsseltechnologien:

    • Expert Assistance
    • Computer Supported Collaborative Working
    • Projektmanagement und Decision Support
    • Wiederverwendbarkeit
    • Reverse Engineering

    Die ersten Bemühungen zu diesem Thema sind nicht neu, sondern gehen wohl schon zwanzig Jahre zurück. Das erste Projekt, in dem Methoden des Wissensmanagement zum Einsatz kamen, um die Produktivität von Programmierern zu erhöhen, war der ´Programmer's Apprentice´ des MIT, in dem bestimmte Rollen im Softwareentwicklungsprozess durch kontextabhängiges Computerlernen und intelligente Mensch-Maschine-Schnittstellen unterstützt wurden: Der Kernansatz dabei war, das Know-how des Starprogrammierers den übrigen Projektmitarbeitern online zur Verfügung zu stellen.

    Weitere Ansätze bestanden darin, formale Sprachen zur Beschreibung der Anwendungskontexte zu benutzen und auf dieser Basis automatisch Quellcode zu erzeugen. Der Aufwand, diese Anwendungen formal zu beschreiben, wuchs jedoch exponentiell mit deren Komplexität, so dass diese Methode nur für kleine Systeme anwendbar blieb. Außerdem existieren keine logisch widerspruchsfreien formalen Sprachen, so dass praktisch automatisch Fehler erzeugt werden, die durch mühsames Testen wieder entfernt werden müssen. Möglicherweise ist jedoch hier ein Durchbruch in der Produktentwicklung gelungen, wie in [6] beschrieben.

    In der zweiten Hälfte der achtziger Jahre wurde dann eine ganze Reihe von öffentlich geförderten Programmen sowohl in Amerika (vom Verteidigungsministerium), als auch in Europa (durch die Forschungsförderungsprogramme Eureka und Esprit) initiiert, um die Entwicklung großer Softwareprojekte planbarer, billiger und effizienter zu gestalten und die Fehlerhäufigkeit solcher Systeme deutlich zu verringern:

    • Software Technology for Adaptable Reliable Systems (STARS)
    • Software Productivity Consortium (SPC)
    • DARPA's Strategic Computing Initiative (SCI)
    • Eureka's Aerospace Intelligent Management and Development Tool for Embedded Systems (AIMS)
    • Eureka's European Software Factory (ESF)

    Die Hauptzielrichtung dieser Initiativen konzentrierte sich auf folgende Punkte:

    • Das für das Projekt relevante Wissen aller beteiligten Mitarbeiter muss erhöht werden.
    • Die Anzahl der wiederverwendbaren Objekte ist zu erhöhen.
    • Der Prozess der Codegenerierung muss möglichst automatisiert werden.
    • Die Anzahl fehlerhafter Objekte (Anforderungen, Spezifikationen, Testprozeduren, Softwaremodule) ist zu senken.
    • Die Planung und Projektverfolgung ist zu verbessern.

    Dabei wurde versucht, in einem integrierten Ansatz alle Phasen des Softwareentwicklungsprozesses durch entsprechende Technologien zu unterstützen. Herauskamen die sogenannten IPSEn (integrated project support environment), wobei je nach Komplexität das ´P´ für Project bzw. Programming stand. Diese Ansätze blieben jedoch unvollständig, denn sie konzentrierten sich meist auf die Entwicklungsphasen ´Anforderungsanalyse´ und ´Design´. Der Ansatz der kompletten Integration der Entwicklungsarbeiten, von der Anforderungsanalyse bis zur Wartung, erwies sich als zu komplex und zu aufwendig in der Anwendung, so dass heute wissensbasierte Ansätze sich im wesentlichen auf einzelne Entwicklungsphasen wie besonders das ´requirements engineering´, die ´software inspection´ oder die Qualitätskontrolle beschränken.

    Im folgenden Abschnitt werden die theoretischen und technischen Möglichkeiten, diesen Zielen näher zu kommen, beschrieben.

    2. Was zeichnet einen Experten aus?

    Man kann davon ausgehen, dass es in keinem Projektteam einen ungefähr gleichverteilten Level des Wissens gibt, d.h. die Produktivität innerhalb der beteiligten Mitarbeiter ist sehr unterschiedlich. Sie ist u.a. abhängig von der Expertise, dem Know-how des Mitarbeiters, das durch folgende Punkte beeinflusst wird:

    • Ihm stehen mehr und passendere Informationen zu Verfügung, auf deren Grundlage er seine Entscheidungen treffen kann. Zu diesen Informationen gehört insbesondere das Wissen über gute und schlechte Lösungsansätze, die sog. lessons learnt.
    • Er kann die Tragweite seiner Entscheidungen besser abschätzen, da er über analytische Fähigkeiten verfügt und diese in einem breiter gefächerten Rahmen anwenden kann.
    • Er verfügt über die Fähigkeit, in kritischen Fällen Prioritäten zu setzen; eine Eigenschaft die gerade im Projektmanagement von herausragender Bedeutung ist.
    • Er kann Probleme von verschieden Standpunkten aus betrachten und sie dadurch auf unterschiedliche Art und Weise beschreiben. Die Anwendung seines impliziten Wissens (tacit knowledge) erlaubt es ihm, frühzeitig Irrwege im Design oder der Entwicklung zu erkennen und schon entwickelte Bausteine aus anderen Zusammenhängen zu verwenden.

    All diese Eigenschaften führen dazu, dass Experten ihre Aufgaben nicht nur in besserer Qualität, sondern diese auch i.a. auch schneller und den Spezifikationen genauer entsprechend entwickeln. Expert Assistance kann also als ein computerisierter intelligenter Assistent betrachtet werden, der allen Projektmitarbeitern unterschiedlicher Expertise zu Verfügung steht und diese in die Lage versetzen soll, ihre Aufgaben in gleicher Qualität und Quantität zu erfüllen.

    3. Expert Assistance

    Ein intelligenter Assistent soll den Benutzer in seiner Arbeit in effektiver und umfassender Art und Weise unterstützen, ohne ihn durch unnötig störende Hinweise oder Ratschläge zu unterbrechen. Die Unterstützung soll dabei auf verschiedenen Ebenen stattfinden:

    • auf der Systemebene: mittels passiver oder aktiver Unterstützung
    • auf der Benutzerebene: mittels Benutzerführung und Computer Based Tutoring

    Um diesen Anforderungen zu genügen, muss der intelligente Assistent über eine Reihe von Eigenschaften verfügen, die von kontextsensitiven online Hilfefunktionen (Dokumentation, Tipps, Fehlerhinweise etc.) bis zu komplexen, wissensbasierten Unterstützungssystemen (Überwachung- und Lehrstrategien, Auswertung des Benutzerverhaltens etc.) reichen.

    Ein solcher Assistent verfügt über einige grundlegende Eigenschaften, die dem Benutzer stets zur Verfügung stehen, unabhängig davon mit welcher Ebene - der Benutzer- bzw. der Systemebene - er gerade kommuniziert. Diese Funktionen können unmittelbar abgerufen werden (wenn sich der Assistent im ´passiven´ Modus befindet), oder sie werden ´selbstständig´, wenn im ´aktiven´ Modus, aufgerufen. Auf der Ebene der Benutzerführung benötigt der Assistent zudem Wissen über ´sein´ Gegenüber, über den Benutzer also. Dazu gehört die Möglichkeit, die Arbeit des Benutzers auszuwerten und zu evaluieren, um mögliche Fehler, Umwege oder Wiederholungen zu beurteilen und dadurch ein möglichst komplexes Modell des Projektmitarbeiters, seiner Rollen und seiner Aufgaben zu erzeugen. Die Trainingsfunktion des Assistenten muss dabei über pädagogisches Grundwissen und Lernstrategien verfügen.

    Dieses Benutzermodell ist eine Beschreibung der Person, mit dem der Assistent interagiert und hat folgende Dimensionen:

    • ein sog. ´normatives Modell´ mit typischen Eigenschaften eines Nutzers und Differenzierungsmerkmalen zwischen mehreren Nutzern (normative or individual models)
    • ein sog. "Verhaltensmodell" (behavioural model), das individuelle Ausprägungen, Eigenschaften und Vorlieben festhält
    • ein sog. "Wissensmodell", in dem sowohl die Expertise des Benutzers, als auch das Fachgebiet, das explizite Wissen also, beschrieben wird (explicit model)

    Alle drei Modelle haben inhärente Nachteile: Während das normative Modell eine statische Beschreibung der Situation und der handelnden Personen gibt, verändert sich das Verhaltensmodell entsprechend der Lernerfolge laufend. Das explizite ist, im Grunde wie das normative, auch ein statisches Modell, jedoch ist davon auszugehen, dass sich - gerade in langfristig angelegten Projekten - auch die explizite Wissensbasis ständig ändert.

    4. Ziele von Expert Assistance

    Ein solch computerisierter Assistent erhöht das Know-how des gesamten Projektteams und trägt dadurch dazu bei, einige klassische Probleme des Software Engineering zu lösen oder doch immerhin zu lindern:

    • Durch die Vorgabe eines einheitlichen Vorgehensmodells mit den dazugehörigen Prozeduren für das Projektmanagement und standardisierte Programmiervorgaben werden im Projektteam generelle Entwicklungsstandards durchgesetzt.
    • Eine Automatisierung einfacher (langweiliger und damit fehleranfälliger) Operationen ist durch den Assistenten möglich. Dies beinhaltet z.B. die Identifizierung wiederverwendbarer Objekte in Anforderungs-, Design-, Test- oder Modulkatalogen durch Abgleich bestimmter Charakteristiken, oder die Durchführung von Standardtests.
    • Durch ein weitgehend automatisiertes Changemanagement lassen sich Änderungen im System leicht verfolgen, was spätere Aufwendungen für die Fehlerdiagnose und Wartung drastisch reduzieren hilft.
    • Mögliche Stresssituationen, hervorgerufen durch Managementfehler, lassen sich durch intelligente Supervision des Assistenten reduzieren.

    Es wird passives vom aktiven Expert Assistance unterschieden. Während ersteres erst auf Anforderung des Benutzers aktiv wird, wie beispielweise kontextsensitive Hilfefunktionen oder online-Dokumentationen, übernimmt im letzteren Fall das System (der Assistent) die Initiative. Es kann von sich aus Rat in Form einer Benutzerführung zur Verfügung stellen, oder, im weitest gehenden Fall, Kontrolle über Lernsitzungen übernehmen, falls der Mitarbeiter spezielles Training benötigt (Computer Based Tutoring).

    5. Passives Expert Assistance

    Mit passiver Expert Assistance werden alle Unterstützungsaufgaben des Systems bezeichnet, die der Benutzer selbst aufruft und über die er die Kontrolle behält, d.h. der Dialog zwischen System und Benutzer liegt vollständig in seiner Hand. Dazu gehören:

    • Warnhinweise und allgemeine Hilfefunktionen,
    • Ratschläge im Zusammenhang mit der jeweiligen Arbeit des Nutzers,
    • Zur Verfügung stellen von Hintergrundwissen in Form von online Dokumentationen, Manualen etc. oder
    • intelligente Suchfunktionen in Datenbanken u.ä.

    Es ist klar, dass im Falle von Ratschlägen im Zusammenhang mit der jeweiligen Arbeit des Nutzers die Komplexität des intelligenten Assistenten abhängig davon ist, ob der Nutzer selbst in online zur Verfügung stehenden Wissensbasen sucht, oder diese Aufgabe dem System überlassen wird. In letzterem Fall muss die Arbeit des Nutzers analysiert werden, mussen seine Strategien, seine Performanz, seine Fehler und Ziele bewertet werden, aufgrund deren das System selbstständig beispielsweise Agenten oder Suchmaschinen beauftragt, die Datenbanken über das betreffende Wissensgebiet, die eingesetzte Arbeitsmethodik und Arbeitshilfsmittel durchsuchen.

    6. Aktives Expert Assistance

    Behält der intelligente Assistent stets die Initiative, kann er die Arbeit des Nutzers jeder Zeit unterbrechen, ihr gegebenenfalls eine andere Richtung geben oder besondere Trainingsfunktionen durchführen, so wird von aktivem Expert Assistance gesprochen, mit dem zwei wesentliche Ziele verfolgt werden:

    1. Verschiedene Projektmitarbeiter sollen in die Lage versetzt werden, die ihnen übertragenden Aufgaben in vorgegebener Zeit und Qualität durchzuführen.
    2. Die Expertise, das Know-how des gesamten Teams soll erhöht werden, so dass anschließend Mitarbeiter spezifische Aufgaben erledigen können, die bislang Experten erforderten.

    Im aktiven Modus übernimmt der Assistent die Rolle eines Supervisors, der die Aktionen des Nutzers analysiert und eingreift, wenn er Fehler oder schon ein Zögern diagnostiziert, um Unterstützung anzubieten. Dieser Modus kommt der Vorstellung einer intelligenten Benutzerführung am nächsten. So kann im Fehlerfall entweder das System Informationen über mögliche Ursachen anbieten oder in einem Frage- und Antwortdialog eintreten und so über mögliche Alternativen Auskunft geben, die einer Problemlösung dienlicher sind als die Vermittlung statischen Wissens. Diese Strategie scheint bei eher ungeübten Nutzern erfolgversprechend, da sie ausdrücklich das Fehlermachen zulässt und dadurch i.A. ein höherer Lernerfolg garantiert wird.

    Bei geübteren Benutzern ist dagegen eine andere Strategie sinnvoll. Hier können Flüchtigkeitsfehler automatisch bzw. im Dialog korrigiert werden. Ein Lerndialog würde in einem solchen Fall als störend und kontraproduktiv empfunden werden.

    In beiden Modi muss jedoch der Assistent Interpretationen über die Ziele, die Intentionen und den Inhalt der Arbeit des Nutzers anstellen können auf deren Grundlage er seine Unterstützungsstrategie ausrichtet. Dazu wird folgendes Wissen vom Assistenten benötigt:

    • Methodisches Wissen über die Entwicklungsaufgaben (Arbeitsabläufe, Vorgehensmodelle, Programmiersprachen, Betriebssysteme u.ä.)
    • Wissen über das Anwendungsgebiet des zu entwickelnden Softwaresystems
    • Wissen über das Verhalten, die Expertise, die Eigenschaften des einzelnen Nutzers
    • Eine Strategie des Beobachtens, Beurteilens und Entscheidungfällens

    Zusätzlich dazu muss besonderen Wert auf die Wissensverteilung, also die Art und Weise wie Wissen präsentiert wird, gelegt werden. Dies muss nicht unbedingt in natürlicher Sprache geschehen.

    7. Computer Based Tutoring

    Lernsysteme dienen dazu, ungeübte Nutzer über generelle wie spezifische Themenbereiche zu instruieren. Dabei drei verschiedene Möglichkeiten sind denkbar:

    • Ausbildung: Darlegung verschiedener Konzepte eines Fachgebiets, so dass der Nutzer lernt die von ihm zu lösenden Probleme in abstrakten Termini zu beschreiben.
    • Training: Hier werden Informationen dem Nutzer so bereitgestellt, dass bestimmte Prozeduren oder Ziele erreicht werden können.
    • Produktivitätssteigerung: Hier liegt der Schwerpunkt des Trainings darin, eine eng eingegrenzte Tätigkeit (z.B. Programmier-, Test- oder Routineaufgaben im Projektmanagement) so schnell und so gut wie möglich auszuführen.

    Ein solches Lernsystem basiert auf zwei verschiedenen pädagogischen Prinzipien, dem sog. sokratischen Prinzip und dem ´learning-by-doing´-Prinzip. Ersteres erschöpft sich meist in Fragen und Antworten, ohne dabei empirische Schlüsse anzuwenden oder Erfahrungswissen zu vermitteln. Die Kontrolle behält stets das System. Daher kann meist nicht sichergestellt werden, ob der Nutzer die Hintergründe wirklich verstanden hat, so dass er das vermittelte Wissen in einem anderen Zusammenhang auch selbstständig anwenden kann. Das zweite Prinzip gibt dem Nutzer mehr Eigenständigkeit im Ablauf des Dialogs mit dem Assistenten. Jeder Schritt wird dabei mit der Vorgehensweise eines ´normativen Experten´ verglichen, wobei der Dialog darauf abzielt, den Nutzer an die Vorgehensweise dieses Experten heranzuführen. Der Vorteil dieses Prinzips liegt darin, dass Lernfortschritte sofort sichtbar werden, was natürlich die Motivation zur weiteren Nutzung des Assistenten erhöht. Der Nachteil liegt darin, dass nicht nur das Expertenwissen, welches sich ja laufend ändert, dem System zu Verfügung stehen muss, sondern auch andere mögliche, ebenfalls erfolgreiche Vorgehensweisen und Lösungsansätze.

    Beide Prinzipien müssen die Handlungen des Benutzers auswerten können, um daraus Rückschlüsse zu ziehen, was er weiß, was er nicht weiß oder was er glaubt zu wissen, und, darauf aufsetzend, ihm das notwendige Wissen in geeigneter Form zur Verfügung zu stellen bzw. zu vermitteln. Bekanntlich ist es schwer, über die eigenen Stärken und Schwächen Auskunft zu geben. Dies muss das System aus Handlungen und durch einen geeigneten Dialog herausfinden. Den folgenden Fragen muss sich also ein Lernsystems stellen:

    • Lernstrategie: Wie soll das Wissen den Nutzern zur Verfügung gestellt werden?
    • Problemlöser: Welches Wissen wird dem Nutzer zur Verfügung gestellt?
    • Benutzermodell: Was weiß der Nutzer und weiß er nicht?

    8. Benutzermodell

    Wie oben ausgeführt soll der intelligente Assistent den Benutzer durch den Prozess der Softwareentwicklung und durch die Softwareentwicklungsumgebung selbst führen. Dazu gibt es, je nach Anzahl der beteiligten Mitarbeiter, mindestens zwei Benutzermodelle: Ein Mastermodell, das sich an der Vorgehensweise eines virtuellen Experten ausrichtet und ein Benutzermodell, das versucht

    • zu erkennen, was der Mitarbeiter gerade tut,
    • seine Ziele zu definieren
    • und ein Modell zu erstellen, in dem er sich gerade bewegt, um daraus Unterschiede zum virtuellen Experten ableiten zu können.

    Falls das Benutzermodell nicht in der Lage ist, diese Ziele zu erreichen, muss es in einem Dialog versuchen, das dafür notwendige Wissen zu erwerben.

    Wissensbasen, die den Experten und den jeweiligen Wissensstand des Benutzers mit seinen Missverständnissen oder Wissenslücken (im Vergleich zum Experten) widerspiegeln, sind integraler Bestandteil des Benutzermodells. Der Aufbau dieser Wissensbasen erfolgt durch eine Beschreibung des gegenwärtigen Verständnisses des Wissensgebiets und der Werkzeuge der Softwareentwicklungsumgebung. Dies kann durch Auswertungen erfolgen, wie und in welchem Umfang der Nutzer auf online- Hilfefunktionen oder Lernsysteme zurückgreift. Das Benutzermodell ist eng verknüpft mit aktivem Expert Assistance, da es aufgrund einer Tätigkeitsanalyse und des Vergleichs mit dem Expertenmodell selbstständig entscheidet, zu welchem Zeitpunkt es die Arbeit des Nutzers unterbricht und ihm Training anbietet. Eine solche Tätigkeitsanalyse dient dazu, der Situation entsprechenden und dem Individuum angepassten Rat geben zu können. Hierzu gibt es eine Reihe von Lösungsansätzen, die im Folgenden beschrieben werden.

    Der einfachste Ansatz ist, sich auf ein einheitliches normiertes Benutzermodell zu beziehen. Hier würden z.B. neu zu dem Projekt hinzustoßende Mitarbeiter bestimmte Tätigkeiten im Entwicklungsprozess vom System verwehrt werden. Der Vorteil wäre eine Reduzierung möglicher Aufgaben, andererseits könnte das zu Frustrationen, zu einem Gefühl der Bevormundung bei diesem Mitarbeiter führen, falls er nicht dem statischen normativen Modell entspricht.

    Das Know-how, also das dem Nutzer zur Verfügung stehende und anwendbare Wissen, kann etwa durch eine Schlagwortanalyse auf Basis seiner Such- oder Hilfsanfragen an das System bestimmt werden. Die Schwierigkeit besteht hier darin, aus allgemein formulierten Fragen, den Know-how-Level zu bestimmen. Bei den Antworten sollte daher, über Zwischenschritte abgesichert, eher von einer höheren Beurteilung des Nutzers ausgegangen werden, um auch hier Frustrationen zu vermeiden und gegebenenfalls Neugierde zu wecken. Auf jeden Fall muss die tatsächliche Strategie bei der Bewertung der Nutzer ein einstellbarer Systemparameter sein.

    Ein komplexerer Ansatz zur Bewertung des Know-hows liegt in der Evaluation des Nutzerverhaltens und in der Analyse seiner Fehler. Typische Fehlersituationen mit den zugehörigen best practices oder lessons learnt werden dabei im normativen Modell gespeichert und können mit dem tatsächlichen Verhalten verglichen werden. Erkennt das System ein fehlerhaftes Verhalten, kann es leicht Verbesserungsvorschläge zu machen.

    Schließlich werden in einem top-down-Ansatz das Verhalten, die Fehler und die erfolgversprechendensten alternativen Ansätze aller beteiligten Mitarbeiter analysiert, um daraus projekttypische Verhaltensmuster abzuleiten. Dieser Ansatz ähnelt eher einem weniger strikten Ratgeber.

    9. Wissensbasen

    Das größte Problem bei der Entwicklung eines intelligenten Assistenten besteht im Aufbau der Wissensbasen, die mehrere Gebiete abdecken müssen, und in der effizienten Darstellung expliziten und impliziten Wissens. In der Methodik von Probst und Romhardt (siehe [1]) handelt es sich also um die Bausteine ´Wissenserwerb´, ´Wissensentwicklung´ und ´Wissensverteilung´.

    Aktives Expert Assistance basiert ganz wesentlich auf einer Reihe von Wissensbasen, die das betreffende Sachgebiet und die Arbeitsmethodik beschreiben. Diese Wissensbasen enthalten ´positive´ oder ´negative´ Erfahrungen. Sie werden in ihrer Gesamtheit als ´Experience Factory´ (siehe u.a. [4], [5]) bezeichnet. Beispiele sind etwa:

    • Methoden der Softwareentwicklung, Softwareergonomie, ´gute´ und ´schlechte´ Programmiertechniken, Realzeitverhalten, Fehlerrobustheit, Parallelverarbeitung etc.
    • Unterstützung und Führung für das im Projekt verwendete Vorgehensmodell, Methoden des Projektmanagement und der Personalführung
    • Methodische Unterstützung des Design und der Implementierung wie z.B. Strukturierte Analyse, Datenmodellierung mit Entity-Relationship-Attributen, objekt-orientiertes Design etc.

    Diese Wissensbasen dienen gleichzeitig dazu, technisches und Führungswissen zu bewahren. Eine solche Experience Factory dient der Know-how-Konservierung. Das Erwerben und Aktualisieren von Wissen sowie seine Darstellung ist jedoch eine der technisch schwierigsten und zeitraubendsten Aufgaben des Wissensmanagements (s.o.). Es gibt eine Reihe von Methoden und sie unterstützende Werkzeuge zum Wissenserwerb (Formale Sprachen, semantische Netze, Regelsysteme zur Darstellung prozeduralen Wissens, Frames, Scripts, etc.), die den mit diesem Prozess verbundenen Aufwand reduzieren helfen.

    10. Schlussbemerkungen und Links

    Es gibt bis jetzt nur wenige Erfahrungen auf dem Gebiet der intelligenten Assistenten, da es noch keine Komplettlösungen am Markt gibt. Ansätze dazu (ohne Anspruch auf Vollständigkeit erheben zu wollen) sind in [4] und [5] beschrieben. Daher sind die obigen Ausführungen eher als Beschreibungen eines zukünftigen aktiven intelligenten Assistenten zu verstehen. Bislang konzentrieren sich die Produktentwicklungen auf passive Unterstützungssystem für ´alle´ Benutzer, d.h. die Implementierung dynamischer Nutzermodelle mitsamt der Evaluierung des Nutzerverhaltens und den dafür notwendigen Lehrstrategien steckt noch in den Kinderschuhen.

    [1] http://www.cck.uni-kl.de/wmk/papers/public/Bausteine/

    [2] Zieldynamik erfordert integriertes Lifecycle - Management für eGovernment - Lösungen (Organisation & IT) - Teil A

    [3] Peter Tabeling: Ingenieurmäßige Modellierung - Voraussetzung einer effizienten Wissensverteilung bei der Softwareentwicklung, Hasso Plattner Institut, 2001

    [4] http://sern.ucalgary.ca/~jeff/experience.html

    [5] http://www.iese.fhg.de/home/althoff/documents/pdf_files/ewcbr00.pdf

    [6] http://www.synapse-solutions.co.uk/media/media07.htm  

    [Standard] Namensnennung 3.0 Deutschland - Weitergabe unter gleichen Bedingungen 3.0 Deutschland
    Lizenziert unter einer Creative-Commmons Lizenz

Kommentare

Das Kommentarsystem ist zurzeit deaktiviert.