Требования к программе или программному изделию
ВВЕДЕНИЕ
Операционная система (ОС) – комплекс системных программ, расширяющий возможности вычислительной системы, а также обеспечивающий управление её ресурсами, загрузку и выполнение прикладных программ, взаимодействие с пользователями. В большинстве вычислительных систем ОС являются основной, наиболее важной (а иногда единственной) частью системного программного обеспечения. Поэтому знание состава, назначения, команд и функций популярных операционных систем, а также принципов эффективной организации взаимодействия между пользователем и аппаратными средствами ЭВМ является необходимым для разработки ОС, а также программировании в операционных средах и оболочках.
Курсовой проект по дисциплине «Системное программное обеспечение» предусматривает практическое знакомство студентов с базовыми системными функциями ОС Linux: функциями файловой системы и функциями системы управления процессами.
Для этих целей предусмотрено создание базовых программ-оболочек, в которые студенты смогут вносить свой собственный код, для реализации высокоуровневых операций файловой системы и для реализации базовых операций по созданию и взаимодействию процессов.
Программы программного комплекса будут реализованы на языке Си и задокументированы согласно требованиям ГОСТ .
ТЕХНИЧЕСКОЕ ЗАДАНИЕ (ГОСТ 19.201-78 ЕСПД)
Ключевым документом взаимодействия сторон при создании программных продуктов (заказчик-исполнитель) является техническое задание (ТЗ). Кроме того ТЗ является основным исходным документом для создания ПС и его приёмки, определяет важнейшие точки взаимодействия заказчика и разработчика. При этом ТЗ разрабатывает организация-разработчик, но формально выдает ТЗ разработчику заказчик.
Студенты должны приобретать опыт для составления ТЗ на все виды курсовых работ, курсовых проектов и дипломного проекта, выполняемые в процессе обучения.
Представленное техническое задание на разработку программного комплекса может служить примером для составления ТЗ на курсовую работу, выполняемую как при изучении дисциплины «СПО», так и ряда других дисциплин, связанных с разработкой программных систем и комплексов.
Техническое задание
Введение
Согласно учебному плану специальности 23010062 «Информатика и вычислительная техника», студенты должны изучать дисциплину «Системное программное обеспечение» из цикла специальных дисциплин регионального компонента. Изучение дисциплины предусматривает выполнение курсовой работы в 4-м семестре. Выполнение курсовой работы цели приобретения практических навыков при проектировании и создании функций, программ и комплексов, относящихся к разряду системного программного обеспечения.
В результате выполнения работы студенты должны ознакомиться с:
- принципами эффективной организации взаимодействия между пользователем и аппаратными средствами ЭВМ с применением сервисных программных средств типа операционных сред и оболочек;
- составом и назначением, системных функций, библиотечных функций и команд файловой подсистемы операционной системы Linux.
Научиться:
- проектировать основные элементы системного ПО;
- пользоваться низкоуровневыми сервисными функциями для разработки собственных версий команд операционных систем и системно-зависимых библиотечных функций;
- разрабатывать собственные библиотечные функции и создавать собственные библиотеки функций;
- выполнять обработку ошибок и исключительных ситуаций средствами операционной системы.
Для приобретения указанных знаний и умений предусмотрено изучение и последующая доработка базовых программ-оболочек (программ-шаблонов), реализующих интерфейс файлового менеджера и менеджера процессов для ОС Linux. Язык реализации: Си, С++ (по выбору студента).
Основание для разработки
Реализация программного комплекса для коллективной разработки курсовых проектов по дисциплине СПО выполняется на основании задания на преддипломную практику, выданное 2.02.2012 на основании приказа по университету № 255 ЛС от 3.02.2012.
Заказчиком проекта является кафедра ЭВМ в лице руководителя практики доц. Кузнецовой А.В.
Наименование темы разработки: «Программный комплекс коллективной разработки для групповой работы с базовыми функциями операционной системы Linux».
Условное обозначение темы разработки: «Программный комплекс».
Назначение разработки
Программный комплекс предназначен для закрепления практических навыков при изучении дисциплины «Системное программное обеспечение», связанных с изучением системных функций ОС Linux.
Программный комплекс служит базой для реализации высокоуровневых функций файловой системы и системы управления процессами при помощи сервисных средств ОС и стандартных библиотек языка Си.
Требования к программе или программному изделию
Требования к функциональным характеристикам
Программный комплекс должен состоять из двух частей: 1. программы «Файловый менеджер»; 2. программы «Менеджер процессов».
Программа «Файловый менеджер» должна представлять собой основу навигатора по файловой системе, функционирующего в текстовом режиме и имеющего интерфейс в виде двух панелей, отображающих состав каталогов. Навигация по содержимому каталогов должна осуществляться с помощью клавиш со стрелками, навигация по каталогам – с помощью клавиши ENTER.
Выход из программы должен осуществляться по нажатию клавиши ESC или F10.
Программа не предусматривает ввода данных. Первоначальным текущим каталогом для обеих панелей будет служить домашний каталог пользователя.
Выходными данными являются элементы отображаемых каталогов.
Исходным каталогом, содержимое которого должно отображаться при запуске системы, должен быть домашний каталог пользователя. В программе должны быть предусмотрены следующие механизмы и функции:
- отображение текущего каталога в верхней части панели;
- вывод о типе текущего элемента каталога в строке статуса (обычный файл, каталог, ссылка, файл устройства);
- сохранение текущей позиции курсора при смене панелей;
- скрытие/отображение левой и правой панели;
- игнорирование нажатия клавиш, не входящий в список предопределённых.
- выдача сообщения об ошибке при попытке входа (чтения) в каталог, при отсутствии соответствующих прав доступа.
- игнорирование действий пользователя при нажатии на клавишу Enter в том случае, когда текущий элемент не является каталогом.
Программный комплекс «Менеджер процессов» должен представлять собой основу для изучения различных способов создания и взаимодействия процессов. Программный комплекс должен функционировать в текстовом режиме. Интерфейс – двухуровневое меню. Каждый пункт меню должен соответствовать определённому способу создания и/или взаимодействия процессов. Навигация по пунктам меню должна осуществляться с помощью клавиш со стрелками: выбор пункта меню – с помощью клавиши ENTER; возврат из подменю в главное меню – с помощью клавиши ESC; выход их программы – с помощью клавиши ESC или ввода номера, соответствующего пункту «Exit».
При выборе пункта меню должен происходить вызов программ, демонстрирующих один из механизмов создания и взаимодействия процессов. Создание процессов, передача параметров, завершение процессов должны сопровождаться текстовыми сообщениями с указанием основных характеристик каждого из них: тип (родительский/дочерний), PID, PPID, передаваемые и полученные параметры, передаваемые и полученные статусы завершения.
После завершения работы демонстрационных программ основная программа должна очищать экран и возвращаться в главное меню.
Основная программа не предусматривает ввода данных. В качестве передаваемых параметров от родительского процесса к дочернему и обратно должна использоваться личная информация: ФИО, дата рождения, факультет, курс, группа, номер или отдельные цифры зачётной книжки студента.
Выходными данными являются сообщения демонстрационных программ.
В программе должны быть реализованы следующие механизмы и функции по созданию и взаимодействию процессов:
1. создание дочерних процессов в рамках одного программного модуля;
2. создание дочерних процессов с последующим запуском сторонних модулей и ожиданием завершения дочерних процессов;
3. создание дочерних процессов с передачей параметров при помощи функций семейства exec;
4. передача параметров между родственными процессами с использованием неименованного канала;
5. создание нитей;
6. передача параметров между процессами с использованием неименованного канала.
Требования к надежности
Для обеспечения надёжной работы программ, каждой из них следует:
- выполнить обработку ошибок при вызове системных и стандартных библиотечных функций;
- осуществлять выделение и освобождение памяти при работе со строками и списками.
Условия эксплуатации
Условия эксплуатации программного комплекса совпадают с условиями эксплуатации ПЭВМ IBM PC и совместимых с ними ПК.
Требования к составу и параметрам технических средств
Для работы программного комплекса необходимо наличие IBM PC-совместимого ПК с графическим адаптером EGA (VGA). Требования к объёму дискового пространства и размеру оперативной памяти не превышают требований к базовой ОС Linux.
Требования к информационной и программной совместимости
Программы комплекса должны работать автономно под управлением ОС Linux и удовлетворять требованиям совместимости стандарта POSIX. Исключение – средства библиотеки curses для отображения визуальной информации.
Все вызовы системных функций должны сопровождаться обработкой возможных ошибок.
Базовый язык программирования – C.
«Файловый менеджер» представляет собой одиночную программу, реализующую двух-панельный интерфейс для отображения и навигации по операционной системе Linux.
При работе с элементами каталога в программе «Файловый менеджер» должны использоваться связные списки для обеспечения работы с каталогами любого размера.
При работе со строками следует пользоваться типом char* и осуществлять выделение памяти для строк в динамической области. Освобождение памяти для элементов списка и строк следует производить в той же функции, в которой производилось выделение.
Для ограничения длины строки при отображении имён файлов следует использовать константу максимального размера длины строки. Для отображения длинных имён файлов следует предусмотреть механизм отображения первых и последних символов по маске «ХХХ…ХХХХХХХХХХ».
Для работы с цветом следует использовать константы, типы и переменные библиотеки curses.
Пользовательские программные функции, константы, глобальные переменные и пользовательские типы разместить в отдельных модулях. Указанные модули поместить в статическую библиотеку пользователя.
Код программы должен быть тщательно структурирован и закомментирован для последующей реализации студентами программных функций файловых менеджеров: копирование/перемещение/удаление файлов и каталогов, получение информации о файлах и каталогах, изменение характеристик файлов и каталогов, запуск исполнительных модулей.
При реализации обработки нажатия клавиш недопустимые комбинации и отдельные коды должны игнорироваться.
«Менеджер процессов» представляет собой программу, демонстрирующую работу базовых функций для создания и взаимодействия процессов операционной системы Linux.
Интерфейс программы – текстовый в форме двухуровневого меню.
Выбор пункта меню сопровождается вызовом программ, демонстрирующих механизм создания и/или взаимодействия процессов. Меню второго уровня предназначено для выбора одного из возможных механизмов передачи параметров с помощью функций семейства exec.
Создание процессов, передача параметров, завершение процессов должны сопровождаться соответствующими сообщениями с указанием основных характеристик каждого из них: тип (родительский/дочерний), PID, PPID (для дочернего), передаваемые параметры, полученные параметры, полученные статусы завершения.
Код программы должен быть тщательно структурирован и закомментирован, чтобы служить основой для последующей реализации студентами вариантов собственных заданий.
Данные для передачи между процессами должны формироваться на основе личной информации разработчика (ФИО, дата рождения, номер зачётной книжки, факультет, курс, группа).
Требования к маркировке и упаковке и требования к транспортированию и хранению
Не требуется
Специальные требования
Специальных требований к временным характеристикам программы не предъявляется.
Специальных требований к ёмкостным характеристикам программы не предъявляется.
Программы комплекса не должны завершаться аварийно при нештатных действиях пользователя – при нажатии клавиш, не входящих в состав предопределённых, при попытке несанкционированного входа в каталоги.
При перемещении курсора в программе «Файловый менеджер» не должно иметь место мерцание экрана при перерисовке содержимого панелей.
Требования к программной документации
Программы, входящие в состав программного комплекса, должны сопровождаться следующими документами:
- ГОСТ 19.402-78. ГОСТ 19.404-79 ЕСПД. Пояснительная записка;
- ГОСТ 19.502-79 ЕСПД. Описание применения;
- ГОСТ 19.503-79 ЕСПД. Руководство системного программиста;
- ГОСТ 19.504-79 ЕСПД. Руководство программиста.
ГРАФИЧЕСКИЕ МАТЕРИАЛЫ (ГОСТ 19.701-90 ЕСПД)
«Файловый менеджер»:
- схема программы (2 листа формата А1);
- схема функционирования системы (1лист формата А1);
- результаты работы программы (1 лист формата А2).
«Менеджер процессов»:
- схема программы (2 листа формата А1);
- схема функционирования системы (1лист формата А1);
- схема взаимодействия программ (1лист формата А1).
- результаты работы программы (1 лист формата А2).