Файл: Методы и средства проектирования информационных систем и технологий (Основные понятия проектирования).pdf

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

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

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

Добавлен: 24.04.2023

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

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

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

2.2 Языки объектно-ориентированного моделирования и программирования

В процессе проектирования что-то делается и в результате нечто получается. Если эта деятельность и форма результата регламентированы определенным образом, то им соответственно дают название. Результат проектирования и анализа, оформленный средствами определенного языка принято называть моделью. Деятельность по составлению моделей – моделированием. Развитие каскадной и спиральной моделей жизненного цикла привело к их сближению и появлению современного итерационного подхода, который, по существу, представляет собой рациональное сочетание этих моделей.

Два самых популярных стандартных языка объектно-ориентированного моделирования – UML (The Unified Modeling Language) и SysML(The Systems Modeling Language). Существуют множество объектно-ориентированных языков программирования, такие как упомянутые ранее С++, C#. Java, на котором написаны практически все приложения под Андроид. Swift, который усердно продвигает корпорация Apple.

В рамках спиральной модели была разработана методология RAD (Rapid

Application Development, 1980 – разработка подхода, James Martin в IBM, 1991 –

публикация), использующая инструментальные средства быстрой разработки

программного обеспечения [[18]]. Методология RAD основана на использовании средств быстрой разработки приложений. При проектировании использует объектно-ориентированные методы описания предметной области.

Различные варианты итерационного подхода реализованы в большинстве современных методов [[19]]: Rational Unified Process (RUP), Microsoft Solutions Framework (MSF), XR и другие.

RUP (Rational Unified Process, компания Rational Software – подразделение IBM, 2003) – использует итеративную модель разработки, включающую четыре фазы (начало, исследование, построение, внедрение), разбитых на итерации, каждая из которых завершается получением промежуточной, но функциональной версии конечного продукта. RUP опирается на интегрированный комплекс инструментальных средств Rational Suite, в состав которого, кроме самой технологии RUP как продукта, входят такие компоненты, как:

  • Rational Rose – средство визуального моделирования (анализа и проектирования), использующее язык UML;
  • Rational XDE – средство анализа и проектирования, интегрируемое с платформами MS Visual Studio .NET и IBM WebSphere Studio Application Developer;

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

Унифицированный язык моделирования (UML) в настоящий момент является стандартом при проектировании и разработки объектно-ориентированных систем [[20]]. Модель UML — это, прежде всего, основной артефакт фазы проектирования.

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

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

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

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

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


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

UML – это язык документирования. Компания, выпускающая программные средства, помимо исполняемого кода производит и другие артефакты, такие как: требования к системе, архитектуру, проект, исходный код, проектные планы, тесты, прототипы, версии.

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

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

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


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

SysML — язык моделирования систем [[21]]. Поддерживает определение, анализ, проектирование, проверку и подтверждение соответствия широкого спектра систем. SysML фокусируется на предоставлении инженерам семантики языка моделирования, упрощающей операции проектирования.

Как язык, SysML является расширением части языка UML. Обычно расширение UML выполняется путем введения дополнительных стереотипов с определенной семантикой, что обеспечивает представление артефактов той предметной области, для которой требуется такое расширение. Однако для моделирования архитектуры этого оказалось недостаточно. Понадобилось добавить ряд новых графических элементов и диаграмм, которые позволяют описывать нюансы каждого элемента модели и взаимосвязей между элементами, а также строго задавать границы модели. Кроме того, в рамках поставленной задачи UML характеризуется некоторой избыточностью, поэтому не все его элементы вошли в новый экземпляр. Изменения были сформулированы в виде профиля UML 2.0 и названы SysML.

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

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

При разработке модели на языке SysML важно отслеживать ее соответствие требованиям к разрабатываемому продукту и обеспечивать их трассировку. Эта задача осложняется тем, что на протяжении жизненного цикла проекта для описания требований используют разнообразные форматы, инструменты разной сложности и функциональности (Excel, Adobe FrameMaker и другие). Небольшое число требований поддается управлению вручную, но, когда они превысили сотню, то нужны специальные инструменты. При выборе инструмента управления следует определить, позволяет ли он организовывать сложные наборы требований из нескольких источников и создавать предназначенные для наглядного анализа отчеты о влиянии требований на модель. С другой стороны, вопрос трассировки требований относится не столько к языку SysML, сколько к поддерживающим его инструментам.


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

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

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

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

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

SysML как и UML, — это язык моделирования, а не методология. Порядок применения SysML на практике определяет процесс, например MSF (Microsoft Solutions Framework) или XP (Extreme Programming).

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

Разработка на методологии XP (Экстремальное программирование) представляет собой итеративный процесс, где фазы разбиваются на «экстремально» малые шаги. В основе методологии – командная работа и эффективная коммуникация между заказчиком и исполнителем.