# 1 Introduction

## 1.1 Purpose

The purpose of this document is to present an overall description and listing of the functionality of a Publications Management System (PMS). This document is intended for the customer(s) and suppliers of the system including designers, testers and the implementation unit.

## 1.2 Scope

The product will support the functionality of a Publications Management System (PMS), which can be accessed by command line and through a web browser. The PMS will manage a database with bibliographical information and have the possibility to save the entire text of a publication in pdf and postscript. It will be able to automatically retrieve bibliographical information (like author, title, etc.) out of the complete text of a publication and will provide the possibility to correct this manually, if the obtained information is incorrect or insufficient. The concept ‘author’ (name, first name, institute) will be explicitly known by the system and the user will be able to manually indicate that references like ‘D. Vermeir’ and ‘Dirk Vermeir’ refer to the same author. The possibility will also be provided to receive a ‘bulk update’. The system will support several types of accessing, including accessing of the contents of a publication, if the complete text (or only the abstract) is available and it will also support access control.

## 1.3 Product overview

### 1.3.1 Product perspective

The PMS will rely on a database and a web server, which can be accessed by a web browser and by command line. Accessing the PMS from outside the VUB-network is only possible for logged in users. Person(s) that are not logged in and/or connected to the VUB-network will only have Guest privileges. To be able to log in a user will have to register an account. This requires that the user provides their first and last name, a password and a valid e-mail address. If a user is accepted, he/she will receive a validation mail and by that way he/she will be able to confirm the registration of the user account.

#### System interfaces

*   Database: The system contains an interface with a MySQL-Database.
*   Webserver: This Server is responsible for the execution of the PMS and the sending of queries to the database. It’s also responsible for generating the user interface for each user.

#### User interfaces

*   Users can access the PMS from any OS, using a web browser that has a connection to the web server running the PMS. The PMS should explicitly be accessible for users with Linux as OS and using a text based web browser (eg. Links2).
*   Administrator(s) can access the system by command line from within the VUB-network. A user of the CLI is assumed to be accessing the Wilma machine locally and will automatically be accredited with Administrator privileges.
*   If an error would occur during a request, the user should receive an error message stating what was the cause of the error. The error should also be logged in the PMS to notify the Administrator(s) of the occurred technical difficulties.
*   The PMS web interface will comply with the W3C XHTML 1.0 Transitional standard.

#### Hardware interfaces

There are no specific hardware requirements for the users.

#### Software interfaces

*   Database: MySQL
*   Web Server
*   Operating System: Linux-based environment
*   Programming Language: Ruby 1.8 (or later)

#### Communications interfaces

Communication between the PMS (or more specifically the webserver) and the users will be via a HTTP-connection using TCP/IP port 80.

#### Memory constraints

There is no specific limit on the usage of memory by the PMS. The publications themselves nevertheless will have a maximum file size, which for the moment remains TBD.

#### Operations

*   A user has to be logged into (and registered to) the PMS or connected to the VUB-network to be able to use (parts of) the functionality of the PMS.
*   Backup and recovery operations for the database are required.

#### Site adaptation requirements

The PMS will be easy to install, with Ruby 1.8 (or later) installed and will run under a Linux-based environment.

#### Interfaces with services

[N/A]

### 1.3.2 Product functions

The PMS will provide functions based on a hierarchical user structure. Each user level inherits all functions of the preceding one. The user levels are:

*   Guest: Can register, log in, validate an account, and retrieve a password.
*   VUB-Network User: Can search for publications, order results, export/download results, and find similar publications.
*   Member: Can change account details and log off.
*   Publisher: Can upload publications (individually or in bulk) and edit their own publications.
*   Moderator: Can manage user levels and group permissions for their department, edit author information, and edit departmental publications.
*   Administrator: Has full control over users and groups, can edit all publications, and can access a system control panel.

### 1.3.3 User characteristics

The users of the PMS are expected to be academic personnel and students with various technical backgrounds. All the users should have a basic knowledge of the internet.

There are multiple types of users:

*   A Guest is an anonymous user that is not connected to the VUB-network.
*   A VUB-Network User is connected to the VUB-network, but is not logged in.
*   A Member is a user that has logged into the PMS.
*   A Publisher is a logged in user that can upload publications.
*   A Moderator has Member privileges, extended with the authority to edit and delete publications within their department.
*   An Administrator has all the possibilities of a moderator extended with responsibility for the technical aspects of the PMS.

### 1.3.4 Limitations

*   The design of the PMS should be modular to simplify the design and implementation of expansions and replacements.
*   The PMS must be able to run on Linux, more specifically the Wilma web server.
*   The used programming language will be ruby.
*   The code will be documented using RDoc.
*   Git will be used for configuration management.
*   The use of frameworks is not allowed.
*   Only free software can be used for the tools and for the end product.
*   The PMS should be easily installable.

## 1.4 Definitions

*   Customer: The person, or persons, who pay for the product and usually (but not necessarily) decide the requirements.
*   Supplier: The person, or persons, who produce a product for a customer.
*   User: The person, or persons, who operate or interact directly with the product.

# 2 References

*   IEEE Std 830-1998, http://www.scribd.com/doc/2620639/IEEE-8301998.
*   Software Engineering Course, http://tinf2.vub.ac.be/~dvermeir/courses/software\_engineering/projects/2007-2008/index.html.
*   W3C XHTML 1.0, http://www.w3.org/TR/xhtml1/.
*   Git, http://git.or.cz/.
*   IEEE, http://www.ieee.org/.
*   RDoc, http://rdoc.sourceforge.net/.
*   Software Engineering group 1, http://wilma.vub.ac.be/~se1\_0708/.
*   VUB, http://www.vub.ac.be.
*   W3C, http://www.w3.org/.
*   SE1 Coding Conventions, http://wilma.vub.ac.be/~se1\_0708/docs/coding\_conventions/conventions.pdf.
*   UML, http://www.uml.org/.
*   SQAP, http://wilma.vub.ac.be/~se1\_0708/docs/sqap/sqap.pdf.
*   STD, TBDstdlink.

# 3 Requirements

## 3.1 Functions

*   Log in to the system from the internet: Any user with an account can log in from outside the VUB-network.
*   Log in to the system via the VUB-network: Any user on the VUB-network can access search functions without logging in, or can log in to their account.
*   Register for an account: A user can request an account by providing personal data.
*   Log off: A logged-in user can log off the system.
*   Change password: A user can request a new password.
*   Search for publications: A user can search for publications by keyword, author, period of publication, and other advanced criteria.
*   View the results of a Search: The system will display a list of publications matching the search criteria.
*   View publication details: A user can view detailed information for a selected publication, including title, authors, abstract, and references.
*   View detailed information for multiple publications: A user can select multiple publications from a results list and view their details.
*   Download a single publication: A user can download the full text of a publication.
*   Download multiple publications: A user can download the full text of multiple publications from a search result.
*   Consult publication references: A user can view the references cited in a publication.
*   Consult references for multiple publications: A user can view all references cited in the publications from a search result.
*   Display the full text of a publication: A user can view the full text of a publication if it is available in the system.
*   View details of a reference: A user can navigate to the details of a cited reference if it is present in the system.
*   Export the references cited in a publication (BIB format): A user can export references in BibTEX format.
*   Export the references cited in a publication (RIS format): A user can export references in RIS format.
*   View authors: A user can click on an author's name to view their details.
*   Editing personal data: A logged-in user can edit their personal data such as password and department.
*   Access to your own publications: A Publisher can directly access a list of publications they have uploaded.
*   Edit your own publications: A Publisher can modify information for publications they have uploaded.
*   Upload publications: A Publisher can add a publication to the system in supported formats (pdf, ps, odt). The system will attempt to automatically retrieve bibliographic details.
*   Search users: A Moderator or Administrator can search for users in the system.
*   Edit user settings: A Moderator or Administrator can change the settings of a system user.
*   Create User: An Administrator can create a new user.
*   Delete User: An Administrator can delete an existing user.
*   Create Group: An Administrator can create a new group.
*   Search Group: An Administrator can search for a group.
*   Delete Group: An Administrator can delete an existing, empty group.
*   Edit group settings: An Administrator can change the settings of a system group.
*   Edit system configuration settings: An Administrator can access a configuration panel to change system settings.

## 3.2 Performance requirements

[N/A]

## 3.3 Usability requirements

*   The web interface will be attractive, simple, and standard (W3C XHTML).
*   The Web Interface is designed to be fast and efficient, with the aim to fulfill all available tasks in the smallest amount of pages and clicks.
*   The clarity and structure of the web interface will be very important.
*   If an error occurs during a request, the user should receive an error message stating the cause of the error.

## 3.5 Logical database requirements

*   All data will be saved in the database: static and dynamic information, statistics, publications, administrator-settings, etc.
*   The database must be kept consistent at all times, with no pointers to deleted records and no redundant information.
*   The database must be capable of handling several requests at once via SQL statements.
*   A backup structure is required to save all data in case of server or disk problems.

## 3.6 Design constraints

*   The PMS web interface must be conform W3C XHTML 1.0 Transitional standard.
*   The implementation must be compliant with the Coding Conventions of SE1.
*   The implementation must be object-oriented.
*   Design diagrams must be made following the UML standard.

## 3.7 Software system attributes

*   Reliability: The PMS is developed so that it should not experience software faults. A spiral model with 2 iterations will be used to achieve the least amount of software bugs.
*   Availability: The PMS will be available at all times, except when the host server (Wilma) is not available. In case of a corrupted database, the Administrator should replace it with the last available backup. During downtime, the PMS should display an error message to visitors.
*   Security: Every user account is protected with a personal password, which should be encrypted during submission and storage. Direct access to the database is only allowed for Administrators using the CLI. User levels and permissions must be respected for all actions.
*   Maintainability: The database and global system settings should be maintained by Administrators. Moderators will be able to maintain the PMS at the departmental level.
*   Portability: The PMS is developed and tested to run on the Wilma linux-based platform. It would be possible to relocate the PMS to a server with a different OS as long as all necessary software is available on it and some adjustments are made.

## 3.8 Supporting information

Following the demand of the customer(s) to have an early prototype available, the first iteration of the PMS will include the basic functions. Afterwards, in the second iteration, more functions will be added to the PMS and the previous ones will be enhanced. For this purpose the different functions will be marked as:

*   Critical (C) (i.e. needed for the first iteration)
*   Sufficient (S) (i.e. needed for the second iteration to have an adequate end product)
*   Optional (O) (i.e. implemented if there’s enough time left)

# 4 Verification

## 4.1 Functions

[N/A]

## 4.2 Performance requirements

[N/A]

## 4.3 Usability requirements

[N/A]

## 4.5 Logical database requirements

[N/A]

## 4.6 Design constraints

[N/A]

## 4.7 Software system attributes

[N/A]

# 5 Appendices

## 5.1 Assumptions and dependencies

*   The users must have a web browser that supports W3C XHTML and have a TCP/IP connection to the web server.
*   The http traffic must be possible on the network connection between server and client.
*   Command line users have access to the server shell. Therefore they also have all the Administrator privileges.

## 5.2 Acronyms and abbreviations

*   BibTEX: A tool for formatting lists of references.
*   Bulk Update: Importing many publications (or abstracts) at once.
*   CLI: Command Line Interface.
*   Git: A distributed revision control / software configuration management project.
*   HTML: Hypertext Markup Language.
*   HTTP: Hypertext Transfer Protocol.
*   IEEE: Institute of Electrical and Electronics Engineers.
*   OS: Operating System.
*   PDF: Portable Document Format.
*   PMS: Publication Management System.
*   PS: Postscript.
*   RDoc: Document Generator for Ruby Source.
*   RIS: A tagged format for expressing bibliographic citations.
*   Ruby: A reflective, dynamic, object-oriented programming language.
*   SCMP: Software Configuration Management Plan.
*   SE1: Software Engineering group 1.
*   SQAP: Software Quality Asssurance Plan.
*   SRS: Software Requirements Specification.
*   STD: Software Test Plan.
*   TBD: To Be Determined.
*   UML: Unified Modelling Language.
*   VUB: Free University of Brussels.
*   W3C: World Wide Web Consortium.
*   Wilma: A multifunctional linux server for the students of the faculty of sciences at the VUB.