В наиболее общем смысле под прецедентом принято понимать поведение (принятие решения) в определенной ситуации, которое полезно как образец для повторений при аналогичных обстоятельствах [1]. Код прецедента, представляющий собой интеллектуально обработанный условный рефлекс, является базовой единицей человеческого опыта. Расширяющаяся компьютеризация деятельности человека привела к совершенно новым возможностям создания прецедентов и их кодирования (в формах программирования) для последующих повторных использований.
Принципиальным моментом при создании прецедентов является их моделирование на естественном языке в его алгоритмическом употреблении, которое при отсутствии компьютеров являлось и является единственно возможной формой кодирования прецедентов. Подобное моделирование логично осуществлять и обеспечивать инструментами так, чтобы алгоритмические коды модели транслировались в исполнение прецедента с помощью компьютера [2].
В результате данных рассуждений авторы пришли к идее вопросно-ответного программирования (QA-программирования) прецедентов [3], ориентируясь на то, что активность человека, использующего компьютерный инструментарий, нацелена на решение задач в рамках его опыта, потенциал которого расширяется за счет создания новых прецедентов и их программных моделей, а также программных моделей прецедентов, освоенных им или другими лицами ранее.
Идея QA-программирования по принципиальным позициям доведена до ее материального воплощения в инструментальной моделирующей среде WIQA (Working In Questions and Answers), разработанной в ряде версий [4] для решения задач в концептуальном проектировании сложных автоматизированных систем (АС). Такие решения являются прототипами, подготавливающими создание их исходных кодов на языке программирования. После их создания прототипы будут многократно использоваться и в этом плане относятся к классу прецедентов, а для прецедентов являются формой их состояния. В повторных применениях (в процессе разработки АС) прототипы адаптируются и становятся прецедентами, но уже в составе, например, программных средств АС. Именно в таком аспекте в статье рассматриваются действия проектировщиков АС, названные прототипированием прецедентов.
Среда WIQA
Инструментарий WIQA предназначен для формирования и регистрации текущего состояния проекта АС в форме динамического дерева проектных задач, каждая из которых представлена вопросно-ответным протоколом (QA-протоколом) ее решения, включая сформулированные проектные решения. Компонентный состав системы WIQA, представленный на рисунке 1, открыт для расширений. Последним из таких расширений является включение в состав системы средств псевдокодирования, ориентированных на прецеденты.
Естественно-языковое сопровождение процессов создания и использования прецедентов осуществляется проектировщиками АС в операционной обстановке, показанной на рисунке 2. В таком сопровождении за каждую задачу Zi несет ответственность определенный проектировщик, обязанный создать (и согласовать) постановку задачи T(Zi), провести ее вопросно-ответный анализ(QA-анализ) и зарегистрировать его протокол (QA-протокол, QA(Zi)).
Процесс QA-анализа автоматизирован за счет использования комплекса средств, способствующих обнаружению множества вопросов {Qij} в текстах постановок задач, в частности в тексте T(Zi). По этой причине преобразование T(Zi) → QA(Zi) (1) можно рассматривать как перевод текста постановки задачи T(Zi) в формализованное представление QA(Zi) ее концептуального решения, в результате которого создается QA-структура решения (из иерархически связанной совокупности вопросов и ответов), заполненная определенным содержанием. Если задача нацелена на создание прецедента, то выражение (1) определяет первый шаг формального представления и преобразования в прототипировании соответствующего прецедента. В результате этого шага создаются текстовая модель PT=T(Zi) прецедента Pi и его вопросно-ответная модель PQA=QA(Zi), которая является и вопросноответной моделью (QA-моделью) задачи Zi.
Второй шаг состоит в преобразовании текстовой информации, вложенной в T(Zi) и QA(Zi), в логическое представление PL прецедента Pi следующего вида:
имя прецедента Pi:
в так как [формула (ФМ) для мотивов {Mj}
ы поскольку [ФС для целей {Ck}
б если [ФU' для предусловия U'],
о то реакция rq(t)],
р из-за чего [ФU'' для постусловия U"]
-------------------------------------------------
есть альтернативы [{rp}].
Формирование логического описания PL осуществляется в форме машинного перевода текстового описания прецедента на язык логики предикатов первого порядка. В построенной логической формуле выделяются две части: условие доступа Ui к прецеденту и логические спецификации реакции rq(t).
Третий шаг заключается в преобразовании условия доступа Ui к прецеденту в его псевдокодовое представление в виде функции Fi с использованием следующего шаблона:
Fi: / QA-программа типа функции (условие доступа к прецеденту)
Q1. Переменная V_1 / Комментарий_1?
A1. Значение V_1.
Q2. Переменная V_2 / Комментарий_2?
A2. Значение V_2.
……………………………………………
QN. Переменная V_M / Комментарий_M?
AN. Значение V_M.
Q0. Fi = логическое выражение (V_1, V_2, …, V_M)?
A0. Значение функции.
End.
Имена переменных и функций могут быть выражены на языке разрабатываемого проекта АС. Проектировщик может свободно вводить и использовать подходящие ему синонимы.
В тексты QA-протоколов, если это необходимо по нормативам или для понимания, может быть включена графика (например UML-диаграммы или другие виды block-and-line-схем).
Для псевдокодового представления реакции rq(t) используются модели PT, PQA и PL, а также следующий шаблон-процедура:
Rq: QA-программа типа процедуры (реакция прецедента):
Q1. K_i, K_j, …, PL_k ?
A1. *
Q2. K_m, QA-P_n, …, K_q?
A2.*
………………………………
QN. K_s, Pl_t, …, QA-P_v?
AN. #
End,
где K_i – команда, активизируемая пользователем в акте интерактивного взаимодействия с компьютером; PL_k – вызов пользователем плагина и переход к его функционалу; QA-P – вызов QA-программы.
Псевдокодирование условий и реакции прецедента, а также их объединение в рамках прецедента приводят к модели PSC – прецедент P в виде исходного кода. В общем случае эта модель может быть представлена на любом алгоритмическом языке, для которого на рабочем месте имеется соответствующий транслятор. Система WIQA поддерживает две версии модели PSC: псевдокодовую и на языке C#.
Модель PSC введена в состав совокупности моделей прецедента для обеспечения возможности его адаптации к новым условиям применения. Для применения прецедента особенно важна трансформация этой модели в исполняемый код, то есть в модель PEC, которую тоже следует включать в состав совокупности моделей прецедента.
В общем случае QA-программы реакции прецедента могут состоять из совокупности процедур и функций, что требует обеспечить их связность.
Для решения такой задачи инструментарий WIQA предоставляет две возможности.
1. С помощью графического редактора – связывание в формах человеко-компьютерного взаимодействия с интерфейсами, реализованными в виде диаграмм (block-and-line-схем), в блоки которых введены интерактивные имена процедур и функций.
2. С помощью средств интерфейсного прототипирования – использование механизмов трансформации интерфейсных диаграмм в исполнямые коды интерфейсных решений, объединяющих в единое целое псевдокодовые программы и другие составляющие прототипов.
Первая версия связывания проще для пользователя, поскольку требует от него только зарисовать схему связи. Если же в совокупности процедур и функций имеется иерархия вызовов, пользователю придется использовать несколько диаграммных схем с переходами между ними. Кроме того, в этом решении нет возможности использовать интерфейсные поля ввода данных (ввод приходится программировать в QA-программах).
Вторая версия является универсальной, так как в ней для интерфейсного связывания пользователь может использовать любые типовые интерфейсные решения (интерфейсные метрики в терминах стандарта ИСО/МЭК 9126), которые в системе WIQA представлены в виде прецедентов, собранных в специальную библиотеку и включающих исполняемые коды. Отметим, что и в первой, и во второй версиях используется графическая модель прецедента PG.
лями. Формализация и преобразования начинаются с формулировки очередной постановки задачи и ее QA-анализа.
По всей цепочке представлений и преобразований осуществляются работы с формальными текстами, в каждом из которых используется определенный формальный язык. По этой причине преобразования осуществляются в формах машинного перевода. В число форм представления прецедентов и их прототипов включены псевдопрограммы, ориентированные на проектировщиков, не обладающих знаниями профессионального програм- мирования. Более того, псевдопрограммы интерфейсов, связывающих части прототипов в целое, создаются из интерфейсной диаграммы и затем преобразуются в исходный код практически без участия проектировщиков. Представленные выше средства прошли представительную проверку в производственной практике и подтвердили свою эффективность.
Литература
1. Precedent. URL: http://dictionary.reference.com/browse/ precedent (дата обращения: 18.11.2011).
2. Nguyen P. and Chun R., Model Driven Development with Interactive Use Cases and UML Models. URL: pnguyen.tigris.org/ SER4505.pdf (дата обращения: 18.11.2011).
3. Соснин П.И. Вопросно-ответное программирование человеко-компьютерной деятельности. Ульяновск: Изд-во УлГТУ, 2010. 240 с.
4. Sosnin P., Programming of Human-Computer Interactions in Development of Software Intensive Systems, Intern. Journ. of Computer Information Systems and Industrial Management Applications, 2011, Vol. 3, pp. 444–452.
5. Arnowitz J., Arent M. and Berger N., Effective Prototyping for Software Makers. Morgan Kaufmann, Elsevier, 2007, 624 p.
6. Sosnin P., Question-Answer Approach to Human-Computer Interaction in Collaborative Designing. Chapt. in the book «Cognitively Informed Intelligent Interfaces: Systems Design and Development» IGI Global Publ., 2012, pp. 157–176.
7. Sosnin P., Pseudo-code Programming of Designer Activity in Development of Software Intensive Systems, Proc. 25-th Intern. Conf. IEA/AIE 2012, Dalian, Chine, 2012, pp. 45–46.
References
1. Precedent, Available at: http://dictionary.reference.com/browse/precedent (accessed 18 Nov. 2011).
2. Nguyen P., Chun R., Model Driven Development with In-teractive Use Cases and UML Models, Available at: http://pnguyen.tigris.org/SER4505.pdf (accessed 18 Nov. 2011).
3. Sosnin P., Voprosno-otvetnoe programmirovanie chelove-ko-kompyuternoy deyatelnosti [Question-Answer Programming of Human-Comp. Interactions], Ulyanovsk, Ulyanovsk State Technical Univ., 2010, 240 p.
4. Sosnin P., IJCISIM, Vol. 3, 2011, pp. 444–452.
5. Arnowitz J., Arent M., Berger N., Effective Prototyping for Software Makers, Morgan Kaufmann, Elsevier, 2007, 624 p.
6. Sosnin P., Cognitively Informed Intelligent Interfaces: Sys-tems Design and Development, IGI Global, 2012, pp. 157–176.
7. Sosnin P., Proc. of the 25th Int. Conf. on Industrial Engi-neering and other Applications of Applied Intelligent Systems (IEA/AIE 2012), Dalian, Chine, 2012, pp. 45 –46.