Введение
Обзор программного обеспечения - это "процесс или встреча, в ходе которой программный продукт рассматривается сотрудниками проекта, менеджерами, пользователями, клиентами, представителями пользователей или другими заинтересованными сторонами для комментариев или одобрения". В этом контексте термин "программный продукт" означает "любой технический документ или частичный документ, изготовленный в качестве результатов деятельности по разработке программного обеспечения", и может включать такие документы, как контракты, планы и бюджеты проектов, документы о требованиях, спецификации, проекты, исходный код, пользовательская документация, документация поддержки и технического обслуживания, планы испытаний, спецификации испытаний, стандарты и любой другой тип специализированного рабочего продукта.
Различные типы экспертных обзоров
Обзор кода - это систематическое изучение (часто в виде экспертной оценки) исходного кода компьютера. Парное программирование - это тип пересмотра кода, когда два человека разрабатывают код вместе на одной рабочей станции. Инспекция - это очень формальный тип экспертной оценки, в которой рецензенты следуют четко определенному процессу для обнаружения дефектов. Прохождение - это форма экспертной оценки, когда автор ведет членов команды разработчиков и других заинтересованных сторон, проходящих через программный продукт, и участники задают вопросы и делают комментарии о дефектах. Технический обзор - это форма экспертного обзора, в которой команда квалифицированного персонала изучает пригодность программного продукта для его предполагаемого использования и выявляет расхождения со спецификациями и стандартами.
Формальные и неформальные обзоры
"Формальность" определяет степень, в которой деятельность регулируется согласованными (письменными) правилами. Процессы обзора программного обеспечения существуют в рамках спектра формальностей, с относительно неструктурированными действиями, такими как "проверка друзей" на одном конце спектра, и более формальными подходами, такими как прохождение, технические обзоры и проверки программного обеспечения, на другом. IEEE Std. 1028 1997 года определяет формальные структуры, роли и процессы для каждого из последних трех ("формальные экспертные обзоры"), а также аудит программного обеспечения. Исследования, как правило, подтверждают вывод о том, что формальные обзоры значительно превосходят неформальные обзоры в отношении эффективности затрат. Неформальные обзоры могут часто быть излишне дорогими (из-за траты времени из-за отсутствия внимания) и часто обеспечивают чувство безопасности, которое совершенно неоправданно относительно небольшим числом обнаруженных и исправленных реальных дефектов.
IEEE 1028 общий процесс для формальных обзоров
IEEE 1028 определяет общий набор мероприятий для "формальных" обзоров (с некоторыми вариациями, особенно для аудита программного обеспечения). В настоящем стандарте применяется различие между обзором менеджмента, техническим обзором, инспекцией, проверкой, аудитом и т.д. Установленная последовательность стандартных действий в значительной степени основана на процессе проверки программного обеспечения, первоначально разработанном в IBM Майкелом Фаганом. Различные типы проверки могут применять эту структуру с различной степенью строгости, но все виды деятельности являются обязательными для проверки: 0. [Оценка поступления]: руководитель обзора использует стандартный контрольный список критериев поступления, чтобы обеспечить оптимальные условия для успешного обзора. 1. Второй. Подготовка руководства: ответственное руководство обеспечивает, чтобы пересмотр был надлежащим образом обеспечен персоналом, временем, материалами и инструментами и проводился в соответствии с политикой, стандартами или другими соответствующими критериями. Второй. Планирование обзора: руководитель обзора определяет или подтверждает цели обзора, организует группу рецензентов и обеспечивает, чтобы эта группа была оснащена всеми необходимыми ресурсами для проведения обзора. Третье. Обзор процедур рассмотрения: руководитель рассмотрения или другое квалифицированное лицо обеспечивает (в случае необходимости на совещании) понимание всеми рецензентами целей рассмотрения, процедур рассмотрения, имеющихся у них материалов и процедур проведения рассмотрения. 4. Нельзя. [Индивидуальная] Подготовка: Рецензенты индивидуально готовятся к групповому рассмотрению работы, подлежащей рассмотрению, тщательно изучая ее на предмет "аномалий" (потенциальных дефектов), характер которых будет варьироваться в зависимости от типа рецензии и ее целей. Пять. [Групповая] экспертиза: эксперты собираются в запланированное время, чтобы объединить результаты своей подготовки и прийти к консенсусу относительно статуса рассматриваемого документа (или деятельности). Шесть. Переработка/последняя работа: Автор продукта работы (или другое назначенное лицо) предпринимает любые действия, необходимые для устранения дефектов или иного удовлетворения требований, согласованных на совещании по экспертизе. Руководитель проверки проверяет, что все пункты действия закрыты. Семь. [Оценка выхода]: руководитель обзора проверяет, были ли выполнены все мероприятия, необходимые для успешного обзора, и были ли завершены все выходы, соответствующие типу обзора.
0. [Entry evaluation]: The review leader uses a standard checklist of entry criteria to ensure that optimum conditions exist for a successful review. 1. Management preparation: Responsible management ensure that the review will be appropriately resourced with staff, time, materials and tools, and will be conducted according to policies, standards or other relevant criteria. 2. Planning the review: The review leader identifies or confirms the objectives of the review, organises a team of reviewers and ensures that the team is equipped with all necessary resources for conducting the review. 3. Overview of review procedures: The review leader, or some other qualified person, ensures (at a meeting if necessary) that all reviewers understand the review goals, the review procedures, the materials available to them and the procedures for conducting the review. 4. [Individual] Preparation: The reviewers individually prepare for group examination of the work under review, by examining it carefully for "anomalies" (potential defects), the nature of which will vary with the type of review and its goals. 5. [Group] Examination: The reviewers meet at a planned time to pool the results of their preparation activity and arrive at a consensus regarding the status of the document (or activity) being reviewed. 6. Rework/follow up: The author of the work product (or other assigned person) undertakes whatever actions are necessary to repair defects or otherwise satisfy the requirements agreed to at the examination meeting. The review leader verifies that all action items are closed. 7. [Exit evaluation]: The review leader verifies that all activities necessary for successful review have been accomplished and that all outputs appropriate to the type of review have been finalized.
Значение пересмотров
Наиболее очевидной ценностью обзоров программного обеспечения (особенно формальных обзоров) является то, что они могут выявлять проблемы раньше и дешевле, чем они были бы выявлены путем тестирования или полевого использования ("процесс обнаружения дефектов"). Стоимость обнаружения и устранения дефекта путем хорошо проведенного обзора может быть на один или два порядка меньше, чем если тот же дефект обнаруживается при выполнении испытания или в полевых условиях. Второй, но в конечном счете более важный, интерес от обзоров программного обеспечения заключается в том, что они могут использоваться для обучения технических авторов разработке документов с крайне низким уровнем дефектов, а также для выявления и устранения недостатков процесса, которые поощряют дефекты ("процесс предотвращения дефектов"). Это особенно верно в отношении экспертных обзоров, если они проводятся рано и часто, на образцах работ, а не дождаться завершения работы. Ранние и частые обзоры небольших образцов работы могут выявлять систематические ошибки в рабочих процессах автора, которые могут быть исправлены до дальнейшей неисправной работы. Это улучшение навыков автора может значительно сократить время, необходимое для разработки высококачественного технического документа, и значительно снизить уровень ошибок при использовании документа в последующих процессах. Как правило, чем раньше технический документ будет подготовлен, тем больше будет влияние его недостатков на любые последующие виды деятельности и их продукты. Соответственно, наибольшую ценность принесут ранние обзоры таких документов, как маркетинговые планы, контракты, планы проектов, графики и спецификации требований. Исследователи и практикующие специалисты показали эффективность процесса обзора при обнаружении ошибок и проблем безопасности.