\documentclass[a4paper,11pt]{article} \usepackage[german]{babel} \usepackage{epsfig} \usepackage{verbatim} \newcommand{\url}[1]{\nobreak{\it#1}} \newcommand{\tilda}{\def\~{}} \newcommand{\grad}{\ensuremath{^\circ}} \usepackage{german} %\usepackage{mfpic} \usepackage{graphicx} \usepackage{graphicx} \thispagestyle{empty} \selectlanguage{\austrian} \title{Requirement Specification/Dutybook for PastEd (simplified)} \author{ Thomas Baldauf\\ \"On\c{c}\"u Pinar Kaya\\ Markus Millendorfer Alexander Oelzant,\\ Johannes Truschnigg,\\ } \begin{document} \maketitle \section[1]{ Project Aims } The project's goal is to provide an easy to use Source Code Paste Service (optionally secured with authentication tokens). The intended benefit is to be able to provide a simple, easy to use service for presenting small functions of a few lines of code by a simple one-step process: after pasting it (thus the name) into a web form and submitting, the server immediately returns a URL for this Code, which can furthermore be discussed, annotated and removed. \section{ Intended Use of Products } Storing and sharing small pieces of code in online Platforms, particularly Chat/IM \section{ Product Environment } Product runtime environment is an open source web server, usage via any standards compliant web browser \section{ Product Functions } \begin{itemize} \item Creating, Modifying, Distributing, Deleting code snippets \item Storage in a Database \item middle layer for access, storage, retrieval \item CLI tools (TODO: specs) \item admin interface (deletions, attributions, blocking?) \item Presentation of submitted code snippets in standards-compliant (secure) highlighting via an external application (caveat: exploits) \end{itemize} \section{ Product Parameters/Data } Code Snippets (with attribution/contact data/language) Admin data actions (ip addresses) permissions (by admin user) \section{ Product Performance } For security reasons, a maximum size for publishable data should be enforced, initially this value is expected to be reasonable at 64 ko but has to be easily configurable. Similarly, a maximum number of pastes per address and time should be enforced, a value of 1 paste per minute and address is to be set as an inital limit. No guarantees about the retention time of data will be provided, however a reasonably long time limit is to be determined by available server space. The server should automatically delete old data if space runs low \section{ User Interface } Mainly the product is to interface over a web server via a standards-compliant web browser, a CLI for simpler integration with versioning systems, IDEs, editors should also be implemented. The user interface is to adhere to open standards as published by bodies of the IEEE, W3C, IETF etc, e. g. XHTML 1.0, HTTP over TCP. Accessability guidelines are to be taken into account (alt-tags, no reliance on client side scripting for essential functions) \section{ Quality Aims } Foremost is security, since this is a web-based service run mostly on a shared web server. Database integrity, normalization and security for "secret" snippets should be observed. \section{ Global Test Scenarios and Test Cases } \begin{itemize} \item Pasting a snippet \item testing the URL (with or without password authentication) \item Comments \item Deletions \end{itemize} \section{ Development Environment } In order to develop a sustainable project, Open Source is to be used throughout the published project code base, which includes, but is not limited to, the web server it ist to be deployed on, scripting language and SQL database. \section{ Additions } \begin{itemize} \item Optional: modify the classification of a snippet \item Not intended for initial rollout: user administration (currently password only auth) \end{itemize} \end{document}