Требования к программе

Введение

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

Основание для разработки

Основанием для разработки данной программы служит задание на курсовой проект по дисциплине "Качество и надежность программного обеспечения", выданное доцентом кафедры ПОАС Сычевым Олегом Александровичем 5.02.2014 г.

Назначение разработки

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

Требования к программе

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

4.1 Функциональные требования:

- Программа должна принимать на вход текстовый файл, формат которого описан в приложении N.

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

- Корректно обрабатывать ситуации с видами различий, описанные в приложении N.

4.2 Нефункциональные требования:

- Корректно обрабатывать ошибки ввода данных в соответствии с приложением.

Приложение

Таблица 1. Поддерживаемые операции

Операция Описание Пример работы
insert:lexemindex:place:symbol Вставляет символ "symbol" в лексеме с индексом lexemindex (индексация начинается с 0) в место с индексом place (индексация начинается с 0 перед первым символом). При многократном использовании индексация производится с учетом порядка вызова операции. Нельзя добавить символ, если исходная строка пустая, т.к. в ней отсутствуют лексемы. Вставка производится только в лексему. Вставка символа в середине лексемы insert:3:2:s Вставка символа в конец лексемы insert:4:3:! Вставка нескольких символов в одно место insert:3:1:e insert:3:1:s Вставка нескольких символов в соседние места insert:0:4:l insert:0:4:i insert:0:4:e insert:0:4:v insert:0:5:b insert:0:5:l insert:0:5:e
insertlexem:place:lexem Вставляет лексему "lexem" в указанное место с индексом place (индексация начинается с 0 перед первой лексемой). При многократном использовании индексация производится с учетом ранее вставленных элементов. Можно вставить лексему в пустую строку. Вставка в середину строки одной лексемы. insertlexem:2:the Вставка в начало строки одной лексемы insertlexem:0:Cat Вставка в строку нескольких лексем insertlexem:0:Cat insertlexem:0:is Вставка в пустую строку { } insertlexem:0:hello
delete:lexemindex:place Удаляет символ с индексом place (индексация начинается с 0) в лексеме с индексом lexemindex. Удаление символа в лексеме delete:2:0 Удаление нескольких символов в лексеме delete:1:2 delete:1:2
deletelexem:lexemindex Удаляет из строки лексему с индексом lexemindex (индексация начинается с 0) Удаление лексемы из строки deletelexem:2 Удаление нескольких лексем из строки deletelexem:2 deletelexem:2
move:lexemfromindex: placefromindex: lexemtoindex: placetoindex Перемещает символ с индексом placefromindex лексемы lexemfromindex на позицию placetoindex лексемы lexemtoindex. Каждая следующая стрелка увеличивается, чтобы избежать наложений (Пересечения возможны) Перенос символа из одной лексемы в другую move:0:3:3:3 Перенос нескольких символов из разных лексем move:0:4:3:3 move:0:3:4:2 Перенос нескольких символов с пересечением стрелок move:0:3:4:2 move:0:4:3:3
movelexem:lexemindex:place Перемещает лексему с индексом lexemindex на позицию с индексом place (индексация начинается с 0 перед первой лексемой) Перемещение одной лексемы movelexem:4:0
space:lexemindex:place Вставляет разделитель в лексеме lexemindex в позицию place Вставка разделителя в лексеме space:0:3
Замена символа    
Замена лексемы    

приложение 2

формат входных данных.

На вход программы передается текстовый файл в формате txt. В нем содержится строка, разбитая на лексемы и список операций, совершаемых над строкой. Исходная строка записывается в фигурных скобках, каждая лексема с новой строки. Далее перечисляются операции, каждая операция вводится с новой строки и записывается в фигурных скобках. В случае пустой входной строки ставятся пустые фигурные скобки, каждая с новой строки.

Пример:

{

Cat

is

the

best

pet

}

{space:1:1}

{addlexem:4:!}

Пример 2. Пустая исходная строка:

{

}

{insertlexem:0:hello}

Таблица 2. Ошибки входных данных.

Ошибка Пример Сообщение при обнаружении ошибки/обработка
Неверный формат входного файла Input.doc Input file was not found
Ввод несуществующей операции {append:2:3} Invalid operation name
Обращение к несуществующему символу или лексеме I Like Apple {deletelexem:5} Invalid operation index
Неверное количество параметров операции {insert:3} Invalid operation parameters
Более одной лексемы на одной строке при вводе редактируемой строки { I Like apple } Invalid string format
Неправильно расставлены фигурные скобки { I Like {delete:0} Invalid open/close symbols
     

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: