2.19. Использование программ

Программисты часто забывают о том, как долго работают некоторые программы. Имеются работающие программы, которые написаны в начале 60-х годов. Некоторые из них созданы для машины IBM 1401 и теперь используются на современных машинах при помощи эмулятора машины 1401.

Изданный в октябре 1972 г. выпуск EDP Analyzer посвящен эксплуатации программ. Авторы выпуска пришли к выводу, что организации по обработке данных обычно тратят 50% времени программирования на поддержку программ и что программа средней производительности используется по крайней мере десятью разными лицами, прежде чем ее перепишут или выбросят. Первоначальная стоимость программы обычно составляет лишь небольшую часть стоимости программирования.

Э. Тофлер в книге Future Shock описывает затруднения, испытываемые людьми и организациями, когда изменения происходят слишком быстро. То же самое свойственно и программированию. Изменения возникают раньше, чем закончена разработка программы. Может измениться состав администрации, могут измениться требования, может измениться том на дисках. Кроме того, меняется состав программистов и вполне возможна ситуация, когда программист, создавший программу, больше не работает. Система трансформируется даже в том случае, когда не нужно делать добавления или улучшения в работающей программе. Изменяются машина и периферийные устройства. Если модернизируется операционная система, то часто возникает необходимость в обновлении первоначальной программы в соответствии . с новыми условиями работы.

Программы, которые можно использовать в разных условиях эксплуатации (в разных операционных системах), называют мобильными. Это важно, когда вы намерены снабдить программным обеспечением сразу многих пользователей или хотите, чтобы ваши программы могли работать в новых условиях. Самый лучший метод, используемый для поддержки мобильной программы, состоит в применении ANSI COBOL и ANSI FORTRAN1). Аналогичным понятием является приспособляемость. Приспособляемость — это легкость, с которой можно изменять программу, чтобы приспособить ее к требованиям различных пользователей и к ограничениям системы. Главное отличие между этими двумя понятиями состоит в том, что мобильность связана с изменениями условий работы, в то время как под приспособляемостью подразумевают изменения в структуре алгоритма. Эти понятия подробно обсуждаются в статье Пула и Вейта2).

Если предполагается использовать программное обеспечение в течение большого периода времени, его следует создавать таким образом, чтобы в него можно было постоянно вносить изменения, сообразуясь с новыми условиями эксплуатации. В операционной системе OS 360 фирмы IBM на поддержку программного обеспечения было израсходовано примерно в четыре раза больше, чем на разработку. Поэтому в этом случае, как и во многих других, способность поддерживать программное обеспечение системы более важна, чем первоначальные затраты.

Хорошо известно, что программисту трудно добиться успеха, если он модифицирует работающую программу. Боэм [6] установил, что если изменяется менее 10 операторов, то шанс написать работающую программу с первой попытки составляет 50%. Но если изменению подлежит до 50 операторов, то вероятность успешного решения снижается до 20%. Трудность внесения изменений или корректировки программы во время ее использования состоит в том, что изменение в программе может быть правильным локально, но по отношению к системе неверным. Программа, трудная для модификации, называется недолговечной (fragile).

Так как расходы на эксплуатацию часто превышают расходы на первоначальное программирование, следует сразу создавать хорошо эксплуатируемые программы. Расходы на эксплуатацию обычно являются неявными расходами. Чтобы сделать эти расходы более очевидными, вычислительные центры используют метод, заключающийся в прибавлении стоимости эксплуатации к стой мости ^каждой полученной программы. То есть если на создание программы требуется 3 человеко-года, то на эксплуатацию программы следует предусмотреть по одному или по половине человеко-года на время работы программы.

Иногда приходят к выводу, что для сокращения расходов на эксплуатацию нужно разрешить программистам полностью переписать некоторые подпрограммы. Было установлено, что обычно несколько подпрограмм или программ используют чаще других. Если такие подпрограммы можно обнаружить и переписать, это может привести к снижению расходов на эксплуатацию.

Один из способов внушить программистам важность создания хорошо эксплуатируемых программ состоит в том, чтобы каждый программист занялся эксплуатацией программ в течение некоторого периода времени. Ни один программист не должен отлынивать от этой работы. Действительно, всех новых программистов следует назначать на эксплуатацию программ на первые шесть месяцев их работы, чтобы они оценили значение хорошо документированной программы.

Чтобы запланировать изменения, которые могут возникнуть при эксплуатации программы, их следует определить еще на стадии ее разработки. Если в процессе разработки помнить о них, то программу можно сразу написать так, что эти изменения не будут для нее слишком разрушительными по своим последствиям.

Планируйте возможные изменения в программе.

2.18. Библиотека поддержки разработки || Оглавление || 2.20. Документирование


Услуги