% Messtechnik Praktikum G
% Vorbereitung Set 4.12 SS2011
% Hauptdokument
%\documentclass[a4paper,12pt]{article}
\documentclass{article}


% Packete einbinden
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc} 
\usepackage[pdftex]{graphicx}
\usepackage{amsmath, amsthm, amssymb}
\usepackage{geometry}
\usepackage{fancyhdr}
\usepackage{lmodern}
\usepackage{graphicx} 
\usepackage{subfigure} 
\usepackage{hyperref}


% Formatierungen festlegen
%\baselineskip20pt %Zeilenabstand
\setlength{\parindent}{0pt}
\setlength{\parskip}{\baselineskip}
\bibliographystyle{plainnat}
\geometry{
	outer=23mm,
	inner=22mm
}
%\pagestyle{fancy}



%Schriftart
\fontfamily{ptm}\selectfont %Schriftart Times



% Trennverhalten
%\hyphenpenalty=1000
\hyphenation{}
\hypersetup{
    bookmarks=true,
    unicode=false,
    pdftoolbar=true,
    pdfmenubar=true,
    pdffitwindow=false,
    pdfstartview={FitH},
    pdftitle={My title},
    pdfauthor={Author},
    pdfsubject={Subject},
    pdfcreator={Creator},
    pdfproducer={Producer},
    pdfkeywords={keyword1} {key2} {key3},
    pdfnewwindow=true,
    colorlinks=true,
    linkcolor=red,
    citecolor=green,
    filecolor=magenta,
    urlcolor=blue
}

% BibTex - Logo über das Kommando \BibTex aufrufen
\newcommand{\BibTeX}{{\sc Bib}\TeX}

%\textsc


\begin{document} 

\setcounter{secnumdepth}{5}

\part{Analyse}

\section{Aufgabenstellung}
Wir haben uns für das Projekt \BibTeX-Datenbank entschieden. Die Aufgabenstellung beinhaltete folgende Punkte:
\begin{quote}
	Entwickeln Sie eine Software zur Bearbeitung und Verwaltung von \BibTeX -Datenbanken. \BibTeX ist eine Software, mit deren Hilfe Literaturdatenbanken aufgebaut und Literaturangaben in
	 LATEX-Dokumente eingebunden werden können. Das \BibTeX -Datenbankformat ist eine strukturierte Textdatei der Form
	\begin{quote}
		@article\{mrx05, \\
		author = \{Mr. X\}, \\ 
		title = \{Something Great\}, \\
		publisher = \{nobody\}, \\
		year = 2005, \\
		\}
	\end{quote}
	Das Format lässt viele verschiedene Einträge zu, die mit dem Dokumenttyp beginnen, z. B. \@article für einen Zeitschriftenartikel, mrx05 als Eintragschlüssel, und viele Eintragfelder 	
	besitzen, z. B. author für den Autor des Artikels. Manche dieser Felder sind optional, müssen also nicht angegeben sein, andere sind obligatorisch, müssen also vorhanden sein. Welche
	Felder obligatorisch und welche optional sind, hängt vom Eintragtyp ab. Bei der Angabe der Feldnamen, z. B. author, wird nicht zwischen Groß- und Kleinschreibung unterschieden. Eine
	Beispiel- und Testdatei mit \BibTeX -Einträgen finden Sie auf der Website der Informatik IIb-Übung: \\
	\href{http://www.fh-jena.de/~jack/Lehre/InfoIIb/Uebung/xampl.bib}{http://www.fh-jena.de/~jack/Lehre/InfoIIb/Uebung/xampl.bib}, \\
	\href{http://www.fh-jena.de/~jack/Lehre/InfoIIb/Uebung/test.bib}{http://www.fh-jena.de/~jack/Lehre/InfoIIb/Uebung/test.bib} \\
	Weitere Informationen zu \BibTeX finden sie z. B. hier: \href{http://www.bibtex.org/}{http://www.bibtex.org/} \\
	Die von Ihnen zu entwickelnde Software soll eine grafische Benutzeroberfläche besitzen und soll
	\begin{itemize}
		\item mehrere \BibTeX -Dateien laden können, 
		\item die darin enthaltenen Einträge auf Korrektheit und Konsistenz prüfen, ggf. eine Bildschirm-Ausgabe erzeugen, die die unkorrekten bzw. inkonsistenten Eintrage anzeigt, 
		\item neue Literatureinträge anlegen und bestehende bearbeiten als auch löschen können, sowohl durch Tastatureingabe als auch durch Eingabe über den Copy-Paste-Puffer, bei
				 letzterem ist der Inhalt des Paste-Puffers ein Text wie oben im Beispiel @article\{mrx05,
		\item Freitextsuche in den Feldern der Eintragtypen ermöglichen d. h. die gefundenen Einträge werden mit Ihrem Schlüssel in einer Liste angezeigt in einem anderen Fenster können
				 die gefunden Einträge im Detail betrachtet und bearbeitet werden,
		\item eine Auswahl beliebiger Eintrage als neue \BibTeX -Datenbankdatei schreiben konnen, 
		\item ein zusätzliches optionales Feld für jeden Eintragtyp mit dem Bezeichner abstract beinhalten,
		\item ein weiteres zusätzliches optionales Feld für jeden Eintragtyp mit der Bezeichnung link beinhalten, das einen Hyperlink zu einem Dokument (das wird sinnvollerweise das 
				Dokument, das im Eintrag beschrieben ist, sein) enthält; bei einem Mausklick auf den Link soll dieser Link mit dem auf den Zielsystem verbundenen Programm geöffnet werden, 
				z. B. bei einem PDF-Dokument mit dem Adobe-Reader.
	\end{itemize}
\end{quote}

\section{Entwurf}
In der Analysephase ging es darum, die Aufgabenstellung in einen Programmablauf zu bringen. Dabei mussten zunächst die grundsätzlichen Aufgaben ermittelt werden und in sinnvolle Pakete aufgeteilt werden. Wir entschieden uns für drei wesentliche Pakete. 

Das erste Paket ist die grafische Benutzeroberfläche (GUI - Graphical User Interface). Dieses hat folgende Aufgaben:
\begin{itemize}
	\item Auswahlmöglichkeiten der anzuzeigenden Daten
	\item Anzeige der Daten mit oder ohne Filterung
	\item Befehlseingabe durch den User und Weiterleitung an die entsprechenden Objekte
\end{itemize}
Dazu ist eine Kommunikations zwischen Mensch und GUI und eine Kommunikation zwischen den anderen Paketen und der GUI sicherzustellen.

Das zweite Paket ist die Datenbank (Database). Die Datenbank hat folgende Aufgaben zu realisieren:
\begin{itemize}
	\item Aufnehmen, Ändern und Löschen von Daten aus der Datenbank (sowohl Arbeitsspicher als auch Datenbankdatei)
	\item Austausch von Daten zwischen Datenbank und Bibtex
	\item Austausch von Daten zwischen Datenbank und GUI
\end{itemize}

Das dritte Paket ist das Paket \emph{BibTex}. Das Paket umfasst folgende Aufgaben:
\begin{itemize}
	\item Parsen der Daten aus \BibTeX -Datei bzw. von \BibTeX -Datensätzen aus der Zwischenablage
	\item Serialisieren der Daten aus der Datenbank in eine \BibTeX -Datei
	\item Validierung der Daten aus einer \BibTeX -Datei.
\end{itemize}

\part{Implementierung}



\end{document} 