Введение в программную инженерию
ПОНЯТИЕ ПРОГРАММНОЙ ИНЖЕНЕРИИ Чем программирование отличается от программой инженерии? Программирование является некоторой абстрактной деятельностью и может происходить во многих различных контекстах. Промышленное программирование, как правило, происходит в команде, и совершенно точно – для заказчика, который платит за работу деньги. Необходимо точно понимать, что нужно заказчику, выполнить работу в определенные сроки и результат должен быть нужного качества –того, которое удовлетворит заказчика и за которое он заплатит. Чтобы удовлетворить этим дополнительным требованиям, программирование «обрастает» различными дополнительными видами деятельности: разработкой требований, планированием, тестированием, конфигурационным управлением, проектным менеджментом, созданием различной документации (проектной, пользовательской и пр.). Разработка программного кода предваряется анализом и проектированием (первое означает создание функциональной модели будущей системы без учета реализации, для осознания программистами требований и ожиданий заказчика; второе означает предварительный макет, эскиз, план системы на бумаге). Требуются специальные усилия по организации процесса разработки. Разработку системы необходимо выполнять с учетом удобств u ее дальнейшего сопровождения, повторного использования и интеграции с другими системами. Это значит, что система разбивается на компоненты, удобные в разработке, годные для повторного использования и интеграции Для этих компонент тщательно прорабатываются интерфейсы. Сама же система документируется на многих уровнях, создаются правила оформления программного кода – то есть оставляются многочисленные семантические следы, помогающие создать и сохранить, поддерживать единую, стройную архитектуру, единообразный стиль, порядок… Все эти и другие дополнительные виды деятельности, выполняемые в процессе промышленного программирования и необходимые для успешного выполнения заказов и будем называть программной инженерией (software engineering)