- •Оглавление
- •Введение.
- •Организация процесса конструирования. Жизненный цикл программных средств.
- •Определение технологии конструирования программного обеспечения
- •Классический жизненный цикл
- •Макетирование
- •Стратегии конструирования по
- •Инкрементная модель
- •Быстрая разработка приложений
- •Спиральная модель
- •Компонентно-ориентированная модель
- •Тяжеловесные и облегченные процессы
- •Модели качества процессов конструирования
- •Планирование программного проекта. Оценка трудоемкости и стоимости программного проекта. Конкурентоспособность.
- •Процесс руководства проектом
- •Начало проекта
- •Измерения, меры и метрики
- •Планирование проектных задач
- •Размерно-ориентированные метрики
- •Функционально-ориентированные метрики
- •Выполнение оценки в ходе руководства проектом
- •Выполнение оценки проекта на основе loc- и fp-метрик
- •Конструктивная модель стоимости
- •Модель композиции приложения
- •Модель раннего этапа проектирования
- •Модель этапа постархитектуры
- •Предварительная оценка программного проекта
- •Анализ чувствительности программного проекта
- •Сценарий понижения зарплаты
- •Сценарий наращивания памяти
- •Сценарий использования нового микропроцессора
- •Сценарий уменьшения средств на завершение проекта
- •Организация разработки программного проекта.
- •Кризис программирования и способ выхода из него
- •Модель cmm-sei
- •Управление качеством разработки программного продукта с помощью системы стандартов iso 9001
- •Примерная структура процесса и организации, занимающейся разработкой программных продуктов
- •Внедрение программного проекта.
- •Что такое проект внедрения.
- •Определение стратегических целей проекта и тактического плана внедрения
- •Обучение специалистов группы внедрения.
- •Моделирование бизнеса.
- •Обучение конечных пользователей работе с системой.
- •Опытно-промышленная эксплуатация
- •Ввод системы в промышленную эксплуатацию.
- •Ключевые факторы успеха.
- •Эволюция программного обеспечения.
- •5.1. Наследуемые системы
- •Количество сбоев аппа- Характеризуются ли аппаратные средства высоким уровнем ратных средств и по сбоев в работе? Является ли по поддержки причиной аварийных перезагрузок системы?
- •5.2. Модернизация программного обеспечения
- •Прогнозирование сопровождения
- •5.3. Реинжениринг программного обеспечения
- •Преобразование исходного кода программ
- •Анализ систем
- •Создание программных модулей
- •Создание абстракций данных
- •Изменение данных
- •5.4. Управление конфигурациями
- •Планирование управления конфигурацией
- •Определение конфигурационных объектов
- •База данных конфигураций
- •Управление изменениями
- •Управление версиями и выпусками
- •Идентификация версий
- •Управление выходными версиями
- •Сборка системы
- •Case-средства для управления конфигурацией
- •Средства поддержки управления изменениями
- •Средства поддержки управления версиями
- •Средства сборки систем
- •Экономическая эффективность эксплуатации программного проекта.
- •6.1. Особенности экономики производства крупных программных продуктов
- •6.2. Проблемы анализа экономики производства программных продуктов
- •6.3. Проблемы организации экономически эффективного производства программных продуктов
- •6.4. Оценка стоимости разработки программного обеспечения
- •6.4.1. Линейный метод
- •6.4.2. Метод функциональных точек
- •6.4.3. Оценка с использованием эмпирических данных
- •6.5. Методы оценки эффективности по на этапе эксплуатации
- •Список литературы.
Организация процесса конструирования. Жизненный цикл программных средств.
Определение технологии конструирования программного обеспечения
Технология конструирования программного обеспечения (ТКПО) — система инженерных принципов для создания экономичного ПО, которое надежно и эффективно работает в реальных компьютерах [64], [69], [71].
Различают методы, средства и процедуры ТКПО.
Методы обеспечивают решение следующих задач:
планирование и оценка проекта;
анализ системных и программных требований;
проектирование алгоритмов, структур данных и программных структур;
кодирование;
тестирование;
сопровождение.
Средства (утилиты) ТКПО обеспечивают автоматизированную или автоматическую поддержку методов. В целях совместного применения утилиты могут объединяться в системы автоматизированного конструирования ПО. Такие системы принято называть CASE-системами. Аббревиатура CASE расшифровывается как Computer Aided Software Engineering (программная инженерия с компьютерной поддержкой).
Процедуры являются «клеем», который соединяет методы и утилиты так, что они обеспечивают непрерывную технологическую цепочку разработки. Процедуры определяют:
порядок применения методов и утилит;
формирование отчетов, форм по соответствующим требованиям;
контроль, который помогает обеспечивать качество и координировать изменения;
формирование «вех», по которым руководители оценивают прогресс.
Процесс конструирования программного обеспечения состоит из последовательности шагов, использующих методы, утилиты и процедуры. Эти последовательности шагов часто называют парадигмами ТКПО.
Применение парадигм ТКПО гарантирует систематический, упорядоченный подход к промышленной разработке, использованию и сопровождению ПО. Фактически, парадигмы вносят в процесс создания ПО организующее инженерное начало, необходимость которого трудно переоценить.
Рассмотрим наиболее популярные парадигмы ТКПО.
Классический жизненный цикл
Старейшей парадигмой процесса разработки ПО является классический жизненный цикл (автор Уинстон Ройс, 1970) [65].
Очень часто классический жизненный цикл называют каскадной или водопадной моделью, подчеркивая, что разработка рассматривается как последовательность этапов, причем переход на следующий, иерархически нижний этап происходит только после полного завершения работ на текущем этапе (рис. 1.1).
Охарактеризуем содержание основных этапов.
Подразумевается, что разработка начинается на системном уровне и проходит через анализ, проектирование, кодирование, тестирование и сопровождение. При этом моделируются действия стандартного инженерного цикла.
Системный анализ задает роль каждого элемента в компьютерной системе, взаимодействие элементов друг с другом. Поскольку ПО является лишь частью большой системы, то анализ начинается с определения требований ко всем системным элементам и назначения подмножества этих требований программному «элементу». Необходимость системного подхода явно проявляется, когда формируется интерфейс ПО с другими элементами (аппаратурой, людьми, базами данных). На этом же этапе начинается решение задачи планирования проекта ПО. В ходе планирования проекта определяются объем проектных работ и их риск, необходимые трудозатраты, формируются рабочие задачи и план-график работ.
Анализ требований относится к программному элементу — программному обеспечению. Уточняются и детализируются его функции, характеристики и интерфейс.
Все определения документируются в спецификации анализа. Здесь же завершается решение задачи планирования проекта.
Рис. 1.1. Классический жизненный цикл разработки ПО
Проектирование состоит в создании представлений:
архитектуры ПО;
модульной структуры ПО;
алгоритмической структуры ПО;
структуры данных;
входного и выходного интерфейса (входных и выходных форм данных).
Исходные данные для проектирования содержатся в спецификации анализа, то есть в ходе проектирования выполняется трансляция требований к ПО во множество проектных представлений. При решении задач проектирования основное внимание уделяется качеству будущего программного продукта.
Кодирование состоит в переводе результатов проектирования в текст на языке программирования.
Тестирование — выполнение программы для выявления дефектов в функциях, логике и форме реализации программного продукта.
Сопровождение — это внесение изменений в эксплуатируемое ПО. Цели изменений:
исправление ошибок;
адаптация к изменениям внешней для ПО среды;
усовершенствование ПО по требованиям заказчика.
Сопровождение ПО состоит в повторном применении каждого из предшествующих шагов (этапов) жизненного цикла к существующей программе но не в разработке новой программы.
Как и любая инженерная схема, классический жизненный цикл имеет достоинства и недостатки.
Достоинства классического жизненного цикла: дает план и временной график по всем этапам проекта, упорядочивает ход конструирования.
Недостатки классического жизненного цикла:
1) реальные проекты часто требуют отклонения от стандартной последовательности шагов;
2) цикл основан на точной формулировке исходных требований к ПО (реально в начале проекта требования заказчика определены лишь частично);
3) результаты проекта доступны заказчику только в конце работы.
