Skip to content

AlexeyShpavda/TelephoneServiceProvider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TelephoneServiceProvider

Telephone Station and Billing System Simulation

Разработать набор классов для моделирования работы автоматический телефонной станции (АТС) и простейшей биллинговой системы.

Компания-оператор АТС заключает договора с клиентами, присваивает им абонентские номера, предоставляет порты для подключения абонентских терминалов и выдаёт каждому абоненту терминал (телефон).

Каждый терминал соответствует только одному номеру. Абонент может самостоятельно отключать/подключать телефон к порту станции (станция умеет отслеживать изменения состояния порта – отключен, подключен, звонок, и т.п.).

Абоненты могут звонить друг другу только пределах станции. Звонки платные, для всех абонентов применяется один тарифный план.

Абонент может просмотреть детализированный отчет по звонкам (продолжительность/стоимость/абонент) как минимум за предыдущий месяц, выполнять фильтрацию по дате звонка, сумме, абоненту.

Что должно присутствовать:

  • code style
  • ООП (объектная модель для всех сущностей c разумной декомпозицией)
  • работа с событиями (подписка, отписка, взаимодействие терминалов со станцией на основе событийной модели)
  • разработка UI не требуется
  • достаточно консольного приложения, которое должно демонстрировать типичные сценарии использования объектов чтобы моделировать деятельность АТС и биллинговой системы (соединение абонентов с учетом состояния порта, заключение договора, подключение/отключение терминала, вывод истории звонков для каждого абонента)

Releases

No releases published

Packages

No packages published

Languages