docs/Development-Case

view development-case.tex @ 8:5f939d777552

new titlepage; new content for workflows
author meillo@marmaro.de
date Mon, 21 Jan 2008 20:31:34 +0100
parents 1f955918cf53
children 3bae83d50dc5
line source
1 % V. 1.0
2 \documentclass[a4paper,12pt,titlepage,DIV12,parskip]{scrreprt}
3 \setlength{\parskip}{3mm} %abstand abs\"{a}tze und listen
4 \usepackage{setspace}
5 \usepackage[utf8]{inputenc}
6 \usepackage{ngerman}
7 \usepackage[pdftex]{graphicx}
8 \usepackage[table]{xcolor}
9 %\usepackage{SIunits}
10 \usepackage{ragged2e,array}
11 \usepackage{wrapfig}
12 \usepackage[footnotesize]{caption2}
13 \usepackage{supertabular}
14 \usepackage{chngcntr}
15 \usepackage{longtable}
16 %\usepackage{lastpage}
17 \usepackage{caption2}
18 \usepackage[right]{eurosym}
19 %\usepackage{float}
20 \usepackage[ngerman]{varioref}
21 %\usepackage{enumitem}
22 \usepackage[colorlinks,linkcolor=black,urlcolor=blue,bookmarks,bookmarksopen,bookmarksnumbered]{hyperref}
24 %PDF Infos
25 \pdfinfo{
26 /Title (development-case.tex)
27 /Subject (Development Case)
28 %/Creator (TeX / pdfTeX)
29 %/Producer (Christoph Galler)
30 /Author (markus schnalke)
31 /CreationDate (D:20080113090000)
32 /ModDate (D:20080113090000)
33 }
35 %neues Kommando fuer Breitenangabe in der Tabelle mit vorgegebener Breite:
36 \newcommand{\preserveBackslash}[1]{\let\temp=\\#1\let\\=\temp}
37 \newcolumntype{R}[1]{>{\preserveBackslash\RaggedLeft}p{#1}}
38 % Font Familie
39 \renewcommand{\familydefault}{\sfdefault}
40 %\nofiles
41 % Fuer tabellenkopf
42 \newcommand{\hoehe}{\parbox[1pt][2em][c]{0cm}{}}
44 \definecolor{gray09}{gray}{0.9}
45 \definecolor{gray07}{gray}{0.7}
47 %Counternummerierung \"{a}ndern -> 1.1 2.1 3.1 etc.
48 \counterwithin{section}{chapter}
50 % Name f\"{u}r autoref bei figure Umgebungen: Abbildung x.z
51 \renewcommand{\figureautorefname}{Abbildung}
52 \renewcommand{\chapterautorefname}{Kapitel}
53 \renewcommand{\sectionautorefname}{Unterkapitel}
54 \renewcommand{\tableautorefname}{Tabelle}
57 % Textkoerperhoehe
58 \setlength{\headsep}{0.6cm}
59 \addtolength{\textheight}{0.9cm}
60 \setlength{\footskip}{0.9cm}
62 % Kopf- und Fu{\ss}zeile
63 \setlength{\headheight}{2cm}
64 \usepackage[automark]{scrpage2}
65 \automark[section]{section}
66 \setheadwidth{15.8cm}
67 \ihead{\headmark}
68 \ihead{Development Case}
69 \chead{{\color{blue}\color{black}\rule[-10pt]{18.4cm}{0.1pt}\color{black}}}
70 \ohead{\headmark}
71 \setfootwidth[-74pt]{18.3cm}
72 \setfootsepline[foot]{.1pt}
73 \ifoot{\hspace{2.6cm}\footnotesize Gruppe 2: Seminarverwaltungssystem (Topcased)}
74 \cfoot{}
75 \ofoot{\footnotesize Seite \thepage} % ~von \pageref{LastPage}}
76 \renewcommand*{\chapterpagestyle}{scrheadings}
77 \renewcommand*{\indexpagestyle}{scrheadings}
78 \pagestyle{scrheadings}
80 % Kapitel nicht zu tief beginnen
81 \renewcommand*\chapterheadstartvskip{\vspace*{0cm}}
84 \begin{document}
86 %
87 % Titelei
88 %
89 \begin{titlepage}
90 \vspace*{-0cm}
91 {\hspace*{11cm}\includegraphics*[scale=0.5]{pictures/png/logo_hsu_klein}}
92 \begin{center}
93 \vspace*{1.9cm}
94 {\normalsize\textsc{Gruppe 2: Rui Gu, Wei Zhu, Veysel Imamoglu,
95 Dimitar Dimitrov, \\Karl Oppermann, Nathalie Hrycej, Markus Schnalke,
96 Christoph Galler}} \par
97 \vspace*{0.6cm}
98 \large \textbf{Modellgetriebene Softwareentwicklung auf Basis von
99 TOPCASED am Beispiel eines Seminarverwaltungssystems} \par
100 \Huge \textbf{Development Case} \par
101 \vspace*{0.8cm}
102 {\Large{} \par
103 \vspace*{0.7cm}
104 {\textsc{Ulm, \today}}} \par
105 \vspace*{4.5cm}
106 {\normalsize\textsc{Betreut durch: \\
107 Prof. Dr. Klaus Baer \\
108 Hochschule Ulm \\
109 Prittwitzstraße 10\\
110 89075 Ulm\\}}
111 \end{center}
112 \vfill
113 \end{titlepage}
117 % \begin{titlepage}
118 % \vspace*{-0cm}
119 % {\hspace*{11cm}\includegraphics*[scale=0.5]{pictures/png/logo_hsu_klein}}
120 % \begin{center}
121 % \vspace*{1.9cm}
122 % {\normalsize\textsc{Gruppe 2: Rui Gu, Wei Zhu, Veysel Imamoglu, Dimitar Dimitrov, \\Karl Oppermann, Nathalie Hrycej, Markus Schnalke, Christoph Galler}} \par
123 % \vspace*{0.6cm}
124 % \Large \textbf{Online-Seminarbuchungssystem} \par
125 % \Huge \textbf{Development Case} \par
126 % \vspace*{0.8cm}
127 % \Large \textbf{Verfasser: Markus Schnalke} \par
128 % {\large{} \par
129 % \vspace*{0.7cm}
130 % {\textsc{Ulm, \today}}} \par
131 % \vspace*{5cm}
132 % {\normalsize\textsc{Betreut durch: \\
133 % Prof. Dr. Klaus Baer \\
134 % Hochschule Ulm \\
135 % Prittwitzstra{\ss}e 10\\
136 % 89075 Ulm\\}}
137 % \end{center}
138 % \vfill
139 % \end{titlepage}
141 % \addsec{Bitte beachten}
142 Version vom \today: Das Dokument befindet sich noch im Aufbau, \"{A}nderungen sind dadurch jederzeit M\"{o}glich.
143 \addsec{Version dieses Dokuments}
144 \begin{tabular}{|p{1.5cm}|p{3.cm}|p{1.6cm}|p{2cm}|p{1.4cm}|p{4cm}|}
145 \hline
146 \multicolumn{5}{|l}{\parbox[0pt][3.4em][l]{12cm}{\vspace{0.2cm}\large Dokument: \textbf{Development Case} \newline \emph{ Online-Seminarbuchungssystem}}} & \multicolumn{1}{r|}{\parbox[0pt][3.4em][r]{1.9cm}{\includegraphics*[scale=0.25]{pictures/png/logo_hsu}}} \\
147 \hline\hline
148 \hoehe{\textbf{Version}} & \textbf{Person} & \textbf{Aktion} & \textbf{Datum} & \textbf{Status} & \textbf{Kommentar} \\
149 \hline\hline
150 0.1 & Markus Schnalke & E & 2007-11-27 & O & Erste Version \\ \hline
151 0.2 & Markus Schnalke & AE & 2008-01-13 & O & Neue Struktur des Dokuments \\ \hline
152 0.4 & Markus Schnalke & AE & 2008-01-16 & A & Struktur überarbeitet \\ \hline
153 0.4.1 & Karl Oppermann & QS & 2008-01-17 & A & Allgemeines Review \\ \hline
154 0.5 & Markus Schnalke & AE & 2008-01-18 & A & Überarbeitung; Fachbegriffe jetzt englisch \\ \hline
155 0.5.1 & Veysel Imamoglu & QS & 2008-01-18 & A & Rechtschreibkorrektur \\ \hline
156 0.6 & Markus Schnalke & AE & 2008-01-21 & O & \\ \hline
157 \end{tabular}
158 {\footnotesize\vspace*{-0.1cm}Aktion: E – Erstellung; AE – \"{A}nderung; QS – Review; AB – Abnahme} \par
159 {\footnotesize\vspace*{-0.4cm} Status: O – Offen; D – Diskussion; A – Akzeptiert}
160 \clearpage
162 % Inhaltsverzeichnis
163 \setcounter{tocdepth}{3}
164 %\renewcommand\contentsname{"Uberblick}
165 \tableofcontents
167 \clearpage
172 % Content
176 \chapter{Einleitung}
178 \section{Zweck des Dokuments}
180 Dieses Dokument beschreibt den Entwicklungsprozess nach dem wir in unserem Projekt vorgehen.
183 \section{Definitionen und Abkürzungen}
185 Die verwendeten Begriffe sind im Projekt-Glossar erklärt. Bei Bedarf kann dort nachgeschlagen werden.
187 % Im Glossar sind: Workflow Entwicklungsprozess Zyklus Iteration Phase RUP Iterativer Entwicklungsprozess Manntag Release
190 \section{Verweise auf andere Artefakte}
192 \begin{itemize}
193 \item \textbf{Glossary}: Dort werden die verwendeten Fachbegriffe erklärt.
194 \item \textbf{Software Development Plan}: Der \emph{Development Case} ist ein Unterdokument des \emph{Software Development Plans}.
195 \item \textbf{Project Plan}: Die konkrete zeitliche Planung. (Der Project Plan findet sich im Software Development Plan.)
196 \item
197 \item
198 \item
199 \end{itemize}
205 %%%%%%%%%%%%%%
206 \chapter{Entwicklungsprozess}
208 \section{Überblick}
210 Wir werden unser Projekt nach dem \emph{Rational Unified Process} (kurz RUP) entwickeln.
212 Der RUP ist ein dynamischer und iterativer Entwicklungsprozess, der das Projekt in zwei Dimensionen (zeitlich und inhaltlich) betrachtet.
213 Er ist ausführlich spezifiziert und umfangreich dokumentiert.
215 An sich ist der RUP für große Projekte, mit vielen Mannjahren, ausgelegt. Für unser kleines Projekt (90 Manntage) ist er eher weniger gut geeignet. Wir haben uns trotzdem für den RUP entschieden, da wir ihn in der Vorlesung Softwaretechnik 1 ausführlich behandelt hatten und wir dieses Theoriewissen nun in der Praxis anwenden wollen.
217 Um einen Entwicklungsprozess für ein Projekt anzuwenden, muss er für eben dieses Projekt angepasst werden. Als Daumenregel kann man sagen: Je aufwändiger ein Prozess ist, desto stärker wird er auf ein spezifisches Projekt zurechtgeschneidert werden müssen.
219 Wir haben also diesen mächtigen und umfangreichen Rational Unified Process für unser kleines Projekt abgespeckt und angepasst. Diese Anpassungen betreffen dabei natürlich beide Dimensionen, die zeitliche (Zyklen, Phasen, Iterationen) und die inhaltliche (Workflows).
221 Wie unsere Adaptation des RUP genau aussieht, das beschreibt dieses Dokument.
224 \newpage
225 \section{Der RUP auf einen Blick}
227 Natürlich kann man diesen umfassenden Entwicklungsprozess nicht in einem Bild komplett abbilden, jedoch zeigt die nachfolgende Grafik doch sehr schön, wie die Entwicklung im Bezug auf die zwei Dimensionen aussieht. Dieser Übersichtplan, soll primär eine greifbare Vorstellung des Prozesses geben. Sie kann quasi als ``Landkarte'' für die in diesem Dokument beschriebene ``Landschaft'' zur Hilfe genommen werden.
229 \begin{figure}[htb]
230 \centering
231 \includegraphics[width=10cm]{pictures/png/RationalUnifiedProcess.png}
232 \caption{Übersicht über einen Zyklus des RUP}
233 \label{fig:rationalunifiedprocess}
234 \end{figure}
243 %%%%%%%%%%%%%%
244 \chapter{Zeitliche Dimension}
246 \section{Anpassungen}
248 Wir werden in unserem Projekt drei Zyklen durchführen. Anschließend wird das Projekt nicht abgeschlossen sein. Für unser Team endet dann zwar die Arbeit an diesem Projekt, ein anderes Team kann die Arbeit zu einem beliebigen späteren Zeitpunkt wieder aufgreifen und daran weiterarbeiten.
249 % FIXME: was ist das/unser Projekt (3Zyklen oder das komplette)?
251 Jeder der drei Zyklen wird circa fünf Wochen (30 Manntage %FIXME
252 ) umfassen. An dessen Ende jeweils ein Release stehen wird. (Näheres zu den Releases findet sich im \emph{Software Development Plan}.)
254 Iterationen innerhalb der Zyklen werden wir, auf Grund der kurzen Zyklen, komplett außen vor lassen.
256 Die einzelnen Phasen in den Zyklen versuchen wir, so gut es geht, zu berücksichtigen.
260 \subsection{Probleme und Konsequenzen}
262 Der RUP ist sehr umfangreich und mächtig. Unser Projekt dagegen, ist ziemlich klein, und so bedarf es größerer Anpassungen, um den Entwicklungsprozess unserem Projekt entsprechend zurechtzustutzen. %FIXME: mit "stuzen" oder "stutzen"??
264 Hier ein Anhaltspunkt, um welche Größenordnungen es dabei geht: Unsere 90 Manntage, entsprechen realistischerweise eher einer einzelnen Iteration, als den drei Zyklen, die wir für uns geplant haben.
266 Dabei muss auch bedacht werden, dass pro Phase ganz grob nur etwa 4 Manntage (d.h. circa 4 Stunden pro Person) zur Verfügung stehen. Wenn man auch an die unterschiedlichen Arbeitszeiten der einzelnen Personen denkt, so dürfte klar sein, dass wir unserem Konzept, dem RUP, nur annäherungsweise folgen können.
268 Wir werden deshalb ein paar Ungenauigkeiten bei unserem Verhalten im Kauf nehmen; versuchen aber natürlich, uns möglichst nahe an die Leitlinie RUP zu halten.
270 Trotz all dieser Schwierigkeiten finden wir es wichtig, diesen Prozess zu wählen, weil die theoretischen Inhalte der Vorlesung ``Softwaretechnik 1'' erst durch ihre tatsächliche Anwendung im realen Projekt vollständig zur Entfaltung kommen. So befassen wir uns intensiv (theoretisch sowie praktisch) mit einem Entwicklungsprozess, anstatt zwei Prozesse nur teilweise kennenzulernen.
273 \section{Konkrete Projektplanung}
275 Die konkrete Planung der einzelnen Zyklen und ihrer Meilensteine sollen sich laut RUP im \emph{Projekt Plan} befinden. Dieser gibt eine zeitliche und inhaltliche Komplettübersicht über das Projekt.
277 Zudem ist nach dem RUP auch ein \emph{Iterations Plan} definiert, in dem ausgehend von der aktuellen Iteration, jeweils die nächste geplant wird. Dieses Artefakt existiert bei uns nicht, da wir keine Iterationen haben. Wir haben die Inhalte unseres Iterations Plans mit denen des Projekt Plans verschmolzen, und sie in den \emph{Software Development Plan} integriert.
285 %%%%%%%%%%%%%%%%%%%%
286 \chapter{Inhaltliche Dimension}
288 Diese zweite Dimension beschreibt die inhaltliche Seite der Entwicklung. Hier wird genau festgelegt, \emph{wer} \emph{wie} \emph{was} \emph{wann} macht.
290 Dabei gibt es vier Elemente:
291 \begin{itemize}
292 \item Rolle, das \emph{Wer}. Die \emph{Rolle} ist eine Verantwortlichkeit, die jemand hat. Eine einzelne Person, oder eine Gruppe kann eine solche Rolle haben. Andererseits kann auch eine Person mehrer Rollen haben. In jedem Fall muss klar sein, wer welche Rolle hat. Diese Information findet sich bei uns im \emph{Organigramm} (siehe Software Development Plan).
293 \item Aktivität, das \emph{Wie}. Eine Aktivität ist ein bestimmte Arbeitseinheit, die der Arbeiter mit einer bestimmten Rolle erledigen muss. Üblicherweise soll dabei ein Artefakt erstellt oder aktualisiert werden.
294 \item Artefakt, das \emph{Was}. Ein Artefakt ist Information, die von einem Prozess verwendet, verändert oder produziert wird. Artefakte sind häufig Diagramme, Quellcode, Textdokumente und ähnliches.
295 \item Workflow, das \emph{Wann}. Ein Workflow ist eine Aneinanderreihung von Aktivitäten, die ein Ergebnis von messbarem Wert erzeugen. Im Worflow werden die ersten drei Elemente (Rolle, Aktivität und Artefakt) zu einer direkt wertschaffenden Struktur zusammengebaut.
296 \end{itemize}
298 \section{Core Workflows}
300 \subsection{Business Modeling}
301 (Geschäftsprozessmodellierung)
303 \paragraph{Zweck}
304 Dokumentation der relevanten Geschäftsprozesse in Use Cases, um ein gemeinsames Verständniss zwischen Entwicklern und Anwendern zu schaffen.
306 \paragraph{Anpassungen}
307 Keine besonderen.
309 \paragraph{Artefakte}
310 \begin{itemize}
311 \item Glossary
312 \item Business Use Cases %% FIXME
313 \end{itemize}
317 \subsection{Requirements}
318 (Anforderungen)
320 \paragraph{Zweck}
321 Ermitteln, was das System leisten soll. Die funktionalen Anforderungen sollen erfasst werden.
323 \paragraph{Anpassungen}
324 Keine besonderen.
326 \paragraph{Artefakte}
327 \begin{itemize}
328 \item Vision
329 \item Use Case
330 \item Use Case Diagram
331 \end{itemize}
335 \subsection{Analysis \& Design}
336 (Analyse \& Design)
338 \paragraph{Zweck}
339 Aufbau und Technologie des Systems festlegen. Festlegung wie wird das System realisiert wird.
341 \paragraph{Anpassungen}
342 Die Technologie und Teile der Umsetzung sind durch das Projekt vorgegeben und somit fix.
344 Zum jetzigen Zeitpunkt ist unser hauptsächliches Bestreben, uns in die neue Technologie einzuarbeiten. Was damit dann später architektonisch möglich ist, und wo Grenzen sitzen, ist noch unklar. Unsere Umsetzung dieses Workflows ist deshalb noch recht weitläufig und frei. Sobald unsere Kenntnis über die Möglichkeiten der Technologie groß genug ist, wird dieser Workflow zunehmend an Bedeutung gewinnen.
346 \paragraph{Artefakte}
347 \begin{itemize}
348 \item Software Architecture Document
349 \end{itemize}
354 \subsection{Implementation}
355 (Implementierung)
357 \paragraph{Zweck}
358 Systemteile entwickeln und zusammenfügen. Komponententests.
360 \paragraph{Anpassungen}
361 In dieser frühen Phase des Projekts besteht dieser Workflow in erster Line aus der Entwicklung von Prototypen jeder Art (Modelle, Templates, etc). Mit diesen wollen wir die Technologie erforschen.
363 Konkrete Artefakte werden nicht erstellt, weil es zum jetzigen Stand nicht sinnvoll wäre nach festen Plänen vorzugehen. Unser Kenntnissstand ändert sich sehr schnell und wir wollen flexibel reagieren können.
365 \paragraph{Artefakte}
366 Momentan keine.
370 \subsection{Testing}
371 (Test)
373 \paragraph{Zweck}
374 Test des Zusammenspiels der Komponenten. Funktionsweise des Systems gegen die Anforderungen prüfen.
376 \paragraph{Anpassungen}
377 Da wir eine neue Technologie erkunden, macht Test keinen wirklichen Sinn. Unser Ziel ist es, in kurzer Zeit möglichst viele Bereiche und Möglichkeiten zu erkunden. Dabei würde Testing nur bremsen. Unser Hauptaugenmerk ist es voran zu kommen, nicht komplett fehlerfreie Ergebnisse zu liefern, deshalb verzichten wir komplett auf diesen Workflow. So können wir die dadurch verfügbaren Ressourcen an anderer Stelle effektiv nutzen.
379 Dies heißt aber keineswegs, dass wir ihn zum geeigneten Zeitpunkt nicht voll ausbauen werden.
381 \paragraph{Artefakte}
382 Noch keine.
386 \subsection{Deployment}
387 (Verteilung)
389 \paragraph{Zweck}
390 Auslieferung des Systems an den Kunden und Inbetriebnahme. Schulung der Benutzer.
392 \paragraph{Anpassungen}
393 Auch hier sparen wir um dafür die Entwicklung voran zu treiben.
395 \paragraph{Artefakte}
396 \begin{itemize}
397 \item Release Notes (empfohlen) %FIXME rechtschreibung
398 \end{itemize}
403 \section{Supplymentary Workflows} %FIXME: korrekter Name?
405 \subsection{Configuration \& Changemanagement}
406 (Konfigurations- \& Änderungsmanagement)
408 \paragraph{Zweck}
409 Verwaltung der zum Projekt gehörenden Daten. Versionierung und Konsistenz.
411 \paragraph{Anpassungen}
412 Alle Daten müssen im Project Repository abgelegt werden. Dieses soll die zentrale Informationsstelle sein.
414 Jeder Mitarbeiter darf an jeder Stelle des Projekts Änderungen durchführen.
416 \paragraph{Artefakte}
417 \begin{itemize}
418 \item Project Repository
419 \end{itemize}
423 \subsection{Projectmanagement}
424 (Projektmanagement)
426 \paragraph{Zweck}
427 Zwischen konkurrierenden Zielen vermitteln. Auf Risiken reagieren.
429 \paragraph{Anpassungen}
430 Keine besonderen.
432 \paragraph{Artefakte}
433 \begin{itemize}
434 \item Software Development Plan (Project Plan)
435 \item Risklist
436 \end{itemize}
440 \subsection{Environment}
441 (Entwicklungsumgebung)
443 \paragraph{Zweck}
444 Bereitstellung von Hardware, Software und Know-How.
446 \paragraph{Anpassungen}
447 Keine besonderen.
449 \paragraph{Artefakte}
450 \begin{itemize}
451 \item Development Case
452 \end{itemize}
466 \appendix
467 %\chapter{Glossar}
468 \chapter{Quellen}
469 \begin{itemize}
470 \item Dokumentation zum \emph{Rational Unified Process} (\texttt{http://www-306.ibm.com/software/awdtools/rup/})
471 \item Skript von Herrn Baer zur Vorlesung \emph{Softwaretechnik 1} an der Hochschule Ulm
472 \item http://wikipedia.org
473 \item \emph{Rational Unified Process - Best Practices for Software Development Teams}
474 \end{itemize}
476 Anmerkung zur Abbildung \ref{fig:rationalunifiedprocess}: This image is from the Rational Unified Process (software product) version 2003.06.12.01. This image is copyright by Rational Software Corporation, now a division of IBM.
480 \end{document}
485 %%%%%%%% HowTo %%%%%%%%%%
487 % picture block
488 \begin{figure}[h]
489  \includegraphics[scale=0.65]{pictures/png/logistiksicht_v6}
490  \caption{Logistiksicht für SAP}
491  \label{fig:logistiksicht}
492 \end{figure}
494 % picture inline
495 \begin{wrapfigure}[11]{r}[0pt]{6.4cm}
496  \centering %OPTIONAL
497  \includegraphics[scale=0.7]{pictures/png/werkdresden}
498  \caption{OptiBoard Werk Dresden}
499 \end{wrapfigure}
501 % tabellen
502 \begin{table}[h]
503 \centering
504 \begin{tabular}{p{4cm}|p{3cm}|p{3.3cm}}
505  \rowcolor{gray07} \textbf{Teil} & \textbf{Menge} & \textbf{Einheit}\\
506  \hline
507  \rowcolor{white}  LED-Block          & 105 & Stück\\
508  \rowcolor{gray09} Feder              & 105 & Stück\\
509  \rowcolor{white}  Platine            & 1   & Stück\\
510  \rowcolor{gray09} Chip               & 1   & Stück\\
511  \rowcolor{white}  Kabel              & 1   & Stück\\
512  \rowcolor{gray09} Kunststoffgranulat & 350 & Gramm\\
513 \end{tabular}
514 \caption{Mengenübersichtstückliste OptiBoard Pro}
515 \label{tbl:mengenPro}
516 \end{table}