MOSCOW CENTER
OF IEEE COMPUTER SOCIETY

Обзоры периодических изданий Computer Society


Обзор майского (2000 г.) номера журнала Computer (Volume 33, Number 5), IEEE Computer Society

 

Сергей Кузнецов

 

На обложку этого номера журнала вынесен вопрос: "Software Engineering: A Maturing Profession?" ("Программная инженерия: набирающая зрелость профессия?"). (Замечу, что я буду использовать в этом обзоре термин "программная инженерия" не потому, что он мне очень нравится, а по причине отсутствия более подходящего русского эквивалента для "software engineering".) Надпись на обложке может навести на мысль, что весь номер посвящен тематике программной инженерии, но это не так. Три из шести больших статей номера затрагивают эту тему, но очень по-разному. Да и странно было бы делать специализированный выпуск журнала Computer по тематике программной инженерии при наличии специализированного журнала Software Engineering, также издаваемого IEEE Computer Society.

 

Первая из трех статей, касающихся программной инженерии (Gaining Intellectual Control of Software Development), написана Barry Boehm (University of South California) и Victor R. Basili (University of Maryland) и представляет собой отчет о результатах двух симпозиумов, проходивших в США в прошлом году по инициативе National Science Foundation (NSF). Как отмечают авторы, оба симпозиума были организованы как реакция на рекомендации Президентского консультативного комитета по информационной технологии (President's Information Technology Advisory Committee - PITAC). Судя по весьма скупой оценке авторов, первый симпозиум (NFS Workshop on a Software Research Program for the 21st Century) имел чересчур обобщенный и отдаленный от практики характер: необходимо поставить исследования в области программного обеспечения на такой уровень, чтобы в 21-м веке обеспечить производство программных систем "без сюрпризов". Ко второму симпозиуму (NSF Software Engineering Research Strategies Workshop) отношение авторов явно более благожелательно, что не удивительно, поскольку оба они являются специалистами в области программной инженерии. Трудно пересказывать и без того краткий отчет, но следует отметить по крайней мере два аспекта, обсуждавшихся на симпозиуме. Во-первых, в связи с широким распространением компонентного стиля разработки программных систем не следует недооценивать роль программной инженерии. И наоборот, самые развитые методы программной инженерии не помогут создать хорошую систему без тщательного подбора компонентов. Во-вторых, участники симпозиума попытались очертить основные области программной инженерии, в которых требуются интенсивные исследования.

 

Вторая статья называется The Push to Make Software Engineering Respectable. Ее авторы Gilda Pour (San Jose State University), Martin L. Griss (Hewlett-Packard Laboratories) и Michael Lutz (Rochester Institute of Technology). В 1995 г. Gary Ford и Norman Gibbs из Software Engineering Institute сформулировали признаки "зрелой" профессии и объяснили, почему профессию программного инженера нельзя считать зрелой. За прошедшие пять лет программная инженерия вошла в практику разработчиков, были опубликованы тысячи статей, проведены десятки конференций, были разработаны учебные и тренинговые программы. Однако, по мнению авторов статьи, профессия все еще остается незрелой. Причин для этого легион, но все они опираются на один факт ≈ область слишком молода. Ясно что рано или поздно программная инженерия станет зрелой областью, но процесс достижения зрелости можно ускорить. Как считают авторы, для этого необходимо разработать новые учебные планы, отражающие фундаментальные основы Computer Science и Software Engineering и требования практики, принять правила аккредитации учебных программ на соответствие этим планам, повысить роль профессиональных сообществ в достижении указанных целей. Описываются конкретные требуемые шаги и возможные трудности. Подчеркивается потребность в более широком привлечении индустрии программного обеспечения.

 

Третью статью, имеющую отношение к программной инженерии, написал Timothy C. Lethbridge (University of Ottawa). Статья называется What Knowledge Is Important to a Software Professional? и посвящена результатам опроса, который автор вместе со своими коллегами проводил начиная с 1997 г. Целью опроса было выяснение относительной важности различных компьютерных и смежных дисциплин для специалистов в области программной инженерии. Опрос касался 75 тем, которые были выбраны на основе типовых учебных планов университетов и предложений IEEE. По поводу каждой темы требовалось ответить на четыре вопроса: (1) В какой степени вы овладели знаниями по данной теме во время своего формального обучения?; (2) Как вы оцениваете свой уровень знаний сегодня; что вы освоили на работе и что вспомнили из забытого?; (3) Насколько полезны детальные сведения по данной теме для вашей профессиональной деятельности?; (4) Как повлияло изучение материала на ваш образ мышления независимо от того, требуются ли вам детали? Ответы на вопросы были получены от 186 участников из 24 стран, 54% из США и 23% из Канады. Результаты сформированы в виде трех таблиц: (1) основные темы программной инженерии (впереди темы структур данных и языков программирования); (2) дополнительные темы (операционные системы на первом месте); (3) бизнес, наука, искусство (этика и профессионализм, техническое писательство). Делаются выводы о потребности использования результатов опроса для модификации университетских учебных планов и программ курсов.

 

Остальные три большие статьи номера не связаны тематически и касаются весьма разных тем. В статье Keeping Up with the Changing Web ее авторы Brian E. Brewington и George Cybenko (Dartmouth College) обсуждают тему актуальности обновляемой информации. Существует множество обновляемых источников информации (особенно в Internet), предыдущее состояние которых не актуально (или не настолько актуально, как текущее состояние). Для отслеживания актуальности информации требуются развитые средства мониторинга. Описывается подход, предпринятый в проекте сайта http://informant.dartmouth.edu. Созданная система помогает пользователям находить в Internet актуальную информацию с использованием стандартных поисковых машин (Lycos, AltaVista, Excite, Infoseek). Отмечается, что это только первые шаги, поскольку имеется серьезная проблема переиндексации поисковых машин. Кроме того, авторы подчеркивают, что тема актуальности информации важна не только в контексте Internet, но и для других информационных систем.

 

Статья Advances in Network Simulation написана большим коллективом авторов (11 человек) из AT&T Research, University of South California, Lawrence Berkeley National Laboratory, Lucent Technology и т.д. Всех их объединяет участие в проекте Virtual InterNetwork Testbed (VINT), целью которого является обеспечение исследователей сетевых технологий средствами моделирования для проектирования и внедрения широкомасштабных протоколов Internet. Описываются подходы к обеспечению таких требуемых для исследователей средств моделирования как абстракция, эмуляция, генерация сценариев, визуализация, расширяемость. При реализации использовался язык Си++ с привлечением Tcl. Отмечается, что несмотря на относительный успех проекта VINT, остаются нерешенными некоторые проблемы, среди которых потребность в механизме интеграции в систему пользовательского кода.

 

Последняя из больших статей Practical Verification of Embedded Software представлена авторами из Дании (10 человек) ≈ DHI, IT University of Copenhagen, Aalborg University, IAR Systems A/S, Baan Nordic A/S. Описывается подход к исчерпывающей верификации встроенного программного обеспечения, используемый в современной версии коммерческого продукта VisualState. Демонстрируется, что VisualState может обеспечить верификацию сложных индустриальных приложений (с 1000 компонентов) на обычной PC за несколько минут. В основе похода лежит расширенная модель конечных автоматов с возможностью асинхронности. Проверяется достижимость состояний верифицируемой системы, причем множество состояний задается неявно, с помощью булевских предикатов и переменных.

 

Из небольших заметок, представленных в номере, хочу обратить внимание на обзор Reed Hellman (независимый обозреватель) The Future of the OS for Internet Applications. В принципе, обзор не содержит откровений, но кое-что любопытно. Например, по данным IDC в 1999 г. на рынке серверных операционных платформ 52.7% занимали ОС семейства UNIX,а 30.3% ≈ Windows NT. Среди UNIX-платформ упоминаются Solaris, HP-UX, AIX, Irix, Linux (RedHat Linux 6.1), но основное внимание уделяется недавно вышедшей системе Solaris 8. Приводится достаточно подробное сравнение возможностей этой системы с возможностями Windows 2000. Пожалуй, единственный вывод, который можно сделать на основе этой заметке, состоит в том, что не следует ожидать прихода одной идеальной операционной системы для поддержки Internet-приложений. По-прежнему будет существовать выбор, и большей частью субъективный.

 

Как всегда, в майском номере журнала Computer содержится масса другой полезной информации: конференции, вакансии, правила вступления в IEEE Computer Society и т.д. С этой информацией следует знакомиться.

 

Полный доступ к содержимому журнала Computer и другим изданиям IEEE Computer Society получает любой человек, вступивший в ассоциацию и подписавшийся на соответствующие публикации. Подробную информацию о Computer Society можно получить на сайтах www.computer.org, www.computer.org.ru или обратившись ко мне по телефону 095 912-4614.

 

В заключение хочу заметить, что в Internet имеется совершенно свободный доступ к очень хорошему журналу Bulletin of the Technical Committee on Data Engineering (IEEE Computer Society). Обзоры нескольких номеров на русском языке вы можете найти на сайте www.citforum.ru, а полный текст ≈ на www.research.microsoft.com/research/db/debull.