stuber.info€¦ · Web viewNeue / geänderte politische oder rechtliche Randbedingungen Problem:...

39
Zusammenfassung IM Thomas Stuber, 06.06.2010 Inhalt 0 Lernziele Modul..................................................3 1 Textarbeit.......................................................4 1.1 Informationen aufnehmen.......................................4 1.2 Informationen verarbeiten (strukturieren, ordnen, wiederholen)5 1.3 Anwenden......................................................5 1.4 Schreiben.....................................................6 2 IT Grobkonzepte und Modellierung (EPK)...........................7 2.1 Grobkonzept...................................................7 2.2 Modellierung..................................................8 2.2.1 Definition................................................8 2.2.2 Zweck.....................................................9 2.2.3 Modellbildung............................................10 2.2.4 Systemmodellierung in der IT.............................10 2.3 Prozessmodellierung..........................................13 2.3.1 Allgemein................................................13 2.3.2 Generisches Prozessmodell................................13 2.3.3 EPK......................................................14 2.3.4 Erweitertes EPK (EEPK)...................................17 2.3.5 Weitere Modellierungssprachen............................18 2.4 Datenmodellierung............................................19 3 Requirement Engineering und Modellierung........................24 3.1 Requirements Engineering und Management......................24 3.1.1 Was ist Requirements Engineering.........................24 3.1.2 Warum?...................................................24 3.1.3 Überblick................................................25 3.1.4 Sammeln..................................................26 3.1.5 Ausarbeiten..............................................27 3.1.6 Verwalten................................................28

Transcript of stuber.info€¦ · Web viewNeue / geänderte politische oder rechtliche Randbedingungen Problem:...

Zusammenfassung IM

Thomas Stuber, 06.06.2010

Inhalt0 Lernziele Modul................................................................................................................................3

1 Textarbeit..........................................................................................................................................4

1.1 Informationen aufnehmen........................................................................................................4

1.2 Informationen verarbeiten (strukturieren, ordnen, wiederholen)............................................5

1.3 Anwenden.................................................................................................................................5

1.4 Schreiben..................................................................................................................................6

2 IT Grobkonzepte und Modellierung (EPK).........................................................................................7

2.1 Grobkonzept.............................................................................................................................7

2.2 Modellierung.............................................................................................................................8

2.2.1 Definition...........................................................................................................................8

2.2.2 Zweck................................................................................................................................9

2.2.3 Modellbildung.................................................................................................................10

2.2.4 Systemmodellierung in der IT..........................................................................................10

2.3 Prozessmodellierung...............................................................................................................13

2.3.1 Allgemein........................................................................................................................13

2.3.2 Generisches Prozessmodell.............................................................................................13

2.3.3 EPK..................................................................................................................................14

2.3.4 Erweitertes EPK (EEPK)....................................................................................................17

2.3.5 Weitere Modellierungssprachen.....................................................................................18

2.4 Datenmodellierung.................................................................................................................19

3 Requirement Engineering und Modellierung..................................................................................24

3.1 Requirements Engineering und Management.........................................................................24

3.1.1 Was ist Requirements Engineering..................................................................................24

3.1.2 Warum?...........................................................................................................................24

3.1.3 Überblick.........................................................................................................................25

3.1.4 Sammeln.........................................................................................................................26

3.1.5 Ausarbeiten.....................................................................................................................27

3.1.6 Verwalten........................................................................................................................28

3.1.7 Werkzeuge......................................................................................................................29

3.2 UML.........................................................................................................................................29

3.3 Funktionsmodellierung...........................................................................................................29

3.3.1 CRC Karten......................................................................................................................29

3.3.2 Dekomposition grösserer Systeme..................................................................................30

3.4 Systemdesign..........................................................................................................................31

3.4.1 Themenfelder im Systemdesign......................................................................................31

3.4.2 Einflussfaktoren und Vorgehen.......................................................................................31

3.4.3 Systemdesign kommunizieren.........................................................................................32

0 Lernziele Modul Erstellung eines Grobkonzepts für ein IT System (Bau oder Kauf oder Miete):

o Was soll das System leisten? – Requirements Engineeringo Wie sieht das System grob aus? – Modelle:

Prozessmodell Informations- und Datenmodell Funktionenmodell Systemdesign

Fertigkeiten zur Erstellung eines Grobkonzepts:o UML-Kurs, (viele) Modellierungs-Übungeno Textarbeit:

Informationen finden (Recherche) Informationen analysieren (Verständnis) Informationen aufbereiten und darstellen (Präsentation)

Durchgängige Verwendung einer Fallstudie:o Firma „AlpineRe“ – realitätsnahes Beispielo Projekt CIS (Customer Information System) – an die Praxis angelehnt, aber (stark)

vereinfachto Die Studierenden erstellen die wesentlichen Teile des Grobkonzepts für die Fallstudie

(mit Coaching)

1 Textarbeit

1.1 Informationen aufnehmenDas THUN-Schema

T Thema (gr. Gesetzt) Titel, 2-3 SchlagworteH Hauptgedanken Kernaussagen, HauptargumenteU Unterstützende Einzelheiten Erklärungen, Beispiele, Daten, BeweiseN Nebensächliches Zierrat, Abschweifungen

Fragestellung zum Ermitteln von Bereichen

Thema:

Worum geht es überhaupt Wie lautet das Ziel? Was ist das Kernproblem?

Hauptgedanken

Was ist die Botschaft des Autors? Welches sind die Schlussfolgerungen?

Unterstützende Einzelheiten

Welche Beispiele kommen? Wo sind Beweise? Womit werden Hauptgedanken veranschaulicht?

Der Weg zum IT Konzept

1. Kunde anhören (Lastenheft)2. Aufschreiben; was haben wir verstanden (Pflichtenheft)3. Klären: Passt unser Verständnis? Missverständnisse & Sprachunterschiede klären.

Generell Wichtig

Verständnis erlangen Vollständiges eigenes Bild gewinnen (strukturieren etc.) Eigenes Bild klar darlegen

IT-Konzept schreiben

1. Phase 1: Recherche2. Phase 2: Disposition entwickeln (roter Faden, Inhalte, Quellen, Notizen)3. Phase 3: Schreiben

Drei Bestandteile zum Erkennen eines Informationsblocks:

1. Wahrnehmungskanäle (lesen, sprechen, schreiben, hören,..) richtig einsetzten, ggf. Kombinieren

2. Auf Form von Information achten (Strukturangaben, Gesetzte Ziele, Abstracts, Farbcodes, Layout, Bilder)

3. Aufbau von Informationen erkennen

Regeln für Thema-Formulierung

Hauptsachen in Hauptsätze (Präsident x ermordet!) Mehrere Hauptsachen: Beiordnung (76 Tote bei Zugunglück in England) Verb möglichst früh im Satz Kurze und einfache Sätze Keine exotischen Fachwörter, Abkürzungen

1.2 Informationen verarbeiten (strukturieren, ordnen, wiederholen)Techniken um Informationen zu vertiefen

Gedankenstützen, Merksätze Eigene Zusammenfassung, Zeichnungen Verwandtschaften suchen (z.B. Spannung = Wasserdruck) Anwendungsmöglichkeiten, Beispiele suchen

o Deskriptiv: Abschrift von etwas Vorhandenem (Zeitung, Ausweis)o Präskriptiv: Vorschrift für etwas Neues (SourceCode, Drehbuch)

Fragen an den Text stellen Mit anderen diskutieren

Fünf Ordnungsprinzipien mit Darstellungsform

Ordnungsprinzip Fragen Darstellung BeispielElemente, Merkmale Woraus besteht es? Liste, Diagramme Zusammensetzung

Shampoo, Nationalrat, Konzeptkarte Projektmanagement

Über- und Unterordnung Hauptgedanken/ Details

Baumdarstellung, Mapping-Darstellung

Concept Map für Bäume

Vergleich, Beurteilung Unterschiede? Gemeinsamkeiten?

Matrix (Raster) Entscheidungs-Matrix

Beziehungen Welche Abhängigkeiten bestehen?

Beziehungsnetz, Darstellung mit Pfeilen

Software Komponenten

Reihenfolge, Ablauf In welcher Reihenfolge macht man etwas?

Zeitstrahl, Flussdiagramm, Ablaufplan

Arbeitsprozess

1.3 AnwendenAnwenden der Textarbeit-Techniken heisst:

Bewusst lesen (Vorbereiten, Leseprozess, Nachbearbeiten) Richtig Notizen nehmen (Notizen nehmen, Nachbearbeiten)

Informationen recherchieren (3 Ebenen: Präsent [Zeitung], Fachwissen, Schwer zugängliche Literatur)

1.4 Schreiben Konzept Vorbereiten, Informationen zusammenstellen (gute Thema-Wahl) Material strukturieren, Disposition entwickeln (Struktur + Stil)

o Chronologisch (Zeitlich, Prozessschritte)o Hierarchisch (Von wichtig zu unwichtig)o Deduktiv (Behauptung, Beweis, Schlussfolgerung)o Strukturell (Nacht Art)o Argumentativ (Pro/Contra)o Didaktisch (von leicht nach schwer)

Text schreiben, Arbeit gestalten (Layout, sauber, ..)

2 IT Grobkonzepte und Modellierung (EPK)Lernziele Kurmann

Scope (was das) Projekt / Überblick geben, Ziel und Scope formulieren Resultate / Ziele, Abhängigkeit, Begründung dafür Resultate im Projekt formulieren Was ist ein Modell, Beispiele (KAP 7) Phasen der Modellierung / Sichten / Ebenen (KAP7) EEPK, kleiner Prozess modellieren (KAP8) Funktionsdiagramm (KAP10) Kontextdiagramm, anhand von Text skizzieren (KAP10) Datenmodellierung (Dokument FIBEL, Vorgehensweise, KAP11)

2.1 Grobkonzept1. Ausgangslage

Beschreibt die Ausgangslage Beschreibt, warum ein Projekt ausgeführt werden soll Schildert die Motivation

2. Ziel(e) Beschreibt, was man in einem Projekt erreichen will Was soll nach dem Projekt besser sein als vorher Ziel beschreibt Zustand / Situation

3. Scope Definiert den Gültigkeitsbereich Beschreibt, was zu einem Projekt gehört und was nicht sowie die Einschränkungen

(constraints)4. Resultate

Resultate sind Arbeitsergebnisse, welche das Projekt abzuliefern hat Kriegt der Auftraggeber „in die Hand“ Resultate sind klar und präzise beschrieben Resultate sind gebraucht für

o Aufwandschätzungo Projekt Controlling (Aufwand- & Erreichungskontrolle)

Projektreporting Zusammensetzung: Ziele (Haupt)-Resultate Teilresultate Arbeitspakete

5. Business Case / Nutzenanalyse Business Case (oder Nutzenanalyse) beschreibt Nutzen und ggf. Kosten Nutzen leitet sich von den Zielen ab Nutzen ist in drei Kategorien gegliedert:

o Erzeugung von Mehrwerto Reduktion von Kosteno Externe Zwänge z.B. Gesetzte

6. Grobplanung (Aufwand und Zeit) Groben Zeit- und Meilensteinplan Grobe Aufwand- und Kostenschätzung Voraussetzung sind Projektresultate und Lösungsskizze (Approach)

7. Approach / Lösungsskizze (optional) Beschreibt, wie man mit dem Projekt die Probleme lösen will Bsp: Prozessoptimierung, SW Einkauf / Entwicklung, Umbau Organisation, …

8. Kontext Diagramm System und derer Grenzen wird aufgezeigt (Abgrenzungen des Aufgabenbereiches) Informationsfluss in und aus dem System Beispiel:

9. Informationsmodell (Datenbank) Beschreibt die wichtigsten Informationsobjekte und deren Zusammenhänge

10. Prozesslandkarte (optional) Prozessübersicht für betroffene Geschäftsprozesse

11. Funktionale Zerlegung Beschreibt die wichtigsten Funktionen und Funktionsblöcke

12. Systemdesign Beschreibt den physikalischen Aufbau des Systems Umfasst Software und Hardware und derer Aufbau

2.2 Modellierung

2.2.1 DefinitionModell: abstrakte Darstellung eines Gegenstandes oder einer Situation

Modell: Abbild (Deskriptiv) oder Vorbild für etwas z.B. Plan (Präskriptiv). Das

Modell: Abstraktion auf das Wesentliche

Modelle: sind Abbildungen (Abstraktion) und Konstruktion der Realität

Modell: Konkretes oder gedankliches Abbild eines vorhandenen Gebildes oder Vorbild für ein zu schaffendes Gebilde in der Wahrnehmung der beteiligten Personen für einen bestimmten Verwendungszweck.

Grösstmögliche Ähnlichkeit zwischen Original und Modell ist kein Ziel!

Bewusste Abstraktion und Gestaltung von Modellen Ausnahme: Kopie

Validierung erforderlich

Alle relevanten Eigenschaften des Originals müssen adäquat und vollständig auf Eigenschaften des Modells abgebildet sein.

Merkmale eines Modells

Jedes Modell ist Abstraktion oder Vorbild eines vorhanden oder zu schaffenden Originals Jedes Modell abstrahiert Jedes Modell wird im Hinblick auf einen Verwendungszweck geschaffen Manchmal werden Modelle als Abstraktion eines Ausschnitts der Realität definiert Zu jedem Modell gehört eine Abbildung, welche die Details des Originals auf diejenigen des

Modells abbildet Das Original kann selbst wieder ein Modell sein Es kann verschiedene Modelle des selben Originals geben

2.2.2 Zweck Verstehen eines Systems Kommunizieren über Systeme Spezifikation von Anforderung an ein geplantes Gebilde Gedankliches Hilfsmittel zum Gestalten, Bewerten oder Kritisieren eines geplanten Systems Durchführen von Experimenten Aufstellen / Prüfen von Hypothesen über beobachtete oder postulierte Phänomene

2.2.3 Modellbildung Modellbildung: Iterativer Prozess; Reflektion über Original

Reflektieren: Überlegen und Verstehen, was modelliert wird Gewinnen: Informationen über das Original gewinnen Beschreiben: Gewonnene Informationen beschreiben und strukturieren Validieren: Modelle durch Wissensträger überprüfen lassen

2.2.4 Systemmodellierung in der ITModellsichten (für die Kommunikation zwischen Auftraggeber und IT)

Prozessmodell Datenmodell Organisationsmodell Interaktionsmodell (Funktionen)

Idee mit den drei Sichten: Beschreibungsebenen (Prozesse, Funktionen, Daten) in einer Unternehmung!

Beispiel ARIS

Sichten (Interessen/Stakeholder)

Sicht 1: (Geschäfts)-ProzesseInhalt: Beschreibt die Prozesse einer UnternehmungStakeholder: Manager der Führungsebene

Sicht 2: DatenInhalt: Unternehmensweites Datenmodell der wichtigsten GeschäftsdatenStakeholder: Systemnutzer, Systemkonstrukteure

Sicht 3: SystemTeilsicht: FunktionInhalt: Das „Was“ der LösungStakeholder: Systemnutzer, Fachbereiche

Teilsicht: KonstruktionInhalt: Das „Wie“ der LösungStakeholder: Systemkonstrukteure

Telisicht: Verteilung / BetriebInhalt: Das „Wo“ und „Womit“ der LösungStakeholder: IT-Betrieb

Sicht 4: Prozess-/Funktions-IntegrationInhalt: Zusammenspiel von Prozessen und FunktionenStakeholder: Manager der operativen Ebene, Systemnutzer

2.3 Prozessmodellierung

2.3.1 AllgemeinBetrieb (resp. Unternehmen) = Einheit von zusammenwirkenden Personen und Produktionsmitteln

zum Hervorbringen von Gütern und Dienstleistungen (Output) aus Eingangsmaterialen (Input) für Dritte mit dem Zweck der Erzielung eines Gewinnes

Prozess= Vorgang, Handlungsweise

Geschäftsprozess = Ein Geschäftsprozess ist ein Ablauf von Aktivitäten, die der Erzeugung eines Produktes/einer Dienstleistung dienen. Er wird durch ein oder mehrere Ereignisse gestartet und durch ein oder mehrere Ereignisse abgeschlossen. Es liegt eine Organisationsstruktur zu Grunde.

Prozess (Definition) = ein allgemeiner Ablauf mehrerer Abschnitte, mit denen es sich um Aufgaben, Arbeitsschritte etc. handeln kann. Zwischen den Prozessen bestehen gewisse Abhängigkeiten

2.3.2 Generisches ProzessmodellMangementprozesse

Qualitätsmanagementprozesse Strategieplanungsprozesse Controllingprozesse

Kernprozesse (starten und enden beim Kunden)

Innovationsprozesse Vertriebsprozesse Auftragsabwicklungsprozesse Serviceprozesse

Unterstützungsprozesse

Personalmanagementprozesse (Personal) Finanzmanagementprozesse (Finanz und Rechnungswesen) Ressourcenmanagementprozesse (Einkauf, Facility & Q-Management) IT-Management (Informatik)

Ein typischer Geschäftsprozess umfasst:

1. Startereignis (Auslöser2. Aktivität

a. Zerlegungb. Sequenzc. Auswahld. Parallelität

3. Abschlussereignis

2.3.3 EPKEPK = Sprache zur Modellierung von Geschäftsprozessen

Grundsätzliches zu EPK:

Auf ein Ereignis folgt immer eine Funktion und umgekehrt EEPK (Erweitertes EPK) Im Deutschsprachigen Raum weit verbreitet EPK beginnt immer mit einem Ereignis, danach folgt eine Funktion oder mehrere (UND-

Konnektor)

2.3.4 Erweitertes EPK (EEPK)

Beispiel Urlaubsgesuch

2.3.5 Weitere ModellierungssprachenAndere Modellierungssprachen für Prozesse (Wichtig: sollten über äussere Ereignisse gesteuerte Abläufe modellieren können)

UML-Aktivitätsdiagramme BPMN (Business Process Modeling Notation)

2.4 DatenmodellierungBegriffshierarchie

Daten: Angaben über Sachverhalte und Vorgänge aufgrund bekannter oder unterstellter Abmachungen in einer maschinell verarbeitbaren Form.

Datenbank: selbständige, auf Dauer und für den flexiblen und sicheren Gebrauch ausgelegte Datenorganisation

Datenmodell: Formale Beschreibung des Schemas, z. B. in Form eines Diagramms oder einer Datenstruktur.

Datenmodellierung: Prozess, der sicherstellen soll, dass eine Datenbasis zu jedem Zeitpunkt ein korrektes Abbild der Diskurswelt wiedergibt.

Auszug aus dem ARIS-Prozesshaus – Sicht und Beschreibungsebenen

Vorgehen bei der Informationsstukturierung

1. Attribute bestimmen2. Entitäten zusammenfassen3. Beziehungen

Notationen

3 Requirement Engineering und Modellierung GRUNDLEGEND: Lernziele Req. Engineering, UML, Funktionsmodellierung Wo sind Anforderungen im Projekt verankert (anfang / mitte Anforderungen sammeln und verwalten (Techniken und Einsatz) UML: Anwendungsfälle Funktionsmodellierung: Wie man modeliert, Werkzeuge für grössere Projekte CRC: Grundlagen der Dekomposition Systemdesign: Grundlagen, Typen, Probleme Was ist Relevenat? Wie wird das dargestellt?

3.1 Requirements Engineering und Management Sie können fundiert begründen, warum Requirements Engineering im Software-Engineering so

wichtig ist. Sie können die grundlegenden Prozesse des Requirements Engineering darlegen und seine

wichtigsten Methoden erläutern Sie können einige wichtige Requirements Engineering-Werkzeuge aufzählen und ihre

Charakteristika kurz beschreiben.

3.1.1 Was ist Requirements Engineering Req. Engineering Begründen warum, Prozesse / Methoden, Werkzeuge

o Entscheidend über Projekterfolg (erster Schritt der Systementwicklung)o Haupttätigkeiten:

Sammeln Gewinnen Analyse

Ausarbeiten Validierung Spezifikation

Verwalten Freigabe Änderung (Change Management) Verfolgung (Tracability)

o Anforderungen können im Projektverlauf ändern: Veränderte Bedürfnisse von Kunden Veränderung von Märkten / neue Märkte Änderung der Organisation (kundenseitig oder entwicklerseitig) Neue / geänderte politische oder rechtliche Randbedingungen

o Ziele: Anforderungen stabil halten, Traceability der AnforderungenMassnahmen: Konfigurationsmanagement für Anforderungen

3.1.2 Warum? 60% der Fehler passieren in der Analyse, in Design und Implementierung nur 40%.Die Kosten

der Fehlerbehebung steigen aber exponentiell mit dem Zeitpunkt der Entdeckung ->bei den Requirements investieren!!

Nur ca. 1/3 der Projekte ist erfolgreich, rest abgebrochen oder über Zeit/Budget Drei Risiken:

o fehlende Anforderungen (Kunde nicht involviert/unklarer Bedarf)o falsche Anforderungen (Keine Verfikation/Validierung),o Ändernde Anforderungen nicht berücksichtigt

Besser, Fehler am Anfang zu entdecken, da dies mit der Zeit immer teurer wird, mehr Personen beteiligt und schwieriger noch anzupassen, wenn schon begonnen

3.1.3 ÜberblickREQ sorgt für:

Anforderungen mit Auftraggeber abgestimmt Anforderungen soweit ausgearbeitet, dass System gebaut werden kann Anforderungen und Änderungen über das Projekt hinweg verfolgbar

REQ ermöglicht die Verfolgbarkeit (Traceability) von Anforderungen über Spezifikationen bis hin zu Testfällen

Ebenen der Anforderungen

REQ & Kunden

1. Kunde gibt Lastenheft 2. Auftragnehmer erstellt daraus Pflichtenheft und lässt es absegnen

Kommunikation wichtig, um Komplexität zu beherrschen

REQ Einordnung in den SW Entwicklungsprozess:

Was ist Requirements Engineering?

Ein Requirement ist eine Anforderung (Soll-Aussage über ein System / Prozess), die etwas für einen Beobachter oder ein Umsystem beschreibt

Leistung oder Eigenschaft

3.1.4 SammelnQuellen für Anforderungen

- offizielle Ansprechpartner beim Auftraggeber

- noch inoffizielle (aber betroffene!) Ansprechpartner beim Auftraggeber:– Hotline-MA– Umsystem-Betreuer– BO …

- Vorhandene Dokumentation- Gesetze und Verordnungen usw.

Fallstricke / Vorsicht

„People hate change“ Politische Interessen, Machtspielchen etc.Manche Leute sagen nicht, was sie denkenManche Leute wissen nicht, was sie wollen

Technik für Sammlung

Technik Wann einsetzen? NutzenInterview Mindestens am Anfang; oft! Liefert bei versierter

Interviewtechnik viele und nützliche Daten

Fragebögen Fragen sind bekannt, aber viele Leute

Exakte Antworten, Klärung der „Lager“

Workshops Komplexe Themen Intensiv (aber auch Aufwändig)Szenarien durchspielen Erster Entwurf steht Liefert die nötigen Details, offenbart

Lücken im Verständnis, holt Nutzer ins Boot

Prototyp Prosaspezifikation für Nutzer schwer verdaulich

Gibt ein gutes Gefühl über das spätere System

Beobachten (vor Ort) Prozesse und Umfeld fremd für Auftragnehmer

Reduziertes Risiko implied needs zu übersehen

3.1.5 Ausarbeiten Sichtweisen:

- Auftraggeber will die Spezifikation verstehen und abnehmen darf nicht zu detailliert, nicht zu technisch sein

- Entwickler müssen wissen, was sie bauen sollen muss detailliert und auch technisch sein – je nach Fähigkeiten des Teams unterschiedlich

unterschiedliche Dokumente erzeugen:- z.B. HTAgil Kundenanforderung als Spezifikation gegenüber Auftragnehmer- z.B. HTAgil Systemspezifikation zum Festhalten technischer Vorgaben:

Kap. 3.(Schnittstellen) / 4.(SW-Anforderungen) / 5.(Environment) Management-Folie, die knapp die wichtigsten Eigenschaften und den Kontext eines Systems

darstellt. Hilfsmittel

- Use Cases für die funktionalen Anforderungen- Formulare für die nichtfunktionalen Anforderungen- Formalere Mittel, wo nötig:

o Ablaufdiagrammeo Informationsmodell

o Zustandsdiagramme Kategorisierung von Anforderungen

- Funktional/Nichtfunktional- Vorschrift/Tatsache/Annahme- Hart (Sperrung nach Ablauf) / Weich (einfach nutzbar)- Repräsentation:

o Operational: Kontostand = Kontostand + Buchungsbetrago Quantitativ: Antwortzeit < xo Qualitativ: Hohe Verfügbarkeito Deklarativ: Soll unter LINUX laufen

Goldene Regeln- Formuliere Anforderungen, keine Lösungen!- Schreibe klar und verständlich!- Definiere die Subjekte, vermeide Passivsätze!- Definiere die Bedeutung von „muss“, „soll“, „kann“, wenn Du sie benutzen willst!

- Beispiele:o „Die Händlerstammdaten müssen um ein Feld für einen dritten Mehrwertsteuersatz

erweitert werden“ Lösung.o „Das System muss Anträge mit einem von drei Mehrwertsteuersätzen abrechnen

können“ Anforderung.o Nicht „System muss schnell sein“, sondern „Antwortzeit in 95% der Fälle unter 2 sec“

Validierung- Die Anforderungen werden vom Auftraggeber abgenommen und damit gültig! Am besten

richtet man ein Quality Gate ein, durch das alle Anforderungen hindurch müssen.- Qualitätskriterien für Anforderungen:

o Vollständigkeit, Korrektheit, Klassifizierbarkeit, Konsistenz, Verständlichkeit, Gültigkeit

3.1.6 Verwalten Alle Anforderungen kommen in eine gemeinsame Datenbasis. Attribute:

- Urheber- Status: erhoben, akzeptiert, zurückgestellt, gestrichen, ausgeliefert.

• bei iterativem Vorgehen immer mit Bezug zu einer bestimmten Iteration.- Komplexität- Verbindung zu den Use Cases

Evolution- Anforderungen unterliegen einer Evolution

• Fortschritte der Technologie• Änderung der unternehmensinternen Organisation• Veränderte Bedürfnisse von Kunden• Veränderung von Märkten / neue Märkte• Neue / geänderte politische oder rechtliche Randbedingungen

- Problem:• Anforderungen stabil halten und• Veränderung kontrolliert zulassen

- Es braucht

• Konfigurationsmanagement für Anforderungen• Verfolgbarkeit von Anforderungen

Änderungsprozess- Geregeltes Prozedere- Entscheidung durch Steuerkomitee (Mitglieder/Vertreter von Auftraggeber/-nehmer, PL)

Verfolgbarkeit- Rückwärts: Wo kommt welche Anforderung her?- Vorwärts: Wo ist welche Anforderung entworfen bzw. implementiert?- Wie hängen Anforderungen voneinander ab?

- Aufwand und Ertrag für Verfolgbarkeit gegeneinander abwägen- Rückverfolgungsbeziehungen pflegen, sonst sind sie nutzlos benötigt Werkzeugunterstützung

3.1.7 Werkzeuge- Rational/IBM Requisite Pro- Telelogic DOORs- Excel besser ein einfacheres Werkzeug als gar keines!!

3.2 UMLSiehe UML-Buch

3.3 Funktionsmodellierung Sie können in einer überschaubaren, abgeschlossenen Programmieraufgabe geeignete Klassen

finden und deren Zuständigkeiten und Beziehungen modellieren und das Modell anhand von Szenarien überprüfen.

Sie kennen Grundlagen und Werkzeuge zur funktionalen Gliederung grösserer Systeme (Subsystem- und Komponentenbildung) und können diese geeignet dokumentieren.

Sie können aus der Spezifikation eines grösseren Systems die wesentlichen Systemeigenschaften extrahieren und damit eine grobe funktionale Gliederung des Systems vornehmen.

3.3.1 CRC Karten CRC Karten nur für kleinere Projekte brauchbar!

- CRC = Class Responsibility Collaborationo Hilfsmittel für das objektorientierte Designo Kartenbereiche:

Name der Klasse (oben) Verantwortlichkeiten / Aufgaben (links) Beziehungen zu anderen Klassen (rechts)

Beispiel siehe Übung (Kino Reservierungssystem)

3.3.2 Dekomposition grösserer SystemeGrundidee: Reduktion der Komplexität in kleinere Teilsysteme / Teileinheiten durch Zerlegung

Die funktionale Zerlegung (Funktionsmodell) stellt ein System dar, welches aus Bausteinen zusammengesetzt ist. Dieses stellt eine klar eingrenzbare und beschriebene Funktionalität dar.

Zwei Architektur-Grundprinzipien:

Trennung der Verantwortlichkeiten (Separation of Concerns)o Trennung senkrecht in fachliche Komponenteno Trennung waagrecht in technische Schichten

Geheimnisprinzip (Information Hiding)o Zeigt nur die zur Erfüllung nötigen Informationen. Beispiele:

OOP mit dedizierten Methoden Fassade Schichten-Architektur (Zugriff n nur auf n-1)

Zusammengenommen beschreiben sie das Ideal der Delegierung einer Aufgabe.

Referenzarchitekturen (verwenden die oben beschriebenen Grundprinzipien)

Leittechnik-Pyramide SOA BI & BI / DWH

Kriterien für die Dekomposition technischer DV-Systeme

Sicherheit Verteilung der Intelligenz Art der Kommunikation (Polling vs. Push) Fehler- und Alarmierungs-Propagation

Kriterien für die Dekomposition betrieblicher DV-Systeme

Software-Kategorie ist eine bestimmte Software (Wissen um spezielles Know-How) Software-Kategorie können verfeinert werden Software-Kategorie hilft bei der Dekomposition von Systemen und hilft schon mal bei der

groben Übersicht / Analyse

Techniken und Tools

Es gibt nicht DIE richtige Lösung Wichtig ist das Denken in Varianten und Variationen Varianten Diskussion wichtig UML Diagramme bieten sich hier an

o Deployment-Diagrammo Kompenten-Diagrammo Aktivitätsdiagramm

3.4 Systemdesign Sie können den Begriff Systemdesign erklären Sie können die Aspekte des Systemdesign den Sichten und Ebenen der Modellierung von IT

Systemen zuordnen Sie kennen das Vorgehen beim Systemdesign und können die wesentlichen Schritte erklären. Sie kennen die wichtigsten Entwurfsprinzipien und Heuristiken, die beim Systementwurf

herangezogen werden und können deren Nutzen erklären. Sie können ein Systemdesign aus den typischen Sichten entwerfen und mit geeigneten UML

Diagrammen und Beschreibungen dokumentieren. Sie können stakeholdergerechte Abstraktionsebenen für die typischen Sichten auf ein

Systemdesign auswählen. Sie kennen die typischen Problemfelder beim Systementwurf und können entsprechende

Architekturaspekte nennen.

3.4.1 Themenfelder im Systemdesign Einflussfaktoren und Vorgehen beim Systementwurf Leitplanken, Muster und Kriterien für das Systemdesign Rund ein Dutzend Architekturaspekte wie z.B. Sicherheit, Persistenz, Usability etc. beeinflussen

je nach zu realisierendem System die Entwurfsentscheidungen Die Konstruktionsteilsicht kann aus verschiedenen Perspektiven betrachtet werden, man

spricht in diesem Zusammenhang von Architektursichten o Kontextsicht o Bausteinsicht o Laufzeitsicht o Verteilungssicht

3.4.2 Einflussfaktoren und Vorgehen Wesentliche Schritte, die zu einem guten Systemdesign führen

o Informationen sammeln Wie haben andere vor Ihnen ähnliche Probleme gelöst?

o Systemidee entwickeln Die Systemidee ist die Basis für künftige weitere Entwurfsentscheidungen Kernaufgabe – 1 Satz was das System macht + 5 Schlüsselbegriffe Nutzungsart und Nutzer Schnittstellen – Beziehungen zu anderen Systemen, Daten und Mengen… Datenhaltung – Persistenz: wo / Datenvolumina / Integrität / Sicherheit Kontrolle – regelbasiert / parallel / event-driven …

o Einflussfaktoren und Randbedingungen würdigen Organisatorische und politische Faktoren

Politik bestimmt was in einem Projekt erreicht werden soll Technische Faktoren

vorhandene Hard- und Software, Schnittstellen und Methoden System- bzw. Produktfaktoren

funktionale Anforderungen und Features, Abhängigkeit von anderen Systemen

o Risiken identifizieren

Typische Risiken in SW-Projekten Unterschätzer Aufwand und Komplexität Überschätzte Ressourcen-Verfügbarkeit Ungeeignete Ressourcen Unzuverlässige Basissysteme und Drittsysteme Unvollständige, widersprüchliche und instabile Anforderungen

o Qualität explizit beschreiben Starke empfiehlt Szenarien dafür einzusetzen und so praxisgerecht zu

konkretisieren Anwendungsszenarien

z.B. Benutzeranfrage muss in 0,5 Sekunden beantwortet sein Änderungsszenarien

beschreibt den Aufwand für absehbare Änderungen am System Stress- und Grenzszenarien

beschreibt wie das System auf Extremsituationen reagiert o Lösungsstrategie entwickeln

Mangel an Zeit, Budget und Erfahrung Enge Kooperation mit dem Projektmanagement, offenlegen der

Risiken, Etappierung der Auslieferung, Anpassung der Anforderungen, und: adding people to a late project makes it even later.

Performanceprobleme Leistungsfähigere Hardware ist billiger als optimieren oder ungünstige Verteilung und suboptimale Kommunikation sind

Ressourcenfresser Probleme mit Anpassbarkeit und Flexibilität

Konfigurationsdaten in Datei statt im Code Subsysteme und Komponenten über Adapter, Fassaden, Proxies

entkoppeln Explizite Interfaces vorsehen

3.4.3 Systemdesign kommunizierenSichten erlauben die Konzentration auf bestimmte Aspekte, indem sie von Details abstrahieren, die für die gewählte Perspektive nicht von Bedeutung sind.

Kontextsicht:

Zeigt das System als Blackbox in seinem Kontext aus einer Vogelperspektive o Schnittstellen zu Nachbarsystemen o Interaktionen mit wichtigen Stakeholdern o wesentliche Teile der umgebenden Infrastruktur

Bausteinsicht:

Zeigt die statischen Strukturen der o Architekturbausteine des Systems o Subsysteme o Komponenten und deren Schnittstellen

top-down ausgehend von der Kontextsicht Die letzte mögliche Verfeinerungsstufe der Zerlegung bildet der Quellcode Unterstützt Projektleiter und Auftraggeber bei der Projektüberwachung Dient der Zuteilung von Arbeitspaketen Fungiert als Referenz für Software-Entwickler

Laufzeitsicht:

Beschreibt, wie die Bausteine des Systems zur Laufzeit zusammenwirken Beschreibt die dynamische Struktur

Verteilungssicht (Deployment):

Beschreibt Hardwarekomponenten auf denen das System abläuft o Rechner o Prozessoren o Netztopologien und –protokolle o sonstige Bestandteile der physischen Systemumgebung

Die Infrastruktursicht zeigt das System aus Betreibersicht

Architekturaspekte

Unter Architekturaspekten verstehen wir Dinge, die Software-Architekten beim Systementwurf meistens beschäftigen. Für viele dieser Aspekte gibt es daher typische Lösungsansätze auf die man für die konkrete Lösung aufbauen kann.

Persistenz Typische Probleme beim Entwurf sind

Datenmodellierung (Performance vs. Normalisierung) Wahl eines DBMS Trigger (Seiteneffekte) Strukturbrüche (OR-Mapping, impedance mismatch)

im einfachsten Fall stellt man der Fachklasse dedizierte Datenklassen zur Seite (JDBC / ADO / …)

Wenn vernetzte Objektstrukturen persistiert werden müssen bzw. die Abbildung auf die Datenbank(en) komplex ist, lohnt sich der Entwurf einer Persistenzschicht

o Persistenzschichten vermitteln zwischen Anwendung und unterschiedlichen Speichersystemen

Geschäftsregeln Geschäftsregeln legen Abläufe in Abhängigkeit von bestimmten Bedingungen fest Anstatt mit if-then-else Konstrukt zu arbeiten kann man die Geschäftsregeln in einer

Regelsprache beschreiben. Eine RuleEngine führt dann die Fachlogik auf den Geschäftsobjekten aus.

Legacy

Insbesondere kommerzielle SW-Systeme werden in der Regel in einem Umfeld bestehender Anwendungen, d.h. in einem Legacy-Kontext entwickelt.

Einen minimal invasiven Ansatz stellt die Integration über einen Gateway dar. So lassen sich die Details der Kommunikation mit dem Legacy System kapseln und bei Bedarf auch weiteren Clients Zugang zum Altsystem schaffen.

Alternativ kann ein Wrapper, der typischerweise auf der Legacy-Plattform realisiert wird, eine Schnittstelle zu deren Dienste anbieten.

Verteilung o Aus verschiedensten Gründen kann es notwendig sein, dass ein Softwaresystem auf

unterschiedlichen Rechnern abläuft o Allerdings sind entfernte Methodenaufrufe ressourcenintensiver, benötigen verteile

Objekte, komplexere Infrastruktur und ist die Fehlerbehandlung über Systemgrenzen hinweg ist aufwändiger

o Daher Verteilung nur wenn nötig (Komplexität) Verarbeitung möglichst nahe bei den betroffenen Daten Stabile Schnittstellen anstreben Lieber höhere Serverbelastung als höherer Datentransfer Zusatzaufwand für Test und Deployment einplanen

Kommunikation o beim Entwurf verteilter Systeme kommt der Kommunikation wegen der vielfältigen

Möglichkeiten mit entsprechenden Vor- und Nachteilen grosse Bedeutung zu. o Fragen

Synchron oder asynchron Stateful oder stateless Direkt oder via Middleware Stil (RPC, publish/subscribe, broadcast, poll, …) Nur TCP/IP oder zusätzlich IIOP, SOAP, HTTP, … Datenkodierung, (little/big endian, Zeichensatz, …) Semantik (aktuelle Werte oder nur Deltas)

GUI-Ablaufsteuerung o Frage/Antwort-System

Kontrolle durch Zustandsautomat aufgrund fachlicher Ereignisse o Objektorientierte Oberfläche

Unterscheidung von Werkzeug, Verwendung und Material Umgebungsobjekt, z.B. Schreibtisch ist Materialverwalter und

Werkzeugkoordinator o MVC – trennen von Verarbeitungslogik und Steuerungselemten

GUI-Ergonomie o Arbeitsmetaphern (Struktur und Arbeitsabläufe)

Fabrik sequenzieller Ablauf (Web-Shop) Werzeug/Material kreative Aufgaben (Photoshop) Formular Datenerfassung und -Ansicht

o Interaktionsstile (Art der Darstellung) Objektorientiert, wenn die Daten grafisch gut repräsentierbar sind Frage/Antwort, wenn der Ablauf vom System vorgegeben ist Formularbasiert, wenn Daten erfasst bzw. abgefragt werden Menü + Fenster, als Applikationsrahmen für die einzelnen Anwendungsfälle

o Effektivität, Effizienz und Akzeptanz Internationalisierung

o Neben Sprache ev. auch rechtliche und kulturelle Aspekte beachten o Internationalisierung beeinflusst deshalb die gesamten Entwicklungsprozesse

Workflow-Management o Systemübergreifende Ablaufsteuerung und Koordination von SW-Systemen o 3 Lösungsansätze

Steuerung durch externes WMS bzw. BPMS manuelle Steuerung (mittels E-Mail oder Groupware) Embedded Workflow mittels Zustandsautomat

o WMS Sicherheit

o Beschränkter Entscheidungsfreiraum z.B. durch Verschlüsselungsverbot o Organisatorische Fragen (Firewalls / PKI / Hardware / …) o Ziele

Vertraulichkeit / Integrität / Autentizität / Autorisierung Verfügbarkeit (denial of service Angriffe)

o OSI-Schichten Netzwerk (3) z.B. VNP, für Anwendungen transparent Transport (4) z.B. SSL, Anwendung kennt Zertifikate Anwendung (7) z.B. S/MIME E-Mail Anwendungen

Protokollierung o Loglevels und Kriterien definieren o Zu Projektbeginn ein geeignetes Framework festlegen

Fehlerbehandlung o Fokus auf Schnittstellen, keine leeren Catch-Klauseln o Logging definieren