Объяснить заказчику, чем вы сейчас будете заниматься, очень просто. Собственно, и нотация IDEF1x создавалась с оглядкой на то, что пользователем этих моделей сможет быть кто угодно – от квалифицированного информационного архитектора (инфоарха) до заказчика, которому объяснили условные обозначения.
Следует, правда, понимать, что даже зная условные обозначения, заказчик вряд ли сможет самостоятельно прочитать диаграмму, если видит её впервые. Поэтому обязательно требуется зачитывать её заказчику, объясняя смысл каждой сущности и каждой связи.
Чтобы заказчику было легче вас понимать, начните с того, что попросите его предоставить ворох материалов (лучше в бумажном виде), с которыми он работает. Потом однотипные материалы (книги, распечатки новостей магазина, карточки со сведениями об издательствах) разложить «по отдельным кучкам», а разнотипные материалы (история магазина, контактная информация, условия оплаты) отложить в отдельную стопку. Весьма вероятно, что заказчик даже уже сам проделал эту работу.
Помимо явной пользы для дела, заказчику будет очень приятно, что вы настолько внимательно и с неподдельным интересом знакомитесь с его деятельностью. Задавайте ему вопросы просто «для интереса», узнайте, чем живёт он и его сотрудники, аккуратно выведывайте существующие проблемы в бизнес-процессах. Наконец, попросите его познакомить вас с другими его сотрудниками, находящимися на разных уровнях: так вам будет легче понять реалии жизни организации и увидеть будущих редакторов и администраторов сайта. | ||
На примере этих «кучек» вам будет нетрудно объяснить заказчику, что такое сущности:
Статика хранится в виде отдельных файлов, динамика хранится в базе данных.
В области деятельности предприятия может быть достаточно много сущностей, но далеко не все они являются существенными для работы сайта. Нужно выделить только самые необходимые.
Преимущество сайтов перед корпоративными брошюрами с точки зрения организации данных, заключается в возможности:
Важно объяснить заказчику, что при создании модели предметной области мы обсуждаем именно динамику, а не расстановку гиперссылок и не внешний вид страниц (иначе он будет старательно упоминать важность на сайте, скажем, контактной информации и формы обратного звонка, чем будет несказанно вас нервировать).
Что объединяет документы в каждой из «кучек» (извините, сущностей)?
Пожалуйста, сразу объясните заказчику разницу между сортировкой и фильтрацией. Как ни странно, есть немало людей, которые прекрасно справляются и с тем, и с другим интуитивно, но умом не понимают разницу этих между этими понятиями. | ||
И название книги, и её издательство написаны на обложке книги строкой текста. Однако название книги – это неотъемлемая часть самой книги, тогда как на издательство на обложке всего лишь ссылаются. Издательство существует само по себе, оно могло выпустить множество других книг. Более того, у нас даже есть отдельная стопка карточек издательств, и среди них есть карточка данного издательства.
Данные издательства (например, почтовый адрес) написаны на обложке книги, однако если бы у каждого читателя был доступ к стопке пронумерованных карточек издательств, достаточно было бы на обложке книги указать только номер карточки, а название и адрес издательства читатель нашёл бы на карточке с нужным номером. Это кажется крайне неудобным для обычной жизни, но компьютер справляется с этим легко.
А теперь представьте: издательство переехало. Во всех ранее выпущенных книгах адрес стал неверным, и с этим ничего не поделать. Но если бы на обложке был написан номер карточки, то достаточно было бы изменить адрес в этой карточке – и читатель любой, даже самой старой книги, мог бы получить актуальную информацию об адресе. И с этим легко справляется сайт.
Аналогично с автором книги – скорее всего, где-то существует картотека авторов (и нам не мешало бы ей обзавестись), и данная книга ссылается на одну из карточек.
Теперь представим, что нам надо расставить книги по полкам, и тут возникает другая проблема. В одном случае нам надо упорядочить по авторам (первая полка – все книги Иванова, вторая – Петрова, …), иногда – по издательствам (первая – «Эксмо», вторая – «Символ плюс», …), а иногда и по тематике (первая – «компьютерная литература», вторая – «психология», …) – для тематик нам тоже придётся завести картотеку. Каждый из этих вариантов называется классификацией, а если вариантов классификации много, то это называют многоаспектной классификацией (или таксономией). Каждый классификационный признак называют классификатором, а то, что мы классифицируем (в данном случае сущность «Книги») ¬– объектом классификации (классифицируемой сущностью).
Классификатор тоже иногда может быть классифицирован. Так, например, авторов можно классифицировать по городам, в которых они проживают. В этом случае авторы уже выступают не в качестве классификатора, а в качестве объекта классификации. Классификатором же является картотека (сущность) «Города».
Отношение между сущностью-классификатором и сущностью-объектом классификации называют связью между сущностями. При большом количестве сущностей структура связей может быть достаточно плотной, напоминая блюдо макарон.
Внимание! Если ваша диаграмма похожа на блюдо макарон, то вы и сами будете с трудом её читать. Заказчик же вообще впадёт в депрессию и обязательно заявит, что это для него слишком сложно и он для того вас и нанял, чтобы вы избавили его от этого ужаса. Поэтому старайтесь во время каждого таймаута располагать сущности так, чтобы количество пересечений между связями было минимально, а сущности располагались в порядке подчинённости (более общие выше или левее, чем более частные).
| ||
Связи имеют кратности. Так, обычно связь между сущностью-классификатором и сущностью-объектом классификации имеет кратность «один-ко-многим», например:
Слово «может» в данном случае означает, что даже если автор написал только одну книгу, то, в принципе, мы исходим из того, что он мог написать несколько книг, и «одна» – это частный случай «нескольких».
Пожалуй, это всё, что надо поначалу объяснить заказчику «на пальцах». В течение остальной главы мы расскажем о проектировании структуры данных подробнее.