- •Технология проектирования программных систем методические указания к изучению курса с элементами кредитно - модульной системы организации учебного процесса
- •Содержание лекционных занятий
- •Темы лабораторных работ
- •Оценка успешности в баллах при полном выполнении условий и графика учебного процесса
- •Распределение баллов по смысловыми модулями для определения оценки по результатам изучения учебной дисциплины
- •Шкала оценивания
- •Лабораторная работа № 1
- •Краткие теоретические сведения:
- •Моделирование взаимодействий
- •Взаимодействия
- •Лабораторная работа № 2
- •Краткие теоретические сведения:
- •Выявление требований
- •Прототипирование
- •Системные сервисы
- •Системные ограничения
- •Проектные вопросы
- •Приложения
- •Спецификации состояний
- •Моделирование классов
- •Выявление классов
- •Подход на основе использования именных групп
- •Подход на основе использования общих шаблонов для классов
- •Подход на основе использования прецедентов
- •Комплексный подход
- •Некоторые правила выявления классов
- •Лабораторная работа № 3
- •Краткие теоретические сведения
- •Архитектура программного обеспечения
- •Распределенная архитектура
- •Трехзвенная архитектура
- •Программирование баз данных
- •Взаимодействие "приложение-база данных"
- •Стратегия повторного использования
- •Компоненты
- •Развертывание
- •Проект развертывания
- •Модели данных
- •Модель объектной базы данных
- •Объектно-реляционная модель базы данных
- •Элементарные типы модели рбд
- •Реляционные таблицы
- •Лабораторная работа № 4
- •Краткие теоретические сведения
- •Связность и увязка классов
- •Виды увязки классов
- •Закон Деметра
- •Методы открытия доступа и бессмысленные классы
- •Проектирование клиент-серверных кооперативных взаимодействий
- •Хранимые процедуры
- •Триггеры
- •Проектирование транзакций
- •Пессимистическое управление параллельностью
- •Точка сохранения
- •Триггерный откат
- •Тестирование баз данных
- •Тестирование авторизации
- •Тестирование других ограничений
Тестирование других ограничений
Помимо описанных выше тестирование системных ограничений включает следующие виды тестирования.
Тестирование производительности.
Тестирование в утяжеленном режиме.
Тестирование при отказе.
Конфигурационное тестирование.
Инсталляционное тестирование.
Тестирование производительности направлено на измерение ограничений производительности, требуемых заказчиком. Ограничения связаны со скоростью транзакций и пропускной способностью. Тестирование проводится при различной рабочей загрузке систем, включая предполагаемую пиковую загрузку. Тестирование производительности является важной составляющей настройки системы.
Тестирование в утяжеленном режиме проектируется таким образом, чтобы вывести из стоя систему при предъявлении к ней завышенных требований - из-за недостатка ресурсов, необычной конкуренции за ресурсы, непредусмотренной частоты, величины или объема требований к ресурсам. Тестирование в утяжеленном режиме часто сочетается с тестированием производительности и может потребовать соответствующей аппаратной и программной оснастки.
Тестирование при отказе направлено на изучение реакции системы на различные аппаратные, сетевые или программные сбои. Этот вид тестирования тесно связан с процедурами восстановления, поддерживаемыми СУБД.
Конфигурационное тестирование связано с проверкой функционирования системы при различной аппаратной и программной конфигурации. Для большинства производственных сред предполагается, что система способна функционировать на различных клиентских рабочих станциях, которые подключаются к базе данных с использованием различных сетевых протоколов. На клиентских рабочих станциях может быть инсталлировано различное ПО (например, драйверы), которое может конфликтовать с предусмотренными установками.
Инсталляционное тестирование является расширением конфигурационного тестирования. Оно связано с проверкой надлежащего функционирования системы на каждой из платформ, на которых она инсталлируется. Это означает фактическое повторение тестирования системных услуг.
Задание: Выполнить полное проектирование программной системы. Выполнить проектирование тестирующей системы.
Предоставить отчет, содержащий результаты проектирования программной системы
Контрольные вопросы:
1. Какое влияние на проектирование делают принципы, связанные с связностью и увязкой?
2. Какие объекты могут выступать как целевые объекты для сообщений согласно закону Деметра?
3. Кратко опишите пять уровней SQL - интерфейсов.
4. В чем преимущество вызова с клиентской программы хранимой процедуры по сравнению с SQL - запросом пересылается базе данных? Существуют ситуации, при которых мы вынуждены использовать SQL - запрос вместо вызова удаленной процедуры?
5. Кратко опишите виды блокировок при пессимистическом управлении параллельностью.
6. Что такое точка сохранения? Как ее можно использовать при проектировании программы?
7. Какие действия возможны в ответ на отправленный запрос на перемены?
Литература
1. Смірнов В.В. Технологія проектування програмних систем. Лекції / В.В. Смірнов, Н.В. Смірнова. – Кіровоград: КНТУ, 2012. – 73 с.
2. Лешек А. Мацяшек. Анализ и проектирование информационных систем с помощью UML 2.0 / Лешек А. Мацяшек. – М.: Вильямс, 2008. – 816 с.
3. Шалыто А.А. SWITCH - технология. Алгоритмизация и программирование задач логического управления / А.А. Шалыто. – СПб.: Наука, 1998. – 628 c.
4. Карло Гецци. Основы инженерии программного обеспечения / Карло Гецци, Мехди Джазайери, Дино Мандриоли. – СПб.: БХВ-Петербург, 2005. – 832 с.
5. Соммервилл, Иан. Инженерия программного обеспечения, 6-е издание, пер. с
англ. А.А. Минько. – М.: Издательский дом "Вильямс", 2002. – 624 с.
6. Эдвард Йордон. Объектно-ориентированный анализ и проектирование систем / Эдвард Йордон, Карл Аргила. – М.: Лори, 2010. – 264 с.
7. Эрик Эванс. Предметно – ориентированное проектирование (DDD). Структуризация сложных программных систем / Эрик Эванс, пер. с англ. В. Бродов. – К.: Вильямс, 2010. – 448 с.
8. Гамма Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования / Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. пер. с англ. А. Слинкин. – К.: Питер, 2007. – 366 с.
9. Joey F. George. Object-Oriented Systems Analysis and Design. [Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A. Hoffer]; (2nd Edition). – Prentice Hall; 2 edition (October 27, 2006). – 550 p.
10. Noushin Ashrafi. Object Oriented Systems Analysis and Design / Noushin Ashrafi, Hessam Ashrafi. – Prentice Hall; 1 edition (September 20, 2008). – 648 p.
11. Michele Lanza. Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems / Michele Lanza, Radu Marinescu. – Springer; Softcover reprint of hardcover 1st ed. 2006 edition (December 2, 2010). – 220 p.
12. Grady Booch. Object-Oriented Analysis and Design with Applications (3rd Edition) / [Grady Booch, Robert A. Maksimchuk, Michael W. Engel, Bobbi J. Young, Jim Conallen, Kelli A. Houston. – Addison-Wesley Professional; 3 edition (April 30, 2007). – 720 p.
13. Jeffrey Whitten. Systems Analysis and Design Methods / Jeffrey Whitten, Lonnie Bentley. – McGraw-Hill/Irwin; 7th edition (November 22, 2005). – 768 p.
14. Alan Dennis. Systems Analysis and Design / Alan Dennis, Barbara Haley Wixom, Roberta M. Roth. – Wiley; 4 edition (December 10, 2008). – 576 p.
