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