Archiv der Kategorie: Allgemein

Allgemeine Dinge so rund um das Leben und Interessensgebiete die in keine Kategorie passen…

Google Analytics: Der Brandenburg Bug (Der Branden Bug)

Problem

Seit geraumer Zeit wunder ich mich darüber, dass das Karten Overlay in der Google Analytics Statistik keine Besucher aus Brandenburg anzeigt.

Analyse

Nach einigen Gesprächen mit anderen Bloggern, welche Besucherzahlen weit über 500.000 User/Monat haben, fand ich heraus, dass ich nicht der einzige Blogger bin, bei dem Analytics nichts in Brandenburg anzeigt.

Beispiel

kein_brandenburger

Lösung

Bis jetzt hat sich Google dazu noch nicht geäußert.

Es kann natürlich auch hieran liegen:

Ch ch ch ch X-D

Facebook API Snipplets für fbrell.com, FQL, Graph etc..

Beschreibung

Wer sich bei Facebook eingeloggt hat, kann Statistik-Abfragen mit FQL, REST oder der Graph API durchführen.

Javascript-Befehle können einfach auprobiert werden, indem man sich auf http://www.fbrell.com einloggt.

Nachfolgend einige Beispielen für mögliche Abfragen:

Alle URLs die ich gelikt habe

<strong id="name"></strong>

<script type="text/javascript">

// <!&#91;CDATA&#91;
FB.api(
  {
    method: 'fql.query',
    query: 'SELECT user_id,url FROM url_like WHERE user_id = me()'
  },
  function(response) {
    Log.info('API Callback', response);
    laenge=response.length;
    j=0;

    while(j<laenge)      
    {
         document.getElementById('name').innerHTML += (j+1) +'.) '+ response&#91;j&#93;.url+' ';
         j++;
    }   
} );
// &#93;&#93;>
</script>

Das obige Snipplet kann für alle FQL abfragen genutzt werden.

Nachfolgend ein Beispiel über die Graph Api ohne fbrell.com

Meine Freunde …

  • … mit den meisten Wall posts wall_count
  • … mit den meisten Subscribern subscriber_count
  • … mit den meisten Freunden friend_count
  • … mit den meisten Likes likes_count
  • … mit denen ich die meisten Freunde gemeinsam hab mutual_friend_count
  • … die zuletzt ihr Profil geupdated haben profile_update_time

https://graph.facebook.com/fql?q=SELECT uid, name, wall_count, subscriber_count, friend_count, likes_count, mutual_friend_count, profile_update_time FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) ORDER BY DAS_HIER_ERSETZEN DESC

Welche Geräte haben meine Freunde und wo kommen sie her?

Eine schöne Liste über die Geräte der Facebookfreunde und wo sie herkommen erhält man über die GRAPH-API mit der URL:

https://graph.facebook.com/me/friends?fields=location,devices

Man sollte daran denken, dass man ein Token über den GRAPH API Explorer benötigt und dort die entsprechenden Rechte setzt.

Requirements Engineering

Vorwort und Quellen

Dieser Artikel entstand im Rahmen meiner IREB-Zertifizierung zum Certified Professional for Requirements Engineering und beinhaltet eine verdichtete, prüfungsrelevante Zusammenfassung und Ausschnitte des IREB-Werkes „Basiswissen – Requirements Engineering“ von Rupp / Pohl.

Grundlagen

Gründe für Requirements Engineering

  • Budgetüberschreitung
  • völliges Scheitern eines Projektes
  • 60 Prozent der Fehler in der Entwicklung sind aufgrund mangelnder Anforderungen
  • Fehler, die bereits in den Anforderungen entstehen, verursachen bei zunehmendem  Projektfortschritt höhere Kosten und sollte möglichst früh beseitigt werden.
  • Symptome bei mangelhaftem RE sind fehlende und unklare Anforderungen

Gründe für mangelhaftes Requirements Engineering

  • Die Stakeholder denken, dass vieles selbstverständlich ist
  • Kommunikationsprobleme und Konflikte aufgrund von unterschiedlichem Wissen und unterschiedlichen Erfahrungen
  • Projektdruck: Der Auftraggeben will möglichst schnell ein sichtbares Ergebnis präsentiert bekommen

Die vier Haupttätigkeiten des RE

  1. Anforderungen erheben
  2. Anforderungen dokumentieren
  3. Anforderungen abstimmen und prüfen
  4. Anforderungen verwalten

Die Rolle der Kommunikation im RE

Das Verwenden von natürlicher Sprache ist das wichtigste Hilfsmittel im Requirements Engineering. Das Kommunikationsmedium (also ob eine Anforderung schriftlich oder mündlich erfasst wird) spielt ebenfalls eine große Rolle. Es muss eine gemeinsame Begriffswelt zwischen Entwicklung und Realität geschaffen werden und Unklarheiten möglichst besieitigt werden.

Eigenschaften eines Requirements Engineeers

  • Selbstbewusstsein
  • Empathie
  • Analytisches Denken
  • Überzeugungsfähigkeit
  • Konfliktlösungsfähigkeit
  • Moderationsfähigkeit
  • Kommunikationsfähigkeit

Drei Arten von Anforderungen

  • Funktionale Anforderungen
  • Qualitätsanforderungen
  • Randbedingungen

Rolle der Qualitätsanforderungen

Qualitätsanforderungen müssen dokumentiert werden. Folgende Aspekte sind insbesondere zu beachten:

  • Detailierung der Funktionalität (z.B. Sicherheit/Genauigkeit einer Berechnung)
  • Zuverlässigkeit
  • Benutzbarkeit
  • Effizienz
  • Änderbarkeit
  • Übertragbarkeit

System und Systemkontext abgrenzen

systemkontextgrenze

Ursprung und Rechtfertigung von Anforderungen

Die Quelle aller Anforderungen liegt üblicherweise im Systemkontext. Zu den möglichen Aspekten im Systemkontext gehören u.a.

  • Personen
  • Systeme im Betrieb
  • Prozesse
  • Ereignisse
  • Dokumente

Die Systemgrenze ist häufig erst gegen Ende des RE Prozesses eindeutig festgelegt, und hat während dieser Zeit eine Grauzone (beweglich).

Anforderungen ermitteln

Arten von Anforderungsquellen

  • Stakeholder (Kunden, Marketing, Servicetechniker, Entwickler…)
  • Dokumente (rechtliche Vorschriften Normen…)
  • Systeme (Vorbild ist ein Fremsystem als Input)
  • Prozesse (?)
  • Ereignisse (?)

Bedeutung von Anforderungsquellen

Die Hauptaufgabe des Requirements Engineering ist das Ermitteln von Anforderungen an ein geplantes System. Die Anforderungen werden aus unteschiedlichen Anforderungsquellen gesammelt.

Probleme bei unberücksichtigten Anforderungsquellen

Sollte es vorkommen, dass bestimmte Anforderungsquellen nicht berücksichtigt werden, kann sich dieser Zustand mit negativen Folgen auf den gesamten Projektverlauf auswirken.

Dokumentation der Anforderungsquelle „Stakeholder“

Die Dokumentation der Stakeholder sollte mindestens die folgenden Informationen enthalten:

  • Nachname, Vorname
  • Funktion / Rolle / Aufgabe
  • Kontaktdaten
  • Verfügbarkeit während der Projektlaufzeit
    • zeitlich (07:40h bis 17:00h)
    • räumlich (Werk 1 Gebäude 2)
  • Relevanz des Stakeholders
  • Ziele und Interessen bezogen auf das Projekt

Umgang mit Stakeholdern

Mündliche oder schriftlich wird eine Stakeholdervereinbarung festgehalten, in der die Stakeholder Rechte und Pflichten festgelegt sind.

Beispiele:

  • Stakeholder Rechte: Weisungsbefugnisse, Verantwortungsbereiche
  • Stakeholder Pflichten: Aufgaben

KANO-Modell

Bedeutung

KANO stellt in einem 2-Dimensionalen Koordinatensystem gegenüber, wie sich der Realisierungsgrad einer Anforderung auf die Zufriedenheit des Stakeholders auswirkt und stellt dabei fest, dass es 3 Klassen gibt.

Inhalt

Das KANO-Modell kategorisiert, wie sich eine Anforderung auf die Zufriedenheit der Stakeholder ausübt, in 3 Klassen:

  • Basisfaktoren
  • Leistungsfaktoren
  • Begeisterungsfaktoren

Begeisterungsfaktoren sind z.B. Produktmerkmale, die komplett innovativ sind und vom Kunden mit Begeisterung aufgenommen werden. Der Kunde selbst hatte ursprünglich nicht den Anspruch an das Produkt (z.B. Bilder per WhatsApp verschicken mit dem SmartPhone).

Leistungsfaktoren erwartet der Kunde grundsätzlich von dem Produkt wenn er es kauft. Die Liste der Leisungfaktoren hat der Kunde präsent und kann direkt aufzählen was er erwartet.

Basisfaktoren sieht der Kunde als selbstverständlich und als nicht nennenswert an. Sollten diese Merkmale aber nicht vorhanden sein, wird der Kunde sehr unzufrieden sein. Aus diesem Grund nennt er nicht unbeding, dass er diese Produkt-Eigenschaft haben möchte.

Im Laufe der Zeit werden Begeisterungsfaktoren zu Leistungsfaktoren und Leistungsfaktoren zu Basisfaktoren.

Bsp: Die Anforderung SMS VERSENDEN

In der damaligen Zeit war das Versenden von SMS ein High-Tec Feature, welches durch die modernen Handys möglich wurde (Begeisterungsfaktor)

Nachdem die Handys mittlerweile jedes Kinderzimmer erreicht hatten, wurde das Schreiben von SMS zu einer nicht mehr wegzudenkenden Leistung der modernen Geräte  (Leistungsfaktor). Jeder befragte äußerte die Forderung „Ich muss SMS schreiben können!“.

Die heutige Smartphone Generation benutzt SMS nur noch in den seltensten Fällen, da Apps wie „WhatsApp“, welche sogar Bilder und Ton versenden können und das Nutzen von Multiuserchats ermöglichen. Es wird keiner mehr explizit erwähnen, das er SMS versenden möchte. Wäre ein Smartphone nicht dazu in der Lage SMS zu versenden oder zu empfangen, würde dies aber zu extremer Unzufriedenheit beim Kunden führen (Basisfaktor).

Anwendung

Für die Auswahl der zu verwendenden Ermittlungstechniken wird u.a. auch die Betrachtung des KANO Modells genutzt.

Ermittlungstechniken

Bedeutsame Ermittlungstechniken von Anforderungen

  1. Befragungstechniken
    1. Interview
    2. Fragebogen
  2. Kreativitätstechniken (Begeisterungsfaktoren nach KANO)
    1. Brainstorming
    2. Brainstorming paradox
    3. Perspektivwechsel
    4. Analogietechnik
  3. dokumentenzentrierte Techniken (Basisfaktoren nach KANO)
    1. Systemarchäologie
    2. Perspektivenbasiertes Lesen
    3. Wiederverwendung von Anforderungen
  4. Beobachtungstechniken
    1. Feldbeobachtung
    2. Apprenticing
  5. unterstützende Techniken
    1. Mind Mapping
    2. Workshops
    3. CRC-Karten
    4. Audio- und Videoaufzeichnung
    5. Use-Case-Modellierung
    6. Protoyping

Einflussfaktoren für die Wahl der Ermittlungstechnik

  • Risikofaktoren
  • menschliche Einflüsse
  • organisatorische Einflüsse
  • fachlich-inhaltliche Einflüsse
  • angestrebter Detailierungsgrad der Anforderung

Der Einsatz geeigneter Ermittlungstechniken kann projektentscheidend sein. Die besten Ergebnisse werden durch Kombination verschiedener Ermittlungstechniken erzielt.

Dokumentation von Anforderungen

Dokumentationstechnik

Als Dokumentationstechnik bezeichnet man jegliche Arten der Darstellung von Anforderungen

Wozu dokumentieren?

Die Dokumentation nimmt bei der Kommunikation eine zielgerichtete, unterstützende Funktion ein.

  • Anforderungen sind langlebig
  • Anforderungen sind rechtlich relevant
  • Anforderungen sollten allen zugänglich sein

Funktionale Anforderungen

3 Perspektiven

Üblicherweise umfassen Anforderungsdokumente mindestens die folgenden drei Perspektiven eines Systems

  • Strukturperspektive
  • Verhaltensperspektive
  • Funktionsperspektive

Effektiv einsetzbare Formen der Dokumentation

  • Natürlichsprachige Anforderungsdokumentation
  • Anforderungsmodelle wie Use-Case-Diagramme, Klassendiagramme, Aktivitätsdiagramme, Zustandsdiagramme
  • Mischformen von Anforderungsdokumentationen

Vor- und Nachteile für Anforderungsdokumentation in natürlicher Sprache

  • Vorteile
  • für alle Beteiligten verständlich
  • für Anforderungen jeglicher Art geeignet
  • für alle drei Perspektiven geeignet
  • zwingend notwendig um Komplexität von Anforderungen zu erfassen
  • Nachteile
  • oftmal zweideutig da nicht formal
  • Transofrmationseffekte
  • Vermischung der Perspektiven möglich

Modellbasierte Dokumentationsformen von Anforderungen

  • Use-Case-Diagramme
  • Klassendiagramme
  • Aktivitätsdiagramme
  • Zustandsdiagramme

Vorteile von standardisierter Dokumentenstruktur

Nimmt man vorgefertigte Dokumentenstrukturen, hat man die Gewissheit, dass es sich zumeist um vollständige, flexible praxiserprobte Strukturierungen handelt. Zumeist erleichtert es die Verwendung des Anforderungdokumentes in späteren Entwicklungstätigkeiten / Projektphasen (Definition von Testfällen…).

Eine verbreitete standardisierte Dokumentenstruktur

Eine verbreitete Referenzstruktur für Anforderungsdokumente ist IEEE 830-1998 (Referenzstruktur für „Software Requirements Specification“ (SRS).

Wichtige Punkte einer angepassten Standardstruktur

Referenzstrukturen können für gewöhnlich nicht 1:1 übernommen werden, da sie an

  • domänenspezifische
  • projektspezifische
  • unternehmenspezifische

Gegebenheiten angepasst werde müssen.

Aufgaben, die auf Anforderungsdokumenten aufbauen

Im Laufe des Projektes dienen Anforderungsdokumente als Grundlage für diverse Aufgaben.

  • Planung
  • Architekturentwurf
  • Implementierung
  • Test
  • Änderungsmanagement
  • Systemnutzung und Systemwartung
  • Vertragsmanagement

Qualitätskriterien für Anforderungsdokumente

Da Anforderungsdokumente eine Grundlage für alle weiteren Entwicklungsschritte bilden, muss das Dokument bestimmten Qualitätskriterien genügen.

  • Eindeutigkeit und Konsistenz
  • Klare Struktur
  • Modifzierbarkeit und Erweiterbarkeit
  • Vollständigkeit
  • Verfolgbarkeit

Qualitätskriterien für Anforderungen

  • Abgestimmt
  • Bewertet
  • Eindeutig
  • Gültig und aktuell
  • Korrekt
  • Konsistent
  • Prüfbar
  • Realisierbar
  • Verfolgbar
  • Vollständig
  • Verständlich

Die zwei wichtigsten Stilregeln für Anforderungen

  1. kurze Sätze und Absätze
  2. nur eine Anforderung pro Satz formulieren

Bedeutung eines Glossars

Ein Glossar ist eine Sammlung von Begriffsdefintionen für das RE.

Inhalte eines Glossars

  • Kontextspezifische Fachbegriffe
  • Abkürzungen und Akronyme
  • Alltägliche Begriffe, die im gegebenen Kontext eine spezifische Bedeutung haben
  • Synonyme (Mehrere Worte haben eine Bedeutung)
  • Homonyme (Ein Wort hat mehrere Bedeutungen)

Probleme die ohne Glossar auftreten

Eine häufige Ursache von Konflikten, die im RE auftritt, liegt im unterschiedlichen Begriffsverständnis der beteiligten Personen. Um diese Probleme zu vermeiden, ist es notwendig, dass alle relevanten Begriffe in einem Glossar definiert sind.

Regeln für den Umgang mit dem Glossar

  • Das Glossar muss zentral verwaltet werden
  • Es müssen Verantwortlichkeiten zur Glossarpflege definiert werden
  • Das Glossar muss projektbegleitend gepflegt werden
  • Das Glossar muss allgemein zugänglich sein
  • Das Glossar muss verbindlich verwendet werden
  • Die Herkunft der Begriffe sollte im Glossar enthalten sein
  • Das Glossar muss mit den Stakeholdern abgestimmt sein
  • Die Einträge des Glossars müssen eine einheitliche Struktur aufwesen

Es ist vorteilhaft, möglichst frühzeitig mit der Erstellung des Glossars anzufangen. Dadurch reduziert sich der spätere Angleichungsaufwand.

Natürlichsprachige Dokumentation von Anforderungen

5 Transformationsprozesse bei der Wahrnehmung und Darstellung von natürlicher Sprache

Natürliche Sprache ist oft mehrdeutig und kann unterschiedlich interpretiert werden. Die 5 Transformationsprozesse gehorchen gewissen Regeln, welche man nutzen kann um herauszufinden, was der Autor einer Anforderung wirklich gemeint hat.

  1. Nominalisierung
  2. Substantive ohne Bezugsindex
  3. Universalquantoren
  4. Unvollständig spezifierte Bedingungen
  5. Unvollständig spezifierte Prozesswörter

5 Schritte zur Formulierung von Anforderungen mittels einer Satzschablone

Satzschablonen dienen der Reduzierung sprachlicher Effekte während der Anforderungsformulierung. Der Autor wird effektiv dabei unterstützt, qualitativ hochwertige Anforderungen zu erstellen.

Um mit einer Satzschablone Anforderungen zu formulieren, hält man die folgenden Schritte ein:

  1. Festlegen der rechtlichen Verbindlichkeit
    1. Verben
      1. muss/shall (Pflicht)
        1. Rechtlich verbindlich
        2. muss erfüllt sein, sonst kann die Abnahme verweigert werden
      2. sollte/should (Wunsch: Nice-To-Have)
        1. Wäre schön wenn…
        2. Stakeholder besteht nicht drauf
      3. wird/will (Absicht)
        1. Pläne für die Zukunft
        2. System zukunftssicher konzipieren
      4. kann/can (Vorschlag)
      5. Kommentare
    2. Auch Einsatz eines Attributes möglich
      1. Z.B. in Doors kann jedem Objekt/Jeder Anforderung ein Attribut zugewiesen werden
  2. Benennen des Kerns der Forderung
  3. Charakterisieren der Aktivität des Systems
  4. Objekte einfügen
  5. Formulieren von logischen und zeitlichen Bedingungen

Satzschablonen sollten optional sein und lediglich als Hilfsmittel dargestellt dienen, da sich so die besten Erfolge erzielen lassen.

Anforderungen modellbasiert dokumentieren

Definition Modell

Ein Modell ist ein abstrahiertes Abbild einer existierenden Realität oder Vorbild einer zu schaffenden Realität.

3 Eigenschaften von Modellen

Durch die Verwendung von Modellen erreicht man ein verbessertes und schnelleres Auffassen von Sachverhalten und deren Zusammenhängen.

  1. Abbildungseigenschaft: Modelle bilden eine Realität ab
  2. Verkürzende Eigenschaft: Modelle verkürzen die abgebildete Realität
  3. Pragmatische Eigenschaft: Modelle werden für eine spezifische Verwendung konzipiert

2 Definitionselemente von konzeptuelle Modelle

Beschreiben die abzubildende Realität durch eine Menge grafischer Elemente. Zur Modellierung werden konzeptuelle Modellierungssprachen eingesetzt, die über deren

  • Syntax (das sind die Modellierungselemente wie Use Case, Aktion…. und deren gültige Kombinationen)
  • Semantik (Bedeutung der Modellierungselemente)

definiert werden.

Vorteile von Anforderungsmodellen

  • Bildhaft dargestellte Informationen können schneller erfasst werden und prägen sich schneller ins Gedächtnis ein
  • Es kann eine bestimmte Perspektive auf Anforderungen modelliert werden
  • Es können zweckmäßige Abstraktionen der Realität durch die Definition der Modellierungssprache festgelegt werden

Eine Kombination von natürlicher Sprache und Anforderungsmodellen vereinigt die Vorteile beider Dokumentationsarten

Die Bedeutung von Zielen im Requirements Engineering

Ein Ziel ist die intentionale Beschreibung eines von Stakeholdern gewünschten charakteristischen Merkmals des zu entwickelnden Systems, bzw. des zu entwickelnden Entwicklungsprojektes.

Dokumentationsformen von Zielen

Ziele können natürlichsprachig als auch in Form von Modellen dokumentiert werden. Als wesentlichen Bestandteil beim Formulieren von Zielen werden sogenannte Dekompositionsbeziehung für die Definition über- und untergeordneter Ziele verwendet.

Zwei Arten von Zieldekomposition

  1. UND-Dekompoisiton (alle Teilzile müssen erfüllt sein, um das übergeordnete Ziel zu erfüllen)
  2. ODER-Dekomposition (mindestens ein Teilziel muss erfüllt sein, um das übergeordnete Ziel zu erfüllen)

Modellierung von Zielbeziehungen in Und-Oder-Bäumen

undoder

Einsatzziele von Use Cases

Ziel von Use Cases ist, Funktionalitäten eines geplanten oder existierenden Systems aus einer Nutzungssicht auf das System zu untersuchen und dokumenterien zu können.

Dokumentationstechniken von Use Cases

  • Use Case Diagramme
  • Use Case Spezifikationen

Vorteile von Use Case Diagrammen

  • leicht verständlich
  • Dokumentation des Systemkontextes
  • Funktionen

Modellierung von Use Case Diagrammen

Use Cases bestehen aus

  • Akteuren (die Männchen)
  • der Systemgrenze (hier Bibliothekssystem)
  • Use Cases (die Elipsen)
  • verschiedenen Typen von Modellierungselemten (extend / include)
    • <<include>> zeigt auf einen Anwendungsfall, der vom ausgehenden einbezogen wird. Dies wird häufig zwecks Wiederverwendung eines Use Cases gemacht
    • <<extend>> ist eine optional bedingte Erweiterung eines Use Cases. Der Pfeil zeigt vom erweiternden Use Case auf den abstrakten. Im Beispiel unten wäre das wie das derive, was „Katalog durchsuchen“ konkretisiert.

Anmerkung: Die Pfeilbezeichnung „derive“  ist keine Standardspezifikation von UML Use Cases und sollte hier durch <<EXTEND>> oder <<INCLUDE>> ersetzt werden. Die Pfeillinien sollten gestrichelt sein.

Spezifikation von Use Cases

Als Ergänzung für die Use Case Diagramme werden Use Case-Spezifikationen genutzt, um die wesentlichen Eigenschaften einzelner Use Cases zu beschreiben. Für jeden festgehaltenen Use Case wird separat eine vorgegebene Schablone ausgefüllt.

Die Abschnitte der Schablone

  • eindeutiger Bezeichner des Use Case (z.B. Katalog einfach durchsuchen)
  • Name des Use Cases
  • Beschreibung des Use Case
  • auslösendes Ereignis
  • Akteure
  • Ergebnis
  • Vor- und Nachbedingungen
  • Verschiedene Arten von Szenarien
    • Beschreiben exemplarische Ereignisfolgen, die zur erfolgreichen Ausführung des Use Case führen (Hauptszenarien und Alternativszenarien) oder explizit beschreiben, wie innerhalb der Ausführung des Use Case auf Ausnahmesituationen rreagiert werden soll (Ausnahmeszenarien).

Drei Perspektiven auf die Anforderungen

Anforderungen werden im Rahmen der modellbasierten Dokumentation in drei überlappenden Modellierungsperspektiven modelliert

  1. Strukturperspektive
    1. Entity Relationship Diagram
    2. UML Klassendiagramm
  2. Funktionsperspektive
    1. Datenflussdiagramme
    2. UML Aktivitätsdiagramme
  3. Verhaltensperspektive
    1. endliche Automaten
    2. Statecharts

Fokus der Strukturperspektive auf Anforderungen

  • Struktur von Daten
  • Nutzungs- und Abhängigkeitsbeziehungen im Systemkontext

ER-Diagramme

Traditionell wird die Strukturperspektive durch ER Diagramme modelliert, die aus 3 Beziehungen bestehen:

  1. Entitätstypen (Rechtecke)
  2. Beziehungstypen (Linien)
    1. .. enthalten Kardinalitäten (unten 1 oder N/M, bzw. *), die die Häufigkeit der Instanz in der Beziehung zeigen
      1. Ein Angestellter leitet mehrere Projekte
      2. EIn Projekt wird nur von einem Angestelltem geleitet
  3. Attribute (Elipsen)

UML-Klassendiagramme

Ein weiterer verbreiteter Ansatz um Anforderungen in der Strukturperspektive zu modellieren, ist das Verwenden von UML Klassendiagrammen.

Häufig verwendete Modellelemente von UML Klassendiagrammen sind

  • Klassen
  • Assoziationen (mit Multiplizitäten und Rollen)
  • Aggregations- und Kompositionsbeziehungen
  • Generalisierungsbeziehungen

Fokus der Funktionsperspektive auf Anforderungen

  • Verarbeitung von Eingabedaten aus der Umgebung
  • Ausgabedaten für die Umgebung

Konzeptuelle Modelle in der Funktionsperspektive

  1. Datenflussdiagramme
  2. UML Aktivitätsdiagramme

Datenflussdiagramme (Synonym: Kontextdiagramme)

  • Prozesse (Unten das System)
  • Datenflüsse (die Pfeile sind betitelt, im Kontext muss es sich nicht ausschließlich um Daten handeln die fließen, es kann auch etwas physikalisches fließen)
  • Datenspeicher (im RE eher unüblich, da man hier den Kontext beschreiben möchte, aber unten wäre es die Datenbank mit Strich oben, Strich unten)
  • Termintatoren (Rechtecke – unten der Customer i.d.R. Quellen und Senken)

Da die Datenflussdiagramme genutzt werden um den Systemkontext zu beschreiben oder eine Kontextabgrenzung vorzunehmen, werden Speicher i.d.R. nicht verwendet da diese technischer Natur sind und sich eher innerhalb des Systems befinden (dies bezieht sich nur  auf Kontextabgrenzungen im Requirements Engineering).

Nachteile Datenflussdiagramme

Datenflussdiagramme zeigen nicht, unter welchen Bedingungen welche Prozesse ausgeführt werden. Sie eignen sich eher um mit Hilfe der Terminatoren Ein- und Ausgabeparameter im Systemkontext zu dokumentieren.

Um den Kontrollfluss (also den Programm-Verlauf/Ablauf) zu erfassen, müssen Datenflussdiagramme um eine Minispefizikation erweitert werden. Der Kontrollfluss kann durch Aktivitätsdiagramme modelliert werden.

UML-Aktivitätsdiagramme

Bestehen aus folgenden Elementen:

  • Aktion (Rechteck mit abgerundeten Ecken)
  • Start- und Endknoten
  • Kontrollfluss (Pfeil)
  • Objektfluss (Rechteck – zumeist nach einer Aktion und beschreibt den Zustand [z.B. Zielort ERMITTELT] als Ergebnis der vorigen Aktion)
  • Entscheidungsknoten (Raute mit ausgehenden Pfeilen)
  • Zusammenführung alternativer Kontrollflüsse (Raute mit eingehenden Pfeilen)
  • Fork (horizontaler dicker Balken auf den ein Kontrollfluss eingeht und mehrere wegfließen – Beginn von Parallelität/Nebenläufigkeit)
  • Join (horizontaler docker Balken auf den mehrere Kontrollflüsse eingehen und einer wegfließt – Ende von Parallelität / Nebenläufigkeit)
  • Hierarchisierungselemente

Fokus der Verhaltensperspektive von Anforderungen

Der Fokus liegt auf der Modellierung der Zustände, in denen sich ein System befinden kann und die Übergänge zwischen Zuständen (Transitions)

UML-Zustandsdiagramme

  • Zustand (Rechteck mit abgerundeten Ecken)
  • Start- und Endzustand (schwarzer Punkt und schwarzer Punkt mit Ring)
  • Zustandsübergang (Pfeil mit Beschriftung des Ereignisses/der Aktion die zum Übergang führt)
  • Nebenläufigkeit

Anforderungen prüfen und abstimmen

Bedeutung der Überprüfung von Anforderungen

Es wird geprüft ob Anforderungen festgelegten Qualitätskrieterien (z.B. Korrektheit oder Vollständigkeit) genügen. Fehler in den Anforderungen sollten möglichst frühzeitig erkannt und behoben werden. Der Aufwand zur Behebung eines Fehlers, der in den Anforderungen gemacht wurde, ist wesentlich höher je später er entdeckt wird. Das liegt daran, dass der Fehler in den Anforderungen Auswirkungen auf alle Artefakte des Systems haben kann (z.B. Systemarchitektur, Implementierung der Testfälle….)

Bedeutung von (Stakeholder) Konflikten bzgl. Anforderungen

Auswirkung

Konflikte, die nicht beseitigt wurden, können dazu führen, dass Anforderungen einer Stakeholdergruppe nicht umgesetzt werden können bzw. dass das System nicht oder unzureichend akzeptiert und genutzt wird.

Ziele der Abstimmung

Unter den relevanten Stakeholder muss ein gemeinsames und überinstimmendes Verständnis hinsichtlich der Anforderungen an das zu entwickelnde System erarbeitet werden.

Drei Qualitätsaspekte für Anforderungen

  1. Inhalt
  2. Dokumentation
  3. Abgestimmtheit

Prüfkriterien für die Qualitätsaspekte

8 Prüfkriterien für Inhalt

  1. Vollständigkeit des Anforderungsdokumentes
  2. Vollständigkeit der einzelnen Anforderungen
  3. Verfolgbarkeit
  4. Korrektheit / Adäquatheit
  5. Konsistenz
  6. Keine vorzeitige Entwurfsentscheidungen
  7. Überprüfbarkeit
  8. Notwendigekeit

5 Prüfkriterien für Dokumentation

  1. Konformität zum Dokumentationsformat
  2. Konfirmität zur Dokumentenstruktur
  3. Verständlichkeit
  4. Eindeutigkeit
  5. Konformität mit Dokumentationsregeln

3 Prüfkriterien für Abgestimmtheit

  1. Abstimmung
  2. Abstimmung nach Änderung
  3. Konflikte aufgelöst

Sechs Prinzipien der Prüfung von Anforderungen

Um möglichst viele Fehler in den Anforderungen zu identifieren, werden die folgenden Prinzipien eingehalten

  1. Beteiligung der richtigen Stakeholder
  2. Trennung von Fehlersuche und Fehlerkorrektur
  3. Prüfung aus unterschiedlichen Sichten
  4. Geeigner Wechsel der Dokumentationsform
  5. Konstruktion von Entwicklungsartefakten, die auf Anforderungen beruhen
  6. Wiederholte Prüfung

Techniken zur Prüfung von Anforderungen

  • Stellungnahme
  • Inspektion
  • Walkthrough

Währenddessen kommen weitere Techniken zum Einsatz

  • Perspektivenbasiertes Lesen
  • Prüfung von Prototypen
  • Einsatz von Checklisten

Prüftechniken Stellungnahme, Inspektion, Walkthrough, Perspektivbasiertes Lesen, Prüfung durch Prototypen, Einsatz von Checklisten

Aufgaben in der Abstimmung von Anforderungen

  • Konfliktidentifikation
  • Konfliktanalyse
  • Konfliktauflösung
  • Dokumentation von Konfliktlösungen

Arten von Konflikten bezüglich Anforderungen

  • Sachkonflikt
  • Interessenkonflikt
  • Wertekonflikt
  • Beziehungskonflikt
  • Strukturkonflikt

Verschiedene Konfliktlösungstechniken

  • Einigung
  • Kompromiss
  • Abstimmung
  • Variantenbildung
  • Ober-Sticht-Unter
  • Consider-All-Facts
  • Plus-Minus-Interesting
  • Entscheidungsmatrix

Dokumentation der Konfliktlösung

Nach der Konfliktlösung sollte eine Dokumentation darüber stattfinden, wie der Konflikt gelöst wurde und die Gründe die für die daraus resultierende Entscheidung resultieren.

Anforderungen verwalten

Definition von Attributierungsschemata

Um die Attributstruktur für eine Anforderung (z.B. in Doors ein Objekt mit mehreren Spalten) festzulegen, werden Attributierungsschemata verwendet. Attributierungsschemata werden entweder tabellarisch oder in Form von eines Informationsmodells defniert.

Zweck von Attributierungsschemata

Zweck von Attributen ist es, dass die Anforderungen über den gesamten Lebenszyklus des Systems verwaltet werden können.

Wichtige Attributtypen für Anforderungen

  • Identifikator (z.B. die erste Spalte eines Moduls in Doors)
  • Name
  • Beschreibung
  • Quelle
  • Stabilität
  • Kritikalität
  • Priorität

Auch die „rechtliche Verbindlichkeit“ kann anhand eines Attributes als zusätzliche Information zur Anforderung gespeichert werden.

Sichten auf Anforderungen

Sichten dienen der Reduktion von Anforderungskomplexität ist ein reduzierter Zugriff bzw. ein Filtern von Anforderungen in Abhängigkeit der Verwendung notwendig. Hierfür werden Sichten auf die Daten verwendet (z.B. in Doors Views).

  • Selektive Sichten: Darstellung einer Teilmenge der Attributwerte über definierte Selektionskriterien
  • Verdichtende Sichten: Darstellung verdichteter Informationen zu den über definierte Anforderungen ausgewählten Selektionskriterien

Vorgehen zur Priorisierung von Anforderungen

  • Bestimmung der Ziele und Randbedingungen der Priorisierung
  • Bestimmung der Priorisierungskriterien
  • Bestimmung der relevanten Stakeholder
  • Auswahl der zu priorisierenden Artefakte

Techniken zur Priorisierung von Anforderungen

  • Ranking und Top-Ten-Technik
  • Ein-Kriterium-Klassifikation
  • Kano-Klassifikation
  • Wiegers’sche Priorisierungsmatrix

Nutzen der Verfolgbarkeit von Anforderungen

  • Vereinfachung der Nachweisbarkeit
  • Identifikation von unnötigen Eigenschaften im System
  • Identifikation von unnötigen Anforderungen
  • Unterstützung der Auswirkungsanalyse
  • Unterstützung der Wiederverwendung
  • Unterstützung der Festlegung der Zurechenbarkeit
  • Unterstützung der Wartung und Pflege

Klassen von Verfolgbarkeitsbeziehungen

  • Pre-Requirement-Specification-Traceability
  • Post-Requirements-Specification-Traceability
  • Traceability zwischen Anforderungen

Repräsentationsformen von Verfolgbarkeitsbeziehungen

  • Textuelle Refernzen und Hyperlinks
  • Verfolgbarkeitsmatrizen
  • Verfolgbarkeitsgraphen

Versionierung von Anforderungen

Es wird ermöglicht verschiedene Entwicklungsstände und Anforderungsdokumente verfügbar zu halten. Die Versionsnummer einer Anforderungs besitzt dabei mindestens zwei Bestandteile

  1. Version
  2. Inkrement

Version 2.1 (<- Inkrement ist 1)

Bildung von Anforderungskonfigurationen

Anforderungskonfigurationen fassen eine definierte Menge logisch zusammengehörender Anforderungen zusammen. Jede Anforderung ist maximal in einer Version in der Anforderungskonfiguration enthalten.

Bildung von Anforderungsbasislinien

Die Bildung von Anforderungskonfigurationen wird entlang zweier Domensionen definiert:

  • Produktdimension: die einzelenen Anforderungen der Anforderungsbasis
  • Versionsdimension: die verschiedenen Versionsstände einer Anforderung

Bedeutung von Anforderungsänderungen

Über den gesamten Lebenszyklus eines Systems ändern sich Anforderungen. Diese Änderungen werden in einem systematischen Änderungsmanagementprozess verwaltet.

Aufgaben und Vertreter des Change-Control-Board

In einem Änderungsmanagementprozess ist das Change-Control-Board für die Bearbeitung eingehender Änderungsanträge verantwortlich. Die Aufgaben des Change-COntrol-Boards sind

  • Klassifikation eingehender Änderungsanträge
  • Bestimmung des Aufwands einer Änderung
  • Beurteilung der Änderungsanträge hinsichtlich Aufwand/Nutzen
  • Definition neuer Anforderugnen auf Basis eingehender Änderungsanträge
  • Entscheidung über Annahme oder Ablehnung eines Änderungsantrags
  • Priorisierung der angenommenen Änderungsanträge
  • Zuordnung der Änderungen zu Änderungsprojekten

Aufbau eines Änderungsantrages für Anforderungen

  • Identifikator des Änderungsantrages
  • Titel des Änderungsantrages
  • Beschreibung der notwendigen Änderung
  • Begründung für die Notwendigkeit der Änderung
  • Datum der Beantragung
  • Antragsteller
  • Prioriät der Änderung aus Sicht des Antragstellers

3 Klassen von Änderungsanträgen

  1. Korrektive Änderungen
  2. Adaptive Änderungen
  3. Ausnahmeänderungen

Vorgehen zur Bearbeitung von Änderungsanträgen

  • Auswirkungsanalyse und Beurteilung des Änderungsantrages
  • Priorisierung der Anforderugnsänderung
  • Zuordnung der Änderung zu einem Änderungsprojekt
  • Kommunikation der Annahme/Ablehnung des Änderungsantrages

Werkzeugunterstützung

Acht Eigenschaften eines Requirements Management Werkeugs

  • Verschiedene Informationen verwalten
  • Logische Beziehungen zwischen Informationen verwalten
  • Jedes Artefakt eindeutig identifierzieren
  • Informationen flexibel und sicher zugänglich machen
  • Sichten auf die Informationen unterstützen
  • Informationen organisieren
    • Attributierung
    • Hierarchiebildung
  • Berichte über Infromationen erstellen
  • Dokumente aus den Informationen generieren

Spezielle Tools für das Requirements Engineering sind IBM Doors oder Polarion.

Fünf Gesichtspunkte bei der Einführung von Requirements Engineering Werkzeugen

  • Benötigte Ressourcen planen
  • Risiken durch Pilotprojekte umgehen
  • Evaluierung anhand von definierten Kriterien
  • Über Lizenzkosten hinausgehende Kosten berücksichtigen
  • Benutzer schulen

Sieben Sichten auf Requiremtns Engineering Werkzeuge

  • Projektsicht (z.B. Unterstützung der Projektplanung)
  • Benutzersicht (insbesondere Bedienung)
  • Produktsicht (Funktionalität)
  • Prozesssicht (methodische Unterstützung)
  • Anbietersicht (z.B. Service des Anbieters)
  • Technische Sicht (z.B. Interoperabilität, Skalierbarkeit)
  • Betriebswirtschaftliche Sicht (Kosten)

Für jede Sicht sind klare Kriterien zu definieren.

Welcher Prozess / Benutzer sperrt eine Datei?

Problem

Man erhält die Meldung, dass ein Prozess oder ein Benutzer eine Datei sperrt

Ansatz

* Herausfinden welcher Prozess die Datei sperrt bzw…
* Herausfinden welcher user die Datei sperrt (Windows Server)
* Prozess beenden

Lösung

Prozess sperrt Datei

Um herauszufinden welcher Prozess eine Datei sperrt, gibt es von Dr. Hoiby das Freeware Tool WhoLockMe. Es bietet an, den Prozess zu beenden

User sperrt Datei

Wenn ein User eine Datei sperrt, kann man auf dem Server unter Benutzung von

net file

oder

net share

entsprechende Benutzerlocks auffinden.

Größte Ordner / Platzfresser auf der Festplatte finden

Problem

Auf einmal ist die Festplatte voll und man verbringt Stunden damit im Windows-Explorer nach den Platzfressern zu suchen. Auch die Powershell-Befehle sind nicht wirklich hilfreich oder zu kompliziert, als dass man hier schnell Abhilfe schaffen könnte. Man beginnt Programme zu deinstallieren, Daten zu löschen die man gar nicht löschen möchte, durchstöbert temporäre Dateien, löscht die Größten Dateien und hat dann endlich 3 GB frei. Aber wo sind die restlichen 200 GB hin?

Ansatz

Eine ausgezeichnete grafische Abhilfe schafft das Programm Sequoia View, welches kostenlos auf der Internetseite der technischen Universität Eindhofen heruntergeladen werden kann, mit sogenannten Cushion Treemaps.

Lösung

Auf einmal habe ich festgestellt, dass der Microsoft IIS Server aktiviert ist und seit Monaten Gigabytegroße LOG-Files speichert (großer Kasten im Screenshot).

Beurteilung

Dieses Programm spart sehr viel Arbeit. Es lohnt sich in diesem Fallle nicht unbedingt Windows-Boardmittel zu verwenden.

Mirror

Zur Unterstützung des Uni-Projektes, biete ich meine Seite als Download-Mirror gerne an.

Internetabdeckung der Mobilfunkanbieter Telekom, Vodafon, EPlus und O2

Intention

Da ich jeden Tag durch längere Autofahrten auf der A7 zwischen Melsungen und Fulda auf das mobile Internet zurückgreife, musste ich mich über die schlechte Internetabdeckung von ePlus ärgern. 2 Blackberry-Inhaber die mit meiner Fahrtgemeinschaft fahren, hatten über die Firma einen Telekomvertrag. Diese schienen in fast allen Gebieten auf der A7 schnelles Internet zur Verfügung zu haben. Doch gibt es da Statistiken?

Netzabdeckungsseiten der Anbieter

http://www.vodafone.de/privat/hilfe-support/netzabdeckung.html
http://www.t-mobile.de/funkversorgung
http://eis03sn1.eplus-online.de/geo/portal/gsm?javax.portlet.events=url%28pid_JGIS-Overview-Portlet%252Fmd_view%252Fst_normal%29

Grafischer Vergleich

Eigenbewertung der Grafik

Wenn man davon ausgeht, dass die Grafiken die reelle Internetabdeckung der Mobilfunkanbieter anzeigt, müsste die Telekom die beste Netzabdeckung auf der A7 zwischen Fulda und Melsungen haben.

C#.NET: LDAP Zugriff

Aufgabenstellung

In größeren Firmen kann über das LDAP-Protkoll auf Personendaten und -informationen zugegriffen werden. Die kann z.B. für eine Authentifizierung per Singlesignon genutzt werden.

Ansatz

Möchte man diesen Dienst nutzen, muss man zunächst wissen auf welchem Server im Unternehmen ein solcher Dienst angeboten wird. Dies könnte z.B. ein Active Directory Server (Windows Server) oder ein Lotus Notes Server (notesldap) sein.

Zunächst benötigt man den Import:

using System.DirectoryServices;

Lösung

private void button1_Click(object sender, EventArgs e)
{
    DirectoryEntry DirEntry = new DirectoryEntry();
    {
        DirEntry.Path = "LDAP://notesldap.it.company.com";
        DirEntry.AuthenticationType = AuthenticationTypes.ServerBind;
    }
    Console.WriteLine(DirEntry.Name);

    DirectorySearcher search = new DirectorySearcher(DirEntry);
    {
        // Tweak this to refine your search
        search.Filter = "(sn=Karpenstein)";
        // I limit my results while I tweak          
        search.SearchScope = SearchScope.Subtree;
    }
    try
    {
        foreach (SearchResult result in search.FindAll())
        {
            if (result != null)
            {
                DirectoryEntry de = result.GetDirectoryEntry();
                textBox1.Text += "===================================="+br();
                textBox1.Text +=
                "User: \t\t" + de.Properties["uid"].Value.ToString() + br() +
                "objectclass:\t\t" + de.Properties["objectclass"].Value.ToString();

                IDictionaryEnumerator ide = de.Properties.GetEnumerator();
                ide.Reset();

                try
                {
                    while (ide.MoveNext())
                    {
                        PropertyValueCollection pvc = ide.Entry.Value as 
                                               PropertyValueCollection;

                        textBox1.Text += ide.Entry.Key.ToString();
                        textBox1.Text += pvc.Value;
                    }
                }
                catch (Exception sdf)
                {
                    textBox1.Text += sdf.Message;
                }
                
                //textBox1.Text += "location:\t\t" + de.Properties["location"].
                                              Value.ToString() + br();
                //textBox1.Text += "maildomain:\t\t" + de.Properties["maildomain"].
                                              Value.ToString() + br();

                textBox1.Text += "sn:\t\t" + de.Properties["sn"].
                                            Value.ToString() + br();
                //textBox1.Text += "dominocertificate:\t\t" + 
                    de.Properties["dominocertificate"].
                                             Value.ToString() + br();
                textBox1.Text += "mail:\t\t" + de.Properties["mail"].
                                             Value.ToString() + br();
                textBox1.Text += "l:\t\t" + de.Properties["l"].
                                            Value.ToString() + br();
                textBox1.Text += "displayname:\t\t" + de.Properties["displayname"].
                                            Value.ToString() + br();
                textBox1.Text += "givenname:\t\t" + de.Properties["givenname"].
                                           Value.ToString() + br();
                //textBox1.Text += "dc:\t\t" + de.Properties["dc"].
                                           Value.ToString() + br();
                //textBox1.Text += "dn:\t\t" + de.Properties["dn"].
                                           Value.ToString() + br();
                textBox1.Text += "cn:\t\t" + de.Properties["cn"].
                                            Value.ToString() + br();
                textBox1.Text += "====================================";
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message.ToString());
    }
    finally
    {
        search.Dispose();
        DirEntry.Close();
    }
}

Workflow Patterns – Teil 1

Workflows

Was ist ein Workflow?

Grundsätzlich ist ein Workflow erstmal nichts technisches. Es geht hierbei meistens (so auch hier) um Formulare, die in einem Unternehmen mehrere Abteilungen und Stationen durchlaufen. Ob das Formular auf einem Papier oder in einer rechnergestützten Anwendung realisiert wurde, spielt dabei vorerst keine Rolle.

Mithilfe von Workflows können Personen gemeinsam an Dokumenten arbeiten. Organisationen können einheitliche Geschäftsprozesse einhalten und die Effizienz und Produktivität der Organisation verbessern, indem die Aufgaben und Schritte einzelner Geschäftsprozesse verwaltet und harmonisiert werden. Auf diese Weise können sich die Personen, die diese Aufgaben ausführen, auf die Arbeit selbst und nicht auf die Verwaltung des Workflows konzentrieren.

Papiergebundene Workflows haben im Vergleich zu rechnergestützten Workflows den Nachteil, dass sich die folgenden Fragen nicht beantworten lassen:

  • Wo befindet sich das Dokument?
  • Wer bearbeitet es?
  • Wer hat es schon bearbeitet?
  • Kann ich das Dokument schnell zurückholen?
  • Wann wurde es in Umlauf gebracht?
  • Wurde ein Datum überschritten?

Ein Workflow ist eine inhaltlich abgeschlossene, zeitlich und sachlogisch zusammenhängende Folge von Schritten, die zur Bearbeitung eines betriebswirtschaftlich relevanten Objektes notwendig sind und deren Funktionsübergänge von einem Informationssystem gesteuert werden.

Abgeschlossenheit: Ein Workflow definiert einen Arbeitsablauf mit einer Abfolge von Aktivitäten innerhalb einer Organisation. Die Abfolge beginnt an einem bestimmten Punkt und endet auch an einem solchem. Es gibt daher einen Initiator eines Workflows und eine Aktion, die am Ende definiert, was als nächstes passieren soll.

Zeitlicher Ablauf: Ein Workflow kann an einem Zeitpunkt 1 beginnen und an einem Zeitpunkt 5 aufhören. Wenn dies der Fall ist, existieren 5 Workflowpositionen.

Sachlogik:
Sachlogik dient dazu..

  • Aktionen zu validieren und Eingabefehler auszuschließen
  • den zeitlichen Ablauf anhand bestimmter Kriterien zu beeinflussen
  • Workflowpositionen nach Notwendigkeit wegfallen oder hinzukommen zu lassen
  • Schritte die automatisierbar sind durch definierte Logik durch den Workflow eigenständig erledigen zu lassen

In der Regel ist das betriebswirtschaftliche Objekt ein Formular, welches zum Einsammeln von Daten gedacht ist.

Wo werden Workflows verwendet und welchem Zweck dienen Sie?

Workflows werden überall dort verwendet, wo durch einen strukturierten Arbeitsablauf transparenz und Arbeitsersparnis erreicht werden kann. Arbeitsersparnis erhält man in der Regel durch den niedrigeren Koordinationsaufwand, die Transparenz hingegen durch die Möglichkeit den Status eines Workflows abzufragen (an welcher Workflowposition hängt es – wen muss ich ansprechen – wer ist verantwortlich?). Normalerweise würde man anfangen rumzutelefonieren, bei wem ein Dokument gerade liegt. Dies kann über eine Suchfunktion ínnerhalb des Informationssystems realisiert werden.

Wer braucht Workflows?

Personen, die …

  • … über Dokumente wie Formulare Informationen/Daten über mehrere, in der Organisation verteilte einsammeln und nicht die Zeit haben hinter einem Dokument hinterherzutelefonieren.
  • … den Verbleib eines Dokumentes genau nachvollziehen müssen
  • … nicht das Gesamt-Know-How eines Arbeitsprozesses besitzen und auf andere Personen angewiesen sind.
  • … einen Prozess mit erheblichem Aufwand optimieren möchten
  • … gerne mehr Zeit haben.

Welche Realisierungsmöglichkeiten gibt es für Worfklows?

  • Papiergebundene Workflows
  • Web-Workflows
  • Native Workflows
  • Systemintegrierte Workflow (z.B. SAP Workflow)

Wie plant man einen Workflow?

  • Entscheidung für die Implementierung eines Workflows
  • Anforderungserfassung
  • Definition von Zielen und des Optimierungspotentials
  • Festlegung der Workflowinfrastruktur
    • Präsentationsformen: Web/Windows/Mobil
    • Kommunikationstechniken für Beachrichtigungen: z.B. eMail: SMTP-Server, personifizierter Posteingang kombiniert mit eMail-Nachricht …
    • Benötigte Services/Dienste: Z.B. Bestände bei SAP abrufen…
  • Festlegung der Workflowtechnologie
    • Client-Server-Lösung
      • Web-Anwendung: Three-Tier-Architektur mit: Adobe Flex 3/FluorineFX/MS SQL Server
      • Mobil-Anwendung: Android App und iPhone App
    • Stand Alone Lösungen
      • Office Dokumente die sich per eMail versenden
  • Festlegung der Workflowarchitektur
    • Aufgaben, bzw. Rollen
      • Was für Tätigkeiten werden in dem Geschäftsprozess erledigt? Hier leiten sich die Rollen ab…
      • Eine Rolle ist eine Aufgabe, die eine Person in einem Unternehmen hat.
    • Ablauf
      • Reihenfolge: Welche Informationen müssen vor dem Erreichen einer Aufgabe/Workflowposition erfasst sein?

Workflow-Patterns

Workflow-Patterns sind bestimmte Entwurfsmuster, die in Workflow-Projekten immer wieder anzutreffen sind. Workflow-Patterns bestehen aus Workflow-Positionen und Workflow-Abläufen.

Workflow-Positionen

Eine Workflowposition dient der Vorlage, Bearbeitung und Bestätigung von Daten, die über ein Formular eingesammelt werden. Die Workflowposition kann einer Person, oder einer Gruppe von Personen zugeordnet sein.

Zeitliche Abfolgen

Zeitliche Abfolgen legen fest, wann eine Person das Dokument erhält und zu welchem Zeitpunkt.

Logische Abfolgen

Eine logische Abfolge wird nur dann abgearbeitet, wenn ein vorheriges Ereignis / eine vorherige Logikprüfung erfolgreich war und durch eine optionale Workflowpositionen durch die Abfolge erreicht wird.

Vorgänger- und Nachfolgerbeziehungen

Benötigt eine Person Daten von einer anderen, ist die Person, die die Daten benötigt, der Nachfolger der Person, die die Daten in das Formular eingibt. Es gibt hier also eine zeitliche Abhängigkeit, die durch Vorgänger- und Nachfolgebeziehungen defniert werden. Man versucht dabei so viele Positionen parallel abzuarbeiten, wie das möglich ist.

Workflow-Abläufe

Serialisierte Workflowabläufe

Einer nach dem anderen (bsp. Excel-Dokument das bei Bearbeitung immer gesperrt wird).
Vorteile:
* Klarer strukturierter Ablauf.
Nachteile:
* Es geht viel Zeit während der Bearbeitung verloren, wenn keine Daten vom Vorgänger benötigt werden (informelle Abhängigkeit zum Vorgänger).
* Keine parallele Abarbeitung möglich, da immer gesperrt.

Parallele Workflowabläufe

Es können mehrere Personen gleichzeitig an einer Workflowposition auf den Workflow zugfreifen. Erst wenn alle Personen bestätigt haben, läuft der Workflow weiter.

Fortsetzung folget (Workflow Patterns – Teil 2 inklusive Codebeispiele)