Professional Documents
Culture Documents
A Project Report
Submitted for the partial fulfillment of
the Degree of
Master of Computer Applications
(5 Years Integrated Course)
IN
Guru Jambheshwar University
of science and Technology, Hisar:
1
ANNEXURE – I
DECLARATION
Management System” submitted for the MCA (5 year integrated course) is my original
work carried out by me under the guidance of Mr. Anil Gupta for partial fulfilment
of the awards of the degree of the master of computer applications. The matter
embodies in this report has not been submitted anywhere else for the award of
Date:
2
Acknowledgement
I am highly grateful to Mr. Anil Gupta for guiding me at each and every step
in making this project a success. Without their sincere effort it would not be
(PARMOD)
Enrollment No :-17031007064
3
Annexure – II
Certificate
in part or full to this or any other university for the award of any other degree or
diploma.
Signature of supervisor
Organization/Institute :
4
Annexure - III
List of Figure
1 7.2 SDLC 37
3 7.4 E R DIAGRAM 39
5
GURU JAMBHESHWAR UNIVERSITY OF SCIENCE & TECHNOLOGY,
HISAR
6
DECLARATION OF THE STUDENT (ANNEXURE – I)
ACKNOWLEDGEMENT
CONTENTS
1. Abstract……………………………………………………………………….. 9
2. Introduction…………………………………………………………………… 10-11
2.1. Objective……………………………………………………………………. 12
2.2. Purpose ……………………………………………………………………. 13
2.3. Scope of the project............................................................................. 14
2.4. System Specification……………………………………………………… 15-16
3. Problem Analysis…………………………………………………………….. 17
3.1. Existing System……………………………………………………………. 17-19
3.2. Proposed System………………………………………………………….. 20-22
3.3. Implemented System……………………………………………………… 23-24
4. Project Monitoring System…………………………………………………... 25
4.1. Module Description………………………………………………………... 25-26
4.2. Services Provided to the User……………………………………………. 27
5. System Study…………………………………………………………………. 28
5.1. Feasibility Study……………………………………………………………. 28
5.1.1. Economic Feasibility……………………………………………... 28
5.1.2. Behavioural Feasibility…………………………………………… 28
5.1.3. Technical Feasibility……………………………………………… 28
5.1.4. Time Feasibility........................................................................ 29
6. Tools, Platform And Language Used………………………………………. 30-33
7. System Analysis………………………………………………………………. 34
7.1. Requirement Specification………………………………………………… 34
7.1.1. Software Requirement Specification……………………………. 34
7.1.2. Software Requirement……………………………………………. 35
7
7.1.3. Hardware Requirement…………………………………………… 36
7.2. SDLC…………………………………………………………………………. 37
7.3. Iterative WaterFall Model…………………………………………………... 38
7.4. E R Diagram…………………………………………………………………. 39
7.5. Use Case Diagram………………………………………………………….. 40
7.6. Data Flow Diagram................................................................................. 41-46
7.7. Activity Diagram……………………………………………………………… 47
8. System Design........................................................................................... 48-50
8.1. Design Methodology………………………………………………………… 51
8.2. Structured Design……………………………………………………………. 52-53
8.3. Module Coupling……………………………………………………………... 54-55
8.4. Module Cohesion…………………………………………………………….. 56-57
8.5. Strategy of Design……………………………………………………………. 58-59
9. System Testing and Implementation…………………………………………. 60
9.1. Testing………………………………………………………………………… 60-62
9.2. Level of Testing………………………………………………………………. 63-65
9.3. Implementation……………………………………………………………….. 66
9.4. Evaluation……………………………………………………………………… 67
9.5. Maintenance…………………………………………………………………… 68
10. Documentation…………………………………………………………………... 69
10.1. Coding………………………………………………………………………... 69-82
10.2. Screen Shot………………………………………………………………….. 83-97
11. Conclusion……………………………………………………………………….. 98
12. References………………………………………………………………………. 99
13. Appendices………………………………………………………………………. 100
8
1. ABSTRACT
9
2. INTRODUCTION
10
Employee Management system is an application that enables users to create and store
Employee Records. The application also provides facilities of a payroll system which
enables user to generate Pay slips too. This application is helpful to department of the
organization which maintains data of employees related to an organization. Java is a
platform independent language. Its created applications can be used on a standalone
machine as well as on distributed network. More over applications developed in java
can be extended to Internet based applications. Thus java was chosen as background
to design this application.
11
2.1.OBJECTIVE
In this world of growing technologies everything has been computerized. With large
number of work opportunities the Human workforce has increased. Thus there is a need
of a system which can handle the data of such a large number of Employees in an
organization. This project simplifies the task of maintain records because of its user
friendly nature.
Paperless: To make existing system paperless and save lots of bunching logs of files on
the shelf which makes the later on access of the record not at all easy task and
overhead to peoples.
Automatic: Making the existing system fully automatic which will save lots of human
resources work. As the current system is all human resource work is needed to maintain
and keep the record and details of every employee under and organization to keep track
of every employee in staff working in an organization.
12
2.2 PURPOSE
When needed, it will take just a few second to find out the backgroung of an employee
his/her work status, services and responsibility to the organization.
It’ll also facilitate keeping record of employees, such as their date of hiring & date of
leaving. So all the information about an employee will be available in a few seconds. It’ll
also make it very easy to generate statistical data or custom data, like finding a certain
sets of employees
13
2.3 SCOPE
Project Management:
Assign tasks and projects to employees, assign a project team and keep track of
the progress.
Report generation:
The HR manager will be able to generate timely reports in order to monitor
employeesand this can be used for performance appraisals. The reports will be have all
theinformation of an employee from educational background, trainings attended,
projectsdone as well as technical skills.
Recruitment Process:
The admin will add an employee and a default password and employee id will
begenerated and sent to the new employees email. The HR manager will then have the
ability to add an employee’s information to the database.
14
2.4 SYSTEM SPECIFICATIONS
Software Engineers have been trying various tools, methods and procedures to control
the process of software development in order to build high quality software with high
productivity. This method provides “how it is” for building the software while the tools
provide automated or semi automated support for the methods. They are used in all
stages of software development process, namely, planning, analysis, design,
development and maintenance. The software development procedure integrates the
methods and tools together and enables rational and timely development of the
software system.
Software Development
Procedures
Methods
Tools
They provide the guidelines as how to apply these methods and tools, how to
produce the deliverable at each stage, what controls to apply, and what milestones
to use to assess the performance of the program. There exist a number of software
development paradigms each using a different set of methods and tools. The
15
programming language used for the controls and the deliverables required. The
development of such successful systems depends not only on the use of appropriate
methods and techniques but also the developers’ commitment to the objective of
the system.
3. Be easy to operate
5. Be easy to modify
6. Be expandable
16
3. PROBLEM ANALYSIS
The problem definition for designing the system is to maintain data of employee, to
make easy controlling employees, to divide jobs and access control of employees, to
use technology for accurate and timely processing by fully privacy and full authority
access. The objective of the project is to set up employee information system about
status of employee and attendance of employee and monthly salary process and
delivery. To eliminate or reduce as much as possible the hardships of existing system
and avoid errors while entering data. In existing method employee management are
employee record are maintaining in records. It’s a manual process. Complicated to
search the employee salary
Disadvantages:
17
. Certain required report is not available Time-consuming process.
Problem Statement
Manual handling of employee information poses a number of challenges. This is evident
in procedures such as leave management where an employee is required to fill in a
form which may take several weeks or months to be approved. The use of paper work
these processes could lead to human error, papers may end up in the wrong hands and
not forgetting the fact that this is time consuming. A number of current systems lack
employee self-service meaning employees are not able to access and manage their
personal information directly without having to go through their HR departments or their
managers. Another challenge is that multi-national companies will have all the
employee information stored at the headquarters of the company making it difficult to
access the employee information from remote places when needed at short notice. The
aforementioned problems can be tackled by designing and implementing a web-based
HR management system. This system will maintain employee information in a database
by fully privacy and authority access. The project is aimed at setting up employee
information system about the status of the employee, the educational background and
the work experience in order to help monitor the performance and achievement of the
employee through a password protected system. This report’s documentation goes
through the whole process of both application program and database development. It
also comprises the development tools have been utilized for these purposes. This
system should consist of an application program, on one hand, and a database
(repository of data) on the other. The program should perform the basic operations upon
the database as retrieving, inserting, updating and deleting data. Any additional
functionality is a goal of a further module development. It is a kind of strategy to start the
development from designing and constructing the database, as this structure will
determine the further structure of the application program. The logical database model
(tables, their content and the relationships between them) should respond to the given
task and cover the basic requirements. The Interface of the program should be user-
18
friendly, and the program should be as easy for use as it is possible. Both controls and
forms should logically and functionally be related within the program and fully respond
to the structure of the database. Another problem is establishing the connections with
the database, every time, when a query is needed to be performed upon it. Exception-
handling should also be taken into an account during the system’s development due to
eventual exceptions that may occur.
19
3.2 PROPOSED SYSTEM
This chapter builds on the work done in the Analysis Chapter and gives documentation
for the Design of the Employee Management System. The EMS is modelled in terms of
objects and classes and their interactions with each other. Explanation of the proposed
system is done as well structure of the Entity Relationship Diagram (ERD). Design of
the User Interface is also discussed. The proposed system is designed to eliminate all
the drawbacks of the existing employee management software. The system shall be
responsible for maintaining information about employees, thus their personal profile.
The system shall incorporate leave management all the way from application to
acceptance/rejection of leave requests as well as all employee projects with close
monitoring of the projects from creation to completion and trainings to assist in
monitoring active and inactive employees.
. Employee profiles
. Leave management
. Task management
. Notifications
Consistent- The website should have a similar look and feel on every page. Every page
should have the same header/logo, heading style, fonts, navigations etc.
20
Efficient and easy to maintain- This refers to the fact that there is need to separate
content from layout, so that you can easily change your page design without editing
every page on the site.
Layout-The layout of each page should have a good contrast between the text and
background area. This helps considerably with visibility as it will be difficult to read the
text if it is almost the same color as the background. Monitor size should also be taken
into consideration.
Easy to navigate and use- Users should not have a hard time trying to navigate the site.
Navigation links should be consistent and clearly labelled. All navigation links should
also be working properly and should point to the intended page/site.
Browser compatible- When designing the site consider different browser environments.
Extensive testing should be done on each page in all the major browsers and the design
changed appropriately to cater for all.
Visually appealing- The use of color, text, fonts and graphics should be carefully
considered and used to ensure that the site is visually appealing to its visitors.
Features
. Portability
. Compatibility
. Secure
. User Friendly
. Generosity
21
Advantages
22
3.3 IMPLEMENTED SYSTEM
All these features include the ability to add user, update (edit), and retrieve through
search results. It also contains a report generation system that can be saved in a pdf file
format. The system works in the following manner, Accessing the system Various
companies and organizations may have different employee structures and hierarchy.
Being generic, the developed System has four main access levels which are:
Employee
Head of Department (HOD)
Human Resource Manager (HR)
Administrator
All users are presented with the same login interface. User must login the system by
means of valid username/password combination. After access is granted to the system,
the admin can add a new user to the system by entering the basic information which are
the full names and email address. The admin also assigns the new user a role which
will determine the access level. During the process of user registration, the all users are
issued with a unique username and password combination. Seeing that the system
holds private employee information, the admin has the ability to monitor all activity logs
into the system by date and time.
The newly added user logs into the system with a default password which can later be
changed to a more secure password. All employees can edit basic information such as
newly acquired technical skills and emergency contacts. Employees can apply for leave
by filling in a form as well as submitting an attachment to support their leave request.
The HOD has the ability to view all employees under his/her department, assign a task
and trainings. The HOD can also create a project, add members to the project and
create a work breakdown structure. Being an employee, the HOD can apply for leave as
well as
23
check leave days accrued. Upon logging in to the system, the HR manager gets
notifications on the leave applications submitted and has the ability to approve or reject
leave requests as they are submitted. The HR carries out all employee tasks which
include the ability to view and edit basic details, view pending tasks, projects and
trainings. The HR also has to the ability to generate employee reports in PDF format.
When you use a statement that makes change to the table but does not use INSERT,
DELETE or UPDATE statement, the trigger is not invoked.
24
4. PROJECT MONITORING SYSTEM
1. Admin Module
2. HR Module
3. Payroll Management
4. Employee Module
Admin Module:
Administrator controls the entire application. Administrator can add, delete, edit and view
all employee details and admin can create Employee Payslip. Administrator also manages the
data related to organizations and businesses. Administrator generates reports abased on
various criteria.
HR Module:
HR controls the entire application. Administrator can add, delete, edit and view all
employee details. Administrator also manages the data related to organizations and businesses.
25
Payroll Management:
Employee Module:
Employees must have valid login information to access the application. Each
employee can view the details of Vacancy, Payslip , schedules and Training Materials.
26
4.2 Services Provided to the User:
27
5. SYSTEM STUDY
The feasibility study of this project has revealed the project as follows: -
28
5.1.4 TIME FEASIBILITY
It is the determination of whether a proposed project can be implemented fully
within stipulated time frame. The project was decided to be done in three months and
was thought to be feasible enough.
29
6.TOOLS, PLATFORM AND LANGUAGE USED
FRONT END:
The programming has been done using the language C++. It is Sun Microsystem’s
strategic language for platform independent programming. It is easy to use, efficient and
flexible. This language is preferred because one can build a program using this object
oriented and platform independent programming with less effort than with any other
programming language. It’s a natural language for building database applications, owing
to the level and sophistication of the tools included with the language.
BACK END:
Microsoft Sql Server is one of the leading database management systems available on
the market today. It is easy to use and administer, and it comes with tools and wizards
that make it easy to develop applications. The database itself has been redesigned to
automatically perform many tuning functions, leaving you free to focus on most
important tasks.
PLATFORM USED:
WINDOWS XP PROFESSIONAL
30
Windows (Operating System)
a) Window derived from its name from the on-screen “WINDOWS” that it used to
display information’s.
c) When a computer is switch on for working, it needs the operating system because all
the activities of a system are supervised by the operating system.
The Commands are displayed on the screen and we don’t have to remember all
commands.
ii. GUI makes it easy to work with disks and directories. It can display tree
4. User friendly.
31
LANGUAGE USED – C++:
Inheritance
Inheritance allows one data type to acquire properties of other data types. Inheritance
from a base class may be declared as public, protected, or private. This access
specifier determines whether unrelated and derived classes can access the inherited
public and protected members of the base class. Only public inheritance corresponds to
what is usually meant by "inheritance". The other two forms are much less frequently
used. If the access specifier is omitted, a "class" inherits privately, while a "struct"
inherits publicly. Base classes may be declared as virtual; this is called virtual
inheritance. Virtual inheritance ensures that only one instance of a base class exists in
the inheritance graph, avoiding some of the ambiguity problems of multiple inheritance.
Multiple inheritance is a C++ feature not found in most other languages, allowing a class
to be derived from more than one base class; this allows for more elaborate inheritance
relationships. For example, a "Flying Cat" class can inherit from both "Cat" and "Flying
Mammal". Some other languages, such as C# or Java, accomplish something similar
(although more limited) by allowing inheritance of multiple interfaces while restricting the
32
number of base classes to one (interfaces, unlike classes, provide only declarations of
member functions, no implementation or member data). An interface as in C# and Java
can be defined in C++ as a class containing only pure virtual functions, often known as
an abstract base class or "ABC". The member functions of such an abstract base class
are normally explicitly defined in the derived class, not inherited implicitly. C++ virtual
inheritance exhibits an ambiguity resolution feature called dominance.
33
7. SYSTEM ANALYSIS
The proposed system is not a freeware and due to the usage of swings, becomes
user interactive.
34
7.1.2 Software RequirementS
35
7.1.3 Hardware Requirements
. MEMORY SPACE:
Minimum - 32 MB
Recommended- - 64 MB
36
The series of stages depicting the various tasks involved in development process is
called Software Life Cycle Model. The model implemented by us is Waterfall Model,
which is most widely used in procedure-oriented development. This model attempts to
break up the identifiable activities into series of actions, each of which must be
completed before the next begins. The activities include problem definition, requirement
analysis, design, coding, testing, maintenance.
Further refinements to this model include iteration back to previous stages in order to
incorporate any changes or missing links.
The phases and the outputs of the waterfall model at each phase are summarized
below in tabular format.
PHASE OUTPUT
Analysis SRS
37
Software development life cycle process specifies a method of developing the
software. Each software development projects starts with some needs and ends with
some software that satisfies those needs. A software development life cycle specifies
the set of activities that should be preformed to go from user needs to final products.
There are different models of SDLC process and each model specifies the activities and
the order in which they should be preformed. Depending on the nature of project, a
suitable model is chosen and the entire process of software requirement analysis,
design, coding, testing and maintenance is preformed accordingly.
Various life cycle models are present, but our system is based on WATER
FALL MODEL, which is most widely used in procedure oriented development. This
model attempts to break up the identifiable activities into series of action, each of which
must be completed before the next begins. The activities include Problem definition,
Requirement Analysis, Design, Coding, Testing and maintenance.
Statement of constraints
Description of outputs
7.4 ER-diagram
38
Er-diagram is a detailed representation of the data for an organization and uses three
main constructs- data entities, relationships and their associated attributes
39
This Use Case Diagram is a graphic depiction of the interactions among the elements
of Employee Management System. It represents the
methodology used in system analysis to identify, clarify, and
organize system requirements of Employee Management System.
Employee Management System Data flow diagram is often used as a preliminary step
to create an overview of the Employee Management without going into great detail,
40
which can later be elaborated.it normally consists of overall application dataflow and
processes of the Employee Management process. It contains all of the userflow and
their entities such all the flow of Employee, Department, Designation, Leave, Salary,
Attendance, Task. All of the below diagrams has been used for the visualization of data
processing and structured design of the Employee Management process and working
flow.
Management System :
This is the Zero Level DFD of Employee Management System , where we have
eloborated the high level process of Employee Management .It’s a basic overview of the
whole Employee Management System or process being analyzed or modeled. It’s
designed to be an at-a-glance viewof Salary,Attendance and Task showing the system
as a single high-level process, with its relationship to external entities of
Employee,Department and Designation. It should be easily understood by a wide
audience, including Employee,Designation and Salary In zero leve DFD of Online
Employee Management System , we have described the high level flow of the
Employee Management system.
System :
41
Managing all the Attendance
Managing all the Task
42
First Level DFD (1st Level) of Employee Management System shows how the system is
divided into sub-systems (processes), each of which deals with one or more of the data
flows to or from an external agent, and which together provide all of the functionality of
the Online Employee Management System system as a whole. It also identifies internal
data stores of Task, Attendance, Salary, Leave, Designation that must be present in
order for the Employee Management system to do its job, and shows the flow of data
between the various parts of Employee, Designation, Attendance, Task, Salary of the
system. DFD Level 1 provides a more detailed breakout of pieces of the 1st level DFD.
You will highlight the main functionalities of Employee Management .
Main entities and output of First Level DFD (1st Level DFD):
43
44
Second Level Data Flow Diagram(2nd Level DFD) Of
Employee Management System :
DFD Level 2 then goes one step deeper into parts of Level 1 of Employee Management
It may require more functionalities of Employee Managementto reach the necessary
level of detail about the Employee Management functioning. First Level DFD (1st Level)
of Online Employee Management System shows how the system is divided into sub-
systems (processes). The 2nd Level DFD contains more details of Task, Attendance,
Salary, Leave, Designation, Department, Employee.
Admin logins to the system and manage all the functionalities of Employee
Management System
Admin can add, edit, delete and view the records of Employee, Designation,
Salary, Task
Admin can manage all the details of Department, Leave, Attendance
Admin can also generate reports of Employee, Department, Designation, Leave,
Salary, Attendance
Admin can search the details of Department, Salary, Attendance
Admin can apply different level of filters on report of Employee, Leave, Salary
Admin can tracks the detailed information of Department, Designation, Leave, ,
Salary
45
46
7.7 Activity Diagram
47
8. SYSTEM DESIGN
The systems objectives outlined during the feasibility study serve as the basis from
which the work of system design is initiated. Much of the activities involved at this stage
is of technical nature requiring a certain degree of experience in designing systems,
sound knowledge of computer related technology and through understanding of
computers available in the market and the various facilities provided by the vendors.
Depending on the plan of feasibility study, the level of detailed study will vary and the
system design stage will also vary in the amount of investigation that still needs to be
done.
This investigation is generally an urgent activity during the system design as the
designer needs to study minute’s details in all aspects of the system. Sometimes, but
rarely, this investigation may from a separate stage between Feasibility Study and
Computer System Design.
Designing a new system is a creative process, which calls for logical as well as lateral
thinking. The logical approach involves systematic moves towards the end product
keeping in mind the capabilities of the personnel and the equipment at each decision
making step.
Lateral thought implies encompassing of ideas beyond the usual functions and
equipment. This is to ensure that no efforts are being made to fit previous solutions into
new situations.
48
System Design Consideration:
The system design process is not a step-by-step adherence of clear procedure and
guidelines. Though, certain clear procedures and guidelines have emerged in recent
days, but still much of design work depends on knowledge and experience of the
designer.
When designer starts working on system design, he will face different type of problems.
Many of these will be due to constraints imposed by the user or limitations of the
hardware and software available in the market. Sometimes, it is difficult to enumerate
the complexity of the problems and solutions thereof since the variety of likely problems
is so great and no solutions are exactly similar. However, following considerations
should be kept in mind during the system-designing phase.
Practically: The system must be stable and can be operated by people with
average.
Efficiency: This involves accuracy, timeliness and comprehensiveness of the
system
Output.
Cost: It is desirable to aim for a system with a minimum cost subject to the
condition that it must satisfy all the requirements.
Security: This is very important aspect of the design and should cover areas of
hardware reliability, fall back procedures, physical security of the data and
provision for detection of fraud and abuse.
System design involves first logical design and then physical construction of the
system. The logical design describes the structure and characteristics of feature,
like the outputs, inputs, files databases and procedures. The physical
49
construction, which follows the logical design, procedures actual program
software, files and a working system.
Processing Techniques:
50
8.1 DESIGN METHODOLOGIES
The scope of the systems design is guided by the framework for the new system
developed during analysis. More clearly defined logical method for developing system
that meets user requirements has led to new techniques and methodologies that
fundamentally attempt to do the following:
Improve productivity of analysts and programmers
Improve documentation and subsequent maintenance and enhancements
Cut down drastically on cost overruns and delays
Improve communication among the user, analyst, designer, and programmer.
Standardize the approach to analysis and design
Simplify design by segmentation.
51
8.2 STRUCTURED DESIGN
Structured design is a data flow based methodology. The approach begins with a
system specification that identifies inputs and outputs and describes the functional
aspects of the system. The specifications then are used as a basis for the graphic
representation. The next step is the definition of the modules and their relationships to
one another in a form called a structure chart, using a data dictionary and other
structured tools.
Logical design proceeds from the top down. General features, such as reports and
inputs are identified first. Then each is studied individually and in more detail. Hence,
the structured design partitions a program into small, independent modules. They are
arranged in a hierarchy that approximates a model of the business area and is
organized in a top-down manner. Thus, structured design is an attempt to minimize the
complexity and make a problem manageable by subdividing in into smaller segments,
which is called Modularization or decomposition. In this way, structuring minimizes
intuitive reasoning and promotes maintainable provable systems.
52
Major System Design Activities:
Several development activities are carried out during structured design. They are data
base design, implementation planning, system test preparation, system interface
specification, and user documentation.
Data base design: This activity deals with the design of the physical database.
A key is to determine how to access paths art to be implemented.
Program design: In conjunction with database design is a decision on the
programming language to be used and the flowcharting, coding, and debugging
procedure prior to conversion. The operating system limits the programming
languages that will run of the system.
System and program test preparation: Each aspect of the system has a
separate test requirement. System testing is done after all programming and
testing completed the test cases cover every aspect of the proposed system,
actual operations, user interface and so on. System and program test
requirement becomes a part of design specifications – a pre requisite to
implementation.
53
8.3 MODULE COUPLING
DATA COUPLING
The dependency between module A and B is said to be coupled it their dependency is
based on the fact they communicate by only passing of data
STAMP COUPLING
Stamp coupling occurs between module A and B when complete data structure is
passed from one module to another.
CONTROL COUPLING
Module A and B are said to be control coupled if they communicate by passing of
control information.
EXTERNAL COUPLING
A form of coupling in which has a dependency to other module, external to the software
being developed or to a particular type of hardware.
54
COMMON COUPLING
With common coupling, module A and B have shared data. Global data areas are
commonly found in programming languages. Making a changes to the common data
means tracing back to all the modules which access that data to evaluate the effect of
change.
CONTENT COUPLING
Content coupling occurs when module a changes data of module B or when control is
passed from one to the middle of another.
55
8.4 MODULE COHESION
Cohesion is a measure of the degree to which the elements of a module are functionally
related. A strongly cohesion module implements functionality that is related to one
feature of the solution and requires little or no interaction with other modules
FUNCTIONAL COHESION
X and Y are part of a single functional task. This is very good reason for them to be
contained in the same procedure.
SEQUENTIAL COHESION
X output some data which forms the input to Y. This is the reason for them to be
contained in the same procedure.
COMMUNICATIONAL COHESION
X and Y both operate on the same input data or contribute towards the same output
data. This is okay, but we might consider making them separate procedures.
PROCEDURAL COHESION
X and Y are both structured in the same way. This is a poor reason for putting them in
the same procedure. Thus, procedural cohesion occurs in modules whose instructions
although accomplish different tasks yet have been combined because there is a specific
order in which the tasks are to the completed.
TEMPORAL COHESION
X and Y both must perform around the same time. So, module exhibits temporal
cohesion when it contains tasks the are related by the fact that all tasks must be
executed in the same-span.
56
LOGICAL COHESION
X and Y perform logically similar operations. Therefore, logical cohesion occurs in
modules that contain instruction that appear to be related because they fail into the
same logical class.
COINCIDENTAL COHESION
X and Y here no conceptual relationship other than shared code Hence, coincidental
cohesion exists in modules that contain instructions that have little or no relationship to
one another.
57
8.5 STRATEGY DESIGN
A good system design strategy is to organize the program modules in such a way that
are easy to develop and later to, change. Structured design techniques help developers
to deal with the size and complexity of programs. Analysts create instructions for the
developers about how code should be written and how pieces of code should fit
together to form a program.
BOTTOM UP DESIGN
These approach lead to a design where we decide how to combine these modules to
provide larger ones; to combine those to provide a large ones, and so on, till we arrive
at one big module which is the whole of the desired program. The set of these modules
form a hierarchy. This is a cross-linked tree structured in which each module is
subordinate to those in which it is used.
Since the design progressed form bottom layer upwards, the method is called bottom up
design. This method has one terrible weakness; we need to use a lot of intuition to
design exactly what functionality a module should provide. If we it wrong, then at higher
level, we will find that it is not as per requirements; then we have to redesign at a lower
level.
TOP-DOWN DESIGN
A top design approach starts by identifying the major modules of the system,
decomposing them into lower level and iterating until the desired level of detail is
achieved. This is a stepwise refinement; starting from an abstract design, in each step
the design is refined to a more concrete level, until we reach a level where no
refinement is needed and the design can be implemented directly. Most design
methodologies are based on this approach is suitable, if the specifications are clear and
development is from the scratch.
58
HYBRID DESIGN
Hybrid approach has really become popular after the acceptance of reusability of
modules. Standard libraries, Microsoft foundation classes, object oriented concepts are
steps in this direction. We may soon have internationally acceptable standards for
reusability.
59
9. SYSTEM TESTING AND IMPLEMENTATION
9.1 TESTING
During systems testing, the system is used experimentally to ensure that the software
does not fail. In other words, we can say that it will run according to its specifications
and in the way users expect. Special test data are input for processing, and the results
examined. A limited number of users may be allowed to use the system so that analyst
can see whether they try to use it in unforeseen ways. It is desirable to discover any
surprises before the organization implements the system and depends on it.
Software modules are tested for their functionality as per the requirements identified
during the requirements analysis phase. To test the functionality of the file transfer and
chat application, a Quality Assurance (QA) team is formed. The requirements identified
during the requirements analysis phase are submitted to the QA team. In this phase the
QA team tests the application for these requirements. The development team submits a
test case report to the QA team so that the application can be tested in the various
possible scenarios.
The software development project, errors can be injected at any stage during
development i.e. if there is an error injected in the design phase then it can be detected
in the coding phase because there is the product to be executed ultimately on the
machine, so we employ a testing process.
60
During the testing the program to be tested is executed with certain test cases and
output of these test cases is evaluated to check the correctness of the program. It is the
testing that performs first step in determining the errors in the program.
During Test Cases that are good at revealing the presence of faults is central to
successful testing. The reason for this is that if there is a fault in the program, the
program can still provide the expected behavior on the certain inputs. Only for the set of
inputs the faults that exercise the fault in the program will the output of the program
devise from the expected behavior. Hence, it is fair to say that testing is as good as its
test case.
The number of test cases used to determine errors in the program should be minimum.
There are two fundamental goals of a practical testing activity:-
As these two goals are contradictory so the problem of selecting test cases is a complex
one. While selecting the test cases the primary objective is to ensure that if there is an
error or fault in the program, it is exercised by one of its test cases. An ideal test case is
one which succeeds (meaning that there are no errors, revealed in its execution) only it
there are no errors in the program one possible set of ideal test cases is one which
includes all the possible inputs to the program. This is often called "exhaustive testing",
however it is impractical and infeasible as even a small program can have an infinite
input domain.
61
So to avoid this problem we use "test criteria" in selection of the test cases. There are
two aspects of the test case selection:-
The fully automated process of generating test criteria has not been yet found rather
guidelines are only the automated tool available to us previously. The two fundamental
properties for a testing criterion are:-
Reliability: a criterion is reliable if all the sets that satisfy the criteria detect the
same error. .
Validity: a criterion is valid if for any error in the program there is some set
satisfying the criteria that will reveal the error.
The fundamental theorem of testing is that if a testing criterion is valid and reliable, if a
set satisfying criteria succeeds then the program contains no errors.
62
9.2 LEVEL OF TESTING
In functional testing the structure of the program is not considered. Test cases are
solely determined on the basis of requirement or specification of the program or module.
Internals of the modules and the programs are not considered for selection of test
cases. Due to this nature it is also called "black box testing".
The other criteria for generating the test case are to generate them "randomly" this
strategy has a little chance of resulting in a test case that is close to optimal.
There is no appropriate criterion for developing the test case so we have certain
heuristic approaches-:
a) Equivalence Class Partitioning: in which the domain of all inputs is divided into a
set of equivalence classes, so that if any test in that class succeeds, then every test in
that class will succeed i.e. the success of one set element implies the success of the
other.
63
b) Boundary Value Analysis: It has been observed that programs work correctly for a
set of values in an equivalence class fail on certain values. These values generally lie
on the boundary of equivalence class. So in the boundary value analysis we chose an
input for a test case from an equivalence class, such that input lies on the edge of
equivalence class. Boundary value test cases are also called "extreme cases".
c) Cause-Effect Graphing: The problem with the prior approaches is that they consider
each input separately i.e. both concentrate on classes and conditions of one input. The
combination of inputs is not considered which is used in many cases. One way to
exercise the combination of various input conditions is to consider all the valid
combinations of the equivalence class of the input conditions. The technique starts with
identifying the causes and the effect of system under testing.
STRUCTURAL TESTING:
In the structural approach the test cases are generated an the basis of the actual code
of the program or the module to be tested, This structural approach is sometimes called
"glass box testing", This testing is concerned with the implementation of the program.
The content is not to exercise the various input conditions rather different programming
structures and data structures used in the program.
64
Most common structure based criteria use control flow based testing in which the
control flow graph of the program is considered and coverage of various aspects of
graph are specified as criteria. The various control flow based strategies are
statement coverage,
branch coverage and
all path coverage
The basic idea behind the data flow based testing is to make sure that during testing,
the definitions of variables and their subsequent use is tested. To implement the data
flow based testing the data flow graph is first made from the control flow graph.
) Mutation Testing:
In the above two testing techniques the focus is on which path to be executed, but
mutation testing is not a path-based approach. The mutation testing requires that the
set of test cases must be such that they can distinguish between the original programs
and is mutants. In software world there is no fault model as in hardware so most of the
techniques do guess work regarding where the fault must lie and then select the test
cases to reveal those faults. In Mutation testing faults of some pre-decided types are
introduced in the program being tested. Then those faults are found in the mutants.
65
9.3 IMPLEMENTATION
Implementation is the process of having systems personnel check out and put new
equipment into use, train users, install the new application and construct any files of
data needed to use it. This phase is less creative than system design. Depending on the
size of the organization that will be involved in using the application and the risk
involved in its use, systems developers may choose to test the operation in only one
area of the firm with only one or two persons. Sometimes, they will run both old and new
system in parallel way to compare the results. In still other situations, system
developers stop using the old system one day and start using the new one the next.
66
9.4 EVALUATION
Evaluation of the system is performed to identify its strengths and weaknesses. The
actual evaluation can occur along any of the following dimensions:
67
9.5 MAINTENANCE
Maintenance is necessary to eliminate errors in the working system during its working
life and to tune the system to any variations in its working environment often small
system deficiencies are found as a system is brought into operations and changes are
made to remove them. System planners must always plan for resource availability to
carry out these maintenance functions. The importance of maintenance is to continue to
bring the new system to standards.
68
10. DOCUMENTATION
10.1 CODING
Once the design is complete, most of the major decision about the system has been
made. The goal of the coding phase is to translate the design of the system into code in
a given programming language. For a given design, the aim of the phase is to
implement the design in the best possible manner.
The coding phase affects both testing and maintenance profoundly. A well written code
reduces the testing and maintenance effort. Since the testing and maintenance cost of
software are much higher that the coding cost, the goal of coding should be to reduce
the testing and maintenance effort. Hence, during coding the focus should be on
developing programs that are easy to write. Simplicity and clarity should be strived for,
during the coding phase.
69
These are many methods available for verifying the code. Some methods are static in
nature that is, that is they do not involve execution of the code.
Example of such methods is data flow analysis, code reading, code reviews, testing (a
method that involves executing the code, which is used very heavily). In the coding
phase, the entire system is not tested together. Rather, the different modules are tested
separately. This testing of modules is called “Unit Testing”. Consequently, this phase is
often referred to as “coding and until testing”. The output of this phase is the verified
and until tested code of the different modules.
70
SOURCE CODE:
#include<iostream>
#include<conio.h>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<windows.h>
#include<unistd.h>
class employee{
private:
char name[30];
char id[5];
char designation[10];
int age;
int ctc;
int experience;
71
// Utility functions
void waitForEnter(void){
cin.get();
cin.get();
system("cls");
FILE *file;
cout<<"\n----------------------------------------------";
cout<<"----------------------------------------------";
cout<<"\n"<<name<<"\t\t"<<id<<"\t\t"<<designation;
fclose(file);
waitForEnter();
72
void showDetails(void){ //Displays all details according to Employee's id
system("cls");
FILE *file;
char checkId[5];
cin>>checkId;
if(strcmp(checkId,id)==0){
cout<<"\n---------------------";
cout<<"\nName: "<<name;
cout<<"\n---------------------";
cout<<"\nId: "<<id;
cout<<"\n---------------------";
cout<<"\nDesignation: "<<designation;
cout<<"\n---------------------";
cout<<"\nAge: "<<age;
cout<<"\n---------------------";
cout<<"\nCTC: "<<ctc;
cout<<"\n---------------------";
cout<<"\nExperience: "<<experience;
73
cout<<"\n---------------------";
fclose(file);
waitForEnter();
system("cls");
char checkId[5];
cin>>checkId;
char newDesignation[10];
cout<<"\n-----------------------------";
cin>>newDesignation;
int newCtc;
cout<<"------------------------------";
cin>>newCtc;
74
while(fscanf(file, "%s %s %s %d %d %d", &name[0], &id[0] ,
&designation[0], &age, &ctc, &experience)!=EOF){
if(strcmp(checkId, id)==0)
else
fclose(file);
fclose(tempfile);
waitForEnter();
system("cls");
cout<<"\n----------------------------------------";
cin>>name;
cout<<"\n----------------------------------------";
75
cin>>id;
cout<<"\n----------------------------------------";
cin>>designation;
cout<<"\n----------------------------------------";
cin>>age;
cout<<"\n----------------------------------------";
cin>>ctc;
cout<<"\n----------------------------------------";
cin>>experience;
cout<<"\n----------------------------------------";
char ch;
cin>>ch;
if(ch=='y'){
FILE *file;
file= fopen("data.txt","a");
76
fclose(file);
else
addNewEmployee();
waitForEnter();
system("cls");
char checkId[5];
cout<<"\n----------------------------------";
cin>>checkId;
char ch;
cout<<"----------------------------------";
cin>>ch;
if(ch=='y'){
77
while(fscanf(file, "%s %s %s %d %d %d", &name[0], &id[0] ,
&designation[0], &age, &ctc, &experience)!=EOF)
if(strcmp(checkId, id)!=0)
fclose(file);
fclose(tempfile);
cout<<"\nRemoved Successfully\n";
waitForEnter();
else
deleteEmployeeDetails();
public:
login();//login screen
while(true){
78
system("cls");
cout<<"\n";
cout<<"\n\t\t\t------------------------------------------------";
cout<<"\n\t\t\t------------------------------------------------";
cout<<"\n\t\t\t------------------------------------------------";
cout<<"\n\t\t\t------------------------------------------------";
cout<<"\n\t\t\t------------------------------------------------";
cout<<"\n\t\t\t------------------------------------------------";
cout<<"\n\t\t\t------------------------------------------------";
int choice;
79
cin>>choice;
switch (choice) {
case 0:
system("CLS");
Sleep(10);
return;
case 1:
listEmployees();
break;
case 2:
showDetails();
break;
case 3:
editExisting();
break;
case 4:
addNewEmployee();
break;
case 5:
deleteEmployeeDetails();
80
break;
default:
break;
};
int main(){
employee e;
e.options();
return 0;
char ch;
81
ch = _getch();
pass.push_back(ch);
ch = _getch();
if(pass == "pass"){
cout<<"\n\n\n\t\t\t\t\tLOADING \n\t\t\t\t\t";
Sleep(500);
system("PAUSE");
system("CLS");
}else{
login();
82
10.2 SCREEN SHOTS
83
84
85
86
87
88
89
90
91
92
93
94
95
96
11. CONCLUSION
97
In this report, an information system’s development has been presented. It was
emphasized on the basic steps, consequently taken during the project’s
development course as a particular attention was turned to the basic operative
functions performed upon the data into the database. The report’s content comprises
the whole task solution, starting from the programming environments have been
selected, going through the database, the application’s analyze and construction,
and finishing with the code-implementation and test-samples, shown separately in
Appendix chapters. As a future work, some additional stuff could be implemented
and integrated into the application code making it much more reliable and flexible;
especially what concerns a pay-roll module, for instance. Apparently, the role of
such systems is basic and essential within each company that wants to keep a really
good control and record concerning its personnel data, functionality and
performance on all levels in its structure. Every organization, in nowadays, has the
necessity of managing its staff on a really good level as the staff has definitely the
greatest merit of building up a company as such as it is. The wellmanaged staff
means giving the appropriate financial award-ness and all kind of benefits as such
as they have been deserved. That’s why the development of such systems is not
just a programming business – a lot of people are ordinarily involved in such projects
and one of the basic requirements is the reliability of the system, especially what
concerns the storage of data and all of the operations that will be performed upon it.
12. REFERENCES
98
1. Begg Carolyn, Connolly Thomas, Database systems (a Practical approach to
Design, Implementation, and Management), Addison-Wesley, an imprint of
Pearson Education, University of Paisley (U.K.), Fourth edition 2005
2. Bodnar George /Duquesne University/, Hopwood William /Florida Atlantic
University/, Accounting Information systems, Eighth Edition, Prentice Hall, Upper
Saddle River, New Jersey .
3. Andersen Virginia, Access 2000: The Complete Reference, Blacklick, OH,
USA: McGraw-Hill Professional Book Group, 2001,
http://site.ebrary.com/lib/vaxjo/Doc?id=5002842 (2006-05-25).
4. Andersson Tobias, [DAB744] C# Course Lectures, School of Mathematics
and System Engineering, Växjö University.
5. http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/vbcon/html/vboritextboxctltasks.asp (2006-05-25).
13.BIBLIOGRAPHY
99
www.google.com
www.wikipedia.com
www.studymafia.org
www.pptplanet.com
100