Navigation Area The latest news about Team Synergy Information about Projects undertaken by Team Synergy Team Synergy Member Profiles Team Synergy Member Management Team Synergy Project-related Documentation Team Synergy Meetings Archive Downloads relating to Team Synergy Projects Funny Stuff Team Synergy Logo
Icon Navigation Home Help / Frequently Asked Questions Products Site Site Map Email the Webmaster

Documentation
Documentation Home
BKernel Javadoc Documentation (No Frames)
Cohesion - Client User Guide
Cohesion - Administration Manual
Configuration Management
CVS Documentation
Debug Package Documentation
Demerit Point Scheme
Management Procedures
Package Description
Project Plans and Procedures
Samba
Software Design Spec.
Software Requirements Spec.
Syndicate User Manual
Technical Style Standards
Web Document Style Standards
Work Log & Weekly Plan Proc.
WWW Document Template
 
Table of Contents
Executive Summary

1.   Introduction

1.1  Document Purpose
1.2  Project Scope
1.3  Definitions, Acronyms, and Abbreviations
1.4  Document Overview
1.5  Applicable Documents
2.   Development Process Perspective 2.1  Methodology
2.2  Software Process
2.3  Core Functionality
3.   Product Characteristics 3.1 Functions
3.2 Performance
3.3 Interfaces 3.3.1 Mouse
3.3.2 Keyboard
3.3.3 Screen
3.3.4 Printer
4. User Characteristics 4.1 The General User
4.2 The Software Designer
4.3 The Quality Engineer
4.4 The Administrator
4.5 The Client
5. Functional Requirements 5.1  CRUD Project
5.2  CRUD Workspace
5.3  CRUD Model
5.4  CRUD Meta-Model
5.5  CRUD Package
5.6  File IO
5.7  Communications
5.8  Administration
5.9  Online Help
6. Interface Requirements 6.1 Supported Display Modes
6.2 Supported Devices
7. System Diagnostics 7.1 Level of Diagnostics
7.2 General Reporting Formats
7.3 Diagnostic Utility Software
8. Verification Requirements

9. General Constraints

9.1 Assumptions and Dependencies 10. System Requirements 10.1 Client Computer
10.2 Server Computer
Appendix A : External Context Diagram

Appendix B : Internal Context Diagram

Appendix C : Use Cases

Appendix D : Hierarchical User Interface Decomposition

 
Pages 1 - 2 - 3 - 4
Software Requirements Specification

Version 1.1

Edition 1

Document ID:  SRS 
Author(s):  Danny Goulas
Daniel Woodhouse
Jaycee Phua 
Tristan Austin
John Newbigin
Imron Alston
Christian Karolos
Matthew Evans
Shane Fitzgibbon 
Reviewed by:  Danny Goulas
Daniel Woodhouse
Jaycee Phua
George Panagiotopoulos
Matthew Sykes
Nicholas Phipps
Date:  5 October 1999 


Revision History

Date Modifications Reason Version
1999.04.12 Adapted SRS Template to HTML (and Style Standards) (DG) Based on hit3058-srs-0.1d (Rajesh Vasa) 0.2d
1999.04.29 Various initial sections combined (DW)  Initiate document collation  0.3d 
1999.05.18 Added, updated and formatted various sections (DG) Progressive document collation 0.4d
1999.05.19 Added, updated and formatted various sections (DW) Progressive document collation 0.45d
1999.05.20  Document formatting verified (JP)  Conformance to Latest Style Specification  0.5d 
1999.05.21  Reviewer Added to Cover Page (DG) Project Architect content verification  0.6d 
1999.05.22  Functional Requirements section reorganised (DG) Reviewer (Project Architect) suggestions (TA)  0.7d 
1999.05.24  Functional Requirements section revised (DG) Ensure document readability 0.75d 
1999.05.25  Document Scope and Executive Summary added (JP)  Finalising document contents  0.80d 
1999.05.27  Document contents finalised (DG) 1st Draft complete  0.85d 
1999.05.28  Reviewers added to Cover Page (JP) Quality Assurance check (NP, GP, MS) 0.9d 
1999.05.28 Updated (DG) Comply to QA review 0.95d
1999.07.26 Updated various sections (DW) Comply to QA review 0.96d
1999.07.30 Reviewed contents and style (DG) Ensure document readability 0.97d
1999.08.03 Revised section 5 order and contents (DG/JP/DW) Updating document contents 0.98d
1999.08.03 Reviewed overall document style (DG/JP/DW) Ensure document readability 1.0d
1999.09.02 Cover Page formatting updated (JP) Reflect changes in Style 1.01d
1999.09.14 Reviewed entire document content. (NP/SH/MS) Preparation of final version 1.05d
1999.09.21 Added inter-section links (NP) Preparation of final version 1.06d
1999.10.05 Committed changes to document (NP) Submitted final document 1.1


Table Of Contents
 
Executive Summary

1.   Introduction

1.1  Document Purpose
1.2  Project Scope
1.3  Definitions, Acronyms, and Abbreviations
1.4  Document Overview
1.5  Applicable Documents
2.   Development Process Perspective
2.1  Methodology
2.2  Software Process
2.3  Core Functionality
3.   Product Characteristics
3.1 Functions
3.2 Performance
3.3 Interfaces
3.3.1 Mouse
3.3.2 Keyboard
3.3.3 Screen
3.3.4 Printer
4. User Characteristics
4.1 The General User
4.2 The Software Designer
4.3 The Quality Engineer
4.4 The Administrator
4.5 The Client
5. Functional Requirements
5.1  CRUD Project
5.2  CRUD Workspace
5.3  CRUD Model
5.4  CRUD Meta-Model
5.5  CRUD Package
5.6  File IO
5.7  Communications
5.8  Administration
5.9  Online Help
6. Interface Requirements
6.1 Supported Display Modes
6.2 Supported Devices
7. System Diagnostics
7.1 Level of Diagnostics
7.2 General Reporting Formats
7.3 Diagnostic Utility Software
8. Verification Requirements

9. General Constraints

9.1 Assumptions and Dependencies
10. System Requirements
10.1 Computer Configuration
Appendix A : External Context Diagram

Appendix B : Internal Context Diagram

Appendix C : Use Cases

Appendix D : Hierarchical User Interface Decomposition


Executive Summary

This Software Requirements Specification (SRS) provides a detailed analysis on the objectives of the Software Engineering Project team known as Team Synergy, in developing a Computer Aided Software Engineering (CASE) Tool titled Cohesion. The final software product, in conjunction with all other accompanying components, are expected to be fully complete by Week 11, Semester 2 (October) 1999, and will be implemented using the Java Programming Language.

Expected requirements and functions available with Cohesion have been outlined in this document, including anticipated product users and details of the structure and composition that will be developed.
 
 

1. Introduction
 

1.1 Document Purpose

This document details the functional and performance requirements for the computer software to be developed by Team Synergy for the Client.  The requirements were determined during the analysis of the client's operations by Team Synergy.

This document will be subject to formal/informal review by the Team Synergy development team and the Client.  It will form the basis for ongoing development and testing of software by Team Synergy to meet the requirements of the Client.

This document is intended to supply sufficient software requirement information to the Client to establish a solid foundation for subsequent software assessment and approval.  It also provides the development team with a basis for on-going software design, and the Quality Assurance team with a basis to form test cases.
 
 

1.2 Project Scope

This project will utilise the skills of all Team Synergy members in developing a Computer Aided Software Engineering (CASE) Tool.  The intention of which is to create a product of the highest quality and functionality, within the time constraints set by the assessing body.

The project shall be undertaken with heavy emphasis on achieving realistic goals. At the same time, assisting each team member in implementing their understanding of the processes involved with software development, in an environment typically found in the Software Development industry.

Once the project is completed it will be available for download, free of any license and/or on-going support or software updates.
 

1.3 Definitions, Acronyms, and Abbreviations

Upper case words refer to abbreviations within the CVS. For more information on a topic, read the relevant section within the body of this document.
 
Aggregation One or more classes that make up another class.
Arc An element on a model that connects 2 nodes.
Attribute A piece of data or knowledge that an object has.
Broadcast The action of transmitting data through all available channels. Used to find local servers.
Class A definition of an object, which contains a description of the data within the object and the operations it performs.
Communication Module The module that allows communication between the client and the server.
CRUD Create Retrieve Update Delete
Developers The team responsible for the development of the software system.
Hotkey A key (or combination of keys) that performs a task otherwise available using buttons or menus.
Inheritance One class taking all the data and operations of another class, optionally extending and/or altering them.
Instance One particular object that has been created from a class.
JLF Java Look & Feel
Jmetric A software product that analyses Java source code or Java byte code, and provides metrics describing it.
Local Space The coordinate space where shape outlines are defined.  (0,0) is in the center, positive x is right, and positive y is down. See also Model Space.
Meta-Arc Defines the type of, and attributes present in, an arc.
Meta-Model A collection of node, arc and rule definitions that helps give meaning to a particular model.
Meta-Node Defines the type of, and attributes present in, a node. 
Meta-Rule Defines the contraints of placement of nodes and arcs including connections between them.
Model A collection of nodes and arcs, plus the meta-model that gives meaning to them, and a package which determines how the individual nodes should be drawn.
Model Space The coordinate space where the model is defined.  Nodes are given model space coordinates to indicate their position on the map. Positive x is right, and positive y is down. See also Local Space.
Node An element of a model.
. Normal. Conditions Normal operating conditions of the computer running the application. ie. plenty of free memory, no . processor intensive. background processes etc.
Note An element on a model, that is purely for information/documentation purposes only.
Object An instance (single instantiation) of a class.
OML Open Modelling Language
Package Contains a way of drawing nodes/arcs, for each node/arc specified in a meta-model.
Package Arc Defines how to draw/represent a Meta-Arc, including where and how to draw/represent any terminating nodes.
Package Node Defines how to draw/represent a Meta-Node, including where and how to draw/represent any attributes present.
Process An operation or action which transforms data values (or attributes) of a class.
Project A collection of related models,  each stored in a separate file.
Project Tree The directory-type structure of projects within a workspace window/pane.
Real-time Functions performed in real time, should allow the user to interactively perform the function and get feedback about what the function is doing.
Recursive An operation or object making reference to itself.
Relationship Defines a specific connection between two classes.  They are defined by the context of the problem that is being analyzed.
Repository A storage location for data.
Requirement A condition or capability needed by a user to solve a problem or achieve an objective.
Rubber Box A method of selecting an area with the mouse, the 'rubber box' is the selection rectangle shown.
Rule/s A rule is a means by which nodes and arcs at the model level are given strict terms by which they can interact with each other.
Selection A list of items on the model that is currently selected by the user.  The items can be anything that is determined to be selectable i.e. nodes, arcs, notes etc.
SMTP Simple Mail Transfer Protocol
Specification A document that describes, in a complete, precise, verifiable manner, the requirements, design, behaviors and/or other characteristics of a system or system component.
State Describes a unique value, or unique combination of all values.
Sub Script Used to classify scripts into more specialised versions.
UML Unified Modelling Language
UI User Interface
Use Case A disciplined method of describing the typical behavior of a component of the system.
User The person operating and/or using the software system.
Viewport An area on the screen that is being used to view a model.
Viewport Space The coordinate space that represents the screen.  (0,0) is in the top left corner, positive x is right, and positive y is down.
View Space The coordinate space where the viewport is centered (0,0). positive x is right, and positive y is down.
Workspace A collection of projects.
Workspace Tree The directory-type structure of workspaces as shown in the workspace window/pane.
Zoom Space The viewport space after it has been zoomed to the correct zoom factor. Positive x is right, and positive y is down.

1.4 Document Overview

This document, the Software Requirements Specification (SRS), identifies the software requirements in the form of a task and system object model. The model presented within this document is an implicit statement of the requirements. It exhibits the boundaries and capabilities of the system to be built.

This document has 10 major sections and 4 appendices:

  • Executive Summary, gives a brief summary of the document contents and their purpose.
  • Section 1 (Introduction) provides an overview of the entire SRS document and the product being specified.
  • Section 2 (Development Process Perspective) describes the development methodology.
  • Section 3 (Product Characteristics) describes the product characteristics in terms of functions, performance and interfaces..
  • Section 4 (User Characteristics) describes the requirements of the users of the product.
  • Section 5 (Functional Requirements) describes the various tasks that are to be performed, in response to user requests of the system, taking a Use Case form (see also Appendix C).
  • Section 6 (Interface Requirements) describes the display modes and devices supported by the product.
  • Section 7 (System Diagnostics) gives a brief description of the types of diagnostic tools available for use with the product.
  • Section 8 (Verification Requirements) describes the quality assurance methodology used to ensure a bug-free product.
  • Section 9 (General Constraints) describes the limitations of the product, addressing the constraints, assumptions and dependencies, expressed in natural language.
  • Section 10 (System Requirements) describes the computers, printers, etc. anticipated to be required within the new system for both the client and server computers.
  • Appendix A (External Context Diagram).
  • Appendix B (Internal Context Diagram).
  • Appendix C (Task Scripts).
  • Appendix D (Hierarchical User Interface Compostition).

1.5 Applicable Documents
 
 
Document Name Document ID
Web Document Style Standards WDSS
Technical Style Standards TSS
Project Plan & Procedures  PP&P
 Table 1.7.1 - 1: Applicable Documents.









2. Development Process Perspective
 

2.1 Methodology

There will be no formal software development approach used, instead we will be using a mixture of techniques from various methodologies.

In terms of design, intially we will be taking a top down approach, identifying all the distinct modules in the system and the interfaces between them and then moving down into each module to design the increasingly more detailed aspects.

Periodically we will be identifying common and reusable components in the various modules and merging them. All of these modules and components will be represented in a number of class diagrams of varying granularity. For example, a high level class diagram may have a more detailed class diagram defining the make up of one of its classes.

In terms of the user interface, Use Cases will be created for all of the functionality intended to be incorporated and from those define, initially on paper, the user interfaces. This will be going on in parallel to the module design process.
 

2.2 Software Process

Given the fact that this will be an object oriented design to be implemented in an entirely object oriented language, the classes identified will map 1:1 to the classes we implement in Java.
 

2.3 Core Functionality

Of the functionality defined in section 5 only the following will definitely be implemented, with the rest to be implemented time permitting.
 
5.1 CRUD Project
     5.1.1 Create New Project
          5.1.1.1 Edit Properties of Project
     5.1.2 Add Model to Project
     5.1.3 Open Project
5.2 CRUD Workspace
     5.2.1 Create New Workspace
     5.2.2 Add Project to Workspace
5.3 CRUD Model
     5.3.1 Create New Model
          5.3.1.1 Edit Model
               5.3.1.1.1 Select a tool from the palette
               5.3.1.1.2 Place node on Model
               5.3.1.1.3 Connect nodes with an arc
               5.3.1.1.4 Select selectable item
               5.3.1.1.5 Deselect selectable item
               5.3.1.1.6 Move selection
               5.3.1.1.11 Delete selected items
               5.3.1.1.12 Evaluate rule
     5.3.2 Assign Meta-Model to Model
     5.3.3 Assign Package to Model
     5.3.7 View Model
          5.3.7.1 Display Visible Nodes in a viewport
          5.3.7.2 Display Visible Arcs in a viewport
          5.3.7.3 Transform local coords to viewport coords
          5.3.7.4 Zoom view in/out
          5.3.7.5 Pan view left/right/up/down
5.4 CRUD Meta-Model
     5.4.1 Create New Meta-Model
     5.4.2 CRUD Meta-Nodes
          5.4.2.1 Specify Type
          5.4.2.2 Specify Properties
     5.4.3 CRUD Meta-Arcs
          5.4.3.1 Specify Type
          5.4.3.2 Specify Properties
     5.4.4 CRUD Meta-Rules
          5.4.4.1 Specify Type of Meta-Rule
          5.4.4.2 Specify Components of Meta-Rule
          5.4.4.3 Specify Meta-Condition
5.5 CRUD Package
     5.5.1 Create New Package
          5.5.1.1 Select Meta-Model to Implement
     5.5.2 CRUD Package Node
          5.5.2.1 Specify package node shape
          5.5.2.2 Specifiy display information for a meta-node's properties
     5.5.3 CRUD Package Arc
          5.5.3.1 Specify default line type (straight, curved, stepped)
          5.5.3.2 Specify ard graphic and it's location
5.6 File I/O
     5.6.1 Save Project/Model Locally
          5.6.1.1 Save Locally
          5.6.1.2 Check-In to Remote Server
          5.6.1.3 Resolve Conflicts
     5.6.2 Check-Out Project/Model
     5.6.7 Import Model from JMetric
5.7 Communications
     5.7.1 Logging in to Server
     5.7.2 Logging out from Server
     5.7.3 Send SMTP Message
          5.7.3.1 Select Receiver from Address Book
     5.7.5 Send Direct Internal Message
          5.7.5.1 Select Logged on Users to Receive Direct Message
          5.7.5.2 Select Message to Reply To
          5.7.5.3 Reply To a Direct Message
     5.7.8 Modify Address Book
     5.7.9 Receive Direct Message
5.8 Administration
     5.8.2 Create Users and Groups
          5.8.2.1 Create/Edit/View User
               5.8.2.1.1 Add User
               5.8.2.1.2 Edit User
               5.8.2.1.3 Remove User

 

3. Product Characteristics
 

3.1 Functions

The software is based on a client server architecture, with one server capable of handling up to 20 clients. The functionality supported by the software is described in detail in [Section 5]. This functionality can be described in a number of major functional areas. These areas include:

  • User management: Create and maintain a list of users who can use the system.
  • Messaging: e-mail messages can be sent and direct messages can be sent and received.
  • Address book: Both a global and a local address book can be maintained.
  • Project management: A project can be stored locally or remotely. A project can contain a number of models.
  • Edit Models: The models are the main functionality of the system.  Each model represents a semantic net which is drawn using a certain meta-model. This then allows the generation of the following graphs:
Diagram Name  Notation Support 
System Context Diagrams  OML 
Software Context Diagrams  OML 
Class Diagrams  OML, UML 
Package Diagrams  OML, UML 
Inheritance Diagrams  OML, UML 
Deployment Diagrams  OML 
Use Case Diagrams  OML, UML 
Table 3.2.1 - 1: model.
  • Meta-model: The meta-model architecture allows the above mentioned diagrams to be customised to incorporate enhancements, or new meta-models can be created to allow new diagrams to be created. Such diagrams might be entity-relation diagrams or state transition diagrams.
  • File Management: Both projects and models can be stored locally for individual use or stored remotely so that a number of people can access them. If a more than one person uses a remote file, then a Concurrent Versioning System is used to maintain one master copy, and changes made are integrated into this copy. This way, users do not need to use any locking and if a conflict occurs, only one person needs to decide which parts of the conflicts to use.

3.2 Performance

The performance of this product is dependant on the underlying hardware. To ensure the specified performance can be achieved, the following hardware is required. Further details are listed in [Section 10].

Intel Pentium II 333MHz
64 Megabytes Primary Memory (RAM)
10 Megabytes free Hard Disk space.
10 Megabit per second Ethernet connection
 

The product may still operate on hardware that does not meet this specification, but on this specification, it can be guaranteed to meet the specified performance. Increasing the specification may lead to better performance.
 

3.3 Interfaces

The client software will make extensive use of Windows GUI features.  In particular, the point >click and click > drag features.  To support the user interaction with the software, the following interface devices have been identified and will be supported:

3.3.1 Mouse

The mouse is the major input device, allowing the models to be created and edited. Many functions can be done without a mouse, but a mouse is required for full functionality.  This does not strictly have to be a mouse, any two buttoned pointing device should be sufficient.

3.3.2 Keyboard

The keyboard is required for entering textual information.  Most of the node properties will be text based so require the keyboard for input.  Some GUI based functions can also be performed using the keyboard.

3.3.3 Screen

The screen is the major output device.  It supports the GUI interface by providing the user with feedback relating to the mouse and keyboard, as well as the content of the application, namely the models.  The screen should support 256 colours in 1024x768 resolution.

3.3.4 Printer

A printer allows hard copies of the models to be printed.  Either a local or networked printer should be suitable.  A printer capable of printing black and white in 300 dpi should be sufficient.
 
 

4. User Characteristics

We have identified five potential classifications of users of our system:

  • Software Designers: These are the most obvious users. They will use the system as a means of laying out the design of an as yet unimplemented system.
  • Software Developers:  These are the people that take the model generated by the designers and implement it in code.  They may also use the system to identify the design of an existing system in order to maintain it.
  • Quality Engineers:  These users are usually responsible for ensuring that a design is feasible and/or reliable. They will therefore also need to be looking at the output from our system.
  • System Administrator: Due to the client/server/concurrent nature of the system, some one needs to be responsible for security and maintenance of the system. This is the System Administrators role.  The Administrator of the system, project or model need not be a member of the any of the other roles identified here.
  • The Client:  More often than not, software is designed for a client. The client may wish to see the design as layed out by the system and be able to see what exactly they are buying.


4.1 The General User

All users can be assumed to have the following characteristics:

  • Ability to read and understand English.
  • Familiarity with the operation of the basic Graphical User Interface (GUI) components of the Windows NT operating system.
  • Beyond the above, no further facility with computer technology can be assumed.

4.2 The Software Designer

The Software Designer users can be assumed to have the following characteristics:

    • A thorough knowledge of object oriented design notation.
    • Familiarity with common design environments. For example, the concept of selecting a tool to draw with.
    • Software Developers User Characteristics.

4.3 The Quality Engineer

The Quality Engineer users can be assumed to have the following characteristics:

  • A throrough knowledge of object oriented design notation.

4.4 The Administrator

The Administrator users will not be required to have any specific characteristics.
 

4.5 The Client

Rudimentary understanding of modelling techniques. (Won't necessarily have to use the system, just look at its output).