Cтраница 3
Правильность программы доказывается только по отношению к входному и выходному утверждениям. Если выходное утверждение неправильно или неполно, может быть доказана правильность программы, а ошибки в ней останутся необнаруженными. Кроме того, ошибки, сделанные на более ранних этапах проектирования ( цели, внешний проект), не будут обнаружены при доказательстве. [31]
Чтобы еще более уточнить понятия внешнего и внутреннего проектов, обратимся к рис. 7.7 и 7.8. Древовидная структура, изображенная на рис. 7.7, построена по схеме, представленной на рис. 7.6, и показывает, где используется каждый модуль. Будем считать, что а внешний контур каждого блока из рис. 7.7 отображается совокупность параметров, принадлежащих соответствующему модулю. Контур Р, изображенный на рис. 7.8, на который отображаются все параметры, видимые при рассмотрении программного изделия извне, соответствует внешнему проекту. Внутренние спецификации описывают параметры, принадлежащие остальным контурам блоков. [32]
Какими должны быть ответственные исполнители внешних спецификаций. Они не должны быть программистами, так как процесс внешнего проектирования не имеет ничего общего с составлением программ. Этот процесс больше связан с пониманием окружающей среды пользователей, их проблем и нужд, психологии связи человек - машина. Особенно важно то, что эта тенденция внешнего проекта возрастает с применением новых средств вычислений, касающихся большого круга конечных пользователей, не имеющих знаний в области вычислительного дела. [33]
Те атрибуты модулей, которые играют существенную роль при составлении описания программного изделия как единого целого, составляют внешний проект. Все остальные параметры модулей, полностью или частично скрытые внутри программного изделия, составляют в совокупности внутренний проект. Обратим внимание на естественное следствие описанного выше подхода: все управляющие структуры, которые связывают недоступные извне модули, принадлежат внутреннему проекту. Эти структуры определяют, как реализовано программное изделие, и поэтому не входят во внешний проект. [34]
Из рис. 3.2 следует, что критический анализ архитектуры должны выполнять разработчики исходных внешних спецификаций и предполагаемые разработчики структуры каждой компоненты. Проектировщик уровня п - 1 ищет примеры неполного или неточного перевода внешнего проекта. Проектировщик уровня п 1 проверяет, понятна ли архитектура системы и работоспособна ли она. Поскольку архитектура часто разрабатывается параллельно с детальным внешним проектом, важно также сопоставить результаты обоих процессов, чтобы выявить ошибки. [35]