Применяемый шаблон архитектуры




Общие положения

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

 

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

 

Задание на курсовую работу

 

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

 

Назначение программы

 

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

Первый формат – структура, написанная на языке «Си».

Второй формат - описание макросами.

Третий формат – описание на языке разметки «XML»

Основные требования к программе

Краткий обзор требований к системе

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

 

1. Открытие файла в формате.h для первого формата

2. Открытие файла в формате.h для второго формата

3. Открытие файла в формате.xml для третьего формата

4. Сохранение файла в формате.h для первого формата

5. Сохранение файла в формате.h для второго формата

6. Сохранение файла в формате.xml для третьего формата

7. Поддержка добавления путей конвертации

8. Конвертация описания структур из первого формата во второй

9. Конвертация описания структур из второго формата в третий

10. Конвертация описания структур из третьего формата в второй

11. Возможность редактирования текста вручную.

12. Копирование текста через буфер обмена

 

 

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

 

· Требование к удобству использования

 

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

 

Архитектурные мотивы

 

Функциональные требования 1-10 свидетельствуют о том, что программа предназначена для работы с определенным набором форматов. Парсинг файлов является сложной задачей и может повлечь за собой частую замену модулей. Также замена модулей следует из функционального требования 7. Пользовательский интерфейс является неизменяемой частью. В связи с этим выбран шаблон «Микроядро».

 

Описание архитектуры

Диаграмма классов

Рисунок 1 Диаграмма классов

 

Применяемый шаблон архитектуры

Исходя из требований, существуют форматы описания структуры и соответствующий им форматы файлов. Поэтому необходимо распределить форматы описания на модули. Так как модули не взаимодействуют друг с другом и предоставляют конкретный сервис, подходит шаблон архитектуры «Микроядро».

 

· Класс «Графический компонент»

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

 

· Класс «Микроядро»

Формирует запрос на конвертацию с входным и выходным форматами. Запрашивает подходящий сервис. Является связующим классом для всех сервисов конвертации и пользовательского интерфейса.

 

· Класс «H2D»

Является сервисом для конвертации текста из формата H (Структура на языке «Си») в формат D (Описание структуры макросами). На вход получает строку QString формата H, для конвертации используется метод convert(QString).

 

· Класс «H2DParser»

Реализует логику класса-сервиса. Очищает текст от лишних символов (комментариев и т.д.) с помощью вызова метода cleanText(QString). Вычленяет смысловую составляющую текста и приводит смысловую часть текста к формату, в котором текст является набором структур, из которых может быть собран любой другой формат, с помощью метода unifyText(QString). Конвертируют смысловую часть текста в требуемый формат с помощью метода convert().

 

· Класс «H2DUnifiedText»

Содержит в себе результат парсинга.

 

· Класс «D2X»

Является сервисом для конвертации текста из формата D (Описание структуры макросами) в формат X (Описание на языке разметки «XML»). На вход получает строку QString формата D, для конвертации используется метод convert(QString).

 

· Класс «D2XParser»

Реализует логику класса-сервиса. Очищает текст от лишних символов (комментариев и т.д.) с помощью вызова метода cleanText(QString). Вычленяет смысловую составляющую текста и приводит смысловую часть текста к формату, в котором текст является набором структур, из которых может быть собран любой другой формат, с помощью метода unifyText(QString). Конвертируют смысловую часть текста в требуемый формат с помощью метода convert().

 

· Класс «D2XUnifiedText»

Содержит в себе результат парсинга.

 

· Класс «X2D»

Является сервисом для конвертации текста из формата X (Описание на языке разметки «XML») в формат D (Описание структуры макросами). На вход получает строку QString формата X, для конвертации используется метод convert(QString).

 

· Класс «X2DParser»

Реализует логику класса-сервиса. Очищает текст от лишних символов (комментариев и т.д.) с помощью вызова метода cleanText(QString). Вычленяет смысловую составляющую текста и приводит смысловую часть текста к формату, в котором текст является набором структур, из которых может быть собран любой другой формат, с помощью метода unifyText(QString). Конвертируют смысловую часть текста в требуемый формат с помощью метода convert().

 

· Класс «X2DUnifiedText»

Содержит в себе результат парсинга.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-08-04 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: