CPP Assignment3
CPP Assignment3
1 Sept 2023
This design document outlines the Object-Oriented Design (OOD) methodology applied to the Congregation
Event Management System. The system is designed to handle multiple large-scale congregations such as games,
concerts, conferences, and conventions. The requirements include the ability to manage multiple congregations,
venues, and events while ensuring data consistency and validation.
2 class Definitions:
Congregation
• Attributes:
• name: string
• type: string
• startDate: Date
• endDate: Date
• Methods:
• addEvent(Event)
• deleteEvent(Event)
• reserveVenue(Venue)
• freeVenue(Venue)
Venue
• Attributes:
• Methods:
• addEvent(Event)
• deleteEvent(Event)
• showEvents(Date)
Event
• Attributes:
• name: string
• date: Date
• startTime: Time
• endTime: Time
• Methods:
• schedule()
• cancel()
Reservation
• Attributes:
• congregation: Congregation
• venue: Venue
• startDate: Date
• endDate: Date
• Methods:
• reserve()
• free()
Calendar
• Attributes:
• events: list¡Event¿
• Methods:
• addEvent(Event)
• deleteEvent(Event)
• showEvents(Date)
2. Venue-Reservation: A venue can be reserved by multiple congregations, but each reservation is tied to one
venue.
3. Venue-Event: A venue can host multiple events, each associated with a specific congregation.
4. Calendar-Event: A calendar maintains a list of events for a venue.
4 Design Considerations:
• Modularity: The system is designed using a modular approach, where each class is responsible for a
specific part of the functionality. This ensures that the system is easy to maintain and extend.
• Encapsulation: Each class encapsulates its attributes and provides methods to manipulate them, ensuring
data integrity and preventing unauthorized access.
• Validation: The system includes validation mechanisms for dates, times, and reservation constraints to
ensure that all inputs are consistent and valid.
• Flexibility: The design allows for future extensions, such as adding new types of congregations or events
without significant changes to the existing codebase.
5 Conclusion:
The design presented here meets the requirements for managing multiple congregations, venues, and events. The
use of object-oriented principles ensures that the system is robust, flexible, and maintainable. The accompanying
UML diagram visually represents the relationships between the entities, providing a clear overview of the
system’s architecture.