Using Java To Develop Applications Computer Science Essay

Published:

The project was undertaken as a client based project to design and develop a Church Management Database System which aims to provide Iglesia Bautista de Londres (IBL), a fast expanding Spanish Church Community, a computed Database Management System which would help them to do away with the manual bookkeeping of the church's member list, day to day activities of the church and records of various group activities and finances of the Church. The project is aimed to provide a full -fledged cost effective solution to the Church Management, since being a charitable trust, the church financial budget does not allow them to buy the commercially available software and hence this project as a software shall not only provide them a good and easy to use tool which shall help them in providing a support to manage their activities well but also provide them a cost efficient solution.

The project requirements were gathered during a meeting between me and the Church Members of the Council Concerned. During the meeting, following requirements or key objective which the software should deliver was discussed:

Lady using a tablet
Lady using a tablet

Professional

Essay Writers

Lady Using Tablet

Get your grade
or your money back

using our Essay Writing Service!

Essay Writing Service

Member Record Management: The requirement required that the software should provide the facility to keep a record of all their members along with their personal and contact details. This would help the church to easily keep track of the record of all their members along with their details. The requirement also implied that the software should be able to provide functionality to add, delete and update the records in the database of the software and an option to retrieve the details of the members of the church based on certain pre-defined filters.

Finance Management: The software would provide support to church for managing the finances of the Church. It would be able to provide and update the donations to the church and shall be able to provide the receipt of the donations made to the church. The database should store all the finances along with the details of the donor and should keep track of all the withdrawals made from the church finance.

Calendar Management: The software shall provide the support to fix and mark the calendar schedule of the church and all the activities planned by the church.

OUTPUTS SUMMARY

As discussed in the Introduction chapter, this project is a client based project and hence all the requirements have been delivered from the clients themselves and agreed upon.

For this project, following outputs have been identified which shall be the part of the project delivery. These outputs have been summarized as below:

Software Output

Overview: The project is aimed in providing Database Management System to "Iglesia Bautista de Londres (IBL)" Society which shall help them in maintaining the records of their members, maintain their Finances and keep the appointment and schedule of the church managed by the software. The project shall be highly beneficial to the Church as it shall help them to get rid of the manpower and workload involved in keeping and maintaining these records manually and shall also help them financially since being a charitable trust, Church cannot afford to buy commercially available software available in the market. As a deliverable, the software which shall provide a calendar and member module to fix the schedules of the Church and maintain a list of the members on roll with the society. This would be the first step towards computerisation of the Church's management system and a paradigm shift from manual maintenance of the records to the automation of the same.

Type of output: The project output would be a Database Management System (DBMS) software implemented in Java and MS ACCESS and shall provide GUI support to manage the DBMS and provide support such as member management and Calendar Management. As a part of deliverables, complete source code implemented in Java and database table implemented in MS ACCESS would be delivered to the Church and maintenance and troubleshooting support would be provided to the society based on need. Also the deliverable would be scalable and would provide a platform for further enhancement of the software based on the requirements of the Church and their feedback at the later stages of the software delivery.

Lady using a tablet
Lady using a tablet

Comprehensive

Writing Services

Lady Using Tablet

Plagiarism-free
Always on Time

Marked to Standard

Order Now

End User: The end user of the project would be Iglesia Bautista de Londres (IBL), a London Spanish speaking Baptist Church society and shall cater to their specific needs. All the requirements gathered to implement this project has been gathered working in close tandem with the Church Patrons. The software would be used by the Church Clerks and administration department members to fix the schedule of the Church and maintain a list of the members enrolled with the Church Society.

The software shall be delivered to the IBL, and I shall provide them full training as to how to use their software. The software user shall be designated by the Church Patrons and would act as an administrator having the privileges to add, delete and edit the entries in the database. The user of the church shall need to possess a basic knowledge of handling the PC and having a hands-on experience of working on Microsoft Windows.

Document

Overview: Apart from software output, the final delivery shall also include deliverables in the form of documents to help the end user to guide himself to get an overview of the software, the basic usage of the software and troubleshooting himself in case of any problems.

Type of Output: The document output shall be in the form of word document in the form of User Manual. This user manual will serve as a basic user guide, FAQs, basic installation and troubleshooting guide.

End User: The end user shall be the software administrator appointed by the Church Patrons who would need to refer to this output time to time to guide himself regarding the software usage and to use the document for troubleshooting cases.

Software Maintenance

Overview: Since the project is client based software hence the software may require future enhancements and hence I shall provide after delivery maintenance to them in case any enhancements or any problems arise during the course of the software usage.

End User: The end user would be myself since I would be the contact person in case Church need any enhancement in the software or need any help in advising him regarding the software usage.

LITERATURE REVIEW

The project is a Database Management System (DBMS) and hence the software require a database which shall be a repository to store the details while it also need to provide a frontend which shall provide a user interface for easy management of the database to the end user and provide an abstraction to the underlying database operations.

The choice of database was MS Access while the front-end would be implemented in JAVA language. While MS Access has been ubiquitous wherever DBMS has been involved owing to the flexibility, robustness, and easy to use and manage features.

The frontend and other part of the software shall be implemented in JAVA as being an Object Oriented Language and its easy to use JDBC interface with the Database connectivity and its intergration with MS ACCESS, JAVA has an edge over other languages.

The other languages and platforms that was given thought for implementing the software were Microsoft .NET framework, MySQL and VB. However both the ideas were later rejected because the project is being delivered to the Church which is a Charitable Society and hence any solution which is provided to them has to be cost effective. Implementing a software on Microsoft .NET framework shall require costly MS .NET framework software to be available before the project can be implemented and this would escalate the cost of the project.

According to Raghu and Johannes [1], any Database design can be divided into six steps :

Requirement Analysis: This step would be required to understand what data has to be stored, and what application has to be built on top of it and what operations are most frequent and subject to performance requirements.(page 26, [1]). The basic discussed held with the client was to focus on this issue so that further steps in the database design can be accomplished.

Conceptual Database Design: This shall help in designing a high-level description of the data to be stored in the database along with the constraints known to hold over this data. This step helps in creating a description of the data that closely matches with how user and developer thinks about the data. (page 27, [1])This is a very important step in making sure that what is intended to be designed is actually what is intended.

Lady using a tablet
Lady using a tablet

This Essay is

a Student's Work

Lady Using Tablet

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Examples of our work

Logical Database Design: This is the step where we are actually implementing the conceptual database designed in step 2 to the logical shape on one of the database management system. For this step, we have chosen MS ACCESS to logically build our database.

Schema Refinement: This step would be to analyze the collections of relations in our relational database to identify potential problems and refine it. (page 28, [1]).This would help in making sure that we are ironing out any potential problems in the final delivery of the project by making sure that the relations and their association are intergrated properly and the database schema in adapted and conceptualized according to what is intended.

Physical Database Design: In this step we shall consider the typical expected workload that our database is required to support and further refinement of the database can then be done. This shall involve building indexes on some table and clustering some tables. (page 28, [1])

Application and Security Design: This step is involved in developing an application to access the database designed in the previous steps. Design methodologies like UML can be used in this step. In this step we must code each task and the database operation to be performed in an application language using the DBMS to access data. In our project example, we shall use the JAVA language to develop the database application.

Using Java to develop application to access Database

There may be situations where we may need the greater flexibility of a general-purpose programming language in addition to the data manipulation facilities provided by SQL. Applications that rely on the DBMS to manage data run as a separate processes that connect to the DBMS to interact with it. Once this connection is established, SQL commands may be used to insert, delete and modify data. (page 185-186, [1]).

The emergence of a Java as a popular application development language, especially for internet applications, has made accessing a DBMS from Java code a particularly important topic. (page 186, [1]).

JDBC provides a programming interface that allows us to execute SQL queries from the Java applications and use uthe results in the Java application. JDBC is a collection of classes and methods which shall help in connecting the Java application with the DBMS. In our project, we are taking MS ACCESS as our DBMS system. JDBC-ODBC bridge can be used to provide connectivity to the Java code with the MS ACCESS.

Steps to access MS ACCESS from JAVA application [4]

Following are the steps showing how to access MS access from a JAVA application.

Create a DNS name for your Access Database(*.mdb) which you want to connect. Steps for the same are :

Start -> Settings -> Control Panel

Data sources -> select Access in User Data Source and click Create

select Microsoft Access Driver click O.K

Give a DSN name and Descripton -> (*)

Select the database *.mdb file

Click O.K!! O.K!!

You have to use the DNS name(*) in establishing the connection in your Java code as follows

DBInterface()

{

try

{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

_pConnection = DriverManager.getConnection("jdbc:odbc:mobipark01_dsn","","");

_pStatement = _pConnection.createStatement();

}

catch(Exception e)

{

_bSavedStatus = false;

_sMessage = e.getMessage();

}

}c

METHOD

The method adopted for the implementation of this project was the "Waterfall Model" in which we have followed all the Software Development Life Cycle. The project was first initiated from the client's side and a thorough examination and analysis of the requirements were gathered from which a database conceptualization was adopted. We have adopted further SDLC life cycle in the project development.

Being a database management system and being driven from client's requirement, the DBMS conceptualization was followed with the steps mentioned in the literature review.

One of the basic reason for adopting this software by the Church was to manage the Church Activities in a efficient manner. Hence, it would be appropriate to first establish the methodology for representing the data for our software. For our project, we decided to design our data model for the DBMS system based on Relational Data Model. Also one of the use of DBMS is to provide an abstraction which may be classified into three categories:

Conceptual Schema or a logical Schema which shall describe the relations that are stored in the database.

Physical Schema which describes the organization of the database on the storage device.

External Schema describing the visualization of the schema for external users.

Our software provides abstraction at all the three levels. MS ACCESS database chosen as the DBMS for our software provides the logical schema describing various tables and relations which are going to be used in the DB. These includes the tables for member enrolled with the Church, Tables for registering entries in the calendar etc. Also the physical schema provide who the DB would be stored. In the later part of the project report, we shall demonstrate how we have organized our database in the C: directory of our PC on which the Database would be running. External Schema has also been provided, wherein the admin would be provided the schema with a different view than the schema of the normal users.

Since the Church has indicated that the software would be used in future at more than one location, hence a need was felt that the software would be based on a distributed system as well. Though we have not implemented a complete design of the DBMS for the distribute database, but keeping in mind the future enhancement which might be required, we have taken care that few things like, Transaction Management, Concurrency Control etc. are taken care of. Hence the database designed would take care of these DB principles as well.

Security and Authorization

This is one of the major requirements of any good Database Design. We have ensured that our software provides an access controlled way of accessing the database. For example, to edit or add/delete any entries in the database would be done only by the administrator who would need to authorize himself before accessing our database.

Also there would be access control to certain view of the database to only few users while restricting the access to the view to others.

Data Availability and Recovery from Failures

We have taken the consideration of ensuring that the data loss is minimized in case of system failure by ensuring that the user is able to access as much of the corrupted data as possible and ensuring that atleast one copy of the data would be stored as a backup on other storage device. This will help in ensuring that the data are restored to a consistent state.

UML to model the database

During the designing phase, UML has been extensively used in designing not only our database but also our Java Application. UML has provided a very interesting and helpful pictorial representation of our Database and its relations, as well as the GUI based on which our application would be designed. Also UML diagram helped us to identify Use Cases for the testing of our software. This helped us to ensure that all the interfaces, relationship and datasets have been properly tested and covered under some Test Cases. We decided that the software would be deemed to satisfy the criteria of being released for the actual use only when all the test cases have been tested and no bugs are open.

Ensuring Integrity constraints over Relations

We have ensured that our DBMS ensures integrity constraints and permits only legal instances of the data to be stored in the database. For example, the Church has ensured that the Church Schedule can be booked not earlier than 15 days in advance. This shall ensure that the Church calendar is not entered with incorrect entries. Example, an administrator may by mistake reserve a Church Schedule for the data 10/11/2010 instead of 10/11/2009. By enforcing Integrity Constraints, all our data stored in the DBMS would be ensured to have only legal and correct instances.

We have also enforced key constraints in our database. For example, member registration would generate a member ID which would be the primary key of our member database. Few of our attributes would be defined as a foreign key like booking a calendar for a particular member would require a foreign key as the member id in the calendar module.

Query for accessing records in the database

As described and discussed in the previous chapters also, we shall be using MS ACCESS for our DBMS while our application accessing the database would be based on Java Programming language. The transaction executed using the Java application shall trigger an SQL query and shall retrieve the information which the Java Application shall present in a presentable format.

All the queries executed shall be simple SQL Queries executed with the help of JDBC-ODBC Bridge.

Stored and Prepared queries

Throughout the database implementation, we have adopted the methodology of implementing the SQL query by using the stored and prepared statement for our SQL query. This ensures that information retrieval is less prone to errors. Though this method does impact the performance of the database handling, but we found that since our database record is not going to be that huge, we have found that using the prepared statements for querying the database would be more advantageous since the user of the software would not be a true DB administrator but a simple PC operator and hence we are intending to make sure that the information retrieval is less prone to any error.

Interfacing with JDBC

The method adopted to integrate the JDBC with MS ACCESS can be summarized in the following diagram. Our code base follows the same methodology in order to establish an interface with the MS ACCESS and Java Application.

Diagram to illustrate the methodology adopted to establish a JDBC bridge connection with MS ACCESS and Java Application. (Page 29,[6])

By following the above flow diagram, we can describe how we have implemented a JDBC interface with the MS ACCESS in our project.

Troubleshooting during the Database development

Following problems were encountered at times during our development and integration phase. Here we list down some of those problems along with the methodology adopted to solve those problems so that in future if the same problem arises, we may troubleshoot it easily.

Establishing a connection with the JDBC driver fails with the following message " Class not found". This problem was normally encountered when the JDBC driver was not found in the CLASSPATH.

Establishing a connection with the JDBC driver fails with the message - "Driver not found", the problem lies in not registering the JDBC driver with the DriverManager class.

RESULTS

This section shall describe the output of the final project which shall be delivered to the Church.

We shall present a detailed breakdown of the development phase which includes Requirement analysis, Architecture design, algorithm and coding details.

Requirement Specification

We shall present a detailed requirement specification gathered directly from our client. Each of the requirements gathered shall have a rationale behind such a requirement and shall govern and guide our design and coding phase.

Hardware Requirement

A Desktop PC with at least 80 GB Hardisk, 128 MB RAM and Windows XP or higher Operating System.

Rationale: Since the current activities of the church have been based on the manual record keeping procedures hence the software intended to be delivered need to have a minimum hardware requirement. The above PC configuration would be sufficient for the software to run.

Software Requirement

2.1Provision to add a member in the database

Rationale: The software should provide support for adding a new member to the database as the main motive behind the computerization of the Church Activities is to have a database of records of the members.

2.2 Provision to delete a member from the database

Rationale: The software should provide support for deleting a member from the database as a member may wish to unregister themselves due to various reasons.

2.3 Provision to edit the details of a member in the database

Rationale: The software should provide support for Editing the details of a member as various personal details such as address, marital status contact number do tend to change.

2.4 Provision to search a record of a particular member from the database

Rationale: The software should provide support to enable to search for a particular member in the database. This is one of the main objective behind the Church going for this project.

2.5 Provision to Add a schedule/appointment in the Calendar of the Church Management.

Rationale: Calendar module is one requirement of the Church Patrons as they want to use the software for fixing up the schedule and appointment of the Church.

2.6 Provision to Delete a schedule/appointment in the Calendar of the Church Management.

Rationale: A scenario may happen where a particular schedule needs to be cancelled hence the software should support the same.

2.7 Provision to Edit a schedule/appointment in the Calendar of the Church Management.

Rationale: Any appointment fixed may be edited.

2.8 Provision to get a Calendar summary of the Church schedule/appointment.

Rationale: This shall give the Church an overview of any appointment that has been previously fixed up and also to give the Church a summary of the upcoming schedules.

Architecture Design

Based on the Requirements Mentioned, the architecture for the software to be implemented has been designed.

Module Decomposition

The software intended has been decomposed into the following two major Modules:

Database Management System (DBMS) : MS Access to be used for handling the Database.

User Interface : This shall be developed in JAVA language.

The User Interface Implemented has been further decomposed into the following sub-modules

Modules Implemented For User Interface

The project has implemented following two modules which would be the part of the project delivery:

Calendar Module: The module shall implement the functionality of fixing up the schedule of the Church. The module shall provide the functionality of:

Adding a schedule : This shall add a schedule to a calendar

Deleting a Schedule: This shall delete a schedule in a calendar.

Member Module: The module shall implement the functionality of enrolling a member in the roll of Church Member list. The module shall provide the functionality of:

Add a Member : Adding a Member to the Church

Delete a Member : Deleting a Member to the Church

Viewing a Member Info : Viewing a Members Information and his profile

Updating a Member info : To edit any members profile

The above modules were implemented in Java with JDBC-ODBC bridge interface with MS ACCESS.

Class Diagram

Calendar Module

Class Main

This class that starts the GUI.

Main

Class MainWindow

MainWindow

Day

Week

mnthMdl

addComponents

clearFields

deleteNAdd

restoreDeleteNAdd

This is the main window which manages the components and draws and add events to the graphical components.

This class shall provide a welcome screen. The class mainly has three attributes, Day week and mtnhMdl and provide methods like addComponents - For adding and entry into the Calander, clearFields for resetting the Calendar entry, deleteNAdd for deleting a calendar entry and restoreDeleteNAdd which shall undo the operation. This methods invoke other calendar modules functionalities.

Class MonthModel

MonthModel

weekdays

getColumnName

getRowCount

getColumnCount

getValueAt

isCellEditable

simplyNotify

This class is a model that extends an AbstractTableModel is used as an object from the main window as a model for the table

This class object invoked from the main window module defines the month entry of the calendar module.

Class WeekModel

This class is a model that extends an AbstractTableModel is used as an object from the main window as a model for the table

WeekModel

hours

weekDays

getColumnName

getRowCount

getColumnCount

getValueAt

isCellEditable

simplyNotify

simplyNotify

This class is similar to the MonthModel and provides functionality for handling schedule/appointments of a week.

Class AddOrDeleteEvent

Listener for the add button from the events introducing dialog.

AddOrDeleteEvent

mainWin

con

AddOrDeleteEvent

actionPerformed

This is a listener which shall invoke the method actionPerformed in the case Add or Delete event is invoked from the Main Window.

Class AllEvents

AllEvents

addEvent

getEvent

removeEvent

getFullDay

This class handles various events generated

Class ChangeView

ChangeView

Model

Table

which

ChangeView

actionPerformed

Listener for the Day and Week buttons from the main window.

This shall invoke the Day and week functionalities discussed earlier when invoked from the add or delete events for a week or a month.

Class DayChanger

This shall handle the day change event.

DayChanger

mainWin

act

actionPerformed

This class shall perform the method actionPerformed when changing a date of a calendar invoked from the main window.

Class DayModel

DayModel

hours

weekdays

getColumnName

getRowCount

getColumnCount

getValueAt

isCellEditable

simplyNotify

This class is a model that extends an AbstractTableModel is used as an object from the main window as a model for the table

Member module

Class Main

This class that starts the GUI.

Main

Class ChangeView.

ChangeView

Table

Model

Which

ChangeView

actionperormed

The class is a listener for the events of changing a view of a table for example the method shall be invoked if a member is added to the database table or when a summary of the table is required.

Class AddorDeleteEvent

Listener for the add button from the events introducing dialog

AddorDeleteEvent

MainWin

Con

AddorDeleteEvent

actionPerformed

This class method shall be invoked when add member or delete member is invoked from the main window.

Class MonthModel

This class is a model that extends an AbstractTableModel is used as an object from the main window as a model for the table

MonthModel

WeekDays

getColumnName

getRowCount

getColumnCount

getValueAt

isCellEditable

simplyNotify

This class object invoked from the main window module defines the month entry of the calendar module.

Class MemberModel

Handles the member profile.

MemberModel

Label

Con

getColumnName

getRowCount

getColumnCount

getValueAt

isCellEditable

setValueAt

simplyNotify

This shall handle the part of adding, retrieving and deleting the member entry into the database. In a nut shell this shall handle all the operations of the database functionality with respect to the member module.

Screen Shots

The section shall present screenshots to represent the overall functionalities of the various modules. These screenshot shall represent the results which has been achieved after the software development has been completed.

Calendar Module

Adding A Date

This functionality was added a part of the requirement 2.5. The UI provides support for adding a an event for a particular date or a month. In this module a menu has been provided for making a new appointment or making an appointment for all day event. This shall also provide navigation support for navigating to a particular date and to view the event for that day.

Once an entry has been added, a dialog box conveying the same shall be displayed.

Member Module

Main Screen

The snapshot describes the main screenshot of adding a Member Module. The GUI for this module present three buttons, Adding, Deleting and Updating a member entry which has been derived from the requirement 2.1, 2.2 and 2.3 respectively.

Add Member

On Clicking an Add Member button, a separate GUI as displayed in the following screenshots is displayed. This provides various buttons for adding the details like adding a personal button, adding an Address button, adding a Picture button and adding other miscellaneous details. Once all the entries has been provided, save changes button shall add the details into the database.

Update Module

This functionality is similar to the Add Member functionality. Once all the details have been provided, save changes button shall make the necessary changes in the database.

Delete Member

Similar to the Add Member and Delete Member, the module shall delete an entry from the database.

Coding

The coding for the implementation of the member and calendar module has been done in JAVA language.

All the code changes have been implemented from the start apart from the implementation of the logic of the dates which has been taken from a web reference www.werteck.co.in/java_eg. following code reference includes major functions which has been referenced.

public class Miscellaneous

//variables for current calendar-date

public static int y, m, d, bar;

//variables for tracking a week starting

public static int wstday, wstmonth, wstyear;

//array for dates used in a monthview

public static int[] dddd, mmmm, yyyy;

/**

* setter for the current date.

*/

public static void setCurrentDate()

…

/**

* setter for a user specific date

*

* @param year

* @param month

* @param day

* @return header with week days.

*/

public static void setDates(int year, int month, int day)

/**

* decrementer for the current date.

*/

public static void decreaseDate()

/**

* incrementer of the current date.

*/

public static void increaseDate({

/**

* generates elements for day combobox of main window

*

* @param year

* @param month

* @return array of dates for the month

*/

public static String[] getDayCount(int year, int month)

/**

* holds the number of days in a month

*

* @param year

* @param month

* @return the day count for the given month

*/

public static int getMonthlyCount(int year, int month)

/**

* generates calendar date

*

* @return the date in complete format

*/

public static String getDateString()

/**

* holds month names for 12 month

*

* @param mnth

* @return name of the month

*/

public static String getMonthName(int mnth)

/*

*for the "go to date" button we assign only year, month and day

*but didnt assigned whether it is sunday, or monday or like that

*so we need to calculate day,this function get the day for given year,month and date

*/

private static void calculateBar()

/**

* generates date for a monthly view in 5*7 grid and starting date of a week

*

*/

public static void setMonthNWeek()

Tools and techniques used

Overview

Java is used as a front end programming language. Microsoft Access is used as database management system (DBMS) and creates the primary database backend for our application. This approach is much simpler when compared to traditional backend devices such as oracle or mySql. And as far as tools are concerned, JDK6 is used as an editor and development tool for java which we have used for code development and testing. Simple Text editor is used for coding Java. And as far as software development methodology is concerned, we have used agile manifesto which is a fully applicable and result oriented methodology. It is defined in the report. A detailed analysis of the programming tools that have been used to aid this project follows.

Java

Java is a programming language originally developed by James Gosling at Sun Microsystems (which is now a subsidiary of Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to byte code (class file) that can run on any Java Virtual Machine (JVM) regardless of computer architecture. Hence, it is generally universal in its usage and finds applications in almost all fields of technology. The JVM is a wonder that has transcended platforms and given a new angle to its usage in all sorts of platforms as well as applications. Java is general-purpose, concurrent, class-based, and object-oriented, and is specifically designed to have as few implementation dependencies as possible.

The object oriented nature of java is perhaps another talking point in the list of advantages offered by Java. Object oriented methodology is nowadays commonplace in most programming languages and is used extensively. It has been found that an object oriented approach to development is the easiest and perhaps the most powerful among all other approaches. Hence, it is highly advisable to use this approach and take it into consideration when developing a new application. Like the name suggests, object oriented programming (OOP) deals with objects and their attributes and how they can be manipulated to perform the functions that we need them to.

Java is intended to let application developers "write once, run anywhere". Java is considered by many as one of the most influential programming languages of the 20th century, and is widely used from application software to web applications. Nowadays, even mobile applications have come out by using the Java platform, and it is quite clear that Java will enjoy a monopoly for years to come in the basic mobile platform.

JDK 6

The two principal products in the Java SE platform are: Java Development Kit (JDK) and Java SE Runtime Environment (JRE). The JDK is a superset of the JRE, and contains everything that is in the JRE, plus tools such as the compilers and debuggers necessary for developing applets and applications. It hence becomes a necessity for any developer who wishes to code his/her application in Java. JDK 6 is the latest available stable version in the developer's category release and hence has been selected as the frontend programming language / interface. JDK is a favorite of most developers.

The Java Runtime Environment (JRE) provides the libraries, the Java Virtual Machine, and other components to run applets and applications written in the Java programming language. The debugging tools can be easily harnessed for the purposes of the developer. Needless to mention, all of the operations including compilation, debugging and others are command line based, not GUI based.

Microsoft Access

Microsoft Access database management system is used for creating and maintaining database of the system. Microsoft Office Access, previously known as Microsoft Access, is a pseudo relational database management system from Microsoft that combines the relational Microsoft Jet Database Engine with a graphical user interface and software development tools. It is a member of the Microsoft Office suite of applications, included in the Professional and higher editions or sold separately. The current version is Microsoft Office Access 2007; Microsoft Access 2010 is in beta as of May 16, 2010.

Access stores data in its own format based on the Access Jet Database Engine. It can also import or link directly to data stored in other Access databases, Excel, SharePoint lists, text, XML, Outlook, HTML, dBase, Paradox, Lotus 1-2-3, or any ODBC-compliant data container, including Microsoft SQL Server, Oracle.

The advantage of using Access for our work is the simplicity in its GUI outlook and the ease with which a database can be created and implemented if needed. Hence, modifying and reading data is very easy to do in access. Moreover, its installation is highly simple as well and with the spread of Microsoft over the past decade, it is quite likely to be pre installed in most windows based systems, which naturally means that most of the world already has it in their systems! Hence, this is one requirement which needn't be specifically installed for this application to run, at least in most cases.

Agile Manifesto

The Agile Manifesto is a statement of the principles that underpin agile software development. It was drafted from 11 to 13 February 2001, at The Lodge at the Snowbird ski resort in the Wasatch Range of mountains in Utah, where representatives of various new methodologies (such as Extreme Programming, Scrum, DSDM, Adaptive Software Development, Crystal, Feature Driven Development, and Pragmatic programming) met to discuss the need for lighter alternatives to the traditional heavyweight methodologies.

Basic Principles behind Agile Manifesto

Individuals and interactions over processes and tools 

Working

Customer collaboration

Responding to change

The above are the basic principles of agile development which makes this development methodology fully result oriented.

CONCLUSION AND DISCUSSIONS

The objective of the project was to computerize the appointment and maintenance of the member record of the church which was earlier being done using the pen and paper method.

The project has been successful in delivering this part of the job assigned by the Church. Since the Church is a Charitable organization and had a tight budget, the project executed would highly benefit them in the following ways :

The Church can now fully automate and computerize their calendar and fixing an appointment. This will help them in maintaining the schedule of the church and can be highly beneficial for them in fixing any future appointment of the church and to avoid any conflicts.

The Church can now maintain a database of all their members on the roll of the Church. The software can help in easy searching of the contacts and easily updating the records.

The software shall ensure them that all the data is backed up so that in case of any un fateful event all the data of the church is available.

Apart from computerizing the module, the other objective of the church was to have a cost effective solution so that the computerization does not put extra overhead on the Church Budget. The software developed has been able to meet this requirement. The software can now be used without any need to purchase any extra software. A bare minimum requirement is a normal Windows Based Desktop PC with MS ACCESS installed. With this bare minimum requirement, the software has also been developed so that it is scalable and supports distributed database environment. This shall ensure that the software can be installed at all the Church's location and all the church's schedule would be available at all the location.

Future Development

Keeping in view the high utility the system shall be providing to the church, other future developments and feature enhancements has been discussed with the Church and shall be taken as a future development activity.

These new features discussed are :

Enhancement to support financial management of the church.

Enhancement to support Inventory Management of the Church.

Enhancement to implement mailing service for the church and to integrate calendar modules with the Church.

These activities and enhancements would be taken once the current modules of the Church are installed in the Church and once Church Staff becomes comfortable with the software.

Appendix

USE CASE

As discussed in the earlier sections, the project is a client based project which is being delivered to the Spanish Church Society in order to computerize their normal church activity which includes schedule management and member record management.

The following diagram shall present the use case diagram for the church management system which shall present how the software shall be used in the handling of the day to day church management activities.

Member Module

Calendar Module

Add A Member

Delete a Member

Update a Member

View member details

Add An Appointment

Delete An Appointment

Go to date

Change Calendar View

Select Module

Administrator

User

The software is intended to be used by mainly two type of users, one the administrator who shall have all the permissions include read, write and edit permissions while the second would be a normal user having read permissions only.