Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Проектирование программного приложения



Разработка технологии обработки информации

Имя файла, из которого будет осуществляться ввод информации задается аргументом командной строки. Предварительно выполняются:

создание файла;

заполнение его данными;

размещение на носителе доступном для программы;

разрешение доступа для чтения.

Программа будет работать в не интерактивном режиме. Выходные данные будут записываться в стандартный поток ошибок.

Структура технологического процесса обработки информации следующая:

считать файл;

удалить из файла все комментарии (сначала многострочные, затем однострочные);

построчно разделить оставшийся текст в массив строк;

осуществить синтаксический анализ каждой строки;

проверить математические и логические операции в полученных подстроках.

Необходимо использование соглашений:

переменные типа int не могут сопровождаться необязательной инициализацией и при этом все переменные должны объявляться отдельно; массивы типа int не могут сопровождаться инициализацией, при этом они только одномерны;

все конструкции языка разделяют произвольным числом пробелов и знаков табуляции, но при этом обязательно разделяются как минимум одним символом переноса строки;

разрешено использование только строчных букв;

многострочные комментарии не могут располагаться внутри других многострочных комментариев;

При соблюдении всех вышеперечисленных требований программа будет признана синтаксически верной.

Отформатированные исходные данные будут выведены в стандартный поток вывода. Синтаксические ошибки исходных данных будут выведены в стандартный поток ошибок с выводом сообщения о каждой найденной ошибке.

Разработка структуры и формы представления данных

Основной единицей входной информации является простая программа, состоящая из следующих атрибутов:

Объявление переменных;

Арифметические выражения;

Логические выражения;

Операторы;

Функции ввода и вывода.

Все приведенные атрибуты по смыслу должны быть строковыми переменными.

Для представления входных данных предлагается использовать список. Его описание приведено ниже.public List< string> arrText = new List< string> ();

Внутренние информационные объекты предполагается представлять с помощью переменных стандартных типов языка C#. Внутренние локальные переменные используются для хранения результатов промежуточных расчетов, в качестве счетчиков цикла, сумматоров и т. п.

 


Разработка алгоритма решения задачи

Алгоритм решения задачи, построен по правилам определенным ГОСТ 19.701-90, ГОСТ 19.002-80, ГОСТ 19.003-80 выполнен в приложении1. Алгоритм решения программы будет состоять из двух частей:

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

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

Разработка программы решения задачи

Выбор инструментальных средств

Выбран язык программирования С# так как в нем есть следующие преимущества, унаследованные от языка С:

обозначения начала/конца блока кода фигурными скобками;

обозначения, ассоциативность и приоритет большинства встроенных операций (присвоение, арифметические, логические, побитовые операции, операции увеличения/уменьшения, тернарная условная операция «?: »);

синтаксис описания и использования переменных и функций (порядок «тип имя», использование модификаторов, обязательность скобок для функций, описание формальных параметров);

наименования встроенных элементарных типов (кроме bool, в Java этот тип называется boolean);

использование точки с запятой;

синтаксис всех основных конструкций: условного оператора, циклов, оператора множественного выбора;

отсутствие процедур (их заменяют функции типа void);

Существуют также уникальные особенности, такие как:

отдельное понятие именованной типизированной константы и ключевое слово const

импортируется только сборка и при каждом использовании импортируемых статических имён требуется указывать класс

можно использовать текстовые строки

Разработка структуры программы

Основной функцией программы является синтаксический анализ текста. Связь с другими программами осуществляется через аргументы командной строки для задания имени файла и стандартные потоки вывода и ошибок. Программа будет состоять из двух частей:

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

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

 

Проектирование программных модулей

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

для первой как имя файла, который следует считать и обработать;

для второй как различные части информации, содержащиеся в этом файле, которые требуют дополнительной обработки

 


Проектирование программного интерфейса

Диалог с пользователем будет осуществляться в пакетном режиме:

запуск программы, с указанием файла для анализа;

обработка информации, находящейся в этом файле;

вывод оригинального кода;

вывод форматированного кода;

вывод списка ошибок.

Программа будет выдавать пользователю список ошибок при их наличии. Возможны следующие сообщения об ошибке:

о необъявленной переменной в выражении

о нехватке операндов в строке и выражении

о несвоевременном закрытии блока без оператора

о несовпадении данной строки ни с одним из шаблонов

о нахождении блока за пределами данной функции

о недопустимости объявления переменной в данной строке

о необъявленной переменой

о недопустимости расположения else в данной позиции

о недопустимости расположения while в данной позиции

Обеспечение надежности программы

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

 

Определение конфигурации технических средств

 

устройства ввода и вывода информации (клавиатура и монитор);

процессор класса не ниже < http: //www.debian.org/ports/i386/> 386;

объем оперативной памяти не менее 256 Мб;

от 4 ГБ свободного места на жестком диске, для обеспечения запуска и работы программы;

встроенный графический чип или видеоплата.

Тестирование программы

Общие сведения

Главными данными является файл с информацией, который обладает следующими свойствами:

использование одной библиотеки iostream;

описание переменных типов int;

следующие арифметические и логические выражения: + (сложение),! = (проверка на неравенства), = = (эквиваленция), = (присваивание), < (меньше), > (больше), - (вычитание), ++ (инкремент), -- (декремент), * (умножение);

следующие операторы: if, else, for, do, while;

одно строчные и многострочные комментарии;

все конструкции языка разделяют произвольным числом пробелов и знаков табуляции;

переменные типа int могут сопровождаться необязательной инициализацией, но при этом все переменные должны объявляться отдельно;

алфавит программы состоит только из латинских букв, которые могут быть строчными, а также спецсимволов: умножение(*), деление(/), сложение(+), вычитание(-), пробел( ), символ табуляции( ), фигурные скобки { }. круглые скобки(), точка с запятой(; ), символ переноса строки и возврата каретки;

каждый оператор должен сопровождаться «; »;

комментарии не могут располагаться внутри других многострочных комментариев;

Также для проверки работоспособности программы можно провести следующие действия:

изменение входных параметров;

проверка правильности расчетов пути;

проверка правильности вывода расчетной информации на экран;

вывод результатов.

При соблюдении всех вышеперечисленных требований программа будет признана синтаксически верной.

 


Поделиться:



Последнее изменение этой страницы: 2020-02-17; Просмотров: 131; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.022 с.)
Главная | Случайная страница | Обратная связь