- •Введение
- •1. Проблемы автоматизированного проектирования
- •1.1. Типовые задачи проектирования электронных средств
- •1.2. Роль формализации и творчества
- •1.2.1. Структура процесса проектирования
- •1.2.2. Анализ в проектировании
- •1.2.3. Параметрический синтез
- •1.2.4. Структурный синтез
- •1.2.5. Особенности применения типовых проектных процедур при проектировании эс
- •1.3. Искусственный интеллект в науке и технике
- •1.3.1. Базовые положения ии
- •1.3.2. Методики и подходы построения систем ии
- •1.3.3. Проблемы создания ии
- •1.3.4. Реализация систем ии
- •2. Новые методологии проектирования (Вендров)
- •2.1. Case- технологии
- •2.1.1. Общие сведения
- •2.1.2. Основы методологии проектирования ис
- •2.1.2.1. Жизненный цикл
- •2.2. Структурный подход к проектированию ис
- •2.2.1. Сущность структурного подхода
- •2.2.2.2. Типы связей между функциями
- •2.2.3.1. Основные понятия er-диаграмм
- •2.2.3.2. Основные этапы разработки erd
- •2.2.3.3. Пример erd-технологии
- •2.2.4.1. Общие положения
- •2.2.4.2. Миниспецификация.
- •2.2.4.4. Построение диаграмм.
- •2.2.5. Sadt-тенология
- •2.2.5.1. Введение
- •2.2.5.2. Sadt-диаграммы
- •2.2.6. Сравнение методологий
- •2.2.7. Дополнения к диаграммам и моделям
- •2.2.7.1. Дополнения к диаграммам
- •2.2.7.2. Определение терминологии с помощью глоссария
- •2.2.7.3. Пояснение содержания с помощью текста
- •2.2.7.3. Пояснение с помощью рисунков.
- •2.2.7.4. Дополнение моделей
- •Пример:
- •2.2.8. Стандарты idef
- •2.2.8.1. Общие положения
- •2.2.8.2. История возникновения стандарта idef0
- •2.2.8.3. Основные элементы и понятия idef0
- •2.2.8 4. Принципы ограничения сложности idef0-диаграмм
- •2.2.8.5. Применение технологии idef0 к решению задачи автотрассировки
- •2.3.2. Сущность метода
- •2.3.2.1. Объектно-ориентированный анализ
- •2.3.2.2. Объектно-ориентированное проектирование
- •2.3.2.3. Информационные модели
- •2.3.2.4. Модели состояний
- •2.3.2.5. Модели процессов
- •2.3.3. Рабочие продукты ооап
- •2.3.4. Язык uml
- •2.3.4.1. Введение
- •2.3.4.2. Структура языка uml
- •2.3.4.3. Средства uml-моделирования
- •2.3.4.4. Элементы языка
- •2.3.4.5. Пример
- •3. Интеллектуализация средств проектирования
- •3.1. Общие сведения о иис
- •3.1.1. Основа концепции иис
- •3.1.2. Классификация иис
- •3.2. Системы с интеллектуальным интерфейсом
- •3.2.1. Интеллектуальные информационно-поисковые системы
- •3.2.2. Гипертекстовые системы
- •3.2.3. Системы контекстной помощи
- •3.2.4. Системы когнитивной графики
- •3.3. Экспертные системы
- •3.3.1. Общие сведения
- •3.3.2. Назначение экспертных систем
- •3.3.3. Классификация эс
- •3.3.4. Архитектура экспертной системы
- •3.4. Самообучающиеся системы
- •3.4.1. Виды систем
- •3.4.2. Система с индуктивным выводом
- •3.4.2.3. Информационные хранилища (Data Warehouse).
- •3.5. Адаптивные системы
- •3.5.1. Общие сведения
- •3.5.2. Нейронные сети
- •Этапы решения задач:
- •Сбор данных для обучения
- •Выбор топологии сети
- •4. Экспериментальный подбор параметров обучения
- •5. Собственно обучение сети
- •6. Проверка адекватности обучения
- •3.5.3 Генетический алгоритм
- •3.5.4. Байесовская сеть
- •4. Интеллектуальные сапр
- •4.1. Новая информационная технология разработки программных средств
- •4.2. Применение иис для задач проектирования
- •4.3. Пример использования ии
- •4.3.1. Ускорение создания систем проектирования
- •4.3.2. Уровни знания системы спрут-Технология
- •4.3.3. Sprut ExPro: программирование для непрограммистов
- •4.3.3.1. Описание системы
- •4.3.3.2. Ввод экспертных знаний в систему
- •4.3.3.3. Базы экспертных знаний
- •Список использованных источников:
2.1.2. Основы методологии проектирования ис
2.1.2.1. Жизненный цикл
Одним из базовых понятий методологии проектирования ИС является понятие жизненного цикла ее программного обеспечения (ЖЦ ПО). ЖЦ ПО - это непрерывный процесс, который начинается с момента принятия решения о необходимости его создания и заканчивается в момент его полного изъятия из эксплуатации.
Основным нормативным документом, регламентирующим ЖЦ ПО, является международный стандарт ISO/IEC 12207 [5] (ISO - International Organization of Standardization - Международная организация по стандартизации, IEC - International Electrotechnical Commission - Международная комиссия по электротехнике). Он определяет структуру ЖЦ, содержащую процессы, действия и задачи, которые должны быть выполнены во время создания ПО.
Структура ЖЦ ПО по стандарту ISO/IEC 12207 базируется на трех группах процессов:
основные процессы ЖЦ ПО (приобретение, поставка, разработка, эксплуатация, сопровождение);
вспомогательные процессы, обеспечивающие выполнение основных процессов (документирование, управление конфигурацией, обеспечение качества, верификация, аттестация, оценка, аудит, решение проблем);
организационные процессы (управление проектами, создание инфраструктуры проекта, определение, оценка и улучшение самого ЖЦ, обучение).
Разработка включает в себя все работы по созданию ПО и его компонент в соответствии с заданными требованиями, включая оформление проектной и эксплуатационной документации, подготовку материалов, необходимых для проверки работоспособности и соответствующего качества программных продуктов, материалов, необходимых для организации обучения персонала и т.д. Разработка ПО включает в себя, как правило, анализ, проектирование и реализацию (программирование).
Эксплуатация включает в себя работы по внедрению компонентов ПО в эксплуатацию, в том числе конфигурирование базы данных и рабочих мест пользователей, обеспечение эксплуатационной документацией, проведение обучения персонала и т.д., и непосредственно эксплуатацию, в том числе локализацию проблем и устранение причин их возникновения, модификацию ПО в рамках установленного регламента, подготовку предложений по совершенствованию, развитию и модернизации системы.
Управление проектом связано с вопросами планирования и организации работ, создания коллективов разработчиков и контроля за сроками и качеством выполняемых работ. Техническое и организационное обеспечение проекта включает выбор методов и инструментальных средств для реализации проекта, определение методов описания промежуточных состояний разработки, разработку методов и средств испытаний ПО, обучение персонала и т.п. Обеспечение качества проекта связано с проблемами верификации, проверки и тестирования ПО. Верификация - это процесс определения того, отвечает ли текущее состояние разработки, достигнутое на данном этапе, требованиям этого этапа. Проверка позволяет оценить соответствие параметров разработки с исходными требованиями. Проверка частично совпадает с тестированием, которое связано с идентификацией различий между действительными и ожидаемыми результатами и оценкой соответствия характеристик ПО исходным требованиям. В процессе реализации проекта важное место занимают вопросы идентификации, описания и контроля конфигурации отдельных компонентов и всей системы в целом.
Управление конфигурацией является одним из вспомогательных процессов, поддерживающих основные процессы жизненного цикла ПО, прежде всего процессы разработки и сопровождения ПО. При создании проектов сложных ИС, состоящих из многих компонентов, каждый из которых может иметь разновидности или версии, возникает проблема учета их связей и функций, создания унифицированной структуры и обеспечения развития всей системы.
Управление конфигурацией позволяет организовать, систематически учитывать и контролировать внесение изменений в ПО на всех стадиях ЖЦ. Общие принципы и рекомендации конфигурационного учета, планирования и управления конфигурациями ПО отражены в проекте стандарта ISO 12207-2 [5].
Каждый процесс характеризуется определенными задачами и методами их решения, исходными данными, полученными на предыдущем этапе, и результатами. Результатами анализа, в частности, являются функциональные модели, информационные модели и соответствующие им диаграммы. ЖЦ ПО носит итерационный характер: результаты очередного этапа часто вызывают изменения в проектных решениях, выработанных на более ранних этапах.
Каскадный подход хорошо зарекомендовал себя при построении ИС, для которых в самом начале разработки можно достаточно точно и полно сформулировать все требования, с тем чтобы предоставить разработчикам свободу реализовать их как можно лучше с технической точки зрения. В эту категорию попадают сложные расчетные системы, системы реального времени и другие подобные задачи. Однако, в процессе использования этого подхода обнаружился ряд его недостатков, вызванных прежде всего тем, что реальный процесс создания ПО никогда полностью не укладывался в такую жесткую схему. В процессе создания ПО постоянно возникала потребность в возврате к предыдущим этапам и уточнении или пересмотре ранее принятых решений.
Основным недостатком каскадного подхода является существенное запаздывание с получением результатов. Согласование результатов с пользователями производится только в точках, планируемых после завершения каждого этапа работ, требования к ИС "заморожены" в виде технического задания на все время ее создания. Таким образом, пользователи могут внести свои замечания только после того, как работа над системой будет полностью завершена. В случае неточного изложения требований или их изменения в течение длительного периода создания ПО, пользователи получают систему, не удовлетворяющую их потребностям. Модели (как функциональные, так и информационные) автоматизируемого объекта могут устареть одновременно с их утверждением.
Для преодоления перечисленных проблем была предложена спиральная модель ЖЦ, делающая упор на начальные этапы ЖЦ: анализ и проектирование.
На этих этапах реализуемость технических решений проверяется путем создания прототипов. Каждый виток спирали соответствует созданию фрагмента или версии ПО, на нем уточняются цели и характеристики проекта, определяется его качество и планируются работы следующего витка спирали. Таким образом углубляются и последовательно конкретизируются детали проекта и в результате выбирается обоснованный вариант, который доводится до реализации.
Разработка итерациями отражает объективно существующий спиральный цикл создания системы. Неполное завершение работ на каждом этапе позволяет переходить на следующий этап, не дожидаясь полного завершения работы на текущем. При итеративном способе разработки недостающую работу можно будет выполнить на следующей итерации. Главная же задача - как можно быстрее показать пользователям системы работоспособный продукт, тем самым активизируя процесс уточнения и дополнения требований.
Основная проблема спирального цикла - определение момента перехода на следующий этап. Для ее решения необходимо ввести временные ограничения на каждый из этапов жизненного цикла. Переход осуществляется в соответствии с планом, даже если не вся запланированная работа закончена. План составляется на основе статистических данных, полученных в предыдущих проектах, и личного опыта разработчиков.
