Glossar

Anwendungsfall
Batchjob
Change Request
DAU
Day by Day Management
Dreischicht-Architektur
EVA
Function Point Analyse
Gap Analysis
Komplexitätstheorie
Lernprozess
Murphys Gesetz und der Murphyfaktor
Paretoregel
Refactoring
Screenshot
Story Board
Test
UML - unified modelling language

Falls Sie einen Begriff vermissen oder nicht verstehen, dann schreiben Sie mich bitte an (Kontakt)!

Anwendungsfall

Der Anwendungsfall (use case) beschreibt einen konkreten Ablauf im Sinne des EVA-Prinzips, wobei neben Eingabe, Verarbeitung und Ausgabe noch Akteure (also Personen und Systeme, die bestimmte Arbeitsschritte vollziehen) und Randbedingungen beschrieben werden. Anwendungsfälle werden im Rahmen der UML (unified modelling language) benutzt und stellen eine strukturierte Darstellungsform dar.

Anwendungsfälle werden normalerweise aus Anwendungsszenarien hergeleitet. Ein Anwendungsszenario ist ein konkretes Beispiel, der Anwendungsfall verallgemeinert die Beispiele und bildet viele ähnliche Beispiele innerhalb eines Regelwerks ab.

Ein Anwendungsfall ist sehr klar definiert und gegen andere Anwendungsfälle abgegrenzt, sodass für jeden Anwendungsfall ebenso klare Testfälle definiert werden können.

Der Begriff Anwendungsfall wird innerhalb der IT etwas schwammig benutzt. So kann ein einzelner abgeschlossener Benutzerdialog als ein einziger Anwendungsfall betrachtet werden, oder aber er kann ein ganzes Teilsystem umfassen. [Fowler2] S. 42 spricht z.B. von ca. einem Dutzend Basis-Anwendungsfällen in einem Projekt, das zehn Personenjahre umfasst, verweist jedoch auf andere Projekte derselben Größenordnung mit über hundert Anwendungsfällen. Bricht man die Beschreibung einer Anwendung bis auf Bildschirmebene herunter (und dies muss man, wenn ein Anwendungsverhalten vollständig beschrieben sein soll) und beschreibt jeden dieser Vorgänge als Anwendungsfall, so kann man bereits bei Anwendungen in der Größenordnung einiger Personenmonate auf mehrere Dutzend Anwendungsfälle kommen.

Im Kapitel Inhalt eines Anforderungsdokuments wird der Anwendungsfall im Detail erklärt.

Batchjob

Ein Batchjob ist ein Prozess, der unabhängig vom Anwender irgendwann läuft, meist nachts in einer betriebsarmen Zeit. Ein Dialog mit dem Anwender, d.h. Bildschirmeingaben, finden nicht statt. Der Name stammt noch aus dem Lochkarten-Zeitalter. Ein batch war ein Stapel von Lochkarten. Heutzutage hört man nur noch selten den Begriff Stapeljob, allerdings hat sich auch der Begriff offline-Verarbeitung noch nicht komplett durchgesetzt.

Solche Prozesse werden z.B. für zeitintensive Abrechnungsprozesse von Massendaten oder administrative Aufgaben wie Datensicherungen benutzt.

Change Request

Ein Change Request ist ein Änderungsantrag. Dabei wird gefordert, dass ein vorhandenes Feature einer Anwendung geändert oder ein neues Feature hinzu gefügt wird.

Ein Change Request durchläuft den vollständigen Software-Entwicklungs-Prozess. Zunächst wird also auch zum Change Request eine Analyse geschrieben. Es ist nichts ungewöhnliches, dass sich dabei heraus stellt, dass es eine Reihe anderer Wege mit oder um das vorhandene IT-System herum gibt, um das gewünschte Ergebnis zu erzielen. Anschließend werden die notwendigen Modifikationen im Software-Design erarbeitet, schließlich wird das Feature implementiert und am Ende auch getestet. Der Testaufwand selbst für kleine Feature-Änderungen kann sehr groß werden, da meist ein komplettes Nachfahren aller Tests des betroffenen Prozesses (Regressionstest) notwendig ist, um alle Nebenwirkungen der Änderung zu erfassen.

Über die Annahme und Priorisierung oder Ablehnung eines Change Requests entscheidet das Change Board, ein Gremium, in dem sowohl Mitarbeiter der Fachabteilung als auch der IT-Abteilung sitzen. Betrachtet man ein ganzes Unternehmen als ein einziges großes Projekt so kann der Lenkungsausschuss als Change Board verstanden werden. In Einzelfällen kann auch ein Projektleiter alleine einen Change Request ablehnen, nicht jedoch alleine annehmen.

DAU

Dümmster anzunehmender User.

Die im IT-Support und der Software-Entwicklung gängige Abkürzung DAU lehnt sich an GAU (größter anzunehmender Unfall) an. Gemeint damit sind Anwender, die sehr häufig den Support kontaktieren und i.d.R. auf nicht sehr höfliche Art und Weise ihren Unmut über das nicht-Funktionieren eines IT-Produkts kundtun, wobei sich schließlich regelmäßig heraus stellt, dass der fragliche Anwender selbst die Funktionsstörung verursacht hat, oder dass die Behebung der vermeintlichen Störung in seinen Arbeitsbereich fällt.

Typische Beispiele sind Drucker, die auf offline gestellt wurden oder denen das Papier ausgegangen ist (Fehlermeldung: "Mein Drucker druckt nicht!"); Leute, die Monitore ausgeschaltet oder bei der Helligkeitseinstellung auf vollkommen dunkel gestellt haben ("Rechner geht nicht."); Anwender, die bestimmte Produktfeatures nicht korrekt nutzen ("Kann Datensatz X nicht löschen." - "Kein Wunder, den haben Sie gestern schon gelöscht.") ; oder Anwender, die die Gebrauchsanleitung nicht gelesen haben ("X geht nicht." - "Kein Wunder, Funktionaliät X ist auch nicht implementiert, das machen Sie seit jeher manuell.")

Ebenso fallen in dieses Ressort die aus dem echten Leben stammenden typischen IT-Witze (Support: "Was steht denn auf dem Monitor?" - DAU: "Eine Blumenvase.") oder Geschichten, die das Leben schreibt (z.B. nicht mehr lesbare Disketten, da sie mit einem Magneten an einen Stahlschrank geheftet wurden, CDs, die gelocht und in einen Leizordner einsortiert werden).

In der Business Analysis werden damit Fachanwender bezeichnet, die sich widersprechende Forderungen stellen, keine konkreten Auskünfte und Details zu ihren Forderungen nennen oder die ihre Meinung regelmäßig ändern, u.U. hin und her.

Day by Day Management

Normalerweise wird geplant, aber ebenso normal ist es, dass Planungen nicht eingehalten werden. In diesem Fall werden die Planungen dynamisch an die Wirklichkeit angepasst. Managementaufgabe ist es dabei, zumindest den Zeit- und Kostenplan einzuhalten.

Gerät ein Projekt jedoch vollkommen aus dem Ruder, so ist jede weitere Planung sinnlos. Solche Projekte sind mit einem Flugzeugabsturz zu vergleichen. Dabei geht es nur noch ums nackte Überleben. Für ein Projekt bedeutet dies, dass es zunächst wieder in einen kontrollierbaren und somit planbaren Zustand überführt werden muss. Die dazu geeignete Technik ist das Day by Day Management. Ein Arbeitstag sieht dabei etwa wie folgt aus:
  1. Erste Tagesaktivität ist die Feststellung der aktuellen Probleme. Die Probleme werden nach Wichtigkeit sortiert.
  2. Die so sortierte Problemliste wird am laufenden Tag soweit wie möglich abgearbeitet. Stellen sich unüberwindbare Hindernisse heraus, so wird das Problem nicht weiter verfolgt, sofern dies möglich ist. Statt dessen wird ein work-around definiert und implementiert.
  3. Zwischendurch wird auch tagsüber die Problemliste aktualisiert.
  4. Abends wird Bilanz gezogen und dokumentiert, was als nächstes zu tun ist. Soweit möglich werden noch Ressourcen angefordert, die in den nächsten Tagen benötigt werden.
  5. Der aktuelle Stand der Dinge wird berichtet, sodass das vorgesetzte Management am Morgen des nächsten Tages helfend eingreifen kann.
Betreibt ein Projektmanager Day by Day Management, so sollte er sich mit Terminzusagen oder Versprechungen zurück halten. Das Berichtswesen beschränkt sich lediglich auf den aktuellen Status und die wesentlichen Probleme und die zugehörigen Lösungsvorschläge. Neue Anforderungen werden keinesfalls aufgenommen.

Man sollte sich von dem Begriff Day by Day Management nicht beeindrucken lassen. Er wird gerne von Leuten benutzt, die keine all zu großen organisatorischen Fähigkeiten haben und schlichtweg nicht in der Lage sind, vernünftige Planungen aufzustellen. Ein sicheres Zeichen dafür, dass man es mit dem Gegenteil eines Organisationstalents zu tun hat, liegt in der Aussage, dass Day by Day Managenement betrieben wird, obwohl gar keine Krise vorliegt.

Dreischicht-Architektur

Von einer Dreischicht-Architektur spricht man bei IT-Systemen, wenn physikalische Datenhaltung, Geschäftslogik und Benutzeroberfläche strikt getrennt sind.

Dreichschicht-Architektur

Dieser Ansatz ist state of the art. Zwischen den drei Schichten bestehen klar definierte Schnittstellen. U.U. gibt es noch mehr Schichten, die sich dann allerdings eher mit der Übersetzung von Informationen beschäftigen. So kann z.B. eine physikalische Datenzugriffsschicht und eine logische Datenzugriffsschicht kombiniert werden, um den Austausch der von der physikalischen Zugriffsschicht bedienten Datenbank zu erleichtern. Zwischen Benutzeroberfläche und Geschäftslogik kann eine weitere Übersetzungsschicht eingezogen werden, damit ggf. die Ablösung einer entwicklungsumgebungsspezifischen Oberfläche erleichtert wird. Bei der Benutzeroberfläche spricht man bei dieser Architektur übrigens von einem thin client. Dieser Ansatz ist sehr wartungs- und änderungsfreundlich, die Wiederverwendbarkeit einzelner Komponenten ist relativ leicht zu erreichen.

Diesem Ansatz stehen die Philosophie des fat client und der Ansatz, dass die Geschäftslogik in die Datenbank gehört, gegenüber.

Beim fat client werden Geschäftslogik und Benutzeroberfläche zusammen gefasst, und die Zugriffe auf das Datenhaltungssystem sind ebenfalls fest einkodiert. Solche Ansätze werden von unerfahrenen Entwicklern bevorzugt, oder um (zu Lasten von Wartbarkeit und Wiederverwendbarkeit des Systems) Zeit zu sparen. Der quick hack ist fast immer ein fat client.

Wird die Geschäftslogik in die Datenbank gelegt, so entstehen starke Abhängigkeiten vom benutzen Datenbanksystem. Da Dialogfunktionen immer wieder auch geschäftslogische Operationen erfordern, ist es in den seltensten Fällen möglich und sinnvoll, die gesamte Geschäftslogik in die Datenbank zu legen. Da jedoch kein System schneller auf die Daten zugreifen kann als die Datenbank selbst, werden Massenverarbeitungen, z.B. Abrechnungsprozesse, fast immer in der Datenbank angesiedelt.

EVA


EVA steht für Eingabe - Verarbeitung - Ausgabe. Es handelt sich hier um eine Black Box - Betrachtung eines IT-Systems oder eines beliebigen Prozesses.

EVA - Eingabe, Verarbeitung, Ausgabe

Die Eingabe umfasst alle in das System eingehenden Daten. Historisch gesehen war dies ein Stapel Lochkarten, der gelesen wurde. Gemeint damit sind jedoch alle Daten von der Bildschirmeingabe über aus Dateien oder Datenbanken gelesene Daten bis hin zu abgreifbaren Systemzuständen (z.B. Datum und Uhrzeit,freier Hauptspeicher), Signalen von Messgeräten o.ä.

Die Verarbeitung umfaßt im IT-Modell Hard- und Software. Der Computer macht die Arbeit, ohne dass der Anwender weiß, wie das passiert. Solch eine Betrachtungsweise ist nichts ungewöhnliches: Wer weiss schon im Detail, wie ein Motor funktioniert und trotzdem setzt sich jeder in Fahrzeuge. Die Verarbeitung fasst alle notwendigen Arbeitsschritte in Form eines Regelwerks und ggf. in Form von Werkzeugen im weiteren Sinne zusammen, die auf die eingegebenen Daten angewendet werden und zur Ausgabe führen.

Die Ausgabe sind die Ergebnisse aus den verarbeiteten Eingaben, also z.B. Bildschirmausgaben, Dateien, in Datenbanken archivierte Daten oder Druckausgaben. Historisch gesehen kam am Ende des Datenverarbeitungs-Prozesses eine Druckliste aus einem Drucker.

Das Prinzip läßt sich u.a. auf jede Art von Geschäftsprozess, Verwaltungsarbeit oder industriellen Fertigungsprozess übertragen. Auto fahren mag als Beispiel hilfreich sein: Eingaben sind etwas reduziert betrachtet das Drehen am Lenkrad, die Betätigung von Kupplung und Bremse. Die Verarbeitung sorgt dafür, dass das Fahrzeug sich von der Stelle bewegt. Als Ausgabe sieht man die Tachonadel oder die Tankanzeige. Als Ergebnis (also auch eine Form der Ausgabe) kann auch die Ankunft am Zielort betrachtet werden. Es gibt unendlich viele Zielorte, die alle durch dieselben Verarbeitungsmechanismen erreicht werden können, und die abhängig von den Eingaben sind. Bei einer vollständigen Betrachtung des Gesamtsystems Auto fahren müßten noch eine Vielzahl von Parametern betrachtet werden, z.B. das Betanken des Fahrzeugs oder die Sehfähigkeit des Fahrers oder auch die Geleändegängigkeit des Fahrzeugs (Systembeschränkungen). Man sieht hier schon die Tücken eines IT-Systems: Zwar muss der Motor zuerst angelassen werden, aber mit dem Fahrvorgang selbst hat das nichts zu tun. Zwar darf nur ein Führerscheininhaber legal Auto fahren, aber dennoch werden viele Leute beim Schwarzfahren erwischt. Zwar muss Benzin im Tank sein, aber immer wieder bleibt ein Auto deshalb liegen. Zwar sollte man nachts das Licht anmachen, aber zwingende Bedingung dafür, dass das Auto rollt, ist das nicht. Zwar ist der Gipfel des Matterhorns ein für Menschen erreichbarer Ort, aber mit einem Reisebus kommt man nicht bis ganz hinauf. Sind dies nun zu berücksichtigende Parameter im Rahmen der Eingabe oder Verarbeitung oder nicht?

Wesentlich ist: Es gibt keine verborgenen Konstanten oder Variablen.

Das Prinzip führt zu einem wesentlichen Paradigma der Informatik: Jeder Zustand eines IT-Systems hat abhängig von den zugeführten Eingabedaten einen genau definierten Folgezustand. Somit läßt sich eine gewöhnliche Anwendung durch eine Typ-3-Grammatik im Sinne von Chomsky bzw. durch einen finiten Automaten abbilden. Das Ergebnis einer solchen vollständigen Beschreibung ist ein Story Board.

Function Point Analyse

Function Points werden benutzt, um Aufwände für Software-Projekte zu ermitteln. Dabei handelt es sich um einen ursprünglich von IBM entwickelten Ansatz, der von der IFPUG (International Function Point Users Group) aufgenommen und weiter entwickelt wurde. Das Prinzip ist sprachen- und plattformunabhängig, die Abschätzung wird also lediglich auf Grund der Anforderungsanalyse vorgenommen, also aus funktionaler bzw. aus Benutzersicht.

Bei dieser Analysemethode wird jede einzelne spezifizierte Funktionalität bewertet, wobei eine bestimmte Vergabemethode für Punkte angewendet wird, die von der IFPUG definiert wurde. Die Anzahl der Datenquellen ist eines dieser Bewertungskriterien, ein anderes die Verknüpfung von Daten innerhalb einer Funktion. Gemeint damit ist, dass z.B. das reine Lesen und Anzeigen von Daten aus einer Datenbank einfacher und schneller zu implementieren ist, als das Lesen von Daten von einem Bildschirmformular, dessen Prüfung, die Ausgabe von ggf. notwendigen Fehlermeldung, die Berechnungen, die mit diesen Daten anzustellen sind, und schließlich das Abspeichern.

Die Function Point Analyse gibt lediglich die Komplexität und daraus herleitbaren Aufwände wieder. Um zum tatsächlichen Aufwand zu kommen, müssen noch Randbedingungen über das Produkt, die Qualifikation des Personals, die ausgewählte Entwicklungsplattform und das Projekt selbst berücksichtigt werden.

google über die Function Point Analyse

Gap Analysis

Bei der Gap Analysis wird die zu überbrückende Lücke zwischen einem vorhandenen System und einem Geschäftsprozess, der mit diesem System abgewickelt werden soll, analysiert. Will man das vorhandene System benutzen, dann wird das Anforderungsdokument als Basis für die notwendigen Anpassungsarbeiten benutzt.

Komplexitätstheorie

In der Komplexitätstheorie wird eine Klassifizierung von algorithmischen Problemen vorgenommen. Grob gesprochen wird dabei unterteilt, wie stark die Rechenzeit bei linear steigender Datenmenge zunimmt. Das Spektrum reicht von linearer Zunahme (z.B. die Addition von Zahlen), über polynomiell (z.B. Sortierung von Zahlenreihen, sog. p-Probleme), weiter über exponentiell (np-Probleme) bis hin zur "überexponentiell" (np-vollständig). - Die Mathematiker unter Ihnen mögen mir diese lockere Unterteilung bitte verzeihen.

Für Business Analysten sind derartige Betrachtungen nur selten relevant, sie helfen aber, vollkommen unhaltbare Anforderungen zu erkennen.

google über Komplexitätstheorie
wikipedia zur np-Vollständigkeit

Lernprozess

Lernen bedeutet, dass man sich eine Fertigkeit aneignet. Das reine Wissen ist graue Theorie und ohne die Fertigkeit, dieses Wissen in irgendeiner Form auch anzuwenden, ist das Wissen nur als Gedächtnisleistung bemerkenswert. Ein Bild für das Verständnis des Lernprozesses kann der stufenweise Fortschritt von der unbewussten Inkompetenz zur unbewussten Kompetenz sein:.

Vier Stufen des Lernprozesses

Für normale Menschen reicht dieses Bild. Für einen Business Analysten ist das aber nur die halbe Wahrheit. Er lernt nicht, er nutzt den Lernprozess bewusst. Auch lernen will gelernt sein. Wenn man den Lernprozess auf sich selbst anwendet und sich somit auf eine Ebene des Metalernens begibt, kann eine effektive Methode entwickelt werden, wichtige von unwichtigen Informationen zu unterscheiden.

bewusster Lernprozess

Zu wissen, dass man nichts weiß, hilft nicht weiter. Wenn man nicht weiß, welche Fragen man stellen muss, bewegt man sich in einer Grauzone zwischen unbewusster Inkompetenz und bewusster Inkompetenz. Ein Analytiker ist sich darüber immer im Klaren. Deshalb sucht er zuerst nach den richtigen Fragen, und dabei helfen ihm seine Fachanwender. Das, was der Business Analyst sieht, versteht er zunächst nicht, aber der Prozess des Begreifens des Gesehenen führt zu den richtigen Fragen die klar werden lassen, welche Prozesse und Daten es gibt. Eine Unterscheidung zwischen relevanten und irrelevanten Informationen bzw. eine Priorisierung derselben ist noch nicht wirklich möglich.

Anschließend müssen die Daten und Prozesse und deren Auswirkungen auf das Geschäft verstanden werden, und erst hier kann eine Unterscheidung in wichtig und unwichtig stattfinden. Zwar befindet man sich dann in einem Zustand bewusster Kompetenz, der für eine Spezifikation auch vollkommen ausreicht, aber der Analytiker kann nicht davon ausgehen, dass ihm der Fachanwender "freiwillig" alle relevanten Informationen gegeben hat. - Etwa hier steigt ein Analytiker ein, der bereits sehr solides Know How über das zu untersuchende Fach hat. D.h. dass er auf Grund seiner potentiellen Betriebsblindheit oder seiner Vorurteile bereits Prozesse und Daten und deren Auswirkungen auf das Geschäft übersehen haben kann und auch nicht den nächsten wichtigen Schritt hin zu einem nicht nur vollständigen und korrekten, sondern auch die Arbeit erleichternden, hilfreichen und komfortablen System vollzieht: Die Suche nach Lücken in den Abläufen.

google zu ein paar Schlagwörtern des Lernprozesses

Murphys Gesetz und der Murphyfaktor

Ein gewisser Ed Murphy, Ingenieur, schrieb einmal Geschichte. Genau genommen schrieb nicht er selbst Geschichte, sondern ein besonders begabter Techniker in seinem Team. Dieser Techniker hatte wieder einmal etwas verkehrt herum angelötet, worauf es Murphy entfuhr: "Wenn er etwas verkehrt machen kann, dann macht er es verkehrt." Damit war Murphys Gesetzt (Murphys Law) geboren: Wenn etwas schief gehen kann, dann geht es auch schief. (If anything can go wrong it will!)  Inzwischen gibt es hunderte Ableitungen oder Abwandlungen, die von Murphys Gesetz für Behörden (Wenn etwas schief gehen kann, dann in mindestens vierfacher Ausfertigung) bis zum Gesetz der selektiven Schwerkraft (Die Wahrscheinlichkeit, dass ein Butterbrot mit der mit Butter beschmierten Seite nach unten auf den Teppich fällt, steigt, je höher die Reinigungskosten des Teppichs sind) reichen. - Das alles klingt zwar lustig, ist aber bitterer Ernst. Ich hatte im Studium einen Professor, der hartnäckig darauf beharrte, dass Murphy ein unverbesserlicher Optimist sei.

In der IT hat man sich mit dieser Gesetzmäßigkeit bereits frühzeitig auseinander gesetzt und einen Unsicherheitsfaktor eingeführt, den ich den Murphyfaktor nenne. Dieser Murphyfaktor ist ein Maß für nicht erkannte und versteckte Fehler, Tücken, Kosten und Aufwände. Mit diesem empirisch ermittelten Faktor werden Schätzungen multipliziert, z.B. für die Entwicklungsdauer eines Projekts oder die Datenmenge, die zur Verarbeitung anfallen wird. Genaue Methoden, den Murphyfaktor zu ermitteln, gibt es m.W. nicht. Er wird fallabhängig und abhängig von den bisherigen Erfahrungen des Schätzers oder durch Konsensfindung im Team gewählt. Besondere Abhängigkeiten für den Business Analysten finden sich in der Komplexität der Materie, in der Sachkenntnis des Analytikers im zu analysierenden Fach, der Menge der Interfaces zu anderen Systemen, der Menge der Datenquellen aus anderen Systemen, in der Kommunikationsfähigkeit und den sozialen Kompetenzen seiner Ansprechpartner, in der Größe des Kreises der Entscheider, die über die Richtigkeit und Notwendigkeit einer Anforderung befinden, sowie in der Menge der von den Entscheidern konsultierten Spezialisten. Für Zeiten und Aufwände sind kunden- und komplexitätsabhängig nach meinen Erfahrungen Faktoren zwischen 1,3 und 2,8 anzusetzen.

Schon Tom DeMarco hat in seinem beachtenswerten Buch "Wien wartet auf Dich" (Peopleware) den Faktor Mensch in IT-Projekten untersucht [DeMarco1]. Seine Ergebnisse lassen den Schluss zu, dass die Effizienz einer Organisation relativ stabil ist, und die Effizienz verschiedener Organisationen beim gleichen gestellten Problem etwa um den Faktor 10 (das ist kein Tippfehler!) voneinander abweichen kann. Besonders beachtenswert sind dabei die Arbeitsbedingungen der Mitarbeiter, insbesondere, wie sehr sie gestört werden können. Großraumbüros, Lärm, nicht abzuschaltende Telefone, Projektleiter, die unangemeldet bei Entwicklern vorbei schauen und auf die Schnelle deren Denkarbeit unterbrechen o.ä. können als Indizien für eine weniger effiziente Organisation angesehen werden. Der Murphyfaktor sollte in diesem Fall hoch angesetzt werden.

google zu Murphys Gesetz (führt eher zu spassigen Seiten)

Paretoregel

Die Paretoregel wird im Rahmen des Zeitmanagements regelmäßig zitiert. Sie besagt, dass 80% der Arbeit in 20% der Zeit erledigt werden kann. Sie ist auch unter den Begriffen Paretoprinzip oder pareto law bekannt.

Diese Sichtweise ist m.M. nur aus einem strategischen Blickwinkel korrekt und kann sehr leicht im Rahmen eines IT-Projekts bzw. bei einer Analyse zum Selbstbetrug führen. In 20% der Zeit erarbeitet man im Rahmen einer Analyse bestenfalls eine "high level - Sicht" auf die zu untersuchenden Abläufe, die zwar als Entscheidungsgrundlage für die Gestaltung von Prozessabläufen hilfreich sein mag und evtl. schon für einen ersten Wegwerf-Prototypen ausreicht, aber die für ein IT-Projekt notwendige Details noch nicht einmal berührt hat. Gar nicht anwendbar ist die Paretoregel bei den Leuten, die die echte Arbeit machen, die also nichts weiter delegieren können oder als Spezialisten die einzigen Leute im Unternehmen sind, die eine konkrete Aufgabe lösen können.

google zur Paretoregel bzw. zum Paretoprinzip

Refactoring

Bei iterativen Prozess-Modellen ist es notwenig, das Software-Design den Anforderungen der neuen Produktversion anzupassen. D.h. auch, dass Teile des Progammcodes bei der Weiterentwicklung von Produktversionen umgeschrieben werden müssen, nur um ihn dem neuen Design anzupassen und ohne dass dadurch neue (für den Anwender sichtbare) Funktionalitäten implementiert werden. Bei diesem Prozess spricht man vom Refactoring des Codes. Man kann davon ausgehen, dass mindestens 10% des vorhandenen Codes von Version zu Version umgeschrieben werden muss. Falls es weniger ist, dann ist etwas faul.

Man kann von Nicht-IT-Spezialisten kein Verständnis für diesen Prozess erwarten, als Nicht-IT-Spezialist sollten Sie Ihren Leuten einfach nur glauben, dass Refactoring unvermeidbar ist.

Screenshot

Ein Screenshot ist lediglich eine Bildschirmkopie, die i.d.R. als Graphik nachbearbeitet und in ein Dokument eingefügt wird. Um unter windows einen Screenshot zu bekommen, drückt man auf Druck bzw. bei englischen Tastaturen auf Print. Eine Kopie des Bildschirms wird dann als Graphik in den Zwischenspeicher geschrieben. Diese Kopie kann mit der Einfügefunktion bzw. auch strg-v z.B. in ein Graphikprogramm oder ein Textverarbeitungsprogramm eingefügt werden.

Story Board

Im Rahmen der Entwicklung eines IT-Systems, das Dialoge mit dem Anwender führt, spricht man bei einem Story Board (vor allem) von der Beschreibung der Bildschirmformulare des Systems. Zu jedem Formular wird eindeutig definiert, was passiert, wenn das Formular verlassen und die Kontrolle vom System übernommen wird. Bei einer funktionierenden Anwendung führt jedes Formular zu einem definierten Folgeformular, bis schließlich ein definierter Endzustand erreicht ist. Auch Fehlerzustände des Systems können so kontrolliert werden; so kann z.B. eine falsche Eingabe in einem Editfeld nach dem Drücken eines speichern-Buttons zu einem anderen Formular führen, in dem der Fehler dargestellt wird. Alternativ und nicht unüblich ist, dass das ursprüngliche Formular nochmals neu geladen wird und die Fehlermeldung wird in diesem Formular platziert. Zu klären ist hier natürlich, was mit den eingegebenen Daten passieren soll: sollen sie im durchgeladenen Formular erhalten bleiben, oder soll das Formular ganz oder teilweise zurück gesetzt werden?

Es hat sich noch nicht überall herum gesprochen, dass Story Boards nichts anderes als finite Automaten (finite state machines) bzw. Typ-3-Grammatiken im Sinne von Chomsky sind, die vollständig tabellarisch abgebildet und nach standardisierbaren Prinzipien analysiert werden können. Dass dies so ist beruht auf einem Paradigma der Informatik, das besagt, dass eine Anwendung abhängig von den gerade betrachteten Daten von einem wohl definierten Zustand, in dem sie sich gerade befindet, in genau einen ebenso wohl definierten Folgezustand wechselt. Diese betrachteten Daten sind bei Bildschirmformularen eingetippte bzw. ausgewählte Daten und gewählte links bzw. gedrückte push buttons. Das Resultat dieser Unkenntnis und der z.T. haarsträubend unvollständigen und unscharfen Darstellungen schon alleine der Abfolge der Benutzerdialoge schlägt sich in entnervten Entwicklern nieder, die schließlich eigene Formulare entwickeln oder vorhandene modifizieren müssen, oder aber in Anwendungen, die insbesondere bei Fehleingaben in undefinierte Fehlerzustände geraten und abstürzen.

Im Kapitel Inhalt eines Anforderungsdokuments wird das Story Board im Detail erklärt.

Test

Teil der Qualitätssicherung einer Software ist der Test. Dabei werden Testszenarien erarbeitet, die jede mögliche Konstellation der Software so gut wie möglich erfassen. Tests finden auf allen Ebenen der Entwicklung statt, auf unterester Ebene ist dies der unit test (Modultest), den der Programmierer für einzelne von ihm implementierte Funktionalitäten durchführt, auf obererster Ebene ist es der acceptance test (Abnahmetest), bei dem die Software gegen die Spezifikation geprüft wird.

Man unterscheidet in Postiv- und Negativtests. Der Positivtest wird häufig einfach nur Test genannt, der Negativtest häufig Provokation.

Beim Positivtest wird das ideale Verhalten der Anwendung bzw. auch des Anwenders geprüft. Dabei werden ausschließlich richtige Daten im geplanten Wertebereich verwendet, Bildschirmformulare werden prinzipiell korrekt und vollständig ausgefüllt, Schnittstellen werden korrekt beliefert etc. Zweck des Positivtest ist es nachzuweisen, dass die Anwendung das tut, was spezifiziert ist.

Beim Negativtest werden andere vorstellbare Situationen und Katastrophen simuliert. Z.B. werden Bildschirmformulare nicht vollständig ausgefüllt, falsche oder ungültige Werte werden eingetragen, Laderoutinen werden mit fehlerhaften, leeren oder gar keinen Dateien versorgt, die Datenbankverbindung wird unterbrochen, die Integrität der Datenbank wird verletzt (sofern dies nicht von der Datenbank selbst verhindert wird) etc. Zweck des Negativtests ist es, die Sicherheit der Anwendung gegen falsche Bedienung und technische Störungen zu prüfen.

UML - unified modelling language

UML ist gerade modern und der aktuelle Versuch einen Standard zu schaffen, um im Rahmen eines einheitlichen Vorgehensmodells eine Anwendung von der Anforderungsanalyse bis zur Implementierung zu beschreiben. Dabei werden im Rahmen der Anforderungsanalyse im Anforderungsdokument u.a. Anwendungsfälle definiert und z.T. auch graphisch dargestellt. Aus den Anwendungsfällen wird auf eine sehr klar definierte Weise Architektur, Design und Implementierung entworfen, ehe die Kodierung und der Test folgen. UML ist keine Methode und auch kein Prozess, um Anwendungen zu entwickeln, sondern eine Sprache, um das Verhalten einer Anwendung zu beschreiben. UML ist ein fester Bestandteil des RUP (rational unified process), kann aber in jedem anderen Prozess-Modell zur Beschreibung der Anforderungen benutzt werden.

[Fowler2] S. 6 stellt fest, dass kein echter empirischer Nachweis existiert, dass die Techniken gut oder schlecht sind, die in der UML zur Anwendung kommen. Der Kunde will am Ende nur ein Programm, das genau das macht, was er bestellt. Man sollte also begründen können, warum man glaubt, dass der Einsatz der UML im konkreten Projekt gegenüber anderen Techniken der Software-Entwicklung einen Vorteil bringt. Fowler schreibt hierzu: Softwareentwicklung findet eigentlich nur statt, um den Code zu erhalten. Diagramme sind dabei eigentlich nur nette Bildchen. Kein Benutzer dankt Ihnen für nette Bildchen. Benutzer wollen lauffähige Software.

google zu UML
home - top - Kontakt - letzter Update 20.5.2004 - © Karl Scharbert