Project

General

Profile

Feature #2916

Переосмысление атрибутов id и name у требований

Added by Alexey Khoroshilov over 7 years ago. Updated about 6 years ago.

Status:
Closed
Priority:
High
Category:
-
Target version:
Start date:
05/30/2012
Due date:
% Done:

100%

Estimated time:
Published in build:
0.14.167

Description

У нас есть целый набор идентификаторов требований:
  • id - идентификатор, который одназначно идентифицирует требование внутри его родителя
  • quid - полный идентификатор, который одназначно идентифицирует требование в ReqDB. Строится как конкатенация id требования и его родителей, начиная с корня дерева.
  • name - альтернативное имя, которое более понятно пользователю, чем идентификатор. В случае инстациации базовых требований - может быть в виде шаблона (что нельзя делать с id).
  • user-visible-id - формируется автоматически на основе name и id. Сейчас считается так: если name!=id, то 'name', иначе 'user-visible-id(parent)/id(self)'. Идея была такая, что в рамках конкретного проекта определяется дисциплина работы с именами требований, чтобы user-visible-id являлся уникальным в рамках проекта и таким образом мог использоваться для ссылок снаружи.
Проблемы:
  1. Способ генерации идентификаторов при разметке (который работает хорошо для случая POSIX или LSB) оказывается неудобным, если его использовать без ручной правки идентификаторов для требований-контейнеров.
  2. Текущая реализация работы с svn приводит к тому, что id не скрыты от пользователя. В результате работать с проектами со сгенерированными id крайне неудобно из-за большого числа малоотличимых папок 01/01/01/...

Сюда же надо присовокупить оставшееся нереализованным пожелание из #1011.

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


Related issues

Related to Requality - Bug #3579: При создании требования из UniEditor запрашивается имя, а создается idClosed10/12/2012

Actions

Associated revisions

Revision 2977 (diff)
Added by Андрей Третьяков about 7 years ago

fixes #2916: Changed Requirement.getName() and Requirement.setName() logic; Changed UniEditor's editing Name/Id logic; Removed unreferenced classes for old Requirement Editor; Fixed bug with child nodes when editing parent node's name.

Revision 01f1618a (diff)
Added by Андрей Третьяков about 7 years ago

fixes #2916: Changed Requirement.getName() and Requirement.setName() logic; Changed UniEditor's editing Name/Id logic; Removed unreferenced classes for old Requirement Editor; Fixed bug with child nodes when editing parent node's name.

git-svn-id: https://forge.ispras.ru/svn/reqdb/trunk/requality@2977 f558eac1-05b1-4da7-9ed5-5050e8a619d6

Revision 2977 (diff)
Added by Андрей Третьяков about 7 years ago

fixes #2916: Changed Requirement.getName() and Requirement.setName() logic; Changed UniEditor's editing Name/Id logic; Removed unreferenced classes for old Requirement Editor; Fixed bug with child nodes when editing parent node's name.

History

#1

Updated by Alexey Khoroshilov over 7 years ago

  • Description updated (diff)
#2

Updated by Андрей Третьяков over 7 years ago

user-visible-id:
Появилась потребность, чтобы id требования мог совпадать с его именем (Name), а значит, и с user-visible-id (в противном случае реализация user-visible-id ломает Update DOORS Processor и обратную совместимость с уже существующими обработанными документами и деревьями требований).
В то же время, необходимо различать ситуации, когда имя требования (Name, а значит, и user-visible-id) задано, а когда нет.
Поэтому предлагается для случая незаданного имени удалять атрибут Name не тогда, когда он равен id (как сделано сейчас), а когда он пустой (равен "").

#3

Updated by Alexey Khoroshilov about 7 years ago

Андрей Третьяков wrote:

user-visible-id:
Появилась потребность, чтобы id требования мог совпадать с его именем (Name), а значит, и с user-visible-id (в противном случае реализация user-visible-id ломает Update DOORS Processor и обратную совместимость с уже существующими обработанными документами и деревьями требований).
В то же время, необходимо различать ситуации, когда имя требования (Name, а значит, и user-visible-id) задано, а когда нет.
Поэтому предлагается для случая незаданного имени удалять атрибут Name не тогда, когда он равен id (как сделано сейчас), а когда он пустой (равен "").

В дополнение к этому предлагается изменить поведение UniEditor: если имя не установлено, то UniEditor отображает и редактирует идентификатор требования, иначе - имя. (Сейчас UniEditor всегда редактирует имя, а отображает имя, а если оно не установлено - то идентификатор).

#4

Updated by Alexey Khoroshilov about 7 years ago

В итоге получается следующее объяснение видов имен для широкой массы пользователей (которая не работает с параметризацией и инстанциированием дерева требований):
  • id - идентификатор, который одназначно идентифицирует требование внутри его родителя
  • quid - полный идентификатор, который однозначно идентифицирует требование в проекте Requality. Строится как конкатенация id требования и id его родителей через символ '/', начиная с корня дерева.
  • name - необязательный атрибут, который устанавливается пользователем вручную, если он хочет уникально идентифицировать данное требование в проекте ReqDB более коротко, чем quid.
  • user-visible-id - способ автоматического распространения уникальной идентификации требований с помощью атрибута name на детей.
    Формируется следующим образом: если name установлено, то 'name', иначе 'user-visible-id(parent)/id(self)'. Таким образом, user-visible-id является альтернативным способом уникальной идентификации требований в рамках проекта Requality.

Конечно, если включить в рассмотрение инстанциирование, то картина получается немного более сложная.

#5

Updated by Андрей Третьяков about 7 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

Applied in changeset r2977.

#6

Updated by Андрей Третьяков about 7 years ago

Applied in changeset r524.

#7

Updated by Андрей Третьяков about 7 years ago

  • Assignee set to Андрей Третьяков
  • Target version set to 0.14
#8

Updated by Андрей Третьяков about 7 years ago

  • Published in build set to 0.14.167
#9

Updated by Viktoria Kopach almost 7 years ago

  • Status changed from Resolved to Verified
  • Assignee changed from Андрей Третьяков to Alexey Khoroshilov
#10

Updated by Alexey Khoroshilov about 6 years ago

  • Status changed from Verified to Closed

Also available in: Atom PDF