Введение
Заключение
Использованы источники
Введение
Тема курсовой работы «Основные этапы объектно-ориентированного проектирования».
В современном мире прогресс производительности программиста достигается в тех случаях, когда часть интеллектуальной нагрузки берут на себя компьютеры. Одним из способов достигнуть максимального прогресса в этой области, является "искусственный интеллект", когда компьютер берет на себя не только однотипные, многократно повторяющиеся операции, но и сам сможет обучаться.
Целью работы изучение решения вопросов в области автоматизации сложноформализуемых задач. Задачей работы является приобретение знаний о фундаментальных алгоритмах, применяемых при построении систем искусственного интеллекта, а также методов разработки программных приложений, реализующих эти системы.
Принципиальное отличие интеллектуальных систем от любых других систем автоматизации заключается в наличии базы знаний о предметной среде, в которой решается задача. Неинтеллектуальная система при отсутствии каких-либо входных данных прекращает решение задачи, интеллектуальная же система недостающие данные извлекает из базы знаний и решение выполняет.
По А.Н. Колмогорову, любая материальная система, с которой можно достаточно долго обсуждать проблемы науки, литературы и искусства, обладает интеллектом. Такое определение показывает, что данная дисциплина находится во взаимосвязи практически со всеми учебными дисциплинами. Тем не менее, следует подчеркнуть связи со следующими дисциплинами: «Программирование», «Математический анализ», «Линейная алгебра и аналитическая геометрия», «Дискретная математика», «Логическое программирование», «Экспертные системы», «Интерфейсы интеллектуальных систем».
Работа посвящена вопросам объектно-ориентированного проектирования интеллектуальных систем. В качестве основного инструмента используется унифицированный язык моделирования UML.
Процесс объектно-ориентированного анализа и проектирования не сводится к сумме рецептов, однако он определен достаточно хорошо, чтобы быть предсказуемым и воспроизводимым в умелых руках.
Объектно-ориентированный анализ и проектирование - метод, использующий объектную декомпозицию; объектно-ориентированный подход имеет свою систему условных обозначений и предлагает богатый набор логических и физических моделей, с помощью которых можно получить представление о различных аспектах рассматриваемой системы.
Удачным проектом называется тот, который удовлетворил ожидания заказчика, уложился во временные и финансовые рамки, легко поддается изменению и адаптации. Пользуясь этим критерием, рассматриваются следующие две черты, которые оказались общими для всех известных удачных проектов:
- ясное представление об архитектуре создаваемой системы;
- хорошо организованный итеративно развивающийся процесс работы над проектом.
Можно выделить ряд этапов, которые присутствуют в процессе протирования и перечень которых дан в таблице 1.
Таблица 1 -Основные этапы процесса проектирования
Этап | Результаты этапы |
Пред проектное обследование, разработка технического задания | Отчеты, техническая документация, техническое задание, результаты обследования, прототипы системы |
Разбиение большой системы на домены (пакеты) | - диаграмма доменов (пакетов);- описание доменов (пакетов);- описание связей (мостов) между доменами (пакетами); |
Разбиение большого домена (пакета) на поддомены | - диаграмма поддоменов;- описание поддоменов; |
Разработка домена | - статическая модель домена - диаграмма классов;- модели состояний (диаграммы активности, диаграммы состояний, диаграммы взаимодействия, диаграммы последовательностей);- описания моделей; |
При создании приложения разработчик, как правило, должен рассматривать ряд насыщенных предметных областей: собственно приложение, интерфейс с внешними аппаратными средствами, интерфейс пользователя, управление данными, утилиты, операционную систему, языки программирования и среду разработки. Поэтому необходима стратегия для работы с этими предметными областями. Рассматриваемая стратегия опирается на понятие домена или пакета (package).
Домен (package)– это отдельный реальный, гипотетический или абстрактный мир, населенный отчетливым набором классов, которые ведут себя в соответствии с характерными для домена правилами и линиями поведения. Например, домен «Пользовательский интерфейс», домен «Управление лабораторией». Аналогами домена (пакета) в языках программирования могут быть: язык C# - пространство имен (namespace); язык Delphi – модуль (unit), задаваемый в предложении uses; язык C++ - файл, подключаемый с помощью #include.
При определении классов и доменов должны соблюдаться следующие правила:
- любой класс определяется только в одном домене;
- количество классов в домене должно быть не менее одного.
В соответствии с той ролью, которую каждый домен играет в законченной системе, домены подразделяются на:
- прикладные;
- сервисные;
- архитектурные;
- реализации.
Прикладной домен – это предметная область с точки зрения конечного пользователя. Она обычно рассматривается в контексте анализа требований: что надо делать пользователю данного приложения. Для каждого проекта существует один прикладной домен.
Сервисный домен обеспечивает общие механизмы и сервисные функции, необходимые для поддержки прикладного домена. В таблице2приведены типичные сервисные домены.
Таблица 2 - Типичные сервисные домены
Домен | Описание |
Процесс ввода - вывода | Обеспечивает организацию сигналов, составляющих интерфейс с оборудованием (считывает данные, управляет силовыми приводами и т.п.) |
Сигналы | Получает сообщения о вызывающих беспокойство условиях и аномалиях. Представляет эти сообщения оператору для принятия соответствующих мер. |
Пользовательский интерфейс | Формирует и обновляет изображение на экране. Взаимодействует с оператором. |
Гистограммирование | Отображает данные, подготавливает отчеты. |
Регистрация тенденций | Записывает последовательные значения выбранных атрибутов в течение определенного периода времени, отображает в виде графиков тенденции в изменении значений. |
История | Запись и сохранение всех инцидентов с указанием времени на протяжении всего выполнения производственного процесса. |
Архивирование данных | Создает с указанием времени долговечный снимок определенных наборов данных. |
Архитектурный домен обеспечивает общие механизмы и структуры для управления данными и управления приложением как единым целым. Классы в архитектурном домене представляют абстрактные структуры данных и модули кода. Архитектурный домен служит ряду целей:
- обеспечение однородности структуры программного обеспечения. Это достигается путем:
1) организации и доступности данных;
2) регулирования каналов управления;
3) структуры прикладного и сервисного кода;
4) взаимодействия между различными модулями кода.
В любом случае цель заключается в том, чтобы ограничить сложность системы использованием стандартных структур и способов выполнения многократно используемых функций;
- управление инициализацией и закрытием системы, переход к резервной при отказах;
- обеспечение мобильности – в архитектурный домен должны выноситься все процедуры и функции, зависящие от конкретной платформы. В случае переноса приложения на другую платформу переделке будет подвергаться только архитектурный домен;
- выполнение измерений в работающей системе – реализуется путем добавления специальных контрольных точек.
Домены реализации включают в себя языки программирования, операционные системы и общие библиотеки объектов. Обеспечивает концептуальные сущности, в которых будет реализована вся система.
Пакет (package) — основной способ организации элементов модели в языке UML. Каждый пакет владеет всеми своими элементами, т. е. теми элементами, которые включены в него.
Для графического изображения пакетов на диаграммах применяется специальный графический символ — большой прямоугольник с небольшим прямоугольником, присоединенным к левой части верхней стороны первого. Внутри большого прямоугольника может записываться информация, относящаяся к данному пакету. Если такой информации нет, то внутри большого прямоугольника записывается имя пакета, которое должно быть уникальным в пределах рассматриваемой модели (рисунок1, а). Если же такая информация имеется, то имя пакета записывается в верхнем маленьком прямоугольнике (рисунок1, б).