Work-plan » History » Revision 13
Revision 12 (Yuriy Shekochihin, 03/05/2010 07:54 AM) → Revision 13/14 (Yuriy Shekochihin, 03/09/2010 10:01 AM)
h1. План улучшений requality
h2. Типизированные атрибуты
Каждому атрибуту узла соответствует определенный тип, который накладывает ограничения на значение атрибута.
Типы атрибутов можно разбить на три класса:
* шаблонные(int, float, boolean, string, ...);
* перечислимые(например имена всех дочерних узлов какого либо узла);
* специальные(id, predicate).
h2. Идентификаторы узлов
Каждому узлу дерева соответствует идентификатор. Идентификатор - это последовательность "безопасных" символов. Кроме того, для идентификаторов узлов в исходном дереве допускаются символы ''{'', ''}'' и ''$''. Подстроки вида ${name}, где name-имя атрибута контекста, называются параметрами. Идентификатор узла, содержащий параметры, называется параметризованным. При инстанцировании параметры заменяются на значения атрибутов. Таким образом идентификаторы исходного дерева преобразуются в параметры производного дерева.
h2. Укороченные ссылки на узлы дерева
Возможно использовать неполный идентификатор для указания узла в дереве, если его достаточно для однозначного определения узла дерева. Если узел, на который ссылаются, имеет идентификатор "c" и родителя "b", родителем "b" является узел "a", то на узел "с" возможно сослаться следующими образами:
* ".a.b.c" - полный идентификатор;
* "с" - идентификатор узла в описанном дереве является уникальным, что делает такой вариант допустимым;
* "a.**.c" - узел "с" в поддереве "a";
* "b.c" - узел "с", являющийся ребенком узла "b"
h2. Необязательное название узлов
Одним из необязательных атрибутов узла является его имя. Предполагается, что оно будет использоваться вместо идентификатора узла при генерации отчетов.
h2. Шаблонные узлы
Свойство узла обозначающее, что узел является шаблонным указывается явно. Это нужно по следующим причинам: базовые требования не попадают в производное дерево, если на них не ссылаются; при указании ссылки на базовое требование желательно позволять указывать только базовые узлы.