Составители:
Рубрика:
164
13.2. Некоторые аспекты стандартизации процесса разработки
программного обеспечения
Первая проблема, с которой приходится сталкиваться при попытке стандартизировать процесс
разработки ПО, это интеллектуальная природа процесса. Несмотря на то, что программирование
более или менее формализуется применением стандартных языков программирования и
структурированием данных, сам процесс до сих пор является более искусством, чем ремеслом. Одну
и ту же программу разные разработчики напишут по-разному, но очень немногие из полученных
вариантов будут совершенными. Именно поэтому капитальный труд Д.Кнута назван «Искусство
программирования».
Компьютерная программа является материальным объектом, но она строится на абстрактных
идеях и состоит из сложнейших виртуальных конструкций. Это в корне отличает ее от физических
объектов, с которыми имеет дело обычное производство. Выше уже говорилось об этом, но виду
важности обстоятельства повторим ещё раз – невозможно создать качественное ПО, не решив ряд
типичных проблем [4]:
· команда разработчиков, как правило, состоит из творческих личностей и часто бывает очень
трудно привести их к «общему знаменателю»;
· каждый программный продукт неизбежно содержит ошибки, отражающие квалификацию и
индивидуальный стиль разработчика – разнообразие и нестандартность ошибок сильно усложняет
процесс достижения стандартных целей в области качества;
· каждый успешный проект по-своему уникален и индивидуален, он подобен мозаике со сложным
рисунком, и поэтому очень трудно выделить из него некий базовый процесс-клише, который
можно было применить в дальнейших разработках;
· по сходной причине трудно поставить производство сложного и уникального ПО на поток, так как
часто для его разработки требуется создание сопутствующего специфического программного
«инструментария» для разработки, оптимизации и тестирования;
· одна из специфических проблем программирования состоит в том, что его продуктивность растет
очень медленно, если растет вообще – по некоторым оценкам средний программист способен
создать 10-50 строк операторов в день. Кроме того, эти оценки должны быть уменьшены для
больших систем, так как увеличенная нагрузка требует увеличения затрат (в относительных
единицах). Это обстоятельство резко отделяет программирование от другого вида деятельности,
где поточное производство радикально уменьшает цену единицы продукта. Вся экономика
строится на этом далеко не новом принципе – но только не производство программного обеспечения!
Концептуальное проектирование программной системы
Установление требований и ограничений
Спецификация системных и функциональных требований
Идентификация и документирование ключевых процессов
Архитектурное (логическое) проектирование системы
Построение базовых алгоритмов
Разработка стандартов на программирование
Кодирование программ
Первичное тестирование кодов
Поблочное и функциональное тестирование
Системная интеграция программного обеспечения
Интеграционные и эксплуатационные тесты
Документирование программного продукта
Сопровождение программного продукта
Рис. 13.2.1. Структура базового процесса для реализации жизненного цикла программного продукта.
Компьютерная
программа
Программный
продукт
Страницы
- « первая
- ‹ предыдущая
- …
- 162
- 163
- 164
- 165
- 166
- …
- следующая ›
- последняя »
