В течение нескольких последних лет
В течение нескольких последних лет мы наблюдаем эволюцию языков моделирования программных систем, одним из результатов которой стало появление и развитие Унифицированного Языка Моделирования - UML (Unified Modeling Language) [], объединившего под своим названием фактически несколько методологий. Он стал основой для целого спектра различных средств поддержки разработки программного обеспечения - CASE-средств (Computer-Aided Software Engineering).
Оставим за скобками рассуждений средства проектирования информационных структур (ErWin, Oracle Designer, и т.д.): просто речь у нас пойдет о конкретном классе инструментов - средствах моделирования ПО, из которых будем рассматривать только язык UML. Во-первых, это хорошо известный инструмент, и его вполне достаточно для обсуждения рассматриваемой темы, а во-вторых, другие средства подобного класса, хотя и в разной степени, имеют особенности, аналогичные рассматриваемым.
Однако, несмотря на интенсивное развитие средств моделирования, абсолютное большинство программистов либо вообще не пользуются ими, либо применяют их только тогда, когда все средства решения задачи исчерпаны (в [] приведен хороший пример такой ситуации). И нельзя сказать, чтобы это объяснялось простой ленью: мне известно множество попыток (причем довольно грамотных специалистов) подступиться к CASE-средствам, однако почти все они заканчивались возвратом к традиционным методам.
Здесь мы будем вести речь о разработке программных средств средней и меньшей сложности, которые далее для простоты будем называть «средними». Говоря о программистах, будем иметь в виду разработчиков программных средств только указанной категории.
В чем же причина столь редкого использования CASE-средств? Виноваты ли «упрямые ретрограды» программисты, или, может быть, средства эти создают больше проблем, чем решают?
Рассмотрим в связи с этим два аспекта применения средств моделирования:
- Могут ли они использоваться так же широко, как сегодня применяются обычные визуальные системы программирования?
- Насколько они применимы в разработке «средних» программных средств?
Очевидно, что эти аспекты в значительной степени пересекаются, поэтому в дальнейшем выделять какой-либо из них нет необходимости.
Обсуждение проведем в следующей последовательности:
Вначале обсудим моменты, определяющие применимость средств моделирования в указанной области. Затем рассмотрим свойства типичного средства на примере диаграмм UML, обсудим особенности языка. Наконец, определим требования к средству моделирования для указанных областей, и предложим соответствующее им решение.