29.4.08

Software Processes

Following is a very simplified four step model of a software development process;

There is a problem to be solved. (Problem - Solution)
The approach from problem to solution is as follows;
Analysis: Business analyst analyzes the problem statement (and the needs) in real world with client. The output is a model of solution, for example in form of a use case.
Design: This step is nothing but in Abstract world: Designer makes the appropriate software design, which is supplied by the analyst. Design provides "what to do" for software development ("how to do" is let to software development).
Implementation: Software development team develops the application.

Software development process is an iterative process (QA, Change management, etc. see on Wikipedia)

The development process for a simple database example

(From book: Beginning Database Design, Churcher C., APress, ISBN: 978-1-59059-769-9)

21.4.08

UML-Konzepte und Notation

Geschäftsprozess (use case): spezifiziert einen Arbeitsablauf, der aus einer Menge von Aktionen, einschliesslich Varianten, besteht, die ausgeführt werden, um ein beobachteres Ergebnis hervorzubringen, das einen Wert für den Akteur besitzt. Geschäftsprozess besteht aus mehreren zusammenhängenden Aufgaben, die von einem Akteur durchgeführt werden, um ein Ziel zu erreichen bzw. ein gewünschtes Ergebnis zu erstellen (stets aus der Sicht des Akteurs; von den Akteuren ausgehend [outside-in]).

Akteur (actor): repräsentiert Rollen, die Benutzer einnehmen, wenn sie mit dem Geschäftsprozess interagieren. Akteure könne Menschen oder automatische Systeme sein. Akteure befinden sich ausserhalb des Systems.

Name eines Geschäftsprozesses: Substansiv-Verb (place order) [z.B. Auftrag erteilen]

Generalisierung zwischen Akteuren: Allgemeine Eigenschaften von Akteuren (z.B. Kunde) können definiert und spezialisiert werden (z.B. als Privatkunde).

Assoziationen (association): Akteure werden durch eine Assoziation mit Geschäftsprozessen verbunden. Die Assoziation gibt an, dass der Akteur und der Geschäftsprozess miteinander kommunizieren. Jeder kann Botschaften senden und empfangen. Assoziationen können mit Kardinalitäten versehen werden (z.B. 1->*).

Strukturierung von Geschäftsprozessen:
  • Allgemeines Verhalten von anderen Geschäftsprozessen: include-Beziehung (gemeinsames Verhalten)
  • Varianten in andere Geschäftsprozesse verlagern: extend-Beziehung (erweitertes Verhalten: B-extends-A [A <--- B], ist Prozess-B beendet, wird in Prozess-A zurückgekehrt. Die Erweiterung wird vogenommen, um Komplexität des ursprünglichen Prozesses zu reduzieren.)
  • Generalisierung als abstrakte oder konkrete Eltern-Geschäftsprozesse
Geschäftsprozessdiagramm (use case diagram): zeigt Geschäftsprozess, Akteure und ihre Beziehungen. Geschäftsprozess- diagramm beschreibt die Beziehungen zwischen Akteuren und Geschäftsprozessen in einem System.

Geschäftsprozess-Schablone (use case template): ermöglicht eine semiformale Spezifikation von Geschäftsprozessen. Sie enthält folgende Informationen: Name, Ziel, Kategorie, Vorbedingung, Nachbedingung Erfolg, Nachbedingung Fehlschlag, Akteure, auslösendes Ereignis, Beschreibung des Standardfalls (sowie Erweiterungen und Alternativen zum Standardfall).

(Quelle: Balzert H., Lehrbuch der Software-Technik Software Entwicklung
ISBN: 3-8274-04080-0)

20.4.08

Checkliste Geschäftsprozesse

Ergebnisse
  • Geschäftsprozessdiagramm: Alle Geschäftsprozesse und Akteure sind eingetragen.
  • Beschreibung der Geschäftsprozesse: Alle Geschäftsprozesse sind umgangssprachlich oder mittels Schablone beschrieben.
Konstruktive Schritte

1. Akteure ermitteln
  • Welche Personen führen diese Aufgaben zur Zeit durch und besitzen daher wichtige Kenntnisse über die durchzuführenden Arbeitsabläufe? Welche Rollen spielen diese Personen?
  • Welche Personen werden zukünftig diese Aufgaben durchführen und auf welche Vorkenntnisse muss die Benutzungsoberfläche abgestimmt werden? Welche Rollen spielen diese Personen?
  • Wo befindet sich die Schnittstelle des betrachteten Systems bzw. was gehört nicht mehr zum System?
2. Geschäftsprozesse für die Standardverarbeitung ermitteln
  • Primäre und ggf. sekundäre Geschäftsprozesse betrachten
  • Welche Standardverarbeitung besitzen sie?
2a. mittels Akteuren
  • Sind die Akteure Personen?
  • Welche Arbeitsabläufe lösen sie aus?
  • An welchen Arbeitsabläufen wirken sie mit?
2b. mittels Ereignissen (Akteure sind esterne Systeme)
  • Erstellen einer Ereignisliste
  • Für jedes Ereignis einen Geschäftsprozess identifizieren
  • Externe und zeitliche Ereignisse unterscheiden
2c. mittels Aufgabenbeschreibungen
  • Was sind die Gesamtziele des Systems?
  • Welches sind die zehn wichtigsten Aufgaben?
  • Was ist das Ziel jeder Aufgabe?
3. Geschäftsprozesse für die Sonderfälle formulieren
  • Erweiterungen und Alternativen mittels Schablonen erstellen
  • Aufbauend auf Standardfunktionalität mit extend die Sonderfälle formulieren (erweiterte Geschäftsprozesse beschreiben)
4. Aufteilen komplexer Geschäftsfälle
  • Komplexe Schritte als eigene Geschäftsprozesse spezifizieren (include)
  • Komplexe Geschäftsprozesse (viele Sonderfälle) in mehrere Geschäftsprozesse zerlegen und Gemeinsamkeiten mit include modellieren.
  • Umfangreiche Erweiterungen als Geschäftsprozesse spezifizieren (extend)
5. Gemeinsamkeiten von Geschäftsprozessen ermitteln
  • Auf redundanzfreie Beschreibung achten (include)
Analytische Schritte

6. Gute Beschreibung
  • Verständlich für den Auftraggeber
  • Extern wahrnehmbares Verhalten
  • Fachliche Beschreibung des Arbeitsablaufs
  • Beschreibt Standardfall vollständig und Sonderfälle separat
  • Maximal eine Seite
7. Fehlerquellen
  • Zu kleine und damit zu viele Geschäftsprozesse
  • Zu frühe Betrachtung der Sonderfälle
  • Zu detailierte Beschreibung der Geschäftsprozess
  • Verwechseln von include und extend Beziehungen
  • Geschäftsprozesse beschreiben Dialogabläufe
Im ersten Schritt konzentriert man sich auf die Standardfälle und ignoriert die Sonderfälle. Bei Personen werden typische Arbeitsabäufe analysiert. In Interviews sind folgenden Fragen zu stellen;
  • Welches Ereignis löst den Arbeitsablauf aus?
  • Welche Eingabedaten werden benötigt?
  • Welche Schritte sind auszuführen?
  • Ist eine Reihenfolge der Schritte festgelegt?
  • Welche Zwischenergebnisse werden erstellt?
  • Welche Endergebnisse werden erstellt?
  • Welche Vorbedingungen müssen erfüllt sein?
  • Welche Nachbedingungen (Vorbedingungen anderer Geschäftsprozesse) werden sichergestellt?
  • Wie wichtig ist diese Arbeit?
  • Warum wird diese Arbeit durchgeführt?
  • Kann die Druchführung verbessert werden?
Ist es schwierig anhand von Akteuren oder Ereignissen Geschäftsprozesse zu identifizieren, dann kann man die Aufgaben des Systems beschreiben. Zunächst formuliert man den Zweck (die Ziele des Systems). Aus diesen Zielen werden die notwendigen Aufgaben abgeleitet. Die zehn wichtigsten Aufgaben sind zu überlegen. Jede Aufgabe wird umgangssprachlich mit 25 oder weniger Worten beschrieben. Zu beantworten ist die Frage: Was ist das Ziel dieser Aufgabe bzw. Nutzen dieser Aufgabe für das Gesamtsystem?

(Quelle: Balzert H., Lehrbuch der Software-Technik Software Entwicklung
ISBN: 3-8274-04080-0)

19.4.08

Geschäftprozesse: Definition und Schablone

Mit Hilfe von Geschäftsprozessen kann sowohl die Funktionalität eines Produkts als auch die Ablauforganisation eines Unternehmens beschrieben werden.
Auf Unternehmensebene (Geschäftsprozesse im Grossen) handelt es sich bei einem Geschäftsprozess um einen Unternehmensprozess (Business Process), der aus einer Anzahl von unternehmensinternen Aktivitäten besteht, die durchgeführt werden, um die Wünsche eines Kunden zu befriedigen.
Ein Geschäftsprozess (use case) definiert einen Arbeitsablauf, wenn es sich um ein Software-System handelt, der mit Hilfe der Software durchgeführt wird (aber manuelle und organisatorische Anteile besitzen kann).

Schablone für Geschäftsprozesse (Templates für use cases)
  • Geschäftsprozess: Name (was wird getan?)
  • Ziel: Globale Zielsetzung bei erfolgreicher Ausführung des Geschäftsprozesses
  • Kategorie: primär, sekundär oder optional
  • Vorbedingung: Erwarteter Zustand, bevor Geschäftsprozess beginnt
  • Nachbedingung Erfolg: Erwarteter Zustand nach erfolgreicher Ausführung des Geschäftsprozesses, d.h. Ergebnis des Geschäftsprozesses
  • Nachbedingung Fehlschlag: Erwarteter Zustand wenn das Ziel nicht erreicht werden kann
  • Akteure: Rollen von Personen oder andere Systeme, die den Geschäftsprozess auslösen oder daran beteiligt sind
  • Auslösendes Ereignis: Wenn dieses Ereignis eintritt, dann wird der Geschäftsprozess initiiert
  • Beschreibung:
    1. Erste Aktion
    2. Zweite Aktion
    3. ...
  • Erweiterungen: 1a Erweiterung des Funktionsumfangs der ersten Aktion (falls vorhanden)
  • Alternativen:
    1. a Alternative Ausführung der ersten Aktion
    2. b Weitere Alternative zur ersten Aktion
Der betrachtete Geschäftsprozess kann nur ausgeführt werden, wenn die genannte Vorbedingung erfüllt ist. Die Nachbedingung eines Geschäftsprozesses A kann für einen Geschäftsprozess B eine Vorbedingung bilden. Diese Angaben bestimmen also, in welcher Reihenfolge Geschäftsprozesse ausgeführt werden können.
Unter Beschreibung erfolgt eine umgangssprachliche Spezifikation des Geschäftsprozesses. Die einzelnen Aufgaben werden der besseren Übersicht halber nummeriert. Wichtig ist, dass hier zunächst der Standardfall, d.h. der Fall, der am häufigsten auszuführen ist, beschrieben wird. Alle seltener eingesetzten Fälle werden unter Erweiterungen ausgeführt, wenn sie zusätzlich zu einer Aktion der Standardverarbeitung ausgführt werden und unter Alternativen, wenn sie eine Aktion der Normalverarbeitung ersetzen.

Die Kategorie eines Geschäftsprozesses ist
  • primär: wenn er notwendiges Verhalten beschreibt, das häufig benötigt wird,
  • sekundär: wenn er notwendiges Verhalten beschreibt, das selten benötigt wird,
  • optional: wenn er notwendiges Verhalten beschreibt, das für den Einsatz des Systems zwar nützlich, aber nicht unbedingt notwendig ist.
(Quelle: Balzert H., Lehrbuch der Software-Technik Software Entwicklung
ISBN: 3-8274-04080-0)

Nvidia's GauGan App

NVIDIA's GauGAN AI Machine Learning Tool creates photorealistic images from Simple Hand Doodling http://nvidia-research-mingyuliu.com/...