Requirements: Object Oriented Community-Information Tools
Cornelia Stinchcomb
neli@sni.net
Introduction
Requirements Document Objectives
This document summarizes requirements for the Object Oriented Community-Information
Tools (OOCIT) project.
References
Project Documentation
Web Resources
- Javasoft's JNDI
(Java Naming and Directory Services) documentation.
Java:
- The Advanced-Java mailing list
archives are maintained at UC Berkeley. This page is also interesting
because it provides access to archives and subscription services for several
mailing lists.
Books
- Nancy Wilkinson: Using CRC Cards: An Informal
Approach to Object Oriented Development. SIGS Books, 1995.
- Martin Fowler, with Kendall Scott: UML Distilled.
Addison-Wesley, 1997.
- Ivar Jacobson et. al.: Object-Oriented Software
Engineering: A Use Case Driven Approach. Addison-Wesley, 1994.
- Martin Fowler: Analysis Patterns: Reusable
Object Models. Addison-Wesley, 1997.
- Erich Gamma et. al.: Design Patterns: Elements
of Reusable Object Oriented Software. Addison-Wesley, 1994.
Magazines and journals
Acronyms
The following acronyms are used in this document
| Acronym |
Description |
| LDAP |
Lightweight Directory
Access Protocol |
| OOCIT |
Object Oriented Community-Information
Tools |
| |
|
About this document
The remainder of this document is organized as follows:
- Product overview: system objectives, assumptions and dependencies.
- Domain object model: a conceptual object-oriented analysis of
the domain, focused on domain entities.
- Use cases: provide an analysis of the system functional requirements
using a task oriented approach.
- Non-functional requirements: performance, scalability, extensibility,
availability, reliability, portability, usability, security, documentation,
testability, localization.
- System constraints: cost, schedule, deployment platforms, tools.
- Priorities: feature development priorities will be catalogued
during analysis.
Product Overview
System Objectives
Provide integrated support for community access lists, and possibly
for access to community email archives.
Support both voluntary and role-based (organizational) communities.
Assumptions
System should be UCAR-centric and accessible to the community. Some
functions will be reserved for administrators. UCAR staff may have special
privileges.
The new system should be at least as functional as the current system
at the time of deployment.
Dependencies
Domain Object Model
Context
Community Information Sharing: Context
It was suggested that significant innovation could occur in the areas
of indexes and indexing tools, and support for learning graphs.
Overview
UML Notation Summary
Classes
Member
Message
Address
Mailing List
Log
Survey
License
Security Policy
Use Cases
The use cases in this section were brainstormed on 9 March 98. Initial
priority numbers were added on 2 April 98, and are subject to change.
Bold items are used in the domain object model. Initial priorities precede
the use case description, in [] square brackets.
- [2] Access a community address book through (some) email packages.
- [1] Send email to community members
- [2] Send postal mail to community members: generate postal mail labels
- [3] Send a fax to community members
- Add/delete/modify community member information
- [2] by member
- [1] by administrator
- [2] Add/modify a {list, site, member} attribute, type of data, or class
- Create a new community sub-list based on criteria
- [1] find members
- [1] create a new persistent list
- [1] create a new temporary list
- [1] merge lists and remove duplicates
- [1] profile a community
- [1] contact list members
- Support a moderated list
- [3] Mail approved by one or more moderators
- [2] Only list members may post
- [3] Approve a message to be sent to a list
- [2] Archive messages
- Access message archives
- [2] Simplest archive access
- [3] Improved access with good search technology
- [1] Community member subscribes to one or more lists
- [1] Add/modify/delete organization info: "site data" Such
data includes:
- disciplines served
- real-time data profile, including type of data and, for each type,
data statistics.
- software licenses: licensed packages, and dates
- computing platforms
- technical contact
- license contact
- administrative contact
- contract contact
- site web servers: URLs for more general site information
- list of references
- Display member information
- [1] for a selected member
- [2] generate a custom report on a set of members
- [1] Search for members based on member information. Member information
includes:
- expertise
- interests
- location
- title
- role
- subscribed mailing lists
- contact information: phone, email, fax, postal addresses
- current committees and other roles
- preferred message delivery method
- URLs for more member information
- [1-3] Support an authorization mechanism. Simplest mechanism first,
then improve functionality.
- Authorize user action
- Approve subscription request
- [1-3] Set/modify security policy for a member, an organization, a list,
a community. Simplest mechanism first, then improve functionality.
- Conduct survey
- [2] Issue survey
- [2] Collect results
- [3] Report results
- [3] Update profile data from survey results
- [1-3] Log activity. Simplest access first, improve later
- subscriptions
- member access
- administrator activity
- [3] Support digests
- [1] Add/modify list data, including
- description
- owner
- moderator-list
- member-list
- password
- security policy
- [2] Populate database
- from existing data
- by sifting user interactions
- [3] Support the licensing process
- provide site license application (from the web, or order hard copy)
- update member/site information from completed license application
- generate new license from completed license application
- [3] Generate message from message template
Non-Functional Requirements
Performance
Scalability
Availability
Reliability
Operating Environment
Deployment Platform
Users will use a web-based client: internet browser with applets
A SUN Solaris server will host the application (domain-level) tier and
will also host the object repository.
The Java programming language will be used for implementation.
Portability
Usability
User Classes
The following classes of users have been identified. Specific use cases
may be targeted towards particular user classes. Users in a particular
class will have permission to undertake specific actions.
Community member
UCAR staff
Community-Information Administrator
System Administrator
Usability testing
Testing of the interface by each class of users is desired prior to
deployment.
Extensibility
Security
Documentation
User Documentation
An on-line help system is required. It should include
- Field level help
- Screen level help
- A searchable user's guide
Internal documentation
System Test
Localization
System Constraints
Development constraints
Deployment constraints
Priorities
Issues
The following concerns have been raised during analysis:
- Out-of-date data: Data should be kept in its most current state
to the extent possible. If data can be linked to rather than maintained
internally, we may have a better chance at keeping it up to date. Automatic
methods of keeping data updated (where the intervention of a human administrator
is not required) should be investigated and implemented where possible.
- PC Interoperability: "Front-office" administrative
staff is Windows-based and want their software to interoperate well with
the tools they are used to using, such as Microsoft Office.
System Architecture
Overview
External Interfaces
Object Repository
An evaluation questionnaire has been prepared, and a matrix of vendor
answers is being constructed.
JNDI
LDAP