Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Проектирование составных задач

Детальное проектирование ПО

Спецификация интерфейса класса

В спецификации интерфейса класса определяется интерфейс скрывающего информацию класса, в том числе его операции. Спецификация должна включать:

– описание информации, скрываемой классом, например инкапсулированную структуру данных (если речь идет о классе абстрагирования данных) или интерфейс устройства;

– критерий, на основании которого был выделен данный класс;

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

– предположительные модификации, побуждающие проектировать с учетом возможных изменений;

– суперкласс (если есть);

– унаследованные операции (если есть);

– операции класса. Для каждой операции необходимо определить:

выполняемую функцию;

предусловие (условие, которое должно выполняться перед вызовом опе­рации);

постусловие (условие, которое должно выполняться после вызова опе­рации);

инвариант (условие, которое должно выполняться всегда);

входные параметры;

выходные параметры;

вызываемые операции других классов.

Спецификацию интерфейса класса можно представить в описательной или табличной форме.

После разбиения системы на задачи и проектирования скрываю­щих информацию классов следует приступать к детальному проек­тированию программы. На этом этапе разрабатывается внутреннее устройство составных задач, содержащих вложенные объекты, подробно рассматриваются вопросы синхронизации, создаются классы-разъемы, инкапсулирующие детали межзадачных коммуникаций, и определяется внутренняя логика упорядочения событий для каждой задачи. Детальный проект подсистемы изображается на детальных диаграммах парал­лельной кооперации, которые конкретизируют диаграммы, разработанные на эта­пе разбиения на задачи. Здесь изображается внутреннее строение сгруппирован­ных задач и объектов-разъемов.

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

Отношения между задачами и классами выстраиваются следующим образом. Активный объект – задача – запускается событием: внешним, внутренним или таймера. Затем он вызывает определенную операцию пассивного объекта. Пассив­ный объект бывает вложенным в задачу или внешним по отношению к ней. Эти два случая рассматриваются отдельно.

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

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

Рассмотрим ввод/вывод с опросом с точки зрения разбиения на задачи и клас­сы. Задача выделяется при помощи критерия периодической (если устройство одно) или темпоральной (если устройств несколько) группировки. Каждое пас­сивное устройство ввода/вывода инкапсулируется в класс интерфейса устрой­ства. Необходимо определить операции, предоставляемые таким классом, и поме­стить класс внутрь задачи.

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

Рассмотрим группировку задач по управлению и объекты, скрывающие информацию. Управляющая задача активизируется асинхронно. Она вызывает операции одного или нескольких объектов.

<== предыдущая лекция | следующая лекция ==>
Примеры наследования | Синхронизация методом взаимного исключения
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 353; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.