Объем проекта, строк исходного кода | Тип программы | Время создания | Вероятность успешного завершения | Число программистов |
Утилиты для временных нужд | 1 день | 100% | ||
Небольшие приложения и дополнения, вносимые в готовые системы | до1 месяца | 100% | ||
Типичная средняя программа, разрабатываемая на заказ | до 6 месяцев | 85% | 1 (предел возможностей среднего программиста) | |
Большинство современных коммерческих автономных и небольших клиент-серверных приложений | 1 год | 85% для групп, 35% для одиночки | ||
1 млн | Крупные системы автоматизации | 1,5-5 лет | 50% для группы, 0% для одиночки | |
10 млн | Операционные системы (Microsoft Windows, IBM VMS), большие военные комплексы. Предел сегодняшних возможностей. Стоимость подобной разработки может равняться стоимости большого стадиона или крупного корабля | 5-8 лет | 35% | до тысячи |
Экономические аспекты программирования
Когда на свет появились первые компьютеры, одна минута их работы стоила очень дорого, а задачи решались достаточно простые, поэтому в расходах на подготовку программ труд разработчиков составлял небольшую часть. С появлением ПК и ростом спроса на большие программные системы практически всю расходную часть проекта стала составлять зарплата программистов. Как видно из таблицы, большой процент таких проектов заканчивается неудачно, а расходы на них очень велики, поэтому проблемы создания качественного программного обеспечения точно в срок и в рамках бюджета сегодня самые важные, и над созданием эффективных методологий производства ПО трудятся специалисты во всех развитых странах.
|
|
Этапы разработки программ
Программы небольшого и среднего размера (несколько тысяч строк) создаются, как правило, в два этапа. Сначала необходимо точно установить, что надо сделать, продумать соответствующий алгоритм, определить структуры данных, объекты и взаимодействие между ними (это этап системного анализа), а затем выразить этот алгоритм в виде, понятном машине (этап кодирования). Если же разрабатывается крупный проект объемом от десятков тысяч до миллионов строк кода, тогда приходится применять специальные методологии проектирования, охватывающие период разработки ПО.