Creating User Friendly Software Computer Science Essay

Published:

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

Every university consists of many students who studies different cohorts and modules. Scheduling the examinations in a university is a difficult task as we need to consider lots of conditions. Creating a schedule for examinations manually, takes a lot of time and it requires lot of human effort. Student studying a particular cohort has different number of modules involved. A student should not have two exams on same day or next day because student needs at least one day revision time for each module. We should consider the students who have resit exams. They too need a day gap between the exams for revision purpose. Like this we have lots of conditions to satisfy in the process of scheduling the exams. These conditions are called as constraints. Thus preparation of examination time table manually by keeping the above constraints in the mind is a difficult task to handle. In order to overcome efforts of preparation of time table manually, we need software which creates the exam timetable.

The user using this software may or may not have computing knowledge. So the software we developed should be easily understood by the user. And it should solve the main constraints.

To develop user friendly software we used java programming language. In this project we involve with the constraint satisfaction problems. To solve the considered constraints we used choco java library.

1.2 AIMS AND OBJECTIVES

The main aim of this project is to create user friendly software which develops examination timetable by solving all the constraints.

The main objectives are stated below.

To gain an understanding of existing manual process of exam timetabling. This analysis of manual process will help us in developing the software.

To gain an understanding of constraint satisfaction problem.

To gain an understanding of constraint satisfaction tool like choco.

Developed software should be user friendly, so that it can be easily accessible by the user.

We should make list of all possible constraints.

Developed software should satisfy all the considered constraint.

The application should save the data of modules attached to a cohort, to avoid entering the data every time user reopens the application.

1.3 APPROACH

This project is designed by taking the users into consideration. The main aim of this project is to make user friendly software to create exam time table for a university. Users no need to have computing knowledge to use this application. User guide and installation is provided for users. This software was designed using java programming language as main technology. The concept of java swings is used to make the User interface part. The coding part of this project was done using j2sdk1.5 and the tools like My Eclipse 6.0 is been used. Choco is used as helper library package to develop this application as it is a constraint satisfaction java library. In order to make the coding part easy these tools are used.

CHAPTER 2

PROJECT ACTIVITIES

2.1 SPECIFICATIONS

At this stage we gathered all the specifications of this project which are specified in the initial project proposal. The project title is Exam Timetabling with Constraint Satisfaction.

The specifications of this project are mentioned below.

The application should be user friendly.

The application should satisfy all considered constraints.

The application should allow the user to select and add particular modules to a selected cohort.

The application should allow the user to select a date from when the examinations are starting.

The application should display the date and day of the examination in the output.

The application should allow the user to save the data of attached modules to a particular cohort.

If any errors occurred the application itself should inform the user about that corresponding error.

These are the main specifications of the project.

2.2 REQUIREMENTS

To achieve the given specifications of the project we need some software and also we should have minimum hardware.

2.2.1 SOFTWARE ERQUIREMENTS

2.2.1.1 CHOCO:

As the project is Exam Timetabling with Constraint Satisfaction, it deals with a constraint satisfaction problems. To solve all the considered constraints we need a constraint satisfaction solver. In this project we used choco java library to solve the constraints.

"Constraint satisfaction is the process of finding a solution to a set of constraints that impose conditions that the variables must satisfy. A solution is therefore a vector of variables that satisfies all constraints". [1]

A constraint satisfaction problem (CSP) is defined by a set of variables each having a specific domain and a set of constraints each involving a set of variables and restricting the values that the variables can take simultaneously. The solution to a CSP is an assignment that maps every variable to a value. We may want to find just one solution, all possible solutions or an optimal solution given some objective function defined in terms of some or all variables.

A general constraint problem consists of:

A set of variables X={x1, x2… xn}.

For each variable xi a finite set Di of its possible values (its domain). D= {D(x1), D(x2) …D(xn)}.

A set of constraints restricting the values that the variables can take. C= {C1, C2… Cj}. [1]

There are several other constraint satisfaction solvers are available.

Some of those are:

Choco

JCL

Koalog

JCHR

CREAM

JaCop.

 JCL:  Java Constraints Library. This is the first java library available to handle constraint based problems.

Koalog:  Koalog is also a java library for constraint satisfaction. It provides a specific API for Scheduling. It uses a special technology named Cutting edge technology for scheduling.

JCHR:  JCHR means Java Constraint Handling Rules. This system contains three main features; they are User friendly, Flexibility and Efficiency.

 CREAM:  Cream is a class library for constraint programming in java. It is an open source 100% pure java library. It can be used on UNIX based systems and also WINDOWS based systems.

 JaCop:  Java Constraint Programming library.  It is also an open source java library for constraint programming.

2.2.1.2 JAVA:

As the user interface part should be user friendly, we selected java programming language to create interface part. We used java swings concept to create user interface part in this project. Java swings are easy to edit and they will give very good look to the application.

As java language is platform independent we can use this application in any system in which java is installed. In this project we need to embed external jar files to the program code while developing process.

Java has lots of advantages, some of them are mentioned below.

Java was designed such that we can easily write the code, debug the code. Java uses automatic memory allocation and garbage collection.

Java is object-oriented because it includes creating objects, manipulating objects. It allows the objects to work together. So that the code written in java was reusable.

Java is platform independent. The code written in java can run on any computer system.

The compiler, interpreter and java developing environment are developed by keeping security in mind.

2.2.1.3 MyEclipse IDE

In java programming language, there are two types of works involved. Work from command line and work from an IDE (Integrated Development Environment). We need a text editor to develop a java program from command line.

In this project we developed our java programming code using an IDE named My Eclipse.

There are lots of other java program developing IDE are there. No two IDE are alike. Each IDE has its own approach to software development.

MyEclipse is a well known IDE for programming in java. With MyEclipse we do not need to spend more time on debugging. It is an open source IDE which has the facility of embedding external jar files to the program. Here we used MyEclipse 7.5 version in this project.

2.2.2 HARDWARE REQUIREMENTS

Pentium III processor with 800MHz.

1GB RAM. Because oracle 10g database and java code developing tool must be on the run mode at the same time.

20 GB HDD.

These are all minimum hardware requirements for this project.

2.3 DESIGN

In the designing stage, we design an out look of the application that perfectly reflects the specifications. The following figure shows the basic architecture of the application. The GUI application which has been developed using the java Swings. The My Eclipse 6.0 is the tool for the development of code for graphical user interface part.

GUI Representation of the application.

Courses

Modules

Course name

Module name

Date & Time

Add module

Get Date

User selects one cohort from a drop down list. Later user is allowed to select one module by a single click or more modules by holding the Ctrl button on key board from a drop down menu. After selecting one or more modules, by clicking on the Add module button will add the selected module or modules to the selected cohort. Later user is allowed to select starting date of the examinations. After that by clicking on the create schedule button the output will be displayed in a new console.

This application was designed with java using the javax swings package .Swings has been used to develop the user interface part of this application. To have a perfect idea about how the application should appear the following use case diagram is designed. It gives a clear view about the design of the system. The application is designed in such a way that, if we use any database in the future, by altering anything in the database the GUI will not be affected and vice versa.

The below figure shows the flow of the system

Courses Modules

Remove Module

ADD Module

Select Date

Create Schedule

Output Exam Timetable)

GUI Design Description:

The graphical user interface should be designed in such a way that a normal user without any knowledge of graphics can be able to access. As the view of every user is not same, the GUI should look simple and superb to everyone. The use of textboxes, dropdown menus and other things should be used wherever necessary. The interface is designed with more care in order to avoid any congestion between the labels and other fields .The information which is not related to the user should be hidden from the interface. Appropriate designs should be used so that user can easily understand what will happen when user click on any links or buttons.

When user enters any wrong data, in terms of application if user does not selects any data and try to click add module button it displays the error message "Please select a module". It should display an error message and at the same time it should guide the user in a right way. User has chance to remove the selected module using the remove module button.

2.4 DEVELOPMENT OF THE SYSTEM

The application is developed using jdk1.6.0 version of java and MyEclipse IDE. This project had the following main classes.

ApplicationGUI.java

DataCal.java

TimeTable.java

ChocoSolver.java

Uitility.java

JCalendar.java

The execution of application starts at the main class that is TimeTable.java. The main class extends the JPanel class. It also implements the Action Listener class which is used to implement some actions.

When I gave demonstration on my project in the presence of my supervisor and second marker on 10 December 2009, I did not include any date option in my application. Later with the permission of my supervisor I included the calendar option to my application from which user can select the starting date of the examinations. The class used for creating a calendar is JCalendar.java class.

The ChocoSolver.java is a special class to solve the considered constraints. It contains the choco java library.

TimeTable.java class helps to create main frame of the application. Main frame consists of File option. Which has Input, Output, Help, About, Exit options. It checks which action should perform when ever any button is clicked on the application.

DataCal.java class which is used in the application is used for analyzing the data of each course and the module. This class consists of code for which we should get in the final screen. Mainly the code includes the logic works like selecting of alternate days of exams. It checks whether the module is been selected or not and at the same time it checks for the number of modules selected.

JCalendar.java class file has the code for creating a calendar in the application. It has the code for dropdown lists of months and years. This option is very useful for a university.

2.5 TEST CASES

When we execute the application in My Eclipse tool the first screen of the user interface will appear like below.

At first the user is allowed select a course from the drop down list. After selecting a course only user can select modules.

User can select one module or multiple modules by holding the Ctrl button from keyboard.

After selecting one module or multiple modules "Add Module" button will be activated, then after by clicking on it, selected modules will be added to the selected course.

After adding the modules to the selected cohort, "Remove module" button will be activated. User can be able to remove any module from the list of attached modules by using the Remove module button.

User can select another course and attach some other modules to it.

Some of the modules are shared by different cohorts. This application will consider the common modules as well.

If the user not selects any module after selecting a course and clicks on Add module button an error message will appear as follows.

So the user should select at least one module.

After adding some modules to a particular cohort, if user wants to remove any module, user should select that module. Without selecting any module if the user clicks remove module button an error message will appear as follows.

After that user can select a date from the calendar provided.

By default the application highlights current date in the calendar. A list of months and years is provided. From that user can select any date from when the examinations should start.

After adding some modules to some cohorts "create schedule button will be activated.

By clicking on the "create schedule" button the output will be displayed in a new console.

The output contains full date and day of the examination. Below screenshot shows how the output will be.

After getting the exam timetable, user can quit the application by clicking on Exit button from File menu.

By clicking on the Input button from the File menu console goes to main screen of the user interface.

By clicking on the Help button from the File menu on main screen, user will get the information about the application that is how to use the application.

By clicking on the Exit button from the File menu a message window will appear as follows.

By clicking on the Yes option the application will exits. If the user clicks No option the console will goes to the main screen of the application.

CHAPTER 3

COMPARISON

OBJECTIVES SPECIFIED:

To analyse the process of exam timetabling which the university was originally following, because it is a manual process. This analysis of existing manual process will help us in developing software.

We should make a list of all possible constraints which should be satisfied by the developed system.

To gain an understanding of constraint satisfaction programming and analyse it which is helpful in developing the exam timetabling tool.

To gain an understanding of constraint satisfaction tool like choco which we are using in the development process.

The delivered system should be user friendly, so that user can use the system easily. Here in exam timetabling tool, the user should input cohort name and module name. Instead of typing complete name of the cohort and module we put a dropdown list of all cohorts and modules by which the user can easily select them. By this the chance of a manual error like incorrect typing will be restricted.

The application should save the data of modules attached to a cohort, to avoid entering the data every time user reopens the application.

OBJECTIVES ACHIEVED:

The manual process of exam timetabling process has been studied, which was helped in developing process of the application.

Gained an understanding of constraint satisfaction programming which is used to solve the considered constraints.

Gained an understanding of constraint satisfaction tool, which is choco java library in this project.

Some important constraints are selected. They are, a student should not have an exam on same day or successive days. Because the student needs at least one day revision time for an examination. And if a module was shared by several cohorts, the students of that module even if from different courses should have exam for that common module on the same day at the same time.

The application should have a date option from when the exams should start. This was achieved by the calendar option in this application.

The output displays date and day of the examinations.

This application will not save the data of attached modules to a particular course because the database is not used in this project. By the usage of a database user can save the data.

CHAPTER 4

4.1 FUTURE ASPECTS

There are some considerations for further development if time allows, they are

The application can make use of a database to save the data of modules which are attached to a course, which is important for a university.

consideration some more constraints which give more effective output like considering the special needs students and students who have the resit examinations. These can be done by adding more features to the Interface at the input part.

The output can display the afternoon sessions correctly.

The output can open in a new window in a Microsoft Excel file format.

4.2 STRENGHTS OF THE PROJECT

The application is user friendly. The calendar option in user interface helps in selecting the starting date of the exams. This option is very useful for a university because a university may have exams three or more times for an academic year.

4.3 WEAKNESS OF THE PROJECT

This project did not have any database to store the data. It will support only some of the constraints specified. As specified in future aspects output will be displayed in the same console.

4.4 HOW FAR MY SKILLS IMPROVED

Before this project I have only the knowledge of java programming language. By this project I gained the knowledge of constraint satisfaction programming and constraint solving tools. I searched lots of constraint solving tools in the internet. Finally I got the CHOCO java library. Before starting this project I had only the computing based knowledge. I do not have any idea about project planning.

In my case I should do my Investigation report and project proper simultaneously. I managed my time to do well on both of them.

I should update my project status in a self created blog. This is the new thing I learned. I created a blog named Exam Timetabling Project. http://santoshkumarvollala.blogspot.com/

In this blog I updated my project status at least once a week.

4.5 CONCLUSION

The application solved the main considered constraints. It has good User Interface which is user friendly. With the use of the user guide provided user can easily use the application. Users no need to have any computer knowledge to use this application. The application successfully adding the modules to a particular cohort selected. Calendar option provides extra feature to the application.

4.6 HURDLES FACED

At the project development stage that is the coding part, I faced lots of problems. First I am thought of using oracle 10g database to save the data of modules attached to a selected cohort. I faced lot of errors in creating database tables. I spent lot of time on rectifying the errors, but I did not rectify them. So I am not used the database.

When I gave demonstration about my project to my supervisor and second marker, I did not have calendar option in my application. Later I had written the code for calendar.

I did the Investigation report and project proper at the same time.

CHAPTER 5

APPENDICES

6.1 INTIAL PROJECT PROPOSAL

Title Exam timetabling using constraint satisfaction

Key Techniques

Constraint satisfaction and good Java programming.

Background

The School of Computing Administration Manager has the hard task of producing

suitable exam timetables three times a year. This is by no means an easy task since

the date allocated to module A's exam must satisfy a number of constraints such as

``there must be no other module exam on the same date which is taken by students

taking module A''.

The problem is complicated by the fact that some constraints are soft. For example,

assume we have the constraint "there must be a day gap between any two exams a

student takes". If this constraint cannot be satisfied, it is better to have a timetable

which violates it than to have no timetable at all.

In this project, you will analyse, design, implement and evaluate an exam timetabling

tool for the School.

Note:

1. The process that the Administration Manager follows to produce an exam

timetabling is well documented.

Aims

• To gain an understanding of Constraint Satisfaction.

• To gain an understanding of a Constraint Satisfaction tool, e.g. Chocó

• To analyse the exam timetabling problem.

• To design, implement and evaluate an exam timetabling tool.

• To document the work carried out.

6.2 USER GUIDE

6.2.1 The main screen of the user interface looks like as follows.

It consists of two dropdown lists, courses list and modules list. A calendar option will be there. And three buttons "Add module from the course", "Remove module from the course" and "Create Schedule".

6.2.2 It has a "File" option on the menu bar which consists of five options. Input, Output, Help, About and Exit.

The Input option is used to make the console to go to the main screen after getting the output without reopening the application.

Once we got the output, to get the same output again the Output option is used.

Help button shows a window that consists of steps to use the application.

About button shows the details of the project.

By clicking on the Exit button the application will quit.

6.2.3 At first the user is allowed to select a course from the provided drop down list of courses. Without selecting a course nothing will be activated in the application. After selecting a particular course, modules list will be activated. So that user can select one module or multiple modules from that list.

After selecting the modules, by clicking on the "Add module to the course" button the selected modules are added to the selected course.

6.2.4 Before adding the modules to a course "Remove module from the course" button will not be activated. User should select at least one module from the list. Otherwise an error message will be displayed as follows.

User can remove any module that is attached to a course, by clicking on the "Remove module from the course" button.

Without selecting at least one module from the list of added modules to a course if user press "Remove module from the course button", an error message will be displayed as follows.

6.2.5 After adding the modules to a selected course user is allowed to select a date from the provided calendar option. The application shows the current date by default. We can select our desired date by changing the months and year from drop down lists. The date we selected will be the stating date of the examinations.

After selecting a date, by clicking on the "Create Schedule" button user will get the output which shows the full date and day of the exam of selected modules by solving the considered constraints. The output screen will be as follows.

After getting the output user can go to the Input part without quitting the application by clicking on the Input button from File option.

6.3 INSTALLATION GUIDE

To run this application we need some software requirements.

Java programming language should be installed in the system where the application is running.

Java programming language can be downloaded from the official web site of sun Microsystems.

In the home page of the Sun Microsystems we can find latest version of java standard edition. Some of the JDK (Java Development Kit) will come with IDE like Netbeans and MyEclipse. User can download those packages as well.

In this project we used MyEclipse IDE and jdk1.6.0 version of java.

To run the java program on any system user should need to install any version of java (latest version is recommended).

After installing the java user should set the path setting and class path setting on the system.

6.3.1 PATH SETTINGS OF JAVA

After installing the java latest version, go to the folder where the java was installed.

Copy the address of the path.

Right click on the My computer folder on the desktop, click on the properties.

Go to the advanced system settings.

Click on the Environment Variables button.

On user variables box, click on the New button.

On variable name label type PATH.

On variable value label right click and paste the copied address.

Syntax for PATH setting: address of the java version\bin;.;%PATH%.

After that click again on New button.

Now give variable name as CLASSPATH.

On variable value label again paste the copied address and type \lib\tools.jar;.;%CLASSPATH%

After setting the path settings user can run any java program in that system.

After that, download and install the MyEclipse IDE.

6.3.2 USING MyECLIPSE

After installing the My Eclipse, open the application.

Go to the File menu click on the New.

Select New Java project.

Give a project name.

Later click on the create project from existing source. Browse for the project folder where the project code was saved. After that, click on the finish button.

The project will be displayed in the Project Explorer console.

Then right click on the project go to the Build path then click on the Configure build path. Then a properties window will open.

In that go to the Libraries, then click on the Add External JAR button.

Then browse for CHOCO java library jar file. Add the CHOCO library to the project.

This is the main facility of the MyEclipse IDE; it can add external jar files easily to the project.

6.3.3 EXECUTING THE APPLICATION

Open project in the MyEclipse.

Right click on the project, all the files in the project will appear.

Right click on the main java file which was TimeTable.java file in this project, click on the Run As button.

It will show the Run configurations, click on the Run button. Then the application will open.

6.4 EXAM MATRIX

Exam matrix is the document which I received from the project supervisor Dr. Robin Grant.

This document consists of the list of all the modules and cohorts of undergraduate and post graduate students.

From this document I have chosen the courses and modules which are used in the application.

Writing Services

Essay Writing
Service

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing
Service

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision
Service

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.