QS-Dokument Rechtschreibfehler, Glossareinträge, Verlinkungen ins Glossar

This commit is contained in:
M.Scholz 2012-01-23 10:26:18 +01:00
parent 004cbbaceb
commit 345f5af2ed
2 changed files with 10 additions and 7 deletions

View File

@ -16,7 +16,7 @@
%\newglossaryentry{}{name={},description={}}
\newglossaryentry{SVN}{name={SVN},description={Subversion ist eine freie Software zur zentralisierten Versionsverwaltung}}
\newglossaryentry{Git}{name={Git},description={Freie Anwendung zur verteilten Versionsverwaltung}}
\newglossaryentry{SQL-Injection}{name={SQL-Injection}, plural={SQL-Injections},description={Angriff auf Datenbank mit dem Ziel eigenen SQL-Code auszuführen und Daten auszulesen bzw. zu ändern}}
\newglossaryentry{SQL-Injection}{name={SQL-Injection}, plural={SQL-Injections},description={Angriff auf Datenbank mit dem Ziel eigenen \gls{SQL}-Code auszuführen und Daten auszulesen bzw. zu ändern}}
\newglossaryentry{Propel}{name={Propel},description={Datenbankschnittstellte, die eine einfache Interaktion mit der vorhandenen Datenbank bietet. Mehr Informationen unter: \href{http://www.propelorm.org/}{http://www.propelorm.org/}}}
\newglossaryentry{Agile Softwareentwicklung}{{name=Agile Softwareentwicklung},plural={Agilen Softwareentwicklung},description={Softwareentwicklungsprozess, welcher auf sich ändernde Anforderungen flexibel eingeht}}
\newglossaryentry{API}{name={API},description={Application Programming Interface: Programmteil, durch den andere Programme die Funktionalität des eigentlichen Programmes nutzen können}}
@ -42,9 +42,12 @@
\newglossaryentry{whitebox}{name={Whiteboxtest}, plural={Whiteboxtests}, description={Softwareentwickler hat während der Tests Kenntnisse über die innere Funktionsweise der zu testenden Module.}}
\newglossaryentry{blackbox}{name={Blackboxtest}, plural={Blackboxtests}, description={Softwareentwickler hat während der Tests keine Kenntniss über die innere Funktionsweise der zu testenden Module}}
\newglossaryentry{Selenium}{name={Selenium}, description={Selenium ist ein Tool, mit dem Benutzereingaben automatisiert werden können. Mehr unter: \href{http://seleniumhq.org/}{http://seleniumhq.org/}}}
\newglossaryentry{PHPUnit}{name={PHPUnit}, description={Mittels PHPUnit können Whiteboxtests von PHP-Code durchgeführt werden. Dies geschieht vergleichbar mit dem bekannten JUnit Testframework in Java.}}
\newglossaryentry{HTML5}{name={HTML5}, description={Hypertext Markup Language in Version 5. Die offizielle Verabschiedung soll 2014 durch \gls{W3C} erfolgen}}
\newglossaryentry{PHPUnit}{name={PHPUnit}, description={Mittels PHPUnit können Whiteboxtests von \gls{PHP}-Code durchgeführt werden. Dies geschieht vergleichbar mit dem bekannten JUnit Testframework in Java.}}
\newglossaryentry{HTML5}{name={HTML5}, description={\textbf{H}yper\textbf{t}ext \textbf{M}arkup \textbf{L}anguage in Version 5. Die offizielle Verabschiedung soll 2014 durch das \gls{W3C} erfolgen}}
\newglossaryentry{W3C}{name={W3C}, description={World Wide Web Consortium: Standardisiert die Techniken des Word Wide Webs. Mehr unter: \href{http://www.w3.org/}{http://www.w3.org/}}}
\newglossaryentry{SQL}{name={SQL}, description={\textbf{S}tructured \textbf{Q}uery \textbf{L}anguage: Sprache um mit einer Datenbank zu interagieren}}
\newglossaryentry{PreparedStatement}{name={Prepared Statement}, plural={Prepared Statements}, description={Vorbereitete Anweisung für Datenbanken. Sie enthält Platzhalter anstelle der Paramterwerte}}
\newglossaryentry{JavaScript}{name={JavaScript}, description={Dynamisch typisierte, objektorientierte, klassenlose Skriptsprache}}
\begin{document}
@ -125,7 +128,7 @@ Die Funktionalit
\item Richtigkeit: \\
Da an dem gesamten Projekt da-sense viele Studenten mitwirken, können wir nicht für jede existierende Funktion die Richtigkeit garantieren. Wir beschränken uns hierbei auf die Funktionen der Datenbankinteraktionen und der Darstellung der neuen Visualisierung, welche von uns selbst implementiert werden.
\item Sicherheit: \\
Das Merkmal der Sicherheit wird beim Datenaustausch zwischen Smartphones bzw. \gls{Waspmote Sensoren} und der API gefordert. Hierbei muss die Anwendung resistent gegenüber Angriffen, z.B. in Form von \glspl{SQL-Injection}, sein.
Das Merkmal der Sicherheit wird beim Datenaustausch zwischen Smartphones bzw. \gls{Waspmote Sensoren} und der \gls{API} gefordert. Hierbei muss die Anwendung resistent gegenüber Angriffen, z.B. in Form von \glspl{SQL-Injection}, sein.
\item Interoperabilität: \\
Das Merkmal der Interoperabilität wird im zweiten Teil des Praktikums, bei der Visualisierung der gesammelten Daten, gewährleistet. Die Darstellung der gesammelten Daten muss in allen gängigen Webbrowsern (Firefox, Chrome, Internet Explorer und Safari) fehlerfrei sein. Wir beschränken uns bei den angegebenen Browsern auf die jeweilig aktuelle Version. Dies ist notwendig, da die neue Visualisierung auf \gls{HTML5} basiert.
\end{itemize}
@ -176,10 +179,10 @@ Die Ma
Zur Sicherung der einzelnen Funktionalitätsmerkmale werden die folgenden Maßnahmen ergriffen:
\begin{itemize}
\item Richtigkeit: \\
Zur Sicherstellung der Richtigkeit werden \glspl{whitebox} mit \gls{PHPUnit} und \glspl{blackbox} mit \gls{Selenium} durchgeführt. Die korrekten Datenbankinteraktionen werden durch die Einhaltung der Vorgaben von \gls{Propel} sichergestellt. \gls{PHPUnit} erlaubt durch die integrierten Funktionen das einfache Testen von PHP-Methoden. Somit können auftretende Fehler schnell beseitigt werden. \gls{Selenium} testet automatisiert die Anbindung der Daten an die Visualisierung. Hierzu wird eine Benutzereingabe aufgezeichnet, die nun im weiteren Entwicklungsprozess durch Selenium wiederholt ausgeführt werden kann.
Zur Sicherstellung der Richtigkeit werden \glspl{whitebox} mit \gls{PHPUnit} und \glspl{blackbox} mit \gls{Selenium} durchgeführt. Die korrekten Datenbankinteraktionen werden durch die Einhaltung der Vorgaben von \gls{Propel} sichergestellt. \gls{PHPUnit} erlaubt durch die integrierten Funktionen das einfache Testen von \gls{PHP}-Methoden. Somit können auftretende Fehler schnell beseitigt werden. \gls{Selenium} testet automatisiert die Anbindung der Daten an die Visualisierung. Hierzu wird eine Benutzereingabe aufgezeichnet, die nun im weiteren Entwicklungsprozess durch Selenium wiederholt ausgeführt werden kann.
\item Sicherheit: \\
Das von uns verwendete ORM-Framework \gls{Propel} nutzt Prepared Statements, mit denen sich \glspl{SQL-Injection} wirksam unterbinden lassen. Hierbei werden SQL-Code und Daten getrennt. Zudem erfordert Propel keine SQL Kentnisse, wodurch für neue Entwickler der Einstieg erleichtert wird. Der Eintrag der Daten über die \gls{API} erfolgt mittels HTTP-GET Parameter. Bevor die Aufnahme neuer Daten in die Datenbank erfolgen kann, ist eine Authentifizierung des Nutzers notwendig. Die Implementierung der Authentifizierung unterliegt nicht unserem Aufgabenbereich.
Das von uns verwendete ORM-Framework \gls{Propel} nutzt \glspl{PreparedStatement}, mit denen sich \glspl{SQL-Injection} wirksam unterbinden lassen. Hierbei werden \gls{SQL}-Code und Daten getrennt. Zudem erfordert Propel keine \gls{SQL} Kentnisse, wodurch für neue Entwickler der Einstieg erleichtert wird. Der Eintrag der Daten über die \gls{API} erfolgt mittels HTTP-GET Parameter. Bevor die Aufnahme neuer Daten in die Datenbank erfolgen kann, ist eine Authentifizierung des Nutzers notwendig. Die Implementierung der Authentifizierung unterliegt nicht unserem Aufgabenbereich.
\item Interoperabilität: \\
Um die Interoperabilität mit den einzelnen Webbrowsern sicherzustellen, werden manuelle Tests durchgeführt. Hierzu wird jeweils die aktuelle Version des Webbrowsers verwendet. Jeder Browser wird mit den selben Benutzereingaben ausgeführt. Die jeweiligen Ausgaben erlauben einen direkten Vergleich. Außerdem werden, im Rahmen der Benutzerstudie, Fragebögen an Probanden ausgegeben. Die Auswertung dieser Fragebögen ermöglicht es uns, Rückschlüsse auf eventuell auftretende Fehler in der Visualisierung zu ziehen und zu beseitigen.
@ -235,7 +238,7 @@ Jede von uns geschriebene Funktion besitzt einen Kommentarkopf der folgenden For
**/ \\
Wobei \textit{Description} durch einen funktionsbeschreibenden Text, \textit{paramtype} durch den Parametertyp, \textit{returntype} durch den Rückgabewert und \textit{boolean} durch den Wahrheitswert \glqq true\grqq\ bzw. \glqq false\grqq\ zu ersetzen sind. Somit erhalten die weiteren Entwickler schnell einen Überblick über die vorliegende Methode und ihre Funktionsweise.
\item Struktur: \\
Wir trennen im Quellcode strikt HTML, JavaScript und PHP. Die Trennung erhöht die Lesbarkeit, vereinfacht die Fehlersuche und reduziert die Fehlerrate. Zur Trennung von Daten- und Präsentationsebene wird das \gls{MVC} verwendet. Hierdurch wird eine sinnvolle Codestrukturierung erreicht.
Wir trennen im Quellcode strikt HTML-, \gls{JavaScript}- und \gls{PHP}-Code. Die Trennung erhöht die Lesbarkeit, vereinfacht die Fehlersuche und reduziert die Fehlerrate. Zur Trennung von Daten- und Präsentationsebene wird das \gls{MVC} verwendet. Hierdurch wird eine sinnvolle Codestrukturierung erreicht.
\item Namenskonvention: \\ %Glossareintrag zu CamelCase schreiben
Wir benutzen die CamelCase Konvention, welche unter anderem in Java als Standard gilt und zu einer besseren Lesbarkeit von Bezeichnern beiträgt.