Software Requirements Specification Template



Software Requirements Specification

For

.NET And Java Based Performance Monitor for the Web

Version 1.0 approved

Prepared by Group 2

UHCL and Tietronix

09/07/2005

Table of Contents

Table of Contents ii

Revision History ii

1. Introduction 1

1.1 Purpose 1

1.2 Intended Audience and Reading Suggestions 1

1.3 Project Scope 1

2. Overall Description 1

2.1 Product Perspective 1

2.2 Product Features 1

2.3 User Classes and Characteristics 2

2.4 Operating Environment 2

2.5 Design and Implementation Constraints 3

2.6 User Documentation 3

2.7 Assumptions and Dependencies 3

3. System Features 3

3.1 Performance Counter Retrieval 3

4. External Interface Requirements 8

4.1 User Interfaces 8

4.2 Hardware Interfaces 8

4.3 Software Interfaces 8

4.4 Communications Interfaces 8

5. Other Nonfunctional Requirements 8

5.1 Performance Requirements 8

5.2 Safety Requirements 8

5.3 Security Requirements 8

5.4 Software Quality Attributes 9

6. Other Requirements 9

Appendix A: Glossary 9

Appendix B: Input/Output File Formats 9

B.1 Setup File DTD 9

B.2 Setup File example 9

B.3 Results File DTD 10

Revision History

|Name |Date |Reason For Changes |Version |

| | | | |

| | | | |

Introduction

1 Purpose

The document is created to give the initial specification of the application that will be used to monitor the servers remotely for performance issues. This document will help the developers to setup the software so that they can monitor the specific resources they want.

2 Intended Audience and Reading Suggestions

This document is intended for the for all of the stakeholders of the project in order to agree on what exactly is to be delivered to the customer.

3 Project Scope

The software is web-based performance gathering tool that will gather metrics at the application, OS and network level for a specified period of time. The tool will examine and retrieve all task manager metrics and entities along with detailed information regarding the current running state of the application and the backend database used.

Overall Description

1 Product Perspective

A simple way to monitor a system is to gather quick metrics of memory usage, network usage and disk utilization. There are tools available, commercial or open source that support monitoring. Many Operating Systems and applications themselves come with performance counters that can be monitored. But unfortunately, all these tools usually require a person sitting physically at a computer writing down the numbers.

Thus the need for a web based performance monitor.

2 Product Features

The software is used mainly to gather software counters of a remote server that serves real time applications. It is also web based software so the programmer who is maintaining can access it from virtually any where.

[pic]

3 User Classes and Characteristics

There is one type of user of this application. This application is intended to be used by system administrators who have a working knowledge of Windows performance counters and XML.

4 Operating Environment

Windows 2003/2000 Server

5 Design and Implementation Constraints

The solution will be a J2EE web application.

6 User Documentation

Please see the User’s Guide for instructions on using the application.

7 Assumptions and Dependencies

It is assumed that the application will deployed on a Windows 2000 or later operating system. The solution is currently dependent on the open source Jawin project for generating the JNI code that allows the Java web application to communicate with the DLL.

System Features

1 Performance Counter Retrieval

3.1.1 Description and Priority

The system will retrieve the results of the performance counters that the user has chosen to monitor. This ability is the most important feature of the system.

3.1.2 Stimulus/Response Sequences

The user will select one or more performance counters to retrieve and the system will retrieve them from the operating system and display the results to the user.

3. Functional Requirements

1. Starting Page

REQ-1: The Starting page shall contain a link to allow the user to download the list of available performance counters on the system.

REQ-2: The Starting page shall contain a file upload box that will allow the user to upload a file of performance counters to monitor.

REQ-3: The system shall forward the user to the Setup page upon a successful upload of a performance counter file.

REQ-4: The system shall display an error to the user if the format of the file does not conform to the required file format.

2. Setup Page

REQ-5: The Setup page shall have a text box for the user to enter the number of seconds to monitor the selected performance counters.

REQ-6: The Setup page shall have a text box for the user to enter the number of seconds in between polls of the performance counters.

REQ-7: The Setup page shall have a submit button for the user to push when they are ready to start monitoring the selected performance counters.

REQ-8: The system shall immediately stop monitoring the performance counters if any of the counters are not available when the monitoring starts.

REQ-9: The system shall report partial results for any performance counter that becomes unavailable during the monitoring process.

3. Results Pages

REQ-10: The Results page shall contain a process table that displays the results of any performance counters for the process object which includes the minimum, maximum, and average values in different colors.

REQ-11: The first column of the process table shall contain the names of the monitored processes.

REQ-12: The Results page shall contain a second table to display the results of any non-process performance counter.

REQ-13: The second table shall display one row per non-process performance counter that was monitored.

REQ-14: The second table shall display the name of the object monitored in the first column.

REQ-15: The second table shall display the instance name of the performance counter in the second column.

REQ-16: The second table shall display the counter name in the third column of the second table.

REQ-17: The second table shall display the minimum value of the counter recorded during the monitoring time in the fourth column.

REQ-18: The second table shall display the maximum value of the counter recorded during the monitoring time in the fifth column.

REQ-19: The second table shall display the average value of the counter values retrieved during the monitoring process in the sixth column.

REQ-20: The system shall be designed such that different aggregates like standard deviation can be added easily in the future.

4. Progress Page

REQ-21: The results page shall display a progress bar if the performance counter values are still being collected along with the remaining time left.

REQ-22: The results shall display a cancel button to stop the monitoring process if it is still in progress.

REQ-23: The results shall be saved on the server in an XML file. The last result file shall always be retrievable.

5. File Format

REQ-24: The file uploaded/downloaded shall will in XML format and shall conform to the DTD defined in Appendix B.

REQ-25: The file shall allow the use of aliases to define a list of counters that can be reused throughout the file.

* Appendix B contains a sample file

External Interface Requirements

1 User Interfaces

The user interface to the system will be a web interface. The web interface will have a page to allow the user to download the list of available performance counters on the system. This same page will allow the user to upload a file containing the list of performance counters the user wants to monitor. When ever the user is done selecting performance counters, the user can select the results page to see the results for each selected performance counter.

2 Hardware Interfaces

There are no hardware interfaces to this application.

3 Software Interfaces

The application shall gather performance data about the host system through the use of performance counters provided by the Windows operating system. The system shall also collect the names of all running processes though either a .NET API or a Win32 API. The component of the system that accesses the performance counters shall be compiled as a DLL so that other applications can access the performance counters in the future.

4 Communications Interfaces

Users shall be able to communicate with the system using a web browser over HTTP. Internet Explorer 5.5 or later will be the only supported web browsers.

Other Nonfunctional Requirements

1 Performance Requirements

The method in which performance counters are retrieved should be fast and use as little memory as possible as to not skew the results of the performance counters. Possible methods include a .NET API or a Win32 API. These two approaches shall be benchmarked to determine which is faster and takes lesser memory.

2 Safety Requirements

There are no safety requirements at this time.

3 Security Requirements

The system shall not have any security requirements at this time.

4 Software Quality Attributes

The system shall be deployed as a Java web application which implies portability. However, due to the fact that the system accesses Windows performance counters, the system will only run on Windows operating systems. For maintainability, all code will be clearly commented and must adhere to javadoc standards. In addition, code shall be indented using 4 spaces and not tabs.

The Java web application shall the Apache Struts application framework. The application should be able to run on any J2EE enabled application server, but is only required to run on JBoss 4.0.

Other Requirements

The system shall be deployed as a Web Archive (WAR) file. The system shall also be deployed along with another application in an Enterprise Archive (EAR) file.

Appendix A: Glossary

API – Application Programming Interface

EAR – Enterprise Archive

J2EE – Java 2 Enterprise Edition

WAR – Web Archive

Appendix B: Input/Output File Formats

B.1 Setup File DTD

B.2 Setup File example

% Processor Time

% User Time

IO Read Bytes/sec

java

explorer

Available MBytes

Page Reads/sec

Disk Writes/sec

Disk Reads/sec

C:

B.3 Results File DTD

-----------------------

Application Developer Office

Remote Server

User Application

Server / Applications

.net and java performance monitor for the web

(URL)

Monitors the server metrics and send the info to application developer.

Application Developer Home

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download