Главная » Просмотр файлов » Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка

Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 115

Файл №1158633 Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка) 115 страницаДж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633) страница 1152019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 115)

Специальные средства помогут вам понять поток управления и структуры данных программы. Комментарии, описательные имена переменных, функций и методов еще более углубят ваше понимание системы. ° Структура базы данных. Если приложение работает с базой данных, вы можете многое узнать из этой базы. База данных описывает структуру данных и задает ограничения на них, причем точным и явным образом. ° Данные. Если доступны данные, вы можете определить большую часть их структуры. Хорошо написанная программа и дисциплинированные пользователи обычно дают более качественные данные, нежели предписывает структура данных. В больших системах можно воспользоваться небольшим м зак 699 Таблица 23.1 демонстрирует, что инженерный анализ противоположен по смыслу нормальной разработке ((огтчагг1 епй1пеег1пя): вы начинаете с существующего приложения и пытаетесь вернуться к требованиям, по которым оно строилось.

482 Глава 23 ° Унаследованные системы объемом данных, чтобы получить предварительные заключения, а затем проверить этн заключения на дополнительных данных. Проверка безусловно не может доказать правильность заключений, но чем больше данных вы проверите, тем более вероятной будет правильность заключений. ° Формы и отчеты.

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

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

° Тестовые ситуации. Тестовые ситуации позволяют проверить нормальный поток управления и необычные ситуации. Иногда они дают важные сведения. 23.1.3. Выходные данные инженерного анализа Инженерный анализ дает несколько видов полезных выходных данных. ° Модели. Модель отражает область применения и назначение приложения. Она является отправной точкой для понимания исходной программы и построения любых новых программ. ° Отображения. Вы можете связать атрибуты модели с переменными. С меньшей точностью вы можете связать программный код с моделями состояний и взаимодействий. ° Журналы. Аналитики должны записывать свои наблюдения и нерешенные вопросы. Журнал отражает принимаемые решения и их обоснование.

23.2. Построение модели классов Всегда начинайте с построения модели классов приложения. Это даст вам возможность понять классы и отношения между ними. Мы рекомендуем строить модель классов в три этапа, которые мы называем восстановлением реализации, восстановлением проекта и восстановлением анализа. 23.2. Построение модели классов 483 23.2.1. Восстановление реализации Прежде всего постарайтесь быстро изучить приложение и создайте начальную модель классов.

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

23.2.2. Восстановление проекта Теперь нужно протестировать приложение таким образом, чтобы восстановить ассоциации. Обычно ассоциация реализуется как атрибут-указатель. Кратность ассоциации в прямом направлении обычно бывает очевидна. Кратность в противоположном направлении обычно не декларируется, и вам придется определить ее из общих соображений или путем изучения кода. Во многих системах для реализации ассоциации с кратностью «много» используются совокупности указателей. В этом случае изначальная модель будет указывать на класс совокупности, а не на класс элементов. Вы должны перенести ассоциацию в класс элементов и соответствующим образом скорректировать кратность. Классы совокупностей — это механизмы реализации, которые не должны присутствовать в большинстве аналитических и проектных моделей.

Вы можете указать эти классы как рекомендуемую реализацию для ассоциаций в направлении с кратностью «много». Иногда при помощи указателей ассоциации реализуются в обоих направлениях. В этом случае необходимо идентифицировать парные указатели и объединять их в одну ассоциацию. Необходимо проверить все классы, в которых имеются парные указатели друг на друга. Если вы работаете с программным средством, оно создаст по одной ассоциации на каждый указатель. Вы должны удалить одну из ассоциаций и перенести соответствующую информацию на вторую ассоциацию. Нижнее ограничение на кратность обычно имеет значение О или 1.

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

Это подходящий момент для пересмотра модели. Является ли она удобочитаемой и согласованной? Согласуйте результаты инженерного анализа с моделями других приложений и с документацией. Покажите свою модель экспертам по приложению и учтите их рекомендации. 484 Глава 23 ° Унаследованные системы Если исходный код не был объектно-ориентированным, вам придется выводить обобщения исходя из подобия и различий структуры и поведения. Для выделения агрегаций и композиций требуется понимание приложения и внимательное изучение кода.

Например, одинаковое время существования объектов может указывать на их участие в композиции. Понимание приложения и кода требуется также для определения квалификаторов и классов ассоциации. Вы можете добавить в модель пакеты, при помощи которых организуются классы, ассоциации и обобщения. Классы из нескольких файлов можно объединить в один пакет или, наоборот, разбить большой файл кода по нескольким пакетам. 23.3. Построение модели взаимодействия Назначение каждого метода обычно бывает достаточно очевидным, а то, каким образом объекты взаимодействуют друг с другом для решения стоящих перед системой задач, обычно бывает достаточно сложно понять просто исходя из кода.

Проблема в присущей коду редуцированности: он описывает работу каждой отдельной составляющей. Система же имеет смысл только как целое: взаимодействия объектов друг с другом придают ей этот смысл. Расширить ваше понимание системы поможет модель взаимодействия. Чтобы добавить методы в модель классов, вы можете воспользоваться разделением на слои.

В данном случае слой (з11се) — это подмножество программы, сохраняющее определенную проекцию ее поведения ~%е)зег-841. Для разделения на слои нужно выбрать некоторый исходный код, подлежащий сохранению. Затем нужно пометить все операторы, используемые этим кодом. Таким образом, вы получите проекцию фрагмента поведения исходной программы.

Разделение на слои позволяет преобразовать процедурный код в объектно-ориентированное представление. Для программистов, как отмечает 1'йГе)зег-84], мышление в терминах слоев довольно естественно. Удобство работы с ними обусловливается следующими факторами: 1) их можно идентифицировать автоматически; 2) слои получаются меньше, чем исходная программа; 3) они выполняются независимо друг от друга; 4) каждый слой в точности воспроизводит проекцию поведения исхолной программы 1'1Уе1зег-841.

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

В остальных случаях модели состояний не имеют особого значения. 23.5, Рекомендации по проведению инженерного анализа 485 Если вам нужно построить модель состояний, действуйте следующим образом. На входе у вас имеются диаграммы последовательности, полученные после построения модели взаимодействий. Вы должны объединить диаграммы последовательности одного класса, упорядочив события и добавив условия и циклы (см.

главу 13). Изучение кода и проведение динамического тестирования позволит вам дополнить диаграммы последовательности. Полезно найти все возможные состояния каждого класса„для которого нужно сформулировать модель состояний. Инициация и завершение соответствуют конструкторам и деструкторам объектов. 23.5. Рекомендации по проведению инженерного анализа В этом разделе мы собрали несколько важных подсказок, которые следует иметь в виду в процессе выполнения инженерного анализа и построения моделей классов, взаимодействия и состояний.

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

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее