|
Size: 12300
Comment:
|
← Revision 21 as of 2009-09-20 22:11:38 ⇥
Size: 12338
Comment: converted to 1.6 markup
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 7: | Line 7: |
| [[Anchor(Version_History)]] | <<Anchor(Version_History)>> |
| Line 13: | Line 13: |
| [[Anchor(Table_Contents)]] | <<Anchor(Table_Contents)>> |
| Line 15: | Line 15: |
| [#Version_History VERSION HISTORY][[BR]] [#Table_Contents TABLE OF CONTENTS][[BR]] [#Table_Figures TABLE OF FIGURES][[BR]] |
[[#Version_History|VERSION HISTORY]]<<BR>> [[#Table_Contents|TABLE OF CONTENTS]]<<BR>> [[#Table_Figures|TABLE OF FIGURES]]<<BR>> |
| Line 19: | Line 19: |
| 1. [#Overview Overview of System and Software Requirements Definition][[BR]] 1.1 [#Status Status of System and Software Requirements Definition][[BR]] 1.2 [#References References][[BR]] 2. [#Requirements Project Requirements][[BR]] 2.1 [#Budget Budget and Schedule][[BR]] 2.2 [#Development Development Requirements][[BR]] 2.3 [#Deployment Deployment Requirements][[BR]] 2.4 [#Transition Transition Requirements][[BR]] 2.5 [#Support Support Environment Requirement][[BR]] 3. [#Functional Capability (Functional) Requirements][[BR]] 4. [#Interface System Interface Requirements][[BR]] 4.1 [#UI User Interface Standard Requirements][[BR]] 4.2 [#HW Hardware Interface Requirements][[BR]] 4.3 [#Comm Communication Interface Requirements][[BR]] 4.4 [#Other Other Software Interface Requirements][[BR]] 5. [#Definition Common Definition Language for Requirements][[BR]] |
1. [[#Overview|Overview of System and Software Requirements Definition]]<<BR>> 1.1 [[#Status|Status of System and Software Requirements Definition]]<<BR>> 1.2 [[#References|References]]<<BR>> 2. [[#Requirements|Project Requirements]]<<BR>> 2.1 [[#Budget|Budget and Schedule]]<<BR>> 2.2 [[#Development|Development Requirements]]<<BR>> 2.3 [[#Deployment|Deployment Requirements]]<<BR>> 2.4 [[#Transition|Transition Requirements]]<<BR>> 2.5 [[#Support|Support Environment Requirement]]<<BR>> 3. [[#Functional|Capability (Functional) Requirements]]<<BR>> 4. [[#Interface|System Interface Requirements]]<<BR>> 4.1 [[#UI|User Interface Standard Requirements]]<<BR>> 4.2 [[#HW|Hardware Interface Requirements]]<<BR>> 4.3 [[#Comm|Communication Interface Requirements]]<<BR>> 4.4 [[#Other|Other Software Interface Requirements]]<<BR>> 5. [[#Definition|Common Definition Language for Requirements]]<<BR>> |
| Line 37: | Line 37: |
| [[Anchor(Overview)]] | <<Anchor(Overview)>> |
| Line 40: | Line 40: |
| [[Anchor(Status)]] | <<Anchor(Status)>> |
| Line 45: | Line 45: |
| [[Anchor(References)]] | <<Anchor(References)>> |
| Line 48: | Line 48: |
| [[Anchor(Requirements)]] | <<Anchor(Requirements)>> |
| Line 51: | Line 51: |
| [[Anchor(Budget)]] | <<Anchor(Budget)>> |
| Line 64: | Line 64: |
| [[Anchor(Development)]] | <<Anchor(Development)>> |
| Line 104: | Line 104: |
| [[Anchor(Deployment)]] | <<Anchor(Deployment)>> |
| Line 112: | Line 112: |
| [[Anchor(Transition)]] | <<Anchor(Transition)>> |
| Line 116: | Line 116: |
| [[Anchor(Transition)]] | <<Anchor(Transition)>> |
| Line 139: | Line 139: |
| [[Anchor(Functional)]] | <<Anchor(Functional)>> |
| Line 160: | Line 160: |
| [[Anchor(Interface)]] | <<Anchor(Interface)>> |
| Line 180: | Line 180: |
| [[Anchor(Definition)]] | <<Anchor(Definition)>> |
Apache Derby MySQL Derby Migration Tool
System and Software Requirements Definition (SSRD)
MySQL Derby Migration Tool
1. Version History
Date |
Author |
Version |
Changes Made |
Rationale |
6/5/2006 |
Ramin Moazeni |
1.0 |
Initial Draft Started |
|
Table of Contents
VERSION HISTORY
TABLE OF CONTENTS
TABLE OF FIGURES
1. Overview of System and Software Requirements Definition
2.1 Budget and Schedule
2.2 Development Requirements
2.3 Deployment Requirements
2.4 Transition Requirements
2.5 Support Environment Requirement
3. Capability (Functional) Requirements
4. System Interface Requirements
4.1 User Interface Standard Requirements
4.2 Hardware Interface Requirements
4.3 Communication Interface Requirements
4.4 Other Software Interface Requirements
5. Common Definition Language for Requirements
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.