QS-Dokument Abgabeversion

This commit is contained in:
M.Scholz 2012-01-23 13:20:55 +01:00
parent df8d01cecc
commit 3c73800d05
4 changed files with 94 additions and 96 deletions

BIN
.DS_Store vendored

Binary file not shown.

BIN
ss2010/.DS_Store vendored Normal file

Binary file not shown.

View File

@ -22,7 +22,7 @@
\newglossaryentry{API}{name={API},description={Application Programming Interface: Programmteil, durch den andere Programme die Funktionalität des eigentlichen Programmes nutzen können}}
\newglossaryentry{User-Front-End}{name={User-Front-End},description={Für den Benutzer sichtbarer Teil der Anwendung}}
\newglossaryentry{CO}{name={CO},description={Kohlenstoffmonoxid (chemische Verbindung)}}
\newglossaryentry{CO2}{name={CO2},description={Kohlenstoffdioxid (chemische Verbindung)}}
\newglossaryentry{CO2}{name={CO\textsubscript{2}},description={Kohlenstoffdioxid (chemische Verbindung)}}
\newglossaryentry{dB}{name={dB},description={Dezibel: Logarithmische Einheit von Akustikpegeln}}
\newglossaryentry{JSON}{name={JSON},description={JavaScript Object Notation: universelles Datenaustauschformat}}
\newglossaryentry{Parser}{name={Parser},description={Übersetzung eines (Programm-)Codes in eine neue Struktur/Format}}
@ -48,6 +48,8 @@
\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}}
% Glossareintrag für ORM
\newglossaryentry{ORM}{name={ORM-Framwork}, description={Erlaubt eine Abbildung der Objekte auf eine relationale Datenbank. Die Objekte stammen von einer objektorientierten Programmiersprache}}
\begin{document}
@ -132,20 +134,17 @@ Das Merkmal der Sicherheit wird beim Datenaustausch zwischen Smartphones bzw. \g
\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 jeweilige aktuelle Version. Dies ist notwendig, da die neue Visualisierung auf \gls{HTML5} basiert.
\end{itemize}
Die Maßnahmen, die wir ergreifen, um die beschriebenen Qualitätsmerkmale zu erreichen, sind in Abschnitt \ref{Masnahme:Funktionalitaet} aufgeführt.
\subsection{Benutzbarkeit}
\label{Ziel:Benutzbarkeit}
Die Benutzbarkeit unterteilen 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. \\ \\
Eine intuitive und leicht bedienbare Benutzeroberfläche steigert die Aufmerksamkeit des Besuchers und verhilft dem Projekt zu einem höheren Bekanntheitsgrad. Hierbei kommt eine moderne und attraktive Visualisierung der Daten zum Einsatz, die die Informationserfassung unterstützt. Durch das Bekanntwerden des Projekts erhofft sich unser Auftraggeber eine breite Verteilung der kommenden da-sense Android-App, mit der Benutzer Daten sammeln und in die Datenbank transferieren können. Die Daten sind anschließend über die Webapplikation abrufbar.\\ \\
Die Maßnahmen, die wir ergreifen, um die beschriebenen Qualitätsmerkmale zu erreichen, sind in Abschnitt \ref{Masnahme:Benutzbarkeit} aufgeführt.
Eine intuitive und leicht bedienbare Benutzeroberfläche steigert die Aufmerksamkeit des Besuchers und verhilft dem Projekt zu einem höheren Bekanntheitsgrad. Hierbei kommt eine moderne und attraktive Visualisierung der Daten zum Einsatz, die die Informationserfassung unterstützt. Durch das Bekanntwerden des Projekts erhofft sich unser Auftraggeber eine breite Verteilung der kommenden da-sense Android-App, mit der Benutzer Daten sammeln und in die Datenbank transferieren können. Die Daten sind anschließend über die Webapplikation abrufbar.
\subsection{Erweiterbarkeit}
\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 des Projektes 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. Geplant ist die Veröffentlichung des Quellcodes, so dass auch unifremde Entwickler Zugriff haben und von der bestehenden Codequalität profitieren. Es werden die Open Standards nach \cite{opensource.org} angewandt. Diese schließen den Einsatz von kommerziellen Tools im Projekt aus.\\\\
Die Maßnahmen, die wir ergreifen, um das beschriebene Qualitätsziel zu erreichen, sind in Abschnitt \ref{Masnahme:Erweiterbarkeit} aufgeführt.
Der Quellcode des Projektes 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. Geplant ist die Veröffentlichung des Quellcodes, so dass auch unifremde Entwickler Zugriff haben und von der bestehenden Codequalität profitieren. Es werden die Open Standards nach \cite{opensource.org} angewandt. Diese schließen den Einsatz von kommerziellen Tools im Projekt aus.
@ -182,10 +181,10 @@ Zur Sicherung der einzelnen Funktionalit
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 \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.
Das von uns verwendete \gls{ORM} \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.
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.
\end{itemize}
@ -194,7 +193,7 @@ Um die Interoperabilit
\label{Masnahme:Benutzbarkeit}
% TODO: -> Die Benutzerstudie kann das Qualitätsmerkmal nicht sicherstellen. Sie kann nur Grundlage für anschließende Maßnahmen sein!
Die Benutzerstudie wird in der ersten Märzwoche 2012 (Kalenderwoche 9) durchgeführt. Somit bleibt uns genug Zeit die Ergebnisse auszuwerten und Schwachstellen in der Benutzeroberfläche zu beseitigen.
Zur Benutzerstudie werden freiwilligen Probanden Fragebögen ausgeteilt, welche der Bewertung der einzelnen Kriterien (aus Abschnitt \ref{Ziel:Benutzbarkeit}) der Benutzbarkeit des \glspl{Webinterface} dienen. Durch die Benutzerstudie können somit Defizite des \glspl{Webinterface} aufgespürt und beseitigt werden. \\ \\
Zur Benutzerstudie werden freiwilligen Probanden Fragebögen ausgeteilt, welche der Bewertung der einzelnen Kriterien (Abschnitt \ref{Ziel:Benutzbarkeit}) der Benutzbarkeit des \glspl{Webinterface} dienen. Durch die Benutzerstudie können somit Defizite des \glspl{Webinterface} aufgespürt und beseitigt werden. \\ \\
Das Ziel der Benutzerstudie ist es eine Rückmeldung zu erhalten, ob und wie sich der Benutzer auf der Website zurechtfindet. Es gilt herauszufinden, ob der User in einer für ihn angemessenen Zeit die gewünschten Informationen abrufen kann. Da das fertige Projekt eine breite Masse an Personen erreichen wird, ist es wichtig, dass die Benutzerstudie möglichst viele verschiedene Personengruppen umfasst. Das heißt, es werden Personen unterschiedlichen Alters und mit unterschiedlicher Interneterfahrung ausgewählt. Zudem können durch die Studie unvorhersehbare Probleme entdeckt werden, da ein Benutzer auf eine andere Art und Weise mit der Website interagiert als ein Entwickler. \newline \\
\textbf{Was wir wissen wollen:}
\begin{itemize}
@ -206,22 +205,23 @@ Das Ziel der Benutzerstudie ist es eine R
Die Benutzerstudie setzt sich aus den zwei Teilen \textit{Beobachtung} und \textit{Fragebogen} zusammen. Somit erhalten wir zwei unterschiedliche Informationsquellen, welche in Korrelation zueinander stehen.
\subsubsection{Beobachtung}
Die Beobachtung des Probanden während der Bedienung der Website stellt die einfachste Methode dar, um auftretende Probleme frühzeitig zu erkennen. Hierbei nimmt der Entwickler die Position des Beobachters ein und führt Protokoll. Dem Probanden stehen fünf Minuten zur Verfügung, um sich mit der Benutzeroberfläche vertraut zu machen. Anschließend werden ihm Aufgaben gestellt, die er mit Hilfe der Website lösen muss. Während der Beobachtung achtet der Entwickler auf folgende Punkte:
Die Beobachtung des Probanden während der Bedienung der Website stellt die einfachste Methode dar, um auftretende Probleme frühzeitig zu erkennen. Hierbei nimmt der Entwickler die Position des Beobachters ein und führt Protokoll. Dem Probanden stehen fünf Minuten zur Verfügung, um sich mit der Benutzeroberfläche vertraut zu machen. Anschließend werden ihm Aufgaben (siehe Anhang) gestellt, die er mit Hilfe der Website lösen muss. Während der Beobachtung achtet der Entwickler auf folgende Punkte:
\begin{itemize}
\item Unerwartete Fehler
\item Probleme mit der Bedienung
\item Vergangene Zeit bis zum Erhalt der gewünschten Informationen
\end{itemize}
\subsubsection{Fragebogen}
\label{fragebogen}
Mit Hilfe des Fragebogens erhalten wir Informationen von verschiedenen Personengruppen aus Sicht eines Nutzers. Die Fragen sind in die folgenden drei Kategorien aufteilbar:
Mit Hilfe des Fragebogens (siehe Anhang) erhalten wir Informationen von verschiedenen Personengruppen. Der Fragebogen lässt sich in die folgenden drei Kategorien unterteilen:
\begin{itemize}
\item Informationen über den Nutzer
\item Bewertung der aktuellen Website
\item Verbesserungsvorschläge
\end{itemize}
Durch Punkt eins können wir die Probanden in verschiedene Personengruppen einteilen. Anschließend werden die Ergebnisse aus Punkt zwei den einzelnen Personengruppen zugeteilt. Unterscheiden sich die Ergebnisse der einzelnen Gruppen stark, so muss der Auftraggeber entscheiden, für welche Zielgruppe die Benutzeroberfläche optimiert werden soll. Punkt drei erlaubt die Anpassung der Steuerungsoptionen der Website. \\
Durch Punkt eins können wir die Probanden in verschiedene Personengruppen einteilen. Die Einteilung der Personen in Gruppen erfolgt durch die Merkmale Alter und Interneterfahrung. Anschließend werden die gesammelten Ergebnisse aus Punkt zwei den einzelnen Personengruppen zugeteilt. Unterscheiden sich die Ergebnisse der einzelnen Gruppen stark, so muss der Auftraggeber entscheiden, für welche Zielgruppe die Benutzeroberfläche optimiert werden soll. Punkt drei erlaubt die Anpassung der Steuerungsoptionen der Website. \\
\subsection{Erweiterbarkeit}
@ -243,98 +243,96 @@ Wir trennen im Quellcode strikt HTML-, \gls{JavaScript}- und \gls{PHP}-Code. Die
\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.
\end{itemize}
Die aufgeführten Punkte werden von jedem Teammitglied eingehalten.
Die aufgeführten Punkte werden von jedem Teammitglied eingehalten. Um dies sicherzustellen findet alle zwei Wochen ein teaminterner Codereview statt. Hierbei wird der Code aus den vergangenen zwei Wochen in der Gruppe besprochen und die Einhaltung der geforderten Konventionen geprüft. Wurden die Konventionen nicht eingehalten, so werden sie nach dem Treffen korrigiert. Somit ist jedes Teammitglied über den aktuellen Stand des Codes informiert und kennt auch die Codeteile der übrigen Teammitglieder.
% % % % % % % % % % % % % % % %% % % % % % % % % % % ANHANG % % % % % % % % % % % % % % % %% % % % % % % % % % % % % % % %
\newpage
\section{Anhang (Abgabe am 31.03.2012)}
\section{Anhang (vollständige Abgabe am 31.03.2012)}
\subsection{Benutzerstudie}
\label{Anhang:Benutzerstudie}
\subsubsection{Aufgaben}
\subsubsection{Fragebogen}
Der folgende Fragebogen kann sich während des gesamten Projekts ändern, da wir uns für den Prozess der \glspl{Agile Softwareentwicklung} entschieden haben. Es können neue Fragen hinzukommen oder aber bereits vorhandene geändert bzw. herausgenommen werden. Die Entscheidung über die zu stellenden Fragen obliegt dem gesamten Team. Hierdurch erhoffen wir uns, dass wir möglichst viele Bereiche des Projekts abfragen können.
\begin{enumerate}
\item Wie alt sind Sie?
\begin{tabular}{| p{1.5cm} |}
\hline \\ \\\hline
\end{tabular}
\item Wie viel Zeit verbringen Sie pro Tag im Internet?
\begin{itemize}[label={\Square}]
\item weniger als 1 Stunde
\item zwischen 3 und 5 Stunden
\item mehr als 5 Stunden
\end{itemize}
\item Welchen Webbrowser nutzen Sie?
\begin{itemize}[label={\Square}]
\item Firefox
\item Chrome
\item Internet Explorer (Version 7 oder höher)
\item Safari
\item nicht aufgeführt
\end{itemize}
\item Wie finden Sie die Visualisierung der Website? \\
\small{(1 = nicht ansprechend; 10 = sehr ansprechend)}
\begin{tabular}{l c c c c c c c c c c r}
& \tiny{1} & \tiny{2} & \tiny{3} & \tiny{4} & \tiny{5} & \tiny{6} & \tiny{7} & \tiny{8} & \tiny{9} & \tiny{10} &\\
nicht ansprechend & \Square & \Square & \Square & \Square & \Square & \Square & \Square & \Square & \Square & \Square & sehr ansprechend
\end{tabular}
\item Wie beurteilen Sie die Übersichtlichkeit der Website? \\
\small{(1 = nicht übersichtlich; 10 = sehr übersichtlich)}
\begin{tabular}{l c c c c c c c c c c r}
& \tiny{1} & \tiny{2} & \tiny{3} & \tiny{4} & \tiny{5} & \tiny{6} & \tiny{7} & \tiny{8} & \tiny{9} & \tiny{10} &\\
nicht übersichtlich & \Square & \Square & \Square & \Square & \Square & \Square & \Square & \Square & \Square & \Square & sehr übersichtlich
\end{tabular}
\item Hatten Sie Bedienprobleme beim Besuch der Website?
\begin{itemize}[label={\Square}]
\item Nein
\item Ja, folgende:
\end{itemize}
\begin{tabular}{| p{15cm} |}
\hline \\ \vspace{2cm} \\ \hline
\end{tabular}
\item Haben Sie Verbesserungsvorschläge?
\begin{itemize}[label={\Square}]
\item Nein
\item Ja, folgende:
\end{itemize}
\begin{tabular}{| p{15cm} |}
\hline \\ \vspace{2cm} \\ \hline
\end{tabular}
\item Werden Sie die Website nochmals besuchen?
\begin{itemize}[label={\Square}]
\item Nein
\item Ja
\end{itemize}
\end{enumerate}
%\subsection{Testdokumentation}
%Auf den folgenden Seiten findet sich die Dokumentation über die von uns durchgeführten Tests im Laufe des Praktikums.
%\subsubsection{Funktionalität}
%
%
%\subsubsection{Benutzerstudie}
%Wie in Abschnitt \ref{subsec:aktionBenutzbarkeit} beschrieben, wird die Benutzerstudie erst am Ende des Projekts durchgeführt, da das Webinterface zum jetzigen Zeitpunkt noch nicht fertiggestellt ist. Die Testdokumentation erfolgt somit im Anschluss und wird sich in der finalen Version dieses Dokuments (Abgabedatum 31.03.2012) befinden. \\
%
%\textit{Der folgende Fragebogen kann sich während des gesamten Projekts ändern, da wir uns für den Prozess der \glspl{Agile Softwareentwicklung} entschieden haben. Es können neue Fragen hinzukommen oder aber bereits vorhandene geändert bzw. herausgenommen werden. Die Entscheidung über die zu stellenden Fragen obliegt dem gesamten Team. Hierdurch erhoffen wir uns, dass wir möglichst viele Bereiche des Projekts abfragen können.}
%
%\begin{enumerate}
%\item Wie alt sind Sie?
%
%\begin{tabular}{| p{1.5cm} |}
%\hline \\ \\\hline
%\end{tabular}
%
%\item Wie viel Zeit verbringen Sie pro Tag im Internet?
% \begin{itemize}[label={\Square}]
% \item weniger als 1 Stunde
% \item zwischen 3 und 5 Stunden
% \item mehr als 5 Stunden
% \end{itemize}
%
%\item Welchen Webbrowser nutzen Sie?
% \begin{itemize}[label={\Square}]
% \item Firefox
% \item Chrome
% \item Internet Explorer (Version 7 oder höher)
% \item Safari
% \item nicht aufgeführt
% \end{itemize}
%
%\item Wie finden Sie die Visualisierung der Website? \\
% \small{(1 = nicht ansprechend; 10 = sehr ansprechend)}
%
% \begin{tabular}{l c c c c c c c c c c r}
% & \tiny{1} & \tiny{2} & \tiny{3} & \tiny{4} & \tiny{5} & \tiny{6} & \tiny{7} & \tiny{8} & \tiny{9} & \tiny{10} &\\
% nicht ansprechend & \Square & \Square & \Square & \Square & \Square & \Square & \Square & \Square & \Square & \Square & sehr ansprechend
% \end{tabular}
%
%
%\item Wie beurteilen Sie die Übersichtlichkeit der Website? \\
% \small{(1 = nicht übersichtlich; 10 = sehr übersichtlich)}
%
% \begin{tabular}{l c c c c c c c c c c r}
% & \tiny{1} & \tiny{2} & \tiny{3} & \tiny{4} & \tiny{5} & \tiny{6} & \tiny{7} & \tiny{8} & \tiny{9} & \tiny{10} &\\
% nicht übersichtlich & \Square & \Square & \Square & \Square & \Square & \Square & \Square & \Square & \Square & \Square & sehr übersichtlich
% \end{tabular}
%
%
%\item Hatten Sie Bedienprobleme beim Besuch der Website?
% \begin{itemize}[label={\Square}]
% \item Nein
% \item Ja, folgende:
% \end{itemize}
% \begin{tabular}{| p{15cm} |}
% \hline \\ \vspace{2cm} \\ \hline
% \end{tabular}
%
%
%\item Haben Sie Verbesserungsvorschläge?
% \begin{itemize}[label={\Square}]
% \item Nein
% \item Ja, folgende:
% \end{itemize}
% \begin{tabular}{| p{15cm} |}
% \hline \\ \vspace{2cm} \\ \hline
% \end{tabular}
%
%\item Werden Sie die Website nochmals besuchen?
% \begin{itemize}[label={\Square}]
% \item Nein
% \item Ja
% \end{itemize}
%
%\end{enumerate}
%
%
%
%
%
%\subsubsection{Codequalität}