Жизненный цикл программы (рис. 6.1), кроме создания программы, включает в себя цикл, состоящий из ее использования и модификации. Такую схему можно применять и по отношению ко многим промышленным товарам. Различие же состоит в том, что в случае других продуктов этап модификации скорее можно назвать этапом починки или ремонта, поскольку эти продукты переходят от использования к модификации, когда их части изнашиваются.
Программное обеспечение не изнашивается. Оно переходит к этапу модификации, потому что обнаруживаются ошибки, потому что меняется область применения программы, что требует соответствующих изменений в программе, или потому что изменения, внесенные во время предыдущей модификации, привели к ошибкам в работе. Например, изменение налогового законодательства может потребовать модификации программ, вычисляющих подоходный налог, и часто эти изменения могут оказать неблагоприятное воздействие на другие части программы, что может обнаружиться только со временем.
|
|
Вне зависимости от того, почему начинается этап модификации программы, программист (часто не автор этой программы) изучает исходную программу и документацию к ней, пока не поймет ее всю или, по крайней мере, ее релевантную часть. В противном случае любое изменение программы может создать больше проблем, чем оно призвано решить. Понимание программы представляет собой нелегкую задачу, даже если она хорошо продумана и снабжена всей необходимой документацией. В действительности, именно на этом этапе программа часто выбраковывается под предлогом (который часто оказывается правдой), что легче создать новую систему с нуля, чем удачно модифицировать существующий пакет программ.
Опыт показал, что дополнительные усилия при разработке программы могут значительно облегчить ее модификацию. Например, при обсуждении операторов описания данных в главе 5 мы показали, что в программе вместо значения 645 лучше использовать имя Airport Alt, объясняя этот тем, что если потребуется внести какие-либо изменения в программу, то изменить значение, присвоенное переменной, будет легче, чем найти и заменить все значения 645, встречающиеся в программе. В свою очередь, большая часть исследований в области разработки программного обеспечения посвящены стадии разработки, при этом цель этих исследований состоит в том, чтобы найти оптимальное соотношение усилий, затрачиваемых на создание программы, и результатом, который они дадут.