Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[2 курс] Вопросы к экзамену Программная инженерия.docx
Скачиваний:
5
Добавлен:
20.08.2020
Размер:
46.82 Кб
Скачать
  1. Функциональная и нефункциональная спецификация.

Во внешнем описании присутствуют две самостоятельные части:

1) Функциональная спецификация ПС – она определяет функции, которые должна выполнять ПС и описывает поведение ПС. Также функциональная спецификация определяет допустимые фрагменты программ, реализующих декларируемые функции.

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

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

  1. Архитектура пс. Основные классы архитектур.

Архитектура ПС это его строение, т.е. как оно видно извне, т.е. представление ПС как системы состоящей из совокупности взаимодействующих подсистем. При разработке архитектуры ПС определяются следующие задачи:

  1. Выделение программных подсистем и отображение их внешних функций

  2. Определение способа взаимодействия между выделенными программными подсистемами

Различают следующие классы архитектур ПС:

  1. Цельная программа – вырожденный случай архитектуры, когда в состав средства входит только одна программа. Эта архитектура свойственна в тех случаях, когда ПС должно выполнять одну ярко выраженную функцию и ее реализация не представляется слишком сложной. Архитектура не требует никакого описания (только одна программа).

  2. Комплекс автономно выполняемых программ – состоит из набора программ, организованных следующим образом:

    1. Любая программа может быть активирована пользователем

    2. При выполнении одной программы, другие программы не могут быть активизированы до тех пор, пока не закончит выполнение запущенная программа

    3. Все программы применяются для одной и той же информационной среды

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

  1. Слоистая программная система – состоит из упорядоченной совокупности подсистем. Системы формируют слои или уровни. Уровни отвечают следующим требованиям:

    1. На каждом слое ничего неизвестно, о свойствах последующих слоев (более высоких)

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

    3. Связи между слагаемыми ограничены передачами значений каждого слоя смежного снизу и передаче данных слою смежному выше.

    4. Использование глобальных данных (т.е. тех, которые используются разными слоями) недопустимо.

Пример таких систем – операционная система; стеки коммуникационных протоколов компьютерных систем

  1. Коллектив параллельно действующих программ – представляет собой набор программ, способных взаимодействовать друг с другом, одновременно находясь на стадиях выполнения. Это означает, что все они загружены в оперативную память и попеременно используют один или несколько процессоров. Обычно взаимодействие между ними осуществляется путем передачи друг другу некоторых сообщений. В простейшем случае такой архитектурой может являться конвейер, здесь единый поток данных передается от одной программы к следующей. В более сложном случае коллектив программ может быть организован в систему с портами сообщений. Код – это программная подсистема, обслуживающая очередь сообщений, она может принимать на хранение сообщения от других программ или передавать сообщения другим, для этого подсистема каждого порта находится в режиме ожидания и ждет соответствующих сообщений. Такая архитектура может быть, как жесткой конфигурации, так и гибкой (динамической). В жесткой конфигурации каждый порт связан с определенной программой. Система с гибкой конфигурацией связаны входные и выходные порты, структура которых может меняться.