View
1.489
Download
1
Category
Preview:
DESCRIPTION
online national polling full documentation
Citation preview
Abstract
The purpose of this project is to change the election procedure that was been followed in our country since a number of decades. It aimed in developing online voting software that will maintain all the information about voters candidates and election commission.
This system will cut short very long procedure of voting that was in practice in our country .The candidate and voters can access this software very effectively. Any inconvenience in voters can be rectified in fraction of seconds. Voters will have direct contact with election commission so that any complaints and advices can be directly sent to election commission (EC).
In our voting software the voter will provide d with a login and password with the help of this he can access throughout the site .Until the day of polling it will act as a public site through which voters and candidates can login , register and get the required information that he needs to know about elections . But on the day of election it help us to access out votes.
This project also proposed an alternative system for illiterates to obtain their voter id, voting rights by providing a representative to help the people to make them understand the system and providing required information and support. We design interface and mechanism for offline voting.
In this system all process like issue of voter ids, selecting candidates, electing candidates, counting votes and announcing winners. Every eligible person and candidates will have their own profiles in which they can campaign, send messages, quote promises etc…,
This project supports both ONLINE AND OFFLINE POLLING so to ensure all sections of people can participate in voting . The main objective of this project is to make a voting procedure simple and efficient so that voting percentage in our country increases by minimizing the cost of polling .It can speed the counting of ballots and improve accessibility for desired voters
INDEX
1. Introduction
1.1 Scope
1.2 UML
1.3 Basic blocks of UML
1.4 Software Engineering activities
1.5 Rational Rose
2. Problem specification
2.1 Existing system
2.2 Proposed system
3. Requirement Elicitation
3.1 Functional Requirements
3.2 Non Functional Requirements
3.2.1 Software Requirements
3.2.2 Hardware Requirements
3.3 Use case Model description
3.3.1 Use case diagram
4. Analysis
4.1 Introduction to analysis
4.2 Interaction diagram
4.2.1 Introduction
4.2.2 Sequence diagram
4.2.3 Collaboration diagram
4.3 State chart
4.3.1 Introduction
4.3.2 State chart diagram
4.4 Class diagram
4.4.1 Introduction
4.4.2 Class diagram
5. System design
5.1 Introduction
5.2 Component and Deployment diagrams
5.2.1 Component diagram
5.2.2 Deployment diagram
6. Implementation
6.1 Introduction to Implementation
6.2 Introduction to Activity diagram
6.3 Activity diagram
7. Testing
8. Conclusion
9. Bibliography
INTRODUCTION
1.1 Scope:
The scope of this project is to provide an efficient online polling system in nation in order to increase the polling percentage and reducing the cost of polling. It provides platform for users, candidates and election commissioner for better interaction. It lessens malpractices in polling system.
1.2 Unified Modeling Language:
The UML is a graphical language for specifying, visualizing, documenting. All the three major stages of Object Oriented development such as OOA, OOD and OOP can make use of UML.
Advantages of modeling:
Makes easy to enhance, and manipulation of existing system.
Helps to carry in visualizing the system to be developed
Permits to specify the structure and behavior of the system
Used as a template to construct a proposed system
For capturing the requirements
1.3 Basic blocks of UML:UML has three basic blocks:1. Things 1.1 Structural things 1.2 Behavioral things 1.3 Grouping things 1.4 Annotational things
2. Relationships 2.1 Association 2.2 Generalization 2.3 Composition 2.4 Specialization 2.5 Aggregation 2.6 Inheritance
3. Diagrams 3.1 Static 3.1.1 Class/Object diagram 3.1.2 Component 3.1.3 Deployment 3.2 Dynamic 3.2.1 Use case diagrams3.2.2 Interaction 3.2.3 State chart
3.2.4 Sequence 3.2.5 Collaboration 3.2.6 Activity
1.4 Software Engineering Activities: 1. Requirement Elicitation 2. Analysis 3. System Design 4. Object Design 5. Implementation 6. Testing
Requirements Elicitation:During requirements elicitation, the client and developers define the purpose of the system. The result of this activity is a description of the system in terms of actors and use cases. Actors are those who interact with the system. Actors may be end users or the computers that interact with the system. Use case diagram will be drawn here.
Analysis:During analysis, developers aim to produce the model of the system that is correct, complete, consistent and unambiguous. The system will be modified from use cases into object model that completely describes the system. Class diagram, Object diagram, Interaction diagrams such as sequence diagram and collaboration diagram, State chart diagram will be drawn in this phase.
System Design:During the system design goals of the project and decompose the system into smaller subsystems that can be realized by the individual terms. This also involves strategy selection which includes access control policy, data flow policy, data management, hardware configuration, software configuration. Component diagram will be drawn here.
Object Design:During object design, developers define solution domain objects to bridge the gap between the analysis model and the hardware/software platform defined during the system design. The result of the object design activity is a detailed object model annotated with constraints and precise descriptions for each element.
Implementation:
During implementation, developers translate the solution domain model into source code. This includes implementing the attributes and methods of each object integrating all the objects such that they function as a single system.
Testing: During testing, developers find differences between the system and it models by executing the system with sample data sets. During unit testing, developers compare the object design model with each object and subsystem. During integration testing, combinations of subsystems are integrated together and compared with the system design model. During system testing, typical and exception cases are run though the system and compared with the requirements model. The goal of testing is to discover as many faults as possible such that they can be repaired before the delivery of the system.
1.5 Rational Rose:The Rational Rose scripting language is an extended version of the summit basic script language. The Rational Rose extensions to basic scripting allow you to automate Rational Rose specific functions, and in some cases perform functions that are not available through the Rational Rose user interface
The application’s method recommends the use of static and dynamic views of a logical model and a physical model to capture the in-process products of object-oriented analysis and design. Using the notation, the application enables you to create and refine these views within an overall model representing your problem domain and software system.
This overall model contains classes use cases, objects, packages, operations, component packages, components, processors, devices and the relationships between them. Each of these model elements possesses model properties that identify and characterize them. The notation provides graphical icons to represent each kind of model element and relationship.
A model also contains diagrams and specifications, which provide a means of visualizing the model’s elements and their model properties. Since diagrams are used to illustrate multiple views of a model, icons representing a model element can appear in none, one, or several of a model’s diagrams. The application therefore enables you to control which element, relationship, and property icons to appear on each diagram, using a facilities provided by its application window, and each specification in a specification window.
2. Problem Specification2.1 Existing System:
The existing polling system is a ballot or EVM system which is very complex and harder to maintain. It is very expensive and time consuming process. It doesn’t provide any interaction among public, candidate and election commission.
2.2 Proposed System:
This project supports both ONLINE AND OFFLINE POLLING so to ensure all sections of people can participate in voting . The main objective of this project is to make a voting procedure simple and efficient so that voting percentage in our country increases by minimizing the cost of polling .It can speed the counting of ballots and improve accessibility for desired voters.
3. REQUIREMENT ELICIATION
3.1 Functional Requirements:
Online registration for the voter id card which will be verified by the field officers (address and identity validation) and after receiving the field officer’s report only the registration will be validated and a voter id will be issued.
Those already having a voter id card can register for the online voting system, they will use their voter id as their username and a separate password will be used for secure authentication.
The election commission will be able to use the site to let the candidates register for their nomination on the site and their officers will validate it. Candidates can run their election campaign through forums and chat room.
A detailed profile of all the candidates constituency wise will be maintained so that voters can always know about the candidates of their area.
Once registered whenever polling is done in any area that area’s people will be able to vote for their favorite candidates.
Devise a mechanism that ensures duplicate voting is not happening. The system would show the current statistics as well on the website about how many
votes which candidates have got. Later when the voting ends the administrator can add the manual polling results to the
database to calculate the final result which will immediately be flashed on the site. Facilitate appropriate communication between all stakeholders-discussion
forum/chat/mail/polls. Candidates should be able to modify selected portions of their profile after registration
for nominations like the promises they make about the things to do after winning the elections, their previous works, their experiences and a comprehensive about me, etc.,
3.2 Non Functional Requirements: Secure access of confidential data. SSL can be used. 24x7 availability. Better component design to get better performance at peak time. Flexible services based architecture will be highly desirable.
3.2.1Software Requirements: Operating system : Windows XP Programming Language : Java Platform : J2SE, J2EE Server Soft-wares : Tomcat 5.0 Bank-End : Oracle-9i Editor : Rational Rose Software Browser used : Google Chrome 6.0 Documentation : Microsoft Word2007 Web server : UML, J2EE, XML, WEB2.0
3.2.2Hardware Requirements:
Client Side Processor : Pentium processor
RAM : 512MB Cache Memory : 512KB Hard Disk : 10GB Display : Super VGA(800*600)
Server Side Processor : Pentium processor RAM : 512MB Cache Memory : 512KB Hard Disk : 10GB Display : Super VGA (800*600)
3.3 Use Case Model Description:A use case description contains the following information:
Name of the use case Participating actors Entry condition Flow of events Exit condition
By using the above information we can get the overview of a use case diagram at a glance.
3.3.1 Use Case Diagram:A use case diagram contains the following:
Actors Use Cases Relationships
Actor:Actors represent system users. An actor is one who interacts with system and utilizes the services provided by the system. An actor may be a person or an external system or an organization.
Actor can be represented by:
Use Cases:
Actions performed by the actors to interact with system to get services. A use case represents a goal that an actor wants to achieve by interacting with our system. A use case represents sequence of events performed to achieve a task.
The basic shape of use case is an ellipse:
Relationship:Relationships tie things together. Relationships from actor to use case and between use cases are possible. Relationship from use case to actor is not possible.Relationships are two types:
Association Relationship Dependency relationship
Association Relationship: The relationship from actor to use case is called “Association Relationship”.It can be represented by straight line. It is a unidirectional.
Dependency Relationships: The relationship between two use cases is called “Dependency Relationship”.
It can be represented by dotted line. It is also unidirectional.………………>There are four dependency relationships:
Include Extends Uses Inheritance
Include: Include relationship is used when there is a continuous flow in between two use cases.
Extends: Extends relationship is used in exceptional cases. <<extends>>
Base Use Case Extinding UseCase
Online national polling Use case model description
S.No Name of The Use case
Participating actors
Entry condition
Flow of Events Exit condition
1. Voter id Registration
General public, Database
Enter Details Through this use case public register for voter ids.
Submit form
2. Validation of information
Field officer Login As Field officer
Field officer validates the registered application and provide voter id and password.
logoff
3. Profile login General public, admin
Voter id and password
By using username and password user logins into his personal profile.
Logoff.
4. Profile General public,field officer,admin
Login User will maintain his profile having personal details.
Logoff
5. Nomination of candidate
Registered Voter,Database
Enter Details Candidates will post their nominations by filling application form.
Submit
6. Issuing nomination
Admin Login Admin will authenticate candidate nomination
Logoff
7. Candidate profile
Candidate,Admin,Database
Login Candidate maintains his profile by providing personal and profile information.
Logoff
8. Registration for online polling
Registered Voter, Admin, Database
Enter details Registered voter will apply for online polling by filling application form and admin will provide username and password.
Submit.
9. Online polling Registered voter,Admin
Login Registered voter will participate in Voting and cast his /her vote.
Logoff
10. Registration of manual polling
Registered User,Field Officer.
Enter Details Registered Voter will apply for manual polling and field officer will authenticate and gives permissions.
Submit
11. Manual Voting Registered Voter, Represen-tative,EVM
Verify Registered Voter will participate in voting and cast his/her vote.
Logoff
12. Result Admin, Candidate
Login Admin will announce result. Logoff
home page
user login & profile
candidate login & profile
Election notification
important dates
constuencies & candidates
latest news
applying voter id link
public profile
candidate profile
registration for online polling link
registration for offline polling link
online polling link on polling date
server database
winners of the Election
general public
Main Use Case of Online National Polling
Personal information
Contact informationAddress verification
Application form with app ID
General Public
Home page
Voter ID reg
<<includes>>
Req for voter id card
<<includes>>
<<includes>>
Upload Nativity Certificate
Upload DOB Certificate
Submit
Finger Print
Upload photo
Field Officer
<<extends>>
<<extends>>
<<extends>>
Sub use case for online registration for the voter id card
rejectsend msg by mail to profile
invalid
send reason
homepage
validation of the application
enter the application id
view the application
validate the details of the user
authenticte the certification
valid
field officer
<<extends>>
<<extern>>
<<includes>><<includes>>
<<includes>>
<<includes>>
issue a voter id card with unique id
<<includes>>
admin
inform the client
<<includes>>
Sub use case for validation of information by field officer
Register for voter ID
invalid
Welcome note
Web Home Page
Sign In
<<includes>
gen public
Voter ID and password
<<includes>>
<<extends>>
<<valid>>
admi
<<extends>>
Sub use case for profile login of general public
photoperson Adress
Edit deletechange
cancel
<<includes>> <<includes>> <<includes>> <<extends>>
savecancel
Search
My Profile
<<includes>> <<includes>>
Candates in Constuency
Post Quest to candate
chat
general public
Message
Admin<<includes>>
<<extends>>
<<extends>>
Name,party,sign
Information of candiate
<<includes>>
<<includes>>
Sub use case for the profile of general public
Independent
full Nomination
Take fringer prints Digital sign
<<includes>>
Type of Nomination with party
full Nomination form
<<includes>>
candiate
Login
Post Nomination
<<includes>>
<<includes>>
Upload the letter/ticket from party president
Upload the copy of Income certificate
<<includes>>
upload DB,voter ID nativity certificate
Enter the voter ID's of candiates supporting
<<includes>>
Fringer prints &signature of candiate
submit
admin
<<includes>>
<<extends>>
Sub use case for nominating the candidates
Independent
full Nomination
Take fringer prints Digital sign
<<includes>>
Type of Nomination with party
full Nomination form
<<includes>>
candiate
Login
Post Nomination
<<includes>>
<<includes>>
Upload the letter/ticket from party president
Upload the copy of Income certificate
<<includes>>
upload DB,voter ID nativity certificate
Enter the voter ID's of candiates supporting
<<includes>>
Fringer prints &signature of candiate
submit
admin
<<includes>>
<<extends>>
Sub use case for nomination of candidate
Nomin ID
Indipendent
send message to renominate
Invalid
Database
search Nomination<<extends>>
validate the info of supporters
<<extends>>
fringer prints & digital sign
<<extends>>
independent
Receive the Nomination
Validate the Nominate Details
<<extends>>
check and Autheticate the Certificate provison
<<includes>>
E.C.O
confirm Nomination
provide the Nomin ID & pswd to the Nominate by
confirm the Nomination
Allocate sign to candiate
<<includes>>
candiate
Sub use case for checking the Nominations of Candidates & issuing the Clearance
personal info Address & contact infophoto
change save
Edit
cancel save
current
previous political states
previous
party,contesting forscat,on sign,constiency
add new dont save
save
view
Edit
delete
add new
view
compose
save clear
Edit save
don't save
delete posts
Repulation in public,Events participates
promises made
search people
profile
political carrier
political messages during compaiging
Answer the public Q/A
candiate
chat room
admin
<<includes>>
<<includes>>
<<includes>>
<<includes>><<includes>>
<<extends>>
<<includes>><<extends>>
<<extends>><<includes>>
<<includes>> <<extends>>
<<inclides>>
<<includes>>
<<includes>>
<<includes>>
<<extends>>
<<includes>>
<<extends>>
<<includes>><<includes>>
<<includes>>
<<includes>><<includes>>
<<extends>>
<<includes>><<includes>>
<<includes>>
Sub use case for the profile of nominated candidate.
fill reg form
okcancel
obtain reg form
Login
Type of voting
online voting
Enter voter ID
submit
validate the user details
provide a link by sending Email
select on link
Enter voter ID
select Date of voting
issue user Name,password
General public
store voter ID in DB
admin
<<includes>>
<<includes>>
<<extends>> <<extends>>
<<includes>>
<<includes>><<extends>>
Sub use case for public registration for online polling
invalid
if not received pswdResend
invalid
invalid
candiate list,select the candiate
submit vote
<<includes>>
Resubmit
vote casted
gen public
Enter into polling site
voter ID,pswd<<extends>>
Display list of candiates
<<includes>>
participate in voting
Enter user name,pswd
<<extends>>
send new pswd to Email
<<valid>>
<<extends>>
Enter username,voterID,new pswd
<<extends>>
<<includes>>
Deactivate voter ID
admin
<<includes>>
Sub use case for Online polling at the time of voting
online
public
printcancel
Enter VID
Registration for polling
Manual
Fill the application
submit
validate
issue the booth no & address
Field officer
take VID
record VID as manual
ECO
<<includes>>
<<extends>><<includes>>
<<includes>>
<<includes>>
<<includes>><<extends>>
Sub use case for public registration for manual polling
Record VID
Representative
Invalid
Show the candidate list with symbols
beep sound
already voted
show VID
show Print out
Provide access to voting device
public
ask for Finger print
cast Finger print
<<include>>
<<extends>><<includes>>
cast vote<<extends>>
beep sound &succes msg
<<includes>>
Exit
<<includes>>
lock voting device
Voting Device Server
Sub use case for general public manual voting
compare the votes of all candidates
Database vote of Online
Database votes in offline
select the Candidate
Retrive the votes polled in online
retriebve the votes polled in Offline/Manual
add votes of Online and Offline
ECO
Server
declare winner
display on the website
<<includes>>
send E-mail to winner
<<extends>>
Sub use case for counting of votes
4. ANALYSIS
4.1 Introduction to Analysis:Analysis focuses on producing a model of the system called the analysis model, which is correct, complete, consistent, and verifiable. Analysis model is composed of three individual models.
Functional model Analysis object model Analysis dynamic model
The functional model is represented with use case diagrams, the object model with class diagrams, and the dynamic model with state chart and sequence diagrams.
Concepts:Analysis object models and dynamic modelsEntity, boundary and control objectsRelationships
Generalization Relationship:
A generalize relationship between the classes shows that the sub class shares the structure or behavior defined in one or more super classes. Use a generalize relationship to show a “is-a” relationship between classes.Specialization Relationship:
An association provides a pathway for communication. The communication can be between use cases, actors, classes or interfaces. Associations are the most general of all relationships and consequentially the most semantically weak. If two objects are usually considered independently, the relationship is an association.Aggregate Relationship:
Use the aggregate relationship to show a whole and part relationship between two classes.Navigation:
It is unidirectional association.
4.2 Interaction diagram:
4.2.1 Introduction to Interaction Diagram:
Both sequence and collaboration diagrams are kinds of interaction diagrams. An interaction diagram shows an interaction, consisting of a set of objects or roles, including the message that may be dispatched among them.
A sequence diagram is an interaction diagram that emphasizes the time ordering of messages. A collaboration diagram emphasizes the organization of objects that participate in an action.
Interaction diagrams are used in two ways:
1. To model flows of control by time ordering.2. To model flows of control by organization.
4.2.2 Sequence Diagram:
It displays the interaction between objects that focus on the message from a temporal stand point. The sequence diagram representation focuses on expressing interaction. An object is represented by a rectangle and its life line is represented by a vertical bar and dashed line.
Sequence diagram show interaction between objects in a system and also specify in which those interactions happen and add the dimension of time to your diagram.
In sequence diagram we only talk about time and ordering but not about duration of time.
In sequence diagram objects are sometimes referred to as participants.
We say that objects communicate in a sequence diagram but this doesn’t mean in strict sense that these objects should be instance of the class.
Objects in sequence diagrams interact by sending messages to each other. Activation bar show the execution of any operation that the object carries out.
Sequence diagram contains;
Object Swim lance/life line Message passing
1. Object message2. Return message3. Self message
Message icons:
A message icon represents the communication between objects indicating that an action will follow. The message icon is a horizontal , solid arrow connecting two lifelines together.
1: message icon with sequnce no
Lifeline:
Each object appearing on a sequence diagram contains a dashed ,vertical line , called a lifeline ,which represents the location of an object at a particular point in time .The lifeline also serves as a place for messages to start and stop and a place for the focus of control to reside.
:object
:user :Display :server :App DB :pin DB
1: Login page
2: Enter Username &pswd 3: Forward to server4: send to pin DB
5: validation
6: ok7: show8: show home page
9: click on valid App
10: App ID
11: Enter App ID 12: Forward to server13: send to App DB
14: Access App
17: Take App ID
15: send to Display
16: show
18: Ask for Certificates19: send to server 20: forward
21: Retrive
22: Resend23: 24: show
25: Validate Certificates
26: issue Voter ID 27: Req store to DB28: Req store voter ID with App ID
29: store voter ID with App ID
30: inform to client
Sequence diagram for validating information of Field Officer
:USER :DISPLAY :SERVER :PIN DBN
1: show login pg
2: enter username &password3: forward to server
4: check in db
5: validate
6: yes
7: display home page
8: welcome note
Sequence diagram for login profile of general public
Sequence Diagram for checking Nomination of Candidate
:USER :DISPLAY :SERVER :DB :PIN DB :NOM CANDIADTE
1: admin login2: req to server
3: send to pin db
4: validate
5: search nomination6: send to server
7: forward to db
8: retrive
9: found10: forward
11: show12: validate
13: serch suportes id 14: forward 15: send to db16: retrive
17: send to server
18: forward19: show
20: confirm nomination 21: forward
22: processs usr name & password
23: send username &pass word
24: store data
:USER :DISPLAY :SERVER :DB :PIN DB :NOM CAND
1: see req sign2: send sign to server
3: check for avilability
4: available5: show avilable
6: allocate sign 7: send to server8: store to db
9: stored
10: send nom candidate11: send message
Sequence Diagram for checking Nomination of Independent Candidate
:USER :DISPLAY :SERVER :APP DB :PIN DB :ADMIN
1: home page2: login
4: send to server3: forward to pin db
5: validate
6: valid7: redirect to reg
8: reg page
9: select type of polling
10: select online
11: ask for id
12: enter id13: forward14: retrive from app db
15:
16: retrive17: send
18: show
19: fill
20: submit 21: forward to serve 22: send to admin23: validate
24: provide a new link
25: redirect
26: show link
28: click on link
27: redirect
29: new page30: ask for vid
31: enter vid32: forwaerd to server 33: send to pindb
34: validate
35: send to server36: select date
37: date selected 38: forward39: verify
40: issue username &password
41: generate42: send mail
43: req successful
Sequence Diagram for public registration for Online Polling
:USER :DISPLAY :SERVER :PIN DB :CAN DB :VOTING DB
1: enter into polling site
2: voter id &pswd
3: enter voter id &pswd4: send to server 5: send to pin db
8: validate
9: valid
7: forward
6: display candidate list
10: participate in voting
11: show login page
12: enter user name &passward13: forward 14: send to pin db
15: validate
16: ok
17: generate new user name and password
18: send link
19: display link
20: select link
21: open new window
22: ask username &password
23: enter 24: forward 25: check26: validate
27: ok
28: display can list
29: disply
30: select candidate
31: submit
32: confirm
33: yes 34: redirect
35: validate36: send to db
37: update db
38: update ok
40: deactivate voter id
39: sucess message
Sequence Diagram for online Polling Day Voting
:USER :DISPLAY :SERVER :APP DB :PRINTER:PIN DB
1: enetr voter id 2: forward 3: send to validate4: validate
5: ok6: display
7: polling reg
8: manual p[olling 9: forward10: req to retrive
11: retrive
12: ok13: show app
14: display
15: fill app
16: submit 17: to server 18: validate19: verify
20: ok
21: enter no tro pin db
22: issue boot no.23: display
24: print 25: forward req 26: print card
27: genertate recepit
28: take printout
Sequence Diagram for general public registration for Manual Polling
:USER :REPRESENTATIVE
VOTING DEVICE
SERVER :DB
1: show voter id
2: showprint out3: send to server
4: record voter id
5: ok6: proviede aceess to device
7: acess provided8: ask for finger print
9: cast fingerprint 10: send to server11: validate finger print
12: valiodate
13: valid
14: show can list15: retrive list
16: give access17: display list
18: cast vote 19: send to server
20: validate21: success
22: beep sound &sucess message
23: add vote to db
24: lock voting device
25: voting device locked
Sequence Diagram for General Public during the Voting
:ECO USER :SERVER :ONLINE VOTES
:OFFLINE VOTES
:CANDIADTE
1: select candate
2: votes polled3: retrive on line votes
4: retrive
5: send to server6: retrive offline
7: retrive
8: send rto server
9: volidate and add votes10: display
11: req to compare12: compare votes
13: publish on website14: declare winner
15: send email to server 16: send to email
Sequence Diagram for the Counting of Voting
4.2.3 Collaboration Diagram:
Collaboration diagrams and sequence diagrams are alternate representations of an interaction. A collaboration diagram is an interaction diagram that shows the order of message that implement an operation or a transaction. A sequence diagram shows object interaction in a time-based sequence.
Collaboration diagrams show objects, their links, and their messages. They can also contain simple class instances and class utility instances. Each collaboration diagram provides a view of the interactions or structural relationships that occur between objects and object- like entities in the current model.
Collaboration diagrams contain icons representing objects. You can create one or more collaboration diagrams to depict interactions for each logical package in your model. Such collaboration diagrams are themselves contained by the logical package enclosing the objects they depict.
An object specification enables you to display and modify the properties and relationships of an object. The information in a specification is presented textually. Some of this information can also be displayed inside the icons representing objects in collaboration diagrams.
:user
:App DB
:Display
:server :pin DB
5: validation
14: Access App21: Retrive
29: store voter ID with App ID
25: Validate Certificates
1: Login page2: Enter Username &pswd
9: click on valid App11: Enter App ID
18: Ask for Certificates26: issue Voter ID30: inform to client
8: show home page10: App ID16: show24: show
3: Forward to server12: Forward to server
19: send to server27: Req store to DB
7: show15: send to Display
23:
4: send to pin DB
6: ok
13: send to App DB20: forward
28: Req store voter ID with App ID
17: Take App ID22: Resend
Collaboration diagram for validating the information of Field Officer
:USER :DISPLAY
:SERVER
:PIN DBN
5: validate
1: show login pg2: enter username &password
8: welcome note
3: forward to server
7: display home page
4: check in db
6: yes
Collaboration diagram for Profile Login for General Public
:USER :DISPLAY :SERVE
R
:DB
:PIN DB
:NOM CANDIADTE
4: validate
8: retrive16: retrive
12: validate 22: processs usr name & password24: store data1: admin login
5: search nomination13: serch suportes id
20: confirm nomination
11: show19: show
2: req to server6: send to server
14: forward21: forward
10: forward18: forward
3: send to pin db7: forward to db15: send to db
9: found17: send to server
23: send username &pass word
Collaboration diagram for checking nomination of candidate
:USER :DISPLAY
:DB
:SERVER
:NOM CAND
3: check for avilability
9: stored
1: see req sign6: allocate sign
5: show avilable
2: send sign to server10: send nom candidate
4: available
7: send to server
8: store to db
11: send message
Collaboration diagram for nomination of independent candidate
:PIN DB
:USER :DISPLAY
:SERVER
:APP DB
:ADMIN
5: validate34: validate
15:
19: fill
23: validate39: verify25: redirect
41: generate
1: home page8: reg page
9: select type of polling11: ask for id
18: show30: ask for vid
2: login10: select online
12: enter id20: submit
27: click on link31: enter vid
3: send to server13: forward
21: forward to serve28: redirect
32: forward to server
7: redirect to reg17: send
29: new page4: forward to pin db33: send to pindb
6: valid35: send to server
14: retrive from app db
16: retrive
22: send to admin38: forward
24: provide a new link40: issue username &password
26: show link36: select date42: send mail
43: req successful
37: date selected
Collaboration diagram for public registration of online polling
:USER
:PIN DB
:DISPLAY
:SERVER
:VOTING DB
6: validate15: validate26: validate
17: generate new user name and passward38: validate
42: deactivate voter id
40: update db
:CAN DB
29: retrive cand list
4: send to server13: forward24: forward37: redirect
8: forward18: send link
31: show cand list5: send to pin db14: send to pin db
25: check7: valid16: ok27: ok
39: send to db
41: update ok
43: success message
28: req cand list
30: send to server
1: enter into polling site3: enter voter id &pswd10: participate in voting
12: enter user name &passward20: select link
23: enter33: select candidate
34: submit36: yes
2: voter id &pswd9: display candidate list
11: show login page19: display link
21: open new window22: ask username &passward
35: confirm32: display list
Collaboration diagram for online polling day voting
:PRINTER
:USER
:DISPLAY
:SERVER
:APP DB
:PIN DB
4: validate
11: retrive19: verify
21: enter no tro pin db
27: genertate recepit
28: take printout1: enetr voter id
8: manual p[olling15: fill app16: submit24: print
7: polling reg14: display23: display
2: forward9: forward
17: to server25: forward req
6: display13: show app
22: issue boot no.
10: req to retrive18: validate
12: ok20: ok
3: send to validate
5: ok
26: print card
Collaboration diagram for registration for manual polling
:REPRESENTATIVE
:USER VOTING DEVICE
SERVER
:DB
4: record voter id20: validate
12: valiodate15: retrive list
25: voting device locked
3: send to server6: proviede aceess to device5: ok
1: show voter id2: showprint out
8: ask for finger print17: display list
22: beep sound &success message
9: cast fingerprint18: cast vote
16: give access
7: acess provided21: success
24: lock voting device
10: send to server19: send to server
11: validate finger print14: show can list23: add vote to db
13: valid
Collaboration diagram for general public voting
:SERVER
:ECO USER
:CANDIADTE
:ONLINE VOTES
:OFFLINE VOTES
4: retrive 7: retrive
9: volidate and add votes12: compare votes
3: retrive on line votes
5: send to server
6: retrive offline
8: send rto server
16: send to email
1: select candate2: votes polled
11: req to compare15: send email to server
10: display13: publish on website
14: declare winner
Collaboration diagram for counting of votes
4.3 STATECHART DIAGRAM:
4.3.1 INTRODUCTION TO STATECHART DIAGRAM:
A state chart diagram is also called “state transition diagrams”. It is used to identify the listed objects. It is going to represent how one object is going to change the states to complete a single use case.
A state diagram shows a state machine, consisting of states, transitions, events and activities. A state diagram shows the dynamic view of an object. They are especially important in modeling the behavior of an interface, class, or collaboration and emphasize the event –ordered behavior of an object, which is especially useful in modeling reactive systems.
State transition diagram provide a way to model of the various states in which the class diagrams show a static picture of the classes.
Elements in state chart diagram are:
State: Means the range of values for all properties of an object.
It is represented by
State
Transition: A state transition indicates that an object in the source state will perform certain specified actions and enter the destination state when a specified event occurs or when certain conditions are satisfied. A state transition is a relationship between two states, two activities or between an activity and a state.
It is represented by
State1
State2
Start state: The starting state is represented by the symbol
End state: The ending state is represented by the symbol
State chart diagram is used to model the various states in which an object can exist. While a class diagram shows the static picture of classes and their relationships. A state chart diagram shows the behavior of an object.
4.3.2 STATECHART DIAGRAMS OF ONLINE NATIONAL POLLNG:
home page
voter id registration
request for voter id
application form
fill the form
upload photo
take finger print
upload DOB and Nativity
Submit
select voter Id registration
click
return application form
save
State chart diagram for Online registration for voter id
home page
enter apps Id
view application
valid
issue voter ID card with unique number
sent success message
select validation
retrive form
validate the user
authenticate the forms
inform to client by sending sms
State chart diagram for validation of information
home page
enter apps Id
view application
valid
issue voter ID card with unique number
sent success message
select validation
retrive form
validate the user
authenticate the forms
inform to client by sending sms
State chart diagram for User login
login
post nomination
fill nomination form
upload letter provided by party
upload DOB,voter Id,Nativity
enter voter Id of supporting candidates
finger prints and sign of the candidates
submit
update database
retrive nomination form
submit
write to database
State chart diagram for nominating candidate
search nomination Id
retrive nomination form from apps D/B
validate details
authenticate certificates provided
verify finger print
confirm nomination
provide nomination id and password
confirm nomination Id
send message to the nominated candidate
enter the nomination id
upload certificates
retrieve fingerprints
if valid
State chart diagram for accepting nomination of candidate
login
type of vote
online voting
registration form
submit
provide link
select link
select date of voting
store to D/B
enter username and password
enter voter Id
fill form
validation
enter voter id number
issue username and password
select
State chart diagram for public registration for online voting
enter into polling site
login
display candidate list
enter username and password
select candidate to vote
submit
resubmit
deactivate the voter id
valid
select participate in voting
asks for resubmission
enter username and password s
validate and send new password
State chart diagram for online polling at time of polling
enter voter id
select manual regitration
fill application
validation
issue booth number and address
take printout
record the votes in database
validate
check all fields the felds the filled or not
retrive application
State chart diagram for registration for manual polling
4.4 CLASS DIAGRAM:
4.4.1 INTRODUCTION TO CLASS DIAGRAM:
It’s an UML notation representing the structure of the system in terms of objects, classes, attributes, operations and associations .Class diagrams are used to represent object models during development.
Class diagrams address the static view of a system.
The class is designed according to the functional requirements of the user.
Class: A class is a description of objects that share the same attributes, operations , relationships and semantics.
A Class attribute specification:
A Class attribute specification enables you to display and modify the properties of a class attribute in the correct model.
To display a class attribute specification, first display a class specification. Tell me how to display a specification. On the class specification, click on the attribute tab. Double-click on an attribute name.
Defining a new attribute:
While on the attribute tab of the class specification, move the cursor to the body of the specification and right-click to display the shortcut menu. Click insert, an entry item is added. Double-click on the entry to display the attribute specification.
Class Diagram Representation:
Class nameAttributes
Oprations()
Access Adornment:
Public:
Public access means that the members of a class are accessible to all clients. This is the default access. You can also click on the public button in the access section of the relationship specification.
Protected:
Protected access means that the members of a class are accessible only to sub classes, friends, or to the class itself.
To apply a protected access adornment to a relationship, click on the protected button in the access section of the applicable relationship specification.
Private:
Private access means that the members of a class are accessible only to class itself or to its friends.
To apply a private access adornment to a relationship, click on the private button in the access section of the relationship specification.
Multiplicity:
The cardinality field specifies the number of expected instances of the class. You can set a specific cardinality value for the client class, supplier class or both. In case of relationship, this field indicates the number of links between each instances of the supplier class.Use the following syntax to express cardinality:
Value Description
n (default) Unlimited number of instances
1 One instances only
0...n Zero or more instances
1...n one or more instances
0...1 Zero or one instance
4.4.2 CLASS DIAGRAM OF ONLINE NATIONAL POLLING:
Offline Userint VIDchar candname
fillReg()getPrint()casteVote()
Voter machine database
int machineId
showCand()showSuccessmsg()addVote()rejectVote()takeFingerPrint()
Voting Databaseint VIDint candID
voterOnline()voterOffline()add()profile
char nameDate DOB
home()edit()change()update()postQuery()replyMsg()search()chat()
Nomination candidate Control
Online Userint VIDchar name
retrieveApp()selDate()submit()casteVote()
voter machine Control
Online User Login controlint VIDchar nameint PWD
sendLink()displayLink()
1
*
1
*
Field Officer Control
Nominated Userint VIDchar name
postNomination()viewProfile()addProfile()delPromises()update()delete()reply()
Election Commissionerchar nameint VID
login()getApp()validate()retrieveVotes()countVotes()addCand()remCand()
Candidate Database
int candIDchar candnameint appID
candName()change()update()add()
App databaseint appId
typeofApp()update()add()delete()
Field Officerint VIDchar name
verifyVID()acceptApp()issueVID()semdMsg()add()update()delete()save()
Passwordint usernameint PWD
forgetPWD()chanePWD()
*
1
*
1
Online Polling System
*
1
*
1
1
1
1
1
*
1
*
1
general user login control
Registrationint reqIDint AppID
getApp()edit()submit()
General Userint VIDchar nameDate DOB
candLogin()fieldOffLogin()reqVidReg()
5. SYSTEM DESIGN
5.1 Introduction to System Design:
System design performs the following activities:
1. Design the goals for subsystems from non functional requirements.
2. Decompose the system into subsystems.
3. Mention strategies for subsystems.
Strategies:
Hardware Software Global control flow Data structures(persistent data storage) Access control policy Boundary conditions
Start up, shutdown, exception handling mechanisms
5.2 Component Diagram:
Component diagrams provide a physical view of the current model. A component diagram shows the organizations and dependencies among software components, and executable components. These diagrams also show the externally-visible behavior of the components by displaying the interfaces of the components. Calling dependencies among components are shown as dependency relationships between components and interfaces on other components. Note that the interfaces actually belong to the logical view, but they can occur both in class diagrams and in component diagrams.
Component diagrams contain:
Component packages Components Interfaces Dependency relationships
Component Packages:
Component packages represent cluster of logically related components, or major pieces of your system. Component packages parallel the role played by logical packages for class diagrams. They allow you to partition the physical model of the system. Typically, a component package name is the name of the file system directory. A component package can have dependencies with other component packages, components, and interfaces.
The component package is a folder shaped icon:
Components:
A component represents a software module (source code, binary code, executable, DLL, etc.) with a well-defined interfaces. The interface of a component is represented by one or several interface elements that the component provides. Components are used to show compiler and run-time dependencies among software modules. They also show which components implement a specific class.
The component is represented by the following symbol:
Interfaces:
An interface specifies the externally-visible operations of a class and/or component, and has no implementation of its own. An interface typically specifies only a limited part of the behavior of a class or component.
Dependency Relationship:
A dependency relationship between two model elements in which a change to one model element will affects the other model element. Use a dependency relationship to connect model elements with the same level of meaning. Typically, on class diagrams, a dependency relationship indicates that the operations of the client invoke operations of supplier.
Component Diagram for Online National Polling:
Public: Registration, Login, Profile
Candidate: Registration, Login, Profile
Admin: ECO, Field Officer
Communication System
Polling Day: Offline, Online
Database: Candidate,User, Voting, Application, Constituency
5.3 Deployment Diagram:
A deployment diagram shows the configuration of run time processing nodes and the components that live on them. Deployment diagrams address the static deployment view of architecture.
A node typical hosts one or more artifacts. We can import and generalization relationships between packages. Graphically a deployment diagram is a collection of vertices and arcs.
Deployment diagram commonly contains:
Nodes Processors Devices Connections
Dependency and association in one of three ways:
1. To model embedded system.2. To model client and server system.3. To model fully distributed system.
Nodes:
Node is another name for an object in the model hierarchy. Nodes are displayed in the browser window. Each node has properties, which are displayed in the property view window when the node is selected in the browser.
Examples of nodes are classes, use cases, objects, operations, components, and diagrams.
Processors:
A processor is a hardware component capable of executing programs. Each processor must have a name. There are no constraints on the processor name because processors denote hardware rather than software entities.
It can be represented by the symbol
Processor
Devices:
A device is a hardware component with no computing power. Each device must have a name. Device names can be generic, such as modem or terminal.
It can be represented by the symbol
Device
Connections:
A connection represents some type of hardware coupling between two entities. An entity is either a processor or a device. The hardware coupling can be direct, such as an RS232 cable, or indirect, such as satellite-to-ground communication. Connections are usually bi-directional.
Deployment Diagram for online national polling:
Communication System
Server
Database
Client
Thumb impression machine
ARCHITECTURAL STYLES:
1. Repository Architecture:
In this, sub systems access and modify data from a single data structure called repository. Subsystems are relatively independent and interact only through the Repository
2. Model/View/Control Architecture:
In this, subsystems are classified into three different types:
Model subsystems are responsible for maintaining domain knowledge.
View subsystem is responsible for displaying it for user
Controller systems are responsible for managing the sequence of interactions with the user.
3. Client/Server Architecture:
A subsystem, the server provides services to the instances of other subsystems called the clients, which are responsible for interacting with the user. Control flow in the clients and the server is independent except for synchronization to manage requests to or to receive results.
4. Peer to Peer Architecture:
This is a generalization of the client/server architecture in which subsystems can act both as client and as server, in the sense that each subsystem can request and provide service. The control flow within each subsystem is independent from the others except for synchronization on requests.
5. Pipe and Filter Architecture:
Subsystem process data received from a set of input and send request to other subsystems via a set of outputs. The subsystems are called filters and the associations between the subsystems are called pipes.
6. OBJECT DESIGN
6.1 Introduction to Activity Diagram:
An activity diagram represents all main activities of the entire project. Use case only represents what project does. Activity checks whether the given action results to failure or success which leads to other activity or self activity.
There are two types of activities:
1. Parallel activity
2. Conditional activity
Parallel Activity:
There are two types of parallel activities:
1. Fork
2. Join
Fork: If the input activity is carried out then all the activities are performed but one at a time. It can be represented by
Join: If all input activities are carried out then output activity is done.
It can be represented by
Conditional Activity:
There are two types of conditional activities:
1. Merge
2. Branch
Merge: If any one of the input activities are carried out the output activity is done.
It can be represented by
Branch: If the input activity is carried out then only one output activity is performed.
It can be represented by
ACTIVITY DIAGRAMS FOR ONLINE NATIONAL POLLING:
Home page
VOTER ID Registration
view VID applications
Fill The Form
Validate
Upload DOB,Photo
Update VID Database
Issue VIDSubmit
Success message to VID user
Activity diagram for registering for voter id and validation
Home Page
Login Details
Login
WrongForget
Main Menu
Post Nomination
Fill Nomination Application
upload Party Letter, DOB,VID,Nativity
upload Finger Print,Signature
Submit
view Nomination Applications
Validate
verify and Confirm Nomination id,PWD
Send E-mail
Activity diagram representing flow activities during nomination
Home Page
Login Details
Login
Main Menu
Type of Vote
Display Candidate List
Select Manual
Reg Form
Enter provided UID,PWD
Validate
Submit Vote Candidate
Issue booth ID and Address
provide Link
Submit Take Printout
selects date of voting and store in database
deactivate Voting of Person
Record Completion of Voting of person
Activity Diagram for Polling Day
7. TESTING
A primary purpose of testing is to detect software failures so that defects may be uncovered and corrected. This is a non-trivial pursuit. Testing cannot establish that a product functions properly under all conditions but can only establish that it does not function properly under specific conditions. The scope of present software testing includes examination of code as well as examining the quality aspects of code: does it do what it is supposed to do and do what it needs to do. There are several different levels of testing that are done throughout the software development process. These are outlined in the table below:
Types of Tests Used:
TEST TYPE DESCRIPTION WHITE/BLACK BOXUnit Tests a small unit of a software application. White boxIntegration Tests the interaction of small modules of a
software application.White or black box
Acceptance Testing conducted by a user to verify that the system meets the acceptance criteria.
Black box
Regression Tests new functionality in a program. Regression testing is done by running all of the previous unit tests written for a program, if they all pass, then the new functionality is added to the code base.
White box
Functional and system
Verifies that the entire software system satisfies the requirements.
Black box
7.1 Unit Testing:
Unit testing involves the design of test cases that validate the internal program logic is functioning properly, and that program input produces valid output. All decision branches and internal code flow should be validated. It is the testing of individual software units of the application. It is done after the completion of an individual unit before integration. This is a structural testing, that relies on knowledge of its construction and is invasive. Unit tests perform basic tests at component level and test a specific business process, application, and/or system configuration. Unit tests ensure that each unique path of a business process performs accurately to the documented specifications and contains clearly defined inputs and expected results.
7.2 Functional test:
Functional tests provide systematic demonstrations that functions tested are available as specified by the business and technical requirements, system documentation, and user manuals.
Functional testing is centered on the following items:
Valid input : identified classes of valid input must be validated.
Invalid input : identified classes of invalid input must be rejected.
Functions : identified functions must be exercised.
Output : identified classes of application outputs must be exercised.
Systems/Procedures: interfacing systems or procedures must be invoked.
7.3 System test:
System testing ensures that the entire integrated software system meets requirements. It tests a configuration to ensure known and predictable results. An example of system testing is the configuration oriented system integration test. System testing is based on process descriptions and flows, emphasizing pre-driven process links and integration points.
7.4 Performance Test:
The performance test ensures that the output is produced within the time limits, and the time taken by the system for compiling, giving response to the users and request being send to the system for to retrieve the results.
7.5 Integration Testing:
Software integration testing is the incremental integration of two or more integrated software components on a single platform to produce failures caused by interface defects.
The task of the integration test is to check that components or software applications, e.g. components in a software system or-one step up-software applications at the company level-interact without error.
7.6 Acceptance Testing:
User Acceptance Testing is a critical phase of any project and requires significant participation by the end user. It also ensures that the system meets the functional requirements.
8. CONCLUSION
The purpose of the technology is to make voter free from the burden. This also provides us a chance to increase the voting percentage in general elections. It also provides a chance to voter to get clarify all the doubts he has directly from the Election Commission. The Election Commission can directly provide the election information to the voters. This will finally reduce the election burden and make the election procedure much simple.
9. BIBILOGRAPHY
Professional Java Server Programming Object Oriented Software Engineering by Allen H.Dutoit & Bernd Bruegge Object Oriented Development-Ali Bahrami Fundamental of Data Base Systems-Elmasri & Navathe IBM Rational Rose documentation help
Recommended