Online Examination Management System

Online Examination Management System

CHAPTER- 1: Introduction

1.1 Topic of the system

Now a day, the use of information technology in educational institutes and private organization is very common. In educational institutes you will find presentation software, course websites, Intranet facility and online homework assignments and the automation of organization have been found very commonly with the rapid development in information technology. Now a day, in organization due to automation all the works is done by computers. It makes work easier, faster & reliable as compare to the previous way of working.

Information technology is growing day by day still we fail to provide proper IT assistance to education industry. At the time of Exam, Still we follow the same old method of collecting questions from different teachers , then arranging them in proper order and then setting up a questionnaire and even at the places where we are following online or automated examination system we are not able to prevent the drawback of same or repeated question paper.

The system which developer is going to propose is an “Online Examination Management System”. This system is used to solve many problems faced by education organization or any other organization (who are conducting an exam for any purpose). This system is used to conduct objective based/multiple choice based online exam; it will also generate the question paper for an online exam and written exam (which is a common method of conducting an exam). It will generate random question in online exam for each candidate, it will also assess online exam & generate a result for the candidate at the same time after completing an exam. This system will generate all the required report to keep the record in files.

1.2 Purpose of the Situation

As the Information technology is growing day by day still we fail to provide proper IT assistance to education industry. Still we follow the same old method of collecting questions from different teachers, then arranging them in proper order and then setting up a questionnaire and even at the places where we are following online or automated examination system we are not able to prevent the drawback of same or repeated question paper. With the help of proposed system user can solve all the problems and make work easier, faster, and reliable.

1.3 Target Reader

The main target readers of the proposed system are stake holder of educational or other institute/organization, who conducts exams for admission purpose, exam preparations or jobs. Candidates those are willing to appear in exams for any purpose like admission, preparation etc.

1.4 Topic Background

Online Examination Management System is a system which is used by any educational institute or any organization who are conducting exam for job or any other purpose. This system will help them to conduct an online exam. This system is used to conduct an aptitude paper for admission or job purpose and it will also help to generate a question paper for educational institute.

The most important feature of proposed system is that this system is not only a web based application it is a combination of web-based and stand alone application. So that user can take the benefit of proposed system in any situation. User never depends on the net connectivity for his work user can do his work with the help of standalone module.

Proposed system will help to keep the record of students/candidates who are willing to give exams. It will also store the records of members of the institute/organization. It will store all the data related to examination like Question, Exams Detail, and Exam Schedule etc. Proposed system will also help to conduct an online exam so that user can take exam at any time and candidate can also participate in exam from any part of this world. Online exam consist mainly two type of question multiple choice and multiple response. At the time of online exam random question will generate for exam so that no one candidate will get the same question at the same time if questions are available in database. Proposed system will also help to assess paper at the same time after the completion of exam.

This will also help to generate a question for free format question which is very commonly used in any educational institute. This can only assess by the examination authorities.

Another important thing in proposed system is that it can save data at real time if any problem will take place it store all the data at the same time, so that there is no lose of data.

1.5 Problem Context and Rational

Tangible benefit

The use of “Online Examination Management System” will also help in institute & organization to achieve many objectives.

They are….

1. Frequently you can assess student learning: – With the help of online exam you can take exam any time to check the learning of the candidate.

2. Elimination of grading requirement and cost:- All the things will done with the help of computer like taking an exam of the candidate, generating a question paper for online exam & written paper, assessment of online exam paper & generating the result of candidate. So that there is a less requirement of manpower & time. So that it will reduce the cost & requirement to take an exam.

3. Immediate feedback of student performance: – With the help of this system you can give feedback to the student at the same time because paper of online exam will assess at the same time by the system. So that there is no need to wait the candidate for there result.

4. Elimination of paper & copying cost: – Online exam will help to eliminate the requirement of paper work. With the help of this system all the work will done with the help of computers so that, it will reduce usage of paper. Certain statistic quote that 18% of corporate printed material becomes outdated after 30 days. Imagine that what happened after a year what. Now, imagine if that material were always online or on your system. So that there is no requirement of buying the paper for paper work & it will also reduce storage problem for storing bundles of paper.

5. It will help to save time: – This system will help to save the time of the people who are involved in exam. Already question where stored in database of the system. No need to set the paper many days before the exam you can generate the paper at the same time of exam. There is no need to check the paper. All the paper will be checked with the help of system. There is no need to wait for result candidate can see result after completing the exam.

Intangible benefit

1. Access is possible from any where: – You can give an exam from any centre in the world there is no restriction of borders to give an exam.

2. It gives more security as compare to present system: -If you come to know that exam paper is hacked so that you can change the paper at the same time. But we are generating random question so there is no use of hacking the paper.

3. It will make work consistence: – With the help of this software you can assure that your exam paper or result will not be modified by any person without your permission. There is no chance of paper leak. If you come know that exam paper is hacked then you can change the paper at the same time. Then there is no partiality in checking of paper the entire candidate will get marks according to their caliber. This will help to generate a randomly question in question paper. So that each candidate will get different paper in the same exam, so there is no chance of cheating.

1.6 Objective of the System

In the proposed system “ONLINE EXAMINATION MANAGEMENT SYSTEM”, people will find solutions for all their queries and loopholes in the existing exam assessment methodology. The system which developer is going to develop will help in institutes & organizations to take an exam, for admission in colleges & for placement in companies. This system will work on both side client side as well as server side. It means it’s a combination of web application & stand alone application. So that with the help of this system people can take online exam with the help of web technology & with the help of standalone application you can save questions any time there is no need of internet connection. This system will help to take an online exam so that candidate can access the exam from any one of the exam centre in the world. This system will help them to store the question in database of the system for exam. This system will help to generate the question paper from the database with the different level of difficulties & grades. Now if you want to take a written paper of the candidates then this system will generate the question paper for return paper also. The questions for written exam are randomly generated so that there is very less chance to repeat the question in the question paper. It will happen only if there is less amount of question in database. This system will help them to assess the exam paper of the online exam. This system will automatically generate the result of the exam. You can export a question paper in “.doc” format for written paper.

1.7 Functionality of the System

Modules of the system

Candidate/Student Information: This module will help to keep the record of the entire candidate of exam.
Teacher Information: This module is used to keep the record of the entire faculties in institute.
Generate Question Bank: This module will help to insert the question in the database.
Generate Question Paper: This module will help to generate the question paper which includes all types & wattage of question for the candidate. It will export the paper in “.doc” format for written exam.
Online Examination: This module is used to take an online exam.
Reports: This module will help to generate all the reports.

1.8 Deliverables of the system

v Creating data bank

1. Question can be categorized according to topic, types etc.

2. Exam can be created random basis per student.

3. System can automatically add the marks allocated in each question to determine the total mark for the exam.

v Control Mechanism in the Exam

1. Time limit can be set for the exam.

2. The sequence of question can be randomized.

3. Student can navigate within a exam (i.e. backward & forward) can be set navigation tool/button can be selected for a exam & these button can be switched.

4. Student can be allowed to exit the exam before completing the entire question.

5. A specific date for a exam to be active can be set.

v Question Types

Multiple Choices: This allows the user to select one correct answer.
Multiple Responses: This allows the users to select more than one answer.
Free Format: This type of question will used to take a written exam of the student which is very often used by educational institute to conduct an exam.

v Other Essential Requirements

Negative marking should be possible in all the question types.
Remaining time can be displayed.
Free format question can be saved in Data Bank.
A paper for written exam can be generated with the help system Data Bank.
Answer can be saved at real time.

v Security

Only registered student are able to access the exam.
Exam can be made available on special dates.

v Reporting

The following results on the exam performance can be obtained.

Student number, name & mark in word format.
Average time used by the student
Time taken for each individual student to complete the test.

CHAPTER- 2: PROBLEM DESCRIPTION

Introduction to problem area

Isn’t it an irony that the agent which is solely responsible for the development of these technologies, itself has not been served fully? Examination is one such component of educational system which has always held a very high importance. Since time immemorial examinations are held to separate the best out of rest. The formal examination system is a very long procedure to conduct an examination. From the respect of the recruiter, they should give extra effort on the examination to select employees for the organization. This is a huge responsibility and extra load to the recruiter to conduct an examination. This is very costly and extremely tedious to conduct an examination. Side by side online examination is a very sophisticated examination conducting system. Nowadays, almost all of the organizations or companies are using computerized system to manage their organizations’ data. At the same time most of the universities or campuses are using computerized system for storing and managing their education data excluded the examination data (exam question, exam answer and so on). Therefore, lecturers have to create new exam papers manually, it will bring a lot of troublesome while they want to retrieve back previous exam question or answer for references purpose. In this process, still a lot of messy work is involved such as manually clicking or searching the old set of questions. Even they have a common hardcopy or softcopy without systemisation. Furthermore, the admin is always busy in arranging the exam papers and headache of managing a flexible exam time schedule. Also without the computerized system, the examinee cheating issue and the security issue (sneaked out the exam paper before the exam) cannot be controlled well.Internet connectivity often gets lost which is another problem being faced by the examinees.

Nature of challenge

The main challenge in developing this system will be to understand the concepts and fundamentals behind managing examinations online. As I am not one of the administrative staff it will be quite an uphill task to get to the basic functionalities of this system. The main challenge that would be required for building this system is that it will generate the random question paper to each student so as to avoid cheating. It would evaluate the answers very instantly. It would have a time limitation for each and every section of the questions and would be ideal for the competitive exams like GRE, CAT etc. The notification of results would be sent to the candidate by email or text message. The generation of admit card is another challenge which would require a lot of effort as a huge crowd would be attempting the exam. We can also save the current exam and would rather provide facilities to both the examiner and students. Another serious challenge is to handle the power failure. It is required to for me to learn how to generate the questions papers and the admit cards randomly. I also need to learn how to handle the power failure and the advanced features of ASP.NET which includes the report generation, session management and all the security features that needs to be incorporated in the system so as the system may be hack proof. I need to learn how to generate different sets of questions from a set of questions. Maintaining the database is another challenge which needs a lot of efforts.

Read also  Issues In Project Management

CHAPTER- 3: PROJECT PLANNING

Development Plan

The Development Plan is the essential part as it provides the action plan for developing the “Online Examination Management System”. The development plan will show what will be done and in what time. Since the methodology selected is RUP methodology, the development plan is developed by concerning the stages of RUP methodology.

Project Duration: 30 weeks

1. Inception phase (Estimated Time =41 Days)

1.1 Iteration 1: [Task: Pre-proposal and planning] (Duration: 25 Days)

1.1.1 Project Identification

1.1.2 PPF discussion with supervisor

1.1.3 Preparation of PPF

1.1.4 Online submission of PPF

1.1.5 Finalization of project title

1.2 Iteration 2: [Task: Development Plan] (Duration: 17 Days)

2.1.1 Specification research of the project

2.1.2 Identification of project module

2.1.3 Limitation of project scope

2.1.4 Identification of resources

2.1.5 Identification of required techniques to be learned

2.1.6 Methodology used

2.1.7 Preparation of development plan

2.1.8 Preparation of test plan

2.1.9 Submission of PSF

2.1.10 Gantt chart

2. Elaboration Phase (Estimated Time= 67 Days)

2.1 Iteration 1: [Tasks: System Investigation and Research] (Duration :14 Days)

2.1.1 Collect user requirements

2.1.1.1 Primary research

2.1.2.1.1 Questionnaire

2.1.2.1.2 Interviews

2.1.2.1.3 Observation

2.1.2 Research on the functional areas of the system

2.1.3 Identification of modules

2.2 Iteration 2: [Tasks: System Analysis] (Duration: 41 Days)

2.2.1 Analysis of user requirements

2.2.2 UML diagrams

2.2.3 Screen design

2.2.4 Database design

2.2.5 Evaluation of the screen and database design

2.3 Iteration 3: [Tasks: Technical language learning and research] (Duration: 12 Days)

2.3.1 Secondary research

2.3.2 Finalization of language

2.3.3 Finalization of development methodology

2.3.4 Learn technical skills

3. Construction Phase (Estimated Time= 58 Days)

3.1 Iteration 1: [Tasks: Interface Design and Database Design] (Duration: 26 Days)

3.1.1 Database Design

3.1.2 Prototype design

3.1.3 Documentation of the system

3.2 Iteration 2: [Tasks: System Modules] (Duration: 32 Days)

3.2.1 Analysis of the system

3.2.2 Identification of modules

3.2.3 Implementation of modules

3.2.4 Documentation of modules

4. Transition Phase (Estimated Time= 45 Days)

4.1 Iteration 1: [Tasks: Testing] (Duration: 27 Days)

4.1.1 Integration of all the modules

4.1.2 Preparation of test plan

4.1.3 Finding the target users

4.1.4 Testing and debugging the entire system

4.2 Iteration 2: [Tasks: Documentation] (Duration: 15 Days)

4.2.1 Completion of system documentation

4.3 Iteration 3: [Tasks: Luck Iteration] (Duration: 3 Days)

4.3.1 Finishing tips

CHAPTER- 3: LITERATURE REVIEW

3.1 Domain Research

3.1.1 Online Examination –

As a change in model world all the things are going to be automated know a day all work done with the help of computer. Which makes our work more easy, fast (time consuming) & reliable. Same in education field also examination is also will taken with the help of computer it means the process of online examination will help the education institute to take an exam online which can help them to take an exam from anywhere in this world.

Online examination is completely objective based exams which assume simple answers that can be formally checked and easily evaluated online. The typical type of questions are 1) one word answer, 2) multiple choice, 3) free format Question in this type of question system need to grade manually by the instructor.

System Architecture

Online Examination system has four major components.

1) Examination Preparation,

2) Examination System,

3) Examination Monitoring, &

4) The Auto Grading System.

Examination Preparation – This component is used to manage the data bank of the question & answer of the question, Assign the test Id, Schedule the test. Data base is opened to the teacher to add the question for the exam.

Examination System – This component is used to control all the functionality of the system. Like client side Control, Time Control, Security of the system. This component is very important because it used to keep the control on the security & time.

Examination Monitoring – This component is used for real time monitoring which can help to keep the track of exam processing, test ID statistic and collect all the answers.

The Auto Grading System – This Component is used to grade the exam automatically with the help of this system. All the answer of the exam is graded with the help of this system automatically.

Component of Online Examination

It is a multi-layer system composite of Web Server, Database Server and Middleware Server, Such as Internet browser. In this developer using Microsoft .Net Frame Work 2.0 and Internet Information Server (IIS) 6.0 as the Web Server, The Database Server is My SQL.

Multi Layer System

Middleware Server and the client Module which is designed according to the Microsoft DCOM (Distributed Component Object Model Standard) standard is the kernel of the Examination System. DCOM is the binary object’s extension jointing LAN, WAN and Internet, which can instance and bind objects over different network. It is an advanced network protocol used to co-operate with COM based components of two processes in different locations. Server-side component is middle ware of the system which provides communication interface between clients and the web server or database server. Client is a client-side component which is called by the browser to control the client computer and submit or receive information from the server. This technology guarantees the flexibility and the potential for extension of the test system. In addition, it allows access to local files, whereas in conventional systems, the IE security prevents such access.

Communication of Client and Server

(http://fie.engrng.pitt.edu/fie2003/papers/1300.pdf Retrieved on Aug, 16, 2007)

3.1.2 Exam Assessment –

Exam Assessment is also known as Auto-Grading System. This will help to assess an exam paper of the exam. It helps teacher to assess the paper which are collected from examination system. There are two type of grading: 1) Objective Question & 2) Operational Question. Objective question such as Choice question, True/False etc can be graded efficiently by accurate matching or fuzzy matching. But to grade an Operational question is not an easy task with the help of a simple matching algorithm.

To check operational question there are two possible solutions.

First way to grade an operational question is reading the answer file directly and comparing it to key file. But it is not practical because of Microsoft office file is very complicated to read the question file and another way to grade the operational question is with the help of office OLE object. This is method is convenient and efficient but it have big disadvantage & practically not possible. The source code of the system is closely related to concrete question so it will create problems at the time of question are changed which result large amount of work.

(http://fie.engrng.pitt.edu/fie2003/papers/1300.pdf Retrieved on Aug, 16, 2007) and (http://www.iacis.org/iis/2005_IIS/PDFs/Davidrajuh_Tharmalingam.pdf Retrieved on Aug, 7, 2007)

So developer decided that the grading of operational questions is not possible because to grade an operational question we have to create complete dictionary which contain thousands of words.

3.1.3 Distributed Computing-

As the technology changed many things become easier which make our work more efficient and easy. Distributed computing is also very helpful to do all this work. As we all know the power of computer. What he can do for us to make our work efficient. Know assume all the work is done with the help of single computer; it is also know as regular computing or Grid Computing. But it will work but only if we are doing simple things, if we want to do many complicated work with the help of single computer it makes our work very slow. This is not a good approach to do our work so the better way to do our work. So in this situation distributed computing is very helpful it will do work with help of many computers. It divides its workload very smartly with the help of many computers which are available on network. With the help of distributed computing we can do our work very efficiently and quickly.

Regular vs Distributed Computing

(http://library.thinkquest.org/C007645/english/0-definition.htm , Retrieved on Aug 19, 2007)

The main advantages of distributed computing over traditional supercomputer is it’s economy, Distributed computing can take full advantage of a computer’s capabilities by keeping it busy with numbers to calculate. If enough users sign up, these linked computers — often referred to as virtual parallel machines — can improve the fastest supercomputer by as much as four times for a fraction of the supercomputer’s cost.

(http://library.thinkquest.org/C007645/english/images/103-advantages.jpg, Retrieved on Aug, 19, 2007)

3.1.4 Client/Server Architecture

3.1.4.1 2-Tier Architecture

3.1.4.2 3-Tier Architecture

3 tier architecture

After the research of Client/Server Architecture developer decided that 3-tier Architecture is the best way to develop the proposed system because proposed system is used by many number of user and it is an examination system, so that it require lot’s of security from the hacking of question paper which is only possible with the help of 3-tier architecture because all the data will stored on the main server of the system, and user can only interact with the Presentation layer of the system with the help of business logic. As the study of Client/Server Architecture developer come to know that C# and .Net Framework is the best development tool to develop an application in 3-tier architecture. So that developer decided to develop a proposed system in C# and .Net Framework.

3.2 Study of Existing System

There are many other examination system are available in market for the users.

They are:-

3.2.1 Online Examination System (OnEx)

This examination system is developed by Knowgence Technologies Pvt. Ltd. This system also provided many feature’s like.

Administrator will assign exam to users.
Ease of creation and modifying exam at any time.
Online monitoring of exams showing percentage completed.
Student can move from any question to question.
Automatic checking against predefined answer (if there is no Subjective question).
Automatic disabling of exam when it is completed.
Last 10 min alert.

And many more.

(http://www.knowgence.com/Download/OnExBrochure.pdf, Retrieved on October 18, 2009)

3.2.2 CUE Assessment System

This Assessment System is developed by CALM, Department of Mathematics,
Heriot-Watt University, this existing system is also used to assessed online examination.

The features which are provided in this system are –

1. Easy to create and modify the questions.

2. Checking of question and delivering exam.

3. Assessment for online exam accepts free format questions.

Varity of questions like multiple choices, multiple responses etc.

And many more.

(http://www.calm.hw.ac.uk/cue.html, Retrieved on October 18, 2009)

Why developer system is better than Existing system?

After the study of existing system developer come to know that many features are not available. But proposed system will take care of all the features.

1) No one system is a combination of standalone and web. So that it system is only used when internet is available.

2) No one system has the entire feature like online exam, exam assessment and paper generator.

3) Generating a question in an exam with random order so that no one student/candidate will get same question in an exam if question are available in a database.

4) Data will be saved at real time if any problem will occur so that data will store at the same time. It will help to reduce the chance of data lose.

5) Generating a paper for written exam which is very helpful for education institute like school and colleges that are very often used.

As the above features are not available in one complete system so that developer decided to provide this entire feature in proposed system.

CHAPTER-4: SECONDARY RESEARCH

4.1 Academic Research

4.1.1 Process Models

Process model defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer for developing the software. These process models are not perfect, but they do provide a useful road map for software engineering work.

Software engineer and there managers adapt a process model and then they follow it. In addition the people who have requested the software have a role to play as the process model is followed. Process model is important in the project as it provides the stability, control, and organization to an activity.

There are many Process Models like waterfall model, spiral model, etc. A project can be made under any model.

4.1.1.1 Waterfall Model

The waterfall model is also called as the “classic life cycle”. It suggests a systematic, sequential approach to software development that begins with customer specification of requirements and progresses through planning, modeling, construction, and deployment. It produces deliverables at each phase like software requirement specification, design documents, actual code and test cases, final product etc. The waterfall model is the oldest paradigm for software engineering.

(http://www.digitella.co.uk/brochures/Digitella%20SDLC.pdf , Retrieved on August 9, 2007)

Some of the advantages are-:

* The single requirements phase encourages specification of what the system is to do before deciding how the system will do. (i.e. specification before design).

* The single design phase encourages planning of the system structure before building the components (i.e. design before coding).

Read also  Equivalents In Little Man Computer

* The use of the reviews at the end of each phase permits acquirer and user involvement.

* Each preceding step serves as an approved, documented baseline for the succeeding step.

Some of the disadvantages of waterfall model are-:

* Baselines and milestones place heavily emphasis on documentation in the early phases of the project.

* Customers must be able to express their requirements completely, correctly, and with clarity.

* Delays can occur in designing, coding, and testing.

* It is difficult to access the true state of progress during the first two to three stages.

* The developer must understand the application from the beginning.

* No demonstration of system capabilities can occur until the end of the project.

4.1.1.2 Spiral Model

The spiral model is another iterative model that has been proposed. As the name suggests, the activities in this model can be organized like a spiral that has many cycles.

A spiral model is divided into a number of framework activities, also called task regions. Typically there are six task regions.

1. The customer communication task – to establish effective communication between developer and customer.

2. The planning task – to define resources, time lines and other project related information.

3. The risk analysis task – to assess both technical and management risks.

4. The engineering task – to build one or more representations of the application.

5. The construction and release task – to construct, test, install and provide user support (e.g., documentation and training).

6. The customer evaluation task – to obtain customer feedback based on the evaluation of the software representation created during the engineering stage and implemented during the install stage.

4.1.1.3 Incremental Model

The incremental model counters the limitation of the waterfall model and tries to combine the benefits of both prototyping and the waterfall model. The basic idea is that the software should be developed in increments, each increment adding some functional capability to the system until the full system is implemented. At each step, extensions and design modification can be made. When an incremental model is used, the first increment is often core product. i.e. basic requirements are addressed, but many supplementary features remain undelivered. The core product is used by the customer. As a result of use and/or evaluation, a plan is developed for the next increment. This process is repeated following the delivery of each increment, until the complete product is produced.

The increments provide feedback to the client that is useful for determining the final requirements of the system. A project control list is created that contains, in order, the tasks that must be performed to obtain the final implementation. This project control list gives an idea of how far along the project is at any given step from the final system.

(http://www4.desales.edu/~dlm1/it532/class02/devincre.html , Retrieved on August 9, 2007)

Rational Unified Process (RUP)

The RUP is a Software Engineering Process that provides a disciplined approach to assigning tasks and responsibilities within a development organization. Its goal is to ensure the production of high-quality software that meets the needs of its end-users, within a predictable schedule and budget [Rational Software, 2005]. It is built on software development best practices with embedded guidance on many techniques and approaches. The process frame work of RUP combines two dimensions. The first dimension represents the static aspect, describing the process in terms of activities, workflows, artifacts, and workers, whereas the second dimension represents the dynamic aspect of the process as it is enacted, and it is expressed in terms of cycles, phases, iterations, and milestones [think-box, 2004]. This process is superior to other methodologies because it captures many of the best practices of modern software development in a form that is suitable to wide range of projects.

It is a web-enabled browser-based tool broken into cycles, each cycle working on a new generation of the product. The four (4) consecutive phases are Inception, Elaboration, Construction and Transition [Rational Software, 2005]. In each phase there are much iteration involves to ensure that the final product goes through all the stages to meet the requirements and to improve the quality of the system. Besides that, any changes would be easier to fix and won’t effect later on in the development of the system. The RUP stages and their respective iteration are shown below:

rupComposition

[Source: http://www.think-box.co.uk/rup.html]

Justification for using RUP Methodology

After the lot of research methodology developer decided to use RUP reason behind using RUP Methodology is it represents an iterative approach that is superior for a number of reasons:

With the help of this approach you can change your requirement easily if any change comes in the Online Examination Management System.
All the risk in Online Examination Management System will discover at the time of integration, so that Developer can mitigate it earlier.
With the help of this methodology developer can release the product earlier with limited functionality.
This methodology will help to reuse the common functions in the system because all the common parts are discovering at the time of partial design.
As all the error in the system where corrected at the time of several iteration, which makes system more robust.
Developer can learn along the way at the time development of the system.

These are the main reason behind using RUP Methodology.

4.1.2 UML (Unified Modeling Language)

“The Unified Modeling Language (UML) is a non-proprietary, object modeling and specification language used in software engineering. UML includes a standardized graphical notation that may be used to create an abstract model of a system: the UML model.

UML is officially defined at OMG by the UML meta-model (a Meta-Object Facility meta-model serialized in XMI). UML is a General Purpose Modeling language. While UML was designed to specify, visualize, construct, and document software-intensive systems, UML is not restricted to modeling software. UML has its strengths at higher, more architectural levels and has been used for modeling hardware (engineering systems) and is commonly used for business process modeling, systems engineering modeling, and representing organizational structure among many other domains.”

The primary goals in the design of the UML were:

* Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models.

* Provide extensibility and specialization mechanisms to extend the core concepts.

* Be independent of particular programming languages and development processes.

* Provide a formal basis for understanding the modeling language.

* Encourage the growth of the OO tools market.

In UML there are 9 types of diagrams.

* Class diagram

* Component diagram

* Object diagram

* Deployment diagram

* Activity diagram

* Use Case diagram

* State Machine diagram

* Sequence diagram

Class Diagram- In the Unified Modeling Language (UML), a class diagram is a type of static structure diagram that describes the structure of a system by showing the system’s classes and the relationships between them.”

Component Diagram- “A component diagram depicts how a software system is split up into physical components (e.g. files, headers, link libraries, modules, executables, packages) and shows the dependencies among these components.”

Object Diagram- “An object Diagram represents Objects & there relationships, and correspond to simplified collaboration diagrams that do not represent message broadcasts.”(Muller, 2004, p.66)

Deployment Diagram- “Deployment diagrams serve to model the hardware used in system implementations and the associations between those components. The elements used in deployment diagrams are nodes (shown as a cube), components (shown as a rectangular box, with two rectangles protruding from the left side) and associations.”

Activity Diagram- Activity Diagram describes the activities of a class in response to internal events. “It also represents the behavior of an operation as a set of actions.” (Muller, 2004, p.66)

Use Case Diagram- Use Case Diagram describes the system functionality as a set of Use Cases which represent discrete tasks. Actors interact with the system to complete the tasks. In other words I would say Use case “represents the functions of a system from user’s point of view.” (Muller, 2004, p.66)

State Diagram – “State diagrams are used to graphically represent finite state machines”. State transition tables are another possible representation. There are many forms of state diagrams that differ slightly and have a different semantics.”

Sequence Diagram- The sequence diagram shows the sequence of messages, which are exchanged among roles that implement the behavior of the system, arranged in time. It shows the flow of control across many objects that collaborate in the context of a scenario.

Collaboration Diagram- “The Collaboration Diagram is a spatial representation of objects, links and interactions. “(Muller, 2004, p.66) It basically describes interactions between classes and associations.

4.1.3 Web-ML (Web Modeling Language)

WebML (Web Modeling Language), a conceptual language is aimed at supporting all the activities & perspectives of the web site design. WebML provides graphical, yet formal specifications embedded in a complete design process, which can be assisted by visual design tools. WebML aims at providing a structured approach to the design of data-driven web sites.

Objectives of Web-ML are-:

Expressing the structure of a Web application with a high-level description
Providing multiple views of the same content.
Separating the information content from its composition into pages, navigation, and presentation.
Enabling the specification of data manipulation operations for updating the site content.
WebML is fairly new and but it is being used more & more as it really suited for modeling web based projects.

There are distinct models to design a data-intensive website:

Data Model-Data Modeling describes the conceptual data organization; it is compatible with the Entity-Relationship model and UML class diagrams.

Hypertext Modeling- The goal of hypertext modeling is to specify the organization of the front-end interfaces of a Web application. Unlike data modeling which is much consolidated activity, hypertext modeling is the younger discipline. The key ingredients of WebML are pages, units, and links, organized into modularization constructs called areas and site views.

Content Management Model- It models the invocation of back end operation such as database actions and embedded operations.

4.1.4 ERD (Entity Relationship Diagram)

ERD is a most important part of development of any system. This ERD is used to design a database of the system. It will help to know the relationship between the databases of the system which makes our work easy.

There are three basic elements in Entity Relationship Diagram. They are:-

Entities are the “things” about which we seek information.
Attributes are the data we collect about the entities.
Relationships provide the structure needed to draw information from multiple entities.

Entity Relationship Diagram Notations

To make an Entity Relationship Diagram there are many notations.

They are:-

Entity – It’s an object or concept a bout which you want to store information.

(http://www.smartdraw.com/tutorials/software/erd/images/erdentity.gif, Retrieved on October 29, 2009)

Weak Entity – Attributes are the properties or characteristics of an entity.

(http://www.smartdraw.com/tutorials/software/erd/images/erdweakentity.gif, Retrieved on October 29, 2009)

Key Attribute – This is a unique, distinguish characteristics of the entity.

(http://www.smartdraw.com/tutorials/software/erd/images/erdkeyattr.gif, Retrieved on October 29, 2009)

Multivalued Attribute – It can have more than one value.

(http://www.smartdraw.com/tutorials/software/erd/images/erdmultattrib.gif, Retrieved on October 30, 2009)

5. Derived Attribute – It is based on another attribute.

(http://www.smartdraw.com/tutorials/software/erd/images/erderivedatt.gif, Retrieved on October 30, 2009)

Relationship – It shows how two entity share information in the database structure.

(http://www.smartdraw.com/tutorials/software/erd/images/erdrelationship.gif, Retrieved on October 30, 2009)

Cardinality – It shows how many instance of an entity relate to one instance of another entity.

(http://www.smartdraw.com/tutorials/software/erd/images/erdcardinality.gif, Retrieved on October 30, 2009)

There are many other notations which are used by cardinal notation. They are:-

(http://www.smartdraw.com/tutorials/software/erd/images/erdinfoeng.gif, Retrieved on October 30, 2009)

(http://www.smartdraw.com/tutorials/software/erd/images/erdbachman.gif, Retrieved on October 30, 2009)

Recursive Relation – In some cases, entities be self-linked.

(http://www.smartdraw.com/tutorials/software/erd/images/erdrecursive.gif, Retrieved on October 31, 2009)

Justification for choosing UML and ERD

In UML there are many diagrams to represent the design of the system. But the developer has chosen only few diagrams to represent the working of the proposed system. Some of the reasons are listed below to justify the chosen diagrams

Use case Diagram:

The developer has used Use Case diagram to define the functionalities supported by the proposed system and to show which functionalities are intended to which actor and relation ship among them.

The developer has used this diagram because it describes what a system does from the stand point of an external observer. So that the external observer can easily understand what the system does rather than how.

Sequence Diagram

The developer has used Sequence diagram to understand the flow events and task to be performed by individual module. It is used to describe how the proposed system is interacting with each actor and shows the responses occurred by the system on user input and it shows how operations are carried out.

The sequence diagrams are easy to show the functionalities and how it can be carried out and the stake holder can understand this easily. Because it shows on which event what action will be taken by the system. Stakeholder can easily give comment and suggestion because it is easier to understand. It just gives a picture of the system working.

Class Diagram

The developer has used Class diagram because it shows the static structure of the proposed system.

The Class diagram helps the developer because the developer can find out details of soon to be coded class along with each attributes and methods, because after the design phase the developer has to implement the system. So the class diagram is very much beneficial for the developer to code the system.

One of the important benefits of creating class diagram is that the developer can generate code using specials tools like Rational Rose that can generate the skeleton or template for the class.

ERD

The developer has used ERD to represent the initial analysis of client requirement using data modeling. This model acts as a framework for the development of the proposed system that is very helpful for the developer.

4.1.5 Design Pattern

Design Patterns are devices that allow programs to share knowledge about their design. In our daily programming, we encounter many problems that have occurred, and will occur again. To solve the problem occurred at programming is the only way to Document this design patterns we can reuse and possibly share the information that we have learned about how it is best to solve a specific program design problem. It has a name, a description of the problem it addresses, and a general solution that designers must tailor to their particular variant of the problem. The pattern also educates the reader about the consequences good and bad of its application and about implementation variants. There are total 23 types of design pattern and these patterns are divided into three categories they are 1) Creational Pattern, 2) Structural Pattern and 3) Behavioral Pattern.

Read also  The effect of mobile phones

Creational Pattern

Pattern Name

Description

Abstract Factory

Creates an instance of several families of classes

Builder

Separates object construction from its representation

Factory Method

Creates an instance of several derived classes

Prototype

A fully initialized instance to be copied or cloned

Singleton

A class of which only a single instance can exist

Structural Pattern

Pattern Name

Description

Adapter

Match interfaces of different classes

Bridge

Separates an object interface from its implementation

Composite

A tree structure of simple and composite objects

Decorator

Add responsibilities to objects dynamically

Façade

A single class that represents an entire subsystem

Flyweight

A fine-grained instance used for efficient sharing

Proxy

An object representing another object

Behavioral Pattern

Pattern Name

Description

Chain of Responsibility

A way of passing a request between a chain of objects

Command

Encapsulate a command request as an object

Interpreter

A way to include language elements in a program

Iterator

Sequentially access the elements of a collection

Mediator

Defines simplified communication between classes

Memento

Capture and restore an object’s internal state

Observer

A way of notifying change to a number of classes

State

Alter an object’s behavior when its state changes

Strategy

Encapsulates an algorithm inside a class

Template Method

Defer the exact steps of an algorithm to a subclass

Visitor

Defines a new operation to a class without change

(http://www.dofactory.com/Patterns/Patterns.aspx, Retrieved on October 31, 2009)

Benefit of Design Pattern

There are main four benefits of design patterns. They are

With the help of Design pattern we can reuse design, which is more powerful than code reuse.
A common vocabulary for design, each pattern name contributing to that vocabulary.
It will help to make understand the others what system is doing and why it requires.
Use of design pattern make easy to transform an application of one pattern to an application of another.

Justification for using Selected Design Pattern

Since the developer wants to implement the proposed system using Three-tier Architecture as stated in the Architectural research. So to prove or apply the 3 tier architecture being applied in the proposed system, the developer has used MVC architecture as observer pattern. Since the MVC architecture supports 3-tier architecture.

Observer Pattern

“The object containing the data is separate from the object that display the data, and that these display objects observe changes in that data”

MVC Architecture as an observer:

The main objective of observer pattern is that it separates the design in three parts that are

* Model

* View

* Controller

The model object is the data, we can say database also that contains the data, and the model does not have any idea of GUI. The view is the user interface that is GUI that uses the query to methods to obtain data from the model. Controller knows the physical means by which the user manipulates data within the model any change in each part will not reflect each other. If any changes made in the model will not affect the view. This is how it proves the system is 3-tier architecture. Each design is made using the MVC pattern.

Proving the model to check whether pattern is applied or not

Let take an example of login use case. The developer has separated the model in 3 parts that are view, controller and model. As shown in the analysis class diagram below.

As shown in the figure the developer has divided the design in three separate parts and these are

LoginUI – View

Loginform- View

Loginconroller- controller

Logininfo – Model

4.2 Technical Research

Technical research on the following topics has been conducted:

1. Different programming Languages

2. .NET Framework

3. Different Databases

4.2.1 Programming Languages

4.2.1.1 ASP-: Active Server Pages

Active Server Pages (ASPs) are Web pages that contain server-side scripts in addition to the usual mixture of text and HTML (Hypertext Markup Language) tags. Server-side scripts are special commands you put in Web pages that are processed before the pages are sent from your Personal Web Server to the Web browser of someone who’s visiting your Web site. Active Server Pages (ASP) is an open, compile-free application environment in which you can combine HTML, scripts, and reusable ActiveX server components to create dynamic and powerful Web-based business solutions. Active Server Pages enables server side scripting for IIS with native support for VBScript, C# and JScript. ASP is an integral part of the Active Platform, Microsoft’s core Internet strategy. The Active Platform is a common set of languages, standards, and services that can be used to develop either Active Desktop (client-side) or Active Server (server-side) applications.

The Active Platform paradigm makes it easier and more cost-effective for developers to leverage their skills to develop a broad spectrum of applications that run on the server and on the client. It also makes it very easy to transform a desktop application into a full blown client/server application.

4.2.1.2 PHP-Hypertext Preprocessor

PHP is a scripted programming language that can be used to create websites. It is an open-source; reflective programming language used mainly for developing server-side applications and dynamic web content, and more recently, a broader range of software applications. “There are three of the primary advantages of PHP.

Firstly, it is a cross platform technology and consequently PHP applications can be very portable – depending, of course, upon any additional components they are built to incorporate, such as vendor specific databases etc.

Secondly, because PHP bears so much resemblance to C programming languages, it is very easily picked up by developers familiar with this syntax

Thirdly, being open source, PHP is constantly evolving and, more importantly, bug fixes are being regularly implemented to the core libraries, which are freely available.”

(http://uk.builder.com/webdevelopment/asp/0,39030025,20283074,00.htm, Retrieved on October 31, 2009)

4.2.1.3 ASP.NET

ASP.NET, the next version of ASP, is a programming framework used to create enterprise-class Web Applications. These applications are accessible on a global basis leading to efficient information management. The advantage ASP.NET offers is more than just the next version of ASP.

0102aidowa_illo1

(http://www.directionsonmicrosoft.com/sample/DOMIS/update/2002/01jan/0102aidowa_illo1.gif. Retrieved on October 31, 2009)

Justification for using ASP.Net

Developer chooses ASP.NET as a frontend for web based module because as it operates on an entirely different architectural structure i.e. a compiled framework whereas ASP and PHP are interpreted scripting languages. This means that, firstly, those Web pages run much, much faster compared to other languages. It also means that source code is safer and more robust in ASP.NET. Additionally, ASP.NET introduces a new concept in Web programming – the notion of code-behind pages. With code-behind, each page of HTML is driven by its own compiled programmatically directives. Other benefits of ASP.NET are its full-featured integrated support for XML and Web services. There is also a very comprehensive range of security and cryptography libraries available to .NET, making it especially useful for ecommerce and enterprise data applications. ASP supports only two interpreted programming languages i.e. VBScript and JScript, whereas ASP.NET supports more than 25 .NET languages (built-in support for VB.NET, C#, and JScript.NET).

4.2.1.4 VB.Net

VB.NET is an object oriented language that can be viewed ad the latest evaluation of Visual Basic (VB) implemented on Microsoft .NET frame work. It has been developed with significant changes to broke backward compatibility of older versions. Some features of VB.NET are following.

* Powerful Windows-based Applications

* Building Web-based Applications

* Simplified Deployment

* Powerful, Flexible, Simplified Data Access

* Improved Coding

* Direct Access to the Platform

* Full Object-Oriented Constructs

* XML Web Services

* Mobile Applications

* COM Interoperability

4.2.1.5 J2SE

Java Platform, Standard Edition or Java SE is a widely used platform for programming in Java. It is the java platform used to deploy general applications. J2SE consists of a Virtual machine, which is used to run Java programs together with a set of libraries (or packages) needed to allow the use of file systems, networks, graphical interfaces, and so on, from within those programs.

The Buzzwords of Java are following.

Simple
Object Oriented
Architecture Neutral
Portable
Distributed
High-performance
Multithreaded
Dynamic
Robust
Secure

It follows the rules “Build program on one system and run any where”. This is known as Platform independent.

(http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html, Retrieved on October 31, 2009)

Platform Independency

4.2.1.6 Java

The Java programming Language evolved from a language named Oak. Oak was developed in the early nineties at Sun Microsystems as a platform-independent language aimed at allowing entertainment appliances such as video game consoles and VCRs to communicate .Oak was first slated to appear in television set-top boxes designed to provide video-on-demand services. Just as the deals with the set-top box manufacturers were falling through, the World Wide Web was coming to life. As Oak’s developers began to re cognize this trend, their focus shifted to the Internet and Web Runner, an Oak-enabled browser, was born. Oak’s name was changed to Java and Web Runner became the Hot Java web browser. The excitement of the Internet attracted software vendors such that Java a development tools from many vendors quickly became available. That same excitement has provided the impetus for a multitude of software developers to discover Java and its many wonderful features.

4.2.1.7 C#(C- SHARP)

C# (pronounced “C-sharp”) is an object-oriented programming language from Microsoft that aims to combine the computing power of C++ with the programming ease of Visual Basic. C# is based on C++ and contains features similar to those of Java.

C# is designed to work with Microsoft’s .NET platform. Microsoft’s aim is to facilitate the exchange of information and services over the Web, and to enable developers to build highly portable applications. C# simplifies programming through its use of Extensible Markup Language (XML) and Simple Object Access Protocol (SOAP) which allow access to a programming object or method without requiring the programmer to write additional code for each step.

Advantages of VB over C#.Net, J2SE and Java

VB is a simple, modern, object oriented language derived from C++ and Java.
It aims to combine the high productivity of Visual Basic and the raw power of C++.
VB has been based according to the current trend and is very powerful and simple for building interoperable, scalable, robust applications.
VB supports Data Encapsulation, inheritance, polymorphism, interfaces
Components from VB.NET and other managed code languages and directly be used in VB
Value types (primitive types) are initialized to zeros and reference types (objects and classes are initialized to null by the compiler automatically.

Justification for using VB with ASP.Net

Developer Chooses VB as a frontend for Standalone module because developer already uses ASP.Net for web based module and both are the part of .Net Framework so that the synchronization (which one is most important part of this system) between database is more easy as compare to do by using other language like J2SE and Java. Developer can use VB.Net also but VB is more secure and consist many extra predefined function and classes which is very useful to develop an “Online Examination Management System” by the developer.

4.2.2 Microsoft® .Net Framework

“The .NET Framework is the programming model of the .NET environment for building, deploying, and running Web-based applications, smart client applications, and XML Web services. It manages much of the plumbing, enabling developers to focus on writing the business logic code for their applications. (http://www.softpedia.com/get/Others/Signatures-Updates/Microsoft-NET-Framework-Service-Pack.shtml Retrieved November 1, 2009).

Net Framework is platform independent and language independent. This means that .Net Framework allows you to use different programming languages such as VB.Net, C#, Jscript, VBScript, and Managed C++ and run applications on different platforms such as Windows, Unix, Macintosh, and Linux. The .NET Framework is divided into two main components: the .NET Framework Class Library and the Common Language Runtime.

* The Common Language Runtime (CLR)

* The .NET Framework Class Library (FCL)

The Common Language Runtime (CLR)

The Common Language Runtime, or CLR, is the foundation of the .NET Framework. “The CLR engine, instead of compiling the code into native code, compiles the code into Microsoft Intermediate Language (MSIL). The MSIL, a set of instructions, then translates the code into native code.

The common language runtime manages the execution of .NET programs by coordinating essential features such as language integration, security enforcement, memory, process, and thread management. In addition, it has a role at development time when features such as life-cycle management, strong type naming, cross-language exception handling, dynamic binding, and so on, reduce the amount of code that a developer must write to turn business logic into a reusable component. Because .NET applications are managed by the CLR, they are called managed applications.

Code that targets the runtime is known as managed code, while code that does not target the runtime is known as unmanaged code.”

(http://www.dotnet-guide.com/clr.html Retrieved November 1, 2009).

(http://www.murach.com/dloads/vasp/vasp_ch1.pdf , Retrieved November 1, 2009)

The .NET Framework Class Library (FCL)

The .NET Framework Class Library provides pre-written code in the form of classes that are available to all of the .NET programming languages. These classes are organized into groups called namespaces. The classes that support ASP.NET web programs are stored in the System. The .NET Framework Class Library consists of classes that provide many of the functions that you need for developing .NET applications. For instance, Base classes provide standard functionality such as input/output, string manipulation, security management, network communications, thread management, text management, user interface design features, and other functions. The Microsoft ADO.NET data classes support persistent data management and include SQL classes for manipulating persistent data stores through a standard SQL interface. XML classes enable XML data manipulation and XML searching and translations. The Microsoft ASP.NET classes support the development of Web-based applications and XML Web services. The Windows Forms classes support the development of Windows-based smart client applications. Together, the class libraries provide a common, consistent development interface across all languages supported by the .NET Framework

The Common Type System (CTS)

Order Now

Order Now

Type of Paper
Subject
Deadline
Number of Pages
(275 words)