Здесь мы со всей очевидностью сталкиваемся с неким порочным кругом: «Вам нельзя доверить работу, у вас нет опыта». «Как же я могу получить опыт, если мне не дают работать?» Наше положение именно таково. Мы хотим, чтобы оценки делались кем-то, кто уже делал это в прошлом. Или делал что-то, похожее на то, что мы пытаемся сделать.

Теперь нам очень пригодятся наши знания о пяти типах использования вычислительных машин и таксономии программного обеспечения. То, что человек имеет опыт разработки крупных прикладных систем, не означает, что он сможет оценить усилия, необходимые для создания системного программного обеспечения. Эта ситуация должна служить вам в качестве предупреждения. Не надо слушать прикладников, пытающихся оценивать трудности системного обеспечения! Не позволяйте людям, разрабатывавшим пакетные программы, оценивать системы реального времени. Это же относится и ко всем другим категориям.

Факторы, определяющие трудность разработки

На усложнение или облегчение разработки влияет сразу целая комбинация факторов. Прежде, чем закончить главу я хочу перечислить 27 из них. Все они разбиваются на три основные категории:

(A) Функция, которую надо выполнить

(B) Окружение в фазе использования

(C) Факторы, действующие в фазе разработки

Трудность разработки программ = (А) × (В) × (С)

Таблица 6.2. Трудности разработки

Тип использования
IIIIIIIVV
Функциональные
Функции, которые надо реализовать, количество+
Функции, которые надо реализовать, сложность++
Функции, которые надо реализовать, ясность+
Взаимодействие людей с системой++++
Число различных пользователей системы+++
Число запусков программы+++
Число машин, на которых будет выполняться система+
Функции, которые надо реализовать, взаимодействия+
Элементы данных
Ожидаемая частота внесения изменений в систему+
Взаимодействия с другими системами+
Окружение фазы использования
Центральный процессор-+++ +
Ввод/вывод+-+
Основная память-+
Вспомогательная память+
Надежность/доступность+++ +
Реальное время+ +
Факторы фазы разработки
Адекватность операционной системы+++ +
Время, выделенное на создание программного обеспечения+
Доступность средств разработки; языки, отладчики и т. д.+
Доступность машин при разработке программного обеспечения+
Знакомство группы, проводящей разработку с аппаратурой
Знакомство группы, проводящей программирование с инструментальным программным обеспечением
Число модулей
Стабильность средств создания программного обеспечения
Стабильность вычислительной машины+
Квалификация пользователя+
Нормальная трудность
Легче-
Труднее+
Намного труднее+ +

Схема трудности разработок. Таблицу 6.2 можно использовать как справочник, позволяющий определить, на что нужно обращать внимание, приступая к разработке системы. Расставленные в ней оценки «+», «-» — укажут вам, облегчает ли (-) данный фактор разработку или усложняет (+) ее при переходе от систем типов I и II к системам типов III, IV или V. Если на схеме отмечен знак (-), производительность труда будет повышаться, если стоит знак (+), производительность будет ниже. Сначала рассмотрите схему, а затем приступайте к изучению объяснений по каждому из 27 пунктов.

Функциональные факторы
Перейти на страницу:

Похожие книги