`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Технология инакомыслия...

0 
 

...мне представляется, что человеческий мозг похож на маленький пустой чердак, который вы можете обставить как хотите. Дурак натащит туда всякой рухляди, какая попадется под руку, и полезные, нужные вещи уже некуда будет всунуть, или в лучшем случае до них среди всей этой завали и не докопаешься. Шерлок Холмс (Артур Конан Дойль)

Каких только чудес не преподносят эксперименты со словообразованием... Вот взять, к примеру, "инакомыслие" -- слово настолько богатое, что оно не могло и присниться культурной девушке Фиме Собак. Семантика его попахивает одновременно чем-то застарело-страшноватым и лихо-передовитым (сразу вспоминаются и диссиденты, и легендарный призыв "Think different"). В общем, букет что надо, с шармом. Только сомнительный какой-то -- практика показывает, что в природе встречаются индивидуумы или думающие, или не думающие вообще. Похоже, что третьего варианта природой не дано... Отсюда должны, по идее, следовать и вполне логичный вывод -- никакого "инакомыслия" нет вообще, и вполне закономерный вопрос -- о чем же пойдет речь в статье, в названии которой использовано такое "вкусное" словцо. А статья будет все-таки о "технологиях", точнее, о трех классах программных продуктов и одной технологии, чье сочетание придает и названию, и фразе самого реального "виртуала" до-Internet эпохи Шерлока Холмса вполне "материальный" смысл.


Персональный инфо-Бедлам

Бедлам -- разговорное название Вифлеемской королевской больницы, старейшей психиатрической клиники Великобритании; основана в Лондоне в 1247 г.; название стало нарицательным для обозначения сумасшедшего дома.

А ведь славные то были времена... Людям хватало пера, чернильницы и бумаги для того, чтобы творить. И творили ведь, творили... Даже инженеры, которые по сути своей профессии среди творцов наиболее "приземлены", обходились справочниками, сборниками математических таблиц, кульманом да добротной готовальней. Впрочем, с сегодняшним "креативом" процесс творчества автор сравнивать не собирается -- это за него лаконично и эффектно сделал В. Пелевин. И все же, кесарю -- кесарево (а "креативу" -- соответственно), но нам довелось жить в эпоху "междисциплинарности, отягощенной узкой специализацией". Пусть в этом определении очень силен призвук диагноза -- сути это не меняет. Никогда прежде требование к узкому специалисту не содержало в себе обязательность быть "дилетантом" в хорошем смысле этого слова, т. е. человеком, занимающимся каким-то направлением науки или искусством без специальной подготовки, если следовать точному определению толкового словаря. Сегодняшний доктор Ватсон -- спутник и историограф знаменитого программиста или системного архитектора Шерлока Холмса, уже не мог бы увековечить своего героя такой фразой: "Я до сих пор не в силах забыть ваше равнодушие к вопросу о том, движется ли Солнце вокруг Земли, или Земля движется вокруг Солнца". А вдруг "новому Холмсу" понадобилось бы разработать встраиваемое ПО, например для бортовой навигационной системы яхты? Вот тут-то ему и понадобилось бы отправиться в "путешествие дилетантов" по самым разным областям естествознания. Результатом такого "путешествия", несомненно, может стать полезная, интересная и "красивая" разработка, но все же эти возможные эпитеты не должны нас отвлекать от следования правилам здравого смысла, а именно, известному и подтвержденному практикой правилу: очень часто сохранение в удобоваримом виде сопровождающей информации, на основе которой был получен некий "материализованный" результат, представляет не меньшую, а даже большую ценность, чем сам результат. А вот с этим правилом как раз дела обстоят неважно -- "оседающие" на винчестерах "дилетантов поневоле" разрозненные информационные свалки образуют столько и таких авгиевых конюшен, что низкий уровень рождаемости эпических героев вызывает депрессию.

Технология инакомыслия...
Диаграммы (SmartDraw) и схемы Варнье--Орра (Bliner)

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


Алгоритм на каждый день



Наверное, так уж исторически сложилось, что слова "алгоритм" и "компьютер" стали чуть ли не расхожими синонимами: "мы говорим -- алгоритм, подразумеваем -- компьютер" и наоборот. Да и несолидно как-то человеку, уподобляясь примитивному микропроцессору, следовать жесткому набору инструкций, диссонансно как-то получается с общеизвестной доктриной "Человек -- царь природы". А между тем некоторые алгоритмы и фундаментальные алгоритмические правила весьма и весьма полезны в вещах совсем обыденных. Вот, к примеру, известная алгоритмическая закономерность -- предварительное структурирование информации сокращает объем действий при ее поиске. В идеале достигается колоссальная экономия работы -- в N/log(N) раз, где под N условно будем понимать количество некоторых "информационных единиц", в контексте нашего обсуждения этими "единицами" могут быть как, например, короткие текстовые справки, так и многостраничные статьи. На человеческом языке ту же самую закономерность допустимо озвучить более "прозрачно" -- затраты на структурирование информации при занесении ее в структурированный архив с лихвой окупаются высокой эффективностью поиска в архиве. Причем мы ни разу не упомянули слова "компьютер" -- процедуры поиска не обязаны автоматизироваться вообще, что никак не скажется на эффективности архива в целом.

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

Итак, что же такое аутлайнеры? Иначе этот класс инструментов называют "free-form database" -- "базы данных свободной формы", т. е. свободные от форматных и позиционных ограничений. Звучит страшновато, но на деле придумать что-либо более простое и полезное трудно -- по сути аутлайнер представляет собой аналог... механизма управления множеством иерархических файловых систем, каждая из которых хранится в одном физическом файле. К этому добавим "нечувствительность" хорошего аутлайнера к форматам упрятанных в него информационных фрагментов (это могут быть HTML- и rtf-фрагменты, изображения и т. д.) и свойство "нераздувания файла", т. е. компактности представления (на самом деле такое резкое "приземление" от общих идей к жестким требованиям реальности не прихоть -- некоторые реализации аутлайнеров, например, хранят одну иерархию в файле rtf-формата, характеризующемся крайне неэффективным представлением бинарных данных, что одновременно и "раздувает" файл, и приводит к дикой "прожорливости" программы, сводя все ее достоинства к нулю).

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

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


Лучше один раз увидеть...

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

Есть область, в которой справедливость использованной в названии раздела пословицы сомнению не подлежит. Это, опять же, касается структур -- только теперь не структурирования, как процесса, а собственно описаний структур. Можно заполнить пяток страниц убористым текстом в стиле "отдел А взаимодействует с отделом Б, ответственный за взаимодействие -- сотрудник В..." или "выход 5 блока А соединен со входом блока Б...", но в данном случае куда более удобоваримой является отработанная форма представления -- диаграммы. В контексте статьи такое нечеткое, но также очевидное соображение означает, что для повышения ценности сопровождающей проектной информации хороший редактор диаграмм (РД) просто необходим. Как и затраты времени на создание самих диаграмм, заменяющих невнятную многословность описаний. Характеристику "хороший" мы уточним чуть позже, а пока ограничимся более общими соображениями о важности роли программы такого класса.

Как и аутлайнеры, РД представлены далеко не таким обширным перечнем, как, например, текстовые редакторы. Впрочем, в отличие от аутлайнеров здесь есть свои знаменитости, которые у всех на слуху, -- та же Visio. История этой программы подтверждает ее важность (корпорация Microsoft не славится склонностью к приобретению неудачных или несущественных разработок), а вот характер популярности показывает, что и здесь не обошлось без синонимов-заблуждений. РД, удачно подходящие для бизнес-иллюстрирования, похоже, начинают ассоциироваться исключительно с этой, без сомнения нужной и важной, но далеко не единственной областью их применения. Частичной "реабилитации" РД добились благодаря росту интереса среди разработчиков к графической нотации UML, но до заслуженной популярности этому классу программ все же далеко.

Говоря о РД, нельзя не упомянуть программы автоматического формирования диаграмм (ПАФД), относящиеся не столько к средствам порождения чего-либо нового, сколько к инструментам реинжиниринга. Несмотря на узкую специфику применения, ПАФД очень популярны в среде программистов, решающих задачи сопровождения масштабного программного кода, -- именно на таких задачах роль диаграмм ощутима за счет обеспечиваемой ими возможности визуально "ухватить" алгоритмическую идею, заложенную в код.


Схемы Варнье--Орра

В 1977 г. будущий основатель и "однофамилец" известной сегодня исследовательско-консалтинговой организации KOI (Ken Orr Institute) Кен Орр сформулировал следующее краткое определение и метода "проектирования структурированных систем" (Structured Systems Design -- SSD), и требований, приводящих потенциальный объект проектирования в соответствие со спецификой метода:

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

1) это "нечто" обладает иерархической организацией;

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

Материализация SSD сегодня более известна под названием схем (структурных диаграмм) Варнье--Орра (Warnier--Orr), но не стоит обманываться сравнительной формой использованного здесь эпитета "более" -- на самом деле, похоже, что методы SSD далеки от популярности. И, надо сказать, незаслуженно, несмотря на наличие в названии "немодного" прилагательного "структурированный". Немодного потому, что мы живем в дни полной и окончательной победы "объектного" над "структурным". Впрочем, достоинств SSD никто еще не отменял...

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

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


Конкретизация

Этот раздел придется начинать с малоприятного известия -- к сожалению, ни одна из описываемых далее программ не является бесплатной. Найти им адекватную замену в мире freeware также практически невозможно -- в этом автор убедился лично. Впрочем, такую пилюлю можно хоть немного подсластить -- программы недороги и, в основном, распространяются на условиях shareware.

Аутлайнер, удостоенный чести быть представленным нашему читателю, автором выбирался тщательно. В результате из небольшого списка претендентов была отобрана программа MyBase компании с труднопроизносимым названием WJJSOFT. MyBase обладает фактически всеми качествами, которые можно востребовать от хорошего аутлайнера, -- "прозрачным" интерфейсом, практически не требующим усилий для изучения, мощным встроенным rtf-редактором, контейнерным механизмом хранения бинарных данных (аналог attachment в клиентских программах электронной почты), исключающим "раздувание" файлов -- информационных хранилищ, и наконец, самым главным технологическим нюансом, о чем было обещано рассказать в начале статьи. А именно, отличной интеграцией с общесистемными механизмами, в первую очередь -- с OLE. Этот "нюанс", по сути, означает, что MyBase играет роль полноценного хранилища, позволяющего не сохранять в отдельных файлах рабочие материалы, созданные другими программами.

Два следующих элемента, о которых шла речь ранее, -- редакторы диаграмм. Они представлены выбранными автором программами SmartDraw и Source- Code2Flowchart, относящимися к двум кратко определенным ранее классам РД -- для проектирования и реинжиниринга. Обе программы одновременно недороги (около $60, предусмотрены различные варианты лицензирования, в том числе и корпоративные) и исключительно хороши для своей цены. SmartDraw позволяет создавать диаграммы самых разных классов (включая и специализированные, для проектирования ПО) и функционально фактически ничем не уступает своему именитому конкуренту -- Visio. SourceCode2Flowchart -- продукт в своем роде уникальный, поддерживающий автоматической генерацией диаграммы, отображающей алгоритм, процедуры документирования и реинжиниринга готовых программ, разработанных на языках С/С++/Pascal/Delphi/Java/Perl/PHP.

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

Автор совершенно умышленно отклонял возникавшую неоднократно мысль "разжевать" каждую программу по отдельности, несмотря на то, что благодаря уникальности соотношения цена/качество все они того заслуживают. Сделано это из-за того, что все программы совершенно элементарны в освоении. Что получается в результате построения инструментального "гибрида" с весьма приемлемой стоимостью (порядка $250), лучше слов демонстрируют снимки экранов. А вот соотнести стоимость такого "решения" и важность получаемого с его помощью результата -- улучшения качества сопровождающей проектной информации (косвенно -- и проектной документации) -- автор оставляет читателю.

0 
 

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT