CHapters
CHapters
CHapters
CHAPTER ONE
INTRODUCTION
1.0 Introduction
This chapter contains and discuss the background to this work as well as its statement of
problem. Other discussion includes the justification, the aim and specific objectives and the
1.1 Background
biometric data from an individual, extract a feature set from the acquired data, and compare the
feature set against the template set in the database (Prabhakar et al., 2003). Depending on the
In the Verification mode: the system validates a persons identity by comparing the captured
biometric data with his/ her own biometric template(s) thats stored in the database. In such a
system, an individual who desires to be recognized claims an identity, usually via a Personal
Identification Number (PIN), a user name, a smart card, and so on. The system also conducts a
one-to-one comparison to determine whether the claim is true or not. Identity verification is
typically used for positive recognition, where the aim is to prevent multiple people from using the
same identity.
In the Identification mode: the system recognizes an individual by searching the templates of all
the users in the database for a match. Therefore, the system conducts a one-to-many comparison
to establish an individuals identity. However, the comparism fails if the subject is not enrolled in
the system database) without the subject having to claim an identity. Identification is a critical
2
component in a situation where the system is meant to be used to establish whether a person is
who he/ she (implicitly or explicitly) claims to be. The purpose of this type of negative recognition
is to prevent a single person from using multiple identities. Identification may also be used in a
positive sense for the recognition of convenience. In this case, the user is not required to claim an
identity (Pankanti et al., 2003). While traditional methods of personal recognition such as
passwords, PINs, keys, and tokens may work for positive recognition, but for negative recognition,
it can only be established through biometric methods. Any human physiological and behavioral
requirements:
characteristic);
permanence (the characteristic should be sufficiently invariant with respect to the matching
We have different biometric verification techniques some of them use as presented in Figure 1.1
Usually, biometric techniques are sane means of ensuring that unique identities are kept. This
makes the techniques supposedly appropriate to keep attendance in order to certify that only an
individual is kept track of at a time. This project therefore seeks to leverage on the unique
1.2 Justification
The development of an AMS using biometric features such as the fingerprint will give
exactness and promote accuracy in the student attendance management per time. For example, if
used in a school, it will help stakeholder with a thorough understanding of the number of students
and the number of lectures they attend. The knowledge of the existence of such system like the
AMS will encourage student to come for lectures and be punctual because they know that their
attendance is monitored. Lastly, it also calculates and generate monthly report of attendance in
Every Nigerian university has the obligation to record and take student attendance during
lecture periods every semester. The accuracy of such record is important and used to be secured
bearing in mind its usefulness. However, the manual system is marred with many challenges. The
challenges range from the cumbersome nature of the paper sheets used for recording, and so on.
This challenges do make it difficult to regularly manage and update records of attendance, which
have been previously taken. In the advent that the record of attendance is needed for decision
making and the fore going challenge(s) occurs, it will be difficult to use the record. As a result of
the issues raised so far, it is necessary to automate the current manual attendance system. This
particular project seeks to employ the biometric technique to automate an AMS. This is believed
The aim of the work is to develop an attendance management system that uses a biometric
1. Unified Modeling Language (UML 2.0) was used to design the system
2. HTML/ CSS was used to implement the front end and the user interphase
3. The database backend of the system was implemented using MySQL, while Java as an
object oriented programming language was used to implement the front end
4. A biometric device was interface with the AMS to receive biometric fingerprint feature as
input
Three user interface were involved in this work. This means that the one for the student to
register courses and identify themselves with their unique fingerprint techniques, the Admin, add
lecturer and the specific department of the lecturer, lastly the lecturer domain, where he/ she
verifies the student in class using their previously identified fingerprint and a monthly attendance
report is made.
6
This study is arranged into five chapters, which is aimed at the development of an
Chapter One represent the introduction to the project. It discussed the background; the
problem statement; project justification; aim and objectives and scope of the study.
Chapter Two reviewed the background concept and relevant literature on attendance
management system using fingerprint biometric features. It focuses on previous work and also
explained the relevant terms in the study and also justified the rationale for the study.
Chapter Three covered the research methodology. It focused on the technique involved in
the development of the attendance management system using fingerprint biometric features. The
chapter discussed the software used and why they were chosen and used.
Chapter Four presents the design of the system; its implementation and documentation.
Chapter Five contains the conclusion to the study and the recommendation.
7
CHAPTER TWO
LITERATURE REVIEW
2.0 Introduction
This chapter contains a general overview of the subject of this project work. The chapter
also presents a discourse on biometric systems, the technique to implement such system and other
related issues on the related work and the techniques used for modelling and system development
life cycle.
are the upper skin layer segment of the finger and valleys are the lower segment. The ridges form
so-called minutia points: ridge endings (where a ridge end) and ridge bifurcations where a ridge
splits in two). Many types of minutiae exist, including dots (very small ridges); islands (ridges
slightly longer than dots; it occupies a middle space between two temporarily divergent ridges);
ponds or lakes (empty spaces between two temporarily divergent ridges); spurs (a notch protruding
from a ridge); bridges (small ridges joining two longer adjacent ridges); and crossovers (two ridges
Arch, which is a pattern where the ridges enter from one side of the finger, rise in the center
forming an arc, and then exit the other side of the finger.
Loop, which is a pattern where the ridges enter from one side of a finger, form a curve, and
Whorl pattern, ridges form circularly around a central point on the finger. Scientists have
found that family members often share the same general fingerprint patterns. This leads to
An Attendance Management System (AMS) is one of the easiest way to keep track of
attendance for community organizations such as school, clubs, scouting units, church groups,
athletics, or volunteer groups (Bansal et al., 2013). AMS can be used in the personnel department
for manpower analysis, day-to-day monitoring of the attendance, maintaining statutory registers.
In educational institution or business organization, it can also be used for the monitoring of leave
records, calculation of overtime and the transfer of relevant information to the payroll system
Simple systems: The use of the attendance card is not new. It has been widely popular for
many years now; punch cards have been used for clocking in working hours
The Iris Scanner: This is a variant to the fingerprint reader. Like the fingerprint, no two
authentication purpose, depending on the application. Identification and verification can be defined
as:
identity by searching through a database for a match. In essence, the system tries to answer the
question, Who am I?. For example, identification is performed in a list to find if the query image
matches with any of the images in the list. This concept is used by law enforcement agencies to
identify criminals. This initiative maybe used to suspect to an unsolved crime or identify the person
claiming is correct or not. In essence, the system in this respect tries to answer the question of,
Am I whom I claim to be?. A verification may include access to an ATM. This can be obtained
by matching the features of a claimed identity in a database. For example, a user might claim to
be the owner of a matric no 050210057 by presenting an identity using his fingerprint. It is not
often required to perform match with a complete database. There are two major types of biometric
systems: Uni modal and multimodal biometric systems. Uni modal biometric systems are
biometric system that uses only one characteristic or feature for recognition. This includes face
recognition, fingerprint recognition, and iris recognition. In multimodal biometric systems. This
includes multiple information are obtained from more than one biometric modality. This includes
fusing information from face and fingerprint (Ankita, 2012). The model Figure 2.1 shows a model
Fingerprints, the patterns of ridges and valleys on the friction ridge surfaces of
fingers. It has been used in forensic applications for over a century. Friction ridges are
formed in uterus during fetal development, and even identical twins do not have the same
recognition systems using prints from multiple fingers are quite good. One factor in
recognition accuracy is whether a single print is used or whether multiple or ten prints (one
Multiple prints provide additional information that can be valuable in very large
scale systems. The challenges include the fact that large-scale fingerprint recognition
systems are computationally intensive, particularly when trying to find a match among
1. Ridges
2. Valleys
Ridges means raised skin and valleys means lowered skin. The ridges and valleys
are twist to form a distinct pattern. When a blue-inked imprint of a finger is made, the blue
color impression created is of the ridges while the valleys are the un-inked areas or white
color between the ridges. These features are particular patterns consisting of terminations
classified into three categories based on their major central pattern: arch, loop, and whorl
The first thing to describe is the principle of fingerprint recognition, which has to
do with the extraction of minutiae from a fingerprint. It should be said that all fingerprints
could be divided into 5 classes. These classes are shown in Figure 2.3
The whole process of fingerprint analysis which is the method of minutiae comparison,
a. Getting the input fingerprint image: the quality of acquired image is necessary for
tolerating different skin types, finger injures and dryness or dampness of finger
b. The performance of the algorithms for image quality improvement. Image quality
improvement is used to recover the real furrow and ridge structures from a damaged
image. At first the histogram of fingerprint image is obtained, then the histogram
equalization is performed, the Gabor filters are used they improve the clearness
of ridge and furrow structures in recovered areas and so prepare image for minutiae
extraction algorithm. Then the directional array is found in the image using filtering
in frequency domain
c. The performance of the image preprocessing. This is the preparatory step for
this step.
five classes. The classification is a difficult process for the machine as well as for
on the directional array obtained from the (b). Then the Probabilistic Neural
Network (PNN) classifier is applied, which assigns the fingerprint into one of five
classes.
e. Minutiae extraction. Here we use the Emyroglu extractor, which extracts only three
types of minutia from the fingerprint skeleton. The three types are ridge ending,
16
continuous line and bifurcation. In this step some improvements have been done.
When the detection and extraction phase is finished, the minutiae are tested once
more. If they lie on the edge of the fingerprint, they are deleted. The second test
checks the papillary line continuity (partially done in (c)). The difference between
line ending and bifurcation. And the last improvement includes more accurate scale
for gradient of the minutia. Now it is possible to detect the degree of the bias of the
papillary line more accurately and compute the gradient of this minutia.
f. Verification. This is the comparison of two minutiae sets. The efficiency of the
comparison, we use the Ratha method that tolerates e.g. rotation, translation and
Fingerprint scanner is an electronic device used to capture a digital image of the fingerprint
pattern (Cappelli, et al. 2006). The captured image is called a live scan. This live scan is digitally
processed to create a biometric template (a collection of extracted minutiae points) which is stored
and used for matching. Minutiae are defined as the pattern created and the uniqueness of how
ridges end, split and join, or appear as a simple dot. The Minutiae consists of bifurcations, ridge
dots, ridge endings and enclosures, to ensure further uniqueness, the minutiae are further broken
down into sub minutiae such as pores, crossovers, deltas. The pores are tiny depressions within the
ridge on a fingerprint; the crossover creates an X pattern within the ridge of a fingerprint and deltas
create a triangle shaped pattern within the ridge of a fingerprint. Identification in a fingerprint
technology exists when an individual fingerprint is compared against a known source called the
17
fingerprint template (Chirillo & Scott, 2007). Fingerprint sensors are very intricate and continue
to grow more complicated. They are becoming a vital part of the transformation to a more
acquiring poor quality images due to different skin conditions and environmental effects. These
poor quality images adversely affect the ability to accurately determine a persons identity. Poor
fingerprint image can be enhanced through several stages of enhancement (Wayman et al., 2005).
Image Acquisition: The Fingerprint images from various users are taken using the module.
The finger module itself has an internal memory which can store about 100 images in it.
Image Enhancement The image is enhanced using the techniques like Histogram
Equalization. It is nothing but the graph plot for number of pixels against the gray level.
The overall contrast of the image is made uniform and image looks enhanced. Now the
Edge Detection They are many operators used for detecting the edges. The operators are
Prewitt, Laplacian, Sobels, Robertson Operators. The Prewitt operator is one of the best
edge detecting operator and we are implementing Prewitt operator in this paper. The edges
have to be detected in order to match the input image with already saved image. There are
i) Horizontal masking
ii) Vertical masking Edges are calculated by using difference between corresponding pixel
intensities of an image. All the masks that are used for edge detection are also known as
18
derivative masks. Because as we have stated many times before in this series of tutorials
that image is also a signal so changes in a signal can only be calculated using
differentiation.
* False rejection (Type 1 error) a legitimate user is rejected (because the system does not
find the users current biometric data similar enough to the master template stored in the
database).
A hundred percent similarity between any two samples suggests a very good forgery.
the system finds the impostors biometric data similar enough to the master template of a
legitimate user). In an ideal system, there are no false rejections and no false acceptances.
In a real system, however, these numbers are non-zero and depend on the security
threshold. The higher the threshold the more false rejections and less false acceptances and
the lower the threshold the less false rejections and more false acceptances. The number of
false rejections and the number of false acceptances are inversely proportional. The
decision which threshold to use depends mainly on the purpose of the entire biometric
system. It is chosen as a compromise between the security and the usability of the system.
The biometric system at the gate of the Disneys amusement park will typically use lower
threshold than the biometric system at the gate of the NSA headquarters. The number of
These rates are called the false rejection rate (FRR)/false acceptance rate (FAR).
The values of the rates are bound to a certain security threshold. Most of the systems
support multiple security thresholds with appropriate false acceptance and false rejection
rates. Some of the biometric devices (or the accompanying software) take the desired
security threshold as a parameter of the decision process (e.g. for a high threshold only
linear transformations are allowed), the other devices return a score within a range (e.g. a
difference score between 0 and 1000, where 0 means the perfect match) and the decision
itself is left to the application. If the device supports multiple security levels or returns a
score we can create a graph indicating the dependence of the FAR and FRR on the threshold
value. The following picture shows an example of such a graph: Figure 2.4
The curves of FAR and FRR cross at the point where FAR and FRR are equal. This value
is called the equal error rate (ERR) or the crossover accuracy. This value does not have any
practical use (we rarely want FAR and FRR to be the same), but it is an indicator how
accurate the device is. If we have two devices with the equal error rates of 1% and 10%
then we know that the first device is more accurate (i.e., does fewer errors) than the other.
Fingerprints are not compared and usually also not stored as bitmaps. Fingerprint
matching techniques can be placed into two categories: minutiae-based and correlation
based. Minutiae-based techniques find the minutiae points first and then map their relative
placement on the finger. Minutiae are individual unique characteristics within the
fingerprint pattern such as ridge endings, bifurcations, divergences, dots or islands. In the
recent years automated fingerprint comparisons have been most often based on minutiae.
20
The problem with minutiae is that it is difficult to extract the minutiae points accurately
when the fingerprint is of low quality. This method also does not take into account the
A surprisingly high proportion of the population have missing fingers, with the left
forefinger having the highest percentage at 0.62%. Fingerprint ridges are not continuous,
straight ridges. Instead they are broken, forked, changed directionally, or interrupted. The
end, fork and change are called minutia points, and these minutia points provide unique,
identifying information. There are a number of types of minutia points. The most common
are ridge endings and ridge bifurcations (points at which a ridge divides into two or more
branches). There are about 30 minutiae within a typical fingerprint image obtained by a
live fingerprint reader. The FBI has shown that no two individuals can have more than 8
common minutiae.
The U.S. Court system has allowed testimony based on 12 matching minutiae. The
number and spatial distribution of minutiae varies according to the quality of the fingerprint
image, finger pressure, moisture and placement. In the decision process, the biometric
system tries to find a minutiae transformation between the current distribution and the
stored template. The matching decision is then based on the possibility and complexity of
the necessary transformation. The decision usually takes from 5 milliseconds to 2 seconds.
The minutiae matching is a process where two sets of minutiae are compared to decide
whether they represent the same finger or not. The speed of the decision sometimes
depends on the security level and the negative answer very often takes longer time than the
positive one (sometimes even 10 times more). There is no direct dependency between the
speed and accuracy of the matching algorithm according to our experience. We have seen
fast and accurate as well as slow and less accurate matching algorithms.
The minutiae found in the fingerprint image are also used to store the fingerprint
for future comparisons. The minutiae are encoded and often also compressed. The size of
such a master template usually is between 24 bytes and one kilobyte. Fingerprints contain
a large amount of data. Because of the high level of data present in the image, it is possible
to eliminate false matches and reduce the number of possible matches to a small fraction.
23
This means that the fingerprint technology can be used for identification even within large
development since the seventies. The initial reason for the effort was the response to the
FBI requirement for an identification search system. Such systems are called Automated
Fingerprint Identification Systems (AFIS) and are used to identify individuals in large AFIS
databases (typically to find the offender of a crime according to a fingerprint found at the
crime scene or to identify a person whose identity is unknown). AFIS systems are operated
by professionals who manually intervene the minutiae extraction and matching process and
thus their results are really excellent. In todays criminal justice applications, the AFIS
systems achieve over 98% identification rate while the FAR is below 1%. {Software
suppliers never publish their exact encoding methods. They are usually based on the type
of minutiae, its location, the direction and the number of ridges between the minutiae
The typical access control systems, on the other side, are completely automated.
Their accuracy is slightly worse. The quality of the fingerprint image obtained by an
lower. Fingerprint readers often do not show any fingerprint preview and so the users do
not know if the positioning and pressure of the finger is correct. The automatic minutiae
extraction in a lower quality image is not perfect yet. Thus the overall accuracy of such a
system is lower. Some newer systems are based not only on minutiae extraction, they use
the length and position of the papilar lines as well. A few systems take into account even
pores (their spatial distribution), but the problem with pores is that they are too dependent
on the fingerprint image quality and finger pressure. Most of the biometric fingerprint
systems use the fingerprint reader to provide for the fingerprint bitmap image only, whole
24
the processing and matching is done by a software that runs on a computer (the software is
often available for Microsoft Windows operating systems only). There are currently only
very few fingerprint devices that do all the processing by the hardware. The manufacturers
of the fingerprint readers used to deliver the fingerprint processing software with the
hardware.
Even if it is still possible to buy a fingerprint reader with a software package (this
is the popular way especially for the low-end devices for home or office use) there are
many manufacturers that produce fingerprint hardware only (e.g. fingerprint silicon chips
obtained by one single input devices, but their accuracy is very low if various input devices
are mixed.
The Unified Modeling Language (UML) is a standard language for writing software
blueprints. The UML may be used to visualize, specify, construct, and document the
artifacts of a software intensive system. The UML is appropriate for modeling systems
even to hard real time embedded systems. It is a very expressive language, addressing all
Even though it is expressive, the UML is not difficult to understand and to use.
Learning to apply the UML effectively starts with forming a conceptual model of the
language, which requires learning three major elements: the UML's basic building blocks,
25
the rules that dictate how these building blocks may be put together, and some common
mechanisms that apply throughout the language. The Use Case Diagram is used in the
2.5.1 PHP
for Web development and can be embedded into HTML. PHP scripts can be server-side
scripting, command line scripting, writing desktop applications. The import of the tool in
this project endeavor is however based on its Server-side scripting Feature. Server-side
scripting is the most traditional and main target field for PHP. Three things are needed to
make this work. The PHP parser, a web server, and a web browser. The web server need
to run, with a connected PHP installation. The PHP program output can be accessed with
a web browser, viewing the PHP page through the server. One of the strongest and most
significant features in PHP is its support for a wide range of databases. It makes writing a
database-enabled web page incredibly simple using one of the database specific extensions
2.5.2 MySQL
This is the relational database Management System to be used for the database of
this project. MySQL is one of the world's most popular open source database software.
MySQL has become the preferred choice for Web, Web 2.0, SaaS, ISV, Telecom
problems associated with downtime, maintenance and administration for modern, online
applications.
26
Other feature of MySQL that prompted its choice as the database management system for
3. Reliability
2.5.3 HTML
Hypertext Markup Language (HTML) is the main markup language for creating
web pages and other information that can be displayed in a web browser. HTML is written
in the form of HTML elements consisting of tags enclosed in angle brackets (like <html>).
HTML documents needs a web browser to read its content and compose them into visible
or audible web pages. The browser does not display the HTML tags, but uses the tags to
interpret the content of the page. HTML elements form the building blocks of all websites.
HTML allows images and objects to be embedded and can be used to create interactive
for text such as headings, paragraphs, lists, links, quotes and other items. HTML works
This is integrated with the HTML to define the appearance and layout of text and
other materials in the web page. Cascading Style Sheets or CSS allow you to control the
27
layout and look of your page easily. CSS tags or properties are easy to use and affect the
Software development is a cumbersome process which demands a lot of hard work and
time. Even after developing software to perform your tasks you would find it not performing up to
The waterfall model: This takes the fundamental process activities of specification, development,
validation, and evolution and represents them as separate process phases such as requirements
and validation. The system is developed as a series of versions (increments), with each version
number of reusable components. The system development process focuses on integrating these
This is due to the lack of systematic approach. In order to avoid such problem, the project will
established guidelines to ensure the success of the project. This helps in delivering the
estimated results out of the system. By performing the step-by-step procedure for the
28
system development which will in turn provides a strong solid base for implementing the
project plan.
2.6.2 System analysis: this is the foremost step employed for developing software. The
aim of system analysis is to determine the problems in the system. In this phase the entire
system is broken down in to different pieces for understanding the problem thoroughly.
Users are engaged in this particular phase to get exact knowledge about the users
requirements. Requirements that are gathered from this phase have to be accurate. Else it
2.6.3 System design: this stage comes next after analysis phase in the software
development. In this phase the functions and operations used in the system will be
explained in detail. System design demands the creation of one or more design elements
for every requirement that you recognized in the earlier stage. The final output of this phase
2.6.4 System Implementation: Implementation is the most important phase where the
programmer creates the code for each and every module created during the early stages.
The programmer requires a thorough knowledge about the language in which the software
is to be developed. Unit testing is done in this phase to check for the individual functionality
of the modules.
2.6.5 System Testing: System testing is the final stage which is compulsory for the
successful completion of the system development. Testing the entire software for errors is
29
known as software testing. If any bugs or errors are detected there will be need to work on
that particular module and clear them. Interoperability, user acceptance etc. are the key
features that we test for in the testing procedure. Performing all the above phases
Most of the attendance systems use paper based methods for taking and calculating attendance and
this manual method requires paper sheets and a lot of stationery material. Previously, very few
works have been done relating to the academic attendance monitoring problems. Biometrics has
been used in biological studies, including forestry, for the collection, synthesis, analysis and
reference to biological sciences has been studied and applied for several generations and is
somewhat simply viewed as "biological statistics" (Smart Cart Alliance Identity Council, 2007).
According to Jiexun, Wang and Chen (2011) as quoted in the research work of Oloyede et al.,
(2013), the origin of biometrics has been in the public sector; however, biometrics is used for the
identification and verification of criminals. Other sectors where biometrics has also thrived are the
Banking, Education and Health sectors. For example, emerging application markets include
biometrically enabled transactional payment solutions and biometrically enables wireless for
business use. Oloyede et al., (2013) carried out extensive research on applicability of biometric
technology to solve the problem of staff attendance. However, the researchers did not write any
software to address the problems of attendance Furthermore, biometric application has been useful
in various other sectors which include the Government using it for the purpose of stopping terrorist
attacks and fighting crimes. After the 9/11 incident, the Yeager Airport in Charleston introduced
30
the biometrics system, which is used to secure access to its control tower (Dubin, 2011). Moreover,
the biometrics system has been very useful in the education sector where it has assisted students
in the borrowing and returning of books out and into the library respectively. A palm scanner
which reads a patients unique vein pattern was implemented in Sharp Healthcare in San Diego
for the purpose of stopping patient identity theft, the system was known to be very secure and
performed efficiently well for its purpose (Kreimer, 2011). Furthermore, biometrics can be
integrated with other systems for it to carry out its purpose of identification. Various homeland
security databases require the use a card access system integrated with a biometric technology to
gain access. European explorer, Joao de Barros recorded the first known example of fingerprinting,
which is a form of biometrics, in China during the 14th century. Chinese merchants used ink to
take children's fingerprints for identification purposes. Marijana (2004) carried out a critical review
of the extent to which biometric technology has assisted in controlling illegal entry of travelers
into specific country through the integration of biometric passport. The issue regarding how the
false acceptance rate can be measured in a border control setting was also looked into. The
researcher concludes that the problems associated with biometric technologies such as error rates,
spoofing attacks, non-universality and interoperability can be reduced through an overall security
process that involves people, technology and procedures. Suggestions were drawn on how the
First, any numbers supplied by manufacturers are incomparable because manufacturers usually do
not publish exact conditions of their tests and second even if we have the supervision of the tests,
the tests are very dependent on the behavior of users and other external influences.
The manufacturers often publish only the best achievable rates (e.g., FAR < 0.01% and
FRR < 0.1%), but this does not mean that these rates can be achieved at the same time (i.e., at one
31
security threshold). Moreover, not all the manufacturers use the same algorithms for calculating
the rates. Especially the base for computation of the FAR often differs significantly. So one must
be very careful when interpreting any such numbers. The following table shows real rounded rates
(from real tests) for three devices set the lowest security level possible. Table 2.1:
Although the error rates quoted by manufactures (typically ERR < 1%) might indicate that
biometric systems are very accurate, the reality is rather different. Namely the false rejection rate
is in reality very high (very often over 10%). This prevents the legitimate users to gain their access
Rates/ Devices A B C
CHAPTER THREE
METHODOLOGY
3.0 Introduction
achieving successful result. This chapter begins with the specification required by the proposed
system, stating what the system should be able to do. It also describes the methods used in
designing the proposed system. The description covers the logical as well as the physical design
components.
Requirement analysis is a vital process in any system development. Its carried out in order
to ensure that the system developed reflects the needs of the user. It also shows what the system
should do, the services that it provides and the constraints on its operation. There are two broad
categories of requirement analysis that are usually employed in the system development. They are
the functional and the non- functional requirement analysis. The proposed system will provide the
following requirement:
i. Simple and understandable student interface, where the student can register his
biodata.
ii. A phase where the student will be verified using a fingerprint verification scheme.
iii. Simple and understandable lecturer interface, where he can monitor the student
The 3-tier architecture which is the simplest N-tier architecture was used. It has three layers: A
student interphase for the student to register for the semester and the required courses necessary
for the semester. A column for the fingerprint verification phase, the other phase for the lecturer
for monitoring and evaluation of the student attendance to class. And the admin phase to add
The model adopted and used for the implementation of the proposed system is the
Incremental Model. The reason for this choice is because the incremental development is based on
the formative notion of delivering a sequence of releases in incremental basis which speeds up the
progress of development of each functionality. Incremental development in some form is now the
most common approach for the development of application systems. This approach can be either
plan-driven, agile, or, more usually, a mixture of these approaches. In a plan-driven approach, the
system increments are identified in advance; if an agile approach is adopted, the early increments
are identified but the development of later increments depends on progress and customer priorities.
exposing this to user comment and evolving it through several versions until an adequate system
has been developed. Specification, development, and validation activities are interleaved rather
than separate, with rapid feedback across activities. Incremental software development, which is a
fundamental part of agile approaches, is better than a waterfall approach for most business, e-
commerce, and personal systems. Incremental development reflects the way that we solve
problems. We rarely work out a complete problem solution in advance but move toward a solution
35
in a series of steps, backtracking when we realize that we have made a mistake. By developing the
software incrementally, it is cheaper and easier to make changes in the software as it is being
developed. Each increment or version of the system incorporates some of the functionality that is
needed by the customer. Generally, the early increments of the system include the most important
or most urgently required functionality. This means that the customer can evaluate the system at a
relatively early stage in the development to see if it delivers what is required. If not, then only the
current increment has to be changed and, possibly, new functionality defined for later increments.
Incremental development has three important benefits, compared to the waterfall model:
analysis and documentation that has to be redone is much less than is required with the
waterfall model.
2. It is easier to get customer feedback on the development work that has been done.
Customers can comment on demonstrations of the software and see how much has been
documents.
3. More rapid delivery and deployment of useful software to the customer is possible, even if
all of the functionality has not been included. Customers are able to use and gain value
The logical design is the translation of user requirement into a system model by producing
the major features of the new system meeting the required objective. Its discuss the WHAT and
WHY of the proposed system. The logical design features undertaken by the researcher include
the registration forms design, the class design, use case diagram as well as the activity diagram.
36
Use case diagrams describe what a system does from the standpoint of an external
observer. The emphasis is on what a system does rather than how. Use case diagrams are
interacts with the system. A use case is a summary of scenarios for a single task or goal.
An actor is who or what initiates the events involved in that task. Actors are simply roles
that people or objects play. Use case diagrams are helpful in three areas.
communicating with clients. Their notational simplicity makes use case diagrams a
A Class diagram gives an overview of a system by showing its classes and the
relationships among them. Class diagrams are static -- they display what interacts but not
what happens when they do interact. UML class notation is a rectangle divided into three
association between two classes if an instance of one class must know about the
two classes.
aggregation has a diamond end pointing to the part containing the whole
chart diagrams are related. While a state chart diagram focuses attention on an object
undergoing a process (or on a process as an object), an activity diagram focuses on the flow
of activities involved in a single process. The activity diagram shows the how those
activities depend on one another. The three involved classes (people, etc.) of the activity
are Customer, ATM, and Bank. The process begins at the black start circle at the top and
ends at the concentric white/black stop circles at the bottom. The activities are rounded
rectangles.
Activity diagrams can be divided into object swim lanes that determine which object is
responsible for which activity. A single transition comes out of each activity, connecting it
The user interphase allows a user to interact with a system. The proposed system
will utilize a graphical user interface (GUI). The designs for the various GUI screens are
The proposed system was programmed using Java, NETBEAN. Its a high level
programming language. A program written in a high-level language cannot be run directly on any
38
computer. First, it has to be translated into machine language. This translation can be done by a
Instead of using a compiler, which translates the program all at once, you can use an interpreter,
much like a CPU, with a kind of fetch-and-execute cycle. In order to execute a program, the
interpreter runs in a loop in which it repeatedly reads one instruction from the program, decides
what is necessary to carry out that instruction, and then performs the appropriate machine-language
commands to do so.
The designers of Java chose to use a combination of compilation and interpretation. Programs
written in Java are compiled into machine language, but it is a machine language for
a computer that doesnt really exist. This so-called virtual computer is known as the Java
Virtual Machine, or JVM. The machine language for the Java Virtual Machine is called Java
bytecode. There is no reason why Java bytecode couldnt be used as the machine language of a
real computer, rather than a virtual computer. But in fact the use of a virtual machine makes
possible one of the main selling points of Java: the fact that it can actually be used on any
computer. All that the computer needs is an interpreter for Java bytecode. Such an interpreter
simulates the JVM in the same way that Virtual PC simulates a PC computer. (The term JVM
is also used for the Java bytecode interpreter program that does the simulation, so we say that
a computer needs a JVM in order to run Java programs. Technically, it would be more correct
to say that the interpreter implements the JVM than to say that it is a JVM.)
Of course, a different Java bytecode interpreter is needed for each type of computer, but
once a computer has a Java bytecode interpreter, it can run any Java bytecode program. And
the same Java bytecode program can be run on any computer that has such an interpreter.
39
This is one of the essential features of Java: the same compiled program can be run on many
different types of computers. I should also note that the really hard part of platform-independence
is providing a Graphical User Interfacewith windows, buttons, etc.that will work on all the
MySQL is a Structured Query language; MySQL is a popular open source Database Management
System (DBMS) that is known for its blistering performance. It runs on numerous operating
systems, including most Linux variants. To improve performance, it has a slimmer feature set than
do many other DBMSs. Its critics point out that it is not a fully relational DBMS since it does not
support many key features of relational databases, particularly in how it processes transactions.
MySQL in a Nutshell describes four implementations of the current SQL standard, SQL99 (also
known as SQL3): Microsofts SQL Server, MySQL, Oracle, and PostgreSQL. Relational Database
Management Systems (RDBMSs), such as SQL Server and Oracle, are the primary engines of
client/server computing systems. An RDBMS is defined as a system whose users view data as a
collection of tables related to each other through common data values. Data is stored in tables, and
tables are composed of rows and columns. Tables of independent data can be linked (or related) to
one another if they each have columns of data (called keys) that represent the same data value.
Software testing is a critical element in software quality assurance and represents the
ultimate review of specification, design and code generation. Software testing fundamentals define
The two software testing that will be used in testing our proposed system are the Alpha and
Beta testing. The alpha testing is usually carried out by the test takes places at the developers
sites. Developers observe the users and note problems. The beta testing comes after the alpha
testing has been carried out. The goal of beta testing is for the attendance management system to
be tested outside of the developers site to discover any flaws or issues from the users perspective
which the user would not want to experience when the final version of the application is delivered.
The testing objectives of our proposed system is to meets the business and technical requirements
that guided its design and development and works as expected. It will be useful to systematically
uncovers different classes errors and to do so with minimum amount of time and effort. Before
applying methods to design effective test cases, the following principles must be taken into
v. Testing should begin in the beginning and progress toward testing in the large
41
CHAPTER FOUR
DESIGN AND IMPLEMENTATION
4.0 Introduction
In this section, we focused on the design and implementation of the software. It will discuss the
database design, business logic and application interface. This chapter explicitly explains the
architecture of the system design including components, modules and how the different modules
function together.
In section 3.2, we look at the system requirement from the user. Here, we are going to dive
into the system requirement for the development of the software from the developer of the system.
At this stage, the database administrator, programmers and developers come together and plan on
the architecture of the software. The following are list of requirements needed for the development
stage.
Hardware Requirements:
Software Requirements:
This is one major phase in system development as the application of technical specification
obtained is incorporated here. Its the specification or construction of a technical, computer based
solution. In sections 3.4 and 3.5, we describe the features of logical and physical design. We also
focus on the actual representation of the logical and physical design for our proposed system.
The use case diagram shows the users of a system and functions that they can
perform when making use of the system. Each user is called an actor and the functions are
In order to understand how the activity diagram performs with respect to what its
meant to model, it should be interpreted beginning from the single small dark circle as
shown in Figure 4.2. The single small dark circle is used to depict the starting point of
activity. The rounded rectangle is used to represent the activity that occurred, while the
diamond shape is used to show the points of decision when need arises. As usual the double
small circle is used to depicts the end of the final activity. The arrows as they indicate are
used to show the direction of activity flow as the case may be due to how users chose to
Login
Register Biodata
Fingerprint
Identification
Attendance report
Mark Attendance
Fingerprint verification
Add Department
Logi
n
False
Generate error
report
True
Admin Student
profile profile
Logout
The entity relationship diagram (E-R diagram) shows the relationship between
different entities. The diagram in Figure 4.3 shows how each of the entity interact with
each other. The E-R diagram will further be translated into tables where information will
be saved.
The presentation layer of our system is where information input is being provided
by the user. The sketch of interface design carried out by the java developer application.
The user interface allows a user to interact with a system, tit will also utilize a graphical
The diagram shown in Figure 4.5 is a representation of a 3 tier architecture showing how
information flows among presentation layer which is the browser, the application layer which is
the web server and the data layer which is the database engine.
The software was written in Java. In order to compile the program as well as all other
4.5 Deployment
The database querying to the application server, the interaction between the phase.
Hardware Requirements:
Software Requirements:
In order to ensure that the developed system properly function, each module was tested
separately to eliminate build- up of error and real data were used to demonstrate that the developed
system operates according to specifications. Each test was carried out to include acceptance
testing, integration testing and security testing. The system was tested to ensure that the access
privileges is properly assigned in order not to grant unauthorized users access to pages they werent
Maintenance will be carried out by the system engineers in order to improve the system
delivery and durability. Maintenance has to do with the correction of bugs noticed during the
deployment and using of the software, addition of new features of the system and extension of
already existing features using the systems life time. There is various form of maintenance that
Correction Maintenance, a type of maintenance that takes place when the system falls to
functions expected. Corrective maintenance eliminates the cause of the system failure. This can be
Adaptive Maintenance, since the environment is dynamic, it should be made to suit whatever
requirement that may change in the long run. Its also the modification of the software product
performed after delivery to keep the computer program usable after changing environment.
Preventive Maintenance, involves measures taken to prevent the system from crashing and the
system uses input validation mechanism to reduce or eliminate the occurrence of system crashing
56
keep the system operational. It could either be performed by the system designer or by the software
CHAPTER FIVE
CONCLUSION
5.0 Introduction
The chapter explain the possible improvement that can make the software better as the
years come by. Also, some modularity was advised to improve the efficiency and customer
satisfaction.
5.1 Summary
This project has been developed a software for fingerprint verification for an attendance
management system for students of Computer Science department, Obafemi Awolowo University.
5.2 Recommendation
As a contemporary science department that deals with digital trends, its recommended that
the department should make the software a web application. A web application that sponsors
feedback and make it open for correction and improvement by their respective user.
5.3 Conclusion
When fully implemented the prosed system will definitely benefit users (students and
lecturers). The lecturer will have another way of distributing software to students while the
students will have an alternative means of downloading software within the department. It will be
possible to read post and reviews on the latest improvement available for the system.
58
REFERENCES
Algorithms for Embedded Systems Electronics, Circuits and Systems (ICECS), 19th IEEE
Recognition System Computer Applications & Research (WSCAR), World Symposium 2014.
Combinations in Fingerprint Matching System IEEE Conference on Computer Vision and Pattern
performance algorithm". IEEE Transactions on Pattern Analysis and Machine Intelligence, VOL
Lei Zhang, Mei Xie Realization of a New-style Fingerprint Recognition System Based on
System using adaptive FPGA based Enhanced Probabilistic Convergent Network NASA/ESA
Miron R F., Letia T S. and Hulea M Two Server Topologies for a Distributed Fingerprint-
Based Recognition System System Theory, Control, and Computing (ICSTCC), 2011 15th
International Conference,2011.
Nayak V C, Kanchan T. Lobo S W, and Rastogi P etc. \Sex differences from fingerprint
ridge density in the Indian population". Journal of Forensic and Legal Medicine, VOL 17, NO 1,
September 2007.
altering". Pattern Recognition Letters 24, page 2135 - 2144, October 2003.
Authentication for Embedded Systems, DAC2005, June l3-17,2005, Anaheim, Califomia, USA.
Copyright 2005
Concerns, IEEE Security and Privacy Magazine, Vol. 1, No. 2, pp. 33-42, 2003
International Journal of Communication Network Security ISSN: 2231 1882, Volume-2, Issue-
1, 2013.
Ratha N.K. Karu K, Chen S, and. Jain A. K. A Real-Time Matching System for Large
final-year-project-69
with Keystroke Dynamics for Realistic User IEEE 2014 IEEE Conference Number - 33344
July 8, 2014.
61
Modeling 2009.
Wang Yuan, Yao Lixiu, Zhou Fuqiang, A Real Time Fingerprint Recognition System
System with Template Protection Using Topology Code for Local Registration and Security
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package biometrics.admin;
/**
*
* @author michael-prime
*/
public class RecordsAdmin {
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package biometrics.model;
import java.io.IOException;
import java.util.Date;
import java.util.Objects;
import biometrics.database.Database;
import biometrics.database.Map;
/**
63
*
* @author Hontimmy
*/
public class Student {
this.regNumber = regNumber;
this.surname = surname;
this.fname = fname;
64
this.sex = sex;
this.dob = dob;
this.address = address;
this.lga = lga;
this.state = state;
this.phone = phone;
this.email = email;
this.faculty = faculty;
this.department = department;
this.level = level;
public Builder(Student s) {
this.regNumber = s.regNumber;
this.surname = s.surname;
this.fname = s.fname;
this.sex = s.sex;
this.dob = s.dob;
this.address = s.address;
this.lga = s.lga;
this.state = s.state;
this.phone = s.phone;
this.email = s.email;
this.faculty = s.faculty;
this.department = s.department;
this.level = s.level;
public Builder() {
}
}
}
@Override
public Student from(Map map) {
@Override
67
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package biometrics.model;
import java.io.IOException;
68
import java.util.Date;
import java.util.Objects;
import biometrics.database.Database;
import biometrics.database.Map;
/**
*
* @author Hontimmy
*/
public class Student {
Objects.requireNonNull(regNumber);
Objects.requireNonNull(surname);
this.regNumber = regNumber;
this.surname = surname;
this.fname = fname;
this.sex = sex;
this.dob = dob;
this.address = address;
this.lga = lga;
this.state = state;
this.phone = phone;
this.email = email;
this.faculty = faculty;
this.department = department;
this.level = level;
public Builder(Student s) {
this.regNumber = s.regNumber;
this.surname = s.surname;
this.fname = s.fname;
this.sex = s.sex;
this.dob = s.dob;
this.address = s.address;
this.lga = s.lga;
this.state = s.state;
this.phone = s.phone;
this.email = s.email;
this.faculty = s.faculty;
this.department = s.department;
this.level = s.level;
}
71
public Builder() {
}
@Override
public Student from(Map map) {
map.getStr("department"),
map.getStr("level"),
map.getStr("dob"));
}
@Override
public Object get(Student s, String field) {
switch(field.toLowerCase()) {
case "regnumber": return s.regNumber;
case "surname": return s.surname;
case "fname": return s.fname;
case "sex": return s.sex;
case "dob": return s.dob;
case "address": return s.address;
case "lga": return s.lga;
case "state": return s.state;
case "phone": return s.phone;
case "email": return s.email;
case "faculty": return s.faculty;
case "department": return s.department;
case "level": return s.level;
default: throw new IllegalArgumentException(field);
}
}
}
}
/*
* To change this license header, choose License Headers in Project Properties.
73
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
*
* @author michael-prime
*/
public class JdbcDatabase extends Database {
static final Logger LOGGER = Logger.getLogger(JdbcDatabase.class.getName());
String url = "jdbc:mysql://localhost/oaubio";
String dbname = "root";
74
int size = 0;
while (set.next()) {
size++;
Map map = new Map();
for (int i = 1; i <= columns; i++) {
String key = rsmd.getColumnLabel(i);
Object val = set.getObject(i);
if (val instanceof Blob) {
75
int b;
while ((b = is.read()) != -1) {
baos.write(b);
}
val = baos.toByteArray();
}
map.put(key, val);
}
maps.add(map);
}
@Override
protected List<Map> getAll(String table) throws IOException {
return executeQuery("SELECT * FROM " + table);
}
@Override
protected List<Map> select(String table, Map filter) throws IOException {
StringBuilder sql = new StringBuilder();
sql.append("SELECT * FROM ").append(table);
String prefix = "WHERE";
@Override
protected void delete(String table, Map filter) throws IOException {
StringBuilder sql = new StringBuilder();
sql.append("DELETE FROM ").append(table);
String prefix = "WHERE";
execute(sql.toString(), filter.values());
}
@Override
protected void update(String table, Map filter, Map object) throws IOException {
StringBuilder sql = new StringBuilder();
sql.append("UPDATE ").append(table);
sql.append( " SET ").append(object.toString(", ", "?"));
sql.append(" WHERE ").append(filter.toString(" AND ", "?"));
@Override
protected void insert(String table, Map object) throws IOException {
StringBuilder sql = new StringBuilder();
sql.append("INSERT INTO ").append(table);
sql.append(" (").append(String.join(",", object.keySet())).append(')');
sql.append(" VALUES (").append(repeat("?", object.size())).append(')');
execute(sql.toString(), object.values());
}
import java.io.IOException;
import biometrics.database.Database;
import biometrics.database.Map;
/**
*
* @author Hontimmy
*/
80
@Override
public String toString() {
return code;
}
@Override
public Course from(Map map) {
return new Course(map.getStr("code"),
map.getStr("name"),
map.getInt("units"));
}
81
@Override
public Object get(Course c, String field) {
switch (field.toLowerCase()) {
case "code": return c.code;
case "name": return c.name;
case "units": return c.units;
default: throw new IllegalArgumentException(field);
}
}
}
}