на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Основы объектно-ориентированного проектирования

Основы объектно-ориентированного проектирования

21

Введение

Тема реферата по дисциплине «Проектирование интеллектуальных систем» «Основы объектно-ориентированного проектирования».

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

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

По А.Н. Колмогорову, любая материальная система, с которой можно достаточно долго обсуждать проблемы науки, литературы и искусства, обладает интеллектом. Такое определение показывает, что данная дисциплина находится во взаимосвязи практически со всеми учебными дисциплинами. Тем не менее, следует подчеркнуть связи со следующими дисциплинами: «Программирование», «Математический анализ», «Линейная алгебра и аналитическая геометрия», «Дискретная математика», «Логическое программирование», «Экспертные системы», «Интерфейсы интеллектуальных систем».

1. Понятие о классах и объектах

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

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

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

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

Класс - это абстракция множества предметов реального мира, которые соответствуют следующим требованиям:

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

все объекты подчинены и согласовываются с одним и тем же набором правил и линий поведения;

между объектами одного класса нет связей.

Каждый класс должен иметь уникальное и значимое имя.

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

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

2. Унифицированный язык моделирования

История развития унифицированного языка моделирования - Unified Modeling Language (UML), - берет начало с октября 1994 года, когда Гради Буч и Джеймс Румбах из Rational Software Corporation начали работу по унификации методов Booch и Object Modeling Technique (ОМТ). Хотя сами по себе эти методы были достаточно популярны, совместная работа была направлена на изучение всех известных объектно-ориентированных методов с целью объединения их достоинств. При этом Г. Буч и Дж. Румбах сосредоточили усилия на полной унификации результатов своей работы.

Компания Rational Software вместе с несколькими организациями, изъявившими желание выделить ресурсы для разработки строгого определения версии 1.0 языка UML, учредила консорциум партнеров UML, в который первоначально вошли такие компании, как Digital Equipment Corp., HP, i-Logix, Intellicorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Rational Software, TI и Unisys. Эти компании обеспечили поддержку последующей работы по более точному и строгому определению нотации, что привело к появлению версии 1.0 языка UML. В январе 1997 года был опубликован документ с описанием языка UML 1.0.

Очередной этап развития данного языка закончился в марте 1999 года, когда консорциумом OMG было опубликовано описание языка UML 1.3 (alpha R5). Статус языка UML определен как открытый для всех предложений по его доработке и совершенствованию. Сам язык UML не является чьей-либо собственностью и не запатентован кем-либо, хотя указанный выше документ защищен законом об авторском праве. В то же время аббревиатура UML, как и некоторые другие (OMG, CORBA, ORB), является торговой маркой их законных владельцев, о чем следует упомянуть в данном контексте.

Следует отметить внимание гиганта компьютерной индустрии компании Microsoft к технологии UML. Еще в октябре 1996 г. Microsoft и Rational Software Corporation объявили о своем стратегическом партнерстве, которое, по их общему мнению, способно оказать решающее влияние на рынок средств объектно-ориентированной разработки программ. При этом Microsoft лицензировала у Rational Software некоторые технологии визуального моделирования, в результате чего был разработан Microsoft Visual Modeler for Visual Basic. В свою очередь Rational Software лицензировала у Microsoft Visual Basic и Microsoft Repository, разрабатываемые вместе с Texas Instruments. При создании языка UML Microsoft внесла свой вклад в интеграцию UML со своими стандартами типа ActiveX и СОМ и в использование языка UML со своей технологией Microsoft Repository.

В настоящее время Rational Software Corporation объединила свои усилия по совершенствованию технологии UML с компанией IBM.

3. Представление класса

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

Рисунок 3 - Графическое изображение класса на диаграмме классов

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

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

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

Рисунок 4 - Примеры графического изображения классов на диаграмме

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

Атрибуты

Во второй сверху секции прямоугольника класса записываются его атрибуты (attributes) или свойства. В языке UML принята определенная стандартизация записи атрибутов класса, которая подчиняется некоторым синтаксическим правилам. Каждому атрибуту класса соответствует отдельная строка текста, структура которой показана на рисунке 5:

Рисунок 5 - Структура задания атрибута

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

«+» обозначает атрибут с областью видимости типа общедоступный (public). Атрибут с этой областью видимости доступен или виден из любого другого класса пакета, в котором определена диаграмма;

«#» обозначает атрибут с областью видимости типа защищенный (protected). Атрибут с этой областью видимости недоступен или невиден для всех классов, за исключением подклассов данного класса;

«-» обозначает атрибут с областью видимости типа закрытый (private). Атрибут с этой областью видимости недоступен или невиден для всех классов без исключения.

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

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

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

[нижняя_граница1. верхняя_граница1, нижняя_граница2. верхняя_грашца2,…, нuжняя_гpaнuцa k. верхняя_граница k],

где нижняя_граница и верхняя_граница являются положительными целыми числами, каждая пара которых служит для обозначения отдельного замкнутого интервала целых чисел, у которого нижняя (верхняя) граница равна значению нижняя_граница (верхняя_граница). В качестве верхней_границы может использоваться специальный символ «*», который означает произвольное положительное целое число.

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

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

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

Операция

В третьей сверху секции прямоугольника записываются операции или методы класса. Операция (operation) представляет собой некоторый сервис, предоставляющий каждый экземпляр класса по определенному требованию. Совокупность операций характеризует функциональный аспект поведения класса. Запись операций класса в языке UML также стандартизована и подчиняется определенным синтаксическим правилам. При этом каждой операции класса соответствует отдельная строка, структура которой приведена на рисунке 6:

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.