Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 49
Текст из файла (страница 49)
Банки предоставляют собственное обеспечение для своих компьютеров. Вы должны разработать программное обеспечение для банкоматов и для компьютерной сети. Стоимость системы будет разделена между банками в соответствии с количеством клиентов-владельцев карт. 11.4. Резюме Первый этап проекта — рождение идеи приложения.
Можно придумать новую систему или усовершенствовать существующую. Перед тем как вкладывать средства и время в разработку, нужно оценить возможность создания системы, затраты и риски, связанные с ее разработкой, потребность в системе и отношение выигрыша 216 Глава 11 ° Концептуализация системы к затратам. Нужно учитывать точки зрения всех заинтересованных лиц и идти на компромиссы, необходимые для повышения вероятности успеха проекта, не только технического, но и коммерческого.
При этом исходная идея обычно корректируется. Когда концептуализация системы заканчивается, можно приступать к постановке задачи, которая послужит отправной точкой для анализа. Постановка задачи не обязательно должна быть полной, она может измениться в процессе разработки. Сформулированная на бумаге задача помогает сосредоточить внимание на проекте. Упражнения 11.1.
(3) Рассмотрим новую противоблокировочную тормозную систему (АВ5) для автомобиля. Придумайте развернутые ответы на перечисленные ниже вопросы. о Для кого предназначено приложение? Кто входит в число заинтересованных лиц? Оцените количество потенциальных покупателей в своей стране. ч Укажите три свойства, которыми должно обладать приложение, и три других свойства, которыми оно обладать не должно. о Укажите три системы, с которыми должно работать приложение. о Укажите два наиболее серьезных риска.
11.2. (3) Повторите упражнение 11.1 для программного обеспечения книжного интернет-магазина. 11.3. (3) Повторите упражнение 11.1 для программного обеспечения, предназначенного для проведения модернизации кухни. 11А. (3) Повторите упражнение 11.1 для системы проведения сетевого аукциона. 11.5. (4) Подготовьте постановку задачи (аналогично тому, как мы сделали это для банкомата) для каждой из перечисленных ниже систем.
Вы можете ограничить область применения системы, однако будьте конкретными и не принимайте решений о реализации. Каждая спецификация должна состоять из 75-150 слов. 1) Программа для игры в бридж. 2) Разменный автомат. 3) Система автоматического контроля скорости для автомобиля. 4) Электронная пишущая машинка. 5) Программа проверки орфографии. 6) Автоответчик для телефона. 11.6. (3) Сделайте приведенные ниже требования более точными, изменив их формулировку.
Выкиньте все решения, относяшиеся к проектированию и реализации, выдвинутые в качестве требований. 7) Система передачи данных с одного компьютера на другой по телефонной линии. Система должна обеспечивать надежную передачу данных по зашумленным линиям. Если принимающий компьютер не успевает обрабатывать данные или линия временно не позволяет выполнять Упражнения 217 передачу, данные не должны быть утеряны. Данные следует передавать пакетами по протоколу с ведущим и ведомым, в котором получатель подтверждает (или отрицательно подтверждает, то есть сообщает об ошибке) все принятые пакеты. 8) Система автоматизации производства деталей со сложной механической обработкой. Детали проектируются в трехмерном редакторе, который входит в состав системы. Система должна давать на выходе ленту, которая может использоваться станками с ЧПУ для реального производства деталей.
9) Настольная издательская система, работающая по принципу ЮУЯ1%УС. Система должна уметь работать с текстом и с графикой. Графические элементы включают линии, квадраты, прямоугольники, многоугольники, окружности и эллипсы. Внутри системы окружность представляется как частный случай эллипса, а квадрат — как частный случай прямоугольника. Система должна поддерживать интерактивное редактирование документов в графическом режиме. 10) Система генерирования бреда. На вход поступает некоторый документ. На выходе должен появляться случайный текст, имитирующий входной документ благодаря воспроизведению частот появления комбинаций букв входного текста.
Пользователь указывает порядок имитации и размер выходного текста. Имитация порядка Х означает, что каждая последовательность из Н выходных символов присутствует во входном тексте примерно с той же частотой. По мере повышения порядка стиль выходного текста становится все ближе к стилю входного текста. Система должна генерировать выходной текст следующим образом. Сначала случайно выбирается некоторая позиция входного текста. Затем входной текст сканируется вперед до тех пор, пока не будет найдена последовательность символов, в точности соответствующая последним Х вЂ” 1 выходным символам. Если при этом достигается конец входного документа, сканирование необходимо продолжить с его начала. После обнаружения соответствия первая буква, следующая за найденной последовательностью, копируется в выходной документ.
Процедура повторяется до тех пор, пока не будет сгенерирован необходимый объем бреда. 11) Система распространения электронной почты в компьютерной сети. Каждый пользователь системы должен иметь возможность отправлять почту с любого компьютера и получать почту по одной, принадлежащей ему, учетной записи. Система должна предоставлять средства для ответа на письма и для их пересылки, а также для сохранения сообщений в файл и для их распечатки. Кроме того, пользователи должны иметь возможность отправлять письма сразу нескольким другим пользователям при помощи списков рассылки.
Каждый компьютер сети должен уметь хранить сообщения, предназначенные для временно отключенных от сети компьютеров. Анализ предметной области Целью анализа предметной области — следуюшего этапа разработки — является выработка точной, четкой, доступной для понимания и, наконец, корректной модели реального мира. Прежде чем строить что-то сложное, строитель должен понять требования, которые будут предъявлены к его продукту.
Требования можно выражать словами, но слова часто оказываются неточными и двусмысленными. На этапе анализа разработчики занимаются строительством моделей и пытаются достичь глубокого понимания требований. Чтобы построить модель предметной области, нужно провести интервью с экспертами в атой области, изучить составленные требования и тшательно исследовать связанные артефакты. Вам придется проанализировать скрытый смысл требований и переформулировать их в более строгой форме.
Очень важно в первую очередь выделить наиболее значительные черты, а мелкие детали откладывать на потом. Успешная аналитическая модель показывает, что должно быть сделано, но не ограничивает возможности реализации. В этой главе вы научитесь применять объектно-ориентированные концепции для конструирования модели предметной области. Эта модель служит нескольким целям: она уточняет требования, лежит в основе соглашения между заинтересованными лицами и разработчиками и становится отправной точкой для проектирования и реализации. 12.1.
Обзор этапа анализа Анализ начинается с постановки задачи, которая была выполнена на этапе концептуализации системы (рис. 12.1). Формулировка может быть неполной или неформальной. Анализ делает ее более точной и выявляет неоднозначности и несогласованности. Формулировку задачи не следует воспринимать как нечто неизменное. Она должна служить основой для определения реальных требований. 12.1.
Обзор этапа анализа 219 Вы должны достичь понимания реальной системы, которую описывает формулировка задачи, и представить ее важнейшие черты в виде модели. Утверждения, сделанные на естественном языке, часто бывают двусмысленными, неполными н несогласованными. Аналитическая модель — зто точное, четкое представление задачи, позволяюШее отвечать на вопросы и строить решение. На этапе проектирования вы будете ссылаться именно на аналитическую модель, а не на исходную туманную формулировку задачи. туапизация мы из предметной области из приложения ироааниа Рис. 12.1. Обзор этапа анализа Еше важнее то, что процесс конструирования точной модели предметной области заставляет разработчика бороться с отсутствием взаимопонимания между ним и заинтересованными лицами на ранней стадии процесса разработки, когда последствия недопонимания легче устранить.
Аналитическая модель описывает три аспекта объектов: их статическую структуру (модель классов), взаимодействия между ними (модель взаимодействия) и жизненные циклы объектов (модель состояний). Важность каждого аспекта зависит от задачи, Модели классов, выведенные из сущностей реального мира, оказываются полезными почти для всех задач. В задачах, связанных с обработкой событий (например, пользовательские интерфейсы и управление процессами), будут важны аспекты состояний. В задачах, связанных со сложными вычислениями и различными видами пользователей, будут важны аспекты, отражаемые в модели взаимодействия.