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