Вы находитесь на странице: 1из 17

Технологии разработки программного обеспечения, ч.

1
_______________________________________________________________________________________________________________________________________

План лекции

• Понятие программной архитектуры


• Кто и что влияет на архитектуру
• Программный процесс

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Программная архитектура –

структура или структуры, заключающие в себе


программные элементы, их внешние свойства и
взаимосвязи

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Кто и что влияет на архитектуру


• Заинтересованные лица (stakeholders) – заказчик, конечные
пользователи, разработчики, руководители проекта, специалисты
по сопровождению и маркетингу
• Компания-разработчик – структура и характер организации
• Опыт и привычки архитекторов
• Техническая база (technical environment) – существующие в
настоящий момент технические средства

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Архитектурно-экономический цикл

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Программный процесс –
действия по организации, нормированию и управлению
разработкой программного обеспечения:
• создание экономической модели системы;
• выявление требований;
• создание новой или выбор существующей архитектуры;
• документирование и распространение сведений об архитектуре;
• анализ и оценка архитектуры;
• реализация системы на основе архитектуры;
• проверка соответствия реализации архитектуре.
______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Создание экономической модели


• Сколько должен стоить продукт?
• Каков целевой сегмент рынка?
• Насколько быстро продукт должен выйти на рынок?
• Должен ли он взаимодействовать с другими системами?
• Есть ли какие-нибудь системные ограничения, в рамках
которых он может существовать?

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Выявление требований
Существуют различные методики, в основном
предполагающие моделирование:
• Use Case,
• сценарии,
• модели конечных автоматов,
• языки формальных спецификаций и т.д.

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Создание или выбор архитектуры


Один из самых важных этапов, будет подробно
рассматриваться дальше

Осуществляется на основе требований, выявленных на


предыдущем этапе

См.также:
Фредерик Брукс. «Мифический человеко-месяц»
______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Распространение требований об архитектуре


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

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Анализ и оценка архитектуры


В процессе проектирования рассматривается множество
вариантов, из которых необходимо выбрать наиболее подходящий.
Методы:
• Architecture Tradeoff Analysis Method, ATAM (метод
анализа компромиссных архитектурных решений)
• Cost Benefit Analysis Method, CBAM (метод анализа
стоимости и эффективности)

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Реализация на основе архитектуры


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

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Проверка соответствия архитектуре


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

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

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

Образец имеет смысл рассматривать как совокупность


ограничений, накладываемых на архитектуру; на основе этих
ограничений складывается семейство соответствующих им
вариантов архитектуры.
Пример архитектурного образца: «клиент-сервер»

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Эталонная модель –
разделение между отдельными блоками функциональных
возможностей и потоков данных.

Эталонной моделью называется декомпозиция известной


проблемы на части, которые, взаимодействуя, способны
ее решить.

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

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

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Взаимосвязь архитектурных альтернатив

______________________________________
УГГУ, кафедра информ@тики, 2014г.
Технологии разработки программного обеспечения, ч.1
_______________________________________________________________________________________________________________________________________

Почему программная архитектура так важна?


1. Взаимодействие между заинтересованными лицами.
Программная архитектура – универсальная абстракция
системы, которую понимают все заинтересованные лица.
2. Начальные проектные решения. Программная архитектура
содержит сведения о том, какие решения были приняты на
ранних этапах разработки, что позволяет анализировать
проектные решения, определившие дальнейшую разработку
системы.
3. Переносимая абстракция системы. Программная архитектура –
простая модель, которая обладает свойством переносимости из
системы в систему.
______________________________________
УГГУ, кафедра информ@тики, 2014г.

Вам также может понравиться