Разработка экспертной системы диагностики неполадок

Разработка экспертной системы диагностики неполадок.

Статьи по теме
Искать по теме

Экспертная система (ЭС) – это вычислительная система, в которую включают специальные знания из какой- либо предметной области для решения в свою очередь определенных задач. ЭС решает задачи в соответствии со своим алгоритмом. Эта система не исключает использования знаний пользователя, а лишь помогает человеку в определенной области: подсказывает ему необходимое решение задачи, способствует в более легкой форме сделать умозаключение, объясняет свои действия.

Понятие экспертной системы

Интеллектуальная система (ИС) обладает знаниями и используется для достижения поставленной цели.

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

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

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

Эксперт – это человек, который благодаря обучению и опыту может делать то, что мы все, остальные люди делать не умеем; эксперты работают не просто профессионально, но быстро и эффективно. Они хорошо умеют распознавать в проблемах, с которыми сталкиваются, примеры тех типовых проблем, с которыми они уже знакомы. Очень важно подчеркнуть, что эксперт должен не только знать, но и уметь.

Основным предметом исследований являются знания – их приобретение, представление и использование. Специалисты, которые занимаются этим используют термин "инженерия знаний", т.е. с разработка экспертных систем и баз знаний, изучают методы и средства извлечения, представления, структурирования и использования знаний.

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

Характерными чертами экспертной системы являются

- Четкая ограниченность предметной области.

- Способность принимать решения в условиях неопределенности.

- Способность объяснять ход и результат решения понятным для пользователя способом.

- Четкое разделение декларативных и процедурных знаний (фактов и механизмов вывода).

- Способность пополнять базу знаний, возможность наращивания системы.

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

- Ориентация на решение неформализованных (способ формализации пока неизвестен) задач.

ЭС относится к таким видам систем искусственного интеллекта, которые широко распространены, и нашли практическое применение.

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

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

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

Особенности экспертных систем

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

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

Экспертная система может накапливать знания, выдавать рекомендации и объяснять полученные результаты, возможность изменять правила.

Для того, чтобы экспертная система работала эффективно она обладает характеристиками:

- Может находить правильное решение сложных задач за определенный промежуток времени.

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

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

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

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

Приведенные характеристики в экспертной системе обеспечивают интерактивный интерфейс с пользователем и предназначен для обоснования своих заключений.

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

Преимущества использования экспертных систем

При использовании ЭС возникает вопрос: "Зачем разрабатывать экспертные системы. И не лучше ли обратиться к человеческому опыту, как это было в прошлом". Отметим лишь основные преимущества, которые даёт использование ЭС.

Преимуществами использования ЭС являются

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

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

- Устойчивость и воспроизводимость результатов, т.е. эксперт-человек может принимать в разные ситуациях разные решения из-за эмоциональных факторов. Результаты ЭС – стабильны.

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

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

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

Функции, выполняемые экспертной системой

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

Часто к экспертным системам предъявляют дополнительное требование – способность иметь дело с неопределенностью и неполнотой. Информация о поставленной задаче может быть неполной или ненадежной; отношения между объектами предметной области могут быть приближенными. Например, может не быть полной уверенности в наличии у пациента некоторого симптома или в том, что данные, полученные при измерении, верны; лекарство может стать причиной осложнения, хотя обычно этого не происходит. Во всех этих случаях необходимы рассуждения с использованием вероятностного подхода.

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

решение задач с использованием знаний о конкретной предметной области – возможно, при этом возникнет необходимость иметь дело с неопределенностью;

взаимодействие с пользователем, включая объяснение намерений и решений системы во время и после окончания процесса решения задачи.

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

Структура и режимы использования ЭС

Типичная ЭС состоит из следующих основных компонентов: решателя (интерпретатора), рабочей памяти (РП), называемой также базой данных (БД), базы знаний (БЗ), компонентов приобретения знаний, объяснительного и диалогового компонентов показано на рис. 1

Разработка экспертной системы диагностики неполадок

Рис. 1. Типовая структура экспертной системы

База данных предназначена для хранения исходных и промежуточных данных решаемой в текущий момент задачи. Этот термин совпадает по названию, но не по смыслу с термином, применяемым в информационно-поисковых системах (ИПС) и системах управления базами данных (СУБД) для обозначения всех данных (и в первую очередь – не текущих, а долгосрочных), хранимых в системе.

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

Решатель, используя исходные данные из РП и знания из БЗ, формирует такую последовательность правил, которые, будучи примененными к исходным данным, приводят к решению задачи.

Объяснительный компонент объясняет, как система получила решение задачи (или почему она не получила решения) и какие знания она при этом использовала, – это облегчает эксперту тестирование системы и повышает доверие пользователя к полученному результату.

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

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

IF человек не имеет постоянного дохода

THEN кредит не выдавать

В данном примере шаблоном есть фраза "человек не имеет постоянной работы". В случае, когда факт соответствует шаблону – рекомендуется выполнить действие "кредит не выдавать".

Применяя подход к представлению знаний экспертов в виде правил, было разработано несколько успешных экспертных систем. К ним можно отнести систему XCON/R1, созданную в компании Digital Equipment Corporation (DEC), которая способна проецировать конфигурации компьютерных систем, не уступая отдельным экспертам-людям.

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

Режимы работы экспертных систем

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

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

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

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

Отличия экспертных систем от других видов программ искусственного интеллекта

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

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

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

Зачастую термин система, основанная на знаниях (knowledge-based system), используется в качестве синонима термина экспертная система, т.е. экспертная система – это более широкое понятие. Система, основанная на знаниях, – это любая система, процесс работы которой основан на применении правил отношений к символическому представлению знаний, а не на использовании алгоритмических или статистических методов. Таким образом, программа, способная рассуждать о погоде, будет системой, основанной на знаниях, даже в том случае, если она не способна выполнить метеорологическую экспертизу. А вот чтобы иметь право называться метеорологической экспертной системой, программа должна быть способна давать прогноз погоды (другой вопрос – насколько он будет достоверен).

Суммируя все сказанное, отметим – экспертная система содержит знания в определенной предметной области, накопленные в результате практической деятельности человека (или человечества), и использует их для решения проблем, специфичных для этой области. Этим экспертные системы отличаются от прочих, "традиционных" систем, в которых предпочтение отдается более общим и менее связанным с предметной областью теоретическим методам, чаще всего математическим. Процесс создания экспертной системы часто называют инженерией знаний (knowledge engineering) и он рассматривается в качестве "применения методов искусственного интеллекта".

Отличие экспертных систем от традиционных программ

Экспертные системы отличаются следующими особенностями от обычных программ:

1. Компетентностью т.е.

- достигает экспертного уровня решений (в предметной области имеет профессионализм высокий такой же как и человек эксперт ).

- быть умелой (применяет знания бысто избегая ненужных вычислений).

2. Способность к символьному рассуждению т.е.

- представлять в символьном виде знания

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

3. Глубиной т.е.

- работает с предметными областями, которые содержит трудные задачи;

- использует сложные правила( использует сложные конструкции правил, или количество большое их )

4. Самосознанием т.е.

- проверяет свои рассуждения на правильность;

- объясняет действия свои

Различие традиционных программ от ЭС. В процессе работы традиционные программы работают так, чтобы каждый раз находить правильный результат, когда как ЭС в процессе работы ведут себя как эксперты. Они, выдают правильные ответы, но иногда, как и люди, способны ошибаться.

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

Виды экспертных систем

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

Краткий обзор существующих ЭС

- Домашний доктор – это экспертная система для медицины. С ее помощью можно определить характер заболевания: ответы пользователя на вопросы в процессе диалога. База знаний содержит около 100 различных заболеваний. База данных для экспертной системы была взята из книги: К.Нейлор "Как построить свою экспертную систему".

- Малая экспертная система 2.0 – это простая экспертная система. Ее используют при проведении различных консультаций с пользователями в какой-нибудь прикладной области (зависит от базы знаний на которую настроена экспертная система) с целью определения вероятностей возможных исходов и использует для этого оценку правдоподобности некоторых предпосылок, получаемую от пользователя. В ЭС можно создавать новую или редактировать базу знаний для этих целей там используется собственный редактор.

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

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

- Определить причины вашего плохого самочувствия;

- Узнать, к каким врачам вам нужно обращаться;

- Узнать, чем могут быть опасны заболевания, о которых говорят ваши симптомы.

Как работает экспертная система

Экспертная система с помощью опроса (анкетирования) пользователя автоматически выдает результат о тех или иных неполадках в компьютерной технике.

Экспертная система быстро позволяет определить перечень неисправностей, в результате чего будет сразу, заметно, на что следует обратить внимание при ремонте компьютера.

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

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

Применение экспертной системы

Клиент сможет с помощью экспертной системы выяснить вероятную неполадку и оценить стоимость и срок ремонта компьютерной техники. Это так же позволит оформить заявку на сайте.

В этом случаи мастеру отправится уведомление о клиенте с его проблемами.

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

Использование экспертной системы позволит

- сократить время мастера и клиента;

- квитанцию можно распечатать на сайте;

- экономия персонала;

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

2. Разработка экспертной системы

Проектирование базы данных выполнялось в среде Microsoft Visio 2013. ( Представлено на рисунке 5.)

Разработка экспертной системы диагностики неполадок

Рис. 5. UML-схема базы данных

Описание базы данных представлено ниже.

Таблица 1

Таблица Session

Название

Тип данных

Описание

id

integer

Первый ключ

SessionId

string

Идентификатор пользователя

Answer

integer

Вариант ответа

ItemId

integer

Вторичный ключ

Таблица 2

Таблица Item

Название

Тип данных

Описание

id

integer

Первый ключ

Question

string

Вопрос

Reason

string

Причина

Recomendation

string

Рекомендация

После того, как создал база данных была создана база знаний для заполнения Б.Д. необходимой информацией. Описание базы знаний представлено ниже:

Таблица 3

База знаний

Разработка экспертной системы диагностики неполадок

Таблица 4

База знаний

Разработка экспертной системы диагностики неполадок

Таблица 5

База знаний

Разработка экспертной системы диагностики неполадок

Таблица 6

База знаний

Разработка экспертной системы диагностики неполадок

Таблица 7

База знаний

Разработка экспертной системы диагностики неполадок

Таблица 8

База знаний

Разработка экспертной системы диагностики неполадок

Таблица 9

База знаний

Разработка экспертной системы диагностики неполадок

После проектирования базы данных необходимо разработать блок-схему работы системы. Для ее проектирования была использована среда Microsoft Visio 2013. Блок-схема представлена на рисунке 6.

Разработка экспертной системы диагностики неполадок

Рис. 6. Блок-схема работы системы

Рассмотрим разработанный интерфейс программы. Для этого откроем проект в Visual Studio и запустим с помощью комбинации клавиш Ctrl + F5. После запуска автоматически откроется браузер с вкладкой "Главной страницы". На рисунках использовался браузер по умолчанию – Mozilla Firefox. Представлено на рисунке 7.

Разработка экспертной системы диагностики неполадок

Рис.7. Главная страница

В соответствии с блок-схемой, нажав на ссылку "Пройти тест" начнется тестирование. Результат нажатия изображен на рисунке 8.

Разработка экспертной системы диагностики неполадок

Рис.8. Начало тестирования

Дальше у пользователя предоставляется выбор. В соответствии с блок-схемой пользователь может:

- Начать проходить тест заново

- Выбрать вариант ответа "Yes"

- Выбрать вариант ответа "No"

В зависимости от выбора пользователя будут разные результаты.

Рассмотрим вариант, в котором пользователь выбрал "Заново пройти тест". Представлено на рисунке 9.

Разработка экспертной системы диагностики неполадок

Рис.9. Результат выбора нового прохождения теста

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


На рисунках ниже рассмотрим полное прохождение пользователем теста с разными вариантами ответов. Варианты ответов представлены в таблице 3. На рисунке 15 представлен результат тестирования.

Разработка экспертной системы диагностики неполадок

Рис.10. Первый вопрос в тестировании

Разработка экспертной системы диагностики неполадок

Рис. 11. Второй вопрос в тестировании

Разработка экспертной системы диагностики неполадок

Рис. 12. Третий вопрос в тестировании

Разработка экспертной системы диагностики неполадок

Рис. 13. Четвертый вопрос в тестировании

Разработка экспертной системы диагностики неполадок

Рис. 14. Пятый вопрос в тестировании

Таблица 10

Варианты ответов для демонстрации тестирования

Номер вопроса

Вариант ответа

1

Yes

2

No

3

Yes

4

No

5

Yes

6

No

7

No

8

No

9

No

10

No

11

No

12

No

13

No

14

No

Разработка экспертной системы диагностики неполадок

Рис. 15. Результат тестирования

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

Так как, приложение выполнено в соответствии с MVC паттерном, то рассмотрим реализацию ключевых контроллеров, моделей и представлений в нашем приложении.

Контроллеры:

- MainController – в данном приложении выполняет все основные функции и поэтому является единственным в нашем приложении. Набор методов данного контроллера представлен в таблице 11.

Название

Возвращаемый тип

Краткое описание

Index

ActionResult

Возвращает представление главной страницы

Final

ActionResult

Возвращает представление результата тестирования

Продолжение таблицы 4

NewTest

ActionResult

Возвращает представление начала нового тестирования

Item

ActionResult

Возвращает представление следующего по списку вопроса

Answer

ActionResult

Записывает вариант ответа и возвращает представление метода Item

NextItem

int

Возвращает Id следующего вопроса

NewUser

string

Сохраняет в базу нового пользователя и возвращает его идентификатор

Таблица 11

Методы контроллера (продолжение)  MainController

Название

Возвращаемый тип

Краткое описание

InitDb

void

Инициализирует первичные записи вопрос в базе данных

Модели:

- Session – соответствует таблице 1. "Session"

- Item – соответствует таблице 2. "Item"

Представления:

- Index – представление главной страницы

- Final – представление страницы с результатами

- Item – представление страницы вопроса

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

3. ТЕСТИРОВАНИЕ ПРОГРАММЫ

Описание сервера со стороны обработки http – запросов

ASP.NET приложение использует IIS как сервер для запуска web–сервиса. IIS (Internet Information Services, до версии 5.1 – Internet Information Server) –проприетарный набор серверов для нескольких служб Интернета от компании Майкрософт. IIS распространяется с операционными системами семейства Windows NT.

Процесс обработки запросов IIS называется "request processing pipeline" – "конвейера обработки запроса". Представлено на рисунке 1.

Разработка экспертной системы диагностики неполадок

Рисунок 1. – HTTP request processing pipeline (IIS 7.x)

Таким образом, http-запрос проходит по "сборочной ленте конвейера" через следующие этапы (представлено в таблице 1 ).

Описание

1

Браузер обращается к web-серверу по определённому URL адресу, на стороне сервера запрос перехватывает драйвер HTTP.SYS.

2

HTTP.SYS обращается к WAS для получения информации из хранилища конфигурации.

3

Служба WAS запрашивает конфигурацию из хранилища – из файла в папке IIS (applicationHost.config).

4

Так как данный запрос получен по протоколу HTTP конфигурационную информацию получает служба W3SVC (она на картинке: WWW Service), эта информация содержит в себе данные о "пуле" приложений (application pool) и прочих параметрах сайта.

5

Служба W3SVC использует эту информацию для конфигурации HTTP.SYS.

6

Служба WAS запускает процесс W3WP.exe для "пула" приложений, если он ещё не был запущен.

7

В процессе W3WP.exe работает приложение web-сайта, которое формирует и возвращает ответ драйверу HTTP.SYS.

8

HTTP.SYS отправляет ответ браузеру.

Функциональность системы

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

Название

Комментарий

1

Получение

Получать информацию из базы данных и использовать ее

2

Отображение

Корректно отображать информацию, полученную из базы данных

3

Обрабатывать

Корректно обрабатывать запросы клиента

4

Результат

Возвращать ожидаемый корректный результат тестирования

5

Переход

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

6

Прохождение сначала

Предоставлять возможность на любом этапе тестирования начать тест сначала

7

Ответ

Корректно обрабатывать варианты ответа клиента: "Yes"/"No"

8

Клиенты

Хранить информацию о клиентах в базе данных

9

Вопросы

Хранить информацию об ответах клиентов в базе данных

Тестирование системы

Рассмотрим работу систему на предмет содержания ошибок. Для этого выполним следующие испытания и сравним полученные ожидания с результатами. Для тестирования будут использованы следующие браузеры: Mozzila Firefox, Chrome, Internet Explorer, Yandex, Safari. Представлено в таблице 3.

Описание теста

Ожидаемый результат

Полученный результат

Вердикт

1

Система корректно отображает информацию

Весь текст читаемый и соответствует заявленному

Текст полностью совпадает с действительным

ОК

2

Все гиперссылки/кнопки рабочие

После нажатия происходит предусмотренное системой действие

Все гиперссылки и кнопки исполняемы

ОК

3

Можно начать тестирование

После нажатия гиперссылки "Пройти тест" система запускает начало тестирования

Переход по гиперссылке "Пройти тест"  был осуществлен на страницу начала тестирования (первый вопрос)

ОК

4

Можно начать тест сначала

После нажатия гиперссылки "Заново пройти тест" система запускает начало тестирования

Переход по гиперссылке "Заново пройти тест" был осуществлен на страницу начала тестирования

ОК

5

Можно выбрать вариант ответа

После нажатия гиперссылки с вариантом ответа: "Yes" или "No" система осуществляет переход на следующий вопрос или заканчивает тестирование (вопрос был последним)

Переход по гиперссылке "Yes", а также "No", был осуществлен на следующий вопрос или на страницу результата тестирования

ОК

6

Можно получить результат тестирования

После ответа на последний вопрос, т.е. перехода по гиперссылке "Yes" или "No" система отображает результат тестирования

Переход по гиперссылке "Yes" или "No" на странице с последним вопросом был осуществлен на страницу с результатом тестирования

ОК

7

Результат тестирования корректен

Страница с результатом тестирования содержит пояснения о возможных причинах проблем и рекомендаций к ним

На странице результата тестирования отображена информация о причинах и рекомендаций к устранению проблем

ОК

8

Результат тестирования корректен

Страница с результатом тестирования содержит информацию только к заявленным проблемам

На странице результата тестирования отображена ожидаемая информация

ОК

9

После окончания тестирования можно начать сначала

После нажатия гиперссылки на странице результата "Заново пройти тест" система запускает начало тестирования

Переход по гиперссылке "Заново пройти тест" был осуществлен на страницу начала тестирования

ОК

Таблица 3 – тестирование работоспособности системы.

Таким образом, система работает правильно в рассмотренных браузерах и выполняет заявленную функциональность.

Литература

1. Байдачный С.С., Маленко Д.А., ASP.NET 2.0: секреты создания web-приложений.- М.: Солон-Пресс, 2007. – 736с. ISBN 5-98003-295-9

2. Фримен Э., Фримен Э., Изучаем HTML,XTML и CSS., –С-Пб: Питер, 2012. – 639 с.

3. Питер Джексон, Введение в экспертные системы,- Вильямс 624 стр. ISBN: 5-8459-0150-2

4.

5. Джозеф Джарратано, Гари Райли, Экспертные системы. Принципы разработки и программирование, 4-е издание, Вильямс, 2007.-1152 с. ISBN: 978-5-8459-1156-8

6. Новикова В.А, Андреева Е.Ю., Туйкина Д.К. Искусственный интеллект и экспертные системы.