Here is a complete Object Oriented Software Engineering (OOSE) Project for a Revenue Authority Office
Information Management System (RAOIMS) including analysis, UML diagrams (described clearly so you
can draw them), and sample implementation.
📘 PROJECT TITLE
Revenue Authority Office Information Management System (RAOIMS)
1. INTRODUCTION
1.1 Project Overview
The Revenue Authority Office Information Management System (RAOIMS) is a computerized system
developed to manage taxpayer information, tax collection, payments, penalties, and report generation
in a Revenue Authority office.
The system replaces manual record keeping with an automated, secure, and efficient object-oriented
system.
2. PROBLEM STATEMENT
Manual systems in revenue offices cause:
Data redundancy
Record misplacement
Slow processing of tax payments
Poor report generation
Security risks
This project solves these problems using Object-Oriented principles.
3. OBJECTIVES
General Objective
To design and implement a Revenue Authority Office Information Management System using Object-
Oriented Software Engineering principles.
Specific Objectives
Manage taxpayer registration
Manage tax assessment
Process tax payments
Calculate penalties
Generate financial reports
Ensure secure user authentication
4. SYSTEM REQUIREMENTS
4.1 Functional Requirements
The system shall:
Register taxpayers
Update taxpayer information
Record tax assessments
Process payments
Calculate penalties for late payments
Generate reports
Allow user login/logout
Manage employees
4.2 Non-Functional Requirements
Security
Performance
Reliability
Maintainability
Scalability
5. SYSTEM ANALYSIS (UML DIAGRAMS)
5.1 USE CASE DIAGRAM
Actors:
Admin
Revenue Officer
Taxpayer
Main Use Cases:
Login
Register Taxpayer
Update Taxpayer
Record Assessment
Process Payment
Calculate Penalty
Generate Report
Manage Users
Use Case Diagram Structure (Text Representation)
Copy code
+-------------------+
| Admin |
+-------------------+
| |
Manage Users Generate Report
+-------------------+
| Revenue Officer |
+-------------------+
| | | |
Register Assess Payment Report
Taxpayer Tax Process
+-------------------+
| Taxpayer |
+-------------------+
Make Payment
You can draw this in StarUML, Visual Paradigm, or [Link].
5.2 CLASS DIAGRAM
Main Classes
1. User (Abstract Class)
userID
username
password
role
login()
logout()
2. Admin (inherits User)
createUser()
deleteUser()
3. RevenueOfficer (inherits User)
registerTaxpayer()
recordAssessment()
4. Taxpayer
taxpayerID
name
address
TIN
phone
updateInfo()
5. TaxAssessment
assessmentID
taxYear
taxableAmount
taxAmount
calculateTax()
6. Payment
paymentID
paymentDate
amount
paymentMethod
processPayment()
7. Penalty
penaltyID
penaltyAmount
calculatePenalty()
8. Report
generateDailyReport()
generateAnnualReport()
Class Relationships
User → Admin (Inheritance)
User → RevenueOfficer (Inheritance)
Taxpayer → TaxAssessment (Association)
TaxAssessment → Payment (Association)
Payment → Penalty (Dependency)
5.3 SEQUENCE DIAGRAM
Scenario: Processing Payment
RevenueOfficer logs in
Officer selects taxpayer
System retrieves tax record
Officer enters payment
System calculates penalty (if any)
System stores payment
Receipt generated
5.4 ACTIVITY DIAGRAM
Process Payment Flow
Start
→ Login
→ Select Taxpayer
→ Check Outstanding Tax
→ Calculate Penalty
→ Record Payment
→ Generate Receipt
→ End
6. SYSTEM DESIGN
6.1 Architecture
The system follows Three-Tier Architecture:
Presentation Layer (UI)
Business Logic Layer
Data Access Layer
7. IMPLEMENTATION (Sample Code in Java – OOP)
Below is a simplified implementation.
7.1 User Class
Java
Copy code
public abstract class User {
protected String userID;
protected String username;
protected String password;
public User(String userID, String username, String password) {
[Link] = userID;
[Link] = username;
[Link] = password;
public boolean login(String username, String password) {
return [Link](username) && [Link](password);
public void logout() {
[Link]("User logged out.");
7.2 Taxpayer Class
Java
Copy code
public class Taxpayer {
private String taxpayerID;
private String name;
private String address;
private String TIN;
private String phone;
public Taxpayer(String taxpayerID, String name, String address, String TIN, String phone) {
[Link] = taxpayerID;
[Link] = name;
[Link] = address;
[Link] = TIN;
[Link] = phone;
public void updateInfo(String address, String phone) {
[Link] = address;
[Link] = phone;
}
}
7.3 TaxAssessment Class
Java
Copy code
public class TaxAssessment {
private String assessmentID;
private int taxYear;
private double taxableAmount;
public TaxAssessment(String assessmentID, int taxYear, double taxableAmount) {
[Link] = assessmentID;
[Link] = taxYear;
[Link] = taxableAmount;
public double calculateTax() {
return taxableAmount * 0.15; // 15% tax rate
7.4 Payment Class
Java
Copy code
public class Payment {
private String paymentID;
private double amount;
public Payment(String paymentID, double amount) {
[Link] = paymentID;
[Link] = amount;
public void processPayment() {
[Link]("Payment of " + amount + " processed successfully.");
8. DATABASE DESIGN (Simplified Tables)
Users (userID, username, password, role)
Taxpayers (taxpayerID, name, address, TIN, phone)
Assessments (assessmentID, taxpayerID, taxYear, taxableAmount)
Payments (paymentID, assessmentID, amount, paymentDate)
Penalties (penaltyID, paymentID, penaltyAmount)
9. TESTING
Unit Testing
Test login()
Test calculateTax()
Test processPayment()
Integration Testing
Test payment flow
Test report generation
10. CONCLUSION
The Revenue Authority Office Information Management System:
Improves efficiency
Reduces errors
Enhances security
Provides accurate reporting
Applies Object-Oriented principles:
Encapsulation
Inheritance
Polymorphism
Abstraction
If you want, I can now:
Draw the UML diagrams in proper diagram format (PlantUML code)
Convert this into a full 20–30 page project report
Provide database SQL scripts
Provide a complete working Java project
Convert it into PDF or Word format
Tell me what format your lecturer requires 😊