сложной готовой или разрабатываемой системы, как правило, являются интуитивными, ручными и выполняются системными специалистами или аналитиками. Любое внесенное изменение требует уточнения архитектуры системы или, соответственно, конфигурационного файла, а также проведения тестирования на множестве тестов. На поиск и исправления тратится много времени. Бессистемные, хаотически вносимые изменения усложняют систему и требуют документирования возникших ошибок, а также времени их исправления.
Как было сказано выше, в SEI USA разработан индустриальный метод производства программных продуктов — Product Line / Product Family путем сборки готовых продуктов (программ, компонентов, reuses, assets и др.) по заказу потребителей. Именно в нем создана новая концепция понятия изменяемости и управления различными их вариантами на основе FM.
Для поддержки новых методов SE разработано огромное количество разнообразных инструментальных средств (UML, Rational Rose, Com, CORBA и др.), а также стандарты (ISO/IEC 12 207, 15 504, ISO/IEC 9126 и др.) разработки ПС на основе ЖЦ ПО и оценки качества и стоимости разработки МП. Все это способствует повышению эффективности проектирования, тестирования, прогнозирования надежности и оценки качества ПО. Основные из них рассмотрены в гл. 11.
Начиная с 2005 г. шли обсуждения теоретических вопросов разработки ПП и систем[1]. В указанных статьях говорилось не только о необходимости теории, которая давала бы толкование разным практическим аспектам инженерии ПО. В результате появилось новое направление — SE Methods and Theory (SEMAT).
Основным теоретическим наработкам в SE, а также целям и задачам этого нового направления SEMAT посвящена данная глава.
- [1] См.: Лаврщева Е. М. Классификация дисциплин программной инженерии // Кибернетика и системный анализ. 2008. № 6. С. 3−9; Lavrischeva Е. М. Software engineering. Newdisciplines and E-lcarning them for development of applied systems // Progressive AcademicPublishing. European Journal of Engineering and Technology. 2015. Vol. 3 (3). P. 36—63.URL: http://www.idpublications.org/ejet-vol-3-no-3−2015; Lavrischeva E. M. Classificationof software engineering disciplines // Springer. 2008. Vol. 44. № 6. P. 791—796.