Back to Blogs

Retrospective: ACCI Exam System

A Series to Look Back: Developing a system for examination registrations, following the full-flow from requirements to implementation based in Enterprise Software Processes

Retrospective: ACCI Exam System

Published on May 7, 2025

414 words • 3 min read


Description

The project was given throughout the course, from the Information Technology department, to teach the process from start to finish, rather than focusing on the technicalities or the AI hype-wagon like the Software Engineering department.

Us students are expected to go from diagrams, to proper designs, and then onto implementations, without skipping a single step.

The Process

Requirements Analysis

This project required us to, in short, develop a piece of software (resembling native Desktop applications using Windows API) that allows different roles to accomplish different tasks on the same platform or system.

  • Acceptance Employee: Receives requests for individual examinations, or group-based organization examinations at once.
  • Accounting Employee: Reviews examination bookings, and deals with payment-related flows.
  • Data Employee: Manages the editing, viewing and re-examining the testing results.

We thought of only designing UIs in a way that it only showed options available to the current role, and any actions not related to such role would be hidden away.

UML Diagrams

Thanks to this course, we were able to learn what it was like to deal with business use cases, as well as system use cases, separating the two for separate actors and their expected audience.

Most of the files are already submitted at the time of the retrospective, so I couldn’t really show them.

From system use cases, we would start defining relationships in class and entity diagrams, with one-to-one or one-to-many relations. We would eventually learn that the professors really did like Windows UI Forms, which they based a lot of their diagrams in, such as using naming conventions for those, but as long as the names make sense, “Label”, “Button”, “Switch”, etc. then it would still be fine.

Implementation

For the implementation phase, you needed to adhere as closely to the Sequence Diagram as possible, but of course, for a bunch of kids majoring in Software Engineering somehow finding their way into Information Technology course, it would not be a surprise that we had a lot of trouble doing it.

I also wanted to force some level of discipline, such as any new features would need a separate branch, before being merged. But I also noticed that the other two members of my team had never worked on a repository in that way before, so the process was rather loosened up, to not take too much time walking on eggshells for arbitrary rules, but to not throw away all engineering practices either.

The Final Product

Login page

Landing page

Enrollment Details

Edit Registration


🌸

Similar Blogs