Требования к функциональным характеристикам




Введение

Полное наименование программы: «Монитор обработки команд программы «Модель файловой системы ОС реального времени»», краткое наименование «МК ». Программный комплекс применяется для моделирования работы файловой системы.

 

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

Разработка ведется на основании пояснительной записки к учебному проекту «Монитор обработки команд программы «Модель файловой системы ОС реального времени»».

 

 

Назначение и область применения

Программа «Модель файловой системы ОС реального времени» предназначена для изучения устройства и функционирования файловых систем. МК - основной модуль программы. В нем реализован консольный пользовательский интерфейс, обеспечивающий доступ к подпрограммам, имитирующим работу файловой системы. Предоставляя пользователю набор команд для вызова соответствующих подпрограмм, монитор обеспечивает правильность их вызова и контролирует результаты их выполнения.

 

 

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

 

Требования к функциональным характеристикам

Задача модели заключается в том, чтобы отразить все существенные аспекты функционирования файловой системы и её структуру (описанные в разделе «Постановка задачи» пояснительной записки к проекту) при построении программы используется следующий подход:

 

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

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

Ø Запись о файле также является локальной структурой, содержит необходимые данные о файле (имя, размер и т.д.).

Ø Все процедуры, реализующие операции с файловой системой являются методами класса файловой системы.

Ø Так как в процессе работы модели не осуществляется работы с реальной информацией, блоки, представляющие собой файлы и свободное пространство, в классе файловой системы отсутствуют.

Ø В процессе работы модели создается объект класса файловой системы, для которого в соответствии с командами, вводимыми пользователем, МК вызывает необходимые методы.

Ø В МК имеется отдельная команда, позволяющая создать на жестком диске текстовый файл, конфигурация состав которого соответствует как структуре имеющегося в модели объекта класса файловой системы, так и требованиям, указанным в разделе «Постановка задачи» пояснительной записки к проекту.

 

Описание полей класса файловой системы (см. приложение 1):

FS SYSTEM – объект класса файловой системы SB sb – объект класса блок системной информации unsigned short vers – версия системы
char tomename[12] – метка тома
char ownername[12] – имя владельца
char sysname[12] – имя системы
segment *catalog – динамический массив из N объектов типа сегмент unsigned short catsize – число сегментов в каталоге
unsigned short nextseg – номер следующего сегмента
unsigned short seginuse – счетчик используемых сегментов
unsigned short startblock – номер блока на носителе, с которого размещаются файлы, описанные в сегменте
FRec files[63] – массив из 63 объектов типа запись о файле unsigned short rectype – тип записи
char name[6] – имя файла
char type[4] – тип файла
unsigned short len – число блоков, занятых файлом
unsigned short date – дата создания файла

 

Задачи монитора команд заключаются в следующем:

Ø Предоставить пользователю консольный интерфейс для ввода команд, управляющих файловой системой;

Ø Организовать проверку правильности ввода команд и их параметров пользователем на соответствие шаблону;

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

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

Ø Предоставить возможность вывода сообщений пользователю вызываемыми процедурами;

Ø Предоставить пользователю информацию о работе всей программы и об использовании отдельных команд;

Ø Создавать на жестком диске файл со структурой, соответствующей созданной модели файловой системы.

 

Для выполнения этих задач предполагается создать специальный класс монитора команд. Объект этого класса содержит: объект класса файловой системы (с которым и будет осуществляться работа), потоковые переменные (которые будут использоваться в качестве буферов вывода сообщений), флаги использования буферов, переменную типа команда. Команда реализуется как отдельная структура, содержащая название команды и перечень параметров. Согласно пояснительной записке к проекту, название команды не превышает 13 символов, количество параметров – не более трех, длина параметра (символьная) – не более 12 символов. Класс предоставляет методы для считывания команды, её выполнения и обработки кода её завершения. Так как каждая команда имеет свои особенные параметры и коды завершения, в этих методах предполагается использование конструкции switch(){case…}.

 

 

Описание полей класса монитора команд (см. приложение 2):

Monitor CM – объект класса монитор команд FS SYSTEM - объект класса файловой системы
stringstream screen – буфер для вывода сообщений
stringstream err – буфер для вывода сообщений об ошибках
bool screenflag – флаг использования буфера сообщений
bool errflag – флаг использования буфера сообщений об ошибках
command com – объект типа команда char name[14] – имя команды
char par1[13] – 1-й параметр команды
char par1[13] ] – 2-й параметр команды
char par1[13] ] – 3-й параметр команды

 

Описание работы МК:

Ø Инициализация

Создание объекта класса монитора команд, присвоение начальных значений переменным.

Ø Вывод приветствия

На экран выводится приветствие и информация о программе.

Ø Бесконечный цикл While(1)

o Выполнение функции readcom()

Функция выполняет очистку содержимого переменной com, выводит на экран приглашение к вводу команды, записывает введенные значения в переменную com, выполняет проверку и преобразование типов данных параметров в соответствии с именем команды, проверяет корректность введенных данных. Если на любом из этапов обнаруживается несоответствие введенных данных установленным требованиям, то на экран выводится сообщение об этом и выполняется оператор continue, который начинает новую итерацию цикла.

o Выполнение функции execute()

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

o Выполнение функции errcheck()

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

Ø Вывод сообщения о выходе.

 

Команды, вводимые пользователем, должны иметь формат: имя_команды параметр1 параметр2……параметрN

Текст сообщений, выводимых пользователю, смотри в приложении 3. Сообщения, выводимые отдельными процедурами (через буферы вывода сообщений), в приложении не приведены.

Описание отдельных процедур:

Имя команды Передаваемые параметры Типы параметров Возвращаемые коды Описание  
format Размер системы(в блоках) Unsigned short     0-успешное завершение 1-непредвиденная ошибка Форматировать носитель
Метка тома   Char[12]  
Владелец Char[12]  
content - - 0-успешное завершение 1-непредвиденная ошибка 2-файлы отсутствуют Вывести содержимое как есть  
sortcontent - - 0-успешное завершение 1-непредвиденная ошибка 2-файлы отсутствуют Вывести содержимое по алфавиту  
freespace - - 0-успешное завершение 1-непредвиденная ошибка 2-свободные области отсутствуют Вывести информацию о свободном месте  
create Имя файла Char[6] 0-успешное завершение 1-непредвиденная ошибка 2-недостаточно места в системе 3-недостаточно места в каталоге 4-такой файл уже существует Создать файл  
Тип файла Char[4]  
Размер Unsigned short    
delete Имя файла Char[6]   0-успешное завершение 1-непредвиденная ошибка 2-файл с таким именем не найден Удалить файл  
Тип файла Char[4]    
rename Старое имя файла   Char[6]   0-успешное завершение 1-непредвиденная ошибка 2-файл с таким именем не найден Переименовать файл  
Тип файла   Char[4]    
Новое имя файла Char[6]    
append Имя файла   Char[6]     0-успешное завершение 1-непредвиденная ошибка 2-файл с таким именем не найден 3-недостаточно места в системе Добавить информацию в файл  
Тип файла   Char[4]    
Добавляемый размер Unsigned short  
changetype Имя файла   Char[6]     0-успешное завершение 1-непредвиденная ошибка 2-файл с таким именем не найден   Изменить тип файла  
Старый тип файла   Char[4]    
Новый тип Char[4]    
defrag - - 0-успешное завершение 1-непредвиденная ошибка Сжать файловую систему  
userandlabel Владелец   Char[12]   0-успешное завершение 1-непредвиденная ошибка Записать владельца и метку тома  
Метка тома Char[12]  
createFS - - 0-успешное завершение 1-непредвиденная ошибка 2-не удалось записать файл на жесткий диск Создать файл, соответствующий имеющейся конфигурации файловой системы  
help - - 0-успешное завершение 1-непредвиденная ошибка Вывести список команд  
имя_команды? - - 0-успешное завершение 1-непредвиденная ошибка Вывести информацию о команде  
exit - - 0-успешное завершение 1-непредвиденная ошибка Выйти из программы  

 

Требования к надежности

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

Для предотвращения аварийного завершения программы используются стандартные средства языка программирования (операторы try{} catch{}). Прочие проблемы надежности решаются тщательным всесторонним тестированием программы.



Поделиться:




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

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


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