- •Ответы на государственный экзамен по анализу и проектированию информационных систем
- •1. Исследование операций. Основные понятия. Виды задач.
- •2. Теория игр. Основные понятия. Виды задач.
- •3. Понятие и назначение программной архитектуры. Виды программных структур.
- •4. Атрибутный метод разработки программной архитектуры. Атрибуты качества по. Сценарии и тактики реализации качества по.
- •5. Шаблоны архитектуры. Представление централизованных данных. Шаблоны «Общий репозиторий», «Активный репозиторий», «Классная доска».
- •6. Шаблоны проектирования. Структурные шаблоны. Шаблон «Адаптер», «Заместитель».
- •7. Принципы эргономического проектирования по.
3. Понятие и назначение программной архитектуры. Виды программных структур.
Архитектура — набор структур, включающих в себя программные элементы, их внешние свойства и предусмотренные между ними взаимодействия.
Назначение архитектуры
архитектура — это универсальная абстракция системы, которая позволяет всем участникам составить общее представление о внутренней организации системы и перейти к обсуждению деталей
ограничение проектных решений
направляет проектные решения
лежит в основе организации структуры команды
позволяет прогнозировать качество системы
обеспечивает простоту внесения наиболее вероятных изменений
обеспечивает возможность макетирование системы для выявления проблем реализации на самых ранних этапах
позволяет уточнить запланированные ресурсы и сроки
архитектура — переносимая модель для повторного использования (позволяет перенести опробованные решения различного уровня абстракции в другой проект)
Виды программных структур
I. Декомпозиция на модели
1. Иерархия – разбиение крупных подсистем на модули. Модули разделяются на несколько уровней подмодулей и т.д. Часто используется как основа организации проекта и обеспечивает модифицируемость системы
2. Использование – установка отношений использования между модулями, процедурами, ресурсами, при которых для корректного формирования одного необходимо наличие корректной версии другого. Используется для выделения функциональных подмножеств и обеспечения масштабируемости системы
a. Многоуровневая структура использования дополнена строгим разбиением на модули, когда уровень n может обращаться только к уровню n – 1
3. Обобщение — иерархия классов, между которыми установлены отношения обобщения. Используется для выявления сходного поведения, обеспечивает повторное использование функциональности
II. Взаимодействие
1. Логические потоки — выявление логической связи и независимой последовательности действий и возможность состязания между ними за ресурсы. Используется для выявления требований к организации параллельных исполнителей.
2. Физические потоки — выявление процессов или потоков, связи между которыми устанавливаются путем передачи данных синхронизации и/или операции исключения. Используется для управления производительностью системы, исключения взаимной блокировки и распилки узких мест
3. Потоки данных определяют совместное использование хранилищ данных, производство и потребление данных в системе, а так же операции создания хранения и доступа к данным. Необходимы для обеспечения высокой производительности и целостности данных
4. Клиент-сервер клиенты и сервера связываются сообщениями и протоколами, взаимодействуют в процессе выполнения программы. Используются для разбиение на задачи. Распределения по физическим устройствам и выравнивания нагрузки между ними
III. Распределение
1. По физически устройствам — распределение ПО, аппаратных ресурсов и каналов передачи данных по физическим устройствам. Позволяет анализировать производительность, готовность и безопасность системы, целостность данных
2. По файлам — отображение программных элементов на файловую структуру в контексте реализации, интеграции и управления конфигурацией. Необходимо для структурирования работ, обеспечения процесса сборки и развертывания
3. По исполнителям — распределение обязательств по реализации между группами разработчиков. Позволяет учитывать организационные факторы и исключать многократную реализацию одних и тех же задач разными исполнителями