Beruflich Dokumente
Kultur Dokumente
Project Report (Paper-410) B. Sc (H) Computer Science (IV Semester) Area: Software Engineering
Ram Lal Anand College, Benito Juarez Rd, South Campus, New Delhi University of Delhi Submitted By: Shubham Nauriyal Kunal Sharma Under Supervision Dr. Vandana Gandotra (Associate Professor)
2 | Page
CERTIFICATE
This is to certify that the project entitled, ONLINE VOTING SYSTEM FOR COLLEGE ELECTIONS has been done by:Kunal Sharma and Shubham Nauriyal of Bachelor of Computer Science (Hons.) during semester IV from Ram Lal Anand College, University of Delhi under the supervision of Dr. Vandana Gandotra.
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. Its 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 | 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 | 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 maint ained 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 his\her vote. The scope of this project will be that it will surely increase the voting percentage 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.
6 | Page
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 | 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.
8 | Page
LOG IN
USERNAME/ PASSWORD
VOTING PROCESS
STATUS
LOG OUT
successful
VOTER AUTHENTICATION
Authentication
LOG IN
VOTING PROCESS
Voting done
HOME PAGE
LOG OUT
Receipt
USER
USER
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]*
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 Ps: people, product, process, and project.
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 Measurement factors Number of user inputs Number of user output Number of user inquiries Number of internal logical files Number of external interface files Count total Weighting factor Count 2 2 3 1 2 Simple 3 4 3 7 5 Average 4(2) 5(2) 4(3) 10(1) 7(2) Complex 6 7 6 15 10 8 10 12 10 14 54
The Fi (i = 1 to 14) are "Complexity Adjustment Values" based on responses to the following questions: 5 5 3 4 4 5 3 5 1 1 2 3 5
11 | P a g e 1. Does the system require reliable backup and recovery? 2. Are data communications required? 3. Are there distributed processing functions? 4. Is performance critical? 5. Will the system run in an existing, heavily utilized operational environment? 6. Does the system require on-line data entry? 7. Does the on-line data entry require the input transaction to be built over multiple? 8. Are the master files updated on-line? 9. Are the inputs, outputs, files, or inquiries complex? 10. Is the internal processing complex? 11. Is the code designed to be reusable? 12. Are conversion and installation included in the design? 13. Is the system designed for multiple installations in different organizations? 14. Is the application designed to facilitate change and ease of use by the user? 5
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.
12 | P a g e project effort can be derived as Estimated effort = NOP/PROD Object type No. of objects Simple 1(2) 2(2) Complexity Weight Medium 2(2) 5(1) Difficult 3(1) 8(0) 10(2) Count
4 2 2
7 9 20 36
Table 3.2 Estimating object points 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.
] ( 4 )
(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 = [1000 t4 =0.06
0.01.333 8000 3
] ( 4 )
PS TE BU
2 2 3
BU
30%
14 | P a g e regularly Impact values: 1catastrophic 2critical 3marginal 4negligible Category PS: product size DE: Development environment ST: staff size
15 | P a g e
Jan 2013
ID 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Task Name
1/13 1/20
Identify needs and benefits Meetings with customer identify needs and project constraints Establish product statement Describe process model Milestone : product statement defined Define function inputs and outputs Document FIO Review FIO with customers Milestone : FIO defined Start managing the project Compute function points Estimate the efforts of projects Estimate the schedule of project Make the timeline chart Perform risk analysis Milestone : project is managed Define the functions behaviour Describe the design of module Describe attributes of module Write pseudocode of module Milestone : FIO design complete Computing basis path set Milestone : testing complete
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
16 | P a g e be satisfied, is decided. This design level is often called design to contain a more detailed description of the processing logic and data structures so that the design is sufficiently complete for coding.
17 | P a g e
COLLEGE DATABASE STUDENT DETAILS
successful
VOTER AUTHENTICATION
Authentication
LOG IN
VOTING PROCESS
Voting done
HOME PAGE
LOG OUT
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.
18 | P a g e
COLLEGE DATABASE. STUDENT DETAILS
successful
LOG IN
VOTING PROCESS
Voting done
HOME PAGE
LOG OUT
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.
19 | P a g e
ls tai de
Ge tr ec eip t
LOGIN
VOTING PROCESS
CONFIRMATION STATUS
LOGIN
Ge t de stud ta en ils t
Username/ Password
ed at tic en th Au
Details
Username/ password
details
Authentication
20 | P a g e
Voting Process
t lis
V s ot ca ele e fo nd cte r id d at es
Candidate list
Voting
CONFIRMATION STATUS
eip ec tr Ge
vo te
STATUS
SUCCESSFULLY VOTED
21 | P a g e
DATA TYPE
LENGTH 20 20 20 20 20 20 50 1 12 10 2 20 20 10 10
Char Char Char Char Char Char Char Char Int Char Int Char Char Int Int
LENGTH 20 20
22 | P a g e
20 20 20 20 10 10
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
23 | P a g e DbStudent_Details.MoveNext Else 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++
24 | P a g e } else if Radiobutton.2=true then { 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
25 | P a g e
5. TESTING
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
10
11
12
26 | P a g e
27 | 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