Открытые системы
Разное
Открытые системы
Все статьи номера
Архив номеров



White Papers

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

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

Открытые системы

Software EngineeringВерсия для печати

Ian Sommerville Addison-Wesley, 1996, ISBN 0-201-42765-6, 742 + xvi pp.

Все, кому довелось ознакомиться с опубликованным в журнале "Отрытые Системы" обзором "Computer Science - основные вехи", знают, что термин "Software Engineering" был введен еще в 1968 г. на ставшей исторической конференции Научного комитета НАТО.

Удивительно, но за прошедшие 30 лет так и не найдено общепризнанного русского эквивалента этому английскому термину: буквальный перевод "программная инженерия" звучит не совсем по-русски; специализированные англо-русские словари предлагают такие варианты, как "разработка ПО", "техника матобеспечения", "программотехника", "технология программирования" и даже просто "программирование". Это все не то - предмет в лучшем случае сужается, а в худшем - просто искажается. В результате, слишком многие трактуют "Software Engineering" только как приложение CASE - технологий.

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

Официальной причиной рождения Software Engineering была реакция на те проблемы программной индустрии, которые на той же конференции НАТО получили интегральный ярлык "software crisis": процесс создания ПО обычно не хотел укладываться в запланированные сроки и бюджет, а качество продукта, как правило, оставляло желать лучшего. Об этом кризисе говорят и по сей день; однако, ныне Software Engineering - это обширная и хорошо разработанная область компьютерной науки и технологии, включающая в себя многообразные математические, инженерные, экономические и управленческие аспекты.

Рецензируемая книга профессора Университета в Ланкастере (Англия) Яна Соммервилла является наиболее известным и широко используемым в мире учебником по обозначенной тематике. Первое издание вышло еще в 1982 г. и сейчас пережило уже пятую редакцию; общее же число всех переизданий достигло 18, что, согласитесь, впечатляет.

Такой популярностью книга Я. Соммервилла обязана тому, что содержит сжатое, но четко структурированное и в определенном смысле исчерпывающее изложение основ Software Engineering. Как подчеркивает автор в своем предисловии, он стремился дать описание максимально широкого спектра используемых в практике современной программной индустрии методов и средств, в то же время избегая всякого рода экзотических и представляющих лишь теоретический интерес подходов и тем.

Главы, а их в книге 34, распределены по 8 разделам. Первый - краткое введение в предмет. Следующий - "Требования и Спецификации" начинается с глав, посвященных определению, анализу и эволюции требований к разрабатываемой программной системе. Рассматриваются основные модели систем, среди которых выделяются потоковые ("data-flow"), объектные и семантические модели данных. Описываются методы определения требований, анализируется место формальных спецификаций, в частности - алгебраических и Z-схем, в современной практике разработки.

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

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

Особый - шестой - раздел книги посвящен столь фетишизируемым иногда CASE - средствам, после чего автор переходит к обширной и особо актуальной для практики отечественных разработок теме менеджмента. Прежде всего акцентируется важность человеческого фактора ("peopleware") и его учета в процессе коллективной разработки программ. Рассматриваются многочисленные приемы и метрики, позволяющие управлять качеством проекта, измерять и повышать производительность труда и выполнять обоснованные оценки стоимости и продолжительности проекта. Подробно описаны подходы к улучшению процесса разработки, в том числе основанные на модели зрелости процесса разработки ("SEI process maturity model").

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

Книга содержит большое количество иллюстративных примеров и фрагментов кода на языках C++ и Ada. Большое внимание автор уделил методике подачи материала: отсюда продуманная разветвленная структура книги и огромное количество схем и диаграмм, которые к тому же можно скачать по Internet. Конечно, несмотря на солидный объем книги, широта материала не оставила автору шансов на детальное рассмотрение каждой проблемы; неизбежная сжатость изложения, однако, компенсируется аннотиронным указателем на источники, более подробно обсуждающие данную тему. В конце же книги - исчерпывающая библиография из более чем 400 названий.

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

Валерий Аджиев

17.06.1997г


Также в разделе:

Новости ОСП-ТВ - 18.03.10


17/06/1997 №06

SCO OpenServer сегодня
Сергей Шургин
Состав семейства OpenServer Некоторые особенности SCO OpenServer Средства разработки приложений Содружество с миром Windows SCO танцует тарантеллу OpenServer рядом с NT Будущее OpenServer Пользователям ОС Unix компания Santa Cruz Operation хорошо известна в первую очередь благодаря своим операционным системам.
О Java по Гамбургскому счету

Java как UNCOL Заложники унаследованного кода? Если Java - ответ, то на какой вопрос? Потоки как благие намерения Java как универсальный инструмент Java как язык без Глобальных Состояний Механизмы распределенного управления
Sun: системы управления цифровыми медиа-данными
Василий Черный
1. Время технологий мультимедиа 2. Системы DMM - открытое решение 3. DMM - точка зрения Sun 4. Эталонная архитектура DMM 4.1. Хранилище 4.2. База данных 4.3. Загрузчик 4.4. Сервер доставки документов 4.5. Браузер 4.6. Сервисы клиента 5. Практические решения Sun 5.1.
Уважаемые читатели!

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



Эта рубрика в архиве
Список номеров за



OSP.RU :: Написать письмо.