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

×


Информационно-справочная система(domain model)(Прочитано 20143 раз)
Это не провокация!

Однажды мы решали такую задачу с одним дипломником. Система была разработана как веб-приложение на платформе Apache+PHP+MySQL. Реализация была вполне успешная, для разработки и проектирования использовался структурный подход. Модель данных проектировалась в IDEF1x. Физическая реализация БД была изменена, поскольку наша ИЛМ(инфологическая модель) создавала проблемы в реализации. Какие пока говорить не буду.
Для определенности будем полагать конкретную организацию - а именно ВУЗ.

Итак, вот набор фактов, которые были выявлены в ходе анализа ПрОб.

ВУЗ - организация, состоящая из подразделений. Подразделение в свою очередь может также включать другие подразделения. В качестве подразделения можно например назвать: ректорат, бухгалтерия, отдел кадров ит.п.,  факультет, деканат, кафедра, лаборатория, и т.п. Очевидно что подразделение ректорат подчинено самому вузу, так же например как и факультет, но на факультете есть деканат, кафедры и т.п. В месте с тем можно различать учебные и не учебные подразделения. Однако мы этого не делали в силу общности ИСС.

Организация имеет несколько зданий. Здания имеют уникальное имя и нумеруются буквой русского алфавита.
Здание состоит из помещений. Помещения бывают аудиториями и комнатами. Для нашего случая аудитории не интересны, т.к. цель иметь информацию о том, где расположен тот или иной сотрудник, как его найти и как с ним связаться.

Помещения принадлежат определенному подразделению либо вузу как главному подразделению. Подразделение может размещаться не в одном здании. Каждое помещение в рамках здания имеет номер. Обычно это цифровой код - числа по порядку, но возможны и номера с буквами 9а, 12б и т.п.

В некоторых помещениях располагаются телефоны. Телефон может быть местный и/или городской. Один и тот же номер телефона может быть закреплен за разными помещениями. Обычно в одном помещении может быть только один местный телефон.

В помещении могут находится(работать, быть закрепленными) 1 или более сотрудников.

Сотрудник может иметь 1 или более должностей. Вторые должности - совместительство. При этом работая на разных должностях сотрудник может быть закреплен за разными помещениями. Скажем мистер Х - заведующий кафедры Y находится в кабинете №3 в заднии В(Учебно-лабораторный корпус) и местный номер телефона и городской номер телефона. (Чаще всего городской номер закреплен за подразделением). Тот же мистер Х - декант факультета Z - находится в деканате в комнате №56 корпуса А(аудиторный) имея телефон или несколько...



Вот попытался сделать модель классов.
Чувствую не все так, но как вариант.

Отражаемые факты

1. Здание состоит из помещений
2. Организация состоит из подразделений
3. Подразделение может включать подчиненные ей подразделения
4. В каждом подразделении есть штатные единицы (должности)
5. Штатная единица (должность) может быть в разных подразделениях
6. Сотрудник находится в некотром помещения, занимая определнную должность

Так же прикрепляю IDEF1x модель



Должность обеспечивается рабочим местом или человек обеспечивается рабочим местом.
Будем считать так. Человек устраивается на некую должность в подраздление. Это очевидный факт! Получив должность - например доцент кафедры экономика, он соотвественно получает место - скажем отдельный кабинет или стол в общем помещении - преподавательская. Поскольку система справочная, то кому-то скажем требуется узнать где обычно размещается некто Сидоров, где он работает и на какой должности

Цитировать
Может посмотреть со стороны назначения рабочего места должности и назначения рабочего места человеку по отдельности?
Наверное может быть и такой вариант. Однако - такая ситуация характерна не для всех должностей. Скажем есть некое рабочее место, которое дейстивтельно закреплено за определенной должностью. Но обычно все-таки ни помещение ни должность явно место не определяет. Просто возможно ограничения. Раз некто работает в подразделении то он может находится в одном из помещений этого подразделения. При этом факт его должности может быть и не особо интересен, т.е. должность может быть просто атрибутивной характеристикой.

Цитировать
И еще вопрос: есть уверенность, что отдел всегда безраздельно владеет помещением. Не бывает такого, что могут подсадить человека из соседнего отдела?
В реальной практике такое возможно, но в нашей ситуации будем считать, что человек соседнего отдела, если он находится в помещении данного отдела, означает его совместительство. Таких ситуаций обычно не так много, но они довольно характерны, когда человек совмещает определенные должности и вынужден находится в разных помещениях. Как я привел пример с завкафедрой и деканом. Я могу совмещать должности скажем доцента и вероятно не буду требовать помещения на той другой кафедре, но в приницпе они мне могут его предоставить, т.к. исполнение должностных обязанностей предполагает мое возможное нахождение скажем в преподавательской этой кафедры...

Цитировать
Как получилось, что одна должность может принадлежать нескольким подразделениям? Вы ничего не путаете?
Очень просто
берем две кафедры: Экономика и Информатика.
На каждой из кафедр могут работать доценты, старшие преподаватели научные сотрудники и т.п. Думаю ясно?
Конечно есть отделы где должности определяются лишь этим отделом: скажем бухгалтерия



Это означает (на мой взгляд), что должность связана с местом. А человек с должностью. То есть множественную ассоциацию надо развалить на две.
Нет. должность занимает человек и к месту реально она отношения не имеет. Например опять же - ты преподаватель на кафедре, но это вовсе не означает, что у тебя 100% должно быть место в преподавательской, хотя это и подразумевается. С другой стороны и ассистент и доцент и профессор могут располагаться в одном месте. Думаю явную привязку к месту должности делать вообще наверное не надо.

Цитировать
Явно противоречит предыдущим словам. Как физически происходит выделение места человеку, кто принимает решение о выделении места, в какой момент и т.д.? Мне кажется, что реалистичен такой сценарий:
- человек получает должность
- руководитель подразделения дает поручение кому-то (ответственному за помещения) выделить место человеку
- происходит анализ, какое место требуется для этой должности (кабинет, стол, компьютер, телефон  и т.д.)
- выделяется все необходимое
- при смене должности происходит повторный анализ с возможным изменением рабочего места
Но, возможно, в нашем случае все по другому.
Именно - не надо зацикливаться на вделение места и связи места с должностью и т.п. Главное что человек работающий в некотором подразделении оказывается закрепленным за помещением в этом подразделении и все. Например если мы не знаем реально где сидит сотрудник, мы просто фиксируем для него телефон кафедры. Главное отражается факт, что у каждого сотрудника есть какой-то номер телефона и скорее всего есть место где он сидит

Цитировать
Тогда отсутствует сущность, определяющая позицию в штатном расписании подразделения - назначение человека на должность.
Вот пример. Есть кафедра подъемно-транспортного оборудования (ПТМ) есть преподавательская кафедры ПТМ и кабинет заведующего кафедрой. При этом в штате кафедры один заведующий и пять преподаветелей (это штатные единицы - должности). Кабинет зав. кафедры привязан к конкретной штатной единице, так же, как и прподавательская к остальным пяти. Есть еще завлаб, место которого в лаборатории... Кто сегодня завлаб и кто зав. кафедры - зависит от назначений людей на должности.
Ну все так в чем собственно проблема?
Я преподаватель и совмещаю должность завлаба и сижу в кабинете завлаба. Меня можно найти с вероятностью 100% именно там. Т.е. указываются наиболее веротяные места нахождения. У большинства людей эти места в 1 экземпляре, но есть и такие у которых их может быть несколько.
Предположим - родитель зайдя на сайт такой ИСС, ищет информацию о декане и находит, но вместе с информацией о декане выдается и информация о том что он - завкаф с его местоположением.
Родитель звонит и не наход декана в деканате, ему говорят он на кафедре, он видит и телефон кафедры и звонит туда. Вот и все решение.



Отличные диаграммы!

Для цели поиска человека понятие должность, вообще не нужно (ИМХО).
Тема называется как? Информационно - справочная система. Должностные обязанности человека может и не важны для поиска, но является важным атрибутом сотрудника.
Опять же, я забыл имя человека, но помню что он доцент и работает на экономике
Потому я ищу всех доцентов на каф. экономике. Просматриваю фотки сотрудников и в одной из них признаю своего обидчика. Ага вижу телефон - звоню - ругаюсь:-))



Ну хорошо.
Тогда давай начнем сначала: каковы цели пользователя достигаемые с использованием информационно-справочной системы?
мы строим информационно справочную систему скажем вуза
Пользователь может узнать такую информацию о сотрудники как
ФИО
должность
кафедра
местоположение(где он сидит) мы даже сделали такую примочку что при нажатии на помещение выдается схема расположения и как пройти от входа
телефоны
для особых пользователей еще доступна инфа по имайлу и домашнему телефону
можно увидеть фото если есть
поиск был по всем возможным сочетаниям
здание подразделение телефон долножсть фио место (команат)



мы строим информационно справочную систему скажем вуза
Пользователь может узнать такую информацию о сотрудники как
ФИО
должность
кафедра
местоположение(где он сидит) мы даже сделали такую примочку что при нажатии на помещение выдается схема расположения и как пройти от входа
телефоны
для особых пользователей еще доступна инфа по имайлу и домашнему телефону
можно увидеть фото если есть
поиск был по всем возможным сочетаниям
здание подразделение телефон долножсть фио место (команат)
Хорошо, я хочу узнать ФИО сотрудника. Как в принципе система позволит это мне сделать?



Хорошо, я хочу узнать ФИО сотрудника. Как в принципе система позволит это мне сделать?

Элементарно Ватсон!
Система содержит набор непротиворечивой информации, отображающая данные о некой личности на предприятии.

Допустим - я знаю человека в лицо, знаю, что он вроде аналитик, даже помню, что он работает в таком-то отделе, а фио у него то ли Басков, то ли Белкин, а может даже и Доскин, ну не помню... Помню лишь, что начинается на букву в самом начале алфавита
И я такой вот глупый, со страческим маразмом, со слабой памятью, но свято верующий в принципы поиска, открываю ИСС, и пытаюсь по критериям отбора найти нужного мне человека.
Сначала я выбираю к примеру из выпадающего списка названия отдела
Далее набираю должность или скажем часть фамилии или просто показать всех наконец. Есть у меня возможно ограничить поиск. А тут я вспоминаю, что когда я встречался с этим человеком или мне говорили, то сказали что он располагается в кабинете номер 10.
И даже, если уж вообще, никак, ниодна запись не навевает мне ассоциацию - я к примеру вижу фейсы,
Бог мой - так вот ты какой цветочек аленький
.
Ба! Так Вас зовут Денис Бесков-Доронин. Ну! После таких поисков в жизнь не забуду..
 
ЗЫ: Надеюсь ты не в большой обиде, что я немного покуражился? В ответ можешь покуражится надо мной:-)
« Последнее редактирование: 02 Февраля 2007, 23:19:58 от Galogen »



Доброй ночи Уважаемые! Ужасно хочу спать поэтому возможны ошибки не судите строго! Завтра обязательно напишу поеснения к диаграмме!



Вот и диаграмма



Эдуард, т.е. отвечая на вопрос Boatman, можно сформулировать цели пользователя, достигаемые с помощью создаваемой системы:

А. Идентифицировать личность человека на основе обрывочных сведений
Б. Уточнить информацию о конкретном человеке
В. Узнать, кто работает в подразделениях, зданиях и помещениях вуза и на каких должностях.

Так всё? Или что-то лишнее, чего-то не учтено?

Вообще, когда задавался вопрос про то, как в принципе система позволит узнать ФИО сотрудника, я хотел увидеть аналитический сценарий (use-case description), а не набор хаотических идей по организации интерфейса системы :) Узнать ФИО - это цель типа А, так?

Про "набор непротиворечивой информации" не понял - к чему это?

"фио у него то ли Басков, то ли Белкин" - это пахнет нечётким поиском, SOUNDEX, а не поиском по подстроке.

Если в типичном вузе работает 500 человек, и ты будешь просматривать список поалфавитно, то это грозит просмотром списка из ~20 человек, что может и не так страшно.

Если ты помнишь только лицо, то это грозит просмотром списка из 500 фотографий, что, возможно, также не так сложно (по крайней мере полезно), но присутствие всех фото в системе будет обеспечить не так просто (хотя это и вопрос реализации системы).

Должна ли система помогать в цели А, если единственное, что ты помнишь о человеке - это пол и то, что ты его встречал в северном крыле?

На тему поиска и построения общих поисковых систем (не обязательно веб-поисковых), рекомендую книгу Ambient Findability и связанные статьи.



А. Идентифицировать личность человека на основе обрывочных сведений
Б. Уточнить информацию о конкретном человеке
В. Узнать, кто работает в подразделениях, зданиях и помещениях вуза и на каких должностях.
Молодец! Все именно так. Примерно так все и формулировалось в постановке дипломной работы. Создать справочную систему о сотрудниках. Для начала предполагалось отображать информацию, по которой можно было найти(идентифицировать человека) и узнать как с ним можно связаться, где найти и т.п.
В будущем предполагалось добавить инфомрацию о профессиональной деятельности (дисциплины, которые ведет сотрудник, научные его интересы, достижения и т.п.). Однако у руководства интереса система не вызвала, потому дальнейшее развитие не случилось. Правда и исходная цель была учебная - студент просто показывал свои возможности по реализации некоторой задачи

Цитировать
Вообще, когда задавался вопрос про то, как в принципе система позволит узнать ФИО сотрудника, я хотел увидеть аналитический сценарий (use-case description), а не набор хаотических идей по организации интерфейса системы
Ну, прости, не понял твоей цели. Хотя не вижу тут никакой проблемы, реализация поиска по заданным критериям имхо простая задачка. Ее можно реализовать по-разному: средствами отбора через sql или парсинг текстовых строг посредством регулярных выражений. Это никакая не проблема. Не очень понимаю почему вообще вопрос возник.

Цитировать
:) Узнать ФИО - это цель типа А, так?
Ну можно так сказать...

Цитировать
Про "набор непротиворечивой информации" не понял - к чему это?
Есть некия массив данных, который описывает некоторого человека - он непротиворечив

Цитировать
"фио у него то ли Басков, то ли Белкин" - это пахнет нечётким поиском, SOUNDEX, а не поиском по подстроке.
Естественно, предполагается, что выдается некоторая учебная информация о возможности организации поиска. есть понятие маски поиска, шаблона поиска, есть примеры использования такого поиска. Реально ФИО разделено на три поля Ф И О, для гибкости запросов
Цитировать
Если ты помнишь только лицо, то это грозит просмотром списка из 500 фотографий, что, возможно, также не так сложно (по крайней мере полезно), но присутствие всех фото в системе будет обеспечить не так просто (хотя это и вопрос реализации системы).
Вряд ли такая ситуация возможно, хотя наши студенты проучившись семестр у преподавателя частенько не знают как зовут преподавателя. Однако у них же есть другие критерии отбора - кафедра, должность, номер комнаты, что-то еще, возможно они помнят другого преподавателя с кафедры. It depends on

Цитировать
Должна ли система помогать в цели А, если единственное, что ты помнишь о человеке - это пол и то, что ты его встречал в северном крыле?
Такая задача никогда не ставилась, как явно не достижимая

Цитировать
На тему поиска и построения общих поисковых систем (не обязательно веб-поисковых), рекомендую книгу Ambient Findability и связанные статьи.
Спасибо за ссылки, но думаю пока особой проблемы нет.

Возможно, это моя ошибка. Я не довел цель задачи. Хотя я думаю многие ее поняли именно так, как я ее задумывал. Есть некоторое решение с использованием структурных методов. Модель прилагалась.
Задача заключалась в том, как подобная модель могла бы выглядеть, если ее строить как диаграмму классов.

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

Т.е. к примеру у нас есть
Завкаф Сидоров Профессор к.10 корпус Г
и для него же
Декан Сидоров Профессор к. 15 корпус А

Результат был для исходной модели
Завкаф Сидоров Профессор к.10 корпус Г
Завкаф Сидоров Профессор к.15 корпус А
Декан Сидоров Профессор к. 15 корпус А
Декан Сидоров Профессор к. 10 корпус Г

Решение проблемы были реализовано через образование связи между Помещением и Должностью и разрывом связи между Должностью и Сотрудником, ну и другие дополнения. Т.е. пришлось нарушить строгую орагнизацию (как мы ее понимали), а контроль целостности возложить на рнр скрипт, тем более в mysql именно так часто и делают, теряя бизнес-логику на стороне сервера и приобретая большее быстродействие.
Но говорю решений ведь может быть много, наше не идеальное, как говорится сумели, так и сделали. Надеюсь не совсем по дилетански:-))



Вот и диаграмма

Slav, привет! Не понял логику использования квалификаторов.

Вот связь организация -здание.
Мы же не рассматриваем все совокупные организации скажем города, хотя естественно, можем рассширить.
Что-то никак не могу прочесть твои квалификаторы в этой и последующей связи. Может квалификатор должен стоять такие у здания,а не у организации?

Аналогично связь здание - помещение.

Стрелка около абонента не понятна. Должность или подразделение расширяет понятие абонента?

Факт, что должность закрепелена за помещением будем в целом считать не существенным. Не место красит человека, а человек место. Просто, если заострять на этом внимание, то мы не сможем определить ни одно помещение, не задав должность, либо надо ставить минимальную кратность у должности - 0. Кроме того в такой постановки теряется такой факт: в одном помещении могут находится люди разных и должностей и одной и той же должностью, а люди одной и той же должности могут работать в разных помещениях.

И потом телефон все-таки закреплен за помещением, а недолжностью или человеком. конечно, скажем ректор переехал в другой кабинет и забрал телефон. Ясно что телефон служит человеку. Но телефон и помещение - понятия родственные - из физического мира.
А должность, подразделение и т.п. - понятия абстрактные.

В общем SLAV - только тройка:-). В n-арных задачах  ты был великолепен, а тут что-то не так

« Последнее редактирование: 04 Февраля 2007, 11:33:12 от Galogen »



Добрый  день! Galogen я же писал, что ночь, ужасно хочется спать, строго не судите и т.д. ! Теперь о тебе! Вспомним известное: не судите да не судимы будите! Профессор не спешите мне ставить двойки! Ну поехали! 
Цитировать
Мы же не рассматриваем все совокупные организации скажем города, хотя естественно, можем расширить.
В предметной области существует понятие “Организация” специализацией, которого является понятие “ВУЗ”. Это видно из моей диаграммы. Если бы понятие “Организация”  не вводилось, а вводилось только понятие “ВУЗ”, то  даже в этом случае “Здание” пришлось бы квалифицировать.  Номера и наименование корпусов, в общем случае, уникальны только в пределах одного ВУЗа, а не на всем множестве. Я не прав? Что же говорить об организациях в целом?
Цитировать
Может квалификатор должен стоять такие у здания,а не у организации?
Квалификаторы ставятся  у того конца ассоциации, который соединен с понятием, в пределах которого осуществляется квалификация.  Номер и наименование здания уникальны в пределах ВУЗа. Вот так следует читать данную квалифицированную ассоциацию. Хочу заметить что, это придумал не я,  это Буч, Рамбо, Якобсон. Троечники что скажешь  ;)!
Цитировать
Аналогично связь здание - помещение.
Аналогично!
Цитировать
Стрелка около абонента не понятна. Должность или подразделение расширяет понятие абонента?
Оба понятие “Должность” и “Подразделение” специализируют понятие “Абонент”.  Пользователь требует все телефоны деканата, кто в этом случае абонент? Пользователь требует телефон декана, кто абонент?
Цитировать
Факт, что должность закрепелена за помещением будем в целом считать не существенным. Не место красит человека, а человек место.
“Должность” это класс-ассоцициации. Сотруднику не соответствует номер телефона, он соответствует должности. Неважно где сидит Иванов. Важно где сидит декан.
в одном помещении могут находится люди разных и должностей и одной и той же должностью, а люди одной и той же должности могут работать в разных помещениях.
Я не правильно назвал ассоциацию, исправляю.
Цитировать
И потом телефон все-таки закреплен за помещением, а недолжностью или человеком. конечно, скажем ректор переехал в другой кабинет и забрал телефон. Ясно что телефон служит человеку. Но телефон и помещение - понятия родственные - из физического мира.
А должность, подразделение и т.п. - понятия абстрактные.
Ты путаешь два понятия находящиеся на разных уровнях абстракции. Телефон – это телефонный аппарат или номер телефона? Я ввёл  только “Телефонный номер” так как понятие аппарата в данном контексте никому не интересно и ничего не значит.
Я изменил диаграмму.



! Теперь о тебе! Вспомним известное: не судите да не судимы будите! Профессор не спешите мне ставить двойки! Ну поехали! 
Да не сужу я, не сужу. И двойки не ставил, а тройку:) И то с умыслом:-) Умысел удался..

Цитировать
“Здание” пришлось бы квалифицировать.  Номера и наименование корпусов, в общем случае, уникальны только в пределах одного ВУЗа, а не на всем множестве. Я не прав?
Да прав,конечно. Только чем тебя например не устраивала ассоциация без квалификатора?

Цитировать
Квалификаторы ставятся  у того конца ассоциации, который соединен с понятием, в пределах которого осуществляется квалификация.  Номер и наименование здания уникальны в пределах ВУЗа. Вот так следует читать данную квалифицированную ассоциацию. Хочу заметить что, это придумал не я,  это Буч, Рамбо, Якобсон. Троечники что скажешь  ;)
да нечего сказать, только признать свою не правоту...

Цитировать
Оба понятие “Должность” и “Подразделение” специализируют понятие “Абонент”.  Пользователь требует все телефоны деканата, кто в этом случае абонент? Пользователь требует телефон декана, кто абонент? “Должность” это класс-ассоцициации. Сотруднику не соответствует номер телефона, он соответствует должности. Неважно где сидит Иванов. Важно где сидит декан.
Могет быть, могет быть

Просто я исходи из такого факта. Помещение вещь стабильная. Что будет в помещении не так важно. Помещение может сметить владельца, там установят или удалят телефон, там будет работать или нет декант и прочее. Но помещение останется. Нумерация кстати тоже в принципе может сменится. Но маловероятно.

Т.е. когда мы делали сие приложение мы исходили из этого факта. А остальное просто навешивали к помещению. При этом, так же держали в голове и реализацию. Возможно не совсем корректный подход




 

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