Форум Сообщества Аналитиков
Общий раздел => Примеры => Задачи студентов => Тема начата: mafin от 28 Апреля 2011, 13:01:29
-
Ребят, зарегистрировался здесь чтобы просить вашей помощи! :D
По программированию в ВУЗе проходим язык UML. Задание мое такое (база ГИБДД):
Требуется автоматизировать работу районного отдела ГИБДД.
Пользователи, работающие с системой: Оператор (сотрудник ГИБДД).
Разрабатываемая система должна:
-вести учет водителей и транспортных средств, зарегистрированных на территории района (добавлять и удалять водителей и транспортные средства, осуществлять поиск водителей (по фамилии) и транспортных средств (по марке автомобиля и государственному регистрационному знаку));
-вести учет угнанных транспортных средств;
-вести учет сведений о прохождении технического осмотра транспортных средств и сведений о правонарушениях водителями;
-предоставлять Оператору следующие отчеты:
- полный список зарегистрированных водителей;
- список угнанных за период транспортных средств;
- список числящихся в угоне транспортных средств;
- список водителей с истекшим сроком действия прав;
Вот такая история.. Прилагаю мою горе-схему (диаграмма классов и диаграмма последовательностей). Реализовал 3 класса - класс ГИБДД (основной), класс водителей, класс транспортных средств (ТС). Далее для отчетов Оператору мне нужны 5 диаграмм последовательностей. Первую я сделал, а вот со второй начались проблемы (список угнанных за период авто). Препод говорит, нужен еще один класс угнанных авто, я его создал, но не могу додумать. Его надо связать с классом транспортных средств (C_ТС), ссылку как-то сделать, там должны быть как я понял даты угона и возврата авто (если вернули). Но это у меня сделать не получается. Народ, помогите закончить этот проект, пожалуйста, очень надо! а то экзамен не сдам) Если это хлопотно, обсудим и цену вопроса)
-
диаграмма последовательностей
-
Препод говорит, нужен еще один класс угнанных авто, я его создал, но не могу додумать. Его надо связать с классом транспортных средств (C_ТС), ссылку как-то сделать, там должны быть как я понял даты угона и возврата авто (если вернули)
В вашем примере некорректно представлена предметная область.
Машины регистрируются на владельцев, не обязательно что владелец это водитель.
Водитель управляет авто, и в ГИБДД нет сведений о том какой водитель каким авто управляет.
Если вы реализуете более правильную "модель" и представите её преподавателю это возможно будет плюс.
Рекомендую сначала доработать диаграмму классов и только потом переходить к диаграмме последовательностей.
Скачайте и становите нормальную UML рисовалку, например VisualParadigm (есть бесплатная версия с урезанным функционалом).
В классе Авто нужно предусмотреть УникальныйКодТС(в жизни это VIN код он теоретически уникальный), возможно что у вас это атрибут Номер, но тогда должно быть ограничение на уникальность номера для объектов этого класса.
В классе угнаных ТС атрибут УникальныйКодТС. Таким образом вы обеспечите связь между объектами классов.
Учет нарушений и учет прохождений ТО это тоже отдельные классы.
Атрибут нарушения в таблице C_Водитель - не понятно зачем. Должен быть отдельный класс нарушения, связанный отношением ассоциации с водителем многие к одному (один водитель может иметь несколько нарушений).
Аналогично, атрибут УникальныйКодАвто будет и в других классах в которых будете реализовывать учет прохождения ТС техосмотра, учет нарушений водителей (нарушения связаны как с водителями так и с ТО на котором оно совершено).
-
DinamoYA, спасибо вам большое! Попробую реализовать все это на практике, но не уверен в правильности результата. На всякий случай, далеко не уходите) прочтите еще раз эту ветку, у меня просто вопросы могут возникнуть наверняка.. А так если что сколько будет стоить это полностью завершенный проект?) плачу Webmoney.
-
DinamoYA, спасибо вам большое! Попробую реализовать все это на практике, но не уверен в правильности результата. На всякий случай, далеко не уходите) прочтите еще раз эту ветку, у меня просто вопросы могут возникнуть наверняка.. А так если что сколько будет стоить это полностью завершенный проект?) плачу Webmoney.
Грамотный подход!
-
Богатые студенты нынче пошли!
В мои времена приходилось работать самому...
-
диаграмма последовательностей
Не очень понятно почему вы решили рисовать диаграмму последовательностей? Это требование задания?
Возможно имеет смысл нарисовать диаграммы деятельности в более общем виде с использование "плавательных дорожек".
Если все таки диаграмма последовательности обязательна то конкретики пока не дам поскольку сначала нужна диаграмма классов. Рекомендую все таки разные диаграммы делать не на одном листе, а по одному листу на одну диаграмму и также дать комментарий какая из последовательностей какой процесс описывает.
-
Не очень понятно почему вы решили рисовать диаграмму последовательностей? Это требование задания?
Возможно имеет смысл нарисовать диаграммы деятельности в более общем виде с использование "плавательных дорожек".
Если все таки диаграмма последовательности обязательна то конкретики пока не дам поскольку сначала нужна диаграмма классов. Рекомендую все таки разные диаграммы делать не на одном листе, а по одному листу на одну диаграмму и также дать комментарий какая из последовательностей какой процесс описывает.
Да, диаграмма последовательностей - обязательное задание. Хорошо, сегодня ближе к ночи что-нибудь состряпаю, выложу сюда вам на проверку))
-
DinamoYA! А учет о прохождении ТО и учет сведений о правонарушениях как и с какими классами должны быть связаны?
-
Вот с классами (вроде бы) разобрался более менее..
С последовательностями теперь вообще запутался.. посмотрите классы, может скажете что в последовательностях надо изменить/добавить или вообще переделать..
-
список зарегистрированных водителей
-
список угнанных за период ТС
-
список числящихся в угоне ТС
-
список ТС, не прошедших ТО
-
список водителей с истекшим сроком действия прав
-
классов должно быть 4 :Владелец, ТС, ТО, Правонарушения.
Владелец может иметь множественную связь к ТС. ТС только одну к Владельцу. Ну так по остальным классам. Дочерний класс можно сделать и для угнанных авто. Но смотря какую информацию нужно хранить. В данном случае я бы не делала.
-
Спасибо, а может кто еще что по последовательностям скажет??
-
И как тогда быть с угнанными авто??
-
И как тогда быть с угнанными авто??
В принципе угнанные авто это характеристика ТС изменяемая во времени
По идее можно реализовать через атрибуты класса ТС: ДатаСообщенияОбУгоне, Угнан, ДатаУгона, и т.п. Если достаточно только текущего состояния "угнан" - "не угнан", то достаточно атрибутов в классе ТС и метода который будет возвращать отчет по угнанным.
Но если представить ситуацию более широко то один и тот же ТС за свою жизнь может быть угнан несколько раз, то для необходимо отдельная сущность предназначенная для учета фактов угона и возврата угнанных ТС. Через методы такого класса можно будет организовать формирование отчетов, вывод списков угнанных и т.п.
-
И как тогда быть с угнанными авто??
по-хорошему — вернуть бы надо.