Здесь мы со всей очевидностью сталкиваемся с неким порочным кругом: «Вам нельзя доверить работу, у вас нет опыта». «Как же я могу получить опыт, если мне не дают работать?» Наше положение именно таково. Мы хотим, чтобы оценки делались кем-то, кто уже делал это в прошлом. Или делал что-то, похожее на то, что мы пытаемся сделать.
Теперь нам очень пригодятся наши знания о пяти типах использования вычислительных машин и таксономии программного обеспечения. То, что человек имеет опыт разработки крупных
На усложнение или облегчение разработки влияет сразу целая комбинация факторов. Прежде, чем закончить главу я хочу перечислить 27 из них. Все они разбиваются на три основные категории:
(A) Функция, которую надо выполнить
(B) Окружение в фазе использования
(C) Факторы, действующие в фазе разработки
Трудность разработки программ = (А) × (В) × (С)
Таблица 6.2. Трудности разработки
Тип использования | |||||
---|---|---|---|---|---|
I | II | III | IV | V | |
Функциональные | |||||
Функции, которые надо реализовать, количество | + | ||||
Функции, которые надо реализовать, сложность | + | + | |||
Функции, которые надо реализовать, ясность | + | ||||
Взаимодействие людей с системой | + | + | ++ | ||
Число различных пользователей системы | + | + | + | ||
Число запусков программы | + | + | + | ||
Число машин, на которых будет выполняться система | + | ||||
Функции, которые надо реализовать, взаимодействия | + | ||||
Элементы данных | |||||
Ожидаемая частота внесения изменений в систему | + | ||||
Взаимодействия с другими системами | + | ||||
Окружение фазы использования | |||||
Центральный процессор | - | + | + | + + | |
Ввод/вывод | + | - | + | ||
Основная память | - | + | |||
Вспомогательная память | + | ||||
Надежность/доступность | + | + | + + | ||
Реальное время | + + | ||||
Факторы фазы разработки | |||||
Адекватность операционной системы | + | + | + + | ||
Время, выделенное на создание программного обеспечения | + | ||||
Доступность средств разработки; языки, отладчики и т. д. | + | ||||
Доступность машин при разработке программного обеспечения | + | ||||
Знакомство группы, проводящей разработку с аппаратурой | |||||
Знакомство группы, проводящей программирование с инструментальным программным обеспечением | |||||
Число модулей | |||||
Стабильность средств создания программного обеспечения | |||||
Стабильность вычислительной машины | + | ||||
Квалификация пользователя | + | ||||
Нормальная трудность | |||||
Легче | - | ||||
Труднее | + | ||||
Намного труднее | + + |
Схема трудности разработок. Таблицу 6.2 можно использовать как справочник, позволяющий определить, на что нужно обращать внимание, приступая к разработке системы. Расставленные в ней оценки «+», «-» — укажут вам, облегчает ли (-) данный фактор разработку или усложняет (+) ее при переходе от систем типов I и II к системам типов III, IV или V. Если на схеме отмечен знак (-), производительность труда будет повышаться, если стоит знак (+), производительность будет ниже. Сначала рассмотрите схему, а затем приступайте к изучению объяснений по каждому из 27 пунктов.