The document appears to be a project report for developing an online voting system for college elections. It includes sections on introduction, requirements analysis, project management, design, testing, and references. The introduction describes the problem of low voter turnout in traditional voting and proposes an online system to allow students to vote from anywhere. The requirements analysis section includes data flow diagrams and a data dictionary. The project management section estimates the project scope in function points, effort in person-months, and schedule. It also includes a risk table.
This PPT maily contains about online polling. The basic idea of online polling is to facilitate the user to vote from anywhere just sitting infront of computer system.
A mobile(Android app ) based election app. A website or app that will help in smart election system. It can be used by the government,and in every sector when election is a major issue.
This PPT maily contains about online polling. The basic idea of online polling is to facilitate the user to vote from anywhere just sitting infront of computer system.
A mobile(Android app ) based election app. A website or app that will help in smart election system. It can be used by the government,and in every sector when election is a major issue.
The republic of Kenya comprises of eight (8) provinces now forty-seven counties. The country is located in East Africa and shares land borders with the Republics of Somalia in the East, Uganda in the West, Tanzania in the South and Ethiopia and Sudan (now South Sudan) in the North. The three largest and most influential ethnic groups in Kenya are the kikuyu, Luhya, and Kalenjins. In terms of religion Kenya is roughly split into 80% Christians while the rest are Muslims.
In Kenya, general elections are carried out every after five years where a head of state the President and The National Assembly representatives are elected. They are elected by the people. The national Assembly has about 220 members representing respective constituencies.
In the Local Governments they have the chairman and the Counselor. The counselors are all elected by the people of the state in the respective wards.
That is to say, in any given general elections, Kenyans vote for the president, the members of the National Assembly and the counselors.
Most African Electoral bodies IEBC not an exception right from their inception to date, even with latest advancements in technology, still use a primitive paper based methods during voting; this system is characterized by manual form filling to chose leaders and transfer of the information from manual data capture forms to computerized datasheets, this has led to an excessive number of mistakes making their way into the final vote counts hence leading to confusion at the time of announcing the results. The main advantage of paper-based systems is that ballot papers are easily human auditable. The disadvantages outweigh the advantages for instance the need to print ballot papers is a slow, expensive, inflexible, environmentally hostile process, visual impairments, or literacy limitations and also last minute changes to the voter register are difficult to accommodate among others.
The republic of Kenya comprises of eight (8) provinces now forty-seven counties. The country is located in East Africa and shares land borders with the Republics of Somalia in the East, Uganda in the West, Tanzania in the South and Ethiopia and Sudan (now South Sudan) in the North. The three largest and most influential ethnic groups in Kenya are the kikuyu, Luhya, and Kalenjins. In terms of religion Kenya is roughly split into 80% Christians while the rest are Muslims.
In Kenya, general elections are carried out every after five years where a head of state the President and The National Assembly representatives are elected. They are elected by the people. The national Assembly has about 220 members representing respective constituencies.
In the Local Governments they have the chairman and the Counselor. The counselors are all elected by the people of the state in the respective wards.
That is to say, in any given general elections, Kenyans vote for the president, the members of the National Assembly and the counselors.
Most African Electoral bodies IEBC not an exception right from their inception to date, even with latest advancements in technology, still use a primitive paper based methods during voting; this system is characterized by manual form filling to chose leaders and transfer of the information from manual data capture forms to computerized datasheets, this has led to an excessive number of mistakes making their way into the final vote counts hence leading to confusion at the time of announcing the results. The main advantage of paper-based systems is that ballot papers are easily human auditable. The disadvantages outweigh the advantages for instance the need to print ballot papers is a slow, expensive, inflexible, environmentally hostile process, visual impairments, or literacy limitations and also last minute changes to the voter register are difficult to accommodate among others.
This project is on “E-Filling System”. The purpose of the project is faster movement of files and documents through different layers of non-government and government offices. This system used to store and track electronic documents or file. It is very effective because centralized source of information, Import Security, Cost-effectiveness, improved workflow, maximized customer satisfaction, easy retrieval and flexible search. The aim of the Electronic-file System is to execute Paperless Communication system throughout the organization. Paperless Communication helps to accommodate the system smoothly and to ensure quick disposal of proposal. However, the goal of our system is not to become a slave of paper - searching for it, filing it, approved it, storing it and losing it at inconvenient times - but rather to handle paper electronically to lower its intrinsic administrative cost.
Online course register system project report.pdfKamal Acharya
Student course registration process in colleges involve filling registration forms manually, getting it signed by respective subject teachers, and then getting the documents acknowledged from the concerned Advisors, College Deans and Accounts Officers respectively. Finally the registration forms are submitted in the Administrative Branch. As is evident, this process is very laborious and time consuming. An Online Student Course Registration System has been developed to simplify the current manual procedure. This system has been developed using PHP and MySQL. The front-end is designed using PHP with excerpts of code written using and back-end is designed and managed through MySQL. This system software is more secured, user-friendly and less time-consuming. Basically, systems are implemented for facilitating complex manual processes and that is exactly what we are trying to achieve. System is implemented as per user requirement such as a manufacturing concern may install a plant for easing out manual processes. We have sought help from computer programming for automation of manual registration system. With the introduction of computers, every aspect of our lives has been revolutionized. When used judiciously, computers can help us save time, secure our personal information, access the required information whenever and wherever required. Keeping all these positive points in mind, we have developed an Online Student Course Registration System for easily managing the semester registration process for the student in an institution. Ours is an advisory based system. In state agricultural universities the course allocation is advisory based and more complicated. The courses are assigned according to the skill set and industry requirements. Hence, in current scenario, automated system is required for course registration of students.
1. 1|Page
Project Report (Paper-410)
B. Sc (H) Computer Science (IV Semester)
Area: Software Engineering
ONLINE VOTING SYSTEM
FOR COLLEGE ELECTIONS
Ram Lal Anand College,
Benito Juarez Rd, South Campus, New Delhi
University of Delhi
Submitted By: Under Supervision
Shubham Nauriyal Dr. Vandana Gandotra
Kunal Sharma (Associate Professor)
2. 2|Page
CERTIFICATE
This is to certify that the project entitled, ―ONLINE
VOTING SYSTEM FOR COLLEGE ELECTIONS‖
has been done by:-
Kunal Sharmaand Shubham Nauriyalof Bachelor of
Computer Science (Hons.) during semester IV from Ram Lal
Anand College, University of Delhi under the supervision of
Dr. Vandana Gandotra.
Dr. Vandana Gandotra
3. 3|Page
ACKNOWLEDGEMENT
The Project was jointly undertaken by Shubham Nauriyal and Kunal
Sharma as their 4th Semester Software Engineering Project, under the
able guidance and supervision of Dr. Vandana Gandotra. Our primary
thanks goes to her, who poured over every inch of our project with
painstaking attention and helped us throughout the working of the
project. It‘s our privilege to acknowledge our deepest sense of gratitude
to her for her inspiration which has helped us immensely. We are
extremely grateful to her for her unstilted support and encouragement in
the preparation of this project.
4. 4|Page
TABLE OF CONTENTS
Acknowledgement
1. INTRODUCTION
1.1 Problem statement
1.2 Process model
2. REQUIREMENT ANALYSIS
2.1 Data Flow Diagram(DFD)
2.2 Data Dictionary(DD)
3. PROJECT MANAGEMENT
3.1 Function Points
3.2 Effort Estimation
3.3 Schedule Estimation
3.4 Risk Table
3.5 Timeline Chart
4. DESIGN ENGINEERING
4.1 Architectural Design
4.2 Data Design
4.3 Component Level Design
5. SOFTWARE TESTING
5.1 Computing Basis Path Testing
6. REFERENCES
5. 5|Page
1. INTRODUCTION
―ONLINE VOTING SYSTEM FOR COLLEGE ELECTIONS ‖ is an online voting
technique. In which student can give his her vote online without going to the college
on the day of elections. This will surely consume less time as whole the day is being
consumed on the day of elections.
There is a DATABASE which is maintained in which all the names of students with
complete information are stored. Each student is provided by a ―User ID‖ and
―Password‖ by using that ID and PASSWORD he she can use hisher vote. The scope
of this project will be that it will surely increase the voting percen tage in university
and college elections. Online Voting System will be fast enough to calculate the
results and reduce the human efforts, as all the things will be automated.
1.1 Problem statement
As the statistics shows that the percentage of polling on the day of elections is not satisfactory as
majority of students are not coming to vote and thinks is just as a wastage of time.
The manual voting system takes long time as there is a lot of paper work first and then human
effort is also there for counting of the votes.
Manual voting consumes almost 4-6 hrs (approx.) of every voter which is surely a headache.
The voting of the college elections will be done online such that there is no need to come at the
college on the time of elections and the student can vote from the home or from any other place.
A USER ID and PASSWORD will be provided to every student of the college, so that on the time
of elections they can easily login on the election link and can use his/her vote.
6. 6|Page
1.2 Process Model
A process model for software engineering is choosen based on the nature of the project and
application, the methods and tools to be used, and the controls and deliverables that are required.
The model is used to build the ―ONLINE VOTING SYSTEM‖
software is ―The Prototyping Model‖. The prototyping paradigm is: - ―Water fall model‖
Fig.1.2 Water fall Model
The water fall model is a software development model in which a systems development is viewed as
flowing downwards through the phases of the system development process. The waterfall
methodology is powerful, précised, and thorough. It has a number of phases that have to be
implemented in a sequential manner.
The phases which come under the waterfall model are as follows:-
1.Requirement Analysis
2.Design
3.Implementation
4.Testing
5.Maintenance
Advantages:
1.Good for large projects
2.Waterfall suits a principled approach to design
3.Waterfall divides the project into manageable areas
4.Waterfall separates the logical and physical
7. 7|Page
2. REQUIREMENT ANALYSIS
The basic function of requirement analysis is that it translates the ideas in the mind of the clients
into a formal document. Thus the output of this phase is a set of precisely specified requirements
which are complete and consistent. This document is called Software Requirement Specification.
In order to provide the user with a feeling of community, the following requirement should be
taken care:
Each user will have to create their own profile that they can log into each time they visit the
site.
If the user does not create or log in to an account they will only be able to browse
questions on the site, they will not be able to use any of the sites other functionalities.
In order to create an account the user must have a college email address (verified by
server).
Once they create an account the user will be able to Log in and out of the system, Upload a
picture, choose their status (i.e. Student, TA, Professor).
Upload information about themselves (name, AIM, college email, hobbies, etc.)
Select a college and area of study.
View and send private messages to other users through a custom messaging client.
Questions and Answer functionality: Users will be able to post new questions, able to answer
questions and post sources for their answers, search for questions containing key words, thumbs up
and thumbs down questions and responses Users can bookmark questions, send questions to
friends.
2.1 Data Flow Diagram (DFD)
A data flow diagram is a graphical representation that depicts information flow and the transforms
that are applied as data move from input to output.
The basic form of a data flow diagram, also known as a data flow graph or a bubble chart, The data
flow diagram may be used to represent a system or software at any level of abstraction.
As information moves through software, it is modified by a series of transformations. A data flow
diagram is a graphical representation that depicts information flow and the transforms that are
applied as data move from input to output. The basic form of a data flow diagram, also known as a
data flow graph or a bubble chart. DFD is an abstract description of the system. The data flow
diagram may be used to represent a system or software at any level of abstraction.
DFDs may be partitioned into levels that represent increasing information flow and functional
detail. Therefore, the DFD provides a mechanism for functional modeling as well as information
flow modeling. DFDs are very useful in understanding a system and can be effectively used during
analysis.
DFDs can be hierarchically organized, which helps in progressively partitioning and analyzing
large systems. Such DFDs are called leveled DFDs. Context diagram is a diagram in which the
entire system is treated as a single process and all its inputs, outputs, sinks, and sources are
identified and shown.
8. 8|Page
USERNAME/ VOTING STATUS
LOG IN PASSWORD LOG OUT
PROCESS
Fig.2.1 (a) level 0 DFD
COLLEGE
DATABASE COLLEGE
STUDENT DETAILS VOTING
DATABASE
VOTER Authentication
AUTHENTICATION
successful
VOTING
LOG IN
PROCESS
Username/ Voting
password done
unsuccessful
HOME
LOG OUT
PAGE
Receipt
USER USER
Fig.2.1 (b) level 1 DFD
2.2 Data Dictionary (DD)
The data dictionary is an organized listing of all data elements that are pertinent to the system, with
precise, rigorous definitions so that both user and system analyst will have a common
understanding of inputs, outputs, components of stores and intermediate calculations.
Symbols used ‗+‘ represents composition, ‗|‘ means selection and ‗*‘ means repetition.
9. 9|Page
Username = Name|Digit
Name = First + Middle + Last
First = [a|b|c_ _ _ _ _ _ _|z|A|B|C_ _ _ _ _ _|Z]*
Middle = [a|b|c_ _ _ _ _ _ _|z|A|B|C_ _ _ _ _ _|Z]*
Last = [a|b|c_ _ _ _ _ _ _|z|A|B|C_ _ _ _ _ _|Z]*
Digit=[0|1|2|3|_ _ _ _ _ |9]*
Successful = Done
Unsuccessful = Not Done
Authenticated = Done
Status = Yes/No
Receipt = [Code] + digit + digit + digit + digit + Name
Password = [word] | digit
Word = [0|1|2|3|_ _ _ _ _|9]*
Fig.2.2 Data Dictionary (DD)
3. PROJECT MANAGEMENT
Project management involves the planning, monitoring, and control of the people, process, and
events that occur as software evolves from a preliminary concept to an operational
implementation. Project managers plan, monitor, and control the work of a team of software
engineers. Effective software project management focuses on the four P‟ s: people, product,
process, and project.
3.1 Function Points
Function-oriented software metrics use a measure of the functionality delivered b y the application
as a normalization value. Since, ―functionality‖ cannot be measured directly; it must be derived
indirectly using other direct measures. Function points are computed by completing the table 4.1.
Five information domain characteristics are determined and counts are provided in the appropriate
table location. Information domain values are defined in the following manner:
Number of user inputs:Each user input that provides distinct application oriented data to the
software is counted. Inputs should be distinguished from inquiries, which are counted separately.
Number of user outputs: Each user output that provides application oriented information to the
user is counted. In this context output refers to reports, screens, error messages, etc. Individual data
10. 10 | P a g e
items within a report are not counted separately.
Number of user inquiries:An inquiry is defined as an on-line input that results in the generation
of some immediate software response in the form of an on-line output. Each distinct inquiry is
counted.
Number of files: Each logical master file (i.e., a logical grouping of data that may be one part of a
large database or a separate file) is counted.
Number of external interfaces:All machine readable interfaces (e.g., data files on storage media)
that are used to transmit information to another system are counted.
Table 3.1 Weighting factor
Measurement factors Count Simple Average Complex
Number of user inputs 2 3 4(2) 6 8
Number of user output 2 4 5(2) 7 10
Number of user inquiries 3 3 4(3) 6 12
Number of internal logical files 1 7 10(1) 15 10
Number of external interface files 2 5 7(2) 10 14
Count total 54
The Fi (i = 1 to 14) are "Complexity Adjustment Values" based on responses to the
following questions:
1. Does the system require reliable backup and recovery? 5
2. Are data communications required? 5
3. Are there distributed processing functions? 3
4. Is performance critical? 4
5. Will the system run in an existing, heavily utilized operational environment? 4
6. Does the system require on-line data entry? 5
7. Does the on-line data entry require the input transaction to be built over multiple? 3
5
8. Are the master files updated on-line?
1
9. Are the inputs, outputs, files, or inquiries complex? 1
10. Is the internal processing complex? 2
11. Is the code designed to be reusable? 3
12. Are conversion and installation included in the design? 5
13. Is the system designed for multiple installations in different organizations? 5
11. 11 | P a g e
14. Is the application designed to facilitate change and ease of use by the user?
Once these data have been collected, a complexity value is associated with each count.
Organizations that use function point methods develop criteria for determining whether a particular
entry is simple, average, or complex. To compute function points (FP), the following relationship
is used:
FP = count total *[0.65 + 0.01 *Σ (Fi)]
= 54*(0.65 + 0.01*51)
=54*1.16
=62 (approx.)
Where count total is the sum of all FP entries obtained from Figure.
3.2 ESTIMATING EFFORTS
Barry Boehm introduced a hierarchy of software estimation models bearing the name COCOMO,
for COnstructive COst MOdel. The original COCOMO model became one of the most widely used
and discussed software cost estimation models in the industry. The COCOMO II application
composition model uses object points.
The object point is an indirect software measure that is computed using counts of the no. of screens
(user interface), reports and components likely to be required to build the application. Each object
instance is classified into one of three complexity levels using criteria suggested by Boehm.
Once complexity is determined, the number of screens, reports, and components are weighted. The
object point count is then determined by multiplying the original number of object instances by the
weighting factor in and summing to obtain a total object point count. When component-based
development or general software reuse is to be applied, the percent of reuse (%reuse) is estimated
and the object point count is adjusted:
NOP = (object points) x [(100 -%reuse)/100],
where NOP is defined as new object points.
To derive an estimate of effort based on the computed NOP value, ―productivity rate‖ must be
derived.
PROD = NOP/person-month
Table 3.1 presents the productivity rate for different levels of developer experience and
development environment maturity. Once the productivity rate has been determined, an estimate of
project effort can be derived as
Estimated effort = NOP/PROD
Object type No. of objects Complexity Weight Count
Simple Medium Difficult
Screen 4 1(2) 2(2) 3(1) 7
Report 2 2(2) 5(1) 8(0) 9
3GL component 2 10(2) 20
Object points sum 36
Table 3.2 Estimating object points
12. 12 | P a g e
Data used in estimating effort are:
(1) Object points is 36(taken from table 3.2)
(2) Estimated reuse is 36%
(3) Prod is 13 (average value taken)
NOP = Object points *[(100-reuse%)/100]
= 36*[(100-35)/100]
= 24
ESTIMATED EFFORT = NOP/PROD
= 24/13
= 2 person-months
Hence estimated effort of the project is 2 person-months.
3.3 ESTIMATING SCHEDULE
Putnam and Myers suggest a set of equations derived from the software equation. Minimum
development time is defined as
in months for > 6 months
Since project‘s time period is less than 6 months, the above equation cannot be applied.
An estimation model of the form:
E= (equation 1)
where E = effort in person-months or person-years
t = project duration in months or years
B = ―special skills factor‖
P = ―productivity parameter‖
Calculating development time for project, using equation 1 and effort calculated in section 3.2
2=
4
t =0.06
Hence estimated schedule of the project is 0.06 months.
3.4 RISK TABLE
A table provides a project manager with a simple technique for risk production. A risk table is
sorted by probability and impact to rank risks. A project team begins by listing all risks in the 1st
column of the table. This can accomplished with the help of the risk item checklist referenced.
Each risk is categorized in the 2nd column. The probability of occurrence of each risk is entered in
the next column of the table.
Next, the impact of each risk is assessed. Each risk component is assessed using the
characterization presented and an impact category is determine. The categories for each of the four
risk components-performance, support, cost and schedule-are averaged to determine an overall
impact value.
13. 13 | P a g e
Once the first four columns of the risk table have been completed, the table is sorted by probability
and by impact. High-probability, high-impact, risk-impact risks percolate to the top of the table and
low-probability risks drop to the bottom.
Table 3.4 Risk Table
Risk Category Probability Impact RMMM
Hacker attack TE 30% 1 Appoint experts team to
overcome the situation.
Environmental BU 30% 2 Replication to different data
factors centres.
Delivery deadline BU 50% 2 Increase the amount of resources
will be tightened available.
Staff ST 30% 2 Meet with experienced
inexperienced developer and experts of
projects.
Size estimates PS 60% 2 Check the modules and revise
may be the algorithm
significantly low
Staff turnover ST 60% 2 Meet with current staff to
will be high determine causes for turnover.
Assign the backup staff member
for every critical technologist.
Less reuse than PS 70% 2 Revise the components than to
planned be used.
Performance TE 20% 2 Consult the experienced
software makers.
Unavailability of BU 20% 3 Ensure that there is always an
team members emergency person who can
always take over the task assign
is not available.
Reviews may not BU 30% 3 Set dates for reviews for each
be conducted documentation.
regularly
Impact values: Category
1—catastrophic PS: product size
2—critical DE: Development environment
3—marginal ST: staff size
4—negligible
3.5 TIMELINE CHARTS
When creating a software project schedule, the planner begins with a set of task. If automated tools
are used, the work breakdown is input as a task network or task outline. Effort, duration, and start
date are then input for each task. In addition, tasks may be assigned to specific individuals. A
14. 14 | P a g e
timeline chart, also called a Gantt chart, is generated. A timeline chart can be developed for the
entire project.
Timeline depicts a part of a software project schedule that emphasizes. All project tasks are listed
in the left-hand column. The horizontal bars indicate the duration of each task. When multiple bars
occur at the same time on the calendar, task concurrency is implied. The diamonds indicate
milestones. Once the information necessary for the generation of a timeline chart has been input,
the majority of software project scheduling tools produce project tables—a tabular listing of all
project tasks, their planned and actual start- and end-dates, and a variety of related information.
Jan 2013 Feb 2013 Mar 2013 Apr 2013
ID Task Name
1/13 1/20 1/27 2/3 2/10 2/17 2/24 3/3 3/10 3/17 3/24 3/31 4/7 4/14 4/21 4/28
1 Identify needs and benefits
2 Meetings with customer
3 identify needs and project constraints
4 Establish product statement
5 Describe process model
6 Milestone : product statement defined
7 Define function inputs and outputs
8 Document FIO
9 Review FIO with customers
10 Milestone : FIO defined
11 Start managing the project
12 Compute function points
13 Estimate the efforts of projects
14 Estimate the schedule of project
15 Make the timeline chart
16 Perform risk analysis
17 Milestone : project is managed
18 Define the functions behaviour
19 Describe the design of module
20 Describe attributes of module
21 Write pseudocode of module
22 Milestone : FIO design complete
23 Computing basis path set
24 Milestone : testing complete
Fig.3.5 Timeline chart
15. 15 | P a g e
4. DESIGN ENGINEERING
The design of a system is essentially a blueprint or a plan for a solution for the system. A design
methodology is a systematic approach to creating a design approach, a system is viewed as a
transformation function, transforming the inputs to the desired outputs.
The design process for software systems often has two levels. At the first level the focus is on
deciding which modules are needed for the system, the specifications of these modules, and how
the modules should be interconnected. This is what is called the system design or top-level design.
In the second level, the internal design of the modules, or how the specifications of the module can
be satisfied, is decided. This design level is often called design to contain a more detailed
descriptionof the processing logic and data structures so that the design is sufficiently complete for
coding.
4.1 Architectural Design
For a function-oriented design, the design can be represented graphically
by structure charts. The structure of a program is made up of the modules of that program together
with the interconnections between modules. The structure chart of a program is a graphic
representation of its structure. In a structure chart a module is represented by a box with the
module name written in the box.
During design, Structured Design Methodology aims to control and influence the structure of the
final program. The aim is to design a system so that programs implementing the design would have
a hierarchical structure, with functionally cohesive modules and as few interconnection between
modules as possible.
The overall strategy is to identify the input and output streams and the primary transformations that
have to be performed to produce the output. High level modules are then created to perform these
major activities ,which are later refined. There are four major steps in this strategy:
16. 16 | P a g e
4.1.1. Restate the problem as a Data Flow Diagram
No extra inputs or outputs are required to be represented in data flow diagram so DFD remains
same as previous.
COLLEGE
DATABASE COLLEGE
STUDENT DETAILS VOTING
DATABASE
VOTER Authentication
AUTHENTICATION
successful
VOTING
LOG IN
PROCESS
Username/ Voting
password done
unsuccessful
HOME
LOG OUT
PAGE
Receipt
USER USER
Fig. 4.1.1 Data flow diagram for Online Voting.
4.1.2 Identify the Most Abstract Input(MAI) and Most Abstract Output(MAO)
Data Elements
The most abstract input (MAI) data elements are those data elements in the data flow diagram that
are farthest removed from the physical inputs
but can still be considered inputs to the system. The most abstract input data elements often have
little resemblance to the actual physical data.
Most abstract output data elements (MAO) by starting from the outputs in the data flow diagram
and travelling toward the inputs. These are the data elements that are most removed from the actual
outputs but can still be considered outgoing. The MAO data elements may also be considered the
logical output data items, and the transforms in the data flow diagram after these data items are
basically to convert the logical output into a form in which the system is required to produce the
output.
17. 17 | P a g e
COLLEGE
COLLEGE DATABASE.
DATABASE.
VOTING DETAILS
STUDENT DETAILS
MOST
ABSTRACT MOST
INPUT ABSTRACT
OUTPUT
VOTER Authentication
AUTHENTICATION
successful
VOTING
LOG IN
PROCESS
Username/ Voting
password done
unsuccessful
HOME
LOG OUT
PAGE
Receipt
USER USER
Figure 4.1.2 DFD with Most Abstract Data Elements
4.1.3 First-level factoring
We first specify a main module, whose purpose is to invoke the subordinates. The main module is
therefore a coordinate module. For each of the most abstract input data items, an immediate
subordinate module to the main module is specified. Each of these modules is an input module,
whose purpose is to deliver to the main module the most abstract data item for which it is created.
Similarly, for each most abstract data item, a subordinate module that is an output module that
accepts data from the main module is specified. Each of the arrows connecting these input and
output subordinate modules is labelled with the respective abstract data item flowing in the proper
direction. Finally, for each central transform, a module subordinate to the main one is specified.
These modules will be transform modules, whose purpose is to accept data from the main module,
and then return the appropriate data back to the main module. The data items coming to a
transform module from the main module are on the incoming arcs of the corresponding transform
in the data flow diagram.
18. 18 | P a g e
ONLINE VOTING
SYSTEM
candidates
ls Ge
tai tr
List of
de ec
vote
eip
t
VOTING CONFIRMATION
LOGIN
PROCESS STATUS
Fig.4.1.3 DFD for first level factoring
4.1.4 Factoring of input, output and transform branches
The first-level factoring results in a very high level structure, where each subordinate module has a
lot of processing to do. To simplify these modules, they must be factored into subordinate modules
that will distribute the work of a module. Each of the input, output and transformation modules
must be considered for factoring. A subordinate input module is created for each input data stream
coming into this new central transform, and a subordinate transform module is created for the new
central transform. The new input modules now created can then be factored again, untill the
physical inputs are reached. The factoring of the output modules is symmetrical to the factoring of
the input modules.
The goal is to determine sub transforms that will together compose the overall transform and then
repeat the process for the newly found transforms, until we reach the atomic modules.
LOGIN
ils t
Username/
ta en
Password
Au
de stud
details
th
en
t
Ge
tic
at
ed
Username/
Details Authentication
password
Fig.4.1.4(a) Factoring of Input module
19. 19 | P a g e
Voting Process
V
s ot
t ca ele e fo
lis nd cte r
id d
at
es
Candidate list Voting
Fig.4.1.4(b) Factoring of Transform Module
CONFIRMATION
STATUS
Ge
te
tr
vo
ec
eip
t
SUCCESSFULLY
STATUS
VOTED
Fig.4.1.4(c) Factoring of Output Module
4.2 Data Design
Data Design translates the data objects defined in the analysis model into data structure that reside
within the software. The attributes that describe the object, the relationship between data objects
and their use within the program all influence the choice of data structures. At a higher level of
abstraction, data design may lead to the definition of the architecture for a database or a data
warehouse.
20. 20 | P a g e
FILE 4.2(a) STUDENT DETAILS
ATTRIBUTE DATA TYPE LENGTH
NAME
First Name Char 20
Second Name Char 20
Last Name Char 20
FATHER‘S NAME
First Name Char 20
Second Name Char 20
Last Name Char 20
ADDRESS Char 50
SEX Char 1
CONTACT NUMBER Int 12
PASSWORD Char 10
AGE Int 2
COURSE Char 20
USERNAME Char 20
ROLL NUMBER Int 10
ENROLLMENT NUMER Int 10
FILE 4.2(b) ADMINISTRATION
ATTRIBUTE DATA TYPE LENGTH
USERNAME Char 20
PASSWORD Char 20
FILE 4.2(c) LOGIN RELATED DETAILS
21. 21 | P a g e
ATTRIBUTE DATA TYPE LENGTH
STUDENT
First Name Char 20
Second Name Char 20
Last Name Char 20
USERNAME Char 20
PASSWORD Char 10
ROLL NUMBER Int 10
4.3 Component-level Design
Component-level design establishes the algorithm detail required to manipulate data structures,
effect communication between software components via their interfaces, and implement the
processing algorithms allocated to each component. Component-level design, also called
procedural design, occurs after data, architectural, and interface
designs have been established. The intent is to translate the design model into operational software.
But the level of abstraction of the existing design model is relatively high, and the abstraction level
of the operational program is low.
PSEUDOCODE:
OVS homepage_Load()
{
DBconnection.Open
Button Login.enable = true
Button Logout.enable = true
}
Button Login_click()
{ Flag =false
Username =InputBox(―Enter Your Name‖)
Password =InputBox(―Enter Your Password‖)
DBStudent_Details.MoveFirst
Do while DBStudent_Details.EOF=false
{ if
DBStudent_Details.Feilds(―Username‖)<>UsernameAnd
DBStudent_Details.Feilds(―Password‖)<>Password
then
DbStudent_Details.MoveNext
Else
22. 22 | P a g e
flag =true
EXIT do
End if
}Loop
if
flag =false
then
MsgBox(―Username or Password is not correct‖)
End if
if
flag =true
then
MsgBox(―Login as voter successful‖)
Voting Process()
End if
}
Voting Process_Load()
{ count_president1= 0
count_president2=0
count_president3=0
count_Vice_president1=0
count_Vice_president2=0
―Please select one candidate from each category‖
{―President Candidate:-‖
if Radiobutton.1=true then
{ President =1
count_president1++
}
else if Radiobutton.2=true then
President=2
count_president2++
}
else if Radiobutton.3=true then
{
President=3
count_president3++
}
End if
―Vice President Candidates:-‖
if Radiobutton.1=true then
{ Vice president =1
count_Vice_president1++
}
else if Radiobutton.2=true then
23. 23 | P a g e
{
Vice president =2
count_Vice_president2++
}
End if
Button Save_click()
{
DBVoting_Details.Feilds(―President‖) =President
DBVoting_Details.Feilds(―Vice President‖) =Vice President
}
MsgBox(―Voted Successfully‖)
}}
Button Logout_click()
{ unload OVShomepage
End
}
Voting Result Load()
{
If(count_president1> count_president2 && count_president1> count_president3)
{
MsgBox(―Selected President is ‖, president1)
}
Else if(count_president2> count_president1 && count_president2> count_president3)
{
MsgBox(―Selected President is ‖, president2)
}
Else
{
MsgBox(―Selected President is ‖, president3)
}
End if
If(count_Vice_president1> count_Vice_president2)
{
MsgBox(―Selected Vice President is ‖, Vice president 1)
}
Else
{
MsgBox(―Selected Vice President is ‖, Vice president2 )
}
End if
5. TESTING
24. 24 | P a g e
Testing is the process of running a system with the intention of finding errors. Testing enhances the
integrity of a system by detecting deviations in design and errors in the system. Testing aims at
detecting error-prone areas. This helps in the prevention of errors in a system. Testing also adds
value to the product by conforming to the user requirements.
The main purpose of testing is to detect errors and errorprone areas in a system. Testing must be
thorough and well-planned. A partially tested system is as bad as an untested system. And the price
of an untested and under-tested system is high.
The implementation is the final and important phase. It involves user-training, system testing in
order to ensure successful running of the proposed system. The user tests the system and changes
are made according to their needs. The testing involves the testing of the developed system using
various kinds of data. While testing, errors are noted and correctness is the mode.
5.1 FLOWGRAPH
1
2
3 4
5
6
7
8
9 10
11
12
Figure 5.1 Flowgraph
5.2 CYCLOMATIC COMPLEXITY
25. 25 | P a g e
Cyclomatic complexity is a software metric that provides a quantitative measure of the logical
complexity of a program.
In figure, the cyclomatic complexity can be computed by using the algorithm.
1. The number of regions correspond to the cyclomatic complexity
The flow graph has three regions.
2. Cyclomatic complexity , V(G), for a flow graph, G is defined as
V(G)=E-N+2 (where E= no. of edges, N= nodes)
V(G)=13 edges – 12 nodes + 2
V(G)= 3
3. Cyclomatic complexity, V(G), for a flow graph G, is also defined as
V(G)=P+1= 2+1= 3
Independent Programs Paths
An independent path is any path through the program that introduces atleast new set of processing
statements or a new condition. When stated in terms of a graph, an independent bpath must move
along atleast one edge that has not traversed before the path is defined.
A set of independent paths flow graph illustrated in figure is :
path 1: 1-2-4-1
path 2: 1-2-3-5-6-7-8-10-12
path 3: 1-2-3-5-6-7-8-9-11-12
26. 26 | P a g e
REFERENCES
● Software Engineering- A practitioner's Approach by Roger S. Pressman: 6th edition
McGraw Hill, 2005
● An Integrated Approach to Software Engineering by Pankaj Jalote:3rd edition
Springer, 2005