Модифицируемость
Качество модифицируемости выражает стоимость внесения изменений. Оно решает два вопроса. 1. Под воздействием чего артефакт может быть изменен? Изменения можно внести в любой аспект системы — как правило, это ее функции, платформа (аппаратная часть, операционная система, промежуточное программное обеспечение и т. д.), условия, в которых функционирует система (системы, с которыми она взаимодействует, протоколы, при помощи которых обменивается информацией с внешним миром, и т. д.), ее атрибуты качества (производительность, надежность системы или даже предполагаемые в будущем изменения) и возможности (количество пользователей, одновременных операций и т. д.). Некоторые элементы системы — например, пользовательский интерфейс и платформа — в этом отношении настолько выделяются из числа других, что их мы рассмотрим отдельно. Категория изменения платформы имеет также другое название — переносимость. Изменения могут заключаться в добавлении, удалении и модификации этих аспектов. 2. Когда производится модификация и кто ее проводит (условия)? В прошлом изменения чаще всего вносились в исходный код. При этом разработчик проводил модификацию, после чего она тестировалась и размещалась в новой версии. Сегодня проблема времени модификации все больше переплетается с проблемой ее исполнителя. Конечный пользователь, меняя заставку, тем самым вносит изменения в один из аспектов системы. Не менее очевидно, что модификация системы, проведенная с расчетом на то, чтобы ею можно было пользоваться удаленно, — это несколько другая категория изменений. Изменения можно вносить в реализацию (путем редактирования исходного кода), в периоды компиляции (при помощи переключателей периода компиляции), построения (путем выбора тех или иных библиотек), настройки конфигурации (разными методами, в частности — путем установки параметров) или исполнения (также посредством установки параметров). В качестве исполнителей модификации могут выступать разработчики, конечные пользователи или администраторы. После того как изменение сформулировано, следует проектирование новой реализации, собственно реализация, тестирование и развертывание. На все это уходит время и расходуются деньги — впрочем, и то и другое можно подсчитать.
|