Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Евгений / идз1 / Пособие_Об_анал1.doc
Скачиваний:
16
Добавлен:
31.03.2015
Размер:
1.1 Mб
Скачать

Выбор объектов

Объект— это человек, место или предмет. (Класс — это описание, применимое к любому из конкрет­ного числа объектов.)

В данном разделе изложены стратегии "выбора объектов", разбитые на категории:

— образцы игроков

— компоненты модели

— виды объектов

— аналогии

— повторное использование

— имена

— что рассматривать и о чем спрашивать.

Выбор объектов — образцы игроков

#13. Стратегия "Выбор актеров" выбор объектов (образцы игроков)

• Найдите актеров — людей и организации, которые действуют в качестве участников рассматриваемой системы.

• Примеры: человек, организация (агентство, компания, корпорация, фонд).

#14. Стратегия "Выбор участников" выбор объектов (образцы игроков)

• Проанализируйте участие каждого актера с точки зрения интересов рассматриваемой

системы.

• Каждый актер в течение времени может вести себя одинаково и по-разному. Актер один и тот же — способы его участия в системе различны. Образно говоря, это то же самое, что носить разные шляпы в течение одного и того же дня.

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

#15. Стратегия "Выбор мест" выбор объектов (образцы игроков)

• Найдите места для расположения вещей и для хранения или расположения других объектов.

• Примеры: аэропорт, сборочный конвейер, банк, клиника, железнодорожная станция, геогра­фическая точка, ангар, больница, промышленный узел, плантация, регион, торговый центр, сервисный центр, полка, станция, магазин, склад, зона.

#16. Стратегия "Выбор реальных вещей" выбор объектов (образцы игроков)

• Найдите реальные вещи, используемые в данной проблемной области. • Рассмотрите бизнес-процессы и из множества объектов выберите реальные.

• Примеры: счет, кассовый аппарат, выдвижной ящик для денег кассового аппарата, экземпляр товара, план, процедура, продукт, расписание, запланированное событие.

#17. Стратегия "Выбор транзакций" выбор объектов (образцы игроков)

• Найдите транзакции — запомненные события, события, о которых система все время должна помнить. Транзакция — это момент времени (например продажа) или временной интервал (например прокат).

• Найдите вхождение записи, с которым необходимо работать, чтобы отвечать на вопросы или осуществлять контроль.

• Примеры: договор, оценка, авторизация, контракт, поставка, депозит, происшествие, запрос, заказ, оплата, тематический отчет, покупка, возврат, регистрация, прокат, резервирование, продажа, перестановка, поставка, подписка, временная скидка, заглавие, отзыв.

• Замечание. Почти все транзакции состоят из ряда экземпляров строк транзакции. • Замечание. Возможные источники транзакций:

Окно (зарегистрированное событие основано на взаимодействии с человеком в некоторый момент времени); Другой объект, отслеживающий важные события и регистрирующий их; Другая система, с которой ваша система взаимодействует для регистрации событий.

#18. Стратегия "Выбор компаньонов" выбор объектов (образцы игроков)

• Ищите компаньонов — объекты, знающие друг друга, но при этом: игнорируйте информацию или службы, относящиеся к совокупности объектов игнорируйте историю этой совокупности.

• В большинстве случаев эта стратегия применима к взаимодействию объектов, реальные участники которого тесно связаны между собой.

• Примеры: элерон-гироскоп; самолет-взлетная полоса; здание-датчик; водитель-автомобиль; блок погрузки-заказ; заказ-груз; грузовик —блок погрузки.

#19. Стратегия "Выбор экземпляров и конкретных экземпляров" выбор объектов (образцы игроков)

• Найдите экземпляры — дескриптивные объекты со значениями, относящимися к некоторым конкретным экземплярам, и действия, применимые к ним.

• Примеры: самолет-конкретный самолет, описание займа-конкретный заем, описание работы-конкретная работа, описание видеокассеты-видеокассета, экземпляр категории цены-конкретный экземпляр, экземпляр категории налога-конкретный экземпляр.

#19а. Стратегия "Разделение определения и применения" выбор объектов (образцы игроков)

• Когда нужно что-то определить (стандартные части плана или расписания, стандартные описания продукта), а затем применить полученный результат (конкретный план, расписание на текущий день, конкретный результат объединения), включите в модель и классы описа­ния (каждый объект похож на каталог), и классы применения (каждый объект следит за тем, что происходит в конкретное время).

• Это пример повторного применения образца #9 "Экземпляр-конкретный экземпляр".

#20. Стратегия "Выбор взаимодействующих систем и устройств" выбор объектов (образцы игроков)

• Найдите другие системы, с которыми должна взаимодействовать ваша система.

• (Системы реального времени.) Найдите устройства, которые нужны системе для получения данных и управления ими.

• Добавьте эти устройства к компоненту PD. Пример: датчик.

• Добавьте к компоненту взаимодействия систем сопутствующий класс SI. Пример: sensorSI. (Объекты SI инкапсулируют конкретные потребности связи, необходимой для взаимодейст­вия с другой системой или устройством.)

#20а. Стратегия "Добавление внешних/внутренних запросов" выбор объектов (образцы игроков)

• Добавляйте объекты PD и SI, разграничивая логические и физические потребности взаимо­действия систем.

• Для PD добавляйте объект внешнего запроса (чтобы контролировать посылающий запрос объект и номер запроса, что позволит правильно обрабатывать внешние асинхронные запросы).

• Для PD добавляйте объект внутреннего запроса (для синтаксического анализа и маршрути­зации команды, поступающей из другой системы, и определения, кому возвращать резуль­таты обработки запроса).

#21. Стратегия "Выбор множеств объектов" выбор объектов (образцы игроков)

• Рассматривайте каждый объект как рабочего в конкретном множестве. Присвойте множествам имена.

• Рассматривайте каждый объект как множество рабочих. Присвойте рабочим имена. • Примеры: Множество участников: компания, отдел, группа, организация, отряд, команда. Множество мест: аэропорт, кампус, цепь магазинов.

Множество предметов: объединение, набор, партия, список, журнал регистрации, очередь, общий фонд.

#22. Стратегия "Выбор контейнера объектов" выбор объектов (образцы игроков)

• Используйте относящийся к данной области контейнер, содержащий другие объекты.

• Примеры: аэропорт, самолет, секция, банк, бункер, здание, кабинет, папка, гараж, ангар, больница, шкаф, комната, сейф, товарный склад.

#23. Стратегия "Выбор множества" выбор объектов (образцы игроков)

• Как быть если нужно множество объектов, а у такого множества еще нет специального имени?

Введите множество, используя множественное число рабочего имени. Пример: системы авторизации.

Введите множество, прибавляя к рабочему имени слово "множество" или "сервер". Пример: сервер авторизации.

#24. Стратегия "Выбор наименьшего применимого множества" выбор объектов (образцы игроков)

• Используйте наименьшее в данной области множество в рамках обязанностей системы для выражения обязанностей во всем этом множестве.

• Примеры: бункер, секция, склад, город, графство, штат, страна, команда, отдел, организа­ция, компания, промышленность.

Выбор объектов — компоненты модели

#25. Стратегия "Компоненты объектной модели выбор объектов в роли путеводителя" (компоненты модели)

• Используйте компоненты объектной модели в качестве каркаса организации поиска объектов.

• (PD): проблемная область (HI): взаимодействие с человеком (DM): управление данными (SI): взаимодействие систем (NT): не сейчас

#26. Стратегия "Характерное свойство, объекты PD, объекты HI" выбор объектов (компоненты системы)

• Постройте таблицу со столбцами: характерное свойство, соответствующие объекты проблемной области, соответствующие объекты взаимодействия с человеком.

• Таблица нужна для идентификации объектов и определения того, кто с кем взаимодействует.

#27. Стратегия "Выбор окон: первый шаг" выбор объектов (компоненты модели)

• Создайте окна для каждого объекта проблемной области, с которым вы работаете. • Если объект имеет экземпляры строк, смоделируйте их в одном окне.

#28. Стратегия "Выбор окна регистрации" выбор объектов (компоненты модели)

• Если система должна знать, кто ее применяет, создайте окно регистрации для контроля за доступом и для отчетности.

• Примеры: окно регистрации кассира, окно регистрации клиента, окно регистрации клерка по заказам или просто окно регистрации.

#29. Стратегия "Выбор окна установки" выбор объектов (компоненты модели)

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

Установите упомянутые действия вместе с окном, которое знает объекты, способные выполнять их.

в Замечание: не включайте в модель вхождения данных тип экрана, управление клавиатурой, мышью, устройством считывания с магнитной ленты и т.п.

#30. Стратегия "Выбор главных окон" выбор объектов (компоненты модели)

• Рассмотрите, кто (аудитория) испытывает потребность, в чем (содержание) и почему (цель). • Создайте окна "ведения бизнеса". Создайте окна транзакций. Примеры: окно продажи, окно сеанса, окно оплаты. • Создайте окна "анализа результатов бизнеса". • Рассмотрите окна комбинаций, когда экземпляры содержания тесно связаны во времени. Примеры: транзакция и экземпляры ее строки; продажа и окно оплаты.

#30а. Стратегия "Выбор окон HI для транзакций PD" выбор объектов (компоненты модели)

• Для каждого объекта транзакции PD: окно списка Н! и окно деталей HI. Пример: Registration (PD); RegistrationsWindow (HI); RegistrationDetailWindow (HI).

#31. Стратегия "Выбор отчетов" выбор объектов (компоненты модели)

• Соедините главные сводки и специальные выводы, удовлетворяющие конкретным норматив­ным или деловым потребностям.

• Внимательно рассмотрите, кто (аудитория) испытывает потребность, в чем (содержание) и почему (цель).

• Не включайте в модель специальные (ad hoc) вопросы, которые кто-то случайно может задать, а также устаревшие пакеты отчетов.

#32. Стратегия "Выбор объектов управления данными" выбор объектов (компоненты модели)

• Выберите объекты DM для каждого класса объектов проблемной области. Они должны быть постоянными, т.е. сохраняться в перерывах между вызовами программы.

• Используйте объекты DM для инкапсуляции механизмов поиска и хранения для всех объектов в классе проблемной области.

• Примеры: DM кассира, DM продажи, DM экземпляра строки продажи, DM экземпляра товара.

#33. Стратегия "Выбор взаимодействующих систем или устройств" выбор объектов (компоненты модели)

• Выберите объект.

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

Определите взаимодействующие системы, а также устройства, требующие получения данных и управления ими. (Избегайте вывода на экран или печати несущественных деталей.)

• Примеры: элерон, авиационная система, контроллер, громоотвод, лифт, радар, руль направ­ления, сенсор, сканер.

• Постройте модель объекта. Используйте объект проблемной области Применяйте подходящий объект SI, инкапсулирующий экземпляр связи низкого уровня.

Выбор объектов — виды объектов

#34. Стратегия "Выбор видов объектов" выбор объектов (виды объектов)

• Применяйте метод обобщения-ограничения (gen-spec) для поиска дополнительных классов.

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

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

• Применяйте gen-spec при повторном использовании объектов данной области в приложе­нии, а управление конфигурацией - для повторного использования объектов во многих приложениях и даже во многих проблемных областях.

• Используйте gen-spec, чтобы показать, что в приложении совпадает, а что отличается.

• Примеры: оборудование, виды оборудования, участники, виды участников, транзакции, виды транзакций.

#34а. Стратегия "Постоянное соответствие выбор объектов (виды объектов) классу ограничения"

• Применяйте обобщение-ограничение (gen-spec), когда объект можно классифицировать как принадлежащий классу ограничения и в том случае, если он должен оставаться в данном классе.

• В противном случае используйте образец #3 "Актер-участник" (называемый "композицией" а не "наследованием").

Выбор объектов — аналогии

#35. Стратегия "Выбор соответствующих объектов выбор объектов (аналогии) из аналогичной системы"

• Ищите систему аналогичного назначения,

в Исследуйте ее объекты, отыскивая те из них, которые по аналогии соответствуют объектам, необходимым для вашей системы.

• Добавьте эти объекты (называемые "метафорами") к своей объектной модели.

Выбор объектов — повторное использование

#36. Стратегия "Выбор и повторное использование выбор объектов аналогичных классов" (повторное использование)

» Ищите классы, которые можно применить. • Рассматривайте синонимы. • Уточните более общее имя, используя оборот "... является видом...".

в Используйте метафоры (объекты, соответствующие данному) в аналогичных системах (в системе аналогичного назначения).

в Предупреждение. Избегайте метафор, основанных на действиях людей. Вместо этого сосре­доточьтесь на объектах, с которыми производятся действия. Пусть они действуют самостоя­тельно. (В противном случае появятся управляющие объекты и объекты данных. В результате ослабляется связность и усиливается соединение).

#37. Стратегия "Выбор и повторное использование выбор объектов группы взаимодействующих объектов" (повторное использование)

» Используйте повторно другой экземпляр образца. • Повторно применяйте другой экземпляр образца, выделяя один или более из его классов. • Повторно используйте образец по аналогии.

Выбор объектов — имена

#38. Стратегия "Применение словаря области" выбор объектов (имена)

• Используйте словарь области.

» Попросите экспертов в данной области удалить те имена предметов, которые не созданы экспертами.

• Не говорите за экспертов своими словами. • Не изменяйте словарь, если эксперт не скажет, что это необходимо.

•> Не изменяйте словарь области, пока эксперты не решат изменить свой собственный словарь.

#39. Стратегия "Термины области и добавления к ним" выбор объектов (имена)

• Используйте имя области в компоненте проблемной области. • В других компонентах применяйте то же самое имя с суффиксом. • Примеры: клиент, окно клиента, DM клиента; альтиметр, индикатор альтиметра, SI альтиметра.

#40. Стратегия "Постоянный поиск лучших имен классов" выбор объектов (имена)

• Ищите лучшие имена классов. Рассматривайте синонимы. Исследуйте более общие имена, используя форму "... является видом ...".

Рассматривайте метафоры (объекты, соответствующие данному объекту) в аналогичной системе (системе аналогичного назначения).

#41. Стратегия "Правильный формат имен классов" выбор объектов (имена)

• Используйте имя, описывающее объект в классе (обычно это единственное имя).

• Если объект является множеством, употребляйте единственное имя области, составное имя ее частей или имя отдельной части, дополненное словом "множество" или "сервер".

• В объектной модели начинайте каждое имя класса с прописной буквы (а все другие имена — со строчных букв).

Выбор объектов — что рассматривать и о чем спрашивать

#42. Стратегия "Обязанности системы" выбор объектов (рассматривайте и спрашивайте)

• Обязана ли система что-то знать о данном объекте или что-то делать с ним? • Если нет, поместите этот объект в компонент модели "не сейчас".

#43. Стратегия "Дублирование обязанностей" выбор объектов (рассматривайте и спрашивайте)

• Является ли данный объект дубликатом другого объекта? Одинаковы ли обязанности объектов при различных именах?

в Дублирование объектов возникает в больших организациях и системах.

• При дублировании ищите общее имя (используйте словари, тезаурусы и касающиеся данной области книги и статьи).

#44 Стратегия "Реинжиниринг объектов" выбор объектов (рассматривайте и спрашивайте)

• Ищите объекты (и повторяющиеся примеры образцов) которые, вероятно, имеют одни и те же обязанности и реально отражают организационную границу или границу предыдущей системы.

• Для получения более простой объектной модели следует моделировать объекты один раз, а также составлять рекомендации по реинжинирингу организации.

#45. Стратегия "Полезные вопросы" выбор объектов (рассматривайте и спрашивайте)

• Какие полезные вопросы нужно задать объекту, включаемому в объектную модель? • Примеры: Сколько за интервал времени? Каково ваше состояние?

#46 Стратегия "Более чем отчет" выбор объектов (рассматривайте и спрашивайте)

• Является ли отчет просто объектом взаимодействия с человеком, формой представления значений проблемной области и результатов вычислений? Или же в нем заключено то, о чем должна знать система и с чем она должна постоянно работать?

• Добавьте отчет к объектной модели, если система отвечает за создание и запоминание его содержания.

#47. Стратегия "Способ узнать" выбор объектов (рассматривайте и спрашивайте)

• Необходим способ узнавания каждого объекта и значений его атрибутов.

• Если способа узнавания объектов нет, нужно его найти или поместить объект в компонент модели "не сейчас".

• Пример: покупатель. Необходим способ узнавания объекта "покупатель"; при его отсутствии следует поместить покупателя в компонент модели "не сейчас".

#48. Стратегия "Объекты, имитирующие действия людей" выбор объектов (рассматривайте и спрашивайте)

• Не позволяйте объектам имитировать действия людей (если только вы не строите имитационную систему). В противном случае объекты будут сведены к контроллерам, а функциональность к нулю.

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

#49. Стратегия "Альтернативный способ выбор объектов взаимодействия с человеком" (рассматривайте и спрашивайте)

• Посмотрите, что будет при применении совершенно другого способа взаимодействия с человеком (например, при применении голосовых команд).

• Изменятся ли при этом каким-нибудь объекты проблемной области? Если да, то обратите на них пристальное внимание. Отделите представление от того, что реально происходит в проблемной области.

• Примеры: индикатор вертикальной скорости (взаимодействие с человеком) и гироскоп вер­тикальной скорости (проблемная область), сигнал светофора (взаимодействие с человеком) и полоса движения (проблемная область).

Соседние файлы в папке идз1