1 Overview of System and Software Requirements Definition

1.1 Status of System and Software Requirements Definition

The purpose of this document is to achieve a set of requirements and also identify major issues and constraints. This document lists all the requirements needed for the successful implementation of the system and they are listed under several categories and have a priority associated with them to give the reviewer a good idea of the significance of each of these requirements.

1.2 References

2 Project Requirements

2.1 Budget and Schedule

Table 1: Budget for system development

Project Requirement

PR-1: The system shall be created with a Zero dollar budget.

Description

The system uses MySQL and Derby databases which are open source. Also, there are no required tools or software that needs to be purchased.

Priority

Nominal

Table 2: Project Schedule

Project Requirement

PR-2: The project shall be completed in a schedule of 3 months at the end of which the client will be given a tool that can be used for migration from MySQL to Derby.

Description

The Project will be completed in 3 months period. Also, the client will be given a working version of the system so that a conclusion can be drawn on will it fit into /integrate with Apache derby Database

Priority

Must Have

2.2 Development Requirements

This section has requirements that help gather information on the development of the project e.g. Language Requirements, Computer Hardware and Software Requirements.

2.2.1 Tools Requirements

Table 3: Eclipse as development tool

Project Requirement

PR-3: Usage of Eclipse (Integrated Development Enterprise) for development of project.

Description

Eclipse will be used as a Java development environment. Eclipse provides extensible tools and frameworks that span the software development lifecycle, including support for modeling, language development environments for Java.

Priority

Nominal

2.2.1 Language Requirements

Table 4: Implementation Language

Project Requirement

PR-4: The system shall use Java for implementation.

Description

The system will be programmed in Java which means that JDBC will be used to facilitate communication with the database.

Priority

Must Have

2.2.3 Computer Hardware Requirements

N/A

2.2.4 Computer Software Requirements

Table 5: Database Management Systems

Project Requirement

PR-5: Usage of MySQL and Apache Derby Database management Systems

Description

MySQL and Apache Derby shall be used as a Database Management System for this project.

Priority

Nominal

2.2.5 Computer Communication Requirements

Table 6: Network with atleast two machines

Project Requirement

PR-6: A Network with atleast two machines.

Description

This means that it is needed to arrange a network if two or more machines need to communicate. Also, it is needed to choose a protocol over which they will communicate.

Priority

High

2.2.6 Support Compliance Requirements

2.3 Development Requirements

Table 9: Installation and User Training support

Project Requirement

PR-9: The system should be provided with Installation and user manual for the client to deploy and test the system. The client should be trained about the system during transition.

Description

Once the prototype has been built, the client will be provided with a user manual and an installation guide on about how to go about using and working with the system. This will actually train the client on how to use the system.

Priority

High

2.4 Transition Requirements

N/A

2.5 Support Environment Requirements

Table 11: Client Support

Project Requirement

PR-11: The Client should support the system after delivery of the migration tool.

Description

The client should continue to support the system after the delivery of a successful working migration tool and pursue the development of the system to the scale they had thought of.

Priority

High

Table 12: Java standard compliance.

Project Requirement

PR-12: The system should be implemented with Java compliance to JDK 1.5.

Description

As Java is used to program the prototype, JDK 1.5 is needed to support its development. Also, the reason JDK v1.5 is chosen is because it is the latest version and as backward compatibility is not an issue, old system on previous version of JDK can be integrated.

Priority

Very High

Table 13: Database SQL compliance

Project Requirement

PR-13: The system should allow switching to a SQL-compliant RDBMS and this should be configurable.

Description

This means that the database (RDBMS) at the target system must be SQL compliant because SQL is primarily what the clients will be using and is most commonly used for Databases across the industry.

Priority

High

Table 14: Conversion of data

Project Requirement

PR-14: The conversion of data in the system from one format to another shall be reliable and accurate.

Description

The data migration from source DBMS to the target DBMS over network of machines or instances must not change the data and not corrupt the format. Also, the transaction must be atomic and task of the transfer of data from one end to the other must be achieved

Priority

Must Have

3 Capability Requirements

3.1 System Definition

Apache Derby is a relational, light weight, embedded database developed entirely in Java. Being an embedded database it is very flexible in its use and can be used either embedded inside an application sharing the same JVM as the application or can be embedded inside a server framework (such as Geronimo) or can be deployed as a standalone server (with the Network server framework) in a traditional client server environment.

The MySQL to derby migration tool will be developed to help System/Database administrators with the task of migrating their data from MySQL to Apache Derby. The migration tool will migrate database objects such as Tables, Views, Stored Procedures, etc. from MySQL database to derby database. The tool will be designed to have Graphical User Interface.

3.2 System Requirements

CR-1: The system should use MySQL as the source DBMS and Apache Derby as the target DBMS. The clients clearly defined that at minimum the migration tool shall migrate data from MySQL to Apache Deby.

CR-2: The system should be made in such a way to accept the configuration parameters using a configuration file. In the absence of GUI, the system shall be able to read configuration information such as database identification parameters, etc from configuration file.

CR-3: Migration tool needs to be installed on either the source or target DBMS. The migration tool needs to be installed on either the source or target DBMS to reduce network traffic overhead.

CR-4: The user should be able to select a schema to be migrated from the source DBMS. The user should be able to pick and choose the schema that needs to be migrated from the source DBMS to the target DBMS. The user will be shown a list of schemas from the source DBMS.

CR-5: The migration tool should display information from source RDBMS related to tables, views and stored procedures. The migration tool shall display information related to column and index information for each table in the source database, along with information on stored procedures and views.

CR-6: The user should be able to select object types to be migrated from the source DBMS. The user should be able to select object types such as tables, views and stored procedures that need to be migrated.

CR-7: Users should be notified about the objects that were not successfully converted. The users need to be notified about any unsuccessful object conversions, so that the SQL CREATE statements would be manually edited.

CR-8: The user should be provided with a summary report at the end of the migration process. At the end of the migration process, a summary report of the migration will be displayed to the user containing detailed description of the objects that have been migrated.

CR-9: The errors that the system encounters should be logged in the form of an error log. There will be a log file which will contain all the exceptions and errors that occurred during the processing of the source DBMS, during startup, migration, etc.

4 System Interface Requirements

4.1 User Interface Requirements

4.1.1 Graphical User Interface

UIR-1: The system shall provide a GUI interface to migrate the data from source DBMS to target DBMS. The system must have a Graphical User Interface so that the user can be walked through the migration process. The user will be asked to select the source and target databases as well as the schemas and database objects that needs to be migrated.

4.1.2 Command-line Interface

UIR-2: The system shall provide a commad-line interface where the user enters the path of a configuration file created by the user as the input.

4.2 Hardware Interface Requirements

N/A

4.3 Communication Interface Requirements

N/A

4.4 Software Interface Requirements

N/A

5 Common Definition Language for Requirements

Terms used in this Document relevant to the system (not in any particular sequence).

SQL: This is a Structured Query Language used to retrieve information from a Database

Java: Programming language we are going to use do develop our prototype.

MySQl: This is an open source Relational DBMS.

Apache Derby: This is an open source Relational DBMS written in Java.

Schema: A schema is the set of objects (tables, views, indexes, etc) belonging to a database.

Refactoring: Refactoring is a programming technique that allows one to improve the design of existing code without changing its functionality.

JDK 1.5: It is the Java development Platform. This is version 1.5

JDBC: It stands for Java Database Connectivity. It is a standard defining how Java applications access database data.