Программная инженерия. Теория и практика - страница 3

Шрифт
Интервал


Часто задания с помощью карт памяти оказываются не совсем картами памяти. Исчезает центральный объект, вместо него появляется произвольный «плоский» граф. Также полезно оказывается рисовать имена связям. Мы все равно называем такие графы картами памяти, чтобы терминологически не усложнять ситуацию.

Теоретический курс

1. Методы и средства программной инженерии

Понятие программной инженерии. Основные определения: информатика, системотехника, бизнес-реинжиниринг. Программное обеспечение: определение, свойства.

1.1. Введение в программную инженерию

Чем программирование отличается от программной инженерии [2]? Тем, что первое является некоторой абстрактной деятельностью и может происходить во многих контекстах. Можно программировать для удовольствия, для того, чтобы научиться (например, на уроках, на семинарах в университете), можно программировать в рамках научных разработок, а можно заниматься промышленным программированием. Как правило, это происходит в команде. При этом необходимо точно понимать, что нужно заказчику, выполнить работу в определенные сроки и результат должен быть нужного качества – того, которое удовлетворит заказчика и за которое он заплатит. Чтобы удовлетворить этим требованиям, программирование «обрастает» различными дополнительными видами деятельности: разработкой требований, планированием, тестированием, конфигурационным управлением, проектным менеджментом, созданием различной документации (проектной, пользовательской и пр.).

Разработка программного кода предваряется анализом и проектированием (первое означает создание функциональной модели будущей системы без учета реализации для осознания программистами требований и ожиданий заказчика; второе – предварительный макет, эскиз, план системы на бумаге). Трудозатраты на анализ и проектирование, а также форма представления их результатов сильно варьируются в зависимости от видов проектов и предпочтений разработчиков и заказчиков.

Требуются также специальные усилия по организации процесса разработки. В общем виде это итеративно-инкрементальная модель, когда требуемая функциональность создается порциями, которые менеджеры и заказчик могут оценить, и тем самым есть возможность управления ходом разработки. Однако эта общая модель имеет множество модификаций и вариантов.