Professional Documents
Culture Documents
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
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:
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
Normalization
WHAT IS GUI?
transaction
processing
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.
Scope definition
12
Problem analysis
Requirements analysis
Logical design
Decision analysis
activities
actors
business processes
database schemas
(logical) components
13
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
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
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]
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
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.
21
Users
Administrators and maintenance staff
Partners
Domain Experts
Industry Analysts
Information about competitors
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
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
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
24
Fig (3.1)
Admin Use case
Employee Use Case
25
Fig (3.2)
Employee Use case
Fig (3.3)
Lecturer Use case
Fig (3.4)
Student Use case
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
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
Fig (3.5)
Semester State Diagram
The current diagram show the flow of the semester states.
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.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.
Usability
User friendly
Service and function availability
Interface consistency
Fig (4.1)
Database diagram (I)
36
Fig (4.2)
Database diagram (II)
37
Fig (4.3)
Database diagram (III)
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
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
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
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
Case
Preconditio
n
Excepted Result
Actual Result
Pass/Faile
d
Pass
Pass
Employee\Access
functions than he hadn't
it's permission
Login as
Employee
Error Message
Error Message
Pass
52
Login as
Admin
Pass
Login as
Student
Pass
Pass
Login as
Admin or
Employee
Pass
Login as
Pass
Pass
Admin or
Employee
Login as
Admin
Table (5.1)
Test case
53
Chapter 6
Examples
Registration Form
55
Plan Detail
Student table
PlanDetail table
RegisterationDetail table
59
Grades table
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