Научная статья на тему 'Методы грануляции для решения задач программной инженерии'

Методы грануляции для решения задач программной инженерии Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1075
62
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОГРАММНАЯ ИНЖЕНЕРИЯ / PROGRAM ENGINEERING / МЕТОДЫ ГРАНУЛЯЦИИ / METHODS OF GRANULATION / ТЕХНОЛОГИИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / TECHNOLOGY OF SOFTWARE DESIGN

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бутакова Мария Александровна, Иванченко Ольга Владимировна, Панфилова Наталья Михайловна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Бутакова Мария Александровна, Иванченко Ольга Владимировна, Панфилова Наталья Михайловна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

METHODS OF GRANULATION FOR SOLVING PROBLEMS OF SOFTWARE ENGINEERING

In article definitions and mechanisms of the solution of problems are considered, the fundamental principles and processes of granulation are investigated, and is clearly demonstrated that development of methodologies in program engineering follows the basic principle of granular calculations granulations. In article the new method of granulation by a rolification (action or result of design of roles), i.e. roles and subjects is analyzed and offered. The main contribution consists in creation of bases of a granular method at the solution of tasks and specification of the relations between a granular method of the solution of problems and program engineering. In introduction of article general information about a role of methods of granulation in problems of program engineering is presented. In the second section of article the definitions, tasks and the principles of the solution of tasks on the basis of granulation are given, in the third part various forms and methods of granulation are analyzed, in the fourth section the main methodologies of program engineering in a section of granular calculations are shown, in the fifth the new method of granulation based on roles and agents is offered, in the sixth the connected works on granular calculations are considered, conclusions are presented in the seventh section.

Текст научной работы на тему «Методы грануляции для решения задач программной инженерии»

УДК 658.012.011:656.2.001.57+06 DOI: 10.17213/0321-2653-2015-4-9-16

МЕТОДЫ ГРАНУЛЯЦИИ ДЛЯ РЕШЕНИЯ ЗАДАЧ ПРОГРАММНОЙ ИНЖЕНЕРИИ*

METHODS OF GRANULATION FOR SOLVING PROBLEMS OF SOFTWARE ENGINEERING

© 2015 г. М.А. Бутакова, О.В. Иванченко, Н.М. Панфилова

Бутакова Мария Александровна - д-р техн. наук, профессор, декан факультета «Информационные технологии управления», Ростовский государственный университет путей сообщения, г. Ростов-на-Дону, Россия. E-mail: butakova @rgups.ru

Иванченко Ольга Владимировна - аспирант, кафедра «Информатика», Ростовский государственный университет путей сообщения, г. Ростов-на-Дону, Россия. E-mail: olka-pozitiff@mail. ru

Панфилова Наталья Михайловна - доцент, кафедра «Начертательная геометрия и графика», Ростовский государственный университет путей сообщения, г. Ростов-на-Дону, Россия. E-mail: inf-rgups@yandex.ru

Butakova Mariya Alexandrovna - Doctor of Technical Sciences, professor, dean of the faculty of «Information Technology of Management», Rostov State Transport University, Rostov on Don, Russia. E-mail: butakova@rgups.ru

Ivanchenko Olga Vladimirovna - post-graduate student, department «Informatics», Rostov State Transport University, Rostov on Don, Russia. E-mail: olka-pozitiff@mail.ru

Panfilova Natalya Michailovna - assistant professor, department «Descriptive Geometry and Graphics», Rostov State Transport University, Rostov on Don, Russia. E-mail: inf-rgups@yandex.ru

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

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

In article definitions and mechanisms of the solution of problems are considered, the fundamental principles and processes of granulation are investigated, and is clearly demonstrated that development of methodologies in program engineering follows the basic principle of granular calculations - granulations. In article the new method of granulation by a rolification (action or result of design of roles), i.e. roles and subjects is analyzed and offered. The main contribution consists in creation of bases of a granular method at the solution of tasks and specification of the relations between a granular method of the solution ofproblems and program engineering. In introduction of article general information about a role of methods of granulation in problems ofprogram engineering is presented. In the second section of article the definitions, tasks and the principles of the solution of tasks on the basis of granulation are given, in the third part various forms and methods of granulation are analyzed, in the fourth section the main methodologies of program engineering in a section of granular calculations are shown, in the fifth - the new method of granulation based on roles and agents is offered, in the sixth the connected works on granular calculations are considered, conclusions are presented in the seventh section.

Keywords: program engineering; methods of granulation; technology of software design.

* Исследование выполнено при финансовой поддержке РФФИ в рамках научных проектов 15-01-03067-а, 15-08-01886-а.

1. Введение

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

Гранулярные вычисления представляют собой общие вычислительные методологии, в которых используются гранулы с целью создания эффективной вычислительной модели для сложных приложений [1]. Они позиционируются как новая парадигма для решения задач [2 - 10]. Гранулы и грануляция, без сомнения, - главные компоненты гранулярных вычислений. Тем не менее есть несколько общих, формальных и точных определений гранул и грануляции. В данной статье предложено формальное определение гранулы и грануляции в контексте решения проблем. Эти определения создадут эффективное направление для применения гранулярных вычислений.

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

2. Механизмы решения задач

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

Определение 1: Объект. Всё в мире - объекты. Объект обладает идентичностью и атрибутами (его структура). Обозначим о как конкретный объект, а О - множество всех объектов.

Определение 2: Задача. Задача р - особый объект, вызывающий вопросы, которые должны быть разрешены. Задача может быть определена как кортеж

р::=<v,a> ,

где ::= выражает «определяется как»; V - операция; а - объект, называемый параметром или аргументом (может быть нулевым).

В естественном языке V - глагол, а - существительное, р - обозначает определенную задачу, Р -множество всех задач. Очевидно, что Р с О всегда истинно. Например, «решать (уравнение)» есть задача.

Определение 3: Решение. Решение 5 - способ решить задачу р или конкретный результат объекта. Если 5 обозначает конкретно решение, тогда - множество всех решений. Очевидно, что 5 с О всегда истинно. Например, пара «построить, проинтегрировать, решить» и «уравнение» являются решением задачи «решить (уравнение)».

Определение 4: Решение задачи. Решение задачи для задачи р е Р может быть определено как деятельность по нахождению отображения < р, 5 >, где 5е5. Если 5 означает конкретное решение задачи, тогда 5 - множество всех решений.

В определении 4 задача р может быть очень простой или сложной. Для конкретной задачи р ее отображение < р, 5 > может существовать или не существовать.

Определение 5: Решаемая задача. Задача р разрешима, если существует хотя бы одно решение 5, делающее < р, 5 > существующим.

Свойства задач и решений задач:

1. Задача может иметь или не иметь решения.

2. Задача может иметь много (более 1-го) решений.

3. Решение может быть конкретным или абстрактным.

4. Множество решений 5 расширяемо.

Например, проблема «поехатьНаМашине (Австралия)» на сегодняшний день решения не имеет, «задание сделано» и «учить, понимать и делать» решения для проблемы «делать(задание)», где первое -это конкретное решение, а второе - абстрактное. Математические проблемы решаются в таких формах, как числа, формулы, уравнения, таблицы и графы; проблемы со здоровьем решаются в таких формах, как таблетки, операции, трансплантации; программные проблемы имеют решение в виде программного обеспечения.

3. Грануляция

Гранулы могут рассматриваться в качестве основных субъектов знания [3]. «Грануляция универсума предполагает разбиение универсума на части или

группировку отдельных элементов в классы, основываясь на имеющейся информации и знаниях» [11]. Грануляция - это процесс разбиения целого на части [4 - 10, 12].

Грануляция по сути включает в себя как процесс построения, так и процесс декомпозиции. Гранула -это группа объектов, которые объединены исходя из каких-либо критериев [2, 3]. Определения, приведенные в разделе 2, фактически являются процессом грануляции. Если рассматривать гранулы как множества, то с помощью грануляции можно разделить множество на более мелкие множества или объединить его с другими множествами в единую структуру. Главная цель грануляции - упростить решение проблемы.

Определение 6: Гранула. Гранула является

задачей, частью задачи или сочетанием операций и параметров задачи. Гранула может быть определена как pg ::=<V,а>, где выражение <v,a > обозначает и

гранулу, и задачу, таким образом, задача так же является гранулой (или начальной гранулой).

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

обозначим как множество всех гранул. Очевидно, что Pg с Р всегда истинно.

Определение 7: Грануляция. Грануляция - это интерактивный процесс нахождения множества конечных гранул из начальных гранул путем композиции и декомпозиции. Процесс продолжается, пока все гранулы не станут конечными.

С точки зрения декомпозиции, гранула у(а)

может быть разбита на три типа гранул, где " а >"

используется для выражения «разбивается на». В нижеизложенных суждениях т,п,т ,n',i,j являются действительными числами.

Декомпозиция 1: а) —(а) \т > 1,0 < i < т}.

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

Декомпозиция 2: еv(а) —d^{v(ау)|п > 1,0 < у < п} .

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

Декомпозиция 3: {v(a) —l-^■{vi (aJ■)\т >1, п >1,0 < i <

< т,0 < ■ < п}. Данное выражение означает, что действие V разделяется на т частных действий и параметр а разделяется на п частных параметров а у и каждое

частное действие vi образует гранулу путем воздействия на частный параметр а у.

Сложная задача может быть разделена на множество простых задач. Решение одной задачи может быть частью решения другой задачи. Например, (12+35)х (34 - 23) является задачей. Она может быть разбита на несколько простых задач, таких как 12+35, 34-23 и 43х11, где 43 - решение задачи 12+35 и 11 - решение задачи 34-23.

Цель грануляции - упростить задачу для понимания и обработки. Решение задачи не всегда подразумевает разбиение ее на части. Иногда имеет место и композиция. Можно выделить три типа композиции,

где " —— " используется для выражения «состоит из».

Композиция 1: {(у0^1,...,Vй)(а)|т>1,0<т'<т}-— —{V;(а)\т>1,0<■ <т}. Данное выражение означает, что новая операция (v0,v1,.,vо) состоит из т' + 1 частных операций из т частных операций vi, и новая

операция (v0,v1,...,vо) может образовать гранулу путем воздействия на параметр а .

Композиция 2: ^(а0,а\...,ап)|п> 1,0<п <п}——

—— {^(ау) |п >1,0 < ■ < п}. Данное выражение означает,

что новый параметр (а0,а1,.,ап) состоит из п' + 1 частных параметров из п частных параметров ау и операция V может образовать гранулу, воздействуя на новый параметр (а0,а1,.,ап).

Композиция 3: {(V , V1,. °)(а0,а1,. ,ап )\т >1,0< оО < < т, |п >1,0 < п' < п}—— {V; (ау) \т >1,0 < ■ < т\п >1,0 < ] < п}.

Данное выражение означает, что новая операция (V0,V1,.,Vм) состоит из т' +1 частных операций из т частных операций vi, и новый параметр (а0,а1,.,ап) состоит из п' + 1 частных параметров из п частных параметров а у, и новая операция

(V0, V1,., Vм ) может образовать гранулу, воздействуя на новый параметр (а °,а1,..., ап).

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

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

Это процесс Декомпозиции 2. Гранулы «посадить (растение)», «полить(растение)», «удобрить(расте-ние)» могут быть собраны в гранулу «вырас-тить(растение)». Это пример Композиции 1. Декомпозиция уточняет, а композиция укрупняет отношения между гранулами, упомянутые в [6, 8].

Существуют более конкретные методы, чем просто декомпозиция и композиция. Например, абстрактные принципы неразличимости, подобия, эквивалентности, близости и функциональности, предложенные Л. Заде [13, 14] и С.М. Китом [15], и другие полезные механизмы в программной инженерии -причинность, дедукцию (назначение атрибутов, конкретизация, классификация), индукцию или абстракцию (извлечение атрибутов, извлечение структуры, извлечение метаинформации).

Метод 1: причина-следствие. Этот метод базируется на нахождении гранулы причины по грануле следствия и наоборот. Например, «водитьСамо-стоятельно(машина)» - это гранула следствия, а «сдать(экзаменНаПрава)» - это гранула причины. Существует множество причин для одного следствия и множество следствий для одной причины. Они могут быть объединены отношениями «И» или «ИЛИ».

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

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

Дедукция 2: конкретизация. Это процесс создания гранул путем установления всех конкретных значений для гранулы, имеющей структуру. Например, «водить(машина)» есть гранула, можно построить такие гранулы, как «водить(FordМашина)», «во-дить(BMWМашина)», «водить(НоМаМашина)».

Дедукция 3: классификация. Используется для формирования конкретных гранул со структурой из структурированных абстрактных гранул. Например, «управлять(транспортноеСредство)» - абстрактная задача, которая может быть разбита на несколько более конкретных задач, таких как «управлять (машина)», «управлять(мотоцикл)», «управлять(лод-ка)».

Метод 3: абстракция (индукция). Процесс формирования абстрактных гранул из конкретных. Это вид композиции.

Абстракция 1: извлечение атрибутов. Это процесс создания гранулы путем извлечения общего признака из значений. Например, гранулы «собирать (красныйШар)», «собирать(ЗеленыйШар)», «собирать (синийШар)» могут быть преобразованы в гранулу «собирать(цветШар)».

Абстракция 2: извлечение структуры. Это процесс создания гранулы путем извлечения группы атрибутов из значений. Например, гранула «пе-

чать(студент)» может быть составлена из гранул «пе-чать(«Петров Иван», 22, 98)», «печать(«Сидоров Андрей», 19, 43)», «печать(«Смирнов Иван», 21, 58)», где «студент» - это структура (имя, возраст, средний балл).

Абстракция 3: извлечение метаинформации. Это процесс формирования более абстрактных гранул из конкретных при наличии структуры. Например, гранулу «приготовить(еду)» можно собрать из гранул «приготовить(хлеб)», «приготовить(бутерброд)», «приготовить(суп)».

Абстракция - наиболее сложный метод для решения задачи. В этом процессе приходится создавать гранулы, которые ранее не существовали. В сравнении с абстракцией процессы дедукции немного легче. Абстракция так же является ключевой методологией при интеллектуальном анализе данных (data mining) [10, 11].

Определение 8: Подзадача. Предположим, что p = v(a) есть задача. Каждая гранула, выделенная из

v(a) в форме vi(a),v(aj),(v0,v\.",vm)(a),v(a0,a\.. ,an)

или (v0,v1,...,vm)(a0,a1,.,an), называется подзадачей p.

Определение 7: Гранулярное решение задачи. Гранулярное решение задачи - это решение задачи с помощью грануляции, т. е. проблема итеративно гранулируется на подзадачи до тех пор, пока все подзадачи не станут финальными гранулами.

Аксиома: задача решаема, если все ее подзадачи имеют решение и между ними существуют отношения «л (И)», или хотя бы одна подзадача имеет решение и отношения между всеми подзадачами -« v (ИЛИ)».

Очевидно, что дедукция и абстракция представляют отношения «И», а причинность содержит отношения «ИЛИ» и «И».

4. Грануляция в программной инженерии

Касательно программного обеспечения, задача -это абстрактное описание требований. Задачи в программной инженерии абстрактные, неоднозначные и усложненные. Грануляция - неотъемлемый метод в программной инженерии. «Стратегия гранулярных вычислений широко используется при анализе программного обеспечения, особенно в проектировании классов в объектно-ориентированном программировании [16]».

В [17] «задача проектирования» определяется как набор функций и технологий. Решение задачи проектирования состоит из полного описания множества компонентов и их отношений, которые вместе описывают предмет, который обеспечивает функциональность и удовлетворяет требованиям, включая технологию, согласуется со свойством, что множество решений S расширяемо.

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

Если p' - это конкретная программная проблема, то P' - это множество всех программных проблем. Очевидно, что P' с P всегда истинно. Например, «разработать(интерактивную систему)» является программной проблемой.

Определение 11: Программная система. Программная система s' представляет собой исполняемую программу на компьютере.

Если s - это конкретная программная система, тогда S' - множество всех программных систем. Программная система реализована на основе конечных гранул. Очевидно, что S' с S всегда истинно. Например, «исполняемая интерактивная система» является решением проблемы «разработать(интер-активную систему)».

Основываясь на Определении 11, программная инженерия - процесс проектирования программных систем для решения программных задач. Это один из видов решения задач и процесса грануляции.

4.1. Структурное программирование

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

Определение 12: Процедура. Может быть выражена как v'(a'), v' - операция, a' - объект, т. е. a' с O. На самом деле это та же форма задачи. Обозначим f как определенную процедуру, а множество процедур - F.

В структурном программировании программная задача есть процедура. Фактически структурное программирование - это грануляция первоначальной процедуры v' (a'), которая в большинстве языков программирования называется «main program». Программное обеспечение, построенное по структурной методологии, основывается на конечных гранулах (конечных процедурах) при реализации на конкретном языке программирования. В целом, в структурном программировании применяются все шесть методов грануляции. Однако структурное программирование сосредоточено на операциях v проблемы, а параметр a вторичен, т. е. в основном используется «функциональность» для формирования гранул.

Структурное программирование фактически в первую очередь декомпозирует операцию v, а затем параметр a проблемы декомпозируется, чтобы следо-

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

вать декомпозиции операции. Это отражено в декомпозиции 1 - 3 и композиции 1. Что касается методов грануляции, в структурном программировании большей частью используется причинно-следственный метод при проектировании процедур, дедукцию 1 при вызове процедур, абстракцию 1 и 2 при проектировании структур данных [11]. Причинно-следственная грануляция в значительной степени применяется в логической парадигме программирования [18].

4.2. Объектно-ориентированное программирование

Объектно-ориентированное программирование рассматривается как более совершенная парадигма, нежели структурное программирование, согласно основополагающим принципам и концепциям, таким как классы, экземпляры, наследование, полиморфизм, и переопределение. Класс - это ядро объектно-ориентированной методологии [18].

Определение 13: Класс. Класс определяется как с::=<п,D,Fc >, где п - идентификатор класса; Б -

атрибуты для хранения состояния объекта; Fc - множество определенных функций или реализации (К СF).

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

Определение 14: Сущность. Сущность о' определяется в зависимости от определения класса, о' ::=< п,с,d >, где п - идентификатор объекта; с -класс объекта, идентифицированного определяющим классом или именем; d - множество значений.

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

Что касается методов грануляции, в ООП применяются все дедуктивные и абстрактные методы. Классы в ООП фактически являются способом грануляции путем классификации, т. е. дедукции 3. Создание экземпляров класса - это гранулирование путем конкретизации, т. е. дедукция 2. Проектирование класса из группы объектов и проектирование класса из группы классов - это грануляция путем абстракции.

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

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

5. Новые типы грануляции

Ролевое взаимодействие - методология рационального мышления или парадигма решения задач, которая, в основном, использует роль как базовый механизм упрощения абстракции, классификации, разделения функций, взаимодействия [19 - 21].

Основанное на принципах ролевого взаимодействия [19, 20] программирование на базе ролей - это новая методология, направленная на улучшение методов разработки программного обеспечения. Она вводит новые способы грануляции, которые не применялись в объектно-ориентированной методологии для решения задач: роли, агенты, среды и группы.

Определение 15: Роль. Роль можно определить как г ::=<п,I,Ас,Ар,А0,Rx,Оа > , где п - идентификатор роли; I ::=<Мпп ,Моий > обозначает множество сообщений; Мпп - входящее сообщение соответствующего агента; Моий - множество исходящих сообщений или шаблонов сообщений, т. е. Мп ,МоШ сМ; Ас - множество агентов, которые в настоящее время играют эту роль; Ар - множество

агентов, которые имеют право на роль; А0 - множество агентов, собирающихся использовать эту роль; Rx - множество ролей, взаимосвязанных с ролью; Оа - множество объектов, которые будут доступны

агентам в этой роли.

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

Определение 16: Субъект. Субъект может быть

определен как ag ::=<п,са,5,ё,гс,Rp,R0,Ga >, где п -

идентификатор субъекта; са - специальный класс, который описывает текущие свойства пользователя; 5 - квалификация субъекта; гс - текущая роль субъекта; Rp - множество ролей, которые может сыграть субъект (гс г Rp); R0 - множество ролей, которые играл субъект раньше; Ga - множество групп, к которым субъект принадлежит [20].

Если ag - определенный субъект, тогда Ag -

множество всех субъектов.

В программировании на основе ролей роль делится или состоит из (v0,vl,..., Vм ), и субъект делится или состоит из (а0, а1,...,а") для поддержания композиции 3, т. е. субъект играет роль или роль, исполняемая субъектом, формирует гранулу.

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

Ролификация - метод грануляции. Роли могут быть уточнены в более операбельные гранулы: текущая роль - гранула может быть построена, потенциальная роль - гранула может быть построена из похожих потенциальных ролей, прошлая роль - гранула может быть построена. Основываясь на этих ролях, можно установить больше отношений между гранулами. Исследование этого метода можно найти в работе [22].

6. Обзор работ по тематике

В [17] рассматривается задача (программная задача) структурирования для проектирования путем анализа общего класса методов. В работе показано, что нет единственного идеального способа для проектирования, хорошее проектирование решения задачи -результат рекурсивного выбора методов, основанных на ряде критериев, включая доступность знаний. В работе [11] предлагается несколько методов по формированию гранул - по равенству значений атрибутов, по равнозначности значений атрибутов, по подобию значений атрибутов. Эти методы могут быть

применены в области анализа данных и интеллектуального анализа данных (data mining). В работе [23] представлены формальные методы рассуждений с использованием гранул в области искусственного интеллекта. Автор определяет элементарную гранулу принятия решения как пару (ф,(d (ф)), где ф - синтаксис и d (ф) - семантика. В работе [16] рассматривается построение гранулярных вычислительных моделей, стратегий и приложений. Гранулярные вычисления рассматриваются с точки зрения программной инженерии, включая техническое задание, анализ предметной области, проектирование, разработку алгоритмов, тестирование программного обеспечения, развертывание системы. Основные принципы и задачи гранулярных вычислений рассматриваются в работе [8]. Анализируются задачи грануляции и вычислений с гранулами, рассматривается конструкция, интерпретация и представление гранул, а также принципы и операции над гранулами. Гранулярные вычисления с точки зрения теории информационной грануляции и гранулярных отношений приводятся в работе [6].

7. Выводы

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

Для улучшения методологий программной инженерии необходимо ввести понятия неразличимости и близости. Роли - потенциальный механизм грануляции, который можно применить в интеллектуальном анализе данных (data mining). Необходимо вести дальнейшие исследования по данной тематике для выявления достоинств ролей.

Литература

1. Bargiela A., Pedrycz W. The roots of granular computing. Proc. of the IEEE Int'l Conf. on Granular Computing, May 2006, pp. 806 - 809.

2. Lin T.Y. Granular computing: examples, intuitions and modeling. Proc. of IEEE Int'l Conf. on Granular Computing, July 2005, Beijing, China (GrC'05), pp. 40 - 44.

3. Lin T.Y. Granular computing: a problem solving paradigm.

Proc. of the IEEE Int'l Conf. on Fuzzy Systems, May 22-25, 2005, Reno, Nevada, USA, pp. 132 - 137.

4. Pedrycz W. Granular computing: an introduction. Proc. of the IFSA World Congress and 20th NAFIPS Int'l Conf., July 2001, Vancouver, BC, Canada, Vol. 3, pp. 1349 - 1354.

5. Yao J.T., Yao Y.Y. Information granulation for web based information retrieval support system. Proc. of SPIE, Vol. 5098, April 2003, Orlando, FL, USA, pp. 138 - 146.

6. Yao J.T. Information granulation and granular Relationships. GrC'05, pp. 326 - 329.

7. Yao J.T. A Ten-Year Review of Granular Computing. GrC'07, pp. 734 - 739.

8. Yao Y.Y. A partition model of granular computing, LNCS Transactions on Rough Sets I, 2004, Vol. 3100, pp. 232 -253.

9. Yao Y.Y. The art of granular computing. Proc. of the Int'l Conf. on Rough Sets and Emerging Intelligent Systems Paradigms, LNAI 4585, 2007, pp. 101 - 112.

10. Yao Y.Y. Perspectives of granular computing. GrC'05, pp. 85 - 90.

11. Yao Y.Y., Zhong N. Granular computing using information tables, Lin, T.Y., Yao, Y.Y. and Zadeh, L.A. (Eds.), Data Mining, Rough Sets and Granular Computing, Physica-Verlag, Heidelberg, 2002, pp. 102-124.

12. Louie E., Lin T.Y., Hu X. Analysis of using granules to find association rules", GrC'05, pp. 556 - 560.

13. Zadeh L.A. Some reflections on soft computing, granular computing, and their roles in the conception, design and utilization of information/intelligent systems, Soft Computing, 1998, Vol. 2, pp. 23 - 25.

14. Zadeh L.A. Towards a theory of fuzzy information granulation and its centrality in human reasoning and fuzzy logic, Fuzzy Sets and Systems, 1997, Vol. 19, pp. 111 - 127.

15. Keet C.M. Granulation with indistinguishability, equivalence, or similarity. GrC'07, pp. 11 - 16.

16. Han J., Dong J. Perspectives of granular computing in Software Engineering, Proc. of the IEEE Int'l Conf. on Granular Computing, Silicon Valley, CA, USA, Nov. 2007(GrC'07), pp. 66 - 71.

17. Chandrasekaran B. Design problem solving: a task analysis. AIMagazine, Vol. 11, no. 4, 1990, pp. 59 - 71.

18. Zhu H., Zhou M.C. Object-Oriented Programming with C++, Tsinghua Univ. Press, 2006.

19. Zhu H. The role mechanisms in collaborative systems. Int'l J. of Production Research, 2006, Vol. 44, no. 1, pp. 181 -193.

20. Zhu H., Zhou M.C. Role-based collaboration and its kernel mechanisms, IEEE Trans. on Systems, Man and Cybernetics, Part C, 2006, Vol. 36, no. 4, pp. 578 - 589.

21. Zhu H., Zhou M.C. Supporting software development with roles, IEEE Trans. on Systems, Man and Cybernetics, Part A, 2006, Vol. 36, no. 6, pp. 1110 - 112.

22. Zhu H. Improving Object-Oriented Analysis with Roles. Proc. of the IEEE Int'l Conf. on Cognitive Informatics, Lake Tahoe, CA, USA, Aug. 2007, pp. 430 - 439.

23. Liu Q. Granules and reasoning based on granular computing. Proc. of the 16th Int'l Conf. on Developments in Applied Artificial Intelligence, Laughborough, UK. 2003, Lecture Notes In Computer Science, Vol. 2718, pp. 516 -526.

References

1. Bargiela A., Pedrycz W. The roots of granular computing. Proc. of the IEEE Int'l Conf. on Granular Computing, 2006, pp. 806-809.

2. Lin T.Y. Granular computing: examples, intuitions and modeling. Proc. of IEEE Int'l Conf. on Granular Computing, 2005, Beijing, China (GrC'05), pp. 40-44.

3. Lin T.Y. Granular computing: a problem solving paradigm. Proc. of the IEEE Int'l Conf. on Fuzzy Systems, 2005, Reno, Nevada, USA, pp. 132-137.

4. Pedrycz W. Granular computing: an introduction. Proc. of the IFSA World Congress and 20th NAFIPS Int'l Conf., 2001, Vancouver, BC, Canada, vol. 3, pp. 1349-1354.

5. Yao J.T., Yao Y.Y. Information granulation for web based information retrieval support systems. Proc. of SPIE, 2003, Vol. 5098, Orlando, FL, USA, pp. 138-146.

6. Yao J.T. Information granulation and granular Relationships. GrC'05, pp. 326- 329.

7. Yao J.T. A Ten-Year Review of Granular Computing. GrC'07, pp. 734-739.

8. Yao Y.Y. A partition model of granular computing. LNCS Transactions on Rough Sets I, 2004, vol. 3100, pp. 232-253.

9. Yao Y.Y. The art of granular computing. Proc. of the Int'l Conf. on Rough Sets and Emerging Intelligent Systems Paradigms, LNAI 4585, 2007, pp. 101-112.

10. Yao Y.Y. Perspectives of granular computing. GrC'05, pp. 85-90.

11. Yao Y.Y., Zhong, N. Granular computing using information tables", Lin T.Y., Yao Y.Y., Zadeh, L.A. (Eds.), Data Mining, Rough Sets and Granular Computing, Physica-Verlag, Heidelberg, 2002, pp. 102-124.

12. Louie E., Lin T.Y., Hu X. Analysis of using granules to find association rules. GrC'05, pp. 556-560.

13. Zadeh L.A. Some reflections on soft computing, granular computing, and their roles in the conception, design and utilization of information/intelligent systems. Soft Computing, 1998, vol. 2, pp. 23-25.

14. Zadeh L.A. Towards a theory of fuzzy information granulation and its centrality in human reasoning and fuzzy logic. Fuzzy Sets and Systems, 1997, vol. 19, pp. 111-127.

15. Keet C.M. Granulation with indistinguishability, equivalence, or similarity. GrC'07, pp. 11-16.

16. Han J., Dong J. Perspectives of granular computing in Software Engineering. Proc. of the IEEE Int'l Conf. on Granular Computing, Silicon Valley, CA, USA, 2007(GrC'07), pp. 66-71.

17. Chandrasekaran B. Design problem solving: a task analysis. AIMagazine, 1990, vol. 11, no. 4, pp. 59-71.

18. Zhu H., Zhou M.C. Object-Oriented Programming with C++. Tsinghua Univ. Press, 2006.

19. Zhu H. The role mechanisms in collaborative systems. Int'l J. of Production Research, 2006, vol. 44, no. 1, pp. 181-193.

20. Zhu H., Zhou M.C. Role-based collaboration and its kernel mechanisms. IEEE Trans. on Systems, Man and Cybernetics, Part C, 2006, vol. 36, no. 4, pp. 578-589.

21. Zhu H., Zhou M.C. Supporting software development with roles. IEEE Trans. on Systems, Man and Cybernetics, Part A, 2006, vol. 36, no. 6, pp. 1110-112.

22. Zhu H. Improving Object-Oriented Analysis with Roles. Proc. of the IEEE Int'l Conf. on Cognitive Informatics, Lake Tahoe, CA, USA, 2007, pp. 430-439.

23. Liu Q. Granules and reasoning based on granular computing. Proc. of the 16th Int'l Conf. on Developments in Applied Artificial Intelligence, Laughborough, UK, 2003, Lecture Notes In Computer Science, vol. 2718, pp. 516 - 526.

Поступила в редакцию 14 августа 2015 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.