Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 4. Реализация ПО: Архитектурное проектирование.

Презентация:



Advertisements
Похожие презентации
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 7.
Advertisements

Разработка программного обеспечения при объектном подходе Объектно-ориентированный подход.
Лекция 5 Способы конструирования программ. Основы доказательства правильности.
Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 8. Управление качеством.
Сетевые службы Для конечного пользователя сеть это не компьютеры, кабели и концентраторы и даже не информационные потоки, для него сеть это, прежде всего,
1 Диаграммы реализации (implementation diagrams).
Разработка программного обеспечения (Software Engineering) Часть 1. Введение.
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ.
Семиуровневая модель OSI Требования к совместимости сети: 1.Расширяемость 2.Масштабируемость 3.Управляемость Требования совместимости невозможно выполнить.
Унифицированный язык моделирования UML является графическим языком для визуализации, конструирования и документирования систем, в которых большая роль.
Организация распределенных прикладных систем. Попытаемся ответить на вопросы Как устроены распределенные прикладные системы? Каковы наиболее важные их.
Раздел 3 Сетевые модели. Тема 3.1 Понятие сетевой модели. Архитектура сети определяет основные элементы сети, характеризует ее общую логическую организацию,
Архитектура ЭВМ (лекция 7) проф. Петрова И.Ю. Курс Информатики.
Распределенная обработка информации Разработано: Е.Г. Лаврушиной.
Теория вычислительных процессов Сети Петри для моделирования Преподаватель: Веретельникова Евгения Леонидовна 1.
Лекция 3 Архитектура информационных систем. Вопросы лекции 1. Архитектура информационной системы 2. Архитектурный подход к реализации информационных систем.
Выполнила студентка II курса ГБОУ СПО Баймакский сельскохозяйственный техникум Вахитова Гульназ.
Каналы связи Рис Структура системы телеобработки данных Абонентская станция 1 Абонентская станция 2 Абонентская станция 3 Главный компьютер.
Алгоритм. Алгоритм это точно определённая инструкция, последовательно применяя которую к исходным данным, можно получить решение задачи. Для каждого алгоритма.
Лабораторная работа 1. Целеориентированный подход В данной лабораторной работе рассматривается целеориентированный под- ход к разработке прототипа программного.
Транксрипт:

Разработка программного обеспечения (Software Engineering) Ian Sommervillle Часть 4. Реализация ПО: Архитектурное проектирование

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

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

Архитектурное проектирование Этапы, общие для всех процессов архитектурного проектирования: 1.Структурирование системы 1.Структурирование системы. Программная система структурируется в виде совокуп­ности относительно независимых подсистем. Также определяются взаимодействия между подсистемами. 2.Моделирование управления 2.Моделирование управления. Разрабатывается базовая модель управления взаимоотношениями между частями системы. 3.Модульная декомпозиция 3.Модульная декомпозиция. Каждая определенная на первом этапе подсистема разбивается на отдельные модули. Здесь определяются типы модулей и типы их взаимосвязей.

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

Архитектурное проектирование Как правило, разрабатывается четыре архитектурные модели: 1. Статическая структурная модель, в которой представлены подсистемы или компоненты, разрабатываемые в дальнейшем независимо. 2. Динамическая модель процессов, в которой представлена организация процессов во время работы системы. 3. Интерфейсная модель, которая определяет сервисы, предоставляемые каждой подсистемой через общий интерфейс. 4. Модели отношений, в которых показаны взаимоотношения между частями системы, например поток данных между подсистемами.

Архитектурное проектирование Модели архитектуры могут зависеть от нефункциональных системных требований: Производительность 1. Производительность. Если критическим требованием является производительность системы, следует разработать такую архитектуру, чтобы за все критические операции отвечало как можно меньше подсистем с максимально малым взаимодействием между ними. Чтобы уменьшить взаимодействие между компонентами, лучше использовать крупномодульные компоненты, а не мелкие структурные элементы. Защищенность 2. Защищенность. В этом случае архитектура должна иметь многоуровневую структуру, в которой наиболее критические системные элементы защищены на внутренних уровнях, а проверка безопасности этих уровней осуществляется на более высоком уровне.

Архитектурное проектирование Безопасность 3. Безопасность. В этом случае архитектуру следует спроектировать так, чтобы за все операции, влияющие на безопасность системы, отвечало как можно меньше подсистем. Такой подход позволяет снизить стоимость разработки и решает проблему проверки надежности. Надежность 4. Надежность. В этом случае следует разработать архитектуру с включением избыточных компонентов, чтобы можно было заменять и обновлять их, не прерывая работу системы. Удобство сопровождения 5. Удобство сопровождения. В этом случае архитектуру системы следует проектировать на уровне мелких структурных компонентов, которые можно легко изменять. Программы, создающие данные, должны быть отделены от программ, использующих эти данные. Следует также избегать структуры совместного использования данных.

Архитектурное проектирование На первом этапе процесса проектирования архитектуры система разбивается на несколько взаимодействующих подсистем. На самом абстрактном уровне архитектуру системы можно изобразить графически с помощью блок-схемы, в которой отдельные подсистемы представлены отдельными блоками. Если подсистему также можно разбить на несколько частей, на диаграмме эти части изображаются прямоугольниками внутри больших блоков. Потоки данных и/или потоки управления между подсистемами обозначается стрелками. Такая блок-схема дает общее представление о структуре системы. Блок-схема системы управления автоматической упаковкой.

Архитектурное проектирование: структурирование системы Для того чтобы подсистемы, составляющие систему, работали эффективнее, между ними должен идти обмен информацией. Обмен можно организовать двумя способами: 1. Все совместно используемые данные хранятся в центральной базе данных, доступной всем подсистемам. Модель системы, основанная на совместном использовании базы данных, часто называют моделью репозитория. 2. Каждая подсистема имеет собственную базу данных. Взаимообмен данными между подсистемами происходит посредством передачи сообщений.

1. Совместное использование больших объемов данных эффективно, поскольку не требуется передавать данные из одной подсистемы в другие. 2. Подсистемы должны быть согласованы с моделью репозитория данных. Это всегда приводит к необходимости компромисса между требованиями, предъявляемыми к каждой подсистеме. Компромиссное решение может понизить их производительность. Если форматы данных новых подсистем не подходят под согласованную модель представления данных, интегрировать такие подсистемы сложно или невозможно. 3. Подсистемам, в которых создаются данные, не нужно знать, как эти данные используются в других подсистемах. Модель репозитория Архитектурное проектирование: структурирование системы

4. Поскольку в соответствии с согласованной моделью данных генерируются большие объемы информации, модернизация таких систем проблематична. Перевод системы на новую модель данных будет дорогостоящим и сложным, а порой даже невозможным. 5. В системах с репозиторием такие средства, как резервное копирование, обеспечение безопасности, управление доступом и восстановление данных, централизованы, поскольку входят в систему управления репозиторием. 6. К разным подсистемам предъявляются разные требования, касающиеся безопасности, восстановления и резервирования данных. В модели репозитория ко всем подсистемам применяется одинаковая политика. Модель репозитория (продолжение) Архитектурное проектирование: структурирование системы

7. Модель совместного использования репозитория прозрачна: если новые подсистемы совместимы с согласованной моделью данных, их можно непосредственно интегрировать в систему. 8. Сложно разместить репозитории на нескольких машинах, поскольку могут возникнуть проблемы, связанные с избыточностью и нарушением целостности данных. Модель репозитория (продолжение) Архитектура интегрированного набора CASE-средcmв Архитектурное проектирование: структурирование системы

Модель клиент/сервер Модель архитектуры клиент/сервер это модель распределенной системы, в которой показано распределение данных и процессов между несколькими процессорами. Модель включает три основных компонента: 1. Набор автономных серверов, предоставляющих сервисы другим подсистемам. 2. Набор клиентов, которые вызывают сервисы, предоставляемые серверами. В контексте системы клиенты являются обычными подсистемами. Допускается параллельное выполнение нескольких экземпляров клиентской программы. 3. Сеть, посредством которой клиенты получают доступ к сервисам. Архитектурное проектирование: структурирование системы

Модель клиент/сервер (продолжение) Архитектура библиотечной системы фильмов и фотографий Наиболее важное преимущество модели клиент/сервер состоит в том, что она является распределенной архитектурой. Ее эффективно использовать в сетевых системах с множеством распределенных процессоров. В систему легко добавить новый сервер и интегрировать его с остальной частью системы или же обновить серверы, не воздействуя на другие части системы. Архитектурное проектирование: структурирование системы

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

Архитектурное проектирование: модели управления В структурных моделях нет (и не должно быть) никакой информации по управлению. Однако разработчик архитектуры должен организовать подсистемы согласно некоторой модели управления, которая дополняла бы имеющуюся модель структуры. В моделях управления на уровне архитектуры проектируется поток управления между подсистемами. Можно выделить два основных типа управления: 1. Централизованное управление. Одна из подсистем полностью отвечает за управление, запускает и завершает работу остальных подсистем. 2. Управление, основанное на событиях. Здесь вместо одной подсистемы, ответственной за управление, на внешние события может отвечать любая подсистема. События, на которые реагирует система, могут происходить либо в других подсистемах, либо во внешнем окружении системы.

Архитектурное проектирование: модели управления Централизованное управление В модели централизованного управления одна из систем назначается главной и управляет работой других подсистем. Такие модели можно разбить на два класса: Модель вызова-возврата Модель вызова-возврата. Это известная модель организации вызова программных процедур "сверху вниз", в которой управление начинается на вершине иерархии процедур и через вызовы передается на более нижние уровни иерархии. Данная модель применима только в последовательных системах. Модель диспетчера Модель диспетчера. Применяется в параллельных системах. Один системный компонент назначается диспетчером и управляет запуском, завершением и координированием других процессов системы. Процесс может протекать параллельно с другими процессами. Модель такого типа применима также в последовательных системах, где управляющая программа вызывает отдельные подсистемы в зависимости от значений некоторых переменных состояния.

Архитектурное проектирование: модели управления Централизованное управление (продолжение) Модель вызова-возврата

Архитектурное проектирование: модели управления Централизованное управление (продолжение) Модель диспетчера для системы реального времени

Архитектурное проектирование: модели управления Управление, основанное на событиях В моделях централизованного управления, как правило, управление системой определяется значениями некоторых переменных ее состояния. В противоположность таким моделям существуют системы, управление которыми основано на внешних событиях. Модели передачи сообщений Модели передачи сообщений. В этих моделях событие представляет собой передачу сообщения всем подсистемам. Любая подсистема, которая обрабатывает данное событие, отвечает на него. Модели, управляемые прерываниями Модели, управляемые прерываниями. Такие модели обычно используются в системах реального времени, где внешние прерывания регистрируются обработчиком прерываний, а обрабатываются другим системным компонентом.

Архитектурное проектирование: модели управления Управление, основанное на событиях (продолжение) Модель управления, основанная на передаче сообщений

Архитектурное проектирование: модели управления Управление, основанное на событиях (продолжение) Модель управления, основанная на прерываниях

Архитектурное проектирование: модульная декомпозиция После этапа разработки системной структуры в процессе проектирования следует этап декомпозиции подсистем на модули. Распространены две модели, используемые на этапе модульной декомпозиции подсистем: 1. Объектно-ориентированная модель 1. Объектно-ориентированная модель. Система состоит из набора взаимодействующих объектов. 2. Модель потоков данных 2. Модель потоков данных. Система состоит из функциональных модулей, которые получают на входе данные и преобразуют их некоторым образом в выходные данные. Такой подход часто называется конвейерным. В объектно-ориентированной модели модули представляют собой объекты с собственными состояниями и определенными операциями над этими состояниями. В модели потоков данных модули выполняют функциональные преобразования.

Архитектурное проектирование: модульная декомпозиция Объектные модели Объектно-ориентированная архитектурная модель структурирует систему в виде совокупности слабо связанных объектов с четко определенными интерфейсами. Объекты вызывают сервисы, предоставляемые другими объектами. Объектная модель системы обработки счетов

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

Архитектурное проектирование: проблемно- зависимые архитектуры Наряду с основными моделями, используются архитектурные модели, характерные для конкретной предметной области приложения. Эти модели называются проблемно-зависимыми архитектурами. Можно выделить два типа проблемно-зависимых архитектурных моделей: Модели классов систем 1. Модели классов систем. Отображают классы реальных систем, вобрав в себя основные характеристики этих классов. Как правило, архитектурные модели классов встречаются в системах реального времени, например в системах сбора данных, мониторинга и т.д. Базовые модели 2. Базовые модели. Более абстрактны и предоставляют разработчикам информацию по общей структуре какого-либо типа систем.

Архитектурное проектирование: проблемно- зависимые архитектуры Модели классов систем Модель компилятора наиболее известный пример архитектурной модели класса систем. Компоненты, из которых состоит компилятор, можно организовывать в соответствии с разными архитектурными моделями. Можно применить архитектуру потоков данных, в которой таблица идентификаторов служит хранилищем совместно используемых данных.

Архитектурное проектирование: проблемно- зависимые архитектуры Модели классов систем (продолжение) Однако такие модели оказываются менее эффективными, если компилятор интегрирован с другими языковыми средствами, например системой редактирования структур, интерактивным отладчиком, программой подготовки печатных документов и т.п. В этом случае компоненты системы можно организовать в соответствии с моделью репозитория.

Архитектурное проектирование: проблемно- зависимые архитектуры Базовые архитектуры Базовые модели представляют собой идеализированную архитектуру, в которой отражены особенности, присущие системам, работающим в данной предметной области. Примером базовой архитектуры может служить модель OSI. Базовые модели обычно не рассматриваются в качестве методов реализации. Их основное назначение служить эталоном для сравнения различных систем в какой-либо предметной области, т.е. базовая модель является стандартом при оценке различных систем.

Вопросы для обсуждения 1. Объясните, почему архитектуру системы необходимо разработать до окончания создания спецификации. 2. Предложите подходящую структурную модель для системы видеоконференций, управляемой компьютером, с возможностью одновременного просмотра компьютерных, аудио- и видеоданных несколькими участниками. Обоснуйте свой выбор. 3. Объясните, почему модель управления вызова-возврата обычно не подходит для систем реального времени, управляющих определенным процессом.

Вопросы для обсуждения 4.Предложите подходящую модель управления для набора инструментальных программных средств от разных производителей, которые должны работать совместно. Обоснуйте свой выбор. 5. Предположим, существует конкретная должность "архитектор программного обеспечения"; его роль состоит в проектировании системной архитектуры независимо от того, для какого заказчика выполняется данный проект. Какие трудности могут возникнуть при введении данной должности?