Project

General

Profile

Perspective » History » Revision 70

Revision 69 (Viktoria Kopach, 03/28/2011 11:51 AM) → Revision 70/73 (Viktoria Kopach, 03/28/2011 11:53 AM)

h1. Перспектива Requality 

 Перспектива Requality содержит: 
 # Requality Explorer view, в котором отображается дерево проектов и их содержимое (документы, требования и т.п.); 
 # Properties view, в котором отображаются подробности отдельных элементов проекта; 
 # Document Markup editor, в котором осуществляется редактирование и просмотр разметки документа; 
 # Document Markup Outline view, в котором отображается структура разметки документа. 

 h2. 1. [[requality-explorer-view|Requality Explorer view]] 

 Requality Explorer содержит все проекты, что и PackageExplorer, но развернуть можно только проекты типа Requality. 
 В Requality-проекте есть две папки: Documents и Requirements (содержащие, соответственно, документы с требованиями и сами требования). 

 *Documents* 
 При двойном клике на документ он открывается в редакторе Markup editor. 
 Контекстное меню папок Documents содержит пункты: 
 * Import Document - импортирование документа 
 * Create Folder - создается папка внутри текущей папки (отсутствует для самой папки Documents). 
 * Remove Folder - удаляется папка. 
 При импорте документа открывается окно, в котором нужно выбрать импортируемый документ. Так же нужно указать папку, куда этот документ будет импортирован. По умолчанию изначально выделена та папку, на которой кликали, чтобы открыть импортирование документа. В окне импорта есть кнопка для создания новой папки. 
 При удалении пустой папки должно появляться аналогичное окно для подтверждения удаления папки. в случае отрицательного ответа папка не удаляется, в случае положительного - удаляется. При удалении папки, содержащей документы, должно появиться аналогичное окно, но в нем еще должно быть сообщение о том, что папка не пуста и ее удаление повлечет за собой удаление всех вложенных документов. В случае отрицательного ответа ни документы, ни папка не должны быть удалены. В случае положительного - папка с документами удаляется. 

 Контекстное меню документов содержит пункты: 
 * Create Folder - создается папка на уровне документа в той же папке. 
 * Remove Document - документ удаляется. Что происходит с location''ами и требованиями, у которых location''ы только в этом документе? 
 * Update Document 
 * HTML Headers Document Processor - создается требование для каждого тега <h#>...</h#>. 
 При выборе в контекстном меню документа пункта HTML Headers Document Processor должно появиться окно с прогресс-баром, показывающее степень выполнения процесса. По завершении должно появиться окно, сообщающее об успешности выполнения и количестве созданных требований (если ни одного, то 0) 

 *Requirements* 
 При *двойном клике* на требование: 
 # требование становится выделенным; 
 # если для документа первого location требования Document markup editor ещё не открыт, он открывается; 
 # вкладка с указанным Document markup editor становится видимой; 
 # в Outline view первый location требования становится выделенным (следующие два пункта выполняются при любом изменении выделения в Outline view); 
 # документ в указанном Document markup editor перематывается так, чтобы вверху видимой области редактора оказался текст первого location требования; 
 # текст этого location специально подсвечивается; 
 # если для выделенного требования есть pinned Properties view, вкладка с ним становится видимой. Иначе видимой становится вкладка с одними из unpinned Properties view, если такого нет, оно открывается. 
 # подробности выделенного требования отображаются во всех pinned Properties view для него и во всех unpinned Properties View; 

 При *выборе требования (одинарный клик, переключение стрелочками)*: 
 # требование становится выделенным. 
 # подробности выделенного требования отображаются во всех pinned Properties view для него и во всех unpinned Properties View; 

 Контекстное меню требований содержит пункты: 
 * Add Requirement... 
 * Remove Requirement 
 * Generate Report 

 h2. 2. [[requality-properties-view|Properties view]] (Редактор требований). 

 Properties view содержит вкладки: 
 * Main 
 ** Id 
 ** Name 
 ** Attributes 
 * Advanced 
 ** Predicate (возможно стоит его перенести на вкладку Main? Или он может быть слишком большой?) 
 ** Base requirement 
 * Descriptions 
 ** Alternative description 
 ** список location''ов, отсортированный по документам. 
 * Source 
 ** json 

 *Меню (view menu)* 
 * *Во view menu пункт Pin to Selection*. 
 * При выборе этого пункта меню нажимается кнопка Pin (это второй способ ее нажатия). Кнопка Pin выглядит нажатой. Этот пункт меню выделяется как нажатый. При повторном нажатии Pin отжимается и выделение пункта меню снимается. Кнопка Pin отжата. Все происходящие изменения такие же, как при нажатии кнопки Pin. 

 * *Во view menu пункт New Properties View* 
 * При выборе этого пункта открывается новая закладка с редактором того же требования и не нажатой кнопкой Pin. (Что будет, если в редакторе внести изменения, не сохранить и выбрать это меню?) 

 * *Кнопка «Канцелярская кнопка» (Pin) для закрепления Properties view*  
 * Если кнопка Pin выглядит нажатой, то это Properties View отображает детали фиксированного требования, которое было выделенным в момент нажатия кнопки. Если кнопка Pin выглядит отжатой, то в этом Properties View отображаются детали выделенного требования. При изменении выделения меняется и отображаемое требование. 

 *Вкладка Main* 
 Поля Id и Name имеют возможность редактирования. Изначально в поле Name стоит такое же значение, как и Id. 
 В таблице Attributes при двойном клике на атрибут можно его редактировать. Около таблицы есть кнопки Add (позволяет добавить новый атрибут) и Remove (позволяет удалить атрибут, который в данный момент выделен). Remove активна только тогда, когда выделен один из атрибутов в таблице.  

 *Вкладка Advanced* 
 Поле предиката может редактироваться. 
 Около таблицы Base Requirements есть кнопки Add (позволяет добавить новое базовое требование) и Remove (позволяет удалить базовое требование, которое в данный момент выделено). Remove активна только тогда, когда выделено одно из требований в таблице. 
 При нажатии (дабл-клик) на базовое требование происходит переход к редактору базового требования (Если окно редактора не закреплено - редактор базового требования открывается в нем. Если закреплено, но есть другое открытое незакрепленное окно редактора - то в этом окне. Иначе - нигде.) Так же нужно перелистывать документ в Markup''е на нужное location. И, соответственно, переключать Outline. 
 В качестве базового требования для текущего требования нельзя добавить само текущее требование. В реализации нужно либо исключить возможность выбрать само текущее требование (например, не отображать его в списке требований), либо при попытке нажать ОК в выборе требования выводить сообщение о недопустимости такого действия. 

 -*Выбор другого документа* 
 Если на вкладке Documents нажать документ, который еще не был открыт, то он откроется на первом указанном в редакторе требования location, находящемся в этом документе (location пролистывается в верх видимой области и выделяется цветом). Этот же location выделяется в Outline.- 

 *Вкладка Description* 
 В Description находится список имен всех location''ов этого требования (из всех документов), отсортированный по документам (???). Имена location''ов выглядят так же, как и в outline:  
 user-visible-name(req) - это 
 * name, если name не пустое  
 * user-visible-name(req.parent).id, иначе. 

 При дабл-клике на имя location''а документ пролистывается на этот location. Если документ с этим location''ом не был еще открыт, то он открывается. Редактор документа становится видимым. Происходят все соответствующие переключения в Outline и Requality Explorer. 

 *Кнопка переключения между location''ами* 
 В редакторе требования есть кнопка для переключения на следующий и предыдущий location. Порядок location''ов соответствует их порядку в редакторе требования. При переключении на другой location этот location выделяется в Outline и редакторе документа (пролистывается в верх видимой области и выделяется цветом). 

 *Внесение изменений на вкладке, кнопка Save* 
 Кнопка Save есть во вкладках Main, Advanced и Description. Она неактивны изначально. Становится активна при редактировании информации на ее вкладке. При нажатии сохраняет внесенные изменения, после чего становится неактивной (до внесения новых изменений). 
 При внесении изменений на вкладке в ее заголовке появляется значок "*" (звездочка). Исчезает после сохранения изменений. Если в окне Properties на одной из вкладок внести изменения, не сохранить и переключиться на другую вкладку, должно появляться окно с предупреждением о том, что есть несохраненные изменения, и предложением их сохранить. 

 h2. 3. [[requality-markup-editor|Document Markup editor]](Редактор документа) 

 Это окно-браузер с текстом документа. В нем размечаются требования. Редактировать текст нельзя. 
 *Выделение требований из окна Document Markup editor.* 
 Выделить часть текста, в контекстном меню выбрать Add to requirement... Появляется окно Requirement selection со списком уже существующих требований.  
 +Окно Requirement selection.+ 
 Позволяет выбрать существующее требование для добавления в него location''а или создать новое. Имеет кнопки create new, OK и Cancel. Если одно из требований (или папка требований) выбрано, то все три кнопки активны, иначе активна только кнопка Cancel. Новое требование создается внутри выбранного требования. 
 При нажатии create new открывается окно редактора идентификатора, в котором есть строка для ввода идентификатора нового требования и кнопки OK и Cancel (обе активные). После ввода Id и нажатия OK в окне выбора требования в дереве требований появляется новое требование с введенным Id, расположенное внутри требования, которое было выбрано; новое требование теперь выделено. Если Id не было введено (поле осталось пустым), при нажатии OK появляется предупреждение о том, что Id не может быть пустым. Если требование с таким Id уже существует внутри узла выбранного требования, появляется предупреждение о том, что требование с таким Id уже есть. 
 При нажатии OK в окне выбора требования окно закрывается, а location добавляется к выбранному требованию. 
 Если этот location не был ранее выделен, то он маркируется выделением. 

 *Поиск по документу.* 
 Поиск по документу открывается через контекстное меню Find... и по hot-key CTRL+F. При этом открывается окно поиска.  
 В окне поиска есть редактируемое поле (выпадащий список), в котором указывается искомый текст. Это поле раскрывается в список предыдущих запросов поиска. Если выделить какой-то кусок текста в документе и вызвать поиск, выделенный текст появится в этом поле.  
 Окно поиска содержит следующие галочки: учитывать регистр, только слово целиком.  
 Окно поиска содержит следующие кнопки: искать все, искать далее, искать к началу документа (вверх по документу). Должны быть горячие клавиши для поиска вниз по документу и для поиска к началу документа. 

 *В контекстном меню есть пункт Show identifiers.* При выборе этого пункта над всеми location''ами появляются всплывающие подсказки с их Id (или именами?). В контекстном меню этот пункт выделяется галочкой, как выбранный. При снятии галочки всплывающие подсказки исчезают. 
 Если Show identifiers не выбран, то при наведении курсора на требование возникает всплывающая подсказка с его именем. 

 *В контекстном меню есть пункт Show version.* При его выборе возникает окно с информацией о версии используемого браузера. 

 *В контекстном меню есть пункт Find...* При выборе этого меню открывается окно поиска. 


 h2. 4. [[requality-outline-view|Document Markup Outline view]] 

 +Outline - плоский вид+ 

 В Outline должен быть список location''ов в порядке их присутствия в html документе. 

 Каждый location отображается следующим образом: 
 # Если location соответствует ноль требований в базе, то отображается текст "orphan location" красным жирным шрифтом. 
 # Если location соответствует одно требование, то user-visible-name(req). 
 # Если location соответствует несколько требований, то user-visible-name(req1),user-visible-name(req2),user-visible-name(req3). 

 Если в данном документе у одного требования несколько location''ов, то в тексте выше user-visible-name(req) заменяется на user-visible-name(req)#i, где i - порядковый номер location''а среди всех location''ов данного требования в данном документе. 

 Определение user-visible-name(req) следующее:  
 * name, если name не пустое  
 * user-visible-name(req.parent).id, иначе 

 Кроме того, Outline должет быть синхронизирован с Document''ом в том смысле, что 
 # всегда при событии приводящем к промотке документа на определенный location, этот location должен выделяться в Outline. 
 # при выделении location в Outline необходимо проматывать документ к этому location. 

 -(Зачеркнуто, т.к. неактуально, но может понадобиться потом)- 
 -В outline находится список всех location''ов. Список может быть в двух форматах:- 
 * -список location''ов в порядке их нахождения в документе (в текущем открытом документе или во всех документах?)- 
 * -список location''ов, сгруппированных по требованиям (требования - это узлы, раскрывающиеся в списки location''ов). Внутри группы location''ы упорядочены в порядке нахождения в документе. - надо разбить на два: в одном все location''ы только из текущего документа, в другом - все location''ы, принадлежащие требованиям, которые есть в этом документе (включая location''ы из других документов).- 

 При выборе одного из location''ов: 
 # документ пролистывается так, чтобы это location оказалось вверху видимой области документа 
 # текст location''а в документе размечается выделением.  
 # если документ был закрыт, то он сначала открывается. - ? 
 При этом  
 # если выбирается location, принадлежащий документу, редактор которого открыт, но неактивен, этот редактор становится активен и выполняются все вышеперечисленные пункты. 
 # -если выбирается location, принадлежащий документу, редактор которого не открыт, этот редактор открывается и выполняются все вышеперечисленные пункты.- 
 # если выбирается location, принадлежащий другому требованию (которое сейчас не выбрано), это требование выделяется в Requality Explorer''е и открывается в Properties view и выполняются все вышеперечисленные пункты.