CASE-технологии: изучать или исключить?
Статья посвящена вопросу о необходимости изучения CASE-средств студентами вуза, а также анализу возникающих на этом пути проблем. Автор доказывает важность формирования современного образа мышления в области проектирования программных продуктов у студентов технических специальностей.
Ключевые слова:CASE-технологии, CASE-средства, CASE-мышление, UML, моделирование, современное обучение.
Современные технологии разработки программных средств диктуют новые подходы как непосредственно к обучению студента, так и формированию его образа мышления. Становление специалиста в области программирования, особенно в сфере программной инженерии, должно происходить с использованием новых, современных подходов к обучению. Одним из таких подходов можно считать применение различных CАSE-средств для решения поставленных задач, особенно в программировании.
Для большинства программистов и преподавателей дисциплин, связанных с программированием, наиболее важным представляется формирование программного кода, а не моделирование разрабатываемой системы. Часто можно услышать из уст студентов (и даже преподавателей!) фразы: «Главное — написать работающую программу», «Зачем нужны описания, тем более графические, используемых алгоритмов (методов, подходов)», «Предварительная разработка модели системы (решения задачи) не понадобится (лишнее действие)» и др. Но технологии программных продуктов не стоят на месте, появляются новые средства и инструменты, позволяющие выполнять разработку на более высоком качественном уровне, соответствующем современным стандартам. Это необходимо обязательно учитывать при обучении студента даже на начальном этапе этого обучения. К таким новым технологиям можно отнести использование CASE-средств, поддерживающих язык UML, для проектирования программного продукта.
Конечно, освоение CASE-средств требует дополнительных усилий, и разработка модели системы повлечет за собой дополнительные временные и мыслительные затраты, результат которых не очень явно прослеживается при создании небольших программных проектов, необходимых в высших учебных заведениях. Но основная проблема, как представляется, состоит не в этом.
Истинная причина явной «нелюбви» к моделированию разрабатываемого программного продукта кроется в неумении (и нежелании) принципиально изменить подход к программированию: начать мыслить не строками (операторами) программного кода, а объектами (элементами диаграмм). Иными словами, необходимо сформировать в себе способность видеть весь проект целиком в виде связной модели (диаграммы или набора диаграмм), четко отражающей основные действующие объекты будущей системы, их действия и связи между ними.
Для многих программистов, особенно старой школы, этот процесс не совсем понятен, а потому и позиционируется как излишнее, не имеющее никакой практической ценности действие. Поэтому, мне кажется, необходимо начать именно с разъяснения важности данного подхода к программированию. А там будет уж и совсем недалеко до понимания.
Что же такое CАSE-средства и для чего современному инженеру просто необходимо в них ориентироваться и уметь с их помощью реализовывать решения поставленных задач?
Большинство современных организаций (тем более их конгломератов — холдингов, государственных структур) являются сложными системами, со множеством экономических, культурологических, информационных, властных, семейных, технических и всяких иных отношений и функций. Соответственно, у руководителей и менеджеров, вынужденных управлять подобными системами, возникает потребность в «структурировании» их деятельности.
Информационные системы (ИС) (в бумажных и компьютерных формах), разрабатываемые для обслуживания таких систем, с каждым годом становятся все сложнее. Автоматизация деятельности любого предприятия (как с применением корпоративной ИС собственной разработки, так и при выборе тиражной системы с последующей ее адаптацией и внедрением) предполагает обязательный изначальный анализ самой деятельности с подключением обслуживающих аналитиков и «информационщиков». Для этих целей и используют различные CASE-средства — средства компьютеризированного анализа, проектирования, перепроектирования, контроля за соблюдением соответствия тому, что было спроектировано.
Уходят в прошлое принципы работы «на глазок», «лишь бы работало», «радуйтесь тому, что это вообще у вас есть» и др. Современные технологии и экономика не прощают приблизительности; огрехи на стадии планирования затем выливаются в огромные накладные расходы — как умственные, так и материальные. CASE-средства — именно те средства, с помощью которых можно выполнить визуальное моделирование, максимально автоматизирующие все процессы жизненного цикла проекта разработки и реализации (как в организационной, так и в программной инженерии). Кроме того, это средства правильного ведения работ, поддерживающие коммуникации участников проекта на разных этапах и с разных позиций (как между командами заказчика и разработчика, так и внутри рабочей группы).
С другой стороны, используемые в CASE-средствах модели (визуальная составляющая CASE-инструментов) — это общий язык для всех участников некоего процесса, обеспечивающий возможность задавать те или иные аспекты предметной области с помощью общей терминологии, общих графических изображений (нотаций). Модели являются предметом коммуникаций, без которых не о чем говорить, нечего обсуждать, т.к. предмет не определен. Кроме того, модели также можно использовать для коллективизации усилий некоторой группы разработчиков, планирования и соотнесения между собой их действий.
Основываясь на вышесказанном, можно с уверенностью говорить, что современный инженер обязан не просто знать принципы работы наиболее распространенных CАSE-средств, а достаточно хорошо в них ориентироваться, уметь практически их применять, т.е. иметь достаточный опыт моделирования различных решений и программ. Это позволит более быстро развиваться как в плане карьеры, так и в финансовом смысле, что сейчас немаловажно.
И достаточно оправданным (и логичным) местом обучения будущих инженеров основам моделирования с помощью CASE-инструментов можно назвать именно институтскую скамью. Если, конечно, высшее учебное заведение стремится к тому, чтобы его выпускники соответствовали высоким требованиям на рынке труда.
При этом одним из наиболее важных моментов можно считать формирование принципиально нового подхода к написанию программ так называемого «CАSE-мышления» [1][1].
Чтобы начать проектировать программные продукты с помощью CASE-технологий, мало просто изучить какой-либо редактор UML и свойства используемых диаграмм. Подход, когда изучение начинается с каких-то простых элементов, с помощью которых уже можно построить что-либо и, углубив знания, соответственно усложнить реализацию, здесь не работает. Мало использовать инструменты CASE-средства; надо легко ориентироваться в предлагаемых диаграммах, четко представляя, как и для чего они должны использоваться, и реализовывать создаваемый программный продукт именно в виде набора диаграмм.
Использование языка UML на этапе моделирования дает возможность программисту показать все нюансы будущей системы, ее архитектуру, возможные ошибки и недоработки, которые намного легче исправить именно сейчас, а не тогда, когда у вас уже будет многостраничный программный код, на который была потрачена уйма времени. И что самое главное, наглядность модели дает возможность обсудить будущую систему с кем угодно, начиная от заказчика, ничего не смыслящего в программировании, и заканчивая коллегами (преподавателем, по заданию которого создавалась программа), не заставляя их разбираться в хитросплетениях именно вашего подхода к созданию данной программы. Иными словами, мы возвращаемся к тому, что здесь важным является именно изменение образа мышления, а не просто использование CASE-средства как дополнительного элемента при проектировании программного обеспечения.
Из вышеизложенного, подытожим в заключение, можно с уверенностью констатировать, что современный специалист в области программирования просто обязан достаточно легко ориентироваться в мире CASE-технологий, знать хотя бы одно из предлагаемых на рынке CASE-средств в совершенстве. Тогда этот специалист будет востребован, и его ждет перспективное профессиональное будущее. Становлением же такого специалиста, точнее, формированием его образа мышления в программировании, должна увлеченно, разнопланово, разнообразно, доступно и мотивированно заниматься именно высшая школа.
Литература
1. Вендров А. Ниша и внедрение CASE-средств // Директору ИС. — Ноябрь, 2000. — [URL]: http://www.interface.ru/fset.asp?Url=/CASE/botcase.htm
[1] Данное словосочетание образовано по аналогии с «объектно-ориентированным мышлением» и означает, что необходимо отказаться от традиционного процедурного подхода к программированию и начать учиться мыслить объектами. «Для того, чтобы создавать программные системы при помощи современных технологий, необходимо иначе взглянуть не только на процесс проектирования, но и на программирование» [1].