Читаем Программная инженерия. Теория и практика полностью

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

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

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

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

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

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

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

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

Разработку системы также необходимо выполнять с учетом удобств ее дальнейшего сопровождения, повторного использования и интеграции с другими системами. Это значит, что система разбивается на компоненты, удобные в разработке, годные для повторного использования и интеграции, а также имеющие необходимые характеристики по быстродействию. Для этих компонент тщательно прорабатываются интерфейсы. Сама же система документируется на многих уровнях, создаются правила оформления программного кода, оставляются многочисленные семантические следы, помогающие создать и сохранить, поддерживать единую, стройную архитектуру, единообразный стиль, порядок.

Все эти и другие дополнительные виды деятельности, выполняемые в процессе промышленного программирования и необходимые для успешного выполнения заказов, и будем называть программной инженерией (software engineering). Хотя еще в 70-х гг. прошлого столетия академиком А.П. Ершовым термин software engineering переводился на русский язык как «технология программирования», программная инженерия – более современный, но менее традиционный перевод этого же термина, предложенный в конце 90-х И.В. Поттосиным. Получается, что так мы обозначаем, во-первых, некоторую практическую деятельность, а во-вторых, специальную область знания, или, другими словами, научную дисциплину. Ведь для облегчения выполнения каждого отдельного проекта, для возможности использовать разнообразный положительный опыт, достигнутый другими командами и разработчиками, этот самый опыт подвергается осмыслению, обобщению и надлежащему оформлению. Так появляются различные методы и практики (best practices) – тестирования, проектирования, работы над требованиями, архитектурных шаблонов, а также стандарты и методологии, касающиеся всего процесса в целом (например, MSF, RUP, CMMI, Scrum). Вот эти-то обобщения и входят в программную инженерию как в область знания.

Перейти на страницу:

Похожие книги

Синдром гения
Синдром гения

Больное общество порождает больных людей. По мнению французского ученого П. Реньяра, горделивое помешательство является характерным общественным недугом. Внезапное и часто непонятное возвышение ничтожных людей, говорит Реньяр, возможность сразу достигнуть самых высоких почестей и должностей, не проходя через все ступени служебной иерархии, разве всего этого не достаточно, чтобы если не вскружить головы, то, по крайней мере, придать бреду особую форму и направление? Горделивым помешательством страдают многие политики, банкиры, предприниматели, журналисты, писатели, музыканты, художники и артисты. Проблема осложняется тем, что настоящие гении тоже часто бывают сумасшедшими, ибо сама гениальность – явление ненормальное. Авторы произведений, представленных в данной книге, пытаются найти решение этой проблемы, определить, что такое «синдром гения». Их теоретические рассуждения подкрепляются эпизодами из жизни общепризнанных гениальных личностей, страдающих той или иной формой помешательства: Моцарта, Бетховена, Руссо, Шопенгауэра, Свифта, Эдгара По, Николая Гоголя – и многих других.

Альбер Камю , Вильям Гирш , Гастон Башляр , Поль Валери , Чезаре Ломброзо

Философия / Учебная и научная литература / Образование и наука