550 Глава 11
системы получаются компактными и легкими для сопровождения и развития. Кро-
ме того, достигается гибкость в разработке, поскольку каждый член команды знает
тонкости не только «своей» части, но и системы в целом. При коллективном обзоре
снижается влияние возможных ошибок каждого, так как команда «отфильтровыва-
ет» неправильные решения.
Нужно отметить особенности процесса разработки системы. В его основе ле-
жит инкрементный подход, состоящий в послойном наращивании функциональных
возможностей системы и периодической поставке новых компонентов системы
(инкрементов) заказчику.
Размер и содержание каждого инкремента определяются при планировании
инкрементов на основе анализа не только приоритетов реализации функций систе-
мы, а и риска срыва проекта. Так, если требования к интерфейсу пользователя сис-
темы плохо определены, велик риск, что ее будет сложно использовать. Для кон-
троля этого риска первыми создаются и поставляются пользователям инкременты
системы, содержащие код, который реализует менее сложные функции, но обшир-
ный пользовательский интерфейс. Это дает возможность своевременно провести
согласование требований к интерфейсу и внести необходимые изменения.
В отличие от высокоточного производства, где контроль качества основан на
анализе соответствия спецификациям статистической выборки изделий из партии, в
Cleanroom осуществляется контроль качества на основе статистического тести-
рования (глава 7) и последующего прогнозирования надежности программного
обеспечения по моделям надежности. Статистическое тестирование выполняется в
соответствии с операционным профилем, который отражает частоту выполнения
пользователем различных операционных сценариев работы. Именно операционный
профиль «руководит» выбором тестов, результаты которых образуют статистиче-
скую выборку для выполнения контроля. Это означает, что первыми будут обнару-
живаться отказы наиболее часто используемых компонентов системы и устраняться
дефекты в наиболее часто выполняемых фрагментах кода.
Эффективное применение Cleanroom требует опыта. Подход позволяет вне-
дрять отдельные приемы постепенно, не изменяя общей методологии разработки
систем, и рекомендует начать со статистического контроля качества, который под-
держивается тремя приемами - инкрементной разработкой, командной формой ра-
боты и отделением тестирования от кодирования.
Подход Cleanroom естественным образом дополняет методологии совершен-
ствования процессов разработки ПС. Он полностью разделяет принципы TQM и не
противоречит СММ. Как раз СММ можно рассматривать как схему поэтапного
ввода приемов Cleanroom на каждом уровне зрелости.
Одним из основных факторов успеха Cleanroom является специфицирование
каждого отдельного компонента системы и его согласование с пользователями.
Именно такая точка зрения на разработку идеальна для применения объектно-
ориентированного или клиент-серверного подходов, хотя применение других под-
ходов ничем не ограничивается. Даже применение CASE-методологий, «упразд-
няющих» программирование и бумажную технологию документирования, не отме-
няет квалифицированного принятия проектных решений о процессах, данных и их
взаимодействии, и не заменяет коллективного оценивания качества этих решений.
Cleanroom изначально оформился как практический подход к разработке, а
не явился результатом научных исследований. Поэтому, существует мало сообще-