- •Разработка сложных программных изделий
- •Раздел 1.Структурные методологии разработки программного обеспечения Глава 1.Структурные методы в программотехнике
- •1.1.Эволюция структурных методов
- •1.2.Основные идеи и принципы структурной методологии
- •1.3.Принципы программотехники
- •1.4.Принципы информационной инженерии
- •1.5.Автоматизация проектирования
- •Глава 2.Структурные методы анализа и проектирования
- •2.1.Структурный системный анализ
- •2.2.Нисходящее проектирование
- •2.3.Структурное проектирование, управляемое потоками данных
- •2.4.Методы проектирования, управляемые структурами данных
- •Глава 3.Структурные методы программирования
- •3.1.Особенности структурных программ
- •3.2.Цели структурного программирования
- •3.3.Программирование с использованием пошаговой детализации
- •3.4.Нисходящее и восходящее программирование
- •Глава 4.Модульное программирование
- •4.1.Основные понятия и определения
- •4.2.Программные модули и схема модуляризации
- •4.3.Оценка качества модульной программы
- •Глава 5.Модели разработки программных изделий
- •5.1.Модель жизненного цикла программного изделия
- •5.2.Модель "возрастающей выдачи"
- •5.3.Модель с использованием прототипа
- •5.4.Спиральная модель
- •Раздел 2.Фазы жизненного цикла программного изделия Глава 6.Определение требований пользователя и требований к программному изделию
- •6.1.Требования пользователя
- •6.2. Требования к программному изделию
- •6.3. Разработка логической модели программного изделия
- •6.4. Классификация требований к программному изделию
- •6.5. Атрибуты требований к программному изделию
- •6.6. Документ Требования к программному изделию
- •6.7 Техническое задание на разработку программного изделия
- •Глава 7.Архитектурное проектирование программного изделия
- •7.1.Общее содержание работ фазы
- •7.2.Виды деятельности
- •7.3.Критерии качества архитектурного проекта
- •Глава 8.Детальное проектирование и изготовление программного изделия
- •8.1.Основные виды деятельности
- •8.2.Кодирование модулей
- •8.3.Тестирование программного изделия
- •8.4.Документирование работ по проектированию программного изделия
- •Глава 9.Отладка программ
- •9.1.Трудности отладки
- •9.2.Средства и методы отладки
- •9.3.Категории ошибок в программном обеспечении
- •9.4.Рекомендации по отладке
- •Глава 10.Эксплуатация и сопровождение программного изделия
- •10.1.Передача программного изделия в эксплуатацию
- •10.2.План испытаний
- •10.3.Работы по эксплуатации и сопровождению программного изделия
- •10.4.Задачи службы сопровождения программного изделия
- •Раздел 3.Управление разработкой программного изделия Глава 11.Управление жизненным циклом программного изделия
- •11.1.Виды деятельности, связанные с управлением жизненным циклом программного изделия
- •11.2.Измерения в программотехнике
- •11.3.Управление проектированием программного изделия
- •11.4.Методы получения оценок для проекта программного изделия
- •11.4.1. Методы функциональной декомпозиции
- •11.4.2. Эмпирические оценочные модели
- •11.5.Управление рисками
- •11.6.Планирование разработки программного изделия
- •Глава 12.Управление качеством программного изделия
- •12.1.Качество программного изделия
- •12.2.Обеспечение качества программного изделия
- •12.3.Измерение качества программного изделия
- •12.4.Управление конфигурацией программного изделия
- •Литература
6.2. Требования к программному изделию
Вторая фаза ЖЦПИ — фаза определения требований к программному изделию, которая является фазой "анализа проблемы". Главной целью этой фазы выступает разработка полной, непротиворечивой и корректной совокупности требований к программному обеспечению на основе всестороннего изучения требований пользователя. За выработку требований отвечает разработчик. В качестве участников этой фазы должны привлекаться пользователи, инженеры-программисты, специалисты по техническим средствам, а также обслуживающий персонал. Ответственным за выполнение работы, как правило, назначается системный аналитик. Руководитель проекта организует взаимные консультации и обсуждения, поскольку участники обсуждений могут иметь разное представление о конечном продукте, и их взгляды должны синтезироваться в четкие и непротиворечивые формулировки требований.
Основным выходным результатом этой фазы жизненного цикла является документ Требования к программному изделию (ДТПИ), который определяет, что должен делать программный продукт, а также, как будет осуществляться проверка правильности и полноты выполняемых функций и на этапах проектирования, и при проверке конечного продукта. Работы здесь выполняются в соответствии с планом, разработанным на предыдущем этапе.
Основная деятельность — трансформация требований пользователя в требования к программному изделию и составление подробного описания того, что должно выполнять программное изделие. Подготавливаемый документ должен отражать взгляд разработчика на решаемую проблему. Этот взгляд базируется на модели системы обработки данных, построенной на основе структурного системного анализа потоков данных и представленной в виде совокупности схем потоков данных с последовательной пошаговой детализацией функций разрабатываемой системы. Главная задача на этом этапе — согласование представлений и требований пользователя (заказчика) и разработчика программного изделия.
Выработка требований к программному изделию может потребовать создания прототипа для проверки, пояснения или уточнения требований и их согласования с заказчиком. Кроме документа Требования к программному изделию, на этой фазе разрабатываются планы работ для следующей фазы. В отечественной практике рассматриваемая фаза завершается созданием Технического задания на программное изделие.
6.3. Разработка логической модели программного изделия
Разработчик должен сконструировать логическую модель проектируемого программного изделия, независимую от последующей физической реализации, которая должна отражать требования пользователя. Эта модель служит для выработки совокупности требований к программному обеспечению. Существующие структурные методологии используют для построения модели принцип нисходящей декомпозиции основной функции программного изделия в иерархию функций с последовательной детализацией функции на следующих уровнях иерархии. Средством логического моделирования выступает структурный системный анализ, позволяющий подробно описывать схемы потоков данных, которые будут существовать при функционировании автоматизированной системы (программного продукта). Для описания схем потоков данных используются компоненты: источник/приемник данных, линия потока данных, хранилище данных, блок обработки данных.
Процесс структурного анализа осуществляется по функциональным уровням. Прежде чем переходить к детальному рассмотрению следующего уровня, необходимо провести сквозной просмотр всех спецификаций каждого функционального блока данного уровня, чтобы убедиться в согласованности всех требований. Обычно число уровней не превышает 3—4-х.
Логическая модель должна удовлетворять следующим правилам:
1. Каждая функция в модели отражает единственную и четко определенную цель. Имена функций определяют, что должно быть сделано, а не как сделано.
2. Функции соответствуют уровню иерархии, на котором они представлены в модели.
3. Связи между функциями (функциональными блоками модели) минимизируют.
4. Каждая функция может разделяться не более чем на 7 подфункций следующего уровня.
5. В модели не должна присутствовать информация, связанная с последующей реализацией изделия, например, такие понятия, как модуль, файл, запись и т.п.
6. Для каждой функции приводятся входные данные.
7. Каждой функции соответствует список выходных данных (выходных отчетов).
