Контрольная работа: Концептуальная модель предметной области

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Саратовский государственный технический университет

Имени Гагарина Ю.А.»

Институт машиностроения, материаловедения и транспорта

Кафедра «Технология и системы управления в машиностроении»

Контрольная работа

По дисциплине

«Интеллектуальные технологии в машиностроении»

Саратов 2022

Заданиена контрольную работу по дисциплине

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Саратовский государственный технический университет имени Гагарина Ю.А.»

Институт машиностроения, материаловедения и транспорта

Кафедра «Технология и системы управления в машиностроении»

«Утверждаю»:

Зав. кафедрой ТСУ

Захарченко М.Ю._______

«___» ____________2022 г.

«Интеллектуальные технологии в машиностроении» студента ИММТ группы б-АТППипу41.

Выполнить работу:

Концептуальные модели описания предметных областей

Дата выдачи задания: 28.09.2021 г.

Срок выполнения: 17.06.2022г.

Преподаватель:

Студент:

Текстовая часть выполнена в редакторе MicrosoftWord 2010

Саратов 2022

Содержание

Введение

1. Концептуальная модель предметной области

Введение

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

1. Концептуальная модель предметной области

Такой тип использования моделей - один из самых важных, например, потому что так используются модели, которые получаются в результате анализа предметной области. Концептуальные модели довольно стабильны: если не меняется предметная область, то нет нужды менять и модель. Главное требования к модели предметной области - это концептуальная целостность (consistency).

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

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

2. Если в проекте нет глоссария, то участникам проекта придется изучать значения терминов путем постепенного их осознания. Это не очень надежный и последовательный способ изучения языка, характерного для среды работы заказчика. Глоссарий представляет собой общий репозитарий правильных определений используемых терминов.

Центральное место в объектно ориентированном подходе к проектированию ПС занимает разработка логической модели системы в виде диаграммы классов. Диаграмма классов определяет типы объектов системы и различного рода статические связи, которые существуют между ними. Класс в языке UML служит для обозначения множества объектов, которые имеют одинаковую структуру, поведение и отношения с объектами из других классов. На диаграмме класс изображается в виде прямоугольника, который дополнительно может быть разделен горизонтальными линиями на две или три секции (рис. 1). В этих разделах могут указываться имя класса, атрибуты (переменные) и операции (методы). Иногда добавляется четвертая секция, которая содержит описание исключительных ситуаций. Чтобы отличить класс от других элементов языка иМЬ, секции атрибутов и операций выделяют горизонтальными линиями, даже если они пустые (см. рис. 1).

Рис. 1 Варианты изображения классов

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

Во второй секции прямоугольника записываются атрибуты класса или свойства. Стандартная запись атрибута в языке UML выглядит следующим образом: < квантор видимости > < имя атрибута > [кратность]:

< тип атрибута > = < исходное значение > {строка свойств}.

Квантор видимости может быть опущен - это означает, что видимость атрибута не указывается либо же должна принимать одно из трех возможных значений:

* общедоступный (public) - обозначается «+»;

* защищенный (protected) - обозначается «#»;

* закрытый (private) - обозначается «-».

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

Кратность атрибута показывает количество конкретных атрибутов данного типа, входящих в состав класса, и обозначается следующим образом:

[нижняя_граница1 ... верхняя_граница1, нижняя_граница2 ... верх-няя_граница2, ... нижняя_ границак ... верхняя границак], где нижняя_граница и верхняя_граница являются положительными целыми числами, каждая пара которых служит для обозначения отдельного замкнутого интервала целых чисел. В качестве верхней границы может использоваться специальный символ «*», который означает произвольное положительное целое число, т.е. не ограниченное сверху значение кратности соответствующего атрибута. Если указывается единственный знак «*», то это означает, что кратность атрибута может быть произвольным положительным целым числом или нулем. Если кратность атрибута не указана, то по умолчанию она равна нулю.

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

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

В третьей секции класса прямоугольника, обозначающего некоторый класс, указывается операция (или операции) класса. Часто понятия «операция» и «метод класса» отождествляют. Однако эти понятия в UML различаются. Операция - это сервис, который может быть запрошен у любого объекта класса для реализации поведения, а метод -реализация операции [6]. Каждой неабстрактной операции класса должен быть сопоставлен метод, который содержит исполняемый алгоритм в виде тела класса.

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

< квантор видимости > < имя операции > (список параметров):

< выражение типа возвращаемого значения >{строка свойств}.

Квантор видимости принимает такие же значения, как и в случае атрибутов класса, и может быть опущен. Вместо условных графических обозначений можно записывать соответствующее ключевое слово (public, protected, private).

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

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

< направление > < имя параметра > : < выражение типа> --

< значение параметра по умолчанию > .

Направление может принимать одно из следующих значений:

* in - входной параметр, который не может быть модифицирован;

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

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

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

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

Строка свойств служит для определения значений свойств операции. Она может отсутствовать, если никакие свойства не специфицированы. Операция, которая не может изменять наблюдаемое состояние класса, обозначается строкой-свойством {запрос} (query). Наблюдаемым состоянием объекта является состояние, которое можно определить посредством связанных с ним запросов. Ряд свойств операции предназначен для поддержки семантики параллелизма операций. К ним относятся sequential (последовательная), guarded (защищенная) и concurrent (параллельная). Эти свойства существенны только в присутствии активных объектов, процессов или потоков. Если какая-либо операция в некотором классе не выполняется, она может быть помечена как абстрактная {abstract}. Классы - наиболее важные строительные блоки любой объектно ориентированной системы. Однако они представляют лишь одну разновидность более общих строительных блоков UML - классификаторов. Классификатор - это механизм, описывающий структурные и поведенческие свойства. UML предоставляет множество других немаловажных для моделирования классификаторов [6]:

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

* тип данных - тип, значение которого неизменно (примеры: примитивные встроенные типы (числа, строки и др.), типы перечислений И др.);

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

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

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

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

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

* подсистема - компонент, представляющий одну из главных частей системы.

Графически UML представляет эти виды классификаторов так, как показано на рис. 2

класс

Shape

Origin

интерфейс

тип данных

сигнал

«interface»

Tasteful

«type»

Int

«signal»

OffHook

set (v: Object) get (): Object

{values range from} -2**31-to 2**31

Вариант использования

Move () Resize () Display ()

Компонент

Call Handing

Узел

Рис. 2. Классификаторы иМЬ

подсистема

«subsystem»

Customer Service

Язык иМЬ предлагает использовать три уровня диаграмм классов в зависимости от степени их детализации.

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

2. Уровень спецификаций, на котором диаграммы классов отображают связи объектов этих классов, но рассматриваются только интерфейсы, а не программная реализация классов (под интерфейсом здесь понимается набор операций класса, видимых извне).

3. Уровень реализации, на котором диаграммы классов непосредственно показывают поля и операции конкретных классов.

Каждую из перечисленных моделей используют на конкретном этапе разработки программных систем: