Parent Directory
|
Revision Log
srs foutje
\documentclass[a4paper,10pt]{article}
\usepackage[left=3.5cm,top=2cm,right=2.5cm,nohead,nofoot]{geometry}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{url}
\usepackage[english]{babel}
\title{Software Requirements Specification\\
\textit{Revision 1.1}}
\author{Software Engineering Group 4 2006 \\ \\ Edward van Rijn and Kristof Vermeir \\ evrijn@vub.ac.be \\ kvermeir@vub.ac.be}
\begin{document}
\maketitle
\begin{center}
%Last update: $\today$ \textit{ }
\end{center}
\noindent
\begin{abstract}
\noindent
This document contains the Software Requirements Specifications for a
software package with the working title 'Eventure' Portal. This project is part
of the course on software engineering at the \textit{Vrije Universiteit Brussel}, and is made by group 4.
The project consists of a dating site based upon an agenda with events.
It follows the IEEE Standard 830-1998.
\end{abstract}
\newpage
\begin{table}[h!]
\begin{tabular}{ | p{1cm} | p{2.5cm} | p{3.5cm} | p{7cm} | }
\hline
\textbf{rev.} & \textbf{date} & \textbf{author} & \textbf{comments}\\
\hline
\hline
0.1 & 2006/03/16 & Edward van Rijn & Revision of old SRS\\
0.2 & 2006/03/17 & Eline Philips & Conversion to .tex\\
0.3 & 2006/03/21 & Kristof Vermeir & revision of draft\\
0.4 & 2006/03/24 & Edward van Rijn & final revision\\
1.0 & 2006/03/28 & Kristof Vermeir &Re- revision \\
1.1 & 2006/03/28 & Kristof Vermeir & Minor changes \\
\hline
\end{tabular}
\caption{Change history}
\label{history}
\end{table}
\newpage
\tableofcontents
\newpage
\section{Introduction}
\subsection{Purpose}
The purpose of this document is to present an overall description of the functionality of the 'Eventure' Portal and
is meant for the customer as well as the developers of the software.
\subsection{Scope}
The product consists of the 'Eventure' Portal which will be displayed in a web browser.
Users are able to create an account with a matching profile. They can add events, check out the agenda, search for events matching their profile, subscribe to and post messages at existing events, receive their personal RSS feed, send messages to other users and keep a friends list.
Organizers can add their events, moderators can keep things clean by modifying or deleting events and
administrators guide everything in the right direction by maintaining the system.
\subsection{Definitions, acronyms and abbreviations}
\begin{tabular}{ p{3cm} p{8cm} }
Account & An entry in the user database of the system.
\end{tabular}\\
\medskip
\begin{tabular}{ p{3cm} p{8cm} }
Agenda & A chronological list of events linked to dates.
\end{tabular}\\
\medskip
\begin{tabular}{ p{3cm} p{8cm} }
Apache & Apache is a free software/open source HTTP web server. The system will run on an apache server.
\end{tabular}\\
\medskip
\begin{tabular}{ p{3cm} p{8cm} }
Event & An entry in the event database of the system. An event is linked to an entry in the agenda. It consists of a event profile and event identification.
\end{tabular}\\
\medskip
\begin{tabular}{ p{3cm} p{8cm} }
Event Organisers & A type of user that has an 'event organiser account' on the system.
\end{tabular}\\
\medskip
\begin{tabular}{ p{3cm} p{8cm} }
Member & A subscribed user on-line or off-line.
\end{tabular}\\ \medskip
\medskip
\begin{tabular}{ p{3cm} p{8cm} }
MySQL & MySQL is a SQL Database Management System available as free software under the GNU General Public License.
\end{tabular}\\ \medskip
\begin{tabular}{ p{3cm} p{8cm} }
Portal & This means the totality of the website and his functionality as the user can experience it.
\end{tabular}\\ \medskip
\begin{tabular}{ p{3cm} p{8cm} }
Profile & An account consists of a user profile and user identification.
\end{tabular}\\ \medskip
\begin{tabular}{ p{3cm} p{8cm} }
SRS & Software Requirements Specification .
\end{tabular}\\ \medskip
\begin{tabular}{ p{3cm} p{8cm} }
Subscribed User & A user that has a 'user account' in the system and has logged on.
\end{tabular}\\ \medskip
\begin{tabular}{ p{3cm} p{8cm} }
System & The 'Eventure' Portal: The whole of the functionalities implemented in this project.
\end{tabular}\\ \medskip
\begin{tabular}{ p{3cm} p{8cm} }
Unsubscribed User & A visitor without an account.
\end{tabular}\\ \medskip
\begin{tabular}{ p{3cm} p{8cm} }
User & Any person using the 'Eventure' Portal in any way.
\end{tabular}\\ \medskip
\begin{tabular}{ p{3cm} p{8cm} }
Visitor & A person visiting the website that doesn't have an account in the system or is not logged on.
\end{tabular}\\ \medskip
\begin{tabular}{ p{3cm} p{8cm} }
VUB & \textit{Vrije Universiteit Brussel}.
\end{tabular}\\ \medskip
\begin{tabular}{ p{3cm} p{8cm} }
Wilma & The multi-functional Linux server for the students of the VUB Faculty of Sciences on which the system will be first installed and tested.
\end{tabular}\\
\subsection{References}
For the referenced documents, see Appendix \ref{ref}.
\subsection{Overview}
Section \ref{overall_description} describes the overall functionality of the project,
by specifying the informal and technical requirements.
Section \ref{specific_req} will give a detailed overview of the functional and non-functional requirements of the project.\\
\newpage
\section{Overall description}
\label{overall_description}
\subsection{Product perspective}
The project will make use of a database and a web server that can be accessed with any web browser. It functions as an independent system and will be available at all times.
\subsubsection{Interfaces}
\begin{itemize}
\item The user only needs a web browser; no special hardware is required.
\item The communication between the users and the software will be using a normal HTTP connection.
\item The output will be compatible with the W3C XHTML 1.0 standard.
\end{itemize}
\subsubsection{Memory constraints}
There is no specific limit on the usage of memory.
\subsection{Product functions}
This section will describe in general terms the functionality of the system. The
functionality is described from the viewpoint of the five different users. \\
\begin{enumerate}
\item \textbf{Visitors} can :
\begin{itemize}
\item visit the public parts of the website,
\item open an account, by filling in a form.
\end{itemize}
\bigskip
\item \textbf{Members} can :
\begin{itemize}
\item visit the public parts and the member sections of the website,
\item access their own account, and change the personal information on it,
\item search for other users using specific terms,
\item send a message to other users,
\item read messages from other users,
\item add events to a agenda,
\item search for events matching the member's profile,
\item change events that this user has added,
\item write previews of an event on the agenda,
\item write reviews of an event on the agenda,
\item give a comment on others users preview/review,
\item offering a ride to the event or tickets (to buy) to the event,
\item asking for other users to join him/her, to offer him/her a ride or tickets (to buy),
\item able to search for events,
\item get a notification by the system of future events that matches the users profile,
\item let other users (the Community of users or specific users) know that he will be attending the event.
\end{itemize}
\bigskip
\item \textbf{Event Organisers} can:
\begin{itemize}
\item visit the public parts and the event editing sections of the website,
\item access their account, and change the information on it,
\item add events to an agenda on a web page,
\item change events of this organiser on the agenda,
\item add a series of events by sending a well-formed XML file to the website.
\end{itemize}
\bigskip
\item \textbf{Moderators} can:
\begin{itemize}
\item can add/edit/delete event entries of all users,
\item can add/edit/delete event previews/reviews of all users,
\item send notifications to users.
\end{itemize}
\bigskip
\item \textbf{Administrators} can:
\begin{itemize}
\item install the system
\item manage the system and content configurations
\end{itemize}
\end{enumerate}
\subsection{User Characteristics}
The project will use of a database and a web server that can be accessed
with any web browser. There are five different types of users involved in the system: \\
\\
\textbf{Visitor:} All people visiting the web page, without having an account on the system.\\
\\
\textbf{Subscribed Users or Members:} A member has an account on the system, he can enjoy all the functionalities of the ``Eventure'' Portal.\\
\\
\textbf{Event organisers:} Event organisers are either people or institutions (commercial or not) that organise (cultural) events. They have a special paying status, that give their events more visibility on the agenda. \\
\\
\textbf{Moderators:} Moderators are able to modify and delete content from the website and the agenda and remove users.\\
\\
\textbf{Administrators:} Administrators carry the responsibility of maintaining the
system and other administrative tasks.
\subsection{Constraints}
\begin{itemize}
\item Only free software can be used for building the application.
\item The main programming language will be Python \cite{python}.
\item All code will be documented using Epydoc \cite{epydoc}.
\item The application must run on Wilma.
\item SVN will be used for configuration management.
\item \LaTeX \cite{tex} will be used for all documents related to the product.
\item All code documentation and documents will be written in English.
\item The code should follow all coding conventions specified in the Coding Conventions document \cite{CC}, see \ref{ref} references .
\end{itemize}
\subsection{Assumptions and dependencies}
\begin{itemize}
\item The operating system on which the software will run is Linux.
\item MySQL 4.0 or higher must be installed
\item Apache 1.2 or higher must be installed
\end{itemize}
\subsection{Apportioning of requirements}
Features that will be included in the second iteration will be added in following versions of this document. The requirements of the first iteration do not require any apportioning. \\
%\begin{itemize}
%\item Friend list. Users can add other users to their friend list.
%\item Dynamic profile. The users profile will be updated (tuned) according to his activities on the site.
%\item Search archive. All events older than a given amount of time will be put in an archive.
%\item Statistics. Statistics will be kept of all the actions performed on the site by the users.
%\item XML events. Event organizers will be given the option of sending in an XML file containing the event's information.
%\end{itemize}
\newpage
\section{Specific requirements}
\label{specific_req}
\subsection{External interface requirements}
\begin{table}[!h]
\begin{tabular}{ p{3cm} p{10cm} }
\textbf{name} & web server\\
\textbf{description} & Apache will be used as web server:
\begin{itemize}
\item the user inputs data via the web server using HTML forms
\item the web server executes the CGI and the CGI retrieves the post data if available
\item the web server receives information back from the CGI
\item the web server displays a HTML page as result to the end-user
\end{itemize}\\
\end{tabular}
\end{table}
\begin{table}[!h]
\begin{tabular}{ p{3cm} p{10cm} }
\textbf{name} & CGI application \\
\textbf{description} & The actual program that will perform the operations, written in python.
All data will be stored in a database. \\
\end{tabular}
\end{table}
\begin{table}[!h]
\begin{tabular}{ p{3cm} p{10cm} }
\textbf{name} & MySQL database \\
\textbf{description} & An open source SQL database to store all data which communicates with the application. \\
\end{tabular}
\end{table}
\subsubsection {User Interfaces and Web Interface}
The web interface will have following parts:\\
\begin{enumerate}
\item Homepage - index.html. The start page of the site. Links to all major public parts of the website
\item Login Pages. A part of the login form their are links to
\begin{enumerate}
\item Subscribe: Open account page
\item Wrong User name/password
\item Lost Password
\item Change Password
\item Unsubscribe
\end{enumerate}
\item User Account pages. All pages dealing with accounts.
\begin{enumerate}
\item View messages
\item Send messages
\item See proposed events (RSS)
\item Change account
\begin{enumerate}
\item Change ID
\item Change Profile
\end{enumerate}
\item maintain friends list (second iteration)
\end{enumerate}
\item User Search Pages
\begin{enumerate}
\item Search form
\item Results
\item View other user
\begin{enumerate}
\item invite/offer user
\item ask for friendship
\end{enumerate}
\end{enumerate}
\item Agenda
\begin{enumerate}
\item View agenda
\begin{enumerate}
\item Weekview
\item Dayview
\end{enumerate}
\item Event view
\begin{enumerate}
\item Event details
\item See comments
\item join event
\item offers/invitations
\item userlist attending the event
\end{enumerate}
\item Search agenda
\item add event
\end{enumerate}
\end{enumerate}
\newpage
\subsection{Functional Requirements}
\subsubsection{Subscribe [UC1]}
\begin{tabular}{ | p{3cm} p{10cm} | }
\hline
\textbf{Priority} & Essential\\
\textbf{Actors} & Visitors\\
\textbf{Preconditions} & None\\
\textbf{Description} & Visitors can subscribe themselves to the portal\\
\textbf{Path} & \begin{itemize}
\item Click the \textit{subscribe} button
\item Fill in subscription information: user name*, e-mail*, name*, first name*, street, number, bus, postal code*, city*, province*, country*, phone number, mobile number, sex*, date of birth*, avatar, description, homepage (* required)
\item Open URL in confirmation e-mail
\item Fill in (empty) profile
\item Confirm account
\end{itemize} \\
\textbf{Exceptions} & \begin{itemize}
\item The user name already exists in the system
\item The e-mail already exists in the system
\end{itemize} \\
\textbf{Result} & The visitor becomes a member with a personal user name and password\\
\hline
\end{tabular}
\subsubsection{Login [UC2]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Essential \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & User is not logged in\\
\textbf{Description} & Users have to login to open a session\\
\textbf{Path} & \begin{itemize}
\item The user hits the \textit{login} button
\item The user enters his user name and password
\item The system checks for correctness of the information
\item The system accepts the user name and password
\end{itemize}\\
\textbf{Exceptions} & \begin{itemize}
\item The user name does not exist
\item Wrong password
\end{itemize}\\
\textbf{Result} & The user is logged in. \\
\hline
\end{tabular}
\newpage
\subsubsection{Logout [UC3]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Essential \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & User is logged in\\
\textbf{Description} & Users can close their session \\
\textbf{Path} & \begin{itemize}
\item The user clicks the \textit{logout} button
\item The user is sent back to the main page
\end{itemize}\\
\textbf{Exceptions} & None \\
\textbf{Result} & The user is logged out.\\
\hline
\end{tabular}
\subsubsection{Change account [UC4]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Essential \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & User is logged in \\
\textbf{Description} & Users can change their account information\\
\textbf{Path} & \begin{itemize}
\item The user clicks on the \textit{change account} button
\item The user modifies his information
\item The user submits his modifications
\end{itemize} \\
\textbf{Exceptions} & User name and birth date cannot be changed. \\
\textbf{Result} & The user's account information is changed. \\
\hline
\end{tabular}
\subsubsection{Change profile [UC5]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Essential \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & User is logged in\\
\textbf{Description} & Users can change their profile information\\
\textbf{Path} & \begin{itemize}
\item The user clicks on the \textit{change profile} button
\item The user modifies his information
\item The user submits his modifications
\end{itemize}\\
\textbf{Exceptions} & None \\
\textbf{Result} & The user's profile is changed.\\
\hline
\end{tabular}
\newpage
\subsubsection{Lost password [UC6]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Medium \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & The user is subscribed\\
\textbf{Description} & The system sends the user an e-mail containing his user name and password\\
\textbf{Path} & \begin{itemize}
\item The user enters his e-mail address
\item The system verifies the correctness of the e-mail address
\item The system sends an e-mail to the given address containing the user name and password
\end{itemize} \\
\textbf{Exceptions} & The e-mail address is not registered \\
\textbf{Result} & The user receives an e-mail containing his login information. \\
\hline
\end{tabular}
\subsubsection{Unsubscribe [UC7]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Essential\\
\textbf{Actors} & Member and event organiser\\
\textbf{Preconditions} & None\\
\textbf{Description} & Users can close their account and delete all related information \\
\textbf{Path} & \begin{itemize}
\item The user clicks the \textit{unsubscribe} button
\item The user confirms closing his account
\end{itemize}\\
\textbf{Exceptions} & None\\
\textbf{Result} & The user account is deleted from the system. \\
\hline
\end{tabular}
\subsubsection{Add event [UC8]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Essential \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & None\\
\textbf{Description} & Users can add events to the agenda\\
\textbf{Path} & \begin{itemize}
\item The user clicks the \textit{add event} button
\item The user fills in the information about the event
\item The user submits the event
\end{itemize}\\
\textbf{Exceptions} & None\\
\textbf{Result} & The event is added to the agenda\\
\hline
\end{tabular}
\newpage
\subsubsection{Edit event [UC9]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & High \\
\textbf{Actors} & Member and event organiser\\
\textbf{Preconditions} & Only the author of the event can edit the event \\
\textbf{Description} & Users can modify their event information \\
\textbf{Path} & \begin{itemize}
\item The user clicks the \textit{edit event} button
\item The user modifies the forms
\item The user submits the information
\end{itemize}\\
\textbf{Exceptions} & None \\
\textbf{Result} & The event is modified. \\
\hline
\end{tabular}
\subsubsection{Subscribe to event [UC10]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Essential \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & The user is on an event page\\
\textbf{Description} & Users can subscribe themselves to an event\\
\textbf{Path} & The user clicks on an event and adds one or more of the following phrases:
\begin{itemize}
\item I'm going to this event
\item I'm looking for people to go to this event
\item I offer a ride to this event
\item I'm looking for a ride to this event
\item I have extra tickets for this event
\item I'm looking for tickets to this event
\end{itemize}\\
\textbf{Exceptions} & None\\
\textbf{Result} & The user is subscribed to the event. \\
\hline
\end{tabular}
\newpage
\subsubsection{Write comment [UC11]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Medium \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & The user is on an event page. \\
\textbf{Description} & Users can add their comments about an event. \\
\textbf{Path} & \begin{itemize}
\item The user writes his comments in a form
\item The user submits his comments
\end{itemize} \\
\textbf{Exceptions} & None\\
\textbf{Result} & The user's comments are added to the event. \\
\hline
\end{tabular}
\subsubsection{Rate event [UC12]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Medium \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & An event can only be rated after it has taken place\\
\textbf{Description} & Users can rate the event\\
\textbf{Path} & \begin{itemize}
\item The user clicks on an event
\item The user gives a rating of 1 to 5
\end{itemize}\\
\textbf{Exceptions} & The user has already given a rate to this event. \\
\textbf{Result} & The rating of the event is updated. \\
\hline
\end{tabular}
\subsubsection{Search agenda [UC13]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Essential \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & None \\
\textbf{Description} & The user can search the agenda for specific events\\
\textbf{Path} & \begin{itemize}
\item The user clicks on the \textit{search} button
\item The user specifies search restrictions
\end{itemize} \\
\textbf{Exceptions} & None \\
\textbf{Result} & The search returns a list of events. \\
\hline
\end{tabular}
\newpage
\subsubsection{Show my agenda [UC14]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Essential \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & None \\
\textbf{Description} & Users gets a personalized page with events matching their profile \\
\textbf{Path} & \begin{itemize}
\item The user requests his agenda.
\item The user sees a page with events.
\end{itemize} \\
\textbf{Exceptions} & None \\
\textbf{Result} & The system returns a page with events. \\
\hline
\end{tabular}
\subsubsection{Display RSS feed [UC15]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Medium \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & None \\
\textbf{Description} & Users receive a personalized RSS feed matching their profile \\
\textbf{Path} & The user requests his RSS feed \\
\textbf{Exceptions} & None \\
\textbf{Result} & The system returns the RSS feed. \\
\hline
\end{tabular}
\subsubsection{Search users [UC16]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Medium \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & None \\
\textbf{Description} & The user searches for users with a matching profile\\
\textbf{Path} & \begin{itemize}
\item The user clicks the \textit{search users} button
\item The user receives a list of users
\end{itemize}\\
\textbf{Exceptions} & None \\
\textbf{Result} & The user obtains a list of users matching his profile. \\
\hline
\end{tabular}
\newpage
\subsubsection{Moderate event [UC17]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & High \\
\textbf{Actors} & Administrator and moderator \\
\textbf{Preconditions} & The event is not conform to the rules or moral standards set by the client. \\
\textbf{Description} & An event can be moderated in order to prevent foul language or abuse of the event agenda. \\
\textbf{Path} & \begin{itemize}
\item The user edits the event
\item The user submits the modified event
\end{itemize}\\
\textbf{Exceptions} & None \\
\textbf{Result} & The event has been modified. \\
\hline
\end{tabular}
\subsubsection{Receive RSS feed [UC18]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Medium \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & None \\
\textbf{Description} & The system sends users a personalized RSS feed. \\
\textbf{Path} & The user receives his RSS feed. \\
\textbf{Exceptions} & None \\
\textbf{Result} & The system sends an e-mail containing the RSS feed or the user sees the RSS in an RSS reader or capable browser. \\
\hline
\end{tabular}
\subsubsection{Message sending [UC19]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Medium \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & None \\
\textbf{Description} & Users are able to send (private) messages to other users \\
\textbf{Path} & \begin{itemize}
\item The user enters the user name of the receiver and the subject and content of his message.
\item The user submits the information
\end{itemize}\\
\textbf{Exceptions} & The receiver is not found in the system \\
\textbf{Result} & The message has been sent to the given receiver \\
\hline
\end{tabular}
\subsubsection{Message receiving [UC20]}
\begin{tabular}{| p{3cm} p{10cm} |}
\hline
\textbf{Priority} & Medium \\
\textbf{Actors} & Member, event organiser, administrator and moderator\\
\textbf{Preconditions} & None \\
\textbf{Description} & Users can receive (private) messages from other users \\
\textbf{Path} & \begin{itemize}
\item The user opens his inbox
\item The user can read the messages
\end{itemize}\\
\textbf{Exceptions} & None \\
\textbf{Result} & Received messages can be retrieved in the user's inbox \\
\hline
\end{tabular}
\subsection{Performance requirements}
\begin{itemize}
\item The user will receive an answer to his request within 5 seconds.
\end{itemize}
\subsection{Logical database requirements}
All data will be saved in the database: user accounts and profiles, events, reviews, ...
The database allows concurrent access and will be kept consistent at all times, requiring a good database design.
\subsection{Design constraints}
\subsubsection{Standards compliance}
\begin{itemize}
\item The communication between the portal software and the database will be in XML.
\item The portal layout will be produced with XSLT.
\item The product will be written in Python.
\item The output must be compatible with W3C XHTML 1.0
\item The source code must follow the coding conventions, see \ref{ref} references \cite{CC}.
\item \LaTeX is used for all the documents.
\end{itemize}
\subsection{Software system attributes}
The software consists of the following elements:
\begin{itemize}
\item the web server
\item the CGI application
\item the MySQL database
\end{itemize}
Errors will be handled by an error-handling system which will notify the user within the specified amount of time.
The database should remain consistent at all times in case of an error.
\subsubsection{Reliability}
The reliability of the overall program depends on the reliability of the separate components.
\subsubsection{Availability}
The system should be available at all times, meaning the user can access it using a web browser, only restricted by the down time of the server on which the system runs. In case of a of a hardware failure or database corruption, a replacement page will be shown.
Also in case of a hardware failure or database corruption, backups of the database should be retrieved with the MySQL server and saved by the administrator .
\subsubsection{Security}
\begin{itemize}
\item Passwords will be saved encrypted in the database in order to ensure the user's privacy.
\item The user's IP will be logged.
\end{itemize}
\subsubsection{Maintainability}
MySQL is used for maintaining the database and the Apache server takes care of the site.
In case of a failure, a re-initialisation of the program is recommended.
\subsubsection{Portability}
The application is linux-based and should be compatible with other systems.
Apache, CGI and MySQL programs are practically independent of the OS-system which they communicate with.
The end-user part is fully portable and any system using any web browser should be able to use the features of the application.
\appendix
\section{}
\label{ref}
\begin{thebibliography}{99}
\bibitem{apache}
\textbf{Apache}, \\
\url{http://www.apache.org/}
\bibitem{CC}
\textbf{Coding Conventions Document}, \\
\url{http://wilma.vub.ac.be/~se4_2006/documents/conventions/pythoncc.pdf}
\bibitem{epydoc}
\textbf{Epydoc}, \\
\url{http://epydoc.sourceforge.net/}
\bibitem{Task}
\textbf{Description of the project}, \\
\url{http://tinf2.vub.ac.be/~dvermeir/courses/software_engineering/}
\bibitem{IEEE}
\textbf{IEEE Recommended Practice for Software Design Descriptions},\\
IEEE Std.1016-1998, \\
\url{http://wilma.vub.ac.be/~se4_2006/documents/standards/ieee_sdd.pdf}
\bibitem{tex}
\textbf{\LaTeX{}}, \\
\url{http://wilma.vub.ac.be/~se4_2006/documents/tutorials/tutorial_latex.pdf}
\bibitem{mysql}
\textbf{MySQL}, \\
\url{http://www.mysql.com/}
\bibitem{python}
\textbf{The Python Programming Language}, \\
\author{Guido Van Rossum}\\
\url{http://wilma.vub.ac.be/~se4_2006/documents/tutorials/tutorial_latex.pdf}
\bibitem{SE}
\textbf{Software Engineering} An Object-Oriented Perspective, \\
\author{Eric J. Braude}, \\
2001, \\
ISBN 0471322083, \\
John Wiley \& Sons\\
\end{thebibliography}
\end{document}
|
Kevin Pinte Powered by ViewVC 1.0-dev |
ViewVC Help |