Реценции на две книги


В прошедшем году среди разработчиков ИС произошел дополнительный всплеск интереса к "объектной теме". Вызван он был тем, что в продажу поступили последние версии СУБД фирм Oracle, Informix и IBM, дополненные объектными возможностями. Таким образом работа с объектами стала насущной для широкого класса разработчиков, программирующих на популярных SQL-СУБД. Можно представить, что у меньшей части этих разработчиков появилось до некоторой степени разочарование, так как в новых системах они увидели не совсем то, что ожидали, а у большей -- стремление разобраться, как им следует строить свою работу с объектами. Не место здесь обсуждать термин "объектно-реляционные СУБД", но очевидно, что работа с подобными системами требует и знакомства с уже давно развиваемыми в компьютерной литературе явлениями "объектного анализа" и "объектного проектирования".

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

James Martin, James Odell. Object-Oriented Analysis and Design. Prentice Hall, 1992.

ISBN 0-13-630245-9

Поколение постарше хорошо помнит книгу Джеймса Мартина "Основы управления базами данных": кто-то по ней сдавал экзамен в институте, а кто-то и принимал. Кандидатура для перевода, выполненного в советское время, была действительно удачна: книга Мартина была хорошим введением в дисциплину, одним из трех-четырех достаточных пособий по этой теме вообще. Сохранись старые времена, мы наверняка имели бы теперь на книжных полках еще один перевод книги этого автора (я даже рискую предположить, с чьим именно предисловием). Несмотря на то, что между «Объектно-ориентированным анализом и проектированием» и «той» книгой (а были, кстати, и другие переводы) -- лет примерно 15, в которые уместилось несколько десятков книг Мартина, мы имеет дело со столь же «ключевой» для своего (теперь уже нашего) времени книгой, но посвященной, соответственно, не «теме тех лет» -- реляционным базам данных, -- а «теме наших дней» -- объектному подходу. И хотя книга написана совместно с другим консультантом, Дж. Оделлом, она носит все характеристики типично мартиновских книг с их широким охватом темы, достаточной ориентацией в предмете и массой графического материала.

Структура книги весьма проста и включает пять основных частей. Первая часть вводная, и содержит общие рассуждения об эволюции развития информационных систем и о месте в этой эволюции объектно-ориентированного подхода. (Здесь не надо забывать, что мы имеем дело с одним из наиболее авторитетных лекторов в мире.) Вторая называется «Обзор процессов анализа и проектирования» и затрагивает такие темы, как анализ структуры и поведения объектов, проектирование анализа и проектирования объектов, а также стандарты, инструментальные CASE-средства и стандарты графического изображения в объектном подходе. Систематично проводится разграничение анализа и проектирования в случае разработки ИС, и структуры и поведения -- в случае, когда речь идет об объектах: для первого, второго, третьего и четвертого в их комбинациях требуются различные технологии. В следующих частях книжки более подробно рассматриваются «основы анализа структуры объектов» (часть 3), «основы анализа поведения объектов» (часть 4) и «проектирование» (часть 5). Мне наиболее интересной и насыщенной показалась часть 3, более других обладающая преемственностью обсуждений, длящихся уже третье десятилетие в компьютерном мире.

Книга Мартина и Оделла -- это книга-описание. Цель ее -- показать читателю, что собой представляет популярный объектный подход. При этом не надо забывать, что традиционная аудитория Мартина -- это управленческое звено; в определенной степени речь идет о книге для начальников, которым важно с одной стороны определиться с перспективностью принимаемых ими решений, а с другой -- понять, что такое делают их специалисты. Этим объясняется, в частности, наличие большого количества иллюстративного материала и отсутствие углубленных технических пассажей. В то же время в достаточно четком понимании теоретических проблем Мартину не откажешь (см. ту же часть 3).

Хотелось бы отметить еще следующее. Будучи консультантом (период 19-летней работы в IBM остался, подобно как и у таких величин, как Кодд или Дейт, -- может быть, «дело в консерватории» ? -- у Мартина позади), Мартин вместе с коллегой не особенно ограничивает себя рамками каких-либо реальных инструментариев объектного проектирования. Он предлагает, «как надо», в то время как существующих CASE-систем за его рисунками и схемами не стоит. Читатель должен это понимать, но, кажется, это не должно его смущать. Хотя бы потому, что, как показывает опыт, «отец CASE-систем» умеет неплохо заглядывать в будущее.

Справки о наличии книги в московских книжных магазинах можно получить по тел. (095)251-4504.

Edward Yourdon, Carl Argila. Case Studies in Object-Oriented Analysis and Design. Yordon Press, 1996. FD Included.

ISBN 0-13-305137-4

Книга написана Эдвардом Йордоном, одним из наиболее известных учителей в области построения информационных систем, в соавторстве с Карлом Аргилой тоже на тему ориентированного анализа и проектирования, но в своем особенном ключе. Авторы не распространяются много о том, что собой представляет предмет, а задались целью на двух примерах систематично, «шаг за шагом», показать, как этот предмет применять в практике. Для этого взяты два нарочито разных приложения -- управление лифтами в высотном здании и организация работы небольшого издательства (авторы, подписчики, номера журнала), -- которые появляются вскоре после начала книги и остаются в ней до конца. Основная идея книги лежит где-то в области между двумя приводимыми в тексте суждениями. Первое (это цитируемое в книге высказывание): «Всякая самая сложная ситуация в информационном проектировании имеет простое решение. И всегда это решение неадекватно ситуации». Второе: «Использование имеющегося объектного инструментария само по себе не дает никаких преимуществ». По поводу второго авторы однако уверены, что использование объектного инструментария дает хорошие возможности, которые, тем не менее, нужно еще уметь реализовать. Доказательству существования таких возможностей, проведенному на двух примерах, посвящена книга.

Интересно отметить, что Йордон -- не пурист объектного подхода. Может быть ему несколько неловко отказываться от своего богатого книжного наследия (он автор превосходных книг по структурному подходу; одна из его книг по структурному программированию была переведена еще в 1979 г. на русский язык), но он не только не предлагает «не замечать» структурный подход, но и использует технологию структурного анализа при объектном анализе и проектировании. Отмечая предельную важность правильного выбора объектов при выполнении проекта по объектной технологии, авторы предлагают использовать в качестве одного из инструментов объектного анализа диаграммы «сущность-связь». В нескольких местах утверждается, что ту или иную систему разумно проектировать не обязательно объектно, но и по структурной методологии. Как мне показалось, основным преимуществом использования объектного подхода перед структурным авторы считают больший потенциал создаваемой ИС к грядущим изменениям постановки задачи. Если так, то это действительно очень важное преимущество, так как отсутствие поддержки динамики сути прикладной области существенно ограничивают потенциал структурных методов, как впрочем и современных СУБД.

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

Сказать, что Йордон обладает знанием дела -- значит сказать тривиальность. Но кроме этого у него есть большая эрудиция и дар речи. Йордон -- один из моих любимых авторов по теме разработки ИС. А вот ответ скептикам, утверждающим, что занимаясь преподавательской и консультационной деятельностью, Йордон далек от практики (так сказать, "Если ты такой умный, то почему не президент ?"): его соавтор Аргила -- специалист с 30-летним стажем и участник проектов «Аполлон», по разработке подводной лодки «Трайдент», бомбардировщика B-2 и других.

Справки о наличии книги в московских книжных магазинах можно получить по тел. (095)251-4504.


В заключении трудно не сказать пару слов о том, как обе вышеупомянутые книжки соотносятся с книжкой Гради Буча "Объектно-ориентированное проектирование", переведенной в 1992 году (через год после выпуска оригинала, правда имеющего теперь уже второе издание) на русский язык киевской фирмой Диалектика и московской ИВК. Во-первых, последняя фокусируется преимущественно на объектном проектировании ИС. Во-вторых, она, конечно, существенно более энциклопедична и требует от читателя значительно большей программистской эрудиции (по отдельной главе отведено системам на Smalltalk, Object Pascal, C++, CLOS, Ada). Это делает ее более трудной для чтения, нередко (и к сожалению) воспринимаемого за роскошь самого по себе среди нынешних разработчиков. В-третьих -- она переведена на русский язык, и значит (в противовес "во-вторых") более доступна для чтения. Резюме: каждая из трех книг имеет свою нишу читательской аудитории, а все три, тем самым, немного, да способствуют возрождению многообразия профессиональной литературы в государстве.


Пржиялковский Владимир Викторович

Независимый консультант

(095)135-4163б 158-4352

prz@deneg.net

www.ccas.ru/~prz