La solución propuesta consiste en dividir las responsabilidades actualmente concentradas en la clase BusTicketManagement en tres componentes especializados: TicketManagement, PassengerManagement y StatisticsManagement.
La clase TicketManagement se encarga exclusivamente de las operaciones relacionadas con la emisión y cancelación de tickets. La clase PassengerManagement centraliza las consultas y búsquedas de pasajeros, mientras que StatisticsManagement administra la generación de estadísticas del sistema. Por su parte, BusTicketManagement mantiene únicamente la coordinación general entre los diferentes componentes.
Como se muestra en el diagrama UML de la solución, cada clase posee una única responsabilidad claramente definida, reduciendo el acoplamiento y aumentando la cohesión del sistema.
Beneficios de la Propuesta
Responsabilidad Única: Cada clase tiene una única razón para cambiar, cumpliendo correctamente con el principio SRP.
Mayor Mantenibilidad: Los cambios en la gestión de tickets, pasajeros o estadísticas pueden realizarse de forma independiente sin afectar otras funcionalidades.
Menor Acoplamiento: Las responsabilidades quedan separadas en módulos especializados, facilitando la comprensión y evolución del sistema.
Mayor Reutilización: Los componentes pueden reutilizarse de manera independiente en futuras ampliaciones del proyecto.
Mejor Organización del Código: La estructura resultante es más clara, escalable y fácil de mantener por futuros desarrolladores.

La solución propuesta consiste en dividir las responsabilidades actualmente concentradas en la clase BusTicketManagement en tres componentes especializados: TicketManagement, PassengerManagement y StatisticsManagement.
La clase
TicketManagementse encarga exclusivamente de las operaciones relacionadas con la emisión y cancelación de tickets. La clase PassengerManagement centraliza las consultas y búsquedas de pasajeros, mientras que StatisticsManagement administra la generación de estadísticas del sistema. Por su parte, BusTicketManagement mantiene únicamente la coordinación general entre los diferentes componentes.Como se muestra en el diagrama UML de la solución, cada clase posee una única responsabilidad claramente definida, reduciendo el acoplamiento y aumentando la cohesión del sistema.
Beneficios de la Propuesta
Responsabilidad Única: Cada clase tiene una única razón para cambiar, cumpliendo correctamente con el principio SRP.
Mayor Mantenibilidad: Los cambios en la gestión de tickets, pasajeros o estadísticas pueden realizarse de forma independiente sin afectar otras funcionalidades.
Menor Acoplamiento: Las responsabilidades quedan separadas en módulos especializados, facilitando la comprensión y evolución del sistema.
Mayor Reutilización: Los componentes pueden reutilizarse de manera independiente en futuras ampliaciones del proyecto.
Mejor Organización del Código: La estructura resultante es más clara, escalable y fácil de mantener por futuros desarrolladores.