В нынешнее время компьютерные технологии все больше и больше внедряются в жизнь современного человека и его образовательный процесс. Появляется великое множество простых и весьма сложных компьютерных программ для применения в области образования. Порой сложно понять и начать учиться основам написания программ на неизвестных языках программирования. Гораздо проще начинать изучать основы на более интуитивно понятных языках. Также немаловажным в обучении на занятиях по программированию является сам интерфейс для работы с пользователем, который также должен выполняться на естественном языке.
Основываясь на этом, появляется идея разработки текстового редактора для русскоязычного интерпретатора языка программирования, в рамках которой, будет представлена возможность создания, редактирования и интерпретации программ, написанных на языке программирования, основанном на русском языке.
Не мало важным является тот факт, что система будет содержать возможность экспортирования набранного кода программы в язык высокого уровня Pascal, что дает дополнительный толчок для интереса изучения написания программ.
Система содержит интегрированную среду разработчика, которая предоставляет возможности по визуальному вводу и редактированию программы, что в конечном итоге не только облегчает понимание написанного, но и сильно облегчает процесс создания программ.
1. Наименование работы
Работа выполняется в рамках дипломного проекта «Разработка текстового редактора для русскоязычного интерпретатора языка программирования».
2. Основание для разработки
2.1. Основанием для данной работы служит задание на дипломное проектирование.
2.2. Исполнители: Александров Д.М.
2.3. Соисполнители: нет.
3. Назначение разработки
Программа предназначена для общеобразовательных учреждений. Основной функцией программы является работа с текстом и файлами, в редакторе, на языке программирования, основанным на русском языке.
4. Технические требования
4.1.Требования к функциональным характеристикам.
Разрабатываемое ПО должно обеспечивать:
- работу с файлами;
- выполнение операций по редактированию вводимого текста;
- проверка и запуск на выполнение программ на языке Русич;
- наличие возможностей среды программирования.
4.1.1. Состав выполняемых функций:
- ввод исходного текста программы на русскоязычном языке программирования;
- операции открытия и сохранения файлов программы;
- операции редактирования текста;
- выполнение программного кода с отображением результата выполнения.
4.1.2. Организация входных и выходных данных.
Создание программы-переводчика текстов с английского на русский язык
... программ любого типа и размера. Разработка программ на Паскале включает в себя следующие действия: ввод и редактирование текста на языке программирования, трансляция и отладка программы. ... язык, как язык международного значения. Поэтому ставится задача создания более совершенных переводчиков. Разработанный проект демонстрирует переводчик, работа с которым очень удобна для пользователя. Программа ...
Входными данными для программы является исходный текст программы на русскоязычном языке программирования.
Выходными данными для программы является файл набранный программы, а также файл на языке высокого уровня Pascal.
4.2. Требования к надежности.
Программное средство должно обеспечивать надежное функционирование по обработке данных. Проверять корректность поступающих и обрабатываемых сведений. Также обеспечивать безопасность и целостность данных.
4.3. Условия эксплуатации и требования к составу и параметрам технических средств.
Требования к составу и параметрам технических средств уточняются на этапе эскизного проектирования системы.
4.4. Требования к информационной и программной совместимости.
Программа должна работать на платформах Windows 2000/XP/Vista/7.
4.5. Требования к транспортировке и хранению.
Программа поставляется на лазерном носителе информации или флеш-карте;
- Программная документация поставляется в электронном и печатном виде.
4.6. Специальные требования.
Ввиду объемности проекта задачи предполагается решать поэтапно, при этом модули ПО, созданные в разное время, должны предполагать возможность наращивания системы и быть совместимы друг с другом, поэтому документация на принятое эксплуатационное ПО должна содержать полную информацию, необходимую для работы программистов с ним.
Используемый язык программирования — С++.
5. Требования к программной документации
Документация на разработку программного продукта «Разработка текстового редактора для русскоязычного интерпретатора языка программирования» и состав документации к нему должны соответствовать следующим разделам стандарта ЕСПД:
- Виды программных документов ГОСТ 19.101-77;
- Стадии разработки ГОСТ 19.102-77;
- Техническое задание. Требования к содержанию и оформлению ГОСТ 19.201-78;
- Схемы алгоритмов, программ данных и систем ГОСТ 19.701-90;
- Текст программы ГОСТ 19.401-78;
- Описание программы ГОСТ 19.402 -78;
- Программа и методика испытаний ГОСТ 19.301-79
- Пояснительная записка ГОСТ 19.404-79;
- Описание применения ГОСТ 19.502-78;
- Руководство системному программисту ГОСТ 19.503-79;
- Руководство программиста ГОСТ 19.504-79;
- Руководство оператору ГОСТ 19.505-79.
6. Технико-экономические показатели
Себестоимость продукции — это затраты предприятия на ее производство и реализацию, выраженные в денежной форме. Различают плановую и фактическую себестоимость.
Плановая себестоимость продукции включает в себя только те затраты, которые при данном уровне техники и организации производства являются для предприятия необходимыми. Они исчисляются на основе плановых норм использования оборудования, трудозатрат, расхода материалов.
Подробный расчет технико-экономических показателей произведен при подготовке полной документации по проекту.
7. Порядок контроля и приемки
После передачи Исполнителем отдельного функционального модуля программы Руководителю проекта последний имеет право тестировать модуль в течение 7 дней. После тестирования Руководитель проекта должен принять работу по данному этапу. В случае обоснованного отказа Исполнитель обязуется доработать модуль.
8. Календарный план работ
№ этапа |
Название этапа |
Сроки этапа |
Чем заканчивается этап |
|
1 |
Анализ предметной области. Разработка технического задания на разработку модуля. |
09.01.2012-19.02.2012 |
Предложения по работе системы. Техническое задание на разработку модуля |
|
2 |
Постановка задачи, разработка эскизного проекта рабочей программы. Построение структурной, функциональной схем и алгоритма программы. |
20.02.2012-31.03.2012 |
Эскизный проект рабочей программы. Структурная, функциональная схема, алгоритм программы. |
|
3 |
Разработка русскоязычного интерпретатора языка программирования. Тестирование и отладка модуля. |
01.04.2012-02.06.2012 |
Готовый программный модуль «Русскоязычный интерпретатор языка программирования». |
|
текстовый редактор интерфейс русскоязычный
1.1 Анализ предметной области
Текстовые редакторы предназначены для обработки текстовой информации и выполняют, в основном, следующие функции:
- запись текста в файл;
- вставка, удаление, замена символов, строк, фрагментов текста;
- оформление текста различными шрифтами;
- поиск и замена слов и выражений;
- печать текста.
Типовая структура интерфейса включает ряд элементов:
Строка меню содержит имена групп команд, объединенных по функциональному признаку. Строка меню находится в верхней части экрана. Выбор режима из строки меню открывает соответствующее подменю, а выбор определенной опции в нем обеспечивает доступ к меню более низкого уровня. Такая система вложенных (ниспадающих) меню составляет основу интерфейса текстового процессора. Команды меню выбираются с помощью мыши, клавиш управления курсором или комбинаций нажатия определенных клавиш («горячих клавиш»).
Рабочее поле — это пространство на экране дисплея для создания документа и работы с ним. Максимальный размер рабочего поля определяется стандартными параметрами монитора.
Линейка прокрутки служит для перемещения текста документа в рабочем поле окна Линейка, обеспечивающая вертикальное перемещение текста, называется вертикальной линейкой прокрутки, а горизонтальное перемещение — горизонтальной линейкой прокрутки.
1.2 Цели разработки текстового редактора для русскоязычного интерпретатора языка программирования
Главной целью создания текстового редактора для русскоязычного интерпретатора языка программирования является создание, редактирование, сохранение программ, написанных на языке программирования, основанном на русском языке, а также экспорт программного кода в язык программирования высокого уровня Pascal.
Входной информацией является текст программы, написанной на языке программирования, основанном на русском языке. При этом присутствует возможность создания пользовательских функций, в которых могут присутствовать операторы управления течением программы — ветвления, циклы, а также операторы вывода результата. Выходной информацией являются результаты выполнения программы, сообщения об ошибках, а также сохранение файлов и возможный экспорт в Pascal.
Программный продукт содержит интегрированную среду разработчика, которая предоставляет широкие возможности по визуальному вводу, редактированию и отладке программы, что в конечном итоге не только облегчает понимание написанного, но и сильно облегчает процесс создания программ.
Благодаря внедрению данного программного продукта, могут быть успешно решены следующие задачи:
- Ш Быстрое и эффективное обучение основным методам написания программ;
- Ш Создание несложных программ в данной среде программирования;
- Ш Просмотр результатов выполнения написанного кода программы;
- Ш Экспортирование в язык программирования высокого уровня Pascal.
1.3 Выбор модели разработки программного комплекса
Для разработки текстового редактора для русскоязычного интерпретатора языка программирования целесообразно использовать спиральную модель разработки, которая изображена на рисунке 1.1.
Использование спиральной модели позволяет осуществлять переход на следующий этап выполнения проекта, не дожидаясь полного завершения текущего — недоделанную работу можно будет выполнить на следующей итерации. Главная задача каждой итерации — как можно быстрее создать работоспособный продукт, который можно показать пользователям системы. Таким образом, существенно упрощается процесс внесения уточнений и дополнений в проект.
Рис. 1.1. Спиральная модель жизненного цикла.
Спиральный подход позволяет сделать процесс разработки программного обеспечения более гибким. Итерационная разработка существенно упрощает внесение изменений в проект при изменении требований заказчика.
При использовании спиральной модели отдельные элементы информационной системы интегрируются в единое целое постепенно. При итерационном подходе интеграция производится фактически непрерывно. Поскольку интеграция начинается с меньшего количества элементов, то возникает гораздо меньше проблем при ее проведении.
При данной модели разработки уменьшается уровень рисков. Данное преимущество является следствием предыдущего, так как риски обнаруживаются именно во время интеграции. Поэтому уровень рисков максимален в начале разработки проекта. По мере продвижения разработки ожидаемый уровень рисков снижается. При использовании спиральной модели снижение уровня рисков происходит с наибольшей скоростью. Это связано с тем, что при итерационном подходе интеграция выполняется уже на первой итерации, и на начальных итерациях выявляются многие аспекты проекта, такие как пригодность используемых инструментальных средств и программного обеспечения, квалификация разработчиков и т.п.
Итерационная разработка обеспечивает большую гибкость в управлении проектом, давая возможность внесения тактических изменений в разрабатываемое изделие. Например, можно сократить сроки разработки за счет снижения функциональности системы или использовать в качестве составных частей системы продукцию сторонних фирм вместо собственных разработок. Это может быть актуальным в условиях конкурентной борьбы, когда необходимо противостоять продвижению изделия, предлагаемого конкурентами.
Итерационный подход упрощает повторное использование компонентов. Это обусловлено тем, что гораздо проще выявить общие части проекта, когда они уже частично разработаны, чем пытаться выделить их в самом начале проекта. Анализ проекта после проведения нескольких начальных итераций позволяет выявить общие многократно используемые компоненты, которые на последующих итерациях будут совершенствоваться.
Спиральная модель позволяет получить более надежную и устойчивую систему. Это связано с тем, что по мере развития системы ошибки и слабые места обнаруживаются и исправляются на каждой итерации. Одновременно могут корректироваться критические параметры эффективности.
Итерационный подход дает возможность совершенствовать процесс разработки — анализ, проводимый в конце каждой итерации, позволяет проводить оценку того, что должно быть изменено в организации разработки, и улучшить ее на следующей итерации.
1.4 Обоснование выбранного языка и среды программирования
При выборе языка программирования и среды разработки во внимание было принято несколько факторов:
- техническое задание и выдвигаемые им требования для создания законченной программы;
- эффективность и актуальность использования языка программирования и среды разработки;
— Для реализации алгоритма в качестве основного был выбран язык программирования С++ — язык общего назначения, область приложений которого — программирование любых достаточно сложных программ. Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, размышляя о том, что делать. Первой цели идеально отвечает язык, который настолько «близок к машине», что всеми основными машинными аспектами можно легко и просто оперировать достаточно очевидным для программиста образом. С таким умыслом первоначально задумывался C. Второй цели идеально отвечает язык, который настолько «близок к решаемой задаче», чтобы концепции ее решения можно было выражать прямо и коротко. С таким умыслом предварительно задумывались средства, добавленные к C для создания С++.
С++ — это универсальный язык программирования, задуманный так, чтобы сделать программирование более простым и приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C (его объектно-ориентированным расширением).
Основной целью разработчиков C было создание языка, который вместо неудобного и лишенного наглядности ассемблера применялся бы в самых насущных задачах системного программирования. К достоинствам языка С относятся лаконичность записи алгоритмов, логическая стройность написанных на нем программ, их переносимость между компьютерами с различной архитектурой и различными операционными средами (чего не скажешь о программах на машинно-зависимом языке ассемблера).
Компиляторы языка разработаны практически для всех существующих в настоящее время платформ. Как никакой другой язык программирования, язык С «доверяет» программисту. Даже в таком существенном вопросе, как преобразование типов данных, налагаются лишь незначительные ограничения. Во многих случаях программы, написанные на этом языке программирования, сравнимы по скорости с программами, написанными на языке ассемблера, при этом они более наглядны и просты в сопровождении. Все это делает его удобным и эффективным средством для решения разнообразных задач.
Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы.
Различие между C и С++ состоит в первую очередь в степени внимания, уделяемого типам и структурам. C выразителен и снисходителен. С++ еще более выразителен, но чтобы достичь этой выразительности, программист должен уделить больше внимания типам объектов. Когда известны типы объектов, компилятор может правильно обрабатывать выражения, тогда как в противном случае программисту пришлось бы задавать действия с мучительными подробностями. Знание типов объектов также позволяет компилятору обнаруживать ошибки, которые в противном случае остались бы до тестирования. Немаловажно то, что использование системы типов для того, чтобы получить проверку параметров функций, защитить данные от случайного искажения, задать новые операции и т.д., само по себе не увеличивает расходов по времени выполнения и памяти. Система типов особенно полезна в нетривиальных задачах.
При выборе среды разработки во внимание было принято несколько факторов:
- техническое задание и выдвигаемые им требования для создания законченной программы;
- эффективность использования языка программирования;
- доступность необходимых библиотек, используемых в написании программы;
- Исходя из этих факторов, наиболее подходящее средство разработки различных приложений на языке программирования С++ в среде Windows является Borland C++ Builder.
Программный продукт Borland C++ Builder — это средство быстрого создания корпоративных программных продуктов, объединившее удобства визуальной среды разработки, объектно-ориентированный подход, разнообразные возможности повторного использования кода, открытую архитектуру и высокопроизводительный компилятор языка С++, одного из самых распространенных языков программирования.
Отметим основные особенности Borland C++ Builder:
- удобная среда разработки;
- быстрота разработки приложений;
- высокая производительность разработанного приложения за счет получения 32-разрядного исполняемого кода с помощью оптимизирующего компилятора;
- невысокие требования разработанного приложения к ресурсам компьютера;
- возможность полного доступа к функциям операционных систем Windows;
- возможность модернизации среды разработки за счет встраивания в нее новых компонентов, инструментов;
- возможность создавать и встраивать разнообразные отчеты.
1.5 Выводы
После проделанных действий анализа предметной области была сформулирована основная цель разработки текстового редактора для русско-язычного интерпретатора языка программирования.
Для разработки программного продукта была выбрана спиральная модель разработки программного обеспечения. В качестве языка программирования для программного продукта выбран язык С++. Разработку интерфейса было решено выполнить в интегрированной среде разработки объектно-ориениррованного яка программирования Borland C++ Builder 6.
Глава II. Аналитическая часть
2.1 Основные требования к программному продукту
В соответствии с анализом предметной области был определен список основных требований к программе:
- ввод исходного текста программы на русскоязычном языке программирования;
- операции открытия и сохранения файлов программы;
- операции редактирования текста;
- наличие возможностей среды программирования;
- выполнение программного кода с отображением результата выполнения;
- экспортирование в язык программирования высокого уровня Pascal.
2.2 Текстовые редакторы
Текстовый редактор — это программа для просмотра, создания и редактирования (внесения изменений) электронных текстовых документов.
По мере своей эволюции текстовые редакторы прошли непростой путь развития. В настоящее время существует множество текстовых редакторов, которые, исходя из своих возможностей, предназначения, и ориентации на разные цели и задачи, условно делятся на несколько типов (родов).
Самые простые из них (так называемые блокноты) позволяют создавать текстовые файлы с простым форматированием (заметки, конспекты, рекламные листки и т.п.).
Отдельную ветку таких редакторов составляют так называемые редакторы кода или HTML-редакторы, предназначенные, в первую очередь, для программистов (разработчиков приложений) и веб-мастеров.
Более продвинутые текстовые процессоры (так называемые текстовые редакторы 2-го рода) позволяют внедрять в текст различные объекты (таблицы, графики, изображения, формулы и т.д.) и имеют расширенные функции форматирования текста. Такие редакторы позволяют создавать документы различной сложности, в том числе и официальные. Данные редакторы являются самыми распространёнными и востребованными в пользовательской среде (примером может служить Microsoft Word и его аналоги).
Более мощные текстовые редакторы, служащие для компьютерной вёрстки и графики, позволяющие создавать многостраничные журналы и каталоги, относятся к издательским системам и, по понятным причинам, менее распространены среди пользователей домашних ПК.
Кроме вышеперечисленных текстовых редакторов существуют программы, предназначенные для создания и редактирования документов других типов и форматов, например, редакторы электронных таблиц или редакторы PDF документов.
2.3 Аналоги текстовых редакторов с русскоязычным интерфейсом
Ниже приведен список аналогичных программ с кодом на русском языке.
1) Глагол — язык программирования, родственный языкам Паскаль и Оберон. Интерфейс выполнен в консольном виде, изображенном на рисуноке 2.1.
Рис. 2.1. Интерфейс программы Глагол
2) Лого (англ. Logo) — язык программирования высокого уровня, разработанный в 1967 году Сеймуром Папертом и Идит Харель в образовательных целях для обучения детей дошкольного и младшего школьного возраста основным концепциям программирования (рекурсии, расширяемости и пр.).
В языке Лого программа представляет собой список «слов».
Как правило, реализации Лого слабо ограничивают перечень допустимых в слове символов, поэтому команды можно называть и по-русски. Более того, многие русскоязычные реализации Лого имеют русскоязычные команды или встроенные русскоязычные синонимы для всех встроенных команд.
Слова в списке разделяются пробелами. Слово может быть либо командой, либо литералом одного из трёх видов — строковым, числовым или литералом списка. Команда может возвращать значение, тогда она считается функцией. Литералы возвращают своё значение непосредственно. Строковой литерал — оформляется как слово, перед которым ставят двойную кавычку. Слова, состоящие из цифр, интерпретируются как числовые литералы. Для формирования списка из слов в тексте программы их окружают квадратными скобками.
Так же есть команды сохранения и получения значения по имени, но многие реализации дополняют его понятием переменной — вводя компактный синтаксис команды для получения значения переменной. Поэтому обычно для получения значения переменной достаточно написать её имя, предварив его двоеточием.
Имеется специальный синтаксис для передачи в некоторые встроенные команды заранее не фиксированного количества параметров. Для этого предлагается заключать команду и все её параметры в круглые скобки, например: (СПИСОК :A :Б :В :Г 1 2 3 4) Для пользовательских команд такой синтаксис не применим, потому что не предусмотрено синтаксиса для описания обработки переданных таким образом параметров.
Переданный на выполнение интерпретатору список команд выполняется по очереди. Очередное слово интерпретируется как команда из текущего словаря системы. Если она принимает параметры, то интерпретатор выполняет следующее слово из списка, с целью получить значение для передачи его в качестве первого параметра.
Если команда стоит на месте параметра, ожидается что эта команда вернёт значение. А если возвращаемое очередной командой значение не предусмотрено передавать другой команде, система сообщает об ошибке, если такой вызов встретился в тексте программы, либо отображает значение, если вызов команды произведён в интерактивном режиме.
Поддерживается использование привычной инфиксной формы выражений математики и логики на привычных операторах, типа «(2 + 3) * 5» и «2 > 5». Но в связи с тем, что по основным правилам языка сначала идёт команда, а потом её параметры, для базовых арифметических и логических операций в некоторых диалектах (LCSI ЛогоМиры и LogoWriter, например) также существуют команды, с использованием которых выражения принимают вид «умножь сложи 2 3 5» и «больше? 2 5».
Есть команда для расширения словаря пользовательскими командами, она принимает имя новой команды, список параметров и список команд.
Предусмотрены два основных механизма управления ходом выполнения программы: оператор цикла с фиксированным числом повторений и рекурсия.
3) 1С:Предприятие 8.1. Версия для обучения программированию.
Программный продукт «1С:Предприятие 8.1 Версия для обучения программированию» предназначен для получения навыков модификации существующих и создания новых прикладных решений в системе «1С:Предприятие 8».
Версия для обучения программированию — доступное решение для широкого круга пользователей, которые хотят познакомиться с системой программ «1С:Предприятие 8» и научиться приемам конфигурирования: созданию и изменению структуры метаданных, написанию программных модулей, разработке диалогов и интерфейсов, администрированию прикладных решений на платформе «1С:Предприятие 8».
Наряду с задачами изучения допускается применение учебной версии платформы для модификации и разработки реальных прикладных решений в пределах возможностей этой поставки. Форматы информационных баз конфигураций учебной и коммерческой версии не отличаются, сложность конфигураций в учебной версии не ограничена. Однако возможности отладки, например, лимитированы ограничениями на объемы данных. Реальная эксплуатация прикладных решений может осуществляться только на коммерческих версиях системы «1С:Предприятие 8».
2.4 Выводы
В ходе рассмотрения данной главы были изучены методы поиска текста. Так же были изучены аналоги программ с русскоязычным языком написания команд. Программа «Глагол» отстает в «развитии» пользовательского интерфейса. Программа «Лого» не достаточно функциональна, а программа 1С:Предприятие является платной.
Глава III. Проектно-конструкторская и технологическая части
3.1 Разработка алгоритмов функционала программы
Исходя из основных требований к программному продукту был разработан функционал программы, описанный на рисунке 3.1.
Рис. 3.1. Функциональная схема текстового редактора
Функционал программы должен включать в себя:
1) меню работы с файлом, подробная схема алгоритма работы которого представлена на рисунке 3.2:
ь Новый — создание нового файла для ввода кода программы
ь Открыть — открытие ранее сохраненного файла
ь Сохранить — сохранение текущего файла
ь Сохранить как — сохранение файла под новым именем
ь Распечатать — вывод на печать содержимого поля текста программы
ь Экспорт в Pascal — создание файла *.pas на языке программирования высокого уровня Pascal с экспортируемым текстом для него
ь Закрыть — закрытие окна программы текстового редактора
2) меню редактирования:
ь Отменить — отмена последних выполненных действий
ь Вернуть — возврат уже выполненных действий после отмены
ь Вырезать — вырезать выделенный текст в буфер обмена
ь Копировать — скопировать выделенный текст в буфер обмена
ь Вставить — вставить текст, находящийся в буфере обмена
ь Удалить — удалить выделенный текст
ь Выделить все — выделить весь текст на поле
3) меню поиска:
ь Найти — открыть поиск для поиска текста
ь Найти и заменить — открыть поиск для поиска и замены текста
ь Искать дальше — искать дальше в документе строку из формы поиска
4) меню вид:
Показывать номера строк — показывать или не показывать поле слева с нумерацией строк
Показывать окно ошибок — показывать или не показывать окно с ошибками в выполнении исходного кода программы
5) меню работы с интерпретатором Русич, подробная схема алгоритма работы которого представлена на рисунке 3.3:
Проверить — проверка на наличие ошибок в исходном коде программы
Выполнить — выполнение команд исходного кода
Остановить — остановка выполнения команд исходного кода
Окно выполнения — показать окно выполнения команд исходного кода после закрытия основного окна выполнения
6) меню помощи:
Справка — справка по программе
Список команд — вывод всех команд, используемых в редакторе
О программе — вывод сообщения о данной программе
Рис. 3.2. Схема алгоритма работы с меню «Файл».
Рис. 3.3. Схема алгоритма работы с меню «РУСИЧ».
3.2 Разработка интерфейса программы
Интерфейс разрабатывался в интегрированной среде разработки С++Builder 6. С помощью передовых инструментов дизайна и макетирования создан удобный и простой в эксплуатации интерфейс с непринужденным внешним видом и комфортным восприятием для пользователя.
Кроме того создана программа с обязательным выполнением следующих пунктов:
1. Дружественный интерфейс;
2. Открытие, сохранение и печать кода программы;
3. Выполнение программного кода с отображением результата выполнения;
4. Поиск и замена текста;
5. Экспорт в файл языка программирования высокого уровня Pascal.
Цветовая схема не должна отвлекать пользователя от выполнения основной его задачи — разработки и редактирования текста исходной программы. На рисунке 3.4 изображена главная экранная форма текстового редактора для русскоязычного интерпретатора языка программирования.
Элементами пользовательского интерфейса главной экранной формы являются главное меню, кнопки и основное поле для ввода текста исходной программы.
Рис. 3.4. Главная экранная форма текстового редактора для русско-язычного интерпретатора языка программирования.
На рисунке 3.5 изображена главная экранная форма текстового редактора для русскоязычного интерпретатора языка программирования после ввода текста исходной программы.
Рис. 3.5. Экранная форма текстового редактора после ввода текста исходной программы.
На рисунке 3.6 изображена экранная форма после подачи команды на выполнение введенной программы.
Рис 3.6. Экранная форма выполнения введенной программы
3.3 Выводы
В ходе проведения проектно-конструкторской работы был разработан программный продукт текстового редактора для русскоязычного интерпретатора языка программирования.
Проектирование программного продукта велось с учетом функциональных требований, изложенных в техническом задании.
При разработке интерфейса предпочтение отдавалось простоте, удобству в эксплуатации и комфортному восприятию пользователя.
4.1 Тестирование, как способ обеспечения качества программного продукта
Качество программного продукта характеризуется набором свойств, определяющих, насколько продукт “хорош” с точки зрения заинтересованных сторон, таких как заказчик продукта, спонсор, конечный пользователь, разработчики и тестировщики продукта, инженеры поддержки, сотрудники отделов маркетинга, обучения и продаж. Постановка задачи обеспечения качества продукта выливается в задачу определения заинтересованных лиц, их критериев качества и затем нахождения оптимального решения, удовлетворяющего этим критериям. Тестирование является одним из наиболее устоявшихся способов обеспечения качества разработки программного обеспечения и входит в набор эффективных средств современной системы обеспечения качества программного продукта.
С технической точки зрения тестирование заключается в выполнении приложения на некотором множестве исходных данных и сверке получаемых результатов с эталонными, с целью установить соответствие различных свойств и характеристик приложения заказанным свойствам. Как одна из основных фаз процесса разработки программного продукта (дизайн приложения — разработка кода — тестирование), тестирование характеризуется достаточно большим вкладом в суммарную трудоемкость разработки продукта.
Данная глава дипломного проекта посвящена решению задачи контроля качества разработки программного обеспечения с позиций тестирования.
4.2 Критерии выбора тестов для программного продукта
При составлении тестов для программного продукта необходимо применять критерии структурного тестирования.
Структурное тестирование использует стратегию тестирования в виде “белого ящика”. Этот подход основан на анализе логики программы, что предполагает знание исходного текста программы или спецификации программы в виде потокового графа управления. Существо подхода — в проверке каждой команды, каждого пути, каждой ветви алгоритма.
Структурная информация понятна и доступна разработчикам подсистем и модулей приложения, поэтому данный класс критериев часто используется на этапах модульного и интеграционного тестирования.
Условия критерия тестирования команд — набор тестов в совокупности должен обеспечить прохождение каждой команды не менее одного раза. Это слабый критерий, он, как правило, используется в больших программных системах, где другие критерии применить невозможно.
Условие критерия тестирования ветвей — набор тестов в совокупности должен обеспечить прохождение каждой ветви не менее одного раза. Это достаточно сильный и при этом экономичный критерий, поскольку множество ветвей в тестируемом приложении конечно не велико.
Условие критерия тестирования путей — набор тестов в совокупности должен обеспечить прохождение каждого пути не менее 1 раз. Если программа содержит цикл (в особенности с неявно заданным числом итераций), то число итераций ограничивается константой.
4.3 Тестирование программного продукта
Тестируем программу по принципу белого ящика, методом покрытия условий. Принцип его заключается в проверке каждого пути, каждой ветви алгоритма, внешняя спецификация во внимание не принимается. В данном методе записывается число тестов, достаточное для того, чтобы все возможные результаты каждого условия в решении выполнялись, по крайней мере, один раз. Проверка заключается в подстановке таких значений, чтобы последовательно получить все результаты работы программы. В рассматриваемом примере должны быть покрыты тестами следующие 4 пути, которые приведены на рисунке 4.1:
1) 2-4-6-8
2) 1-2-3-4-6-7-8
3) 2-4-5
4) 1-2-3-4-5
Рис. 4.1. Схема тестирования программного продукта
В таблицу 4.1 сведены результаты проведенных тестов.
Таблица 4.1
Результаты проведенных тестов
Тест |
Путь |
Ожидаемый результат |
Фактический результат |
Результат тестирования |
|
Пользователь запускает программу |
— |
Выходит главное окно программы |
Программа успешно запускается |
+ |
|
Пользователь вводит текст исходной программы и запускает на выполнение |
2-4-6-8 |
Данные успешно принимаются, происходит выполнение |
Данные приняты, выполнение программы |
+ |
|
Пользователь вводит текст исходной программы и запускает на выполнение |
1-2-3-4-6-7-8 |
Данные успешно проверяются, происходит выполнение |
Данные приняты, выполнение программы |
+ |
|
Пользователь вводит текст исходной программы с ошибками и запускает на выполнение |
2-4-5 |
Данные успешно принимаются, выводятся ошибки |
Данные приняты, выведены ошибки |
+ |
|
Пользователь вводит текст исходной программы с ошибками и запускает на выполнение |
1-2-3-4-5 |
Данные успешно проверяются, выводятся ошибки |
Данные приняты, выведены ошибки |
+ |
|
Исходя из результатов проведенных тестов, можно заключить, что программа корректно выполняет свои функциональные возможности и может быть введена в эксплуатацию.
4.4 Руководство пользователя
4.4.1 Введение
Функциональным назначением
4.4.2 Назначение и условия применения
Программный продукт обеспечивает возможность выполнения перечисленных ниже функций:
- ввод исходного текста программы на разработанном языке программирования в программу;
- редактирование исходного текста программы на разработанном языке программирования;
— поиск и замена текста;
- сохранение в файл и экспорт в Pascal;
- выполнение программного кода с отображением результата выполнения.
Минимальные системные требования
- процессор Pentium-4 с тактовой частотой, ГГц — 0,5, не менее;
- оперативную память объемом, Гб — 0,128, не менее;
- жесткий диск со свободным объемом, Мб — 200, не менее;
- устройство ввода — клавиатура и мышь;
- монитор с разрешением 1024 x 768 VGA, не менее;
- операционная система Windows 2000, не менее.
4.4.3 Руководство программиста
В состав дистрибутива русскоязычного интерпретатора языка программирования
- Сам ПП в виде запускного файла РУСИЧ-Редактор.exe
— Файл settings.ini который содержит в себе настройки программы
— Р УСИЧ-Редактор.exe.manifest — визуальные стили Windows XP.
Для работы с программным продуктом необходимо его установить в соответствии с приведенными ниже рекомендациями:
- необходимо выделить ПК;
- запустить сам ПП РУСИЧ-Редактор.exe
Выберите файл setup.exe и два раза щелкните по нему, чтобы активизировать процесс установки. Следуйте указаниям программы установки, чтобы успешно завершить установку программы на ваш компьютер.
Если появился ярлычок на рабочем столе, значит, программа установлена правильно и можно приступать к работе.
4.4.4 Описание операций
Для запуска данного программного продукта необходимо дважды щелкнуть на ярлыке «
Рис. 4.2. Главное окно программы
Наиболее полные возможности управления предоставляет главное меню программы РУСИЧ-Редактор. Оно расположено непосредственно над окном ввода текста исходной программы. Меню предоставляет доступ к основным операциям и параметрам пользовательского интерфейса программы. Ниже дан перечень пунктов меню, доступных при работе с программой:
- Создать новый файл
- Открыть сохраненный файл
- Сохранить созданный файл
- Распечатать текст программы
- Экспортировать в Pascal
- Отменить изменения текста программы
- Вернуть изменения текста программы
- Вырезать фрагмент кода
- Скопировать фрагмент кода
- Вставить фрагмент кода
- Удалить фрагмент кода
- Выделить весь текст программы
- Найти и заменить в тексте программы
- Изменить вид
- Проверить текст введенной программы
- Выполнить текст введенной программы
- Остановить выполнение текста введенной программы
- Просмотреть результаты выполнения программы
- Изменить настройки программы
- Вызов справки по программному продукту
- Просмотр списка всех возможных команд
- Использование контекстного меню для поля вводе текста
Для создания новой программы можно нажать на кнопку «Создать новый файл» или выбрать пункт меню «Создать» в меню «Файл» или нажать на клавиши Ctrl+N. В результате появится пустое текстовое поле, в которое можно ввести исходный текст программы.
Для открытия сохраненного файла программы можно нажать на кнопку «Открыть файл» или выбрать пункт меню «Открыть» в меню «Файл» или нажать на клавиши Ctrl+O. В результате появится окно диалога открытия файла, представленное на рисунке 4.3.
Рис. 4.3. Окно диалога открытия файла
Для открытия сохраненного файла программы нужно найти и выбрать файл с расширением .RUS, т.е. РУСИЧ-файл. После выбора файла можно нажать на кнопку «Открыть» для открытия файла.
Контекстное меню для поля ввода текста программы представлено на рисунке 4.4.
Рис. 4.4. Контекстное меню
Для закрытия окна можно нажать на кнопку «Отмена» для закрытия окна диалога открытия файла. Также закрыть диалог открытия файла можно нажатием на крестик в правом верхнем углу.
Для сохранения набранного текста программы можно нажать на кнопку «Сохранить файл» или выбрать пункт меню «Сохранить» в меню «Файл» или нажать на клавиши Ctrl+S. В результате появится окно диалога сохранения файла, представленное на рисунке 4.5.
Рис. 4.5. Окно диалога сохранения файла
Для сохранения введенного текста программы нужно найти и выбрать папку для сохранения фала. После ввода в поле «Имя файла» названия файла можно нажать на кнопку «Сохранить» для сохранения файла с расширением .RUS, т.е. РУСИЧ-файл.
Для закрытия окна можно нажать на кнопку «Отмена» для закрытия окна диалога сохранения файла. Также закрыть диалог сохранения файла можно нажатием на крестик в правом верхнем углу.
Для того чтобы распечатать исходный текст программы можно выбрать пункт меню «Распечатать» в меню «Файл» или нажать на клавиши Ctrl+P. В результате исходный текст программы будет отправлен на принтер, используемый по умолчанию.
Для того чтобы проверить исходный текст программы можно нажать на кнопку «Проверить программу», а также выбрать пункт меню «Проверить» в меню «РУСИЧ» или нажать на клавишу F6 . В результате будет проведен лексический и синтаксический анализы исходного текста программы. Результаты проверки без ошибок представлен на рисунке 4.6. Результаты проверки с ошибками представлен на рисунке 4.7.
Для того, чтобы экспортировать русскоязычный исходный текст программы в файл *.pas языка программирования высокого уровня Pascal необходимо из пункта меню «Файл» выбрать пункт «Экспорт в Pascal».
Рис. 4.6. Результаты проверки без ошибок
Рис. 4.7. Результаты проверки с ошибками
Для выполнения исходного текста программы можно нажать на кнопку «Выполнить программу», а также выбрать пункт меню «Выполнить» в меню «РУСИЧ» или нажать на клавишу F9. В результате будет проведен лексический и синтаксический анализы исходного текста программы и если обнаружатся ошибки, будут выведены результаты проверки с указанием ошибок. Результаты проверки с ошибками представлены на рисунке 4.7.
Если в процессе проверки ошибки не обнаружены, откроется окно выполнения исходного текста программы, представленное на рисунке 4.8.
Рис. 4.8. Окно выполнения исходного текста программы
Для остановки выполнения исходного текста программы можно нажать на кнопку «Остановить программу», а также выбрать пункт меню «Остановить» в меню «РУСИЧ» или нажать на клавишу F8. В результате выполнение исходного текста программы будет прекращено. Окно выполнения исходного текста программы после прекращения выполнения представлено на рисунке 4.9.
Рис. 4.9. Окно выполнения исходного текста программы после прекращения выполнения
Возможности редактирования исходного текста программы:
Для отмены изменений исходного текста программы можно нажать на кнопку «Отменить», а также выбрать пункт меню «Отменить» в меню «Редактирование» или нажать на клавиши CTRL-Z. В результате изменения исходного текста программы будет отменены.
Для того чтобы вернуть изменения исходного текста программы можно нажать на кнопку «Вернуть», а также выбрать пункт меню «Вернуть» в меню «Редактирование» или нажать на клавиши CTRL-Y. В результате изменения исходного текста программы будет возвращены.
Для того чтобы вырезать фрагмент исходного текста программы можно нажать на кнопку «Вырезать», а также выбрать пункт меню «Вырезать» в меню «Редактирование» или нажать на клавиши CTRL-X. В результате фрагмент исходного текста программы будет вырезан.
Для того чтобы скопировать фрагмент исходного текста программы можно нажать на кнопку «Скопировать», а также выбрать пункт меню «Скопировать» в меню «Редактирование» или нажать на клавиши CTRL-С. В результате фрагмент исходного текста программы будет скопирован.
Для того чтобы вставить фрагмент исходного текста программы можно нажать на кнопку «Вставить», а также выбрать пункт меню «Вставить» в меню «Редактирование» или нажать на клавиши CTRL-V. В результате будет вставлен фрагмент из буфера в исходный текст программы, начиная с положения курсора в текстовом поле ввода.
Для того чтобы удалить фрагмент исходного текста программы можно нажать на кнопку «Удалить», а также выбрать пункт меню «Удалить» в меню «Редактирование». В результате фрагмент исходного текста программы будет удален.
Для того чтобы выделить весь исходный текст программы можно выбрать пункт меню «Выделить все» в меню «Редактирование» или нажать на клавиши CTRL-A. В результате весь исходный текст программы будет выделен.
По умолчанию при открытии программного продукта показывается поле номера строк. Для того чтобы убрать поле номера строк нужно поставить галочку в пункте меню «Показывать номера строк» в меню «Вид». В результате будет убрано поле номера строк.
Для изменения основных настроек программы можно выбрать пункт меню «Основные настройки программы» в меню «Настройки» или нажать на клавишу F5. В результате появится окно справки, показанное на рисунке 4.10.
Рис. 4.10. Окно «Основные настройки программы»
В этом окне можно просмотреть элементы языка программирования, а также изменить атрибуты текста такие как полужирный, курсив, подчеркнутый. Также можно изменить цвета заливки текста и заднего фона.
Выбор цветов заливки текста представлен на рисунке 4.11.
Рис. 4.11. Выбор цветов заливки текста
В текстовом поле можно просмотреть, как будет выглядеть при редактировании введенная программа. В итоге редактирования настроек можно нажать на кнопку «Сохранить» для сохранения настроек или на кнопку «Отмена» для закрытия окна настроек программы. Также закрыть окно основных настроек программы можно нажатием на крестик в правом верхнем углу.
Для ознакомления с возможностями программы можно нажать на кнопку «Вызов справки по программному продукту» или выбрать пункт меню «Справка» в меню «Помощь» или нажать на клавишу F1. В результате появится окно справки, показанное на рисунке 4.12.
Рис. 4.12. Окно «Справка»
Для ознакомления с разработчиком программного продукта можно выбрать пункт меню «О программе…» в меню «Помощь» или нажать на клавишу F2. В результате появится окно «О программе», показанное на рисунке 4.13.
Рис. 4.13. Окно «О программе»
Для закрытия главного окна программы можно выбрать пункт меню «Закрыть програму» в меню «Файл» или нажать на клавиши ALT-X. Также закрыть главное окно программы можно нажатием на крестик в правом верхнем углу.
Для поиска текста в исходном коде введенной программы нужно выбрать пункт меню «Найти» в меню «Поиск» или нажать на клавиши Ctrl-F. Появится окно поиска, изображенное на рисунке 4.14.
Рис. 4.14. Окно поиска текста
Для выполнения поиска нужно ввести текст поиска в поле «Текст поиска» и выбрать направление поиска. По умолчанию направление поиска установлено в позицию «Вперед». Затем нажать кнопку «Найти». Если текст будет найден, тогда он выделиться в текстовом поле и для продолжения поиска нужно будет нажать F3 или выбрать пункт «Искать дальше» из меню «Найти». Как только поиск дойдет до конца текстового поля, то выйдет сообщение о неудачном поиске, изображенном на рисунке 4.17.
Для поиска и замены текста в исходном коде введенной программы нужно выбрать пункт меню «Найти и заменить» в меню «Поиск». Появится окно поиска и замены текста, изображенное на рисунке 4.15.
Рис. 4.15. Окно поиска и замены текста
Для выполнения замены текста необходимо ввести в поле «Текст поиска» текст, который требуется найти, и в поле «Текст для замены» ввести текст, на который будет заменен текст поиска. Затем нужно выбрать направление поиска. По умолчанию направление поиска установлено в позицию «Вперед». При нажатии на кнопку «Заменить», если искомая строка встречается, то выйдет диалоговое окно подтверждения замены текста, изображенное на рисунке 4.16, в котором при нажатии на «Yes» изменяется первое найденное слово в тексте, а затем ищется дальше и так до тех пор, пока не закончатся совпадения текста. Если в этом окне нажать на «No», тогда выделенная строчка не заменить и поиск будет искать дальше до конца текстового поля. Если нажать на кнопку «Cancel», то тогда замена будет полностью отменена. Если нажать на «All», то все найденные слова будут автоматически заменены.
Рис. 4.16. Подтверждение замены текста
Рис. 4.17. Текст не найден