Бизнес и системный анализ весна 2013 лекция 7

Post on 22-May-2015

266 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

Часть 1

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

Часть 2

‹#› ЛЕКЦИЯ №7 Ключевые концепции

архитектуры программного обеспечения.

Архитектура

Модель качества

Характеристики и подхарктеристики модели качества продукта

Сценарии атрибутов качества

Профиль качества продукта

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

4

• Архитектура ПО Software architecture заключается в наборе значительных решений об организации ПО – Выборе структурных элементов и их интерфейсов

– Задании поведения системы , через определение взаимодействие этих элементов

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

– Архитектурном стиле который направляет организацию ПО

From Unified Process (Jacobson, Booch, Rumbaugh)

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

5

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

"Software architecture is the set of design decisions which, if made incorrectly, may

cause your project to be cancelled."

– Eoin Woods

6

• Все программные системы обладают архитектурой

• Даже если :

– Она не документирована

– Никто ее не понимает

– Рядом нет ни одного архитектора

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

7

Определение 1:

Описание архитектуры это набор материалов, которые

документируют архитектуру таким образом , чтобы

заинтересованные лица могли понять данное описание и

определить каким образом архитектура и будущая

система удовлетворяет их интерес.

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

8

Определение 2:

Описание архитектуры это набор материалов, которые

описывают уже принятые ключевые решения, и мотивы

побудившие их принять , таким образом, чтобы ЛПР могли

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

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

9

• Корректность – Корректно представляет интересы и потребности заинтересованных

лиц

– Корректно определяет архитектуру которая соответствует этим потребностям

• Достаточность – Достаточно деталей для получения ответа на важные вопросы об

архитектуре

– Достаточно деталей для проектирования и имплементации системы

• Краткость – Должно быть сфокусировано на важных элементах

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

10

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

Facebook Architecture http://www.slideshare.net/adityaagarwal/qcon

• Это документ , большой и серьезный

• В нем обязательно есть общая функциональная схема – «Несколько» линий и

квадратиков

• Добавим пару слов – «Единая электронная нервная

система предприятия»

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

12

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

• It is not possible to capture the functional features and quality properties of a complex system in a single comprehensible model that is understandable by and of value to all stakeholders. ЛЕКЦИЯ №7 Ключевые концепции

архитектуры программного обеспечения. ‹#›

ЛЕКЦИЯ №7 Ключевые

концепции архитектуры

программного

обеспечения.

Система

Архитектурный элемент

Взаимосвязь Состоит из

Архитектура Обладает

Архитектурное описание

Может иметь

Описывает архитектуру для

Заинтересованные лица

Удовлетворяет потребности

Связывает

Проекция (View)

Состоит из

Точка зрения (Viewpoint)

Соответствует

Перспектива (perspective)

Уточняется Удовлетворяет

Вопрос / Интерес

Имеет

Удовлетворяет

14

IEEE 1471-2000

• Проекция (view) это представление одного или более структурных аспектов архитектуры которое иллюстрирует удовлетворение архитектурой одного или более интереса одного или более заинтересованных лиц.

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

16

• Определение: Точка зрения (viewpoint) это набор паттернов, шаблонов и соглашений по формированию одного типа проекции(view).

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

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

17

• Software Systems Architecture : Working With Stakeholders Using Viewpoints and Perspectives

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

19

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

Функциональная (Functional Viewpoint)

Информационная (Information Viewpoint)

Конкуренция (Concurrency Viewpoint)

Разработка (Development Viewpoint)

Внедрение (Deployment Viewpoint)

Эксплуатация (Operational Viewpoint)

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

21

• Несмотря на то что совокупность всех проекций (view) системы описывает систему полностью , каждая из проекций является достаточно независимой.

• Кроме того, большая часть атрибутов качества системы проявляются и влияют на несколько проекций.

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

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

22

• Описывает отношения, зависимости и взаимодействия между системой и ее окружением (людьми, системами и внешними организациями, с которыми она взаимодействует).

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

Context

• Объем системы и обязанности

• Идентификация внешних объектов, используемых услугах и данных

• Идентификация и обязанности внешних интерфейсов

• Другие внешние взаимозависимости

• Влияние системы на окружающую среду

• Общая полнота, последовательность и согласованность

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

• Описание функциональных элементов системы, их обязанности, интерфейсы и основные взаимодействия.

• Функциональный взгляд является основой большинства описаний архитектуры и часто является первой частью описания, которую заинтересованные стороны пытаются читать.

• Она направляет и формирует другие структуры системы, такие как структура информации, конкуренция и так далее.

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#› Functional

• Вопросы – функциональные

возможности

– внешние интерфейсы

– внутренняя структура

– функциональная философию дизайна

• Проблемы – плохо определены е интерфейсы

– плохо распределенные обязанности

– инфраструктура моделируется как функциональные элементы

– перегруженный вид

– диаграммы без определения элементов

– Неправильный уровень детализации

– «Бог» элементов

– Слишком много зависимостей

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

• Описывает способ хранения, обработки , управления и распространения информации.

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

• Целью данного анализа является ответ на ключевые вопросы по содержанию, структуре, собственности, задержка, ссылок и переноса данных.

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

– Структура информации

– Цель и использования информации

– владение информацией

– идентификаторы и отображение

– Волатильность семантики информации

– модели хранения информации

– информационный поток

– Информационная целостность

– информации о качестве

– своевременность, задержки и возраст информации

– архивирование и долговременное храненияе информации

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

• Модели – статические модели

информационной структуры

– Модели информационного потока

– модели жизненного цикла информации

– информационные модели владения

– анализ информации о качестве

– модели метаданных

– Модели объема данных

• Проблемы

– Несовместимость представлений

– Неизбежное обновление из нескольких источников

– сложность интерфейса

– перегруженные центральные базы данных

– Рассогласованность распределенных баз данных

– низкое качество информации

– чрезмерную задержку информации

– Некорректные модели объема

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

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

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

• Описывает архитектуру, которая поддерживает процесс разработки программного обеспечения.

• Рассматривает аспекты архитектуры для заинтересованных сторон, участвующих в разработке, тестировании, обслуживании и совершенствовании системы.

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

• Описывает среды, в которых будет развернута система, в том числе охватывает зависимости системы в среде выполнения.

• Эта точка зрения отражает – аппаратную среду, (прежде всего узлы обработки,

сетевых соединений, а также объектов дискового пространства требуется),

– технических требований окружающей среды для каждого элемента,

– а отображение элементов программного обеспечения в среду выполнения, которая будет выполнять их.

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

• Описывает, как система будет работать, администрироваться, и поддерживаться, когда она работает в своей производственной среде.

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

• Целью операциональной точки зрения является определение общесистемных стратегий для решения оперативных вопросов заинтересованных сторон системы и определить их решение.

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

• Software Systems Architecture : Working With Stakeholders Using Viewpoints and Perspectives

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

34

• Facebook Architecture

– http://www.slideshare.net/adityaagarwal/qcon

• Google

– http://www.slideshare.net/chenhsiu/designs-lessons-and-advice-from-building-large-distributed-systems

• Designing a DSL for Information Systems Architecture

– http://www.slideshare.net/eoinwoods/domain-specific-languages-for-information-systems-architecture-presentation

• www.iasaglobal.org

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

Часть 1

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

Часть 2

‹#› ЛЕКЦИЯ №7 Ключевые концепции

архитектуры программного обеспечения.

Безуглый Дмитрий

bdl@system-approach.ru

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

http://www.slideshare.net/supercoban/ss-10348215

ЛЕКЦИЯ №7 Ключевые концепции архитектуры программного обеспечения.

‹#›

http://www.slideshare.net/supercoban/ss-10348215

Foundation Body of Knowledge

Human Dynamics

Design

Quality Attributes

IT Environment

Business Technology Strategy

Software Architecture

Infrastructure Architecture

Information Architecture

Business Architecture Specialisations

Foundation (5-Pillars)

Enterprise Architecture

42

1st – ALL architects should have the

SAME foundation

2nd – Architects should specialise

Scope (Ballpark) view

Owners View (Enterprise Model)

Designers View (System Model)

Builder’s View (Technology Model)

Out of Context View (Detailed Model)

Operational View (Functioning)

Data (What)

Function (How)

Network (Where)

People (Who)

Time (When)

Motivation

(Why)

top related