Vyasa: Software Requirements Specification
Vyasa: Software Requirements Specification
vyasa
Prepared by Fred Eaker
2006 November
Table of Contents
Revision History..............................................................................................................................4
1. Introduction..................................................................................................................................5
1.1 Purpose..................................................................................................................................5
1.2 Document Conventions.........................................................................................................5
1.3 Intended Audience and Reading Suggestions.......................................................................5
1.4 Project Scope.........................................................................................................................5
2. Overall Description......................................................................................................................5
2.1 Product Perspective...............................................................................................................5
2.2 Product Features....................................................................................................................6
2.3 Operating Environment.........................................................................................................6
2.4 Design and Implementation Constraints...............................................................................6
2.5 User Documentation..............................................................................................................6
3.0 System Features.........................................................................................................................7
3.1 Digital Asset Loading (DAL)................................................................................................7
3.1.1 Description and Priority................................................................................................7
3.1.2 Stimulus/Response Sequences.......................................................................................7
3.1.3 Functional Requirements...............................................................................................7
3.2 Digital Asset Analysis (DAA)..............................................................................................7
3.2.1 Description and Priority................................................................................................7
3.1.2 Stimulus/Response Sequence........................................................................................7
3.1.3 Functional Requirements...............................................................................................8
3.3 Digital Asset Repository (DAR)...........................................................................................8
3.3.1 Description and Priority................................................................................................8
3.3.2 Stimulus/Response Sequence........................................................................................9
3.3.3 Functional Requirements...............................................................................................9
4.0 External Interface Requirements................................................................................................9
4.1 User Interfaces......................................................................................................................9
4.2 Hardware Interfaces..............................................................................................................9
4.3 Software Interfaces................................................................................................................9
4.4 Communications Interfaces.................................................................................................10
5. Other Nonfunctional Requirements...........................................................................................10
5.1 Performance Requirements.................................................................................................10
5.2 Safety Requirements...........................................................................................................10
5.3 Security Requirements........................................................................................................10
5.4 Software Quality Attributes................................................................................................10
5.4.1 Understandability........................................................................................................10
5.4.2 Completeness...............................................................................................................10
5.4.3 Conciseness, Consistency and Efficiency...................................................................10
5.4.4 Portability....................................................................................................................11
5.4.5 Maintainability............................................................................................................11
5.4.6 Reliability....................................................................................................................11
5.4.7 Security........................................................................................................................11
6. Other Requirements...................................................................................................................11
6.1 Internationalization.............................................................................................................11
Appendix A: Glossary....................................................................................................................11
Appendix B: Analysis Models.......................................................................................................12
Data Flow Diagram (DFD).......................................................................................................12
Class Diagrams..........................................................................................................................13
Appendix C: Issues List.................................................................................................................14
Revision History
Name Date Reason for Change Version
Fred Eaker
October 2006 Creation 1.0
[email protected]
Fred Eaker
November 2006 JSR-170 1.1.0
[email protected]
Fred Eaker
December 2006 Open-source Java 1.1.1
[email protected]
1.1 Purpose
This document specifies the software requirements for the vyasa digital library application.
This document describe the project scope for software developers. Readers should also be
familiar with the JSR-170 (Java Content Repository) API specification1.
vyasa is a digital library application that incorporates the functions of digital asset and
document management systems. Its primary purpose is to facilitate information retrieval and
knowledge discovery by providing comprehensive, automatic metadata generation through
ontological reasoning and semantic analysis.
Versioning, workflow management, transactions, locking and digital rights management are
currently beyond the scope of this project.
2. Overall Description
1 http://jcp.org/en/jsr/detail?id=170
The features of the system fall into 4 main divisions: loading, retrieval, search and analysis.
The system loads any type of digital asset to analyze it and automatically generate metadex.
Analysis results are confirmed by the user, and once complete, the original digital asset as well
as its associated metadex are stored in a repository. Metadex supports search and retrieval
through the JSR-170 API (Level 2).
The system conforms to JSR-170 Level 2 but does not provide the following optional features:
transactions, locking and versioning.
The system is developed in the Java programming language. It runs on any hardware and
operating system supported by the latest Java Virtual Machines.
Sun Microsystems open-sourced the Java platform in November 2006.2 Wikipedia currently lists
6 implementations of Java.3 Developers should identify any possible incompatibilities across
these implementations and Apple's implementation for OS X.
vyasa is an open source project and will be licensed under an Open Source Initiative approved
“protective” license4. The exact open source license to be used by the system is not known at this
time. According to the Free Software Foundation, an application that uses many different open
source components under different licenses requires an analysis of those components and their
respective licenses.5 Developers should ensure that the licenses of open source components are
compatible6 to make this analysis easier (see section 5.4.2).
2 http://www.sun.com/smi/Press/sunflash/2006-11/sunflash.20061113.1.xml
3 http://en.wikipedia.org/wiki/Java_%28programming_language%29#Java_Implementations
4 As defined by Mark Webbink in his article “Understanding Open Source Software”
http://www.nswscl.org.au/journal/51/Mark_H_Webbink.html
5 http://www.gnu.org/licenses/gpl-faq.html#ManyDifferentLicenses
6 http://www.gnu.org/licenses/gpl-faq.html#WhatIsCompatible
DAA-3: Provide the user with an interface to 1) verify the accuracy of the automatically
generated metadex and 2) manually enter or upload data into the metadex.
DAS-4: Pass the asset and its metadex to the digital asset repository.
7 http://magicdb.org/
Detailed user interface requirements have been purposefully omitted from this document.
A separate user interface specification for the system's default GUI will be created.
The system's user interface is intended to be customizable by any designer or developer
that chooses to do so. This flexibility is accomplished by ensuring that content and
presentation remain completely separate through the model-view-controller (MVC)
design pattern. Product branding will also be supported with the use of custom graphics.
The JSR-API will be the sole interface for with the repository. Providing an additional
web service communication layer is currently beyond scope.
The performance of digital asset indexing and searching is measured by response time and
precision. Performance in document retrieval is measured by several formulas specific to the
science of information retrieval.8
The performance of browsing and displaying is measured by response time and is heavily
influenced by user perception.
There are currently no benchmarks available for response time or precision. See Appendix C.
Security of the copyright-protected content that may be stored in the system, known as digital
rights management, is currently beyond the scope of this project.
5.4.1 Understandability
Application code and comments should be written descriptively. The names of classes,
methods and variables should be self-descriptive. Methods and classes will be
commented to detail their purpose.
5.4.2 Completeness
All external libraries including their respective licenses should be documented.
5.4.3 Conciseness, Consistency and Efficiency
8 http://en.wikipedia.org/wiki/Information_retrieval#Performance_measures
6. Other Requirements
6.1 Internationalization
Digital assets and their metadex, especially text documents, may originate from any location in
the world. Internationalized analysis, search and display will be supported through the use of
Unicode and through the separation of content and presentation. More research needs to be done
on this requirement to ensure that the application is designed appropriately. See Appendix C.
Appendix A: Glossary
DAA—digital asset analysis; a function that involves collection of data about the digital asset
(metadata) and, if the asset is a text document, various indexes that identify its contents (full-text,
semantic, ontological).
DAL—digital asset loading; a function that facilitates the selection and loading of digital assets.
DAR—digital asset repository; stores digital assets along with their metadex.
The following data flow diagram represents the entire system. The scope of this document is
represented by the light red box encompassing processes 1-5. The user interface DFD
(represented by a light blue box) is included to give a broader view of the system until a formal
user interface specification is created.
9 http://en.wikipedia.org/wiki/Digital_asset