Основные компоненты

 

После многх попыток создания унифицированных языков для решения задач моделирования был разработан и опробован объектно-ориентированный подход. Первый язык Simula-67, основанный на данном подходе, был создан в 1967 г, а в 1983 г. появился и язык С++.

Объектно-ориентированный подход позволяет:

- описывать структуру объекта;

- описывать действия с объектами;

- использовать специальные правила наследования объектов;

- передавать сообщения между объектами.

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

Объектно-ориентированный подход в моделировании называют объектно-ориентированным моделированием. Свое развитие он получил при переходе к компьютерному моделированию. В отличие от объектно-ориентированного программирования программные классы с их набором методов заменяются «классами-устройствами» с набором поведений, свойственных данному объекту. Если базовые классы заданы, то моделирование на вычислительной машине ничем не отличается от объектно-ориентированного моделирования. Ситуация изменяется, если разрабатывается модель системы впервые, а структура и поведение системы подлежат анализу. Объектно-ориентированный подход предлагает строгую последовательность операций, знакомую разработчикам программных приложений.

Язык Unified Modeling Language (UML) является унифицированным языком моделирования, в котором воплощены принципы объектно-ориентированного подхода. Рассмотрим назначение и основные компоненты UML [4, 21, 22].

UML относится к языкам визуального моделирования и реализует объектно-ориентированный подход к разработке сложных систем следующими средствами:

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

- класс ‑ это группа сущностей (объектов), обладающих сходными свойствами, а именно, данными и поведением, причем, отдельного представителя некоторого класса называют объектом класса или просто объектом;

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

- под поведением объекта в UML понимаются любые правила взаимодействия объекта с внешним миром и с данными самого объекта;

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

- наследование ‑ это отношение, определяющее уровень иерархии конкретного класса в графе классов, и показывающее, что потомки конкретного класса являются разновидностью класса-родителя, причем, механизм наследования реализуется с помощью копирования всех атрибутов предка (наследования) и их частичного переопределения, как данных, так и поведения (методы);

- для удобства иерархического представления больших систем классы можно объединять в группы (пакеты) или использовать модульный подход при проектировании;

- полиморфизм связан с переопределением поведения объектов, для описания полиморфизма вводятся понятия операции и метода.

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

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