# HG changeset patch # User meillo@marmaro.de # Date 1200516820 -3600 # Node ID b9b93523dc051135801082f5e507297d47c26e80 # Parent 303fa01dce67363053eeb01cab9b56292964f18e a lot of content and restructuring and even more :-) diff -r 303fa01dce67 -r b9b93523dc05 development-case.tex --- a/development-case.tex Wed Jan 16 11:46:50 2008 +0100 +++ b/development-case.tex Wed Jan 16 21:53:40 2008 +0100 @@ -119,12 +119,10 @@ \hline\hline \hoehe{\textbf{Version}} & \textbf{Person} & \textbf{Aktion} & \textbf{Datum} & \textbf{Status} & \textbf{Kommentar} \\ \hline\hline - 0.1 & Markus Schnalke & E & 2007-11-27 & O & Erste Version \\ - \hline - 0.2 & Markus Schnalke & AE & 2008-01-13 & O & Neue Struktur des Dokuments \\ - \hline - 0.3 & Markus Schnalke & AE & 2008-01-14 & O & Glossar erstellt \\ - \hline + 0.1 & Markus Schnalke & E & 2007-11-27 & O & Erste Version \\ \hline + 0.2 & Markus Schnalke & AE & 2008-01-13 & O & Neue Struktur des Dokuments \\ \hline + 0.3 & Markus Schnalke & AE & 2008-01-14 & O & Glossar erstellt \\ \hline + 0.4 & Markus Schnalke & AE & 2008-01-16 & O & Struktur überarbeitet; Glossar ausgelagert \\ \hline \end{tabular} {\footnotesize\vspace*{-0.1cm}Aktion: E – Erstellung; AE – \"{A}nderung; QS – Review; AB – Abnahme} \par {\footnotesize\vspace*{-0.4cm} Status: O – Offen; D – Diskussion; A – Akzeptiert} @@ -136,19 +134,17 @@ \tableofcontents \clearpage - %\setcounter{tocdepth}{3} - %\renewcommand\contentsname{Detailliertes Inhaltsverzeichnis} - %\tableofcontents - %\clearpage -% -% Inhalt -% \input{development-case-content} + + + + +% Content \chapter{Einleitung} -\section{Zweck} +\section{Zweck des Dokuments} Dieses Dokument beschreibt den Entwicklungsprozess nach dem wir in unserem Projekt vorgehen. @@ -157,42 +153,19 @@ Die verwendeten Begriffe sind im Projekt-Glossar erklärt. Bei Bedarf kann dort nachgeschlagen werden. -\textbf{Workflow} -Aufeinander folgende Aktivitäten die ein messbares Ergebnis erzeugen. -%The sequence of activities performed in a business that produces a result of observable value to an individual actor of the business. +% Im Glossar sind: Workflow Entwicklungsprozess Zyklus Iteration Phase RUP Iterativer Entwicklungsprozess Manntag Release -\textbf{Entwicklungsprozess} -Definiertes Vorgehensmodell zur Erstellung einer Software. Ein Entwicklungsprozess soll die Softwareentwicklung übersichtlicher gestalten und die Komplexität beherrscbar machen. -\textbf{Zyklus} -Ein kompletter Durchlauf der vier Phasen: Konzeption (Inception), Entwurf (Elaboration), Konstruktion (Construction) und Übergabe (Transition). -%One complete pass through the four phases: inception, elaboration, construction and transition. The span of time between the beginning of the inception phase and the end of the transition phase. +\section{Verweise auf andere Artefakte} -\textbf{Iteration} -Eine geplante Abfolge von Aktivitäten mit einem messbaren Ergebnis, die in einem Release enden (intern oder extern). -%A distinct sequence of activities with a base-lined plan and valuation criteria resulting in a release (internal or external). - -\textbf{Phase} -Die Zeit zwischen zwei bedeutenden Projekt-Meilensteinen. Während einer Phase werden, eine festgelegte Menge an Aufgaben bearbeitet, Artefakte erstellt und die Entscheidung gefällt, ob man in die nächste Phase einsteigt, oder nicht. -%The time between two major project milestones, during which a well-defined set of objectives is met, artifacts are completed, and decisions are made to move or not move into the next phase. - -\textbf{RUP} -Der Rational Unified Process (RUP) ist ein objektorientiertes Vorgehensmodell zur Softwareentwicklung und ein kommerzielles Produkt der Firma Rational Software. Der RUP ist ein iterativer Entwicklungsprozess. - - -\textbf{Iterativer Entwicklungsprozess} -Ein Entwicklungsprozess, der in Iterationen unterteilt ist. Dies ermöglicht Flexibilität, Risiken werden frühzeitig erkannt und es wird berücksichtigt, dass sich Anforderungen während eines Projektes oftmals ändern. - -\textbf{Manntag} -Ein Manntag ist die Menge an Arbeit, die eine Person durchschnittlich an einem Arbeitstag (8 Stunden) schafft. Man verwendet diesen Begriff, um Schätzungen für die Gesamtmenge an Arbeit für die Erledigung einer Aufgabe zu errechnen. - -\textbf{Release} -%Die fertige und veröffentlichte Version einer Software wird als Release bezeichnet. -%A subset of the end-product that is the object of evaluation at a major milestone. A release is a stable, executable version of product, together with any artifacts necessary to use this release, such as release notes or installation instructions. A release can be internal or external. An internal release is used only by the development organization, as part of a milestone, or for a demonstration to users or customers. An external release (or delivery) is delivered to end users. A release is not necessarily a complete product, but can just be one step along the way, with its usefulness measured only from an engineering perspective. Releases act as a forcing function that drives the development team to get closure at regular intervals, avoiding the "90\% done, 90\% remaining" syndrome. See also prototype, baseline. - - -\section{Verweise} - +\begin{itemize} + \item \textbf{Glossar}: Dort werden die verwendeten Fachbegriffe erklärt. + \item \textbf{Software Development Plan}: Der \emph{Development Case} ist ein Unterdokument des \emph{Software Development Plan}s. + \item \textbf{Projekt Plan}: Die konkrete zeitliche Planung. + \item + \item + \item +\end{itemize} @@ -200,43 +173,94 @@ %%%%%%%%%%%%%% \chapter{Entwicklungsprozess} + \section{Überblick} -Wir werden unser Projekt nach dem Rational Unified Process (kurz RUP) entwickeln. +Wir werden unser Projekt nach dem \emph{Rational Unified Process} (kurz RUP) entwickeln. Der RUP ist ein dynamischer und iterativer Entwicklungsprozess, der das Projekt in zwei Dimensionen betrachtet. -Er ist ausführlich spezifiziert und umfangreich dokumentiert. (http://www-306.ibm.com/software/awdtools/rup/). +Er ist ausführlich spezifiziert und umfangreich dokumentiert. (\texttt{http://www-306.ibm.com/software/awdtools/rup/}). -An sich ist der RUP für große Projekte, mit vielen Mannjahren, ausgelegt. Wir haben uns trotzdem für den RUP entscheiden, da wir ihn in der Vorlesung Softwaretechnik 1 ausführlich behandelt hatten und wir dieses Theoriewissen nun in der Praxis anwenden wollen. +An sich ist der RUP für große Projekte, mit vielen Mannjahren, ausgelegt. Für unser kleines Projekt (85 Manntage) ist er eher weniger gut geeignet. Wir haben uns trotzdem für den RUP entscheiden, da wir ihn in der Vorlesung Softwaretechnik 1 ausführlich behandelt hatten und wir dieses Theoriewissen nun in der Praxis anwenden wollen. +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 zurecht geschneidert werden müssen. + +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). + +Wie unsere Adaptation des RUP genau aussieht, das beschreibt diese Dokument. + + +\section{Der RUP auf einen Blick} + +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. + +\begin{figure}[htb] + \centering + \includegraphics[width=10cm]{pictures/png/RationalUnifiedProcess.png} + \caption{Übersicht über einen Zyklus des RUP} + \label{fig:rationalunifiedprocess} +\end{figure} + + + + + + + + +%%%%%%%%%%%%%% +\chapter{Zeitliche Dimension} \section{Anpassungen} -Es gilt also diesen mächtigen und umfangreichen Entwicklungsprozess für unser klares Projekt abzuspecken und anzupassen. Dies ist natürlich nicht ganz einfach, da unsere 85 Manntage realistischerweise eher einer einzelnen Iteration entsprechen, als den drei Zyklen, die wir für uns geplant haben. -Wir werden deshalb ein paar Ungenauigkeiten bei unserem Verhalten im Kauf nehmen; versuchen aber natürlich, uns möglichst nah an die Leitlinie RUP zu halten. +Wir werden drei Zyklen des Projekts durchführen. Insgesamt wird das Projekt mehr als diese drei Zyklen umfassen. Unser Team aber nur eben diese ersten drei Zyklen durchführen. -Wir werden drei Zyklen des Projekts durchführen. Insgesamt soll das Projekt sechs Zyklen umfassen, von denen die letzten drei Zyklen aber nur grob geplant werden. -Jeder Zyklus wird circa vier Wochen umfassen (18 Manntage). An dessen Ende ein Release steht. -Iterationen innerhalb der Zyklen werden wir, aufgrund der kurzen Zyklen, außen vor lassen. +Jeder Zyklus wird circa vier Wochen umfassen (18 Manntage). An dessen Ende jeweils ein Release stehen wird. (Näheres zu den Releases findet sich im \emph{Project Plan}.) -Die einzelnen Phasen (zweite Dimension) in den Zyklen versuchen wir, so gut es geht, zu berücksichtigen. +Iterationen innerhalb der Zyklen werden wir, auf Grund der kurzen Zyklen, komplett außen vor lassen. +Die einzelnen Phasen in den Zyklen versuchen wir, so gut es geht, zu berücksichtigen. +\subsection{Probleme und Konsequenzen} +Der RUP ist sehr umfangreich und +Dies ist natürlich nicht ganz einfach, da unsere 85 Manntage realistischerweise eher einer einzelnen Iteration entsprechen, als den drei Zyklen, die wir für uns geplant haben. -\chapter{Projektplanung} +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. -siehe \emph{Projektplan} diesbezüglich +Dabei muss allerdings 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. +\section{Konkrete Projektplanung} +Die konkrete Planung der einzelnen Zyklen und ihrer Meilensteine befindet sich im \emph{Projekt Plan}. Dieser gibt eine zeitliche und inhaltliche Komplettübersicht über das Projekt. -\chapter{Kern-Workflows} +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 unseren \emph{Iterations Plan} mit dem \emph{Projekt Plan} verschmolzen. + + + + + +%%%%%%%%%%%%%%%%%%%% +\chapter{Inhaltliche Dimension} + +Diese zweite Dimension beschreibt die inhaltliche Seite der Entwicklung. Hier wird genau festgelegt, \emph{wer} \emph{wie} \emph{was} \emph{wann} macht. + +Dabei gibt es vier Elemente: +\begin{itemize} + \item Arbeiter, das \emph{Wer}. Der \emph{Arbeiter} ist eine Rolle, die jemand inne 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}. + \item Aktivität, das \emph{Wie}. Eine Aktivität ist ein bestimmte Arbeitseinheit, die ein bestimmter Arbeiter erledigen soll. Üblicherweise soll dabei ein Artefakt erstellt oder aktualisiert werden. + \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. + \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 (Arbeiter, Aktivität und Artefakt) zu einer konkret wertschaffenden Struktur zusammengebaut. +\end{itemize} + +\section{Kern-Workflows} + \subsection{Geschäftsprozessmodellierung} (Business Modeling) @@ -244,10 +268,8 @@ \paragraph{Artefakte} \begin{itemize} - \item Glossary - \item Use-Case - \item Use-Case Model - \item Vision + \item Glossar + \item Business Use-Cases \end{itemize} @@ -260,7 +282,7 @@ \paragraph{Artefakte} \begin{itemize} \item Use-Case - \item Use-Case Model + \item Use-Case Modell \item Vision \end{itemize} @@ -269,7 +291,7 @@ \subsection{Analyse \& Design} (Analysis \& Design) -Aufbau und Technologie des Systems festlegen. +Aufbau und Technologie des Systems festlegen. Festlegung wie wird das System realisiert wird. \paragraph{Artefakte} \begin{itemize} @@ -281,7 +303,7 @@ \subsection{Implementierung} (Implementation) -Systemteile entwickeln und zusammenfügen. +Systemteile entwickeln und zusammenfügen. Komponententests. \paragraph{Artefakte} @@ -289,7 +311,7 @@ \subsection{Test} (Testing) -Funktionsweise des Systems gegen die Anforderungen prüfen. +Test des Zusammenspiels der Komponenten. Funktionsweise des Systems gegen die Anforderungen prüfen. 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 vorran zu kommen, nicht komplett fehlerfreie Ergebnisse zu liefern, deshalb verzichten wir komplett auf diesen Workflow. @@ -326,6 +348,7 @@ \paragraph{Artefakte} \begin{itemize} \item Software Development Plan + \item Risikoliste \item Iteration Plan % FIXME \end{itemize} @@ -355,14 +378,53 @@ \appendix - \chapter{Glossar} - \chapter{Quellen und Links} + %\chapter{Glossar} + \chapter{Quellen} \begin{itemize} \item Dokumentation zum \emph{Rational Unified Process} \item Skript von Herrn Baer zur Vorlesung \emph{Softwaretechnik 1} an der Hochschule Ulm \item http://wikipedia.org + \item \emph{Rational Unified Process - Best Practices for Software Development Teams} \end{itemize} + Anmerkung zur \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. + \end{document} + + + + +%%%%%%%% HowTo %%%%%%%%%% + +% picture block +\begin{figure}[h] + \includegraphics[scale=0.65]{pictures/png/logistiksicht_v6} + \caption{Logistiksicht für SAP} + \label{fig:logistiksicht} +\end{figure} + +% picture inline +\begin{wrapfigure}[11]{r}[0pt]{6.4cm} + \centering %OPTIONAL + \includegraphics[scale=0.7]{pictures/png/werkdresden} + \caption{OptiBoard Werk Dresden} +\end{wrapfigure} + +% tabellen +\begin{table}[h] +\centering +\begin{tabular}{p{4cm}|p{3cm}|p{3.3cm}} + \rowcolor{gray07} \textbf{Teil} & \textbf{Menge} & \textbf{Einheit}\\ + \hline + \rowcolor{white}  LED-Block          & 105 & Stück\\ + \rowcolor{gray09} Feder              & 105 & Stück\\ + \rowcolor{white}  Platine            & 1   & Stück\\ + \rowcolor{gray09} Chip               & 1   & Stück\\ + \rowcolor{white}  Kabel              & 1   & Stück\\ + \rowcolor{gray09} Kunststoffgranulat & 350 & Gramm\\ +\end{tabular} +\caption{Mengenübersichtstückliste OptiBoard Pro} +\label{tbl:mengenPro} +\end{table} diff -r 303fa01dce67 -r b9b93523dc05 pictures/png/RationalUnifiedProcess.png Binary file pictures/png/RationalUnifiedProcess.png has changed