
- •Кризис программирования и способ выхода из него
- •Модель cmm-sei
- •Управление качеством разработки программного продукта с помощью системы стандартов iso 9001
- •Примерная структура процесса и организации, занимающейся разработкой программных продуктов
- •Контрольные вопросы
- •Оценка технических, нетехнических и финансовых ресурсов для выполнения программного проекта
- •Оценка возможных рисков при выполнении программного проекта
- •6.5. Составление временного графика выполнения программного проекта
- •Собираемые метрики, используемые методы, стандарты и шаблоны
- •Контрольные вопросы
- •Конструирование прототипа
- •Составление спецификаций по требованиям заказчика
- •Собираемые метрики, используемые методы, стандарты и шаблоны
- •Контрольные вопросы
- •Эволюция разработки программного продукта
- •Структурное программирование
- •Объектно-ориентированное проектирование
- •Собираемые метрики, используемые методы, стандарты и шаблоны
- •Контрольные вопросы
- •Тестирование
- •Разработка справочной системы программного продукта. Создание документации пользователя
- •Создание версии и инсталляции программного продукта
- •Собираемые метрики, используемые методы, стандарты и шаблоны
- •Контрольные вопросы
- •Виды тестирования
- •Программные ошибки
- •Тестирование документации
- •Разработка и выполнение тестов
- •Требования к хорошему тесту
- •Классы эквивалентности и граничные условия
- •Тестирование переходов между состояниями
- •Условия гонок и другие временные зависимости
- •Нагрузочные испытания
- •Прогнозирование ошибок
- •Тестирование функциональной эквивалентности
- •Регрессионное тестирование
- •Собираемые метрики, используемые методы, стандарты и шаблоны
- •Контрольные вопросы
- •1. Подготовительная работа, предусматривающая:
- •Контрольные вопросы
- •Классификация поставляемых программных продуктов
- •Действия, выполняемые при поставке программного продукта
- •Контрольные вопросы
- •Основные понятия о надежности программных продуктов и методах ее обеспечения
- •Методы обеспечения надежности на различных этапах жизненного цикла разработки программного продукта
- •Прогнозирование ошибок
- •Шаблон для учета итоговых сведений об ошибках
- •Предотвращение ошибок
- •Шаблон для учета действий по предотвращению ошибок на этапах составления требований, проектирования и разработки
- •Устранение ошибок
- •Обеспечение отказоустойчивости
- •Инструменты, обеспечивающие надежность программных продуктов. План обеспечения надежности
- •Контрольные вопросы
Примерная структура процесса и организации, занимающейся разработкой программных продуктов
Для организации предсказуемого и управляемого процесса компании необходимы организационные, технические и нетехнические средства (рис. 4.3).
Организационные средства включают в себя определенный перечень различных должностей и иерархию подчинения сотрудников вышестоящему руководству.
Общее управление работой компании выполняет генеральный директор. Вопросы, связанные с ходом выполнения различных проектов, курирует исполнительный директор, а вопросы, связанные с организацией и обеспечением процесса компании (т. е. свода правил, процедур, рекомендаций и других руководящих документов, в соответствии с которыми компания действует) и работы по обеспечению качества ПП, — заместитель генерального директора. Такое распределение работ лишний раз подчеркивает важность создания в компании процесса и проведения работ по обеспечению качества ПП.
При необходимости вместо двух групп (группы процесса и группы обеспечения качества) в компании может быть только одна группа процесса, но при этом она должна также выполнять все действия по обеспечению качества ПП. Кроме этого, в каждом проекте должен быть выбран ответственный за качество ПП. Обычно это руководитель проекта или один из ведущих инженеров. Ответственный за качество является представителем групп процесса и обеспечения качества (если эти группы существуют самостоятельно) в своем проекте и отвечает за выполнение всех действий, связанных с процессом компании и обеспечением качества.
Независимый тестировщик, как видно из рис. 4.3, участвует в работе над проектом, но не зависит от руководителя проекта. Это позволяет проводить независимое объективное тестирование документации и ПП, разрабатываемого в данном проекте. Часто бывает так, что тестировщик одновременно принимает участие в нескольких проектах, особенно если их текущие этапы не совпадают. Нередко создают отдельную группу тестирования, куда входят все тестировщики компании.
Технические средства предназначены для организации соответствующих условий работы над проектами и поддержанию процесса компании, а также работ по обеспечению качества программного продукта. Например, автоматизированное рабочее место (АРМ) программиста позволяет повысить производительность его работ и качество разрабатываемого ПП, а компьютерная сеть — обеспечить электронный документооборот в компании и связь между сотрудниками. База данных дает возможность хранить всю информацию, связанную с ходом выполнения как текущих проектов, так и выполненных ранее.
Нетехнические средства включают в себя разработанные или принятые к использованию стандарты и планы, а также книгу процесса, которая содержит подробное описание процесса компании. По метрикам процесса оценивают его основные характеристики (ключевые процессы) и результаты оценки заносят в паспорт процесса. Этот паспорт позволяет отслеживать соблюдение процесса, а также планировать действия по его совершенствованию.
Контрольные вопросы
1. Чем был вызван кризис программирования?
2. Какой существует выход из кризиса программирования?
3. Какой проект можно определить как «смертельный марш»?
4. Какие методики оценки состояния процесса разработки программного продукта вам известны?
5. Перечислите и охарактеризуйте основные уровни зрелости организации согласно модели СММ.
6. Какие ключевые процессы должны выполняться на каждом из пяти уровней модели СММ?
7. Какова структура СММ?
8. Определите цель и назначение системы стандартов ISO 9001.
9. Перечислите и охарактеризуйте минимальный набор требований к управлению качеством согласно системе стандартов ISO 9001.
10. Какие требования предъявляются к управлению: а) компанией; б) продукцией; в) разработкой?
11. Объясните примерную структуру процесса и организации, занимающейся разработкой программных продуктов.
12. Что включают в себя средства: а) организационные; б) технические; в) нетехнические?
ПЛАНИРОВАНИЕ РАБОТ ПО СОЗДАНИЮ ПРОГРАММНЫХ ПРОДУКТОВ
Структура разделения работ по созданию программного продукта
Планирование работ начинается с получения первичных требований заказчика (ПТЗ), а основой планирования является выделение всех необходимых для выполнения и успешного завершения проекта задач и определение связей между ними. Результатом этого является структура разделения работ по созданию ПП.
Оцениваются объем и трудоемкость каждой выделенной задачи и каждого элемента структуры, определяются необходимые ресурсы и временной график реализации жизненного цикла. Процесс планирования определяется как циклический; его цикл показан на рис. 6.1.
График разработки ПП оценивается с точки зрения реальности выполнения, и в случае получения по каким-либо показателям нереального графика цикл планирования повторяется. При этом не всегда обязательно повторять выполнение всех выделенных задач этапа планирования.
Рис. 6.1. Цикл планирования работ по созданию программного продукта
Как правило, структура разделения работ представляет собой иерархию задач.
Детализацию в иерархии задач необходимо производить до уровня, достаточного для проведения оценки сложности и объема каждой задачи. Задачи низшего уровня структуры разделения работ должны быть настолько малы и просты, чтобы любую из них мог выполнить отдельный исполнитель за достаточно короткий отрезок времени.
Структурирование желательно заканчивать построением структурной диаграммы, отражающей общую концепцию дальнейшего проектирования ПП.
Оценка объемов и сложности программного
продукта
За единицу объема ПП принято число строк программного кода (LOC), а за единицу производительности — число строк эффективного программного кода (т. е. число строк программного кода в отлаженном ПП), производимых одним человеком за один месяц (LOC/чел.-мес).
Отдельные работы, не связанные с конструированием программного кода, следует измерять в человекочасах.
Объем и сложность каждого элемента структуры разделения работ определяются при помощи экспертной оценки и выражаются числом LOC и человекочасов. Рекомендуется использовать для получения каждой оценки не менее трех независимых экспертов, усредняя их показания. При этом сложность структурного элемента учитывается весовым коэффициентом сложности ^ = 0,75... 1,25. Для получения объема структурного элемента необходимо его экспертную оценку умножить на коэффициент сложности Кс.