
- •Кризис программирования и способ выхода из него
- •Модель cmm-sei
- •Управление качеством разработки программного продукта с помощью системы стандартов iso 9001
- •Примерная структура процесса и организации, занимающейся разработкой программных продуктов
- •Контрольные вопросы
- •Оценка технических, нетехнических и финансовых ресурсов для выполнения программного проекта
- •Оценка возможных рисков при выполнении программного проекта
- •6.5. Составление временного графика выполнения программного проекта
- •Собираемые метрики, используемые методы, стандарты и шаблоны
- •Контрольные вопросы
- •Конструирование прототипа
- •Составление спецификаций по требованиям заказчика
- •Собираемые метрики, используемые методы, стандарты и шаблоны
- •Контрольные вопросы
- •Эволюция разработки программного продукта
- •Структурное программирование
- •Объектно-ориентированное проектирование
- •Собираемые метрики, используемые методы, стандарты и шаблоны
- •Контрольные вопросы
- •Тестирование
- •Разработка справочной системы программного продукта. Создание документации пользователя
- •Создание версии и инсталляции программного продукта
- •Собираемые метрики, используемые методы, стандарты и шаблоны
- •Контрольные вопросы
- •Виды тестирования
- •Программные ошибки
- •Тестирование документации
- •Разработка и выполнение тестов
- •Требования к хорошему тесту
- •Классы эквивалентности и граничные условия
- •Тестирование переходов между состояниями
- •Условия гонок и другие временные зависимости
- •Нагрузочные испытания
- •Прогнозирование ошибок
- •Тестирование функциональной эквивалентности
- •Регрессионное тестирование
- •Собираемые метрики, используемые методы, стандарты и шаблоны
- •Контрольные вопросы
- •1. Подготовительная работа, предусматривающая:
- •Контрольные вопросы
- •Классификация поставляемых программных продуктов
- •Действия, выполняемые при поставке программного продукта
- •Контрольные вопросы
- •Основные понятия о надежности программных продуктов и методах ее обеспечения
- •Методы обеспечения надежности на различных этапах жизненного цикла разработки программного продукта
- •Прогнозирование ошибок
- •Шаблон для учета итоговых сведений об ошибках
- •Предотвращение ошибок
- •Шаблон для учета действий по предотвращению ошибок на этапах составления требований, проектирования и разработки
- •Устранение ошибок
- •Обеспечение отказоустойчивости
- •Инструменты, обеспечивающие надежность программных продуктов. План обеспечения надежности
- •Контрольные вопросы
Создание версии и инсталляции программного продукта
Создание инсталляции ПП. Это действие позволяет автоматизировать процесс установки ПП на компьютеры пользователей, предоставляя им при этом возможность выбора различных сценариев установки и обеспечивая корректность его дальнейшей работы. При инсталляции ПП как бы «погружается» в то программное окружение, в котором он должен работать. Кроме того, у разработчиков ПП появляется прекрасная возможность запретить несанкционированные «пиратские» установки (например, с помощью проверки серийного номера ПП). Процесс инсталляции ПП обязательно должен быть описан в руководстве пользователя либо в отдельной брошюре.
В процессе инсталляции ПП могут проявиться различные проблемы. Наиболее часто встречаются следующие.
1. Окружение, в котором инсталлируется ПП, не совпадает с окружением, для которого он спроектирован. Например, ПП может использовать функции, которые предоставляет только определенная версия операционной системы. Однако версия операционной системы либо сама операционная система, определяющая текущее окружение инсталлируемого ПП, может не обладать этими функциями. В этом случае после инсталляции ПП может не работать совсем либо некоторые его функции окажутся не реализованными. Для устранения этой проблемы в руководстве пользователя обязательно должны быть перечислены либо версии операционных систем, либо сами операционные системы, с которыми ПП будет работать корректно.
2. Новый ПП может сосуществовать со старым до тех пор, пока в организации, где он инсталлируется, не убедятся, что новый ПП работает так, как требуется. Инсталляция нового ПП при оставленном старом может привести к определенным проблемам, особенно, если новый и старый ПП не являются полностью независимыми, а имеют некоторые общие компоненты. Случаются ситуации, когда новый ПП вообще невозможно внедрить без удаления старого. При этом испытания нового ПП можно провести только тогда, когда старый ПП не функционирует. Если такая ситуация вероятна, то она также должна быть описана в руководстве пользователя с конкретными рекомендациями по ее устранению.
Управление созданием версий и поставками ПП. Такое управление необходимо для идентификации всех версий и поставок ПП и слежения за ними. Специально выделенный сотрудник проекта (ответственный за управление конфигурацией), отвечающий за управление версиями и поставками ПП, выполняет процедуры поиска старых и создания новых версий или поставок ПП, а также следит за тем, чтобы изменения не осуществлялись произвольно. Только в том случае, когда информация об изменениях в версиях вносится исключительно ответственным за управление конфигурацией, можно гарантировать согласованность версий.
Версией ПП называют экземпляр ПП, имеющий определенные отличия от других экземпляров этого же ПП. Новые версии могут отличаться функциональными возможностями, эффективностью или отсутствием ошибок, имевшихся в старых версиях. Некоторые версии имеют одинаковые функциональные возможности, однако разработаны под различные конфигурации аппаратного или программного обеспечения. Если отличия между версиями незначительны, то они называются вариантами одной версии.
Выходная версия (release), или поставка ПП, — это та версия, которая поставляется заказчику. В каждой выходной версии либо обязательно присутствуют новые функциональные возможности, либо она разработана под новую платформу. Число версий обычно намного превышает число поставок, поскольку версии создаются в основном для внутреннего пользования и не поставляются заказчику.
В настоящее время для поддержки управления версиями разработано много разнообразных CASE-средств, с помощью которых осуществляются управление хранением каждой версии и контроль за допуском к компонентам ПП. Компоненты могут извлекаться из ПП для внесения в них изменений. После введения в ПП измененных компонентов получается новая версия, для которой с помощью системы управления версиями создается новое имя.
Идентификация версий. Любой большой ПП состоит из сотен компонентов, каждый из которых может иметь несколько версий. Процедуры управления версиями должны четко идентифицировать каждую версию компонента. Существуют три основных способа идентификации версий.
1. Нумерация версий. Каждый компонент имеет уникальный и явный номер версии. Этот способ идентификации используется наиболее широко.
2. Идентификация, основанная на значениях атрибутов. Каждый компонент идентифицируется именем, которое не является уникальным для разных версий, и набором значений атрибутов, разных для каждой версии компонента. Другими словами, версия компонента идентифицируется комбинацией имени и набора значений атрибутов.
3. Идентификация на основе изменений. Каждая версия ПП именуется так же, как в предыдущем способе, плюс даются ссылки на запросы на изменения, которые реализованы в данной версии ПП. Таким образом, версия ПП идентифицируется именем и теми изменениями, которые реализованы в компонентах.
Нумерация версий. По самой простой схеме нумерации версий к имени компонента или ПП добавляется номер версии. Например, обозначение MASM TPU 4.3 означает: версия 4.3 ассемблера TPU. Первая версия обычно получает номер 1.0, последующие ее варианты — 1.1, 1.2 и т.д. На каком-то этапе создается новая поставка — версия 2.0; нумерация вариантов этой версии начинается заново: 2.1, 2.2 и т.д. Такая линейная схема нумерации основана на предположении о последовательности создания версий. Подобный подход к идентификации версий поддерживается многими программными средствами управления версиями.
Данный способ идентификации версий достаточно прост, однако требует довольно большого количества информации для сопоставления версий с целью отслеживания различий между ними и связи между запросами на изменения и версиями. Поэтому поиск отдельной версии ПП или его компонента может быть достаточно трудным, особенно при отсутствии интеграции между базой данных конфигураций и системой хранения версий.
Идентификация, основанная на значениях атрибутов. Основная проблема способов явного именования версий заключается в том, что в данном случае не отображаются те признаки, которые можно использовать для идентификации версий. В качестве таких признаков могут выступать: имя заказчика; язык программирования; состояние разработки; аппаратная платформа; дата создания.
Если каждая версия определяется единым набором атрибутов, то нетрудно добавить новые версии, основанные на любой из существующих версий, поскольку они будут идентифицироваться единым набором значений атрибутов. При этом значения многих атрибутов новой версии будут совпадать со значениями атрибутов исходной версии; таким образом можно прослеживать взаимоотношения между версиями. Поиск версий осуществляется на основе значений атрибутов. При этом возможны такие запросы, как «самая последняя версия», «версия, созданная между определенными датами» и т. п. Например, обозначение версии MASM TPU, разработанной на языке C++ для использования под управлением Windows 95 в апреле 1996 г., будет выглядеть следующим образом: MASM TPU (язык = C++, платформа = Windows 95, дата = апрель 1996).
Идентификация, основанная на значениях атрибутов, системой управления версиями может применяться непосредственно. Однако более распространено использование только части имени версии, при этом база данных конфигураций поддерживает связь между значениями атрибутов и версиями ПП и компонентов.
Идентификация на основе изменений. Идентификация, основанная на значениях атрибутов, устраняет проблему поиска версий, свойственную простым способом нумерации, когда для поиска версии требуется знание ее атрибутов. Но в этом случае для регистрации взаимосвязей между версиями и изменениями необходимо использование отдельной системы управления изменениями.
Идентификация на основе изменений применяется, скорее, к ПП, чем к его компонентам; версии отдельных компонентов скрыты от пользователей системы управления конфигурацией. Каждое изменение в ПП описывается массивом изменений, где указаны изменения в отдельных компонентах, реализующие данное изменение ПП. Массивы изменений могут применяться последовательно таким образом, чтобы создать версию ПП, в которой реализованы все необходимые изменения. В этом случае не требуется точного обозначения версии. Ответственный за управления конфигурацией работает с системой управления версиями посредством системы управления изменениями.
Применение нескольких массивов изменений ПП должно быть согласовано, поскольку отдельные массивы изменений могут быть несовместимыми и их последовательное применение может при-вести к появлению неработоспособного ПП. Кроме того, массивы изменений могут конфликтовать, если они предусматривают разные изменения в одном компоненте. Для устранения этих проблем применяются средства управления версиями, поддерживающие идентификацию на основе изменений, что позволяет установить точные правила согласованности последовательности версий ПП. Это, в свою очередь, ограничивает способы комбинирования массивов изменений.