Файл: История развития программирования в России (Основные особенности построения диаграмм языка UML).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 13.03.2024

Просмотров: 26

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

По данным исследований ABBYY, количество пользователей продуктов компании составляет около 30 млн. чел. более чем в 130 странах. Десятки тысяч организаций по всему миру обрабатывают с помощью ее технологий и программ свыше 1,6 млрд. страниц документов и форм ежегодно.

Бакунов Григорий Николаевич (род. 19 апреля 1972 года). С 2001 г. руководил отделом разработки в SWSoft. В настоящее время является заместителем руководителя департамента разработки компании Яндекс. Ранее работал по рабочим контрактам в Бельгии, Израиле и США.

Внес вклад в разработку ряда программ с открытым исходным кодом, в том числе ASPLinux.

Евгений Валентинович Касперский (4 октября 1965 г., Новороссийск) – российский программист, специалист по информационной безопасности, один из основателей, ведущий разработчик и крупнейший акционер ЗАО «Лаборатория Касперского» – международной компании, занимающейся разработкой решений для обеспечения IT-безопасности, имеющей более 30 региональных офисов и ведущей продажи в 200 странах. Лауреат Государственной Премии в области науки и технологий за 2008 год. В прессе характеризуется как «гроза компьютерной преступности»

Сергей Михайлович Брин родился 21 августа 1973 г., в Москве, СССР. Разработчик и сооснователь поисковой системы Google. легенда компьютерного бизнеса, сооснователь и президент по технологии компании Google Inc., миллиардер, ныне один из самых богатых людей Америки. Брин – русский, впервые названный газетой «Financial Times» «человеком года» не как актер, политик или олигарх, а как математик, прославившийся на весь мир творением собственного ума – поисковой системой Google.

ГЛАВА 2. ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ UML

2.1. Особенности языка программирования UML

Как и все формальные искусственные языки UML имеет синтаксис, семантику и прагматику, но они названы другими терминами и описываются иначе, чем это принято в текстовом языке программирования, из-за того, что UML является графическим языком, а не текстовым, а так же языком моделирования, а не программирования.

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


Рассмотрим более подробно значение термина «унификация». Приложив достаточно усилий, авторы языка UML, поддерживаемые всей международной программистской общественностью смогли соединить вместе (унифицировать) большую часть информации, известной до них. При попытках отслеживания истории возникновения и развития элементов UML, их основополагающих идей, а так же технических деталей, приходится называть множество имен и десятки организаций. На данный момент история развития языка UML еще не закончена — происходит постоянное обновление языка, его обогащение и расширение. На рисунке 1 представлена история развития языка UML.

Рис.1. История развития языка UML [3]

Все крупные поставщики инструментов предпочитают поддерживать версию 2.0 и оставлять без поддержки версию 1.5.

Язык UML предназначается для создания моделей систем. Сами авторы UML (Г. Буч, Д. Рамбо и А. Якобсон) определяют его как графический язык построения диаграмм, который предназначается для выполнения процессов определения требований, построения структуры системы, проектирования и документирования всех этапов, разработки программных средств [2].

1. Определение требований

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

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

2. Построение структуры системы

Особенность человеческого восприятия говорит о том, что текстовая информация с картинками более доступна и воспринимается лучше голого текста. А графическое изображение, дополненное текстом — еще лучше. Модели языка UML позволяют создать представление системы в виде графических образов, более наглядных, интуитивно понятных, и легко составляющихся.


Поэтому, вторым важным назначением языка UML является осуществление и поддержка процесса между участниками проекта. Естественно, наглядное изображение диаграмм UML значимо лишь при восприятии их человеком и не имеет отношения к компьютерам.

3. Проектирование

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

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

4. Документирование

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

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

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


Построение диаграмм способствует лучшему пониманию требований, созданию более чистых прототипов и более поддерживаемых систем.

Диаграммы являются представлениями, которые изображают предметы первой необходимости сложной проблемы или структуры отфильтровывая ненужные детали, что делает проблему более понятной.

Абстракция является фундаментальным человеческим потенциалом, который позволяет нам иметь дело со сложными системами.

Для создания сложных систем, разработчик должен изображать абстрактно разные взгляды на систему, строить модели, используя точные обозначения, убеждаться, что модели удовлетворяют требованиям Системы, и постепенно добавлять детали для преобразования модели в реализацию.

Люди строят модели сложных систем, потому что возникают сложности понимания и анализа их во всей полноте. Есть ограничения на способность человека понять сложность. Эта концепция может рассматриваться на примере архитектуры. Глядя на строки исходного кода даже анализ формы в Visual Basic дает мало информации для того, чтобы обеспечить программисту понимание всего целиком.

Построение модели позволяет разработчику сосредоточиться на глобальной картине того, как компоненты проекта взаимодействуют между собой, без того, чтобы углубляться в конкретные детали каждого компонента.

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

Часто используют треугольник, как показано на рисунке 2, чтобы объяснить компоненты, необходимые для успешной реализации проекта [6]. Вы должны обозначить все три грани, нотация, процесс, и инструмент. Вы можете знать нотацию, но если вы не знаете, как ее использовать (Процесс), вам, вероятно, моделирование не удастся. Вы можете иметь отличный процесс, но если вы не можете взаимодействовать с процессом (нотация), вам, вероятно, моделирование так же не удастся. И, наконец, если вы не можете документировать свою работу (инструмент), вам также моделирование не удастся.

Рис.2. Треугольник взаимодействия нотации процесса и инструмента [6]

Роль нотации

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


• Она служит в качестве языка для поиска решений, которые не являются очевидными или не могут быть выведены из самого кода.

• Она обеспечивает семантику, которая является достаточно богатой, чтобы захватить все важное стратегические и тактические решения.

• Она предлагает вид достаточный для людей, чтобы рассуждать и инструменты для манипулировать. [1]

Unified Modeling Language (UML) обеспечивает очень надежную нотацию, которая растет от анализа к дизайну. Некоторые элементы нотации (например, классы, ассоциации, агрегации, наследования) вводятся в процессе анализа. Другие элементы записи (например, показатели реализации защитной оболочки и свойства) введены во время проектирования.

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

На диаграммах в языке UML имеется три вида визуальных обозначений, важных с точки зрения заключенной в них информации:

  1. Связи, представленные разными линиями на плоскости. Связи языка UML, обобщающие понятие дуг и ребер из теории графов, но имеющие не столь формальный характер.
  2. Текст, содержащийся внутри границ отдельных геометрических фигур на плоскости. При этом формы этих фигур (прямоугольники, эллипсы) соответствуют некоторым элементам языка UML (классы, варианты использования) и имеют строгую семантику.
  3. Графические символы, который изображаются около различных визуальных элементов диаграмм.

Поэтому, в языке UML применяется четыре основных типа графических элементов:

  1. Значки или пиктограммы. Значки являются графическими фигурами фиксированных размеров и формы. Они не могут увеличивать свои размеры, для размещении внутри себя дополнительных символов. Значки могут располагаться либо внутри других графических элементов, либо вне их. Примером значков является окончания связей элементов диаграмм.
  2. Графические символы на плоскости. Эти символы принято изображать с использованием различных геометрических фигур, они могут иметь разную высоту и ширину для размещения внутри них других языковых конструкций UML. Чаще всего внутри этих символов помещают текстовые строки, которые уточняющие семантику или фиксирующие некоторые свойства элементов языка UML. Данные, содержащиеся внутри фигур, имеют важное значение для конкретных моделей проектируемых систем, так как регламентируют реализацию соответствующих элементов программного кода.
  3. Пути, представляющие собой последовательность отрезков линий, которые соединяют отдельные графические символы. При этом концевые точки на отрезках линий должны качаться с геометрических фигур, служащих для обозначения вершин диаграмм. С концептуальной точки зрения пути в языке UML имеют особое значение, так как являются простыми геометрическими структурами. Другими словами, пути не могут обрываться на диаграмме линией, не соприкасающейся ни с одним графическим символом. Как было сказано выше, пути могут иметь в качестве окончания специальные графические фигуры - значки, которые изображаются на одном из концов линий, являющихся сегментами этого пути.
  4. Текстовые строки. Они используются для представления различного рода информации в грамматическом виде. Каждое применение строк текста должно соответствовать синтаксису в нотациям языка UML, с помощью которого могут быть реализованы грамматические разборы этих строк. Разбор важен для получения полных данных о модели. К примеру, строки текста в различных областях классов могут соответствовать атрибутам этого класса или его операциям. На использование строк накладывается важное условие - семантика всех допустимых символов должна быть заранее определена в языке UML или служить предметом его расширения в конкретной модели.