- •Основные понятия и определения
- •Модели жизненного цикла разработки программных средств и систем
- •Стратегии разработки программных средств и систем
- •Каскадная модель жизненного цикла разработки программных средств и систем
- •Преимущества каскадной модели жизненного цикла
- •Недостатки каскадной модели жизненного цикла
- •Область применения каскадной модели
- •V-образная модель жизненного цикла разработки программных средств и систем
- •Преимущества V-образной модели жизненного цикла
- •НедостаткиV-образной модели жизненного цикла
- •Область применения V-образной модели
- •Структурная эволюционная модель быстрого прототипирования жизненного цикла разработки программных средств и систем
- •Преимущества структурной эволюционной модели быстрого прототипирования
- •Недостатки структурной эволюционной модели быстрого прототипирования
- •Область применения структурной эволюционной модели быстрого прототипирования
- •Модель быстрой разработки приложений rad
- •Преимущества модели быстрой разработки
- •Недостатки модели быстрой разработки
- •Область применения модели быстрой разработки rad
- •Инкрементная модель жизненного цикла разработки программных средств и систем
- •Преимущества инкрементной модели жизненного цикла
- •Недостатки инкрементной модели жизненного цикла
- •Область применения инкрементной модели
- •Спиральная модель жизненного цикла разработки программных средств и систем
- •Преимущества спиральной модели жизненного цикла
- •Недостатки спиральной модели жизненного цикла
- •Область применения спиральной модели
- •Упрощенные варианты спиральной модели
- •Классификация проектов по созданию и развитию программных средств и систем
- •Классические технологии проектирования программ
- •Модульное проектирование программ
- •Метод нисходящего проектирования
- •Пошаговое уточнение
- •Кодирование программы с помощью псевдокода и управляющих конструкций структурного программирования
- •Использование комментариев для описания обработки данных
- •Анализ сообщений
- •Связность модуля
- •Сцепление модулей
- •Метод восходящего проектирования
- •Методы расширения ядра
- •Метод иерархического проектирования модулей (метод Джексона)
- •Основные конструкции построения структур данных
- •Построение структур данных
- •Создание структур программ
- •Этапы конструирования программы
- •Case-технологии проектирования программного обеспечения
- •Общие сведения о case-технологиях
- •Информационное моделирование
- •Сущности
- •Атрибуты
- •Способы представления сущностей с атрибутами
- •5. Студент (с)
- •Классификация атрибутов
- •Правила атрибутов
- •Безусловные связи
- •Условные формы связи
- •Формализация связи
- •Подтипы и супертипы
- •Рабочие продукты информационного моделирования
- •Методология структурного анализа и проектирования sadt
- •Введение
- •Общие сведения о методологии структурного анализа и проектирования sadt
- •Достоинства методологии sadt
- •Основные понятия idef0-модели
- •Синтаксис диаграмм
- •Синтаксис моделей
- •Декомпозиция и её стратегии при idef0-моделировании
- •Процесс моделирования в idef0
- •Инструментальные средства проектирования программного обеспечения
- •ЭволюцияCase-средств
- •Case–модель жизненного цикла.
- •Сравнительная оценка трудозатрат по этапам жизненного цикла.
- •Концептуальные основыCase–средств
- •Состав и функциональные особенностиCase–средств
- •КлассификацияCase–средств
Классификация проектов по созданию и развитию программных средств и систем
Существуют различные схемы классификации проектов. ГОСТ классификации проектов: ГОСТ Р ИСО/МЭК ТО 12182-2002. В нём приведена схема классификации по 16-ти видам. Каждый вид подразделяется на классы, но классификация имеет слишком общий характер, а следовательно – не может использоваться для выбора жизненного цикла. В связи с этим, институт качества SQI(США) специально для выбора модели жизненного цикла разработал схему классификации проектов по созданию и развитию программных средств и систем.
Основу данной классификации составляют 4 категории критериев, по каждому критерию проекты разделяются на 2 альтернативных класса.
Категории классификации проектов
Характеристики требований к проектам.
Критерии данной категории классифицируют проекты в зависимости от требований пользователя к разрабатываемой автоматизированной системе.
Пример: возможность формулирования требований в начале жизненного цикла, возможность изменения требований в жизненном цикле, возможность реализации требований за 1 приход.
Характеристики команды разработчиков.
Пример: Владеют ли разработчики современными CASE-технологиями, как разработчики относятся к непрерывным проверкам.
Характеристики пользователей.
Определяет возможность участия пользователя в разработке.
Характеристики типов проектов и рисков.
Критерии данной категории отражают сложность, достаточность временных и финансовых ресурсов. В данной категории учитывается степень управления рисками проекта.
Данная классификация пригодна для масштабных проектов. Использование её для небольших проектов может привести к чрезмерному увеличению графика, затратам, рискам.
Классические технологии проектирования программ
Модульное проектирование программ
Под модуляризацией понимается разделение программы на части по некоторым установленным правилам.
Модульная программа – это программа, в которой любую часть логической структуры можно изменить не вызывая изменений в других частях программы.
Признакимодульности программы:
Программа состоит из модулей.
Независимость модулей.
Условие: один вход, один выход.
Достоинствамодульного проектирования:
Упрощение разработки и реализации программ.
Облегчение чтения программы.
Упрощения настройки и модификации программы.
Облегчение работы с данными, имеющими сложную структуру.
Исключение чрезмерной детализации алгоритма.
Недостатки:
модульность требует большей дополнительной работы программиста и определенных навыков проектирования программ.
модульный подход в среднем требует большего времени работы ЦП(на 5-10%) за счет времени обращения к модулям.
модульность программ приводит к увеличению объема программ(на 5-10%).
Методы проектирования модульных программделятся на 3 группы:
методы нисходящего проектирования.
Методы расширения ядра.
Методы восходящего проектирования.
Метод нисходящего проектирования
Основное назначение:
Служить средством разбиение большой задачи на меньшие подзадачи так, чтобы каждую задачу можно было рассматривать независимо.
Суть метода: в начальном шаге в соответствии с функцией всей программы продумывается общая структура всего алгоритма без детальной обработки его отдельных частей.
Затем определяется подфункции программы, и в соответствии с ними прорабатываются отдельные блоки, не детализированные на предыдущем шаге. Эти действия являются рекурсивными, пока не достигнута нужная степень детализации.
Метод основан на двух стратегиях:
пошаговое уточнение (разработана Дейкстрой)
анализ сообщений (разработана группой авторов: Йодан, Константайн, Мейерс).