You are on page 1of 62

INTRODUCTION

1.1 Introduction
The current scientific and technical progress and the tremendous
contributing to the many changes in the various fields of life, social, cultural,
economic, educational, and others all this provide by computer techniques.
Our society has entered the era of technology is one of the widest doors to
consumers diverse products, and develop the state itself and its members
keep up with the other developed countries and civilized.
Has resulted in cognitive development and blasting huge scientific and
technical progress to the continued increase in the amount of data and
information in various areas of life, which urged it to search for a way to
store this information and data retrieval and invest optimally and so began
some communities developed into what could be called a (community
informatics), a stage is an extension of the industrial stage, where the
economy depends primarily on the communities (information industries)
rather than on traditional industries. We find that modern technology has
entered the industry, agriculture, commerce, medicine, banking and
accounting systems, universities, schools, and many others
Information Technology: Information Technology Is to find the appropriate
methods and tools to store and organize information and speed of retrieval
when required and display the best forms of useful help to make the
appropriate decisions. Here, the computer as an essential element in all
applications or information-related industries, as it will depend on the
databases and will be the engine computer is a device to it. Studies have
shown that the knowledge and information that lead towards the worker to
his work efficiently and intelligently.
The rise of information industries necessarily require building the
foundations and structures that will in such industries, but most important of
these foundations is the force of human computer-related, which aims to the
following:
First, find information industries.
Second, reducing the information gap between developed societies and
developing societies.
Third: Configure the thought of information between members of society.
Which leads to an increase in the productivity of members of the community
through the best use of information
As computer and ICT entered all fields in our life, they became the driving
and leading tools to improve efficiency and performance. Among the
1

unlimited number of ICT applications, university automation and student


registration systems have of great importance.

1.2 Literature Review


The technological progress of the task and the key ingredient in the
acceleration of the means of economic growth and social and cultural
heritage of different countries, it forms the common denominator of the
various processes of economic development, particularly agricultural
development. We all realize the importance of promoting culture and
practices of the exchange and knowledge management backed by using
computer technology and the other in the field of agricultural and rural
development and enhance competencies and national and regional
capacities necessary for networking and knowledge management in the
areas of food security and rural development in general So after meeting
with the concerned authority to review the program was developed
Agricultural Statistics Department, rather than using manual work or Excel
software .

1.3 Problem Statement


Because of the tremendous development in the field of communication
and the different techniques notably the computer and his important role in
life in particular. And also because of the global information network
(Internet) of importance in this era of all aspects of life. And this revolution in
communication requires us to introduce information technology in
universities and institutions to improve the quality of work, where we
computerized the work of the University College. Automation of the
registration process with most important and common services and
functionalities and the grading, guidance and many other subsystems are
the main goals of the proposed system. On line registration (any time and
any place) are at the core of the system functionalities.
University Student Administration an Administration Systems of electronic
registration
Provide easy and high speed to get the desired result and so much better
than Systems of paper. we have the problem is the registration system set
forth in the colleges are still more and more severe, such as missed in the
process of registering students on subjects, need a lot of staff to complete
the registration process and due process and human waste of time
By manual recording and cause more problems in the destructive process of
teaching and that can be solved by the production control program for the
registration process.
2

The main reasons that led to build the project:


1 - Difficulty in processing the data and extract by the staff:
search on academic plan for student
record attendance
absences for students
course schedule for students
CGPA
etc.
2 - Difficult access to the following tasks by the student:
search on grades for student
search on academic plan for student
search on record attendance
search on absences for students
search on the course schedule for students
etc.
3 - Difficulty accessing the information
Information that is useful to the student. Specified in one place.
Information request tired. The staff.
The cost in time. If a student wants to communicate with the needed
information
And a lot of difficulties

1.4 Proposed System


The proposed system is to produce a computer system to control the
registration process as giving the system the multiple functions to solve it
and where it is permissible for us many problems and got rid of the waste of
time where solve registry problems and problems of GPA and other problems
that occur we have when we use the manual recording
The proposed system contains the following functionalities:
Course registration add and drop courses
Open new semester and semester's control
Online courses registration process
View the grading record for students
Add academic plan and view it
Printing the timetable for each instructor
Printing the timetable for each student
Graduation system
Absences system for students
Printing different reports
3

Printing the classroom's timetable


Calculating GPA for student
Printing the results for students at the end of semester
And other services such as add new department, new classroom, new
instructor, and new academic plan. And searching about student, modify
some information, find the courses that student registered in the
semester, etc.

Objective:
The general and specific objectives of the project are described below:
General Objective The general objective of the project is to automate the CRS.
Specific Objectives In order to attain the general objective, the following list of specific
objectives is set:

To develop an offline and online registration system,


To facilitate attendance record keeping,
To facilitate various report generation,
To allow lecturers, admin, employee ,division and admin to view reports on students
To produce a timetable
To converting works into paperless work

1.5 Software and Hardware Requirements


1.5.1 Development Requirements
Software Requirement
Visual Studio 10 Ultimate
Android Studio 10.0
Netbeans 8.0
SQL Server 2008
Microsoft .NET Framework
ASP.NET
Notepad++ 6
Photoshop
DevComponent
Crystal Report 13
Visual Paradigm
UML Modes
Windows 7 and Android OS
Hardware Requirements
Ram memory 4 G.B
4

Secondary storage 500 G.B


CPU speed 100 MH
Wireless Network or other network

1.5.2 End-User Requirements


Software Requirement
DevComponent Runtime
SQL Server 2008 Runtime
Crystal Report Runtime
Microsoft .NET Framework 4
Windows 7 or higher for windows application
Android OS for app
Hardware Requirements
Ram memory 1 G.B
Secondary storage 240 G.B
CPU speed 100 MH
Wireless Network or other network
Why we use SQL Server?
Our database must have the ability to:
Store large amount of data.
Work with more than one user from different machines.
High speed query executer.
Secured data with several security techniques.
These features are included in many types of database engines, such as SQL server,
Oracle and DB2. We used Microsoft SQL Server 2008, because it needs less server
Capability than the other engines and also it has powerful properties for our system.
Why we use Visual Studio?
Visual studio is very efficient tool for developing that provides
Powerful debug tools
Great GUI designing tools
ASP.NET Sites development
C# language which is a very powerful language
Visual Studio also can deal with crystal report.

1.6 Document layout


5

This report document contains seven chapters including this chapter. Chapter 2 is about the
required theoretical background to design and implement the system, chapter 3 is about
requirement gathering and analysis, chapter 4 is about the design of the developed system. In the
remaining chapters, prototype development, testing, conclusion and recommendations are briefly
explained.

Chapter 2
6

Theoretical Background

THEORETICAL BACKGROUND
2.1 Introduction
Building a dynamic courses administration system requires theoretical background from
different disciplines because of the variety of subjects including in the web site. These
disciplines can be summarized as follows:
Theory of Systems and Information Systems Introduction

Developments in system theories

Theory of Design (Data Base, Algorithms, Interfaces, etc.)

Theory of Implementation and Testing

Functional vs. non-functional testing

System Development Life Cycle (SDLC)

Theory of Database Design

Normalization

WHAT IS GUI?

In this chapter, we are going to discuss the basic theoretical background


required to design and implement the system.

2.2 Theory of Systems and Information Systems


2.2.1 Introduction

An information system (IS) refers to a collection of multiple pieces of


equipment involved in the dissemination of information. Hardware,
software, computer system connections and information, information
system users, and the systems housing are all part of an IS.
There are several types of information systems, including the following
common types:

Operations support systems, including


systems.
Management information systems.
Decision support systems.
Executive information systems.

transaction

processing

An information system commonly refers to a basic computer system but


may also describe a telephone switching or environmental controlling
system. The IS involves resources for shared or processed information, as
well as the people who manage the system. People are considered part of
the system because without them, systems would not operate correctly.
There are many types of information systems, depending on the need
they are designed to fill. An operations support system, such as a
transaction processing system, converts business data (financial
transactions) into valuable information. Similarly, a management
information system uses database information to output reports, helping
users and businesses make decisions based on extracted data.
In a decision support system, data is pulled from various sources and then
reviewed by managers, who make determinations based on the compiled
data. An executive information system is useful for examining business
trends, allowing users to quickly access custom strategic information in
summary form, which can be reviewed in more detail.
The operation theory is just similar to any other system, which needs
inputs from user (key in instructions and commands, typing, scanning).
The inputted data then will be processed (calculating, reporting) using
technology devices such as computers, and produce output (printing
reports, displaying results) that will be sent to another user or other
system via a network and a feedback method that controls the operation.

2.2.2 Systems development life cycle (SDLC)


What are the Software Development Life Cycle phases?
There are various software development approaches defined and designed which are
used/employed during development process of software, these approaches are also referred as
Software Development Process Models (e.g. Waterfall model , incremental model, V8

model, iterative model, etc.) . Each process model follows a particular life cycle in order to
ensure success in process of software development.
Software life cycle models describe phases of the software cycle and the order in which those
phases are executed. Each phase produces deliverables required by the next phase in the life
cycle. Requirements are translated into design. Code is produced according to the design
which is called development phase. After coding and development the testing verifies the
deliverable of the implementation phase against requirements.
There are following six phases in every Software development life cycle model:
1. Requirement gathering and analysis
2. Design
3. Implementation or coding
4. Testing
5. Deployment
6. Maintenance
1 - Requirement gathering and analysis: Business requirements are gathered in this phase.
This phase is the main focus of the project managers and stake holders. Meetings with
managers, stake holders and users are held in order to determine the requirements like; who is
going to use the system? How will they use the system? What data should be input into the
system? What data should be output by the system? These are general questions that get
answered during a requirements gathering phase. After requirement gathering these
requirements are analyzed for their validity and the possibility of incorporating the
requirements in the system to be development is also studied.
Finally, a Requirement Specification document is created which serves the
purpose of guideline for the next phase of the model.

2 - Design: In this phase the system and software design is prepared from the requirement
specifications which were studied in the first phase. System Design helps in specifying
hardware and system requirements and also helps in defining overall system architecture. The
system design specifications serve as input for the next phase of the model.
3 - Implementation or Coding: On receiving system design documents, the work is divided
in modules or units and actual coding is started. Since, in this phase the code is produced so it
is the main focus for the developer. This is the longest phase of the software development life
cycle.
4 - Testing: After the code is developed it is tested against the requirements to make sure that
the product is actually solving the needs addressed and gathered during the requirements
phase. During this phase unit testing, integration testing, system testing, acceptance testing
are done.
5 - Deployment: After successful testing the product is delivered or deployed to the customer
for their use.

6 - Maintenance: Once when the customers starts using the developed system then the actual
problems comes up and needs to be solved from time to time. This process where the care is
taken for the developed product is known as maintenance.
What are the Software Development Models?
The development models are the various processes or methodologies that are being
selected for the development of the project depending on the projects aims and goals. There
are many development life cycle models that have been developed in order to achieve
different required objectives. The models specify the various stages of the process and the
order in which they are carried out. The selection of model has very high impact on the
testing that is carried out. It will define the what, where and when of our planned testing,
influence regression testing and largely determines which test techniques to use.
There are various Software development models or methodologies. They are as follows:
Waterfall model
V model
Incremental model
RAD model
Agile model
Iterative model
Spiral model
What is Waterfall model- advantages, disadvantages and when to use it?
The Waterfall Model was first Process Model to be introduced. It is also referred to as a
linear-sequential life cycle model. It is very simple to understand and use. In a waterfall
model, each phase must be completed fully before the next phase can begin. At the end of
each phase, a review takes place to determine if the project is on the right path and whether or
not to continue or discard the project. In waterfall model phases do not overlap.

10

Fig (2.1)
Waterfall model
Advantages of waterfall model:
Simple and easy to understand and use.
Easy to manage due to the rigidity of the model each phase has specific deliverables
and a review process.
Phases are processed and completed one at a time.
Works well for smaller projects where requirements are very well understood.

Disadvantages of waterfall model:


Once an application is in the testing stage, it is very difficult to go back and change
something that was not well-thought out in the concept stage.
No working software is produced until late during the life cycle.
High amounts of risk and uncertainty.
Not a good model for complex and object-oriented projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements are at a moderate to high risk of
changing.
11

2.3 Theory of System Analysis and Design


The systems analysis and design (SAD) is the process of developing
information systems (IS) that effectively use hardware, software, data,
processes, and people to support the company's businesses objectives.
System analysis and design can be considered the meta-development
activity, which serves to set the stage and bound the problem. SAD can be
leveraged to set the correct balance among competing high-level
requirements in the functional and non-functional analysis domains.
System analysis and design interacts strongly with distributed enterprise
architecture, enterprise I.T. Architecture, and business architecture, and
relies heavily on concepts such as partitioning, interfaces, personae and
roles, and deployment/operational modeling to arrive at a high-level
system description. This high level description is then further broken down
into the components and modules which can be analyzed, designed, and
constructed separately and integrated to accomplish the business goal.
SDLC and SAD are cornerstones of full life cycle product and system
planning.
Systems analysis definition 2.3.1
Systems analysis is the study of sets of interacting entities, including computer
systems analysis. This field is closely related to requirements analysis or operations research.
It is also "an explicit formal inquiry carried out to help someone (referred to as the decision
maker) identify a better course of action and make a better decision than he might otherwise
.have made
System analysis is used in every field where there is a work of developing something.
Analysis can also be defined as a series of components that perform organic function
.together

Information Technology IT 2.3.2


The development of a computer-based information system includes a systems analysis phase
which produces or enhances the data model which itself is a precursor to creating or enhancing a
database. There are a number of different approaches to system analysis. When a computer-based
:information system is developed, approach breaks systems analysis into 5 phases

Scope definition
12

Problem analysis

Requirements analysis

Logical design

Decision analysis

Unified Modeling Language UML 2.3.3


UML includes a set of graphic notation techniques to create visual models of objectoriented software-intensive systems. UML offers a standard way to visualize a system's
:architectural blueprints, including elements such as

activities

actors

business processes

database schemas

(logical) components

programming language statements

Reusable software components.

13

Diagrams in UML 2.3.4


.UML 2.2 has 14 types of diagrams divided into two categories
The following figure explain the diagrams types

Fig (2)
Hierarchy of UML diagrams shows as class diagram

14

Use Case Diagram: describes the functionality provided by a system in terms of actors, their
goals represented as use cases, and any dependencies among those use cases. The following
figure an example of use case diagram

Fig (2.3)
An example of use case diagram

2.4 Theory of Design


2.4.1 Concepts of database design (theory and practice)
A collection of related pieces of data: Representing/ capturing the information about a
real-world enterprise or part of an enterprise. Collected and maintained to serve specific data
management needs of the enterprise. Activities of the enterprise are supported by the database
and continually update the database
A database can be summarily described as a repository for data and is simply a collection of
organized information, usually as a set of related lists of similar entries. The data is often
organized so that it is easily accessible.
A database consists of a number of interrelated tables.
Each table has a number of records which are used to represent real world objects.
Each record has a number of fields which are data items used to specify a characteristic of
the record.
A database management system (DBMS) is an aggregate of data, hardware, software, and
users that helps an enterprise manage its operational data. The main function of a DBMS is to
provide efficient and reliable methods of data retrieval to many users. A general purpose
software system enabling:
Creation of large disk-resident databases.
Posing of data retrieval queries in a standard manner.
Retrieval of query results efficiently.
Concurrent use of the system by a large number of users in a
consistent manner.

A Database Management System, or DBMS, is a computer


application that allows you to work with databases on a computer.
15

A database management system allows you easily to :

Create/Delete tables
Modify tables: (e.g., adding, deleting, editing and rearranging records,
changing the table structure)
Retrieve data from a table or a number of tables: (e.g., finding and
displaying an individual record, answering queries (i.e., displaying
specified field of records that satisfy a set of specified conditions)
Create reports: (e.g., create formatted output of a list of specified fields of
records that satisfy a set of specified conditions).
Why Using Databases?
Databases can store very large numbers of records efficiently (they take up little
space).
It is very quick and easy to find information.
It is easy to add new data and to edit or delete old data.
Data can be searched easily, e.g. 'find all Ford cars'.
Data can be sorted easily, for example into 'date first registered' order.
Data can be imported into other applications, for example a mail-merge letter to a
customer saying that an MOT test is due.
What is the Normalization?
The process of designing a database according to the rules described above is formally
referred to as normalization. All database designers carry out normalization, whether they use
that term to describe the process or not. Hardcore database designers not only use the term
normalization, they're also able to express the extent to which a database has been
normalized:
First normal form (1NF) describes a database whose tables represent distinct entities, have no
duplicative columns (e.g., no Author1, Author2, Author3), and have a column or columns that
uniquely identify each row (i.e., a primary key). Databases meeting these requirements are
said to be in first normal form.
Second normal form (2NF) describes a database that is in 1NF and also has had duplicative
data eliminated. A good example of addressing 2NF requirements is taking the city and state
out of a table that stores U.S. addresses and storing just the zip codes. Zip codes are already
uniquely associated with city/state pairings, so storing both the city/state and zip code in the
same table is redundant. The city/state associated with each zip code could be stored in a
separate table and the city, state and zip code could be brought together when necessary
through the use of a query.
Third normal form (3NF) describes a database that is in 2NF and also avoids having columns
that derive their values from columns other than the primary key. The wage field example
mentioned above is a clear violation of the 3NF rule.
In most cases, normalizing a database so that it is in 3NF is sufficient.
16

2.4.2 Use Interface Design


When designing the interfaces It is very important to identify the characteristics
desired of a good user interface. Because unless we are aware of these, it is very much
difficult to design a good user interface. A few important characteristics of a good user
interface are the following:
Speed of learning. A good user interface should be easy to learn.. A good user interface
should not require its users to memorize commands. Neither should the user be asked to
remember information from one screen to another while performing various tasks using the
interface. Besides, the following three issues are crucial to enhance the speed of learning.
Use of Metaphors and intuitive command names. Speed of learning an interface is greatly
facilitated if these are based on some day-to-day real-life examples or some physical objects
with which the users are familiar. The abstractions of real-life objects or concepts used in user
interface design are called metaphors.
Consistency. Once a user learns about a command, he should be able to use the similar
commands in different circumstances for carrying out similar actions. This makes it easier to
learn the interface.
Since the user can extend his knowledge about one part of the interface to the other parts. For
example, in a word processor, "Control-b" is the short-cut key to embolden the selected text.
The same short-cut should be used on the other parts of the interface, for example
Component-based interface. Users can learn an interface faster if the interaction style of the
interface is very similar to the interface of other applications with which the user is already
familiar. This can be achieved if the interfaces of different applications are developed using
some standard user interface components. This, in fact, is the theme of the component-based
user interface. Examples of standard user interface components are: radio button, check box,
text field, slider, progress bar, etc.
The speed of learning characteristic of a user interface can be determined by measuring the
training time and practice that users require before they can effectively use the software.
Speed of use. Speed of use of a user interface is determined by the time and user effort
necessary to initiate and execute different commands. This characteristic of the interface is
sometimes referred to as productivity support of the interface. It indicates how fast the users
can perform their intended tasks. The time and user effort necessary to initiate and execute
different commands should be minimal.

2.5 Theory of Implementation and Testing


17

2.5.1 Theory of Implementation


Implementation refers to post-sales process of guiding a client from purchase to use of
the software or hardware that was purchased. This includes Requirements Analysis, Scope
Analysis, Customizations, Systems Integrations, User Policies, User Training and Delivery.
These steps are often overseen by a Project Manager using Project Management
Methodologies set forth in the Project Management Body of Knowledge. Software
Implementations involve several professionals that are relatively new to the knowledge based
economy such as Business Analysts, Technical Analysts, Solutions Architect, and Project
Managers.
System implementation generally benefits from high levels of user involvement and
management support. User participation in the design and operation of information systems
has several positive results. First, if users are heavily involved in systems design, they move
opportunities to mold the system according to their priorities and business requirements, and
more opportunities to control the outcome. Second, they are more likely to react positively to
the change process. Incorporating user knowledge and expertise leads to better solutions.
The relationship between users and information systems specialists has traditionally been a
problem area for information systems implementation efforts. Users and information systems
specialists tend to have different backgrounds, interests, and priorities. This is referred to as
the user-designer communications gap. These differences lead to divergent organizational
loyalties, approaches to problem solving, and vocabularies.[1] Examples of these differences
or concerns are below:
User Concerns
Will the system deliver the information I need for my work?
How quickly can I access the data?
How easily can I retrieve the data?
How much clerical support will I need to enter data into the
system?
How will the operation of the system fit into my daily business
schedule?[1]
Designer Concerns

How much disk storage space will the master file consume?
How many lines of program code will it take to perform this
function?
Now can we cut down on CPU time when we run the system?
What are the most efficient ways of storing this data?
What database management system should we use?[1]

2.5.2 Theory of Testing


Software testing is an investigation conducted to provide stakeholders with
information about the quality of the product or service under test.
18

Software testing can be stated as the process of validating and verifying that a software
program/application/product:
o meets the requirements that guided its design and development;
o works as expected; and
o can be implemented with the same characteristics.
Software testing, depending on the testing method employed, can be implemented at any time
in the development process. However, most of the test effort occurs after the requirements
have been defined and the coding process has been completed.
Software verification and validation
Software testing is used in association with verification and validation:
Verification: Have we built the software right? (i.e., does it
match the specification)
Validation: Have we built the right software? (i.e., is this what
the customer wants)
The terms verification and validation are commonly used interchangeably in the industry; it is
also common to see these two terms incorrectly defined. According to the IEEE Standard
Glossary of Software Engineering Terminology:
Verification is the process of evaluating a system or component to determine whether the
products of a given development phase satisfy the conditions imposed at the start of that
phase.
Validation is the process of evaluating a system or component during or at the end of the
development process to determine whether it satisfies specified requirements.
The software testing team
Software testing can be done by software testers. Until the 1980s the term "software tester"
was used generally, but later it was also seen as a separate profession. Regarding the periods
and the different goals in software testing. Different roles have been established: manager,
test lead, test designer, tester, automation developer, and test administrator.

19

Chapter 3
Requirements and Analysis

20

Requirements and Analysis


3.1 Introduction
Once the visioning phase is complete, it is time to gather and analyze requirements for
your software project, system or whatever else you are planning. At this point, it is often
useful to identify a smaller subset of the stakeholder group who can work intensively with
you on this (although all stakeholders can be included, if the group is small). This is also a
good time to bring together stakeholders and key members of the development and
implementation team.
Generally, requirements gathering and analysis happen over a series of meetings (at least
two). I find it best to do it freeform and capture ideas on whiteboards; more formal
documentation can follow later, or documentation can remain informal if the project doesnt
require it.
Remember that this is only the first and most intensive stage of requirements gathering.
Ideally, requirements should be continuously collected, documented, analyzed and refined
throughout the development process.
These are the general goals for requirements meetings:
Create a context diagram, which is usually a rough drawing of the system and its
context, based on previous goal-setting with the stakeholders.
Define actors and their goals. Actors are the primary users of the system. Ask what
specific activities are each actor trying to achieve?
List initial use cases in brief narrative. Ask how each actor will achieve each goal, but
dont try to get too detailed at this point.
Begin capturing terms to include in the glossary as they come in up in the discussion.

Identify business rules that provide constraints on the system (based on the givens
identified during the vision stage plus others subsequently identified). Ask what we
can and cant do according to our organizational policies, laws of the land,
requirements of our funders and so forth.
Identify nonfunctional requirements (based on the givens, high-level goals and others
subsequently identified). These requirements wont be captured in the use cases but
are important to document. They might include security, technology, system
integration, localization, reliability and similar requirements.
Identify working group members from the stakeholder group to call upon for testing
and feedback as development progresses.

In this chapter, detailed description of the system functionalities and


services are described according to systematic procedures in gathering
and analysis of the different types of requirements. We use these
technologies in data gathering.

21

Proposed System Requirement gathering 3.2


Requirements Gathering 3.2.1
Good requirements start with good sources. Finding those quality sources is an important task
:and, fortunately, one that takes few resources. Examples of sources of requirements include

Users
Administrators and maintenance staff
Partners
Domain Experts
Industry Analysts
Information about competitors

Requirements Gathering Techniques 3.2.2


After you have identified these sources, there are a number of techniques that may be
used to gather requirements. The following will describe the various techniques, followed by
.a brief discussion of when to use each technique
:To get the requirements down on paper, you can to do one or more of the following

Conduct a brainstorming session


Interview users
Work in the target environment
Study analogous systems
Examine suggestions and problem reports
Talk to support teams
Study improvements made by users
Look at unintended uses
Conduct workshops
Demonstrate prototypes to stakeholders

And by using the above techniques the functional requirements according each user are:
1-Employee:
Students managing
Lecturers managing
Plans managing
Open Courses managing
Time table managing
22

Exception registration cases managing


Grades managing
Department managing
Searching and reporting
Graduate Student managing

2-Admin:
Users managing ( admin & employee)
Semesters managing
Semester state managing
Monitoring system users
System values managing
Permissions managing
All employees function

3-Lecturer:
Display current courses
Display time table
Display and search for student absence
Submit absence
Submit grades

4-Student
Enroll for courses
Add and drop for courses
Display enrolled courses
Display grades
Display absence
Calculate average
Display time table

3.2.3 Non-Functional Requirements


Security requirements are important factors in this system as classified data will be
stored in the database. User validation will be done during login to insure that the user is
23

valid and that the user only has access to his or her permission data. General users will only
have access through the user interface.
The system will have consistent interface formats and button sets for all forms in the
application, will have a form based interface for all data entry and viewing formats, and will
generate reports that are formatted in a table and that should look like the existing manual
report formats for user friendliness.
The system will be easily maintained by the developer or other authorized trained person and
it shall respond as fast as possible in generating report.
1. Security issues
2. Speed
3. Intranet services
4. Consistence
5. Efficiency
6. Services validation and verification

3.3 - Requirements Modeling


This section show the use cases of the system for each user

Admin Use Case

24

Fig (3.1)
Admin Use case
Employee Use Case

25

Fig (3.2)
Employee Use case

Lecturer Use Case


26

Fig (3.3)
Lecturer Use case

Student Use Case


27

Fig (3.4)
Student Use case

3.4 Proposed System Analysis


28

This section will discuss the procedure or business of our system and also we will talk about
the users of system and many more.
3.4.1 System Users
The user of the system classified into 4 users
Admin
Employee
Lecturer
Student
Admin is the user who in charge of the system managing and monitoring the other users and
progressing of the semester
Lecturer is the user who can deal with student enrollment information like grades and
absences
Employee is the user who have subset of the admin function each user has permission or
some permissions for managing the system
Student is the user who can enroll for the suggested courses of the admin and user
3.4.2 Using the system
The users can use the system as fellow
Admin

Employee

Lecturer

Student

Windows

Yes

Yes

Yes

Yes

Android

Yes

Yes

Table (3.1)
System Accessibility

3.4.3 System States

The semester have several states, the states of the semester control of the management of the
system for example the enrollment of the courses can be only in Open Registration state and
other system functions.
29

The state of the semester are:


1. Nothing
2. Preparing for new semester
3. Open Registration
4. Add and Drop
5. Semester Process
6. Final Exam
7. Finishing the semester

Fig (3.5)
Semester State Diagram
The current diagram show the flow of the semester states.

3.5 Proposed System Modeling


The current section shows the bearckdown structure of the system

30

Fig (3.6)
Breakdouwn structure for the system

31

Fig (3.7)
Sample Class Diagram

32

Chapter 4
Design

Design
4.1 - Introduction to System Design

33

Designing is the most important phase in software development process. It's require careful
planning and thinking of the part of system designer. Designing software means to plan how
the various parts of the software are going to achieve the desired goal. It should be done with
utmost care because if the phase contain any error then that will affect the performance of the
system as result it may take more processing time , more response time , extra coding
workload.
This chapter summarizes the design phases of a project, The aim of the design process is to
explain how the system really works, whereas the previous chapters explain the content of
this project.
In this chapter, the following topics will be explained:
Database design
Architectural design
Interface design

Design goals describe the qualities of the system that developers should optimize. Such goals
are normally derived from the non-functional requirements of the system.
Design goals are grouped into five categories. These are:
Performance
Dependability
Maintenance
End User Criteria
Correctness
Security

4.1.1 Performance Criteria


The part of the system to be used for the record office should have a fast response time (real
time) with maximum throughput. Furthermore, the system should not be taking up too much
space in memory. The record officer has chosen fast response time over throughput and hence
the system should try to be more interactive. In the case of the timetabling subsystem, the
system should be more reliable in order to satisfy the constraints than fast response time.

4.1.2 Dependability
The faculty needs the system to be highly dependable as it is expected to be used by non-IT
professionals. The system should be robust and fault tolerant. Furthermore, as the system is
34

handling sensitive data of the faculty, high emphasis should be given with regards to security,
as there are subsystems to be accessed through web.

4.1.3 Maintenance
The system should be easily extensible to add new functionalities at a later stage. It should
also be easily modifiable to make changes to the features and functionalities.

4.1.4 End User Criteria

Usability
User friendly
Service and function availability
Interface consistency

4.2 Database Design


4.2.1 Database management system
In order to store information persistently we map objects into tables and the attributes into
fields to the specific table based on the objects found on the system. Therefore, we identified
the major tables that will be implemented on the selected DBMS.
The Database management system that we used for designing the database is SQL Server
2008 .we do the needed normalization for the database you can notice in the next diagram
that all the tables in 3NF .
4.2.2 Relationships among Tables
This part is to describe and show the necessary relationships among the tables, which are
selected to store the data persistently in the system. Generally there are three types of
relationships in a relational database system. These are one-to-one, one-to-many and manyto-many relationships. The system under consideration has one-to-many and many-to-many
relationships. Some of the relationship between tables:
1.
2.
3.
4.
5.
6.

Department Student = One to Many relationship


Department Lecture = One to Many relationship
Plan PlanDetail = One to Many relationship
PlanDetail PreRequested = Many to Many relationship
PlanDetail RegisterationDetail = One to One relationship
Grade RegisterationDetail = One to one relationship

4.2.3 Database Diagram


35

We divide the diagram to three part to make better view

Fig (4.1)
Database diagram (I)

36

Fig (4.2)
Database diagram (II)

37

Fig (4.3)
Database diagram (III)

4.3 - Algorithm Design


38

Algorithm design is a specific method to create a mathematical process in solving problems.


Applied algorithm design is algorithm engineering.Algorithm design is identified and
incorporated into many solution theories of operation research, such as dynamic
programming and divide-and-conquer. Techniques for designing and implementing algorithm
designs are algorithm design patterns such as template method patterns and decorator
patterns, and uses of data structures, and name and sort lists.
Registration Algorithm:
begin
If SemesterState != "Open Registration" then
Exit
End if
If IsRegisterBefore(Year,Semester) then
Exit
End if
OpenCoursesList = GetOpenCoursesList(CurrentYear ,
CurrentSemester)
PassedCoursesList =
GetPassedCoursesList(Student_ID)
For each course in OpenCoursesList
PreRequested = GetPreRequested(course)
If PassedCourses.Contains(PreRequested) OR
PreRrequested = Empty then
AvailableCourses.Add(course)
End if
Next
While(NotFinish)
Course = Select Course From AvailableCourses
If course in RegistrationList OR Have Conflict in
time table then
View Message(Try another course or another
time)
End if
TotalUnit = TotalUnit + Course.Unit
RegistrationList.Add(course)
If Finish then
If TotalUnit > MaximumUnit OR TotalUnit <
MinimumUnit then
View Message(Error in total unit)
39

End if
Save RegisterationList To Database
Add Grade,Absence Record For each course in
RegisterationList
Loop
End
Calculate Average for Student
begin
PassedCourses = GetPassedCourses(Student_ID)
For each course in passed courses
Sum = Sum + grade of course * credits
number*level)
Sum2 = Sum2 + level*credits number
Next
Average = Sum / Sum2
End

4.3 - Architecture Design


The proposed system is expected to replace the existing manual system by an automated
system in all facets. It is mainly based on the system Analysis document (chapter 3).
The architecture used for the system is Client/Server Architecture where a client can use
Internet browsers to access the online report provided by the system within the local area
network of the faculty or anywhere using the Internet. Figure 4.1 shows the architecture of
the proposed system.
The data tier maintains the applications data such as student data, teacher data, timetable data,
academic plan data, student's absences/ attendance data, etc. It stores these data in a relational
database management system (RDBMS).
The middle tier (web/application server) implements the business logic, controller logic and
presentation logic to control the interaction between the applications clients and data. The
controller logic processes client requests such as requests to view students result, to record
attendance or to retrieve data from the database. Business rules enforced by the business logic
dictate how clients can and cannot access application data and how applications process data.
40

A web server is a program that runs on a network server (computer) to respond to HTTP
requests. The most commonly used web servers are Internet Information Server (IIS) and
Apache. The web server used in this system is IIS. HTTP is used to transfer data across an
Intranet or the Internet. It is the standard protocol for moving data across the internet.
The client tier is the applications user interface containing data entry forms and client side
applications. It displays data to the user. Users interact directly with the application through
user interface. The client tier interacts with the web/application server to make requests and
to retrieve data from the database. It then displays to the user the data retrieved from the
server.

Fig (4.4)
Client Server Architicture

41

Fig (4.5)
Intranet

4.3 - Interface Design


The goal of user interface design is to make the user's interaction as
simple and efficient as possible, in terms of accomplishing user goals
(user-centered design).
Good user interface design facilitates finishing the task at hand without
drawing unnecessary attention to itself. Graphic design and typography
are utilized to support its usability, influencing how the user performs
certain interactions and improving the aesthetic appeal of the design;
design aesthetics may enhance or detract from the ability of users to use
the functions of the interface. The design process must balance technical
functionality and visual elements (e.g., mental model) to create a system
that is not only operational but also usable and adaptable to changing
user needs.
For the interface in Windows application we used a powerful and very
attractive tool for designing the interface which is (DevComponent) which
have a very nice controls and form like metro form and metro buttons
(very similar to windows 8) we will show some of the forms
42

Fig (4.6)
Windows Application Login Interface

43

Fig (4.7)
Employee Interface

Fig (4.8)
Student Management Interface
44

And for android we use XML to create the interface and there's some
snapshot

45

And for website we used HTML5, CSS and JavaScript for dynamic changing
elements.

46

Chapter 5
Implementation and Testing

47

Implementation and Testing


5.1 Introduction to Implementation
Implementation is the phase in which the whole design process is converted into
working software whereas The test phase that exercises the complete system in its actual
environment to determine its capabilities and limitations Purpose of testing is to confirm that
the system satisfies requirements.

5.2 Proposed System Implementation


5.2.1 Programming Tool
The system has two different applications using the same database. These are the Windows
application which is sometimes known as thick-client application and Web application which
is known as thin-client application and android application. The Windows application is
developed using C#, which is one of the development languages in .NET and is object
oriented. The Web application is developed using Active Server Pages (ASP .NET4.0) and
using Cascading Style Sheets (CSS) and JavaScript. The android app is developed using
JAVA and XML for the interfaces (Activities)
5.2.2 The CAS Prototype
Here, the implemented system is described. How the user interacts with the system and some
of the results of interaction with the system along with the screen shots are described.
When a user starts the application, a login screen is displayed to authenticate the user. If the
user has typed the correct user id and password to the login screen, the system displays a
window containing the main menus of the system. The main window displays menus and sub
menus based on the role of the user that has logged in.

48

49

That is the main windows for each user for the windows application
And for the android app we will show you sample of screens

50

That is the login interface for android app and student main interface

5.3 Introduction to Testing


Testing phase has been carried out in two different aspects, IT
professionals and end user (nave users) testing to ensure error free
software and the services required by the customer are well implemented
and functionally correct.
After we apply this testing we offered it on different people (professional
and non-professional people) to test it.
5.3.1 Professional Testing (White Box Testing):
Sample Code, functions, interface, unit, integration
1- Program Testing (code, function testing):
Include test codes and queries each alone to ensure error free code
produced.
2- Units Testing:
After code testing we apply integration testing on functions that
relates to each other.
Collect function with each other to ensure correct data following among
them (To ensure the units operate as integral unit).
3- Integration Testing:
51

Then collect all system units (codes, interfaces etc)


To ensure that all system units have consistency among them,
correctness, validation and verification among them

5.3.2 Nonprofessional Testing (Black Box Testing)


1 - Interfaces Testing:

After design prototype (version 1), we offered it end users to


give notes about design its positives , negatives and other
characteristics .Take these notes (on color , font , image ,etc. )
in consideration and design version2 of interface , we do that
until obtain the final version of interface.
2 - All system testing
When collected all system we offered it on end user to ensure
the functionalities are available and do the expected functions
and take their notes in consideration.

5.4 Testing techniques for the proposed System

Case

Preconditio
n

Excepted Result

Actual Result

Pass/Faile
d

Login using empty


username or password or
user type

Message the user that


error in username or
password or type

Message the user


that error in
username or
password or type

Pass

Login using wrong data

Message the user that


username or password
wrong

Message the user


that username or
password wrong

Pass

Employee\Access
functions than he hadn't
it's permission

Login as
Employee

Error Message

Error Message

Pass

52

Admin\Add a user with


email that is taken

Login as
Admin

Message the user that


email is taken

Message the user


that email is taken

Pass

Register for course that


have conflict with time
table

Login as
Student

Message the user that


conflict in time table

Message the user


that conflict in
time table

Pass

Login using android app


with no network
connection

Message the user that


error in connection

Message the user


that error in
connection

Pass

Add course to time table


that have conflict

Login as
Admin or
Employee

Message the user that


conflict in time table

Message the user


that conflict in
time table

Pass

Delete course from plan


detail that student had
registered

Login as

Message the user that


course had registered
by some student

Message the user


that course had
registered by some
student

Pass

Message the user that


current semester not
finished

Message the user


that current
semester not
finished

Pass

Start new semester while


the current semester not
finished

Admin or
Employee
Login as
Admin

Table (5.1)
Test case

53

Chapter 6
Examples

Samples from Forms


54

Registration Form

Student time table

55

Lecture absence search

Lecturer submit grades


56

Student display grades

Admin monitoring users


57

Plan Detail

Samples from Database


58

Student table

PlanDetail table

RegisterationDetail table
59

Grades table

Results, Conclusions and Future Work


60

7.1 Results and Conclusion


In this project, we developed an automated Courses Administration system that facilitates the various
activities taking place at college.
The system developed in the project consists of windows and web applications and android
application. These are two different applications on the same database. The windows application
takes most of the activities such as offline student registering, transcript and reports generation and
producing the timetable. The web application facilitates online student's registration in courses and
view the grades and GPA for students and others functions as view academic plan and time table for
the student
When we use computerized system to control the registration and grading management we will have
more advantage as reducing the time and reducing the staff's effort and error control

7.2 Future work


In additional to develop the system by adding more reports and functions and using indexing
.techniques to improve search process and increase the efficiency
And development of web site by adding more functions by the web
And development of the android app to add more function and communication system to student
And develop windows phone apps

References
61

[1]. E. Burke and W. Erben. Practice and Theory of Automated Timetabling, Third International
Conference, Germany, Springer Private Limited, August 2000
[2]. J. G. Hedberg et. al. (1992). Educational information systems: Problems of the small educational
organisation. Australian Journal of Educational Technology, 8(2), 132-160.
http://www.ascilite.org.au/ajet/ajet8/hedberg.html
[3]. M. Marte. Models and Algorithms for School Timetabling, A Constraint-Programming
Approach, Ph.D dissertation, an der Fakultat fur Mathematik, Informatik und Statistik der LudwigMaximilians-Universit at Munchen, July, 2002
[4] R.J. Willemen. School Timetable Construction: Algorithms and Complexity, Thesis, Faculty of
Mathematics and Computer Science, Technische Universiteit Eindhoven, 2002.
[5]. S. Petrovic and E. Burke. University Timetabling, School of Computer Science and Information
Technology, University of Nottingham, 2002, pp. 1-4
[6] T. Willis and B. Newsome. Beginning Visual Basic 2005, Wiley Publishing, Inc., 2006.
[7] http://www.paaet.edu.kw/mysite/Default.aspx?tabid=88&language=ar-KW
[8] ^ Goodrich, Michael T.; Tamassia, Roberto (2002), Algorithm Design: Foundations, Analysis,
and Internet Examples, John Wiley & Sons, Inc., ISBN 0-471-38365-1
[9]Sparks, Geoffrey. "Database Modelling in UML". Retrieved 8 September 2011.

62

You might also like