# 1 Introduction
[NULL]

## 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 PMS, which can be accessed by command line and through a web browser (following the W3C XHTML-standards [3]). 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
[NULL]

### 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. There will be multiple types of users:
*   A Guest is an anonymous user that is not connected to the VUB-network. Therefore he/she will only be allowed to log in or register.
*   A VUB-Network User is connected to the VUB-network, but is not logged in. The PMS will recognize them by their IP-address. They can access the database, search for publications and download them.
*   A Member is a user that has logged into the PMS and whose account only allows him to search for publications and download them.
*   A Publisher is a logged in user that can search for, upload and download publications.
*   A Moderator has the same prerequisites and available functions as a Member, extended with the authority to edit and delete publications.
*   An Administrator has all the possibilities of a moderator extended with the responsibility for the technical aspects of the PMS. He/She also has the possibility to up or downgrade the accounts of users and in extreme cases he can even expel registered users.
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. Any user will be able to search for publications by title, author(s), institute,. . . Also will the user be able to specify that ‘D. Vermeir’ and ‘Dirk Vermeir’ refer to the same author and that ‘VUB’ or ‘Vrije Universiteit Brussel’ refer to the same institute.

#### 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 (taking into account their privileges) 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 acces the system by command line from within the VUB-network.
*   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 [3].

#### Hardware interfaces
There are no specific hardware requirements for the users.

#### Software interfaces
*   The system contains an interface with a MySQL-Database.
*   The system relies on a Webserver for execution and user interface generation.
*   The PMS will be easy to install, with Ruby 1.8 (or later) installed and will run under a Linux-based environment.
*   The used programming language will be ruby.
*   Only free software can be used for the tools and for the end product.

#### 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.
*   The other necessary/available operations (functionalities) are discussed in Section 1.3.2 and Section 3.1.

#### 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
This section provides a summary of the major functions that the PMS will provide and for whom these functions will be available. These functions will be built up using a hierarchical user structure, where the following user (the child) inherits all of the available functions of the preceding one. The hierarchical user structure will be as follows: Guest, VUB-Network User, Member, Publisher, Moderator, Administrator. In this structure an Administrator has more functions than a Moderator, a Moderator more than a Member, and so on. Detailed functional requirements are provided in Section 3.1.

### 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.

### 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. (http://wilma.vub.ac.be)
*   The web interface will be attractive, simple and standard (W3C XHTML [3]).
*   All functions and options of the PMS should be available in the least amount of clicks, while maintaining a certain amount of structure.
*   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.
*   The PMS web interface will comply with the W3C XHTML 1.0 Transitional standard [3].
*   Only free software can be used for the tools and for the end product. The use of certain libraries and aids is justified in the SCMP.
*   The PMS should be easily installable by using: TBD.

## 1.4 Definitions
*   Customer: The person, or persons, who pay for the product and usually (but not necessarily) decide the requirements. In the context of this recommended practice the customer and the supplier may be members of the same organization.
*   Supplier: The person, or persons, who produce a product for a customer. In the context of this recommended practice, the customer and the supplier may be members of the same organization.
*   User: The person, or persons, who operate or interact directly with the product. The user(s) and the customer(s) are often not the same person(s).
*   BibTEX: This is a tool for formatting lists of references. The BibT EXtool is typically used together with the LATEXdocument preparation system.
*   Bulk Update: refers in this case to importing many publications(or abstracts) at once (e.g. through BibTeX files).
*   Git: a distributed revision control / software configuration management project created by Linus Torvalds [4].
*   HTML: Hypertext Markup Language.
*   HTTP: Hypertext Transfer Protocol.
*   IEEE: Institute of Electrical and Electronics Engineers [5].
*   OS: Operating System (e.g. Linux, MS Windows XP,Mac OS X).
*   PDF: Portable Document Format.
*   PMS: Publication Management System.
*   PS: Postscript.
*   RDoc: Document Generator for Ruby Source [6].
*   RIS: The RIS file format is a tagged format for expressing bibliographic citations.
*   Ruby: This is a reflective, dynamic, object-oriented programming language.
*   UML: Unified Modelling Language [11].
*   VUB: Free University of Brussels [8].
*   W3C: World Wide Web Consortium [9].
*   Wilma: This is a multifunctional linux server for the students of the faculty of sciences at the VUB.

# 2 References
*   (1) http://www.scribd.com/doc/2620639/IEEE-8301998.
*   (2) http://tinf2.vub.ac.be/~dvermeir/courses/software_engineering/projects/2007-2008/index.html.
*   (3) http://www.w3.org/TR/xhtml1/.
*   (4) http://git.or.cz/.
*   (5) http://www.ieee.org/.
*   (6) http://rdoc.sourceforge.net/.
*   (7) http://wilma.vub.ac.be/~se1_0708/.
*   (8) http://www.vub.ac.be.
*   (9) http://www.w3.org/.
*   (10) http://wilma.vub.ac.be/~se1_0708/docs/coding_conventions/conventions.pdf.
*   (11) http://www.uml.org/.
*   (12) http://wilma.vub.ac.be/~se1_0708/docs/sqap/sqap.pdf.
*   (13) TBDstdlink.

# 3 Requirements
[NULL]

## 3.1 Functions
The External Interfaces are the interfaces related to the in and output of the PMS: Web Access, Command Line Interface.

*   **Web Interface:** The Web Interface is designed to be fast and efficient, with the aim to be able to do fulfill all available tasks (upload, download, search,. . . ) in the smallest amount of pages and clicks. Although the esthetic part is less important, the clarity and structure of the web interface will be very important.
*   **Command Line Interface:** A user of the CLI is assumed to be accessing the Wilma machine locally. Therefore he/she will automatically be accredited with Administrator privileges. This does not mean that the administrator can only use the CLI.

The following are the detailed functional requirements:

### 3.1.1 Log in to the system from the internet
*   Summary: accessing the system from outside the VUB-network.
*   Actors: everyone who wants to make use of the system.
*   Preconditions: the actor needs a computer with internet access.
*   Description: the actor gets a screen where he/she will be able to login.
*   Exceptions: user must be registered and have a username and password.
*   Result: the actor can login.

### 3.1.2 Log in to the system via the VUB-network
*   Summary: accessing the system whilst using the VUB-Network.
*   Actors: everyone who wants to make use of the system.
*   Preconditions: be on a computer that is connected to the VUB network.
*   Description: the actor gets a screen where he will be able to login or where he/she can start a search immediately.
*   Exceptions: none.
*   Result: the actor can login or can perform a search.

### 3.1.3 Register for an account
*   Summary: requesting access to the system (become a Member).
*   Actors: everyone who wants to make use of the system.
*   Preconditions: the actor needs a computer with internet access or is connected to the VUB-network.
*   Description:
    *   the actor selects the Register function.
    *   the actor chooses a username and password and fills in personal data: name, login name, email address, university and department.
    *   the system checks if username already exists.
    *   the actor confirms.
*   Exceptions: none.
*   Result: an email is sent to the Administrator.

### 3.1.4 Log off
*   Summary: Log off the system.
*   Actors: Members, Publishers, Moderators and Administrators.
*   Preconditions: the user is logged in to the system.
*   Description: the actor selects the Logout function.
*   Exceptions: none.
*   Result: the actor is directed to the system start page where he/she can log in.

### 3.1.5 Change password
*   Summary: A user who has forgotten his/her password, can request a new one.
*   Actors: VUB-network users, Members , Publishers, Moderators and Administrators.
*   Preconditions: the user must have registered before, he/she must have a valid username on the system.
*   Description:
    *   the actor chooses to change password.
    *   the actor fills in his user name and enters a new password.
    *   the actor confirms.
*   Exceptions: no valid username on the system.
*   Result: an email is sent to the Administrator.

### 3.1.6 Search for publications
*   Summary: searching for publications in the system.
*   Actors: VUB-network users and Members , Publishers, Moderators and Administrators.
*   Preconditions: the actor needs to be logged in to the system or is connected to the VUB-network.
*   Description:
    *   The actor selects the Search Pubication function.
    *   The actor fills in the search criteria: keyword, author, period of publication and/or more advanced search criteria such as keyword(s) and/or reference, etc.
*   Exceptions: none.
*   Result: a list of publications fulfilling the search criteria.

### 3.1.7 View the results of a Search
*   Summary : view of the results of a publication search.
*   Actors : VUB-network users and Members , Publishers, Moderators and Administrators.
*   Preconditions : having executed a Publication Search.
*   Description : The actor gets one or more screens displaying one or more of the search results. For each result, the title and the main author of the publication are displayed. Navigation through different screens of search results is possible with the next or previous page option.
*   Exceptions : when the search criteria did not give any result.
*   Result : the actor will obtain the full list of all results satisfying his search criteria.

### 3.1.8 View publication details
*   Summary : view details of a selected publication.
*   Actors : VUB-network users and Members , Publishers, Moderators and Administrators.
*   Preconditions : having executed a Search and viewed the search results screen.
*   Description : the actor can view more detailed information of a selected publication by clicking the title of the publication or by clicking the view button located behind the title.
*   Exceptions : none.
*   Result : the actor will obtain the title, authors, publication date, abstract, cited references, ... of the selected publication.

### 3.1.9 View detailed information for multiple publications.
*   Summary : detailed view of multiple publications.
*   Actors : VUB-network users and Members , Publishers, Moderators and Administrators.
*   Preconditions : having executed a Search and viewed the search results screen.
*   Description :
    *   The actor selects some of the publications by ticking the box in front of the titles and selects the View function.
    *   or: The actor selects all publications by clicking the ’View All’ button at the bottom of the screen.
*   Exceptions : none.
*   Result : the actor obtains a set of screens displaying the title, authors, publication date, abstract, cited references, ... of the selected publications.

### 3.1.10 Download a single publication
*   Summary : downloading the full text of a publication.
*   Actors : VUB-network users and Members, Publishers, Moderators and Administrators.
*   Preconditions :
    *   having executed a Search and viewed the search results screen.
    *   having entered the detailed view screen of a publication.
*   Description :
    *   in the results screen : the actor can download a selected publication by clicking on the Download button for the selected publication.
    *   in the detailed view screen of a publication : the actor can download the publication by clicking the Download button just beneath the abstract.
*   Exceptions : none.
*   Result : the actor will obtain an electronic copy of the publication.

### 3.1.11 Download multiple publications
*   Summary : downloading the full text of multiple publications.
*   Actors : VUB-network users and Members , Publishers, Moderators and Administrators.
*   Preconditions : having executed a Search and viewed the search results screen.
*   Description : the actor can download all the publications in a search result by clicking on the Download button next to ”All” at the bottom of the screen.
*   Exceptions : none.
*   Result : the actor will obtain an electronic copy of the publications.

### 3.1.12 Consult publication references
*   Summary : consult the references cited in a publication resulting from a search done on the system.
*   Actors : VUB-network users and Members , Publishers, Moderators and Administrators.
*   Preconditions :
    *   having executed a Search and viewed the search results screen.
    *   having entered the detailed view screen of a publication.
*   Description :
    *   in the results screen : the actor clicks on the reference button located behind the publication title.
    *   in the detailed view screen of a publication : the actor clicks on the reference button just under the abstract.
*   Exceptions : none.
*   Result : the actor will obtain a screen displaying the title, authors, publication date, abstract and cited references of the selected reference.

### 3.1.13 Consult references for multiple publications
*   Summary : consult the references cited in all the publications resulting from a search done on the system.
*   Actors : VUB-network users and Members , Publishers, Moderators and Administrators.
*   Preconditions : having executed a Search and viewed the search results screen.
*   Description : the actor can see all the references cited in the publications by clicking on the references button next to ”All” at the bottom of the screen.
*   Exceptions : none.
*   Result : the actor will obtain a list of references cited in the publications.

### 3.1.14 Display the full text of a publication
*   Summary : obtain a copy of the full text of a publication resulting from a search done on the system.
*   Actors : VUB-network users and Members, Publishers, Moderators and Administrators.
*   Preconditions : having entered the detailed view screen of a publication.
*   Description : in the detailed view screen of a publication : the actor displays the full text of the publication by clicking the full text button just under the abstract.
*   Exceptions : full text must be available in the system.
*   Result : the actor will see the full text of the publication.

### 3.1.15 View details of a reference
*   Summary : view details of a selected reference cited in a publication resulting from a search done on the system.
*   Actors : VUB-network users and Members , Publishers, Moderators and Administrators.
*   Preconditions : having entered the detailed view screen of a publication.
*   Description : in the detailed view screen of a publication, the actor can access directly to the detailed view screen of a cited reference by clicking on the reference.
*   Exceptions : only when the reference is present in the system.
*   Result : the actor will access the view screen (containing title, authors, data of publication, abstract and cited reference) of the selected reference.

### 3.1.16 Export the references cited in a publication (BIB format)
*   Summary : download the references cited in a publication in bib format.
*   Actors : VUB-network users and Members , Publishers, Moderators and Administrators.
*   Preconditions : having entered the detailed view screen of a publication.
*   Description : in the detailed view screen of a publication : the actor selects the format (bib) for the exported references and confirms.
*   Exceptions : none.
*   Result : File with the references of a publication in bib format.

### 3.1.17 Export the references cited in a publication (RIS format)
*   Summary : download the references cited in a publication in RIS format.
*   Actors : VUB-network users and Members , Publishers, Moderators and Administrators.
*   Preconditions : having entered the detailed view screen of a publication.
*   Description : in the detailed view screen of a publication : the actor selects the format (RIS) for the exported references and confirms.
*   Exceptions : none.
*   Result : file with the references of a publication in RIS format.

### 3.1.18 View authors
*   Summary : view information about an author of a publication in the system.
*   Actors : VUB-network users and Members , Publishers, Moderators and Administrators.
*   Preconditions : having executed a publication search and viewed the search results screen.
*   Description : in the results screen : the actor clicks on the author name of one of the publications.
*   Exceptions : none.
*   Result : the system shows the author details.

### 3.1.19 Editing personal data
*   Summary : editing personal data.
*   Actors : Members, Publishers, Moderators and Administrators.
*   Preconditions : the actor needs to be logged in to the system.
*   Description :
    *   the actor selects the Edit Settings function.
    *   the actor changes his personal data such as password, university, department.
    *   the actor confirms.
*   Exceptions : none.
*   Result : the personal data of the user will be changed.

### 3.1.20 Access to your own publications
*   Summary : access directly to your own publications.
*   Actors : Publishers, Moderators and Administrators.
*   Preconditions : none.
*   Description : the Publisher selects the ”My Publications” box.
*   Exceptions : none.
*   Result : the user obtains a set of screens displaying the title, authors, publication date, abstract and cited references of the all the publications that he/she has previously uploaded in the system.

### 3.1.21 Edit your own publications
*   Summary : possibility to modify information of your own publications by a Publisher.
*   Actors : Publishers, Moderators and Administrators.
*   Preconditions : the actor needs to be logged in to the system and has done a ”My Publications” search.
*   Description :
    *   in the results screen : the actor chooses a publication from the list, edits the publication and confirms his changes.
    *   via the My Publications search : the list of Publisher publications will be displayed and editing is possible by ticking the ”edit” box.
*   Exceptions : only for publications owned by the actor.
*   Result : changes are applied to the publication in the system.

### 3.1.22 Upload publications
*   Summary : add a publication to the system.
*   Actors : Publishers , Moderators and Administrators.
*   Preconditions : The actor has a document in one of the supported formats: pdf, ps, odt.
*   Description :
    *   The actor selects the document to add to the system and confirms.
    *   The system tries to retrieve the publication details from the document.
    *   The system shows the new publication with the retrieved information.
    *   The actor either accepts or makes some changes to the publication and confirms the changes.
*   Exceptions : none.
*   Result : the system contains a new publication.

### 3.1.23 Search users
*   Summary : searching users in the system.
*   Actors : Moderators and Administrators.
*   Preconditions : the actor needs to be logged into the system.
*   Description :
    *   the actor selects the Search Users function.
    *   the actor fills in some search criteria.
    *   the system shows the results.
*   Exceptions : none.
*   Result : list of users meeting the search criteria.

### 3.1.24 Edit user settings
*   Summary : Select a system user (Members, Publishers, Moderators) and change his settings.
*   Actors : Moderators and Administrators.
*   Preconditions : a list of users as resulting from the user search function.
*   Description :
    *   The actor selects a user from a list of users resulting from a search query.
    *   The actor changes the user settings.
    *   The actor confirms the changes.
*   Exceptions : none.
*   Result : the user settings are changed.

### 3.1.25 Create User
*   Summary : create a new user.
*   Actors : Administrator.
*   Preconditions : none.
*   Description :
    *   Administrator selects the Create User function.
    *   Administrator fills in user details: username, password, email, group.
    *   Administrator confirms.
*   Exceptions : the username already exists in the system.
*   Result : the system contains a new user.

### 3.1.26 Delete User
*   Summary : delete an existing user.
*   Actors : Administrator.
*   Preconditions : none.
*   Description :
    *   Administrator selects the Delete User function.
    *   Administrator fills in username.
    *   System shows user details.
    *   Administrator confirms.
*   Exceptions : the username does not exist in the system.
*   Result : the user is deleted in the system.

### 3.1.27 Create Group
*   Summary : create a new group.
*   Actors : Administrator.
*   Preconditions : none.
*   Description :
    *   Administrator selects the Create Group function.
    *   Administrator fills in group details: groupname, users.
    *   Administrator confirms.
*   Exceptions : the groupname already exists in the system.
*   Result : the system contains a new group.

### 3.1.28 Search Group
*   Summary : select a group from a list in order to view the group details.
*   Actors : Administrator.
*   Preconditions : none.
*   Description :
    *   Administrator selects the Search Group function.
    *   Administrator fills in group details.
    *   System shows search results.
*   Exceptions : none.
*   Result : a list of groups fulfilling the search criteria.

### 3.1.29 Delete Group
*   Summary : delete an existing group in the system.
*   Actors : Administrator.
*   Preconditions : the group must be empty (no users).
*   Description :
    *   Administrator selects the Delete Group function.
    *   Administrator fills in groupname.
    *   System shows group details.
    *   Administrator confirms.
*   Exceptions : the groupname does not exist in the system or the group is not empy.
*   Result : the group is deleted in the system.

### 3.1.30 Edit group settings
*   Summary : Select a system group and change its settings.
*   Actors : Administrators.
*   Preconditions : a list of groups as resulting from the group search function.
*   Description :
    *   The actor selects a group from a list of groups resulting from a search query.
    *   The actor changes the group settings.
    *   The actor confirms the changes.
*   Exceptions : none.
*   Result : the group settings are changed.

### 3.1.31 Edit system configuration settings
*   Summary : access the configuration panel in order to change the system configuration settings.
*   Actors : Administrators.
*   Preconditions : none.
*   Description :
    *   Administrator accesses the configuration panel.
    *   Administrator changes the system configuration settings.
    *   Administrator confirms the changes.
*   Exceptions : none.
*   Result : configuration changes are applied to the system.

## 3.2 Performance requirements
TBD.

## 3.3 Usability requirements
*   The web interface will be attractive, simple and standard (W3C XHTML [3]).
*   All functions and options of the PMS should be available in the least amount of clicks, while maintaining a certain amount of structure.

## 3.5 Logical database requirements
All data will be saved in the database: static and dynamic information, statistics, publications, administrator-settings, ... It’s very important to keep the database consistent at all times: no pointers to deleted records, no redundant information, etc The database must be capable to handle serveral requests at once, these requests happen by using SQL-statements. A backup structure is also a requirement to save all the data in case of server of disk problems.

## 3.6 Design constraints
*   The PMS web interface must be conform W3C XHTML 1.0 Transitional standard [3].
*   The implementation must be compliant with the Coding Conventions of SE1 [10].
*   The implementation must be object-oriented.
*   Design diagrams must be made following the UML standard [11].

## 3.7 Software system attributes
### 3.7.1 Reliability
The PMS is developped so that it should not experience software faults. To be able to achieve the least amount of software bugs we use a spiral model with 2 iterations. For more information about the reliability of the PMS and the therefore used testing processes see the SQAP [12] and STD [13] of SE1.

### 3.7.2 Availability
The PMS will be available at all times from any computer (fulfilling assumptions and dependencies in Section 5.1), except when Wilma is not available. The availability of Wilma is an issue that should be handled by the customer. In case of a corrupted database the Administrator should replace the database by the last available database backup. In case of another failure (hardware or software related) the problem should be first solved and afterwards the PMS should be reinitialized. During this downtime the PMS should give an error to the visitors, stating that the PMS is temporarily down.

### 3.7.3 Security
*   Every user account is protected with a personal password. Nobody except the specific user should be able to log into that account and change personal information.
*   The password of the user should be encrypted when submitted from user to server. It should also be saved in an encrypted way in the database and no-one except the PMS should be able to access these passwords.
*   Direct access to the data stored in the database is only allowed for Administrator(s) using the CLI.
*   The user levels (see Section 1.3.1) should always be respected with regard to editing, deleting and uploading publications (and their bibliographical details).

### 3.7.4 Maintainability
*   The database of the PMS should be maintained by the Administrator(s).
*   The PMS (with concern to the user levels, special privileges,. . . ) should be maintained by the Administrators on a global level.
*   On the Departmental level the Moderator(s) will be able to maintain the PMS this way. If the PMS remains available under all circumstances, there are no other maintenance measures to keep in regard.

### 3.7.5 Portability
The PMS is developped and tested to be able to run on Wilma, as specified by the customer. Although this is a 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. Because of the fact that this was not demanded by the customer, we did not fully implement this feature in the PMS.

## 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 in section 3 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).

The following functions are possible (future) expansions of the PMS:
*   Further extending of the supported formats (eg. MS WORD).
*   The possibility to view in the result page a list of documents that refer to this publication.
*   Make the PMS able to automatically to recognize that ‘D. Vermeir’ and ‘Dirk Vermeir’ refer to the same author and that ‘VUB’ or ‘Vrije Universiteit Brussel’ refer to the same institute.
*   If a bibTEX-file with only abstracts and referring URL-fields is uploaded, the PMS would be able to get the full texts through those URL’s.
*   Expand the modular PMS system to make it able to also upload audio and video files (eg. mp3, mpeg) that are recognized automatically.

# 4 Verification
[NULL]

## 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
[NULL]

## 5.1 Assumptions and dependencies
*   The users must have a web browser that supports W3C XHTML [3] 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
*   CLI: Command Line Interface.
*   SCMP: Software Configuration Management Plan.
*   SE1: Software Engineering group 1 [7].
*   SQAP: Software Quality Asssurance Plan [12].
*   SRS: Software Requirements Specification.
*   STD: Software Test Plan [13].
*   TBD: To Be Determined.
