- •Технология проектирования программных систем методические указания к изучению курса с элементами кредитно - модульной системы организации учебного процесса
- •Содержание лекционных занятий
- •Темы лабораторных работ
- •Оценка успешности в баллах при полном выполнении условий и графика учебного процесса
- •Распределение баллов по смысловыми модулями для определения оценки по результатам изучения учебной дисциплины
- •Шкала оценивания
- •Лабораторная работа № 1
- •Краткие теоретические сведения:
- •Моделирование взаимодействий
- •Взаимодействия
- •Лабораторная работа № 2
- •Краткие теоретические сведения:
- •Выявление требований
- •Прототипирование
- •Системные сервисы
- •Системные ограничения
- •Проектные вопросы
- •Приложения
- •Спецификации состояний
- •Моделирование классов
- •Выявление классов
- •Подход на основе использования именных групп
- •Подход на основе использования общих шаблонов для классов
- •Подход на основе использования прецедентов
- •Комплексный подход
- •Некоторые правила выявления классов
- •Лабораторная работа № 3
- •Краткие теоретические сведения
- •Архитектура программного обеспечения
- •Распределенная архитектура
- •Трехзвенная архитектура
- •Программирование баз данных
- •Взаимодействие "приложение-база данных"
- •Стратегия повторного использования
- •Компоненты
- •Развертывание
- •Проект развертывания
- •Модели данных
- •Модель объектной базы данных
- •Объектно-реляционная модель базы данных
- •Элементарные типы модели рбд
- •Реляционные таблицы
- •Лабораторная работа № 4
- •Краткие теоретические сведения
- •Связность и увязка классов
- •Виды увязки классов
- •Закон Деметра
- •Методы открытия доступа и бессмысленные классы
- •Проектирование клиент-серверных кооперативных взаимодействий
- •Хранимые процедуры
- •Триггеры
- •Проектирование транзакций
- •Пессимистическое управление параллельностью
- •Точка сохранения
- •Триггерный откат
- •Тестирование баз данных
- •Тестирование авторизации
- •Тестирование других ограничений
Компоненты
Компонента (component) - это физическая часть системы, фрагмент реализации, программа. Компоненты зачатую воспринимаются как двоичные исполняемые (ЕХЕ-файлы) части системы. Но компонента может быть также частью системы, которая не является непосредственно исполняемым модулем (например, файлом исходного текста программы, файлом данных, динамически компонуемой библиотекой (Dynamic Link Library - DLL) или хранимой процедурой базы данных).
В настоящее время UML определяет пять стандартных стереотипов для компонент.
1. Исполняемая (т.е. непосредственно исполняемый модуль).
2. Библиотека (т.е. модуль статической или динамической объектной библиотеки).
3. Таблица (т.е. таблица базы данных).
4. Файл (т.е. файл исходного текста или данных).
5. Документ (т.е. документ, предназначенный для восприятия человеком).
Ниже приводится перечень характеристик компонент.
Компонента представляет собой независимо развертываемый программный блок (компонента никогда не развертывается частично).
Компонента может служить строительным блоком для стороннего разработчика (т.е. компонента в достаточной мере документирована и самодостаточна, чтобы сторонний разработчик мог "встроить" ее в другие компоненты).
Компонента не обладает тупиковым состоянием (т.е. компоненту невозможно отличить от ее собственных копий; в рамках любого данного приложения присутствует самое большее одна копия конкретной компоненты).
Компонента – заменяемая часть системы, т.е. ее можно заменить другой компонентой, которая согласуется с тем же интерфейсом.
Компонента выполняет четкую функцию и с логической и физической точки зрения образует единое целое.
Компонента может быть вложена в другие компоненты.
Развертывание
В языке UML трехзвенная архитектура (наподобие той, что показана на рис. 6) или любая другая архитектура для системы выражается в виде диаграммы развертывания (deployment diagram). Фактически диаграмма, представленная на рис. 6, является допустимой диаграммой развертывания UML, на которой вычислительные ресурсы представлены в виде специальных пиктограмм.
Проект развертывания
Характер Internet-систем без установления прямого соединения делает развертывание (deployment) Web-приложений значительно более сложной задачей, чем развертывание приложений баз данных в архитектуре клиент/сервер. Чтобы приступить к развертыванию, требуется установить Web-сервер в качестве пункта маршрутизации между всеми броузерами клиентов и базой данных.
Если проблема управления сеансами не может быть удовлетворительно решена с помощью технологии cookie, необходимо привлекать на помощь технологию распределенных объектов. Развертывание распределенных объектов может потребовать размещения отдельных архитектурных элементов - сервера приложений - между Web-сервером и сервером баз данных.
Проект развертывания должен обращаться к вопросам безопасности. Безопасная передача данных и протоколы шифрования - еще один аспект требований со стороны проекта развертывания. Кроме того, необходимо тщательное планирование с учетом сетевой загрузки, Internet-соединений, резервных копий и т.д.
Развертывание Web-приложений
Архитектура развертывания, способная поддерживать более сложные Web-приложения, включает четыре звена вычислительных узлов.
1. Клиентский Web-броузер.
2. Web-сервер.
3. Сервер приложений.
4. Сервер баз данных.
Броузер клиентского узла можно использовать для отображения статических или динамических Web-страниц. Страницы, включающие сценарии и апплеты, можно загружать и выполнять в рамках броузера. Клиентский броузер можно оснастить дополнительными функциональными возможностями, такими как элементы управления ActiveX или JavaBeans. Выполнение программы приложения на клиентской машине, но вне броузера, может удовлетворить другие требования к GUI-интерфейсу.
Web-сервер обрабатывает запросы на страницы, поступающие от броузера, и динамически генерирует страницы и программный код для выполнения и отображения на клиенте. Web-сервер также обеспечивает настройку и параметризацию сеансов работы пользователя.
Сервер приложений необходим в том случае, когда в реализации используются распределенные объекты. Он управляет бизнес-логикой. Бизнес-компоненты публикуют свои интерфейсы для других узлов через интерфейсы компонент, такие как CORBA, DCOM или EJB.
Бизнес-компоненты инкапсулируют постоянные объекты, хранимые в базе данных, чаще всего в реляционной базе. Они взаимодействуют с сервером баз данных через протоколы связи с базами данных, например, такими как JDBC или ODBC. Узел базы данных обеспечивает масштабируемое хранилище данных и многопользовательский доступ к нему.
Проектирование баз данных
Можно сказать, что информационные системы являются многопользовательскими системами по определению. Это свойство само по себе требует наличия базы данных, с которой могут одновременно работать многие пользователи. Прикладные программы зависят от базы данных, однако, обратное утверждение неверно. Вывод очевиден - надлежащий проект базы данных, который может объединить и поддерживать прикладные программы, является необходимым условием реализации информационной системой предусмотренных функциональных возможностей.
В языке UML диаграмма классов определяет структуры данных, требуемые приложением. Структуры данных, которые постоянно находятся в базе данных, моделируются с помощью классов-сущностей, а также как отношения между классами-сущностями. Классы-сущности необходимо отобразить в структуры данных, распознаваемые базой данных. Эти структуры данных изменяются в зависимости от базовой модели базы данных, которая может быть объектно-ориентированной, объектно-реляционной или реляционной.
Здесь рассматривается отображение объектов в базы данных и объясняется, каким образом осуществляются преобразования классов-сущностей, ассоциаций, агрегаций и обобщений в структуры данных, имеющиеся в распоряжении каждой из трех моделей баз данных.
