Смекни!
smekni.com

Основы объектно-ориентированного проектирования (стр. 1 из 3)

Введение

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Компания RationalSoftware вместе с несколькими организациями, изъявившими желание выделить ресурсы для разработки строгого определения версии 1.0 языка UML, учредила консорциум партнеров UML, в который первоначально вошли такие компании, как DigitalEquipmentCorp., HP, i-Logix, Intellicorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, RationalSoftware, 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 и RationalSoftwareCorporation объявили о своем стратегическом партнерстве, которое, по их общему мнению, способно оказать решающее влияние на рынок средств объектно-ориентированной разработки программ. При этом Microsoft лицензировала у RationalSoftware некоторые технологии визуального моделирования, в результате чего был разработан MicrosoftVisualModelerforVisualBasic. В свою очередь RationalSoftware лицензировала у MicrosoftVisualBasic и MicrosoftRepository, разрабатываемые вместе с TexasInstruments. При создании языка UML Microsoft внесла свой вклад в интеграцию UML со своими стандартами типа ActiveX и СОМ и в использование языка UML со своей технологией MicrosoftRepository.

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

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

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

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

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

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

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

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

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

Атрибуты

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