научная статья по теме SEMAT - ВЗГЛЯД НА ТРИ ГОДА ВПЕРЕД Математика

Текст научной статьи на тему «SEMAT - ВЗГЛЯД НА ТРИ ГОДА ВПЕРЕД»

Российская академия наук

ПРОГРАММИРОВАНИЕ

N° 1 2012 Январь-Февраль

Основан в 1975 г. Выходит 6 раз в год ISSN 0132-3474

Журнал издается под руководством Отделения математических наук РАН

Главный редактор В.П. Иванников

Редакционная коллегия:

С.А. Абрамов, Ю.М. Баяковский, И.Б. Вирбицкайте, В.В. Воеводин,

А.В. Гиглавый, Ф.Я. Дзержинский, С.В. Клименко, М.Р. Когаловский, Л.Н. Королев (зам. главного редактора), А.С. Косачев (ответственный секретарь), И.В. Машечкин, Б.А. Новиков, А.К. Петренко, Р.И. Подловченко, А.Н. Прокопеня, В.А. Серебряков, Р.Л. Смелянский, С.П. Царев, В.П. Шириков

Зав. редакцией Т.А. Оловянникова

Адреса редакции: 119992 Москва, В-234, МГУ, факультет вычислительной математики и кибернетики 109004 Москва, ул. А. Солженицына, д. 25 Институт Системного Программирования РАН Тел. 939-55-74 E-mail: progr@ispras.ru

Москва Издательство "Наука"

© Российская академия наук, 2012 г. © Редколлегия журнала "Программирование" (составитель), 2012 г.

СОДЕРЖАНИЕ

Номер 1, 2012

ПРОГРАММНАЯ ИНЖЕНЕРИЯ

Яеша1 - взгляд на три года вперед

А. Джекобсон, Ш. Хуан, М. Кайко-Мэтсон, П. МакМэхон, Э. Сеймур 3

Программирование модульных реконфигурируемых роботов

А.А. Горбенко, В.Ю. Попов 19

Использование виртуализации для защиты адресного пространства приложений в недостоверной среде

Д.В. Силаков 32

Разработка тестовых систем для многомодульных моделей аппаратуры

М.М. Чупилко 47

ТЕСТИРОВАНИЕ, ВЕРИФИКАЦИЯ И ВАЛИДАЦИЯ ПРОГРАММ

Алгоритм автоматической оптимизации потоков работ

А.А. Каленкова 59

Авторский указатель статей, опубликованных в 2011 году

79

Contents

Vol. 38, No. 1, 2012

A simultaneous English language translation of this journal is available from Pleiades Publishing, Ltd. Distributed worldwide by Springer. Programming and Computer Software ISSN 0361-7688

Semat - Three Year Vision

Jacobson I., Huang S., Kajko-Matson M., McMahon M., Seymour E. 3

Programming for Modular Reconfigurable Robots

A.A. Gorbenko, V.Yu. Popov 19

Using Virtualization to Protect Application Address Space Inside Untrusted Environment

D.V. Silakov 32

Developing Test System for Multi-Modules Hardware Designs

M.M. Chupilko 47

An Algorithm of Automatic Workflow Optimization

A.A. Kalenkova 59

Author Index, 2011 79

Сдано в набор 05.11.2011. Подписано к печати 19.12.2011. Формат бумаги 60x88 1 /8

Печать цифровая. Усл.печ.л. 10,0. Усл.кр.-отт. 1,6 тыс. Уч.-изд.л. 10,0. Бум.л. 5,0.

Тираж 150 экз. Зак. 2119.

Учредитель: Российская академия наук

Издатель: Российсская академия наук. Издательство "Наука", 117997 Москва, Профсоюзная ул., 90 Отпечатано в ППП «Типография "Наука"», 121099 Москва, Шубинский пер., 6

ПРОГРАММНАЯ ИНЖЕНЕРИЯ

УДК 681.3.06

SEMAT - ВЗГЛЯД НА ТРИ ГОДА ВПЕРЕД

© 2012 г. Джекобсон А., Хуан Ш., Кайко-Мэтсон М., МакМэхон П., Сеймур Э. E-mail: ivar@ivarjacobson.com, shihong@fau.edu, mekm2@kth.se, pemcmahon@acm.org,

Ed.Seymour@uk.fujitsu.com В работе над статьей принимали участие: экспертная комиссия Semat (Бертран Мейер, Ричард Соли), Арн Бэр, Дональд Фаерсмит, Кэперс Джонс, и Гарольд „Бади Лоусон

Поступила в редакцию 09.10.2011 г.

Эта статья преследует три цели: в ней, во-первых, резюмируются текущие результаты проекта Semat; во-вторых, изложены направления его развития для тех, кто активно работает в сообществе, связанном с этим проектом; в-третьих, предоставлен базовый материал для поиска финансирования от таких организаций, как Европейское Сообщество и т.п. Финансовая поддержка необходима, чтобы поддержать продолжение Semat и его преобразование в более широкую деятельность сообщества, так как большинство людей работают в проекте безвозмездно. Статья может оказаться как слишком длинным, так и слишком коротким изложением сути проекта для широкой аудитории. Однако мы намерены сделать нашу работу полностью прозрачной, и поэтому публикуем все ее результаты. Мы хотели бы получить реакцию и комментарии от сочувствующих проекту, чтобы учесть их в планах. Поэтому, чтобы лучше удовлетворить особые потребности практики, бизнеса и исследователей, мы одновременно работаем над несколькими близкими статьями.

1. ВВЕДЕНИЕ

В конце 2009 года Айвар Джекобсон, Бертран Мейер и Ричард Соли выдвинули инициативу, названную Semat (Software Engineering Method and Theory, метод и теория программной инженерии), с целью переосмысления основ программной инженерии как строгой дисциплины. Они признали, что естественная тенденция в этой области -вносить минимальные изменения в системы для постепенного приближения к их правильности, но этим путем нельзя следовать, если мы хотим поддержать конкурентоспособность бизнеса информационных технологий (ИТ) и помочь ему соответствовать требованиям общества. Они стали утверждать необходимость переосмысления программной инженерии на прочной основе, используя все теоретические и практические результаты, полученные за последние пять десятилетий.

Цель этой статьи - показать, насколько далеко продвинулась реализация этих идей за первый год, и обрисовать ожидаемые через три года

результаты, т.е., ситуацию начала 2014 года. Детальный план проекта будет представлен в отдельных документах.

2. „ВЕЛИКАЯ МЕЧТА"

Исходный призыв к действиям [3], составленный в сентябре 2009, указал основные вопросы и проблемы программной инженерии, такие как подверженность моде и увлечениям, отсутствие теоретической основы, избыток уникальных методов, которые трудно сравнить, дефицит экспериментальных оценок и проверок, а также разрыв между исследованиями и их практическим использованием в промышленной разработке (см. Приложение 1).

Для преодоления этого было предложено решение - „Великая мечта" (Grand Vision [4]), в рамках которой программная инженерия должна быть переосмыслена на базе убедительной теории, проверенных принципов и лучших практик. Основу дисциплины должны составить общепринятые элементы, выделяемые в ядро. Ядро должно стать фун-

даментальной основой, помогающей практикам (например, архитекторам, проектировщикам, разработчикам, тестировщикам, инженерам по требованиям, инженерам-технологам, менеджерам и т. д.) сопоставлять различные методы и принимать лучшие решения в своих проектах.

Для воплощения „Великой мечты" нужна многолетняя работа, определенно более длительная, чем три года. Эта работа стартовала в начале 2010. Первый ее этап [4] описывается в Разделе II. В Разделе III обсуждаются текущие итоги Semat, и дан набросок дальнейшего пути к выработке фундаментальных и практически значимых результатов для всех людей, имеющих дело с программным обеспечением (ПО).

3. ПЕРВЫЙ ЭТАП - СОЗДАНИЕ ОСНОВЫ ДЛЯ SEMAT

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

3.1. Общее основание программной инженерии

Разработчики ПО создают его уже в течение более 50 лет. Независимо от производимого кода, создаваемых систем, вырабатываемых решений, применяемых методов или вовлеченных организаций, общее основание - ядро из элементов, представленных повсеместно используемыми понятиями и характеристиками -присутствует в рамках любых программных проектах. Примерами таких важных понятий являются работа (или задание), команда, требование, программная система, бизнес-возможность и заинтересованное лицо. Это ядро представляет собой самую суть программной инженерии.

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

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

Поиск составляющих такого ядра крайне важен. Выделяя универсальные и значимые элементы, мы руководствуемся максимой Вы достигли совершенства не тогда, когда нечего добавить, а когда нечего убрать" .1 Мы также стараемся согласовать со многими заинтересованными лицами выделяемые составляющие, которые нельзя убрать".

Таким образом, общепринятое ядро является сущностью программной инженерии. При использовании термина общее основание" в этой статье имеется в виду достигнутое согласие в понимании этой сущности. Под „ядром" подразумевается реализация общего основания - общее основание является спецификацией, а ядро - ее реализацией.

3.2. Использование разделения ответственности в Semat

Ключевой принцип Бета! состоит в том, чтобы использовать все имеющие отношение к делу наработки программной инженерии и не исключать чего-либо, что является или может быть значимым для какой-либо группы интересов. Например, главная наша целевая группа - это программисты-практики, но специальное расширение общего ядра предназначено для инженеров-технологов. Несмотря на то, что основной предметной областью является программная инженерия, рассматриваются также вопросы системной инженерии; хотя мы сосредотачиваемся на базовых вопросах, проект открыт для добавления деталей; наши определения являются общими, но также допускаются их расширение и специализация. Эта неоднозначность достигается следованием

1 Антуан де Сент-Экзюпери.

принципу разделения ответственности. Он позволяет определить базовые вещи, а затем за счет расширения без изменений или усложнений вносить уточнения, необходимые для конкретных ситуаций (см. Приложение 2).

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

Для дальнейшего прочтения статьи необходимо приобрести полный текст. Статьи высылаются в формате PDF на указанную при оплате почту. Время доставки составляет менее 10 минут. Стоимость одной статьи — 150 рублей.

Показать целиком