docs/Development-Case

view development-case.tex @ 9:3bae83d50dc5

lots of changes ... restructuring
author meillo@marmaro.de
date Mon, 21 Jan 2008 23:25:42 +0100
parents 5f939d777552
children 06bd2953d319
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 % \addsec{Bitte beachten}
118 Version vom \today: Das Dokument befindet sich noch im Aufbau, \"{A}nderungen sind dadurch jederzeit M\"{o}glich.
119 \addsec{Version dieses Dokuments}
120 \begin{tabular}{|p{1.5cm}|p{3.cm}|p{1.6cm}|p{2cm}|p{1.4cm}|p{4cm}|}
121 \hline
122 \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}}} \\
123 \hline\hline
124 \hoehe{\textbf{Version}} & \textbf{Person} & \textbf{Aktion} & \textbf{Datum} & \textbf{Status} & \textbf{Kommentar} \\
125 \hline\hline
126 0.1 & Markus Schnalke & E & 2007-11-27 & O & Erste Version \\ \hline
127 0.2 & Markus Schnalke & AE & 2008-01-13 & O & Neue Struktur des Dokuments \\ \hline
128 0.4 & Markus Schnalke & AE & 2008-01-16 & A & Struktur überarbeitet \\ \hline
129 0.4.1 & Karl Oppermann & QS & 2008-01-17 & A & Allgemeines Review \\ \hline
130 0.5 & Markus Schnalke & AE & 2008-01-18 & A & Überarbeitung; Fachbegriffe jetzt englisch \\ \hline
131 0.5.1 & Veysel Imamoglu & QS & 2008-01-18 & A & Rechtschreibkorrektur \\ \hline
132 0.6 & Markus Schnalke & AE & 2008-01-21 & O & \\ \hline
133 \end{tabular}
134 {\footnotesize\vspace*{-0.1cm}Aktion: E – Erstellung; AE – \"{A}nderung; QS – Review; AB – Abnahme} \par
135 {\footnotesize\vspace*{-0.4cm} Status: O – Offen; D – Diskussion; A – Akzeptiert}
136 \clearpage
138 % Inhaltsverzeichnis
139 \setcounter{tocdepth}{3}
140 %\renewcommand\contentsname{"Uberblick}
141 \tableofcontents
143 \clearpage
148 % Content
152 \chapter{Einleitung}
154 \section{Zweck des Dokuments}
156 Dieses Dokument beschreibt den Entwicklungsprozess nach dem wir in unserem Projekt vorgehen.
159 \section{Definitionen und Abkürzungen}
161 Die verwendeten Begriffe sind im Projekt-Glossar erklärt. Bei Bedarf kann dort nachgeschlagen werden.
165 \section{Verweise auf andere Artefakte}
167 \begin{itemize}
168 \item \textbf{Software Development Plan}
169 \item \textbf{Glossary}
170 \end{itemize}
176 %%%%%%%%%%%%%%
177 \chapter{Entwicklungsprozess}
179 \section{Überblick}
181 Wir werden unser Projekt nach dem \emph{Rational Unified Process}$^{\ddagger}$ (kurz RUP) entwickeln.
183 Der RUP ist ein dynamischer und iterativer Entwicklungsprozess, der das Projekt in zwei Dimensionen (zeitlich und inhaltlich) betrachtet.
185 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.
187 Wir haben diesen mächtigen und umfangreichen Prozess für unser kleines Projekt abgespeckt und angepasst. Wie unsere Adaptation des RUP genau aussieht, das beschreibt dieses Dokument.
190 \section{Der RUP auf einen Blick}
192 Natürlich kann man diesen umfassenden Entwicklungsprozess nicht in einem Bild komplett abbilden, jedoch zeigt die nachfolgende Grafik sehr schön, wie die Entwicklung im Bezug auf die zwei Dimensionen aussieht. Dieser Übersichtplan, soll den Aufbau des Prozesses nochmal ins Gedächtnis rufen.
194 \begin{figure}[htb]
195 \centering
196 \includegraphics[width=9cm]{pictures/png/RationalUnifiedProcess.png}
197 \caption{Übersicht über einen Zyklus im RUP$^{\ddagger}$ }
198 \label{fig:rationalunifiedprocess}
199 \end{figure}
208 %%%%%%%%%%%%%%
209 \chapter{Zeitliche Dimension}
211 \section{Anpassungen}
213 Wir werden in unserem Projekt drei Zyklen durchführen. Jeder der drei Zyklen wird circa fünf Wochen (30 Manntage) umfassen. An dessen Ende jeweils ein Release stehen wird. (siehe \emph{Software Development Plan})
215 Die einzelnen Phasen in den Zyklen versuchen wir, so gut es geht, zu berücksichtigen. Es muss bedacht werden, dass pro Phase bei uns ganz grob nur etwa 4 Manntage (d.h. circa 4 Stunden pro Person) zur Verfügung stehen.
217 Iterationen innerhalb der Zyklen werden wir, auf Grund der kurzen Zyklen, komplett außen vor lassen.
221 Ein Beispiel um ein Gefühl für die Größenverhältnisse zu bekommen: Unsere 90 Manntage, entsprechen realistischerweise eher einer einzelnen Iteration, als den drei Zyklen die wir für uns geplant haben.
223 %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.
225 %Wir finden es trotzdem wichtig, diesen Prozess zu wählen, weil die theoretischen Inhalte der Vorlesung ``Softwaretechnik 1'' sich erst durch ihre tatsächliche Anwendung im realen Projekt richtig verfestigen können.
231 \section{Konkrete Projektplanung}
233 Die konkrete Planung der einzelnen Zyklen und ihrer Meilensteine finden sich im \emph{Software Development Plan}.
241 %%%%%%%%%%%%%%%%%%%%
242 \chapter{Inhaltliche Dimension}
244 In der zweiten Dimension wird festgelegt, \emph{wer} (Rolle), \emph{wie} (Aktivität), \emph{was} (Artefakt), \emph{wann} (Workflow) macht.
248 \section{Business Modeling}
250 \paragraph{Zweck}
251 Gemeinsames Verständniss zwischen Entwicklern und Anwendern schaffen
253 \paragraph{Wird erreicht durch}
254 Dokumentation der relevanten Geschäftsprozesse in Use Cases
256 %\paragraph{Anpassungen}
257 %Keine besonderen.
259 \paragraph{Wer} Fachliches Team, Kunde
260 \paragraph{Wie} im Gespräch
261 \paragraph{Was} Glossary
263 %\paragraph{Artefakte}
264 %\begin{itemize}
265 % \item Glossary
266 %\end{itemize}
270 \section{Requirements}
272 \paragraph{Zweck}
273 Ermitteln, was das System leisten soll. Die funktionalen Anforderungen sollen erfasst werden.
275 \paragraph{Anpassungen}
276 Keine besonderen.
278 \paragraph{Artefakte}
279 \begin{itemize}
280 \item Vision
281 \item Use Cases
282 \end{itemize}
286 \section{Analysis \& Design}
288 \paragraph{Zweck}
289 Aufbau und Technologie des Systems festlegen. Festlegung wie wird das System realisiert wird.
291 \paragraph{Anpassungen}
292 Die Technologie und Teile der Umsetzung sind durch das Projekt vorgegeben und somit fix.
294 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.
296 \paragraph{Artefakte}
297 \begin{itemize}
298 \item Software Architecture Document
299 \end{itemize}
304 \section{Implementation}
306 \paragraph{Zweck}
307 Systemteile entwickeln und zusammenfügen. Komponententests.
309 \paragraph{Anpassungen}
310 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.
312 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.
314 \paragraph{Artefakte}
315 Momentan keine.
319 \section{Testing}
321 \paragraph{Zweck}
322 Test des Zusammenspiels der Komponenten. Funktionsweise des Systems gegen die Anforderungen prüfen.
324 \paragraph{Anpassungen}
325 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.
327 Dies heißt aber keineswegs, dass wir ihn zum geeigneten Zeitpunkt nicht voll ausbauen werden.
329 \paragraph{Artefakte}
330 Noch keine.
334 \section{Deployment}
336 \paragraph{Zweck}
337 Auslieferung des Systems an den Kunden und Inbetriebnahme. Schulung der Benutzer.
339 \paragraph{Anpassungen}
340 Auch hier sparen wir um dafür die Entwicklung voran zu treiben.
342 \paragraph{Artefakte}
343 \begin{itemize}
344 \item Release Notes (empfohlen) %FIXME rechtschreibung
345 \end{itemize}
351 \section{Configuration \& Changemanagement}
353 \paragraph{Zweck}
354 Verwaltung der zum Projekt gehörenden Daten. Versionierung und Konsistenz.
356 \paragraph{Anpassungen}
357 Alle Daten müssen im Project Repository abgelegt werden. Dieses soll die zentrale Informationsstelle sein.
359 Jeder Mitarbeiter darf an jeder Stelle des Projekts Änderungen durchführen.
361 % FIXME: Inhalte für Karl einfügen
363 \paragraph{Artefakte}
364 \begin{itemize}
365 \item Project Repository
366 \end{itemize}
370 \section{Projectmanagement}
372 \paragraph{Zweck}
373 Zwischen konkurrierenden Zielen vermitteln. Auf Risiken reagieren.
375 \paragraph{Anpassungen}
376 Keine besonderen.
378 \paragraph{Artefakte}
379 \begin{itemize}
380 \item Software Development Plan
381 \item Risklist
382 \end{itemize}
386 \section{Environment}
388 \paragraph{Zweck}
389 Bereitstellung von Hardware, Software und Know-How.
391 \paragraph{Anpassungen}
392 Keine besonderen.
394 \paragraph{Artefakte}
395 \begin{itemize}
396 \item Development Case
397 \end{itemize}
411 \appendix
412 %\chapter{Glossar}
413 \chapter{Quellen}
414 \begin{itemize}
415 \item Dokumentation zum \emph{Rational Unified Process} \\ (\texttt{http://www-306.ibm.com/software/awdtools/rup/})
416 \item Skript von Herrn Baer zur Vorlesung \emph{Softwaretechnik 1} an der Hochschule Ulm
417 \item http://wikipedia.org
418 \item \emph{Rational Unified Process - Best Practices for Software Development Teams}
419 \end{itemize}
421 $\ddagger{}$ The image \ref{fig:rationalunifiedprocess} is from the Rational Unified Process (software product) version 2003.06.12.01. This image and the names ``Rational Unified Process'' and ``RUP'' are copyright by Rational Software Corporation, now a division of IBM.
425 \end{document}
430 %%%%%%%% HowTo %%%%%%%%%%
432 % picture block
433 \begin{figure}[h]
434  \includegraphics[scale=0.65]{pictures/png/logistiksicht_v6}
435  \caption{Logistiksicht für SAP}
436  \label{fig:logistiksicht}
437 \end{figure}
439 % picture inline
440 \begin{wrapfigure}[11]{r}[0pt]{6.4cm}
441  \centering %OPTIONAL
442  \includegraphics[scale=0.7]{pictures/png/werkdresden}
443  \caption{OptiBoard Werk Dresden}
444 \end{wrapfigure}
446 % tabellen
447 \begin{table}[h]
448 \centering
449 \begin{tabular}{p{4cm}|p{3cm}|p{3.3cm}}
450  \rowcolor{gray07} \textbf{Teil} & \textbf{Menge} & \textbf{Einheit}\\
451  \hline
452  \rowcolor{white}  LED-Block          & 105 & Stück\\
453  \rowcolor{gray09} Feder              & 105 & Stück\\
454  \rowcolor{white}  Platine            & 1   & Stück\\
455  \rowcolor{gray09} Chip               & 1   & Stück\\
456  \rowcolor{white}  Kabel              & 1   & Stück\\
457  \rowcolor{gray09} Kunststoffgranulat & 350 & Gramm\\
458 \end{tabular}
459 \caption{Mengenübersichtstückliste OptiBoard Pro}
460 \label{tbl:mengenPro}
461 \end{table}