Assignment 4
Group Members:
Basit Ali-212081
Syed Shamas ul Hassan Bukhari-212017
Hamza Bin Adil-202009
------------------------------------------------------------------------------------------------------------
DOMAIN MODEL
User: Represents a person who participates in the voting process. Users can be categorized as
voters, election officials, or administrators.
Voter: Represents an eligible individual who casts their vote in an election. Voters may have
personal information such as name, address, and voter ID.
Election: Represents a specific instance of an election, including its start and end dates,
location, and other relevant details. It may contain multiple contests or positions to be voted
on.
Contest/Position: Represents a specific choice or position in an election that voters can vote
for. It includes attributes such as the name, description, and candidates associated with the
contest.
Candidate: Represents an individual running for a particular position in an election. Candidates
have attributes like name, party affiliation, and other relevant information.
Ballot: Represents the voting form or document where a voter makes their selections. It
includes the contest(s) and candidate(s) to be voted on. A ballot can be submitted once.
Vote: Represents an individual voter's selection for a particular contest. It references the voter,
contest, and candidate chosen.
Election Official: Represents an individual responsible for managing and overseeing the election
process. They may have privileges to create, start, and end elections, manage voters, and
resolve issues.
Administrator: Represents a privileged user with administrative rights. Administrators have
additional capabilities such as managing user accounts, system settings, and generating reports.
System: Represents the online voting system itself, including its various components and
functionalities. It encompasses user authentication, vote recording, result generation, and
security measures.
CRC CARDS
Class: User
Responsibilities:
Authenticate user
Manage personal information
Access voting functionality
View election details
Collaborators:
Voter
Election Official
Administrator
Class: Voter
Responsibilities:
Cast vote
View available contests and candidates
Retrieve election information
Update personal information
Collaborators:
User
Election
Contest
Candidate
Class: Election
Responsibilities:
Manage election details (start/end dates, location)
Provide contest information
Generate reports
Enforce voting rules and eligibility
Collaborators:
User
Voter
Contest
Candidate
Class: Contest
Responsibilities:
Store contest information (name, description)
Retrieve associated candidates
Validate candidate selection
Collaborators:
Election
Candidate
Class: Candidate
Responsibilities:
Store candidate information (name, party affiliation)
Provide candidate details
Validate candidate eligibility
Collaborators:
Contest
Election
Class: Ballot
Responsibilities:
Store voter's selection (contest, candidate)
Submit ballot
Prevent multiple submissions
Collaborators:
Voter
Contest
Candidate
Class: Vote
Responsibilities:
Store individual vote information
Associate vote with a specific ballot
Collaborators:
Ballot
Class: Election Official
Responsibilities:
Manage election process
Create and manage elections
Manage voters and their eligibility
Resolve voting issues
Collaborators:
User
Election
Voter
Class: Administrator
Responsibilities:
Manage user accounts
Configure system settings
Generate reports
Ensure system security
Collaborators:
User
Election
CLASS DIAGRAM