Книга: Программное обеспечение и его разработка
Обзор программного обеспечения
Обзор программного обеспечения
Наметившийся кризис программного обеспечения в настоящее время продолжает углубляться. Частично этот процесс происходит из-за того, что лишь немногие из людей, не занимающихся программированием профессионально, разбираются в том, что такое программное обеспечение. Программное обеспечение представляет собой обособленное, замкнутое в себе поле деятельности, семантика которого неоднозначна, а терминология бедна. Практикующиеся в этой области слишком часто концентрируют свое внимание на самом программном обеспечении, в то время как надо больше внимания уделять системной стороне дела.
Очень часто разработчики программного обеспечения не успевают выдать надежный продукт точно в назначенный срок или просто выходят из бюджета. Какая-либо помощь этим разработчикам практически не увеличивается, и разумного решения тут вообще не видно. Неудачи на поприще программного обеспечения постигают не только начинающих программистов. Случается, что даже самые крупные, самые солидные, самые технологически передовые организации страдают из-за серьезных препятствий, возникающих перед ними. За несколько недель до намеченной сдачи в эксплуатацию новой системы 138 фирма IBM объявила о годовой отсрочке, вызванной трудностями с программным обеспечением. За год до назначенного ввода в действие усовершенствованной системы связи фирма АТТ объявила о 18-месячной задержке.
Пользоваться программным обеспечением легко, разрабатывать его намного сложнее. Разработка программного обеспечения — это выпущенный из «волшебной» (электронной) лампы джинн, который скитается по свету и повсюду отравляет жизнь разработчикам систем.
Одной из главных причин такого большого числа трудностей в деле разработки стал постоянный значительный рост сложности и масштабов работ, проводимых (и доводимых до успешного конца) программистами. Постоянно находятся все новые, неожиданные области применения «старого» инструмента — вычислительной машины. Прогресс электронной техники в скорости, размерах, надежности, в экономических показателях кажется просто фантастическим.
Если мы оглянемся на проделанное нами, то увидим, каких гигантских успехов мы добились. Системы резервирования авиационных билетов работают — и работают прекрасно. Американская система авиалиний к весне 1979 г. обслуживала 13 500 присоединенных терминалов, через которые поступало до 10,6 млн. сообщений в день. Система управления транспортными авиалиниями работает и в США, и за их пределами. Работает спутниковая система. И эти успехи не случайны. На них было затрачено огромное количество ресурсов и усилий, но они работают.
Какие же уроки можно извлечь из прежних успехов и неудач? На какой стадии находится «техника программирования»? Следует ли нам относиться к программному обеспечению так же, как мы относимся к аппаратному?
Эта книга посвящена в первую очередь разработке больших систем программного обеспечения, которые встречаются все чаще. Мы исследуем, почему многие крупные разработки столкнулись с большими трудностями, вызвавшими незапланированные затраты бессчетных миллионов долларов, многолетние отсрочки и даже откровенные неудачи, а также немало судебных процессов.
Разработка программного обеспечения умеренных масштабов представляет собой по большей части историю успехов со счастливым исходом. Многие рассматриваемые нами в дальнейшем определения и приемы, использованные при построении больших систем, заимствованы из более ранних попыток реализации небольших систем или применимы к ним. Мы еще будем обсуждать эти вопросы.
Приведем теперь некоторые не очень очевидные факты, связанные с программным обеспечением, а затем коротко обсудим их. Оставшаяся часть книги будет посвящена более подробному их описанию.
- 3.5. SAP Solution Manager: Обзор
- Окно определений программного кода
- 1.3. Обзор модели зрелости процессов разработки
- Глава 11. Обзор экосистемы инструментов
- Хороший обзор сквозь облака
- Глава 1. Обзор Ruby
- 11.2. СВОЙСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- Обзор основных причин повреждения базы данных
- Выбор аппаратного обеспечения для InterBase
- Первый просмотр: краткий обзор
- 4.1. Суть обзора задач в тайм-менеджменте. Основные понятия и определения
- 4.2. Инструменты создания обзора