Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на госы по АПИС.doc
Скачиваний:
30
Добавлен:
26.09.2019
Размер:
198.14 Кб
Скачать

3. Понятие и назначение программной архитектуры. Виды программных структур.

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

Назначение архитектуры

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

  2. ограничение проектных решений

    1. направляет проектные решения

    2. лежит в основе организации структуры команды

    3. позволяет прогнозировать качество системы

    4. обеспечивает простоту внесения наиболее вероятных изменений

    5. обеспечивает возможность макетирование системы для выявления проблем реализации на самых ранних этапах

    6. позволяет уточнить запланированные ресурсы и сроки

  3. архитектура — переносимая модель для повторного использования (позволяет перенести опробованные решения различного уровня абстракции в другой проект)

Виды программных структур

I. Декомпозиция на модели

1. Иерархия – разбиение крупных подсистем на модули. Модули разделяются на несколько уровней подмодулей и т.д. Часто используется как основа организации проекта и обеспечивает модифицируемость системы

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

a. Многоуровневая структура использования дополнена строгим разбиением на модули, когда уровень n может обращаться только к уровню n – 1

3. Обобщение — иерархия классов, между которыми установлены отношения обобщения. Используется для выявления сходного поведения, обеспечивает повторное использование функциональности

II. Взаимодействие

1. Логические потоки — выявление логической связи и независимой последовательности действий и возможность состязания между ними за ресурсы. Используется для выявления требований к организации параллельных исполнителей.

2. Физические потоки — выявление процессов или потоков, связи между которыми устанавливаются путем передачи данных синхронизации и/или операции исключения. Используется для управления производительностью системы, исключения взаимной блокировки и распилки узких мест

3. Потоки данных определяют совместное использование хранилищ данных, производство и потребление данных в системе, а так же операции создания хранения и доступа к данным. Необходимы для обеспечения высокой производительности и целостности данных

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

III. Распределение

1. По физически устройствам — распределение ПО, аппаратных ресурсов и каналов передачи данных по физическим устройствам. Позволяет анализировать производительность, готовность и безопасность системы, целостность данных

2. По файлам — отображение программных элементов на файловую структуру в контексте реализации, интеграции и управления конфигурацией. Необходимо для структурирования работ, обеспечения процесса сборки и развертывания

3. По исполнителям — распределение обязательств по реализации между группами разработчиков. Позволяет учитывать организационные факторы и исключать многократную реализацию одних и тех же задач разными исполнителями