tehnologia (1018792), страница 31
Текст из файла (страница 31)
д.Каждую системную операцию необходимо описать. Обычно описание системной операциисодержит:182• имя операции и ее параметры;• описание обязанности;• указание типа;• названия вариантов использования, в которых она используется;• примечания для разработчиков алгоритмов и т. д.;• описание обработки возможных исключений;• описание вывода неинтерфейсных сообщений;• предположение о состоянии системы до выполнения операции (предусловие);• описание изменения состояния системы после выполнения операции(постусловие).Пример 6.4. Разработать диаграмму последовательностей системы для вариантаиспользования Выполнение задания решения комбинаторно-оптимизационных задач.Анализируем описание варианта использования и определяем, что действующее лицодолжно инициировать девять системных событий, включая загрузку задания из базы, котораялогически следует из операции сохранения.
Покажем эти события на диаграммепоследовательностей (рис. 6.10). В скобках укажем параметры, которые должны формироватьэти события.183Следовательно, система должна обеспечивать выполнение соответствующих операций.Полученное множество операций приписывается классу System (рис. 6.11).Далее каждую операцию необходимо описать. Для примера опишем операциюИнициировать решение ():РазделИмяОбязанностиТипСсылкиПримечанияИсключенияОписаниеИнициировать решение()Выполнить задание и вывести результаты пользователюСистемнаяВариант использования Выполнить заданиеПредусмотреть возможность прерывания процесса решенияпользователем1.
Если в задании указаны не все исходные данные, то вывестисообщение об ошибке2. Если при указанных исходных данных решение задачиукачанным методом невозможно, то вывести сообщение об ошибкеВыводПредусловияПредполагается наличие всех исходных данных заданияПостусловиеПолучен результат184Диаграммы деятельностей.
В зависимости от степени детализации диаграммыдеятельностей так же, как диаграммы классов, используют на разных этапах разработки. Наэтапе анализа требований и уточнения спецификаций диаграммы деятельностей позволяютконкретизировать основные функции разрабатываемого программного обеспечения.Под деятельностью в данном случае понимают задачу (операцию), которую необходимовыполнить вручную или с помощью средств автоматизации.
Каждому варианту использованиясоответствует своя последовательность задач. В теоретическом плане диаграммы деятельностиявляются обобщенным представлением алгоритма, реализующего анализируемый вариантиспользования. На диаграмме деятельность обозначается прямоугольником с закругленнымиуглами (рис.
6.12, а).Диаграммы деятельностей позволяют описывать альтернативные и параллельныепроцессы. Для обозначения альтернативных процессов используют ромб (рис. 6.12, б), условиеуказывают над ним слева или справа, а альтернативы «да», «нет» - рядом с соответствующимивыходами. С помощью этого же блока можно построить циклический процесс.Множественность активации деятельности обозначают символом «*», помещенным рядом сострелкой активации деятельности, и при необходимости уточняют надписью вида «для каждойстроки».Для обозначения параллельных процессов используют линейки синхронизации (рис.
6.12,в), причем условие синхронизации можно уточнить, указав его на диаграмме. На рис. 6.13показано, что «Деятельность 1» и «Деятельность 2» могут выполняться параллельно.На этапе определения спецификацийимеет смысл уточнять только вариантыиспользования, краткое описание которыхнедостаточно для понимания сущностирешаемыхпроблем.Диаграммыдеятельностей, таким образом, можноиспользовать вместо описания нарiюн гониспользования или кик дополнение к ним.185Пример 6.5.
Построить диаграмму деятельностей, уточняющую вариант использованияВыполнение задания системы решения комбинаторно-оптимизационных задач.Учитывая описание предметной области в виде контекстной диаграммы классов, анализируемописание варианта использования. Разбиваем процесс на отдельные операции. Полученныеоперации показываем на диаграмме деятельностей (рис.
6.14).186Контрольные вопросы и задания1. В чем сущность объектной декомпозиции?2.Для чего используют язык UML? Почему его называют языком моделирования? Чемобусловлен выбор именно этого языка в качестве стандарта описания объектных разработок?3.Какие диаграммы используют в качестве спецификаций программного обеспечения приобъектном подходе?4.Что такое «вариант использования»? Как строится диаграмма вариантов использования,и какую информацию она содержит?5.Для чего нужны концептуальные модели предметной области? Поясните методику ихпостроения.6.Какие отношения между основными понятиями предметной области отображаютконцептуальные модели?7.Какие диаграммы UML применяют для описания поведения разрабатываемого программного обеспечения?8.Что понимают под системными событиями и операциями?9.Разработайте спецификации простейшего графического редактора, использующеговекторную графику.
Какие диаграммы целесообразно строить в данном случае?1877. ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПРИОБЪЕКТНОМ ПОДХОДЕОсновной задачей логического проектирования при объектном подходе являетсяразработка классов для реализации объектов, полученных при объектной декомпозиции,что предполагает полное описание полей и методов каждого класса.Физическое проектирование при объектном подходе включает объединение классов идругих программных ресурсов в программные компоненты, а также размещение этихкомпонентов на конкретных вычислительных устройствах.7.1. Разработка структуры программного обеспечения при объектномподходеБольшинство классов можно отнести к определенному типу, который применительно кданному подходу называют стереотипом, например:• классы-сущности (классы предметной области);• граничные (интерфейсные) классы;• управляющие классы;• исключения и т.
д. (рис. 7.1).Классы-сущности используют для представления сущностей реального мира иливнутренних элементов системы, например структур данных. Как правило, они не зависят отокружения, и их используют в различных приложениях. Для выявления классов-сущностейизучают описания вариантов ис-188пользования, концептуальную модель и диаграммы деятельностей. Полученный такимобразом список классов-кандидатов фильтруют, удаляя слова, не относящиеся к предметнойобласти, языковые выражения и т.
п. Среди оставшихся отбирают классы-кандидаты,объекты которых обладают как состоянием, так и поведением.Граничные классы обеспечивают взаимодействие между действующими лицами ивнутренними элементами системы. К этому типу относят как классы, реализующиепользовательские интерфейсы, так и классы, обеспечивающие интерфейс с аппаратнымисредствами или программными системами. Для обнаружения граничных классов изучаютпары «действующее лицо - вариант использования».Управляющие классы служат для моделирования последовательного поведения,заложенного в один или несколько вариантов использования.Если количество классов-кандидатов и других ресурсов велико, то их целесообразнообъединить в группы - пакеты. Пакетом при объектном подходе называют совокупностьописаний классов и других программных ресурсов, в том числе и самих пакетов.Объединение в пакеты используют только для удобства создания больших проектов,количество классов в которых велико.
При этом в один пакет обычно собирают классы идругие ресурсы единого назначения.Диаграмма пакетов показывает, из каких частей состоит проектируемая программнаясистема, и как эти части связаны друг с другом.Связь между пакетами фиксируют, если изменения в одном пакете могут повлечь за собойизменения в другом. Она определяется внешними связями классов и других ресурсов,объединенных в пакет. Возможны различные виды зависимости классов, например:• объекты одного класса посылают сообщения объектам другого класса;• объекты одного класса обращаются к компонентам объектов другого;• объекты одного класса используют объекты другого в списке параметров методов и т.
п.Самыми хорошими технологическими характеристиками отличается вариант, прикотором каждый пакет включает интерфейс, содержащий описание всех ресурсов данногопакета, и взаимодействие пакетов осуществляется только через этот интерфейс. Измененияреализации ресурсов пакета в этом случае не затрагивает других пакетов. И толькоизменения в интерфейсе могут потребовать изменения пакетов, использующих ресурсыданного пакета.Пакеты, с которыми связаны все пакеты программной системы, называют глобальными.Интерфейсы таких пакетов необходимо проектировать особенно тщательно, так какизменения в них потребуют проверки всех пакетов разрабатываемой системы.189На рис.
7.2 приведены обозначения нотации UML, которые допустимо использовать надиаграммах пакетов. Кроме указанных обозначений на диаграммах пакетов допустимопоказывать обобщения (рис. 7.3), что, как правило, подразумевает наличие единогоинтерфейса нескольких пакетов. В этом случае фиксируется связь от пакета-подтипа к пакетусупертипу.Пример 7.1. Разработать диаграмму пакетов системы решения комбинаторнооптимизационных задач.Анализ концептуальной модели (см.