- •Тема 1. Введение. Основы методологии проектирования информационных систем 5
- •Жизненный цикл программного обеспечения
- •Модели жизненного цикла программного обеспечения
- •Макетирование
- •Спиральная модель жизненного цикла
- •Компонентно-ориентированная модель
- •Тема 2. Структурный анализ и проектирование Определение структурного анализа
- •Средства структурного анализа
- •Моделирование потоков данных
- •Контекстная диаграмма
- •Построение иерархии диаграмм потоков данных
- •Методология функционально стоимостного анализа
- •Методология функционального моделирования sadt (Structured Analysis and Design Technique)
- •Состав функциональной модели sadt
- •Иерархия диаграмм
- •Словарь данных
- •Тема 3. Построение информационной модели системы. Проектирование баз данных Диаграммы сущность-связь (erd)
- •Сущности, отношения и связи в нотации Чена
- •Типы связей в нотации Чена
- •Ассоциативная связь
- •Диаграммы атрибутов в классической модели Чена
- •Диаграмма категоризации
- •Нотация Баркера. Модель сущность- связь в нотации Баркера
- •Методология idef1x
- •Тема 4. Методика построения информационной модели данных (модели «сущность-связь»)
- •Идентификация отношений между сущностями
- •Разрешение неспецифических отношений
- •Использование средств и техники структурного системного анализа
- •Основные виды работ, рекомендуемые при построении логической и физической моделей программной системы
- •Подход Мартина (ie–методология)
- •Тема 5. Методология rad (Rapid Application Development)
- •Основные принципы методологии rad
- •Состав, структура и функциональные особенности case-средств
- •Поддержка графических моделей
- •Требования к современному диаграммеру
- •Тема 6. Структурное тестирование программного обеспечения Основные понятия и принципы тестирования программного обеспечения
- •Особенности тестирования белого ящика
- •Способ тестирования базового пути
- •Потоковый граф
- •Цикломатическая сложность
- •Шаги способа тестирования базового пути
- •Способы тестирования условий
- •Тестирование ветвей и операторов отношения
- •Способ тестирования потоков данных
- •Тестирование циклов
- •Тема 7. Функциональное тестирование программного обеспечения Особенности тестирования черного ящика
- •Способы разбиения на эквивалентности
- •Способ анализа граничных значений
- •Способ диаграмм причин–следствий
- •Тема 8. Организация процесса тестирования программного обеспечения
- •Методика тестирования программных систем
- •Тестирование элементов
- •Тестирование итераций
- •Восходящее тестирование интеграции
- •Тестирование правильности
- •Системное тестирование
Макетирование
Достаточно часто заказчик вначале проекта не может точно и однозначно сформулировать подробные требования по вводу, обработке и выводу данных. С другой стороны разработчик может сомневаться в переносимости продукта на другую программную или аппаратную платформу, а также в эффективности реализуемых алгоритмов. В этих случаях целесообразно использовать макетирование.
Основная цель макетирования – снять неопределенности в требованиях заказчика. Макетирование (прототипирование) – это процесс создания модели требуемого программного продукта. Модель может принимать одну из трех форм:
бумажный макет, на котором изображен человеко-машинный диалог;
работающий макет, который выполняет некоторую часть требуемых функций;
существующая программа, характеристики которой должны быть улучшены.
Макетирование основано на многократном повторении операций, в которых участвуют разработчик и заказчик.
Рисунок 3 – Последовательность действий при макетировании
Макетирование начинается со сбора и уточнения требований, задаваемых программному обеспечению. Разработчик и заказчик определяют все цели создания программного обеспечения, устанавливают, какие требования известны, а какие предстоит доопределить. Затем выполняется быстрое проектирование, при котором внимание сосредотачивается на тех характеристиках программного обеспечения, которые должны быть видимы пользователю. Быстрое проектирование приводит к построению макета. Макет оценивается заказчиком и используется для уточнения требований к программному обеспечению. Итерации повторяются до тех пор, пока макет не выявит все требования заказчика и тем самым не даст возможность разработчику понять, что должно быть сделано.
Достоинство макетирования заключается в том, что оно дает возможность определить полные требования к программному обеспечению.
Недостаток макетирования состоит в том, что разработчик и заказчик могут принять макет за готовый программный продукт. Когда заказчик видит работающую версию программного обеспечения, он забывает о нерешенных вопросах качества и удобства сопровождения программного обеспечения.
С другой стороны для быстрого получения работающего макета разработчик часто идет на определенные компромиссы. В частности могут быть использованы не самый подходящий язык программирования или неэффективный алгоритм.
Спустя некоторое время разработчик забывает о причинах, по которым эти средства не подходят. В результате далеко неидеальный вариант реализации компонента интегрируется в рабочую систему.
Спиральная модель жизненного цикла
Спиральная модель является классическим примером эволюционной стратегии конструирования программного обеспечения.
Спиральная модель базируется на лучших свойствах каскадной модели жизненного цикла и макетирования, к которым добавляется анализ риска.
Спиральная модель включает четыре основных этапа, которые периодически повторяются:
планирование – это определение целей, вариантов и ограничений;
анализ риска – это анализ вариантов и распознавание риска;
конструирование – это разработка программного продукта следующего уровня;
оценивание – это оценка заказчика текущих результатов конструирования.
При движении по спирали строятся все более полные версии программного обеспечения при продвижении от центра к периферии. В первом витке спирали определяются начальные цели, варианты и ограничения, распознается и анализируется риск. Если анализ риска показывает неопределенность требований, то на помощь заказчику и разработчику приходит макетирование. Заказчик оценивает инженерную или конструкторскую работу и вносит предложения по модификации.
Следующая фаза планирования и анализа риска базируется на предложении заказчика. Если риск слишком велик, проект может быть остановлен. В большинстве случаев движение по спирали продолжается, с каждым шагом продвигая разработчиков к более общей модели системы. Количество действий по разработке возрастает по мере продвижения от центра спирали.
Рисунок 4 – Этапы спиральной модели
Достоинства спиральной модели:
наиболее реально отображает процесс разработки программного обеспечения;
позволяет явно учитывать риск на каждом витке эволюции разработки;
использует моделирование для уменьшения риска и совершенствования программного продукта.
Недостатки спиральной модели:
повышенное требование к заказчику;
трудности контроля и управления временем разработки.