Форум Сообщества Аналитиков

×


Вопрос к гуру по диаграмме классов(Прочитано 41270 раз)
Уважаемые господа!

В последнее время стал использовать различные диаграммы в аналитической деятельности. Одной из которых стала диаграмма классов.
До сих пор, не могу понять, как следует трактовать и понимать диаграмму классов определенной предметной области.
В прикреплении диаграмма:

на ней описана модель предметной области работы больницы при заборе биоматериала, для выполнения различных лабораторных анализов

Может кто проверить правильность и укажет правильное направление для дальнейшего движения (с точки зрения правильного оформления диаграммы классов).

Заранее благодарен!



Re: Вопрос к гуру по диаграмме классов Ответ #1 : 29 Июня 2011, 16:01:30
На первый взгляд:
ФИО главного врача лучше хранить в Сотруднике (враче), а не в КК (коммерческая клиника?).
Если Врач, Регистратор и Медсестра не имеют ничего собственного, помимо определенного в Сотруднике, то вместо наследования лучше использовать атрибут перечислимого типа (enumeration).
Есть необоснованное подозрение, что Заполненный направительный бланк и Услуга могут дублировать друг друга. Скажем, если есть услуга "первичный осмотр", то на нее выписывается направление, если есть услуга "лабораторный анализ" у неё тоже может быть связанный бланк. Бланк, как я полагаю, не является самостоятельной информационной сущностью. Могу ошибаться.
Деление на агрегации и композиции прихотливое. Например, маловероятно, чтобы один и тот же Пациент не упоминался в разных экземплярах Услуги.
Связи в тройке Пациент -> Биоматериал -> Пробирка делают возможным странные, на мой взгляд, ситуации когда в пробирке одного пациента можно обнаружить биоматериалы другого. Хотя, может быть так и задумано.



Re: Вопрос к гуру по диаграмме классов Ответ #2 : 29 Июня 2011, 16:38:18
Есть необоснованное подозрение, что Заполненный направительный бланк и Услуга могут дублировать друг друга
в направительном бланке указан перечень возможных услуг, то есть по одному направительному бланку должны быть заказаны 1..* услуг (может тут ассоциация, а не агрегация???)
маловероятно, чтобы один и тот же Пациент не упоминался в разных экземплярах Услуги
Действительно 1 пациент может заказать несколько услуг, соответственно 1 услуга может быть заказана несколькими пациентами (то есть опять многие ко многим и ассоциация, а не агрегация???)
Связи в тройке Пациент -> Биоматериал -> Пробирка
то есть как я понял, то лучше оставить связь пациент включает в себе биоматериал (композиция) и удаляется связь первичная пробирка, так как биоматериал является обязательным содержимом первичной пробирки (композиция)



Re: Вопрос к гуру по диаграмме классов Ответ #3 : 29 Июня 2011, 17:00:44
в направительном бланке указан перечень возможных услуг, то есть по одному направительному бланку должны быть заказаны 1..* услуг (может тут ассоциация, а не агрегация???)
Но пока у Вас бланк не связан с услугами напрямую, есть лишь неявные, и не выделяемые опосредованные связи через Пациента и Сотрудника. Если связь будет, то надо будет прикинуть каковы связи с Пациентом (например, возможно ли, что пациенту оказываются услуги по бланку, выписанному для другого пациента).
Действительно 1 пациент может заказать несколько услуг, соответственно 1 услуга может быть заказана несколькими пациентами (то есть опять многие ко многим и ассоциация, а не агрегация???)то есть как я понял, то лучше оставить связь пациент включает в себе биоматериал (композиция) и удаляется связь первичная пробирка, так как биоматериал является обязательным содержимом первичной пробирки (композиция)
Я не уверен, что рисуя модель предметной области Вам необходимо дотошно уточнять, где агрегация, а где композиция. Обычно такие уточнения делают на поздних этапах анализа или при проектировании. Но могу пояснить, что дело по сути не в мощностях связей, а в том, что объект-часть не разделяется композирующим объектом-целым с другими объектами, и объект-часть живет в пределах периода существования объекта-целого (при композиции).
Про связи внутри тройки поняли правильно. Либо биоматериал привязан к пациенту (и не связана пробирка), либо пробирка привязана к пациенту (и весь биоматериал в ней его). Но не то и другое вместе. Конечно, дублирование может быть заложено сознательно, для повышения эффективности некоторых запросов (и замедления других:). Но при анализе, обычно строятся нормализованные модели, а дальше уже решают, где стоит от этого отказываться, а где нет.



Re: Вопрос к гуру по диаграмме классов Ответ #4 : 29 Июня 2011, 17:25:29
По представленной диаграмме сказать можно мало:
1) Заполненный направительный бланк- забавно звучит :) еще бывает не заполненный?
2) Не понятно- чем отличается доп услуга, лаб услуга  и услуга. Возможно одного класса хватит, добавив в него тип услуги?
3) Не пытайтесь в одну диаграмму засунуть все классы, которые есть. Лучше разделите на разные диаграммы.
4) А сотрудник не может быть пациентом?  Возможно он какие то скидки на услуги может получать?
Про пробирки  и двойные связи уже сказали :)



Re: Вопрос к гуру по диаграмме классов Ответ #5 : 29 Июня 2011, 17:55:13
1) Заполненный направительный бланк- забавно звучит :) еще бывает не заполненный?
Бланк может быть чистым не заполненным - и это обозначает, что выбранных услуг по нему 0
Бланк может быть заполненным, то есть галочками отмечены необходимые услуги 1..*
Бланк может быть электронным, после печати появляется заполненный (предыдущий)
2) Не понятно- чем отличается доп услуга, лаб услуга  и услуга. Возможно одного класса хватит, добавив в него тип услуги?
одна услуга - лаб. услуга - то что делает лаборатория, там химические реакции и прочие, то есть специалисту за это процент не полагается
а вот вторая услуга - это забор крови допустим, 100 рублей, медсестра набрала за день 10 анализов получила 10 рублей (1% например)
3) Не пытайтесь в одну диаграмму засунуть все классы, которые есть. Лучше разделите на разные диаграммы.
понял собственно это и делаю, то есть теперь будет класс заказ услуги и он уже без всяких медсестер и иже с ними
4) А сотрудник не может быть пациентом?  Возможно он какие то скидки на услуги может получать?
может, что в этом случае делать

Огромное спасибо за участие, надеюсь с Вашей помощью, смогу въехать не только в саму нотацию, но и в принцип ее использования, так как примеров с машиной и колесом недостаточно )))



Re: Вопрос к гуру по диаграмме классов Ответ #6 : 29 Июня 2011, 22:10:50
Да! Что есть "первичная пробирка"? Есть еще вторичная и т.д?

Достаточно было сделать ассоциации между договором и пациентом.

Пробирка оказалась как то в стороне от договоров. Разве такое возможно? Сколько раз был в  поликлинике - ни разу не давали пробирку пока договор не заключишь :)
« Последнее редактирование: 30 Июня 2011, 07:53:20 от Sergasd »



Re: Вопрос к гуру по диаграмме классов Ответ #7 : 30 Июня 2011, 09:12:40
1. где кратности на ассоциациях?
2. наследники сотрудника должны иметь отличительные свойства атрибуты иначе их выделять нет смысла (есть атрибут должность в сотрудники этого хватит) это уже говорили;
3. в пациент атрибут ФИО добавить хотя бы;
4. с композициями конечно перебор тут, для начала все композиции и агрегациии я б заменил на ассоциации;



Re: Вопрос к гуру по диаграмме классов Ответ #8 : 30 Июня 2011, 10:42:27
Может кто проверить правильность и укажет правильное направление для дальнейшего движения (с точки зрения правильного оформления диаграммы классов).
Чтобы проверить правильность диаграммы классов, постройте  по ней несколько диаграмм об'ектов.



Re: Вопрос к гуру по диаграмме классов Ответ #9 : 30 Июня 2011, 11:30:26
Уважаемые коллеги!

Прочитав некоторые главы из книги (Дж.Рамбо, М.Блаха. UML 2.0. Объектно-ориентированное моделирование и разработка. (2-е изд.)(2007)) решил пойти немного оптимизированным путем, то есть решил проводить композицию/декомпозицию, там где она действительно имеет место. То есть я решил не писать в одной диаграмме ЛПУ и участников процесса, а решил разделить на собственно заказ и участников процесса
1 часть а именно заказ получился следующим образом -> диаграмма-классов-заказа во вложении.

2 часть буду делать.

Хотелось бы получить рецензию по 1 части. Прошу указать ошибки, и в правильном ли направлении двигаюсь, заранее благодарен.
« Последнее редактирование: 30 Июня 2011, 13:22:22 от djin »



Re: Вопрос к гуру по диаграмме классов Ответ #10 : 30 Июня 2011, 11:41:44
1. где кратности на ассоциациях?
уже исправил в диаграмме классов заказа
2. наследники сотрудника должны иметь отличительные свойства атрибуты иначе их выделять нет смысла (есть атрибут должность в сотрудники этого хватит) это уже говорили;
тут возникает следующий вопрос, в атрибутах сотрудника будет находится должность, а что если врач становится пациентом? получается что нам надо отображать ассоциацию сотрудник - пациент (1-1)?
3. в пациент атрибут ФИО добавить хотя бы;
исправлю
4. с композициями конечно перебор тут, для начала все композиции и агрегациии я б заменил на ассоциации;
выполнил



Re: Вопрос к гуру по диаграмме классов Ответ #11 : 30 Июня 2011, 13:19:53
Вот как получилась часть 2:



Re: Вопрос к гуру по диаграмме классов Ответ #12 : 04 Июля 2011, 15:31:44
Я не гуру, просто выражаю свое мнение, которое может быть ошибочным.
по диаграмме_КК:
1. для чего композиция кабинет-сотрудник (в сотрудника включается кабинет)? простая ассоциация тут будет уместней.
2. Для чего пациент -адрес кратность много? я б отобразил ассоциацией 1-1 ну если БОМЖ то 1-0,1.
3.просто любопытно а для чего пациенту 2 дисконтных карточки скидки суммируются?

"тут возникает следующий вопрос, в атрибутах сотрудника будет находится должность, а что если врач становится пациентом? получается что нам надо отображать ассоциацию сотрудник - пациент (1-1)?"
не очень понял вопроса, если врач стал пациентом для этого никаких доп ассоциаций не требуется.



Re: Вопрос к гуру по диаграмме классов Ответ #13 : 04 Июля 2011, 15:43:35
по диаграмме заказов:
общее замечание дать название ассоциациям (композиции и агрегации понятны а простым ассоциациям имена только помогут)
Теперь с кратностями подзапутался:
1. чек-договор
один договор может содержать несколько чеков, а как один чек может прикрепляться к нескольким договорам?
2.   договор-услуга по одному договору оказывается несколько услуг да, но одна услуга по разным договорам...? думается это будут разные однотипные услуги.
3. ассоциация бланк-пробирка неясная.



Re: Вопрос к гуру по диаграмме классов Ответ #14 : 04 Июля 2011, 16:49:54
djin, ну замечания тебе уже дали. Мы тут, конечно, не гуру, скорее приближаемся медлеными шажками. Однако:

в чем задача использования агрегации и композиции? Скаже что любая ассоциация может и возможно должна быть уточнена до агрегации и композиции, но это становится важным лишь при реализации. Да и агрегация и композиция есть связь has a, т.е. связь принадлежности. Агрегация или композиция - зависит о того, какие сущности находятся в отношениях сильные или слабые. агрегация - типичная неидентифицирующая связь
принадлежности из IDEF1x, а композиция идентифицирующая. Согласно такой парадигме рассмотрим твои классы и связи между оными:
- КК  - сотрудники - это дейстивтельно так, что сотрудник определяется через наличие КК и только КК определяет есть это сотрудник? Что происходит если КК удалить? Как это между КК и Сотрудниками кратнсть М-М? Композит, это отношение часть-целое - отношение строгой иерархии. а М-М - это граф, сетевое соединение.
- связи многи-ко многим вообще не могут быть агрегациями или композициями - это противроречит здравому смыслу
- класс - есть сущность. сущность она одна. именуется в единственном числе


Неясно отношение между заказом исследования и сотрудниками.
1. дай атрибуты  заказа
2. сотрудник может выполнять? множество заказов, но каждый заказ исполняется также множеством сотрудников?




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19