%Autor: Betti "Osterholz
%erstellt:5.11.2006
%Implementationskonverntionen V0.1
%Im Nachfolgendem sind einige Implementationskonverntionen aufgestellt

\subsection{\index{Implementation!Aufbau}Aufbau des Quelltextes}

Jede Quelltextdatei beginnt Informationsheader. In ihm steht der Name der Datei, des Autors und das Erstellungsdatum der Datei, gefolgt von den Kopierrechten(Copyright). Nach den Kopierrechten wird der Inhalt der Datei n"aher beschrieben.

\noindent
Beispiel:
\begin{tabbing}
\hspace{10mm} \= \kill
\>\texttt{File Name: Univers.h}\\
\>\texttt{Author: Betti Oesterholz ; Date: 12.01.2005}\\
\>\texttt{System: C++}\\
\>\\
\>\texttt{Copyright (C) 2004  Betti Oeterholz}\\
\>...\\
\>\\
\>\texttt{This file contains} ...\\
\end{tabbing}

\subsection{\index{Implementation!Formatierung}Formatierung}

Gearbeitet wird mit Tabulatoren. Jeder Block, au"ser Methodenimplementationen und einzeilige Bl"ocke, wird durch ein Tab einger"uckt. Methodenimplementationen werden nicht extra einger"uckt. Kurze einzeilige Bl"ocke werden nach den Blockspezifizierer geschrieben(z.B. hinter der if Anweisung: \texttt{if(bWert)\{ tuWas(); \}}), lange einzeilige Bl"ocke werden in einer separaten Zeile mit vorgestellten Tab geschrieben.

Kurze Anweisungen werden, wenn sie von der Bedeutung zusammen geh"oren, direkt hintereinander geschrieben, solange die Zeile nicht zu lang wird(z.B. \texttt{file->close(); delete file;}).


\subsection{\index{Implementation!Kommentare}Kommentare}

Alle Kommentare sind in Englisch gehalten. 

Jede Methode beginnt mit einem Informationsheader, in dem eine kurze Beschreibung der Methode steht, gefolgt von eventuellen Vor-(\texttt{pre:}) und Nachbedingungen(\texttt{post:}).

Kurze Kommentare zu einer Quellcodezeile stehen hinter dieser. Kommentare zu eine Quellcodesegment stehen in einer Zeile vor diesem.


\subsection{\index{Implementation!Notation}Namen}

Namen sind Bezeichner von Klassen, Methoden, Variablen, Konstanten oder Makros.

\subsubsection{\index{Implementation!Notation!Klassennamen}\index{Notation!Klassennamen}Klassennamen}

Alle Klassennamen beginnen mit einem Kleinen "`c"' f"ur "`class"', die Teilworte des Klassennamen beginnen mit einem gro"sen Buchstaben.
 
\noindent
Beispiel: cUnivers; cUniversNeib


\subsubsection{\index{Implementation!Notation!Methodennamen}\index{Notation!Methodennamen}Methodennamen}

Methoden beginnen mit einem Kleinbuchstaben. Teilnamen im Methodennamen beginnen mit einem gro"sen Buchstaben und grenzen unmittelbar aneinander.

Methoden die dazu dienen Werte zur"uckzugeben beginnen mit einem "`get"', demgegen"uber beginnen Methoden mit denen Werten gesetzt sollen mit einem "`set"'. 

\noindent
Beispiel: eineMethode(); getIhrgendWas()

\subsubsection{\index{Implementation!Notation!Variablennamen}\index{Notation!Variablennamen}Variablennamen}

Variablennamen beginnen kleingeschrieben Teilnamen im Variablennamen beginnen mit einem gro"sen Buchstaben und grenzen unmittelbar aneinander. Namen von Variablen von grundlegenden Datentypen, wie Beispielsweise \texttt{int}, beginnen mit einem K"urzel f"ur diesen Datentypen.

\begin{table}
	\centering
		\begin{tabular}{r|l}\hline
			K"urzel & Datentyp\\\hline
			i &int\\
			s &shor\\
			c &char\\
			l &long\\
			u &unsigned\\
			sz&string\\
			li&list\\		
		\end{tabular}
\end{table}

\noindent
Beispiel: variablenNamen, uiGanzeZahl

%\subsubsection{\index{Implementation!Notation!Konstantennamen}\index{Notation!Konstantennamen}Konstantennamen}


%\subsubsection{\index{Implementation!Notation!Defines}\index{Implementation!Notation!Makros}\index{Notation!Defines}\index{Notation!Makros}Namen f"ur Makros}




