I-EDV-HOME

  1. Einleitung

  2. Themen als Softwareprojekte

  3. Das vernetzte Haus; erste Überlegungen

  4. Übungsaufgaben


GRUNDLAGEN DER INFORMATIK WS 0203 - Vorlesung
VL5: 'Künstliche Intelligenz' und 'Vernetztes Haus' als Informatik-Projekte

                        Achtung -> Skript ist noch nicht vollständig !!!
                        

AUTHOR: Gerd Döben-Henisch
DATE OF FIRST GENERATION: Oct-17, 2002
DATE OF LAST CHANGE: Oct-24, 2002
EMAIL: Gerd Döben-Henisch



1. Einleitung

Als Reaktion auf die Übungsaufgaben zur ersten Vorlesung haben 3 Teams zeitgerecht Übungsaufgaben abgegeben; ein viertes Team lieferte den Beitrag erst später ab, sodass dieser nicht mehr berücksichtigt werden konnte.

In einer stark idealisierenden Darstellung kann man die drei Beiträge etwa wie folgt zusammenfassen und anordnen:


INTELLIGENZ

Klärung des Begriffs Intelligenz ausserhalb der Informatik als mögliche Aufgabenstellung für die Informatik

MASCHINELLE INTELLIGENZ

Umsetzung des Begriffs Intelligenz mit Mitteln der Informatik, um damit Software (und eventuell Hardware) mit neuen Leistungsmerkmalen zu entwickeln.

VERNETZTES HAUS

Analyse der Anwendungssituation des privaten Wohnbereiches bzgl. des Einsatzes von Hardware und Software, um das Verhaltensprofil des Wohnbereiches gegenüber seinen Bewohnern in verschiedenen Teilbereichen zu 'optimieren'.


Alle drei Themen sind sowohl im Lichte des Grundsatzpapieres IT2006 wie auch im Lichte der laufenden Entwicklungen im IT-Bereich sehr wohl aktuell, wenngleich überwiegend erst noch in einer 'Frühphase', was die Reife der Technologien und die Erschliessung der Märkte angeht. Dennoch eignen sie sich sehr gut, um alle wichtigen Aspekte der Informatik zu verdeutlichen. Aus diesem Grund soll in dieser Vorlesung das Experiment unternommen werden, dass die geplanten Vorlesungsinhalte unter den obigen Leitthemen entwickelt werden sollen. Eine Mitwirkung der Studenten an ihrer 'eigenen' Vorlesung ist jederzeit möglich. Es besteht die Möglichkeit, jederzeit durch eigene webfähige Ausarbeitungen Beiträge zum Thema zu liefern, für die es leistungspunkte geben kann. Evaluierte Beiträge müssen auch vor den anderen Studenten vertreten werden. Die Beiträge werden bei Zustimmung durch die Autoren in die Präsentation dieser Vorlesung eingefügt. Ferner werden in der Parallelveranstaltung Programmieren 1, soweit dies der Leistungsstand zulässt, Themen aus der Grundlagenvorlesung berücksichtigt.

Es muss allerdings geklärt werden, in welcher Form sich die von den Studententeams eingeführten Themen so organisieren lassen, dass einerseits die wichtigen Inhalte einer Einführung in die Informatik zur Sprache kommen und ferner, ob und wie die Studententeams eine reelle Chance haben, eigene originelle Beiträge zu leisten.

Unter Berücksichtigung der begrenzten Möglichkeiten des Vorlesungsrahmens erscheint folgendes Vorgehen erfolgversprechend:

  1. Die neuen Themen werden wie Software-Projekte behandelt.

  2. Der Dozent entwickelt einen minimalen Rahmen zu diesen Projekten mit möglichen Aufgabenstellungen

  3. Die Studententeams können im Rahmen ihrer Interessen und Fähigkeiten versuchen, Aufgaben aufzugreifen und sie umzusetzen

  4. Alle realisierten Beiträge werden auf der Webseite dieser Vorlesung verfügbar gemacht.

  5. Es steht zukünftigen (oder anderen) Lehrveranstaltungen frei, von diesem Material Gebrauch zu machen, und die Projekte weiter zu entwickeln.


START

2. Themen als Softwareprojekte

Es besteht jetzt also die Aufgabe, die durch die Teams eingeführte Themen als Softwareprojekte zu entwickeln. Ein erster grober Eindruck davon, was ein Softwareprojekt ist, wurde zu Beginn der Vorlesung 'Programmieren 1' gegeben, als der Kontext des Programmierens erläutert wurde. Danach kann man grob die folgenden Aufgaben unterscheiden:

  1. Problemanalyse (Fachkonzept): es muss mit dem Auftraggeber geklärt werden, in welcher Umgebung für welche Benutzer welche Aufgaben modelliert werden sollen. Dabei macht es einen gravierenden Unterschied, ob die Anwendungssituation als 'quasi statisch' anzunehmen ist oder Bereiche enthält, die als 'veränderlich' einzustufen sind. Ferner ist eine grundsätzliche Einschätzung über die generelle 'Machbarkeit' des Projektes zu geben, über eine mögliche 'Roadmap', falls das Projekt in Teilprojekte zerlegt werden muss, sowie eine Abschätzung über die möglichen Kosten einschliesslich Folgekosten. Da schon an dieser stelle des Softwareprojektes nicht nur ein ziemlicher aufwand notwendig ist, sondern auch ein maximales Fachwissen aufgeboten werden muss, spricht man hier auch von der Erstellung eines Fachkonzeptes, auf dessen Basis dann erst die genaueren Anforderungen formuliert werden. Bei grossen Projekten kann alleine diese Phase 3 - 9 Monate dauern!


  2. Lastenheft: ist das Fachkonzept zu einem positiven Ergebnis gekommen und konnte das Problem für alle Beteiligten 'befriedigend' gelöst werden, werden sämtliche Anforderungen und zugesagte Leistungsmerkmale in einem Lastenheft festgehalten. Dies Lastenheft bildet dann den Bezugspunkt für das weitere Projekt. Im Lastenheft muss u.a. auch festgehalten werden, welche Standards eingehalten werden sollen und es müssen die Standard-Dokumente benannt werden, die gültig sein sollen.


  3. Objektanalyse: Bevor man die im Lastenheft fixierten Aufgaben und zugesagten Leistungsmerkmal direkt in Sourcecode umsetzen kann, muss eine Analyse vorgenommen werden, welche 'Objekte' (in anderen Kontexten nennt man Objekte auch einfach 'Systeme') im Anwendungsszenarium überhaupt auftreten; welche Verhaltensmuster sollen diese Objekte zeigen, wie interagieren sie miteinander, welche Anforderungen gibt es über spezielle Anforderungen bzgl. der Abfolge von Interaktionen.


  4. Modellierung: die Grenze zwischen Objektanalyse und Modellierung ist fliessend. Modellierung findet jedenfalls idealerweise statt, indem man mittels integrierter Softwarewerkzeuge (Case Tools, Model Driven Architecture,...) die Objektanalyse in computergestützte formale Modelle umsetzt, so dass die nachfolgende Sourcecode-Generierung mehr oder weniger vollständig automatisch ablaufen kann.


  5. Sourcecode-Generierung:die Umsetzung zuvor erarbeiteter formaler Modelle des Anwendungssystems in Source-Code.


  6. Dokumentation: während aller(!) Phasen besteht die Notwendigkeit, sämtliche relevanten Informationen, Analysen, Modellierungen etc. hinreichend zu dokumentieren. Idealerweise sollten sämtliche Dokumente computergestützt erzeugt werden, von allen einschlägigen Projektteilnehmern nach Bedarf einsehbar sein, und durch ein entsprechendes Dokumentenmanagementsystem verwaltet werden.


  7. Tests: jedes Programm ist im Hinblick auf den Einsatz nur so gut wie die Tests, die es prüfen. Dazu werden Testumgebungen benötigt, die die Anforderungen des Lastenheftes eindeutig umsetzen (inklusive aller Standards).


  8. Auslieferung und Wartung: zur Auslieferng des Anwendungssystems an den Auftraggeber gehören nomalerweise auch Tests vor Ort sowie notwendige Schulungen (sofern dies nicht schon Teil der Entwicklung war). Ferner ist zu klären (und normalerweise sicherzustellen), dass im Falle von Problemen Support gegeben werden kann bzw. Wartungsleistungen am System vorgenommen werden. Man beachte auch die Auslieferung notwendiger Benutzerhilfen.


  9. Weiterentwicklung: in der Regel müssen Anwendungssysteme weiter entwickelt werden. Dies stellt eine eigenständige Herausforderung dar.


  10. Projektmanagement: sämtliche Vorgänge im Zusammenhang mit dem Softwareprojekt sind eingebettet in ein Projektmanagement. Das Projektmanagement ist dafür verantwortlich, das zur rechten Zeit die notwendigen Ressourcen verfügbar sind, dass Ziele abgeklärt sind, dass Aufgaben verteilt werden, dass Abläufe ineinander greifen, dass die Kommunikation möglich ist, dass die Dokumentation funktioniert, dass die Wirtschaftlichkeit gegeben ist, dass Störungen und Konflikte möglichst schnell behoben werden, und vieles mehr.

Dies ist jetzt nur eine grobe Darstellung derjenigen Aspekte, die bei einem Softwareprojekt einschlägig sind (Anmerkung: Wenn man weiss, dass in den letzten 5 Jahren nach wissenschaftlichen Untersuchungen 70-75% aller Softwareprojekte ihre Ziele nicht ereicht haben, dann ist man gewarnt, sich zu optimistischen Einschätzungen bzgl. der Machbarkeit von Projekten hinzugeben). Es bleibt festzulegen, wie konkret weiter vorgegangen werden kann.

Zunächst ist klar, dass im Rahmen der Vorlesung nicht alle Aspekte eines Softwareprojektes abgehandelt werden können. Genaugenommen wird sich die Vorlesung auf die Arbeit beschränken müssen, die im Rahmen eines Fachkonzeptes zu leisten wäre, und selbst dies kann nur in beschränktem Umfang geschehen.

Ferner ist davon auszugehen, dass nicht alle Themen parallel entwickelt werden können, sondern hintereinander. Hier stellt sich die Frage nach einer geeigneten Abfolge.

Es werden an dieser Stelle die folgenden Annahmen getroffen:

  1. Die Grundsatzfrage nach dem Konzept der Intelligenz 'als solchem' und die Frage nach der 'Realisierung von künstlicher Intelligenz' werden als zwei Momente am gleichen Projekt betrachtet. D.h. es wird angenommen, dass es zur Realisierung sogenannter 'künstlicher Intelligenz' notwendig ist, zunächst einen bestimmten Begriff von 'Intelligenz' zu etablieren, um dann unter Bezugnahme auf diesen verschiedene Realisierungen im Rahmen der Informatik zu betrachten. Man kann diesen Vorgang so organisieren, dass sich die Informatik bzgl. des Intelligenzbegriffes an die Schnittstellen zu anderen Disziplinen begibt (z.B. Psychologie, Neurobiologie und Neuropsychologie), um aus diesen Bereichen Begriffsbildungen zu übernehmen, die dann mit informatorischen Inhalten und Methoden aufgefüllt werden.


  2. Was das Verhältnis des Projektes 'Künstliche Intelligenz' zum Projekt 'Vernetztes Haus' angeht, so kann man grundsätzlich beide Projekte unabhängig voneinander betrachten. Unter Voraussetzung eines Projektes 'Vernetztes Haus' kann man aber gleichwohl auch die Frage stellen, ob und wie das Projekt 'Künstliche Intelligenz' das Leistungsspektrum von informatorischen Diensten bei 'akzeptablen Kosten' spürbar steigern könnte. In dieser Vorlesung soll beides geschehen. Es soll einerseits das Konzept einer möglichen künstlichen Intelligenz analysiert werden, zusätzlich soll aber sehr wohl auch vesucht werden, eine Querbeziehung zum Projekt 'Vernetztes Haus' hergestellt werden.


  3. Von der Abfolge her bietet es sich an, erst das Projekt 'Vernetztes Haus' zu untersuchen; hier bietet sich die Möglichkeit, ein konkretes Anwendungsszenario zu fixieren und eine Reihe von Standardtechnologien der Informatik zu betrachten. Dann soll untersucht werden, ob und wie in diesem Rahmen 'Künstliche Intelligenz' einen interessanten Beitrag leisten könnte..




START

3. Das vernetzte Haus; erste Überlegungen

Übungsaufgabe

...


START