Компьютерные вирусы и способы борьбы с ними
Рефераты >> Информатика >> Компьютерные вирусы и способы борьбы с ними

Концепция языка UML

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

UML разработан таким образом, чтобы удовлетворять потребности при моделировании любых систем: от информационных систем масштаба предприятия до распределенных Web-приложений и даже встроенных систем реального времени. Это выразительный язык, позволяющий рассмотреть систему со всех точек зрения, имеющих отношение к ее разработке и последующему развертыванию. Несмотря на обилие выразительных возможностей, этот язык прост для понимания и использования. Изучение UML мы нач-нем с его концептуальной модели, которая содержит три основные элемента языка: ба-зовые конструкции, правила, определяющие, каким образом эти конструкции могут со-четаться между собой, и некоторые общие механизмы языка.

Несмотря на свои достоинства, UML - это всего лишь язык. Он является одной из со-ставляющих программного обеспечения, и не более этого. Хотя UML не зависит от мо-делируемой реальности, лучше всего применять его, когда процесс моделирования ос-нован на рассмотрении текстового описания процессов, происходящих в предметной области, является итеративным и пошаговым, а сама система имеет четко выраженную архитектуру. Таким образом он идеально подходит для Унифицированного процесса разработки.

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

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

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

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

Язык UML как система визуализации, специфицирования, конструирования, документирования

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

А ведь даже в этих случаях программист занимается моделированием, хотя и нефор-мально. И такой подход чреват рядом неприятностей. Во-первых, обмениваться мне-ниями по поводу построенной модели можно только тогда, когда все участники говорят на одном языке. А это означает, что ваша компания не сможет принять великолепного программиста на С, если она использует Delphi! Или вашему новичку будет совсем не-просто догадаться, о чем идет речь. Во-вторых, нельзя получить представление об не-которых аспектах программных систем без модели, границы которой выходят за рамки текстового языка программирования. Например, назначение иерархии классов можно, конечно, понять, если внимательно изучить код каждого класса, а вот воспринять всю структуру сразу целиком ни за что не получится. Аналогично изучение кода системы не позволит составить полное представление о физическом распределении и возможных миграциях объектов в Web-приложении. В третьих, если ваш системный аналитик нико-гда не воплощал в явной форме разработанные модели, эта информация будет навсе-гда утрачена, если его вдруг переманят в конкурирующую фирму. В лучшем случае ре-зультаты его анализа можно будет только частично воссоздать исходя из реализации.

Использование UML позволяет решить эти проблемы. Этот язык моделирования - это не просто набор графических символов. За каждым из них стоит определенная семан-тика, а это означает, что модель, написанная одним разработчиком, может быть одно-значно интерпретирована другим, и не обязательно человеком, в роли второго разра-ботчика может выступать и некоторое инструментальное средство. Конец первой про­блемы. Некоторые особенности системы лучше всего моделировать в виде текста, дру-гие - графически. Практика свидетельствует, что во всех интересных системах сущест-вуют структуры. Которые невозможно представить с помощью одного языка программи-рования. A UML -графический язык, и это решает нашу вторую проблему. Ну и наконец, явная модель облегчает общение, это очевидно, а значит и третья проблема отпадает сама собой.

UML как язык специфицирования

UML позволяет специфицировать все существенные решения, которые касаются анали-за, проектирования и реализации, принимающиеся в процессе разработки и разверты-вания системы программного обеспечения. Это означает построение точных, недву-смысленных и полных моделей.

UML как язык конструирования

UML не является языком визуального программирования. Но модели, которые создают-ся с его помощью, могут быть непосредственно переведены на любой объектно-ориентированный язык программирования. Те понятия, которые удобнее представлять графически, так и подставляются в UML, те же, которые лучше описывать в текстовом виде, выражаются с помощью языка программирования.

Такое отображение модели на язык программирования позволяет выполнить прямое проектирование, т. е. генерацию кода по модели UML в какой-то конкретный язык. Мож-но решить и обратную задачу: реконструировать модель по существующей реализации. Такое обратное проектирование не представляет собой ничего необычного. Если вы не закодировали информацию в реализации, то она теряется при прямом переходе от мо-делей к коду. А поэтому для обратного проектирования необходимы как инструменталь-ные средства, так и непосредственное участие программиста или системного аналити-ка. Сочетание прямой генерации кода и обратного проектирования позволяет работать как в графическом, так и в текстовом представлении, если инструментальные програм-мы обеспечивают согласованность между этими двумя представлениями проекта.


Страница: