Expertensysteme: Komponenten, Vorteile und Anwendung

Classified in Informatik

Written at on Deutsch with a size of 9,74 KB.

Expertensysteme

1. Stärken von Expertensystemen

  • Diagnose: Die Ursache wird durch die Beobachtung von Eigenschaften wie Symptomen und Sensordaten ermittelt.
  • Prognose: Mögliche Konsequenzen werden aus einer bestimmten Situation abgeleitet.
  • Interpretation: Informationen von physischen Sensoren werden in eine logische Beschreibung umgewandelt.
  • Planung: Eine Folge von Maßnahmen wird entwickelt, die in einer bestimmten zeitlichen Reihenfolge umgesetzt werden.
  • Monitoring: Die von einem Expertensystem erhaltenen Lösungen werden mit den geplanten Ergebnissen verglichen.
  • Ausbildung: Diagnose, Behandlung und Reparatur des Verhaltens von Schülern und Studenten in bestimmten Situationen. Beispiel: Flugsimulatoren.
  • Kontrolle: Die Gesamtleistung des Systems wird in allen Aspekten geregelt.
  • Design: Dient zur Konfiguration oder Erstellung von Objekten unter bestimmten Einschränkungen.
  • Debugging und Reparatur: Ohne die Implementierung einer Lösung wird ein Fehler (Bug) behoben und ein Plan für die Implementierung der Lösung generiert.

2. Komponenten eines Expertensystems

  • Wissensbasis: Enthält das Wissen eines Experten über eine Aufgabe in einer bestimmten Wissenssprache. Ihre Aufgabe ist es, das Wissen über das Problem in einer deklarativen Sprache zu speichern. Das Wissen über das Problem wird im Allgemeinen in Form von Regeln gespeichert, sodass für eine gegebene Tatsache eine andere Reihe von Umständen wahr sein muss.
  • Faktenbasis: Enthält zu jeder Zeit alle Informationen, die vom Expertensystem gesammelt wurden. Im Laufe der Ausführung des Expertensystems werden Fakten oder Umstände gesammelt, die gespeichert werden. Die Basis enthält zu jeder Zeit den aktuellen Stand des Problems in Form von wahren und falschen Tatsachen.
  • Inferenzmaschine: Verantwortlich für den Vergleich von Informationen aus den bekannten Tatsachen der Faktenbasis des Problems mit dem in der Wissensbasis gespeicherten Wissen. Aus diesem Zusammenhang ergibt sich die Entscheidung, welcher Schritt als nächstes bei der Suche nach der Lösung ausgeführt wird.
  • Modul zur Wissensakquise: Es ist nicht für die Standardisierung der Daten verantwortlich, die Benutzer in der Datenbank anmelden. Es validiert nach bestimmten Regeln, die typisch für hohe Verluste und Betriebsänderungen sind.
  • Erklärungsmodul: Seine Aufgabe ist es, Ihnen mitzuteilen, welche Situationen aufgetreten sind und welche Schritte unternommen wurden, um die Lösung zu erreichen.
  • Benutzerschnittstelle: Benutzerinteraktion in einer einfachen und effizienten Weise.

3. Vorteile von Expertensystemen im Vergleich zur menschlichen Erfahrung

"Es spiegelt getreu die menschliche Erfahrung wider."

"Es ist das einzige Werkzeug, das derzeit existiert, um die Erfahrung eines Menschen bei der Lösung eines Problems zu erfassen, zu formalisieren und automatisch zu dokumentieren."

Menschliche ErfahrungExpertensystem
Geht mit der Zeit verlorenPermanent
Schwer zu dokumentierenEinfach zu dokumentieren
Schwer zu übertragenEinfach zu übertragen
Unvorhersehbar, kann fehlschlagenKonsistent, wenn die Lösung fehlschlägt
Teuer zu erwerbenErschwinglich

4. Modell der schnellen Anwendungsentwicklung (RAD)

  • Es basiert auf dem sequentiellen linearen Modell.
  • Fügen Sie ein neues Element mit dem Namen "Komponente" hinzu.
  • Versuchen Sie, das Projekt in unabhängige Teile aufzuteilen, sodass sie individuell entwickelt werden können.
  • Jeder dieser Teile wird von einer Gruppe von Personen zugewiesen und entwickelt, die parallel zu anderen Teams arbeitet.
  • Jede Komponente wird durch ein sequentielles lineares Modell entwickelt.
  • Nachteile: Zerlegung des Projekts und der damit verbundene Koordinationsaufwand.
  • Vorteile: Hohe Geschwindigkeit bei der Entwicklung des Projekts.

5. Modell der formalen Methoden

  • Dies ist ein theoretisches Modell.
  • Die Anforderungen an das Projekt basieren auf einer Art von Symbolik oder mathematischer Notation. Nachdem das Problem durch Symbole beschrieben wurde, werden die Qualität der Projekte durch Operationen und mathematische Methoden entwickelt und geprüft. Wenn ein Fehler auftritt, wird er automatisch (mathematisch) korrigiert.
  • Nachteile: Teuer, Ingenieurausbildung, Kommunikation und Validierung mit dem Kunden, Art des Projekts, das dieses Modell erlaubt.
  • Es wird in Umgebungen mit hoher Sicherheit und Komplexität (Raumfahrt) und vor allem in wissenschaftlichen Systemen verwendet.

6. Reengineering-Aktivitäten

  • Bestandsanalyse: Softwareunternehmen sollten eine gründliche Bestandsaufnahme der entwickelten Anwendungen haben. Diese Bestandsaufnahme würde aus 16 Elementen bestehen, darunter:
    • Anwendungsname, Geburtsjahr, Anzahl der Updates, Änderungen des Mitarbeiteraufwands.
    • Datum der letzten Änderung, Stress-System, in dem sie sich befindet, Anwendungen.
    • Datenbanken, auf die zugegriffen wird, Anzahl der Fehler in den letzten 18 Monaten.
    • Anzahl der installierten Computer, Wartungsplan und wichtige Punkte.
    • Kostenvoranschlag für die Langlebigkeit, jährliche Wartung und Betrieb.
  • Diese Bestandsaufnahme sollte mindestens zweimal pro Jahr aktualisiert werden. Einige Felder sollten bei Bedarf sofort aktualisiert werden.
  • Umstrukturierung von Dokumenten: In Legacy-Anwendungen, in denen es wenig oder gar keine Dokumentation gab, können folgende Fälle auftreten:
    • Fall 1: Das System ist zu komplex und zu alt. Außerdem hat das System keine Lebensdauer mehr. In diesen Fällen lohnt es sich nicht, neue Dokumentation zu erstellen.
    • Fall 2: In diesem Fall wird nur neues Material für die Wartung erstellt (Dokumentation der neuen Software). Da es sich um eine Ergänzung zu dem handelt, was bereits vorhanden ist, kann es schrittweise vervollständigt werden.
    • Fall 3: Es ist zwingend erforderlich, eine vollständige Dokumentation zu erstellen. Es wird versucht, das Wichtigste zusammenzufassen.
  • Reverse Engineering: Ist der Mechanismus, der es uns erlaubt, eine Studie über den bereits entwickelten Anwendungscode durchzuführen, um eine abstrakte Darstellung zu extrahieren, die uns seinen Betrieb beschreiben kann. Diese abstrakte Darstellung sind eigentlich die verschiedenen Modelle der Analyse und des Designs.
  • Code-Umstrukturierung: Diese Aktivität ist immer vorhanden, wenn eine Entscheidung über die Wartung getroffen wird (der häufigste Prozess im Reengineering). Sie besteht aus der Analyse des vorhandenen Codes in robusten Anwendungen, die jedoch Schwächen in einigen Modulen aufweisen. Wir analysieren die identifizierten Probleme und prüfen die Möglichkeit, sie zu korrigieren, zu strukturieren und zu verbessern oder sie durch den Code effizienter zu machen. Es wird davon ausgegangen, dass die Anwendungsarchitektur solide ist und dass es notwendig ist, einige Codemodule zu verbessern. Wenn der Code geändert wird, muss sichergestellt werden, dass keine Nebenwirkungen für das reibungslose Funktionieren des Gesamtsystems auftreten.
  • Daten-Umstrukturierung: Ein Programm mit einer schwachen oder schlecht konzipierten Datenstruktur wird sehr schwierig anzupassen und zu verbessern sein. Für viele Anwendungen ist die Datenarchitektur mittel- und langfristig wichtiger als der eigentliche Code. Im Gegensatz zum Code ist es für die Datenumstrukturierung zwingend erforderlich, eine Abstraktionsebene zu kennen, um die Art des Problems genau zu verstehen. Dies motiviert die Notwendigkeit für Reverse Engineering (wenn keine Dokumentation der Analyse vorhanden ist) und damit ergibt sich die Analyse und das Design der Anwendung. Von hier aus können Sie alle erforderlichen Datenstrukturen und Eigenschaften kennen. Ein klassisches Beispiel für die Datenumstrukturierung sind Legacy-Anwendungen, die in sogenannten Flat Files verwendet wurden. Dies sind Zeichenketten, die durch ein Sonderzeichen oder ein Flag getrennt sind, das die verschiedenen Felder voneinander trennt. Es ist auch sehr üblich, dass Felder in einigen Tabellen hinzugefügt und sogar neue Tabellen erstellt werden müssen. Die Datenumstrukturierung besteht darin, eine vollständige Architektur von Entitäten und Beziehungen zu erstellen. Aufgrund des starken Einflusses der Daten auf das Programm wird eine Datenumstrukturierung unbedingt von einer Code-Umstrukturierung und auch von einer Änderung der Architektur des Programms begleitet.
  • Progressive Engineering: Versucht aktiv, über einen automatisierten Prozess alle Anforderungen an ein bestimmtes Produkt oder eine Softwareanwendung zu sammeln. Durch diese Anforderungen und automatisch wird der Prozess in der Lage sein, die Software für diese Anwendung zu verbessern. Die fortschreitende Technik gilt für sehr spezifische Domänen, immer mit CASE-Tools wie der Generierung von Datenbanken und den zugehörigen Prozessen für die Datenbank durch ein automatisiertes Werkzeug und auch der Verbesserung der integrierten Datenbank durch ein anderes Werkzeug.

Entradas relacionadas: