Файл: Иванова Г.С. Технология программирования.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 20.11.2019

Просмотров: 9458

Скачиваний: 184

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Примечание

.

Возможно

боже

удачное

решение

в

классе

Алгоритм

определить

операцию

Выполнить

 () 

и

внутреннюю

абстрактную

операцию

Реализовать

метод

 (), 

которая

вызывается

из

первой

Такое

решение

позволит

не

дублировать

общее

поведение

всех

алгоритмов

например

запрос

и

распаковку

данных

а

также

упаковку

и

запись

результата

Это

решение

не

приведено

чтобы

не

усложнять

и

так

достаточно

сложный

пример

К

л

а

с

с

     

Р

е

ш

е

н

и

е

Объект

класса

Решение

обращается

к

объектам

классов

Задание

и

Алгоритм

следовательно

необходимо

хранить

их

адреса

Операции

Начать

 () 

и

Прервать

 () 

получены

из

диаграмм

последовательностей

действий

Операция

Обработать

исключение

 () 

получена

оттуда

же

но

она

должна

реализовываться

особым

образом

так

как

будет

получать

управление

через

механизм

исключений

Результаты

уточнения

приведены

на

рис

. 7.20. 

 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


background image

Проектирование

методов

класса

.

Достаточно

существенную

информацию

о

действиях

которые

должны

выполняться

методами

класса

можно

получить

анализируя

диаграммы

последовательности

действий

Однако

алгоритмы

всех

сколько

-

нибудь

сложных

методов

необходимо

проработать

детально

При

этом

можно

использовать

как

уже

известные

нотации

(

схемы

алгоритмов

и

псевдокоды

), 

так

и

диаграммы

деятельностей

.  

В

 § 6.5 

были

описаны

диаграммы

деятельностей

которые

предлагалось

использовать

в

процессе

уточнения

спецификаций

для

описания

вариантов

использования

Эти

же

диаграммы

могут

использоваться

и

при

проектировании

методов

обработки

сообщений

в

том

числе

и

затрагивающих

несколько

объектов

В

последнем

случае

целесообразно

указать

вертикальными

пунктирными

линиями

ответственности

объектов

соответствующих

классов

что

позволит

проследить

вызовы

других

объектов

Следует

помнить

что

в

соответствии

с

общими

правилами

процедурной

декомпозиции

любую

деятельность

можно

декомпозировать

и

изобразить

в

виде

диаграммы

деятельности

более

низкого

уровня

Пример

 7.8.

Построить

диаграмму

деятельности

для

операции

Начать

 () 

класса

Решение

Анализ

рис

. 6.4, 7.7 - 7.8 

показывает

что

данная

деятельность

затрагивает

три

объекта

уже

детализированных

классов

Решение

Алгоритм

и

Задание

Определим

зоны

ответственности

объектов

этих

классов

 (

рис

.721): 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

объект

класса

Решения

организует

обработку

т

е

инициализирует

переменные

 (

в

том

числе

определяет

тип

Алгоритма

), 

создает

объект

класса

Алгоритм

требуемого

типа

активизируют

обработку

а

затем

уничтожает

объект

класса

Алгоритм

объект

класса

Задание

должен

в

ответ

на

запрос

сообщить

тип

Алгоритма

предоставить

данные

и

запомнить

результаты

объект

класса

Алгоритм

отвечает

за

решение

задачи

Полностью

спроектированные

классы

реализуют

на

конкретном

языке

программирования


background image

7.5. 

Компоновка

программных

компонентов

Диаграммы

компонентов

применяют

при

проектировании

физической

структуры

разрабатываемо

программного

обеспечения

Эти

диаграммы

показывают

как

выглядит

программное

обеспечение

на

физическом

уровне

т

е

из

каких

частей

оно

состоит

и

как

эти

части

связаны

между

собой

Диаграммы

компонентов

оперируют

понятиями

компонент

и

зависимость

Под

компонентами

при

этом

понимают

физические

заменяемые

части

программного

обеспечения

которые

соответствуют

некоторому

набору

интерфейсов

и

обеспечивают

их

реализацию

По

сути

дела

это

отдельные

файлы

различных

типов

исполняемые

 (.

ехе

), 

текстовые

графические

таблицы

баз

данных

и

т

п

., 

составляющие

разрабатываемое

программное

обеспечение

Условные

графические

обозначения

компонентов

различных

типов

приведены

на

рис

. 7.22.   

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Зависимость

между

компонентами

фиксируют

если

один

компонент

содержит

некоторый

ресурс

 (

модуль

объект

класс

и

т

д

.), 

а

другой

 - 

его

использует

Качество

компоновки

оценивают

по

количеству

и

типу

связей

между

компонентами

т

е

по

степени

независимости

компонентов

На

диаграмме

компонентов

зависимость

обозначают

пунктиром

со

стрелкой

на

конце

На

рис

. 7.23 

в

качестве

примера

приведена

диаграмма

компонентов

системы

решения

комбинаторно

-

оптимизационных

задач

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


background image

При

компонентном

подходе

на

диаграмме

компонентов

целесообразно

показывать

интерфейсы

через

которые

компоненты

связаны

между

собой

 (

рис

. 7.24). 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Кроме

этого

на

диаграмме

компонентов

допустимо

уточнять

зависимость

между

компонентами

используя

обозначения

обобщения

ассоциации

композиции

агрегатирования

и

реализации

Так

на

рис

. 7.23 

и

 7.24 

показано

что

база

данных

включает

 (

отношение

композиции

две

таблицы

Используя

нотацию

 UML, 

можно

построить

диаграмму

компонентов

практически

для

любого

случая

например

для

Интернет

-

приложения

На

рис

. 7.25 

приведен

пример

диаграммы

компонентов

клиентской

части

Интернет

-

приложения

написанного

с

использованием

 Java, 

которое

в

процессе

работы

демонстрирует

некоторый

рисунок

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


background image

При

  «

сборке

» 

исполняемых

файлов

диаграммы

компонентов

применяют

для

отображения

взаимосвязей

файлов

содержащих

исходный

код

Так

на

рис

. 7.26 

показано

что

основной

файл

Main.cpp 

зависит

от

заголовочного

файла

 Model.h, 

реализация

которого

находится

в

файле

Model.cpp. 

 
 
 
 
 
 
 
 
 
 

 
 
 

Для

программного

обеспечения

с

архитектурой

  «

клиент

-

сервер

», 

диаграмму

компонентов

можно

использовать

в

качестве

структурной

схемы

определяющей

архитектуру

разрабатываемого

программного

обеспечения

так

как

она

позволяет

показать

связи

по

управлению

частей

системы

(

компонентов

). 

Однако

при

проектировании

такую

схему

необходимо

уточнить

показав

более

подробно

состав

компонентов

разрабатываемой

системы

 
 

7.6. 

Проектирование

размещения

программных

компонентов

для

распределенных

программных

систем

При

физическом

проектировании

распределенных

программных

систем

необходимо

определить

наиболее

оптимальный

вариант

размещения

программных

компонентов

на

реальном

оборудовании

в

локальной

или

глобальной

сетях

Для

этого

используют

специальную

модель

UML - 

диаграмму

размещения

Диаграмма

размещения

отражает

физические

взаимосвязи

между

программными

и

аппаратными

компонентами

системы

Каждой

части

аппаратных

средств

системы

например

компьютеру

или

датчику

на

диаграмме

размещения

соответствует

узел

Соединения

узлов

означают

наличие

в

системе

соответствующих

коммуникационных

каналов

Внутри

узлов

указывают

размещенные

на

данном

оборудовании

программные

компоненты

разрабатываемой

программной

системы

сохраняя

указанные

на

диаграмме

компонентов

отношения

зависимости

С

точки

зрения

диаграммы

размещения

локальная

и

глобальная

сети

 - 

это

тоже

узлы

которые

обладают

некоторой

спецификой

На

рис

. 7.27 

показаны

условные

обозначения

узлов

 (

процессора

и

устройства

на

диаграмме

размещения