qs
This commit is contained in:
parent
5ec892117f
commit
bb8c0f0b53
Binary file not shown.
@ -37,6 +37,8 @@
|
||||
\newglossaryentry{WSDL}{name={WSDL},description={Web Services Description Language: Beschreibungssprache für Webservices}}
|
||||
\newglossaryentry{XML}{name={XML},description={Extensible Markup Language: Auszeichnungssprache zur hierarchisch struktierten Darstellung von Daten in Textdatenform}}
|
||||
\newglossaryentry{XHTML}{name={XHTML},description={Extensible Hypertext Markup Language: Auszeichnungssprache zur strukturierten Darstellung von Texten, Bildern und Hyperlinks in Textform}}
|
||||
\newglossaryentry{MVC}{name={MVC-Designprinzip}, plural={MVC-Designprinzipes}, description={Model-View-Controller. Architekturmuster zur Strukturierung von Softwareentwicklung. Mehr unter: \href{http://de.wikipedia.org/wiki/Model_View_Controller}{http://de.wikipedia.org/wiki/Model_View_Controller}}}
|
||||
\newglossaryentry{Browser-Sandbox}{name={Browser Sandbox}, description={Browser Sandbox in ein Onlinetool, welches über die Seite \href{http://spoon.net/browsers/}{http://spoon.net/browsers/} erreichbar ist.}}
|
||||
|
||||
|
||||
\begin{document}
|
||||
@ -116,11 +118,11 @@ Der Themenbereich umfasst die Umstellung der \gls{API} auf eine neue Datenbank u
|
||||
Die Funktionalität gliedern wir in die drei Qualitätsmerkmale \textit{Richtigkeit}, \textit{Interoperabilität} und \textit{Sicherheit}, welche wir nach \cite{ISO/IEC 9126} definieren. Diese Punkte werden von unserem Auftraggeber gefordert.
|
||||
\begin{itemize}
|
||||
\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 Datenbankinteraktion und der Darstellung der neuen Visualisierung, welche von uns selbst implementiert werden.
|
||||
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 einer \gls{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. Diese soll von allen gängigen Webbrowsern (Firefox, Chrome, Internet Explorer ab Version 7 und Safari) fehlerfrei angezeigt werden.
|
||||
Das Merkmal der Interoperabilität wird im zweiten Teil des Praktikums, bei der Visualisierung der gesammelten Daten, gewährleistet. Diese soll von allen gängigen Webbrowsern (Firefox, Chrome, Internet Explorer und Safari) fehlerfrei angezeigt werden.
|
||||
\end{itemize}
|
||||
Die Maßnahmen, die wir ergreifen, um die beschriebenen Qualitätsmerkmale zu erreichen, sind in Abschnitt \ref{Masnahme:Funktionalitaet} beschrieben.
|
||||
|
||||
@ -128,14 +130,34 @@ Die Ma
|
||||
\label{Ziel:Benutzbarkeit}
|
||||
Die Benutzbarkeit gliedern wir in die drei Qualitätsmerkmale \textit{Verständlichkeit}, \textit{Bedienbarkeit} und \textit{Attraktivität}, welche wir nach \cite{ISO/IEC 9126} definieren. Diese Punkte werden von unserem Auftraggeber im zweiten Teil des Praktikums gefordert. \\
|
||||
Der Hintergrund, warum diese Merkmale gewählt werden, ist der Folgende:\\
|
||||
Durch eine leicht verständliche, attraktive Visualisierung der gesammelten Daten und einer einfachen Bedienbarkeit der Benutzeroberfläche, wird der Bekanntheitsgrad von da-sense weiter steigen. Durch den höheren Bekanntheitsgrad erhofft sich unser Auftraggeber eine breite Verteilung der kommenden Android-App von da-sense, mit welcher die Nutzer eigene Daten sammeln können. Diese werden schließlich in die Datenbank transferiert und sind somit über die Webapplikation abrufbar. \\
|
||||
Durch eine leicht verständliche, attraktive Visualisierung der gesammelten Daten und einer einfachen Bedienbarkeit der Benutzeroberfläche, wird der Bekanntheitsgrad von da-sense weiter steigen. Durch den höheren Bekanntheitsgrad erhofft sich unser Auftraggeber eine breite Verteilung der kommenden Android-App von da-sense, mit welcher die Nutzer selbst Daten sammeln können. Diese werden schließlich in die Datenbank transferiert und sind somit über die Webapplikation abrufbar. \\
|
||||
Die Maßnahmen, die wir ergreifen, um die beschriebenen Qualitätsmerkmale zu erreichen, sind in Abschnitt \ref{Masnahme:Benutzbarkeit} beschrieben.
|
||||
|
||||
|
||||
\subsection{Codequalität}
|
||||
\subsection{Quellcode (TODO überarbeiten)} % TODO subsection überarbeiten
|
||||
\label{Ziel:Codequalitaet}
|
||||
>>Any fool can write code that a computer can understand. Good programmers write code that humans can understand.<< \cite{fowler}. \\
|
||||
Der Quellcode, der im Rahmen des Projektes erstellt wird, soll offen für Erweiterungen sein und wird von weiteren Gruppen genutzt. Daher muss darauf geachtet werden, dass sämtliche Codebausteine auch für Außenstehende lesbar und verständlich sind. Zudem ist davon auszugehen, dass das Projekt in Zukunft als Open Source Projekt veröffentlicht wird, so dass auch unifremde Entwickler Zugriff haben und von der bestehenden Codequalität profitieren werden.
|
||||
Der Quellcode, der im Rahmen des Projektes erstellt wird, ist offen für Erweiterungen und wird von weiteren Gruppen genutzt. Daher muss darauf geachtet werden, dass sämtliche Codebausteine auch für Außenstehende lesbar und verständlich sind. Zudem ist davon auszugehen, dass das Projekt in Zukunft als Open Source Projekt veröffentlicht wird, so dass auch unifremde Entwickler Zugriff haben und von der bestehenden Codequalität profitieren werden. \\
|
||||
Um dieses Ziel erreichen zu können, treffen wir die folgende Vereinbarungen:
|
||||
\begin{itemize}
|
||||
\item Codedokumentation: \\
|
||||
Jede von uns geschriebene Funktion besitzt einen Kommentarkopf der folgenden Form: \\
|
||||
/** \\
|
||||
* \textit{Description} \\
|
||||
* @param \textit{paramtype} \\
|
||||
* @return \textit{returntype} \\
|
||||
* @tested \textit{boolean} \\
|
||||
**/ \\
|
||||
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 Funktion und ihre Auswirkung.
|
||||
\item Struktur: \\
|
||||
Eine gute Codestruktur dient ...
|
||||
|
||||
\item Namenskonvention: \\
|
||||
Als Konvention nutzen wir CamelCase, welche in Java als Standard gilt und zu einer besseren Lesbarkeit von Bezeichnern beiträgt.
|
||||
\item Wiki: \\
|
||||
Zusätzlich zu den Kommentaren im Code wird ein Wiki gepflegt, das im \gls{Git} abrufbar ist und somit der besseren Verständlichkeit des Projekts durch andere Gruppen beiträgt.
|
||||
\end{itemize}
|
||||
|
||||
|
||||
|
||||
@ -144,41 +166,52 @@ Der Quellcode, der im Rahmen des Projektes erstellt wird, soll offen f
|
||||
|
||||
% % % % % % % % % % % % % % % %% MAßNAHMEN ZUM ERREICHEN DER QUALITÄTSZIELE % % % % % % % % % % % % % % % %% % % % % % % % % %
|
||||
\section{Maßnahmen zum Erreichen der Qualitätsziele}
|
||||
Im folgenden Abschnitt werden die Maßnahmen zum Erreichen der oben genannten Qualitätsziele und die von uns dafür verwendeten Werkzeuge genauer beschrieben.
|
||||
% Auch hier werden die Maßnahmen zur Sicherung von Funktionalität und Benutzbarkeit in den Vordergrund gestellt.
|
||||
|
||||
\subsection{Qualitätswerkzeuge}
|
||||
\label{Masnahme:Qualitaetswerkzeuge}
|
||||
\begin{itemize}
|
||||
\item FireBug: \\
|
||||
Dient der Fehlersuche, Bearbeitung und Monitoring des \gls{Webinterface}. FireBug ermöglicht uns die Ladezeiten einzelner Seitenelemente zu analysieren. Dies wird bei der neuen Visualisierung, deren Berechnung mittels HTML5 clientseitig ablaufen soll, von Bedeutung sein.
|
||||
\item Git: \\
|
||||
Als Versionsverwaltung dient \gls{Git}. Hierdurch ist ein einfacher Codeaustausch mit den übrigen Gruppen von da-sense möglich, wodurch jede Person stets über den aktuellen Code verfügt. Der Vorteil des \gls{Git} gegenüber einem \gls{SVN} ist für uns die Möglichkeit des lokalen commits, wodurch eine lokale Versionierung vorliegt. Somit kann jedes Gruppenmitglied seine Änderungen rückgängig machen.
|
||||
\item Netbeans:\\
|
||||
Als integrierte Entwicklungsumgebung (IDE) wird Netbeans verwendet, wodurch Syntaxfehler vermieden werden.
|
||||
\item PHPUnit:\\
|
||||
Testframework für PHP. Es beinhaltet eine Testumgebung für Datenbankinteraktionen, was für unser Projekt von Vorteil ist. Zudem arbeitet es mit XDebug zusammen und ermöglicht die Erstellung von CodeCoverage Analysen.
|
||||
\item soapUI:\\
|
||||
Freies Werkzeug, welches dem Testen des Webservices dient. Hierdurch ist es möglich manuelle Anfragen an den Webservice zu stellen und die Antworten auszuwerten. Zudem beinhaltet soapUI eine umfangreiche Testsuite.
|
||||
\item XDebug:\\
|
||||
Diagnose-Werkzeug (PHP-Debugger). Dient dem Auffinden von Fehlern und Code-Coverage Tests bei Ausführung des Programms.
|
||||
\end{itemize}
|
||||
|
||||
%\subsection{Qualitätswerkzeuge}
|
||||
%\label{Masnahme:Qualitaetswerkzeuge}
|
||||
%\begin{itemize}
|
||||
%\item FireBug: \\
|
||||
%Dient der Fehlersuche, Bearbeitung und Monitoring des \gls{Webinterface}. FireBug ermöglicht uns die Ladezeiten einzelner Seitenelemente zu analysieren. Dies wird bei der neuen Visualisierung, deren Berechnung mittels HTML5 clientseitig ablaufen soll, von Bedeutung sein.
|
||||
%\item Git: \\
|
||||
%Als Versionsverwaltung dient \gls{Git}. Hierdurch ist ein einfacher Codeaustausch mit den übrigen Gruppen von da-sense möglich, wodurch jede Person stets über den aktuellen Code verfügt. Der Vorteil des \gls{Git} gegenüber einem \gls{SVN} ist für uns die Möglichkeit des lokalen commits, wodurch eine lokale Versionierung vorliegt. Somit kann jedes Gruppenmitglied seine Änderungen rückgängig machen.
|
||||
%\item Netbeans:\\
|
||||
%Als integrierte Entwicklungsumgebung (IDE) wird Netbeans verwendet, wodurch Syntaxfehler vermieden werden.
|
||||
%\item PHPUnit:\\
|
||||
%Testframework für PHP. Es beinhaltet eine Testumgebung für Datenbankinteraktionen, was für unser Projekt von Vorteil ist. Zudem arbeitet es mit XDebug zusammen und ermöglicht die Erstellung von CodeCoverage Analysen.
|
||||
%\item soapUI:\\
|
||||
%Freies Werkzeug, welches dem Testen des Webservices dient. Hierdurch ist es möglich manuelle Anfragen an den Webservice zu stellen und die Antworten auszuwerten. Zudem beinhaltet soapUI eine umfangreiche Testsuite.
|
||||
%\item XDebug:\\
|
||||
%Diagnose-Werkzeug (PHP-Debugger). Dient dem Auffinden von Fehlern und Code-Coverage Tests bei Ausführung des Programms.
|
||||
%\end{itemize}
|
||||
|
||||
|
||||
\subsection{Funktionalität}
|
||||
\label{Masnahme:Funktionalitaet} % ß wird von LaTex nicht akzeptiert als Label
|
||||
\textbf{Dieser Abschnitt ist noch nicht fertig!!} \\
|
||||
Nach Rücksprache mit unserem Auftraggeber wird in diesem Dokument der Testablauf der folgenden zwei Use-Cases ausführlicher beschrieben:
|
||||
|
||||
Die Maßnahmen zur Sicherung der einzelnen Funktionalitätmerkmale lassen sich wie folgt gliedern:
|
||||
\begin{itemize}
|
||||
\item Parsen des neuen \gls{JSON}-Formats
|
||||
\item Visualisierte Abfrage der Daten
|
||||
\item Richtigkeit: \\
|
||||
|
||||
|
||||
\item Sicherheit: \\
|
||||
Um resistent gegenüber \glspl{SQL-Injection} zu sein, nutzen wir die freie Bibliothek \gls{Propel}. Diese nutzt Preparestatements, wodurch SQL-Code und Daten getrennt werden. Der Eintrag der Daten über die \gls{API} erfolgt mittels HTTP-GET Parameter. Um zu verhindern, dass ein unberechtigter Nutzer Daten einfügen kann, muss sich dieser vor der Datenübermittlung authentifizieren. Die Implementierung der Authentifizierung ist jedoch nicht Bestandteil unserer Aufgaben.
|
||||
|
||||
\item Interoperabilität: \\
|
||||
Um die Interoperabilität der einzelnen Webbrowser sicherzustellen, bekommt jedes Teammitglied einen Browser zugewiesen, welchen er testet. Hierbei haben wir uns auf folgende Aufteilung geeinigt: \newline
|
||||
|
||||
\begin{tabular}{| l | l |}
|
||||
\hline \textbf{Webbrowser} & \textbf{Verantwortliche Person} \\
|
||||
\hline Firefox & Batu \\
|
||||
\hline Chrome & Murati \\
|
||||
\hline Internet Explorer & Gebhardt \\
|
||||
\hline Safari & Scholz \\
|
||||
\hline
|
||||
\end{tabular} \newline
|
||||
|
||||
Zudem erhalten wir durch die Auswertung des Fragenbogens, der im Rahmen der Benutzerstudie an Probanten ausgegeben wird, eine Rückmeldung über eventuell auftrettende Fehler der Visualisierung.
|
||||
% Benutzerstudie, manueles Testen
|
||||
\end{itemize}
|
||||
|
||||
\subsubsection{Use-Case: Parsen des neuen \gls{JSON}-Formats}
|
||||
|
||||
|
||||
\subsubsection{Use-Case: Visualisierte Abfrage der Daten}
|
||||
|
||||
|
||||
\subsection{Benutzbarkeit}
|
||||
@ -247,28 +280,7 @@ Der angepasste Datenschutzhinweis findet sich im Impressum durch folgende Vorlag
|
||||
>> Diese Website benutzt Google Analytics, einen Webanalysedienst der Google Inc. (\glqq Google\grqq). Google Analytics verwendet sog. \glqq Cookies\grqq, Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website durch Sie ermöglichen. Die durch den Cookie erzeugten Informationen über Ihre Benutzung dieser Website werden in der Regel an einen Server von Google in den USA übertragen und dort gespeichert. Im Falle der Aktivierung der IP-Anonymisierung auf dieser Webseite, wird Ihre IP-Adresse von Google jedoch innerhalb von Mitgliedstaaten der Europäischen Union oder in anderen Vertragsstaaten des Abkommens über den Europäischen Wirtschaftsraum zuvor gekürzt. Nur in Ausnahmefällen wird die volle IP-Adresse an einen Server von Google in den USA übertragen und dort gekürzt. Im Auftrag des Betreibers dieser Website wird Google diese Informationen benutzen, um Ihre Nutzung der Website auszuwerten, um Reports über die Websiteaktivitäten zusammenzustellen und um weitere mit der Websitenutzung und der Internetnutzung verbundene Dienstleistungen gegenüber dem Websitebetreiber zu erbringen. Die im Rahmen von Google Analytics von Ihrem Browser übermittelte IP-Adresse wird nicht mit anderen Daten von Google zusammengeführt. Sie können die Speicherung der Cookies durch eine entsprechende Einstellung Ihrer Browser-Software verhindern; wir weisen Sie jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Website vollumfänglich werden nutzen können. Sie können darüber hinaus die Erfassung der durch das Cookie erzeugten und auf Ihre Nutzung der Website bezogenen Daten (inkl. Ihrer IP-Adresse) an Google sowie die Verarbeitung dieser Daten durch Google verhindern, indem sie das unter dem folgenden Link (\href{http://tools.google.com/dlpage/gaoptout?hl=de}{http://tools.google.com/dlpage/gaoptout?hl=de}) verfügbare Browser-Plugin herunterladen und installieren. Nähere Informationen hierzu finden Sie unter \href{http://tools.google.com/dlpage/gaoptout?hl=de}{http://tools.google.com/dlpage/gaoptout?hl=de} bzw. unter
|
||||
\href{http://www.google.com/intl/de/analytics/privacyoverview.html}{http://www.google.com/intl/de/analytics/privacyoverview.html} (allgemeine Informationen zu Google Analytics und Datenschutz). Wir weisen Sie darauf hin, dass auf dieser Webseite Google Analytics um den Code \glqq gat.\_anonymizeIp();\grqq\ erweitert wurde, um eine anonymisierte Erfassung von IP-Adressen (sog. IP-Masking) zu gewährleisten. << \cite{DBA}
|
||||
\subsection{Codequalität}
|
||||
Die folgenden Anforderungen und Vereinbarungen sollen dem Ziel eines gut strukturierten und gut lesbaren Codes beitragen:
|
||||
|
||||
\begin{itemize}
|
||||
\item Kommentare: \\
|
||||
Jede von uns geschriebene, nicht triviale Funktion muss einen Kommentarkopf der folgenden Form besitzen:\\
|
||||
/** \\
|
||||
* \textit{Description} \\
|
||||
* @param \textit{paramtype} \\
|
||||
* @return \textit{returntype} \\
|
||||
* @tested \textit{boolean} \\
|
||||
**/ \\
|
||||
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.
|
||||
\item Struktur: \\
|
||||
Der Code soll folgenden Standards gerecht werden: \\
|
||||
\begin{itemize}
|
||||
\item \gls{XHTML} in Version 1.1, standardisiert vom W3C 2010, \href{http://www.w3.org/TR/xhtml11/}{http://www.w3.org/TR/xhtml11/}
|
||||
\end{itemize}
|
||||
\item Namenskonventionen: \\
|
||||
Als Konvention nutzen wir CamelCase, welche in Java als Standard gilt und zu einer besseren Lesbarkeit von Bezeichnern beiträgt.
|
||||
\item Wiki: \\
|
||||
Zusätzlich zu den Kommentaren im Code wird ein Wiki gepflegt, das im \gls{Git} abrufbar ist und somit der besseren Verständlichkeit des Projekts durch andere Gruppen beiträgt.
|
||||
\end{itemize}
|
||||
...
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user