В последнее время много пишут о "человеческом факторе" в программировании: оказывается, программисты - тоже люди, а процесс разработки ПО является частным случаем совместной деятельности именно людей, а не только процессом использовании технологий, вычислительных средств и определенных схем менеджмента.
Относительно визуального моделирования эти "откровения" преломляются следующим образом: при визуальном моделировании существуют различные варианты работы человеческой психики. Меняется характер мышления человека, его внутренний ритм, объем и качество его коммуникаций с другими участниками проекта, характеристики его внимания и т. д. Визуальное моделирование может задействовать образность, различные эмоциональные составляющие: применительно к диаграммам употребимы, например, такие эпитеты, как "красивая", "ясная", "понятная", "говорящая", "гармоничная".
Учет всех этих деталей помогает на практике более "тонко" использовать визуальное моделирование, обращать внимание аналитика на свои состояния, на то, что их необходимо менять при занятиях визуальным моделированием, например, по сравнению с теми, в которых мы программируем или выясняем "тяжелые" вопросы с подчиненными и начальством. В результате модели получаются более совершенными, "работают лучше", точнее соответствуют своему предназначению. Создавая такие модели, лично я испытываю радость и удовлетворение от проделанной работы.
С точки зрения использования визуального моделирования следующий набор функций процесса разработки ПО является базовым:
Далее будет сделан акцент на тех психических состояниях, которые возникают у разработчиков при выполнении этих функций и которые, как мне кажется, определяют характер использования визуального моделирования в проекте.
Данные функции существуют в программных проектах независимо от того, используют ли разработчики визуальное моделирование или нет. Последнее выступает в качестве вспомогательного инструмента, наряду со многими другими инструментами, и может действительно помогать, резонируя с соответствующей функцией и психическим состоянием человека, накладываться на них, усиливать и добавлять новые краски, - и тем самым способствовать успешности проекта. А может противоречить, дисгармонировать, "рвать" ткань проекта.
В первом случае визуальное моделирование используется легко, с энтузиазмом, создаются новые методики его применения, появляются интересные книги и статьи.
Во втором случае визуальное моделирование внедряется и используется трудно, "из-под палки" или "стиснув зубы", а результаты его применения часто оказываются бесполезными для проекта: диаграммы не соответствуют программному коду, их или слишком много и в них никто, кроме авторов, не может разобраться, или их мало и они бедны и невыразительны.
При описании базовых функций основной акцент будет сделан на психических состояниях, в которые люди "погружаются" при выполнении этих функций.
Вербально-логическое описание явлений психической жизни человека имеет существенные ограничения. Еще Юнг отмечал, что психика человека состоит не только из ментальных процессов, но включает в себя также ощущения, чувства и интуицию. Как словами описать цвет, запах, вдохновение? Это можно увидеть, почувствовать, пережить. Слова же могут только намекнуть, обозначить, всколыхнуть воспоминания (эффект узнавания) - то есть прямо или косвенно вызвать сами переживания в человеке, который эти слова читает или слышит.
Именно на подобные эффекты и рассчитано предлагаемое ниже описание. Оно не является системным и детальным изложением в стиле "как должно быть" или исчерпывающим описанием того, "как было", а является, скорее, зарисовками из моего личного опыта, в которых, как я надеюсь, содержатся зерна живой человеческой жизни, которые могут вызвать отклик у читателя. Данный материал является вкладом в создание определенной атмосферы, а не попыткой построить фундаментальную систему знаний.
У проектировщика много разрозненной информации о будущем ПО - свой собственный опыт в данной области, различные (и часто противоречивые) пожелания и требования к конечному продукту со стороны заказчика, пользователей, специалистов по маркетингу и продажам и т. д. Но у него отсутствует единая картина будущей системы, у него нет ее интегрального образа или, другими словами, - решения задачи.
Проектировщик может вести себя, например, так. Он размышляет, задумчиво глядя в окно, отрешенно пьет
В какой-то момент у него появляется гипотеза. Он может ее проверить, и если ему кажется, что она незрела, то он не акцентируется на ней. Но если ему кажется, что он "напал на след", он может придать гипотезе более конкретную форму - связать вместе отдельные части и проработать детали. После этого он старается почувствовать, понять, является ли найденное решение искомым или нет.
И если Её величество Реальность снизойдет до его настойчивых попыток, то в определенный момент различные детали начинают складываться у него в единую картину. В его воображении возникает решение, система представляется ему как единое целое. Решение именно возникает, появляется, оказывается рядом с проектировщиком. Оно либо концентрируется вокруг него как некоторая непонятная, смутная пока еще уверенность, либо возникает как само собой разумеющаяся истина, либо возникает как настроение беспредметной радости, уверенности в себе, ясности (а потом появляется и конкретика), либо еще как-нибудь. Проектировщик не создает решения, не "делает" его, не синтезирует и не производит. Он его замечает, или оно само дает себя заметить. Признаком того, что это решение - "то самое", могут служить возникающие у проектировщика чувства достоверности, содержательности, адекватности, ясности, легкости и др. И одновременно - тишина и отсутствие бурного эмоционирования, специфическая отрешенность…
Для продуктивного творческого поиска не нужно множества пресс-конференций, большого количества разнообразной информации, интенсивного общения. Самое главное, как правило, происходит внутри самого проектировщика - в его воображении, уме и т. д. Его созерцательность, терпеливость и настойчивость являются хорошим залогом успешности - но не
В этой функции визуальное моделирование может использоваться, а может и не использоваться. Как отмечал известный исследователь инженерного проектирования Джонс, решения часто рождаются "на обратной стороне конверта" [5.4]. Навязывание здесь каких-либо специальных, определенных форм работы ведет к преждевременной формализации незрелых идей, сильно отвлекает проектировщика, не позволяет сформироваться той атмосфере, в которой может возникнуть оригинальное решение.
Однако отметим, что далеко не во всех проектах по разработке ПО проектируются новые и оригинальные системы. Очень часто дело ограничивается перекомпоновкой уже созданных в данной области или в данном коллективе
Итак, это может быть непосредственным началом проектирования, когда создается более-менее типовая система.
Сложившуюся у проектировщика целостную картину, найденное решение полезно оформить, перевести из разряда интуитивных прозрений, из области воображения, в зримые и осязаемые формы. Оформленное, описанное решение можно обсудить с различными людьми (а не только с "братьями по оружию" и друзьями, понимающими проектировщика с полуслова). Оно может также служить хорошей основой для дальнейшего воплощения системы. Более того, сам процесс оформления часто вскрывает различные неразрешенности и проблемы, которых автор еще не заметил и которые Джонс называл "вторичными противоречиями" найденного решения [5.4].
Занимаясь компоновкой и формализацией, проектировщик меняется. Он может, например, много чертить и писать, активно работать со справочной литературой, часто и подолгу общаться с коллегами. Проектировщик напоминает рыбака, который долго ждал, когда "клюнет", и вот теперь вытаскивает пойманную рыбу на берег. Со стороны может показаться, что вот теперь он, наконец, занят делом.
В этой функции визуальное моделирование очень полезно, так как диаграммы позволяют, в силу своей визуальной природы, наглядно выразить непростые для понимания детали решения, сделать их очевидными и понятными для тех, кто будет воплощать это решение в жизнь. Задача визуальных моделей - "схватить", продемонстрировать, обозначить, пояснить. Однако нужно дозировать применение визуального моделирования, активно используя кроме него также обычные документы, и устные объяснения. К сожалению, в области разработки ПО, в отличие от других инженерных дисциплин (строительства, машиностроения, электротехники и т. д.), не сложилось четких и однозначных рекомендаций по использованию чертежей. Таким образом, здесь вместо формальных критериев приходится использовать интуитивные ориентиры и собственный индивидуальный опыт.
Человек оказался рядом со сложной системой. Он - новичок, дилетант относительно данной системы, а ему нужно стать профессионалом, то есть досконально во всем разобраться. Цели у этого ученичества могут быть очень разные: необходимость влиться в коллектив создателей системы, освоить ее на уровне пользователя, разобраться в ней для того, чтобы создать техническую документацию и т. д.
Исходная установка ученика заключается в том, что он ничего не знает. Это - определенная внутренняя позиция, особенное состояние его психики. Это состояние можно описать как максимальную пустоту, отсутствие заранее сформулированных ожиданий, концепций, мнений, предпочтений. Если перед началом обучения мы полны всем этим, то нам трудно воспринимать новую информацию.
Ученик тих и внимателен, спокоен перед лицом большого и неизвестного массива информации, он настойчив в изучении, но пассивен в интерпретациях. Он вбирает в себя знания. Он старается максимально их упорядочить, но делает это ненасильственно и лишь до тех пор, пока это легко получается, - а потом он снова обращается к источнику информации. Ученик не боится незнания в любых формах, он готов носить в себе частичные знания, с лакунами и пробелами, не стремясь любой ценой их заполнить, подменять своими домыслами существующее, но непонятное ему пока еще положение вещей. Все происходит естественно, в свое время. Однако ученик наполнен желанием постичь предмет. Процесс обучения может протекать напряженно, страстно, быть подобным бурной горной реке, упрямому водному потоку, пробивающемуся через многометровую толщу скал к поверхности земли.
Постепенно для ученика начинает проясняться общая картина, перед его взором "проступает" логика системы. Его знания о системе становятся все более целостными, он все увереннее чувствует себя в потоке данной информации.
Интенсивность обучения достигается за счет активности ученика, а не его учителей. Эксперты и авторы системы, как правило, пассивны и заняты своей собственной работой. Часто они в состоянии лишь отвечать на вопросы ученика, расширяют, дополняют то, что он сам нашел, ставят перед ним следующие задачи, когда он освоил предыдущие. Ошибочно ожидать от учителей чрезмерной активности, чрезмерной заинтересованности в обучении. Ученик - самый активный человек в этом процессе.
Что можно изучать, участвуя в IT-проектах, так сказать, в "боевых условиях"? Часто ли такая задача вообще возникает в индустрии?
В области IT что-то изучать приходится почти постоянно, например:
При этом мы становимся учениками со всеми вытекающими отсюда последствиями. У нас появляются учителя - "живые носители информации":
Могут, разумеется, использоваться книги, документы, видеозаписи и другие носители записанной информации.
При изучении какой-либо области знаний визуальное моделирование полезно как средство структурирования информации. Однако его ценность многократно возрастает, если у ученика есть "живой учитель". В этом случае визуальные модели могут служить хорошим средством для того, чтобы, просмотрев их, учитель легко увидел ошибки и упущения ученика, а также отслеживал его прогресс в обучении. Таким образом, диаграммы могут быть осью работы ученика с учителем. Важно, конечно, чтобы учитель мог легко понимать чертежи ученика. Этого можно добиваться многими путями, например:
Например, диаграммы случаев использования родились именно из потребности работать с экспертами из не IT-сфер, возможно, вовсе не имеющих инженерной подготовки: продавцами магазинов, медиками, работниками музеев и пр. - различными будущими пользователями создаваемых программных систем. Было установлено, что эти диаграммы легко понимаются неспециалистами.
Целесообразно использовать структурные диаграммы (классов, компонент, размещений) как основной способ фиксации полученных знаний, описывая с их помощью структуру системы. Поведенческие диаграммы (последовательностей, коопераций, состояний и переходов и пр.) можно применять для моделирования отдельных фрагментов поведения системы, таким образом выявляя недостающую информацию о ее структуре. Полученная информация позволяет уточнить структурные модели и так далее. В итоге получается цикл - структурные модели/поведенческие модели. C построения каких именно моделей лучше начинать - структурных или поведенческих - зависит от области знания, от начальной компетенции ученика, от предпочтений эксперта и т. д.
Равнозначность и цикличность в использовании структурных и поведенческих визуальных моделей, конечно, является лишь общим принципом. Конкретная доля тех или иных видов диаграмм в процессе изучения какой-либо области знания будет разной. Возможны и крайние случаи. Например, при изучении каких-либо сложных алгоритмов из области телекоммуникации, обработки звука, шифрации и т. д. предпочтение будет отдано поведенческим моделей. А при разработке классификации видов жуков очевидно предпочтение структурных
Человек является экспертом и профессионалом. Он - автор системы, владеет огромным арсеналом знаний о ней, видит большое количество незаметных другим связей и нюансов в системе, является неисчерпаемым источником идей по ее дальнейшему развитию. Он способен конструктивно обсуждать систему в любое время дня и ночи - данная информация всегда при нем, как меч рыцаря, и этот меч легко выходит из ножен. Для профессионала мир его компетенции является бесконечной вселенной.
И вот перед ним появляется задача передать часть своих знаний другому человеку или некоторой аудитории (группе людей). Опишем особенности соответствующего психического состояния профессионала.
Перед тем как начать
Знания и опыт профессионала - это источник, из которого он строит свой процесс обучения - это поток, берущий начало из этого источника, а берега потока, направляющие его движение и регулирующие интенсивность, - это аудитория, ее желание и возможность работать, чтобы научиться, ее мотивации и интерес к данной информации.
Например, ученики устали, едва держатся на ногах, их глаза слипаются. Или они бодры, жизнерадостны, но... поверхностны и данной информацией интересуются лишь слегка. Или им все интересно, они полны сил, энергии и вдохновения, алертны и готовы работать. Возможны и другие варианты.
В каждом из этих случаев профессионалу целесообразно действовать по-разному, не навязывая своей информации и отвечая точно на запросы аудитории. Профессионал может предпринять также ряд действий по изменению состояния аудитории в необходимую для процесса обучения сторону.
Для успеха обучения профессионалу важно уметь видеть свою информацию глазами учеников. Такое переключение внимания часто бывает трудноосуществимо: профессионалу сложно "вынырнуть" из своей информации, в которой он жил долгое время, и увидеть все "как в первый раз", так, как видят его ученики. Если он этого не может сделать, то учебный процесс претерпевает большие сложности - профессионал рассказывает о чем-то своем, ученики недоумевают. Они существуют в разных мирах и никак не могут встретиться.
Невозможно описать какую-либо область знаний, сложную систему "как-она-есть": любое ее описание будет лишь взглядом с определенной точки зрения, абстракцией. В данном случае точку зрения на систему, во многом, задает аудитория.
Кто же в IT-индустрии может выступать в роли такого профессионала, заинтересованного в передаче тех или иных знаний? Вот примеры:
Из этих примеров видно, что основное отличие данной базовой функции от предыдущей -
Профессионал может использовать для передачи информации различные выразительные средства, в том числе и визуальные модели. При этом ему необходимо с особой тщательностью выбирать те фрагменты информации, визуализация которых существенно прояснит суть для аудитории. Диаграммы оказываются погруженными в процесс обучения и не должны из него выбиваться - по своему количеству, по сложности используемой нотации, по количеству изображаемых деталей и т. д. Более того, профессионалу следует особенно тщательно выбирать необходимые виды диаграмм, знакомые и/или доступные аудитории.
Важно также, чтобы диаграммы были красивыми и гармоничными, вызывали положительные эмоции у аудитории, провоцировали переживание ясности, сбалансированности, гармоничности, стройности, цельности и т. д. Когда люди видят рисунок, чертеж, схему в первый раз, то они не знают еще, что там изображено, но впечатление возникает сразу - например, легкости, света, воздушности, или тяжести, перегруженности деталями, запутанности. Эти первые нементальные впечатления формируют атмосферу учебного процесса, тот контекст, в котором происходит дальнейшее восприятие материала.
Поэтому визуальные модели, используемые в рамках
Создавая визуальные модели профессионалу важно понимать, адекватно представлять себе, какова будет реакция на эти модели у его аудитории. Но часто он увлекается полнотой изложения, не учитывая, что аудитория способна воспринять лишь небольшой процент его знаний. При этом он иногда руководствуется каким-то собственными абстрактными критериями качества и полноты изложения, никак не соотнесенными с возможностями аудитории. Так, например, рождаются невозможные для понимания студентами курсы теоретической математики на экономических и гуманитарных специальностях. Так появляются сложные и запутанные диаграммы, несущие море информации, которая буквально с первых же шагов сметает слушателей (наверное, почти каждый читатель видел такие ppt-презентации, изобилующие значками, цветами, словами… и совершенно непонятные). В Санкт-петербургском отделении математического института имени В.А.Стеклова, в одной из аудиторий, где регулярно проходили студенческие семинары, висел плакат с надписью "Лучше что-то не усп еть, чем что-то не понять".
Опишем одну интересную и крайне полезную технику использования визуального моделирования при изучении какой-либо области знаний. Она называется UML, так и с любым другим языком визуального моделирования. Эта техника была определена в рамках методологии SADT (Structured Analysis and Design Technique) [5.2].
Активный сотрудник -
В качестве такой области знаний может выступать предметная область, для которой создается информационная система. Если при этом будущие пользователи или заказчик системы не имели возможности подробно ознакомиться с тем, как разработчики поняли и интерпретировали их предметную область, то это непременно приведет к созданию невостребованной системы: данные будут неверны или их не будет хватать, форматы отчетов окажутся неудобны и т. д.
Итак, для того, чтобы создать адекватное описание системы, необходимо своевременно получать оценку создаваемых моделей со стороны. Для этого вводятся следующие роли:
Получив диаграммы автора, эксперт их тщательно просматривает и пишет свои комментарии (прямо на диаграмме, в виде примечаний, красной ручкой). Автор, получив назад свои диаграммы с комментариями, обязан отреагировать на каждое замечание - пометить синей ручкой на той же копии, принимает ли он замечание или нет. Принятые замечания он учитывает в следующей версии диаграмм, непринятые отсылает обратно эксперту с мотивировкой. В случае возникновения непонимания организуется встреча автора и эксперта, на которой они улаживают все рассогласования.
Кроме автора, эксперта и читателя в цикле "читатель/автор" имеются также следующие роли:
библиотекарь (librarian) - это главный координатор процесса моделирования; он следит за тем, чтобы все участники процесса вовремя получали свежие копии моделей, чтобы эти копии не терялись и вовремя попадали в архив, а последний был бы доступен; в его компетенцию входит также отслеживать, что все замечания экспертов и читателей обработаны автором, не оставлены без внимания; раньше, когда метод SADT только появился, роль библиотекаря была велика - модели строились на бумаге; теперь же для этого используют разные графические пакеты, а для хранения разных версий модели - программные средства управления версиями;
комитет технического контроля (technical review committee) - это группа людей, которая следит за тем, насколько процесс моделирования отвечает целям проекта, будет ли возможность использовать в дальнейшей работе создаваемые диаграммы; этот комитет следит также за тем, когда моделирование нужно завершить; ведь время людей может стоить существенных денег, у проекта есть сроки, а процесс моделирования может продолжаться очень долго - например, автор может увлечься, изучая новую предметную область.
Следует заметить, что цикл "читатель/автор" может использоваться в различных ситуациях, когда необходимо эффективно извлекать информацию из экспертов некоторой предметной области. Например, такая ситуация может сложиться, когда технический писатель создает документацию о программном обеспечении, или тестировщик изучает систему для того, чтобы эффективно ее тестировать, или новый менеджер проекта изучает систему, которая уже давно разрабатывается и созданием которой ему нужно будет руководить и т. д.
Кроме того, цикл "читатель/автор" может быть использован и вне контекста извлечения знаний, когда мы, зачем-либо создавая визуальные модели, хотим получать регулярную и упорядоченную обратную связь.
Разнообразие производственных контекстов, где может применяться данная техника, а также особенности человеческих и организационных отношений, приводят к тому, что цикл "читатель/автор" на практике требует адаптации. Для его эффективного использования необходима "тонкая подстройка" под особенности конкретной ситуации.
В частности, могут варьироваться ответственности разных ролей. Например, эксперт может отвечать за процесс моделирования или совсем не отвечать (вся ответственность лежит на авторе). Само общение автора и эксперта также может быть организовано по-разному. Например, в отличие от приведенных выше рекомендаций, эксперт может высказываться только устно, при личных встречах с автором. На одной встрече эксперт выдает информацию, на другой проверяет то, как получилось у автора ее формализовать и т. д.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.