МИНИСТЕРСТВО ОРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
МОСКОВСКИЙ АВТОМОБИЛЬНО-ДОРОЖНЫЙ ГОСУДАРСТВЕННЫЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Волжский филиал
СИСТЕМНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
(3 курс, 5 семестр) Методические указания по выполнению курсового проекта для студентов, обучающихся по направлению 230100 Информатика и вычислительная техника Чебоксары 2013
АННОТАЦИЯ
Методические указания содержат цели, задачи курсового проекта курса «Системное программное обеспечение», дополнительный библиографический список и задания для курсового проекта и методические указания для ее выполнения. В рамках курсового проекта должно быть разработано приложение для операционной системы, при выполнении курсового проекта используются знания, полученные студентами при изучении дисциплины «Программирование», а также дисциплины «Информатика». Методические указания для курсового проекта содержат правила оформления работы и методические рекомендации по выполнению.Методические указания предназначены для студентов дневного отделения, обучающихся по направлению 230100 «Информатика и вычислительная техника».
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ1. СТРУКТУРА И СОДЕРЖАНИЕ КУРСОВОГО ПРОЕКТА
2. ТЕМАТИКА КУРСОВЫХ ПРОЕКТОВ
ПРИМЕРНЫЕ ТЕМЫ КУРСОВЫХ ПРОЕКТОВ
3. МЕТОДИКА ВЫПОЛНЕНИЯ КУРСОВОГО ПРОЕКТА
4 ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ КУРСОВОГО ПРОЕКТА
5 ФОРМЫ АТТЕСТАЦИИ И ПОРЯДОК ПРОВЕДЕНИЯ ЗАЩИТЫ
КУРСОВЫХ ПРОЕКТОВ
ВВЕДЕНИЕ
Дисциплина «Системное программное обеспечение» предоставляет базовые знания для моделирования, проектирования и программной разработки распределенных задач, на основе современных методов, лучших решений и современных технологий.Целью выполнения курсового проекта является обучение студентов принципам построения основных компонентов системного программного обеспечения и практическим навыкам работы с некоторыми из них.
Задачи преподавания дисциплины:
• формирование систематизированного представления о концепциях и моделях, положенных в основу построения компонентов системного программного обеспечения;
• получение практической подготовки в области выбора и применения компонентов системного программного обеспечения для задач автоматизации обработки информации и управления.
В результате изучения дисциплины студент должен иметь представление о направлениях развития программного обеспечения вычислительных систем;
знать основные виды компонентов системного программного обеспечения, назначение и возможности компонентов системного программного обеспечения, принципы их построения; уметь использовать средства системного программного обеспечения при разработке прикладных программных систем; владеть навыками работы в различных операционных средах; иметь опыт программирования в современных операционных средах.
Выполнение курсового проекта по дисциплине «Системное программное обеспечение» является важным этапом технологической подготовки студентов направления 230100 «Информатика и вычислительная техника».
Курсовой проект представляет собой самостоятельное решение студентом (под руководством преподавателя) частной задачи или проведение исследования по одному из вопросов в области программного обеспечения.
Данная работа предполагает активный поиск новых источников информации, моделирование практического приложения теории и разработку на этой основе эффективной схемы работы сети и передачи данных.
Курсовой проект выполняется студентом самостоятельно под руководством преподавателя - руководителя. Со стороны руководителя осуществляется систематический контроль и консультирование по отдельным вопросам.
Для выполнения курсового проекта студент должен выбрать тему и согласовать ее с руководителем, подобрать и проработать специальную литературу, самостоятельно собрать данные, сформулировать проблему проектирования системы, обосновать и выбрать межмодульный интерфейс и представление данных для её решение.
Выбор темы проекта производится из тематики, рассмотренной и одобренной на заседании кафедры. Кроме того, студент может предложить свою тему, которая согласовывается с руководителем и заведующим кафедрой.
Студент приступает к выполнению курсового проекта после получения задания от руководителя.
Написанный курсовой проект должна быть проверен руководителем и защищен с учетом высказанных замечаний.
1. СТРУКТУРА И СОДЕРЖАНИЕ КУРСОВОГО ПРОЕКТА
Курсовой проект должен состоять из следующих основных частей:введения, основной части (в соответствии с темой проекта), заключения, списка использованной литературы и приложений. Разработка каждой составной части курсового проекта имеет свои особенности.
Во введении следует раскрыть актуальность темы, определить цель и задачи проекта, сформулировать практическую значимость проекта, определить предмет и объект исследования, структуру, информационную базу исследования, указать направления реализации полученных в проекте выводов и предложений. Объем введения в курсовом проекте 2-3 страницы.
Содержание основной части должно точно соответствовать теме проекта и полностью ее раскрывать. В основной части отражаются теоретические и практические исследования, расчеты, обобщение результатов, графический материал и т.п. Курсовой проект должен содержать расширенную (по сравнению с материалами лекций и учебников) теоретическую и практическую части.
Теоретическая часть курсового проекта имеет целью показать знание студентами существа вопроса и умение работать с научной и учебной литературой. В этой части должен быть произведен анализ литературы по теме курсового проекта, сформулирована проблема и сделаны выводы. Содержание теоретической части может быть расширено за счет использования дополнительной литературы, статьями по данной тематике, опубликованными в периодике; научными монографиями, рефератами и другой тематической литературой.
соответствующие выводы и рекомендации по конкретной практической ситуации (программной среде). Проведение анализа и выработка рекомендаций осуществляется путем практического приложения теоретических основ, изложенных в работе. Исследование желательно проводить на примере какоголибо реального приложения. Практическая часть работы может быть представлена теоретической разработкой какой-либо проблемы, изложенной в виде конкретной, самостоятельно разработанной модели, теории и т.п., т.е.
конкретные мероприятия для решения проблемы, выявленной в теоретической части целесообразности предлагаемых решений. Рекомендуется выделение теоретической и практической частей курсового проекта в самостоятельные главы. В этом случае первая глава будет иметь теоретический характер, а вторая (аналитическая) и третья (рекомендательная) – практический.
Желательно, чтобы все главы работы имели примерно равный объем.
Заключение должно содержать анализ полученных результатов в соответствии с целями и задачами, поставленными во введении, основные выводы об эффективности предложенных решений, рекомендации по улучшению практического применения предмета исследования. Объем 2- страницы.
В приложение включают вспомогательный материал, например: отчетные формы и скриншоты работы анализируемого объекта исследования, логическую структуру входных и выходных данных, основные функции разрабатываемой программы и разработанную структуру программы, состоящую из нескольких функциональных модулей, схему работы системы, а также формы представление данных, межмодульный и др.
Курсовой проект представляет собой самостоятельное учебно-научное исследование, которое студенты выполняют под руководством преподавателя в соответствие с учебным планом своей специальности. Исследование курсового проекта проводится по одной из актуальных проблем или задач проектирования автоматизированных информационных систем.
Выполнение курсового проекта способствует углубленному изучению наиболее важных и сложных тем изучаемой дисциплины и является проверкой глубины и прочности знаний студента. По степени трудности форм учебной деятельности (лекция, лабораторная работа, практическое занятие, курсовой проект, экзамен и др.) исследователи ставят курсовой проект на второе место вслед за экзаменом.
Принципы выполнения курсовых проектов заключаются в следующем:
Тщательное и объемное изучение общей и специальной литературы по теме проекта с обязательным привлечением современных Использование различных методов научного исследования (общенаучных, экономико-математических, экспертных и др.);
Грамотная формулировка и изложение результатов анализа собранной информации (обобщения, выводы, предложения по теме Использование практического и экспериментального материала, а также проведение сравнительного анализа теории и практики.
Оформление курсового проекта в соответствии с установленными В соответствии с изложенными принципами можно сформулировать общие требования к выполнению курсового проекта:
1. Курсовой проект должен демонстрировать свободное владение студента темой работы, а также знание первоисточников по ней.
2. Курсовой проект должна носить творческий характер и демонстрировать умение студента делать собственные выводы на основе изученной литературы.
3. Изложение материала должно быть последовательным (постановка задач исследования, изложение и анализ основных концепций, выводы и практические предложения, заключение).
4. Теоретические положения необходимо подкреплять конкретными 5. Недопустимо дословное заимствование текста из используемых литературных и иных источников.
6. Проект должен быть написан простым и ясным языком с четкими формулировками ее основных положений.
7. При оформлении проекта необходимо руководствоваться требованиями ГОСТов 7.32-2001 «Отчет о научноисследовательской работе. Структура и правила оформления» и 7.1Система стандартов по информации, библиотечному и издательскому делу. Библиографическое описание документа.
Общие требования и правила составления».
Несоблюдение перечисленных требований является основанием для снижения оценки за курсовой проект и его возврата студенту на доработку.
2. ТЕМАТИКА КУРСОВЫХ ПРОЕКТОВ
Проект состоит из расчетно-пояснительной записки (РПЗ) и программы, представленной на CD-диске.Техническое задание включает общие и специальные требования к программе.
Объем пояснительной записки составляет 20-30 машинописных страниц (формат А4), РПЗ должна быть написана четко и кратко, содержать пояснения к разработанному приложению, обоснование принятых решений. РПЗ должна включать следующие разделы:
3. перечень условных обозначений и сокращений в алфавитном порядке в виде списка, в котором слева приводится сокращение, справа – его расшифровка, Краткие теоретические сведения: анализ существующих программ Разработка структуры приложения;
Разработка алгоритма решения задачи;
Разработка программы;
Проектирование интерфейса приложения (если это предусмотрено Список использованных источников;
спецификация программного обеспечения, руководство пользователя (системного программиста).
Подготовленный и оформленный проект представляется преподавателю не позднее, чем за неделю до защиты.
ПРИМЕРНЫЕ ТЕМЫ КУРСОВЫХ ПРОЕКТОВ
1. Создание собственного языка программирования, его полное описание по форме БНФ, создание транслятора и среды программирования.2. Создание диспетчера задач Windows с возможностью сбора статистических данных.
3. Создание библиотеки управления COM портами.
4. Создание утилиты для оптимизации работы ЭВМ под управлением ОС Windows.
5. Создание файлового менеджера.
6. Эмуляция работы операционной системы по диспетчеризации процессов.
7. Эмуляция работы операционной системы по выделению памяти RAM и виртуальной памяти.
8. Создание утилиты для работы с сетевым адаптером.
9. Создание программы, использующей процессоры видеоадаптера для решения неграфических задач.
10. Создание COM-модуля, инкапсулирующего класс для аппроксимации одномерного числового ряда и приложение для его тестирования.
11. Создание COM-модуля, инкапсулирующего класс для двумерной аппроксимации матрицы и приложение для его тестирования.
12. Создание COM-модуля, инкапсулирующего класс для работы с сетью через протокол TCP и приложение для его тестирования.
13. Создание промежуточного драйвера устройства для работы с сетевой картой.
14. Создание промежуточного драйвера устройства, реализующего основные функции для работы с usb.
15. Создание программы, выводящей полную информацию о жестком диске.
16. Создание промежуточного драйвера устройства, реализующего основные функции для работы с COM-портом.
17. Создание клиент-серверного приложения для обмена сообщениями, содержащими графическую информацию.
18. Создание COM-модуля, инкапсулирующего класс для шифрования данных с использованием алгоритма DES.
19. Создание COM-модуля, инкапсулирующего класс для шифрования данных с использованием алгоритма TwoFish.
20. Создание COM-модуля, инкапсулирующего класс для шифрования данных с использованием алгоритма IDEA.
21. Создание COM-модуля, инкапсулирующего класс для работы с сетью с использованием протокола SSL.
22. Создание промежуточного драйвера для работы с сетью с использованием протокола SSL.
23. Создание клиент-серверного приложение для обмена сообщениями по свободному протоколу.
24. Создание конвертера с одного языка высокого уровня на другой.
25. Создание программы диагностики ошибок.
26. Создание редактора оконных интерфейсов.
27. Создание конвертера форматов.
28. Создание интерпретатора программ на языке высокого уровня.
29. Создание интерпретатора файлов в заданном формате.
30. Создание компилятора языка высокого уровня в объектный код.
31. Создание препроцессора.
32. Создание декомпилятора.
33. Создание диспечера задач.
34. Разработка компилятора подмножества языка высокого уровня на язык ассемблер Курсовой проект представляет собой поиск и освещение материала, непосредственного включенного в программу курса, и предназначен для закрепления и систематизации знаний, полученных в результате самостоятельного изучения дисциплины. Для ответа необходимо использовать не только учебные, методические и справочные пособия, но и периодическую литературу соответствующего профиля.
3. МЕТОДИКА ВЫПОЛНЕНИЯ КУРСОВОГО ПРОЕКТА
Системное программирование (или программирование систем) — род деятельности, заключающийся в работе над системным программным обеспечением.Основная отличительная черта системного программирования по сравнению с прикладным программированием заключается в том, что результатом последнего является выпуск программного обеспечения, предлагающего определённые услуги пользователям (например, текстовый процессор). В то время как результатом системного программирования является выпуск программного обеспечения, предлагающего сервисы по взаимодействию с аппаратным обеспечением (например, дефрагментация жёсткого диска), что подразумевает сильную зависимость таких программ от аппаратной части. В частности выделим следующее:
программист должен учитывать специфику аппаратной части и другие свойства системы в которой функционирует программа, использовать эти свойства, например, применяя специально оптимизированный для данной архитектуры алгоритм.
программирования или такой диалект языка программирования, который ограниченным набором системных ресурсов.
минимальное запаздывание по времени завершения.
невозможности запустить её в отладчике из-за ограничений на ресурсы, поэтому может применяться компьютерное моделирование для решения этой проблемы.
Системное программное обеспечение служит для обеспечения эффективной работы аппаратуры компьютера.
К группе системных программ относятся операционные системы, операционные оболочки, утилиты, драйверы, архиваторы, антивирусные и некоторые другие программы.
- Операционные системы представляют собой пакеты программ, которые обеспечивают эффективную работу всех аппаратных средств компьютера, а также возможность управления всеми его ресурсами.
- Операционные оболочки представляют собой дополнительные программы, которые предназначены для повышения удобства управления работой операционных систем.
- Утилиты (utility — полезность) представляют собой небольшие, но очень полезные программы, которые выполняют разнообразные вспомогательные функции по управлению работой аппаратных средств, по повышению эффективности их работы, проверки работоспособности, обслуживания и настройки.
- Для выполнения операций по обмену данными между программой и различными внешними устройствами в состав операционной системы включается ряд специализированных программ, которые принято называть драйверами (drive — управлять). Отсутствие или применение не соответствующего устройству драйвера делает бесполезным это устройство.
- Программы-архиваторы служат для создания архивных копий важных программ и наборов данных. Архиваторы также минимизируют объем, который нужен для размещения архива на внешнем носителе.
- Антивирусные программы обеспечивают пользователя необходимыми средствами борьбы с упоминавшимися выше компьютерными вирусами.
Разрабатываются, настраиваются и поддерживаются в рабочем состоянии системные программы специалистами, которых принято называть системными программистами. Они должны обладать высокой квалификацией, в деталях знать аппаратное обеспечение компьютера и способы работы с данными на машинном уровне. Рядовому пользователю приходится постоянно сталкиваться с системными программами, но уже с точки зрения их эксплуатации, использования их возможностей для решения своих задач. С некоторыми программами этой группы мы познакомимся в следующих главах пособия.
Системный вызов в программировании и вычислительной технике — обращение прикладной программы к ядру операционной системы для выполнения какой-либо операции. Современные операционные системы (ОС) предусматривают разделение времени между выполняющимися вычислительными процессами (многозадачность) и разделение полномочий, препятствующее исполняемым программам обращаться к данным других программ и оборудованию. Ядро ОС исполняется в привилегированном режиме работы процессора. Для выполнения межпроцессной операции или операции, требующей доступа к оборудованию, программа обращается к ядру, которое, в зависимости от полномочий вызывающего процесса, исполняет либо отказывает в исполнении такого вызова. С точки зрения программиста системный вызов обычно выглядит как вызов подпрограммы или функции из системной библиотеки. Однако системный вызов как частный случай вызова такой функции или подпрограммы следует отличать от более общего обращения к системной библиотеке, поскольку последнее может и не требовать выполнения привилегированных операций.
Структура— это набор из одной или более переменных, возможно различных типов, сгруппированных под одним именем для удобства обработки.
(В некоторых языках, самый известный из которых паскаль, структуры называются "записями").
Традиционным примером структуры является учетная карточка работающего:
"служащий" описывается набором атрибутов таких, как фамилия, имя, отчество (ф.и.о.), адрес, код социального обеспечения, зарплата и т.д.
Некоторые из этих атрибутов сами могут оказаться структурами: ф.и.о. Имеет несколько компонент, как и адрес, и даже зарплата. Структуры оказываются полезными при организации сложных данных особенно в больших программах, поскольку во многих ситуациях они позволяют сгруппировать связанные данные таким образом, что с ними можно обращаться, как с одним целым, а не как с отдельными объектами.
Процессы могут обмениваться между собой информацией через файлы.
Существуют файлы с необычным поведением - так называемые FIFO-файлы (first in, first out), ведущие себя подобно очереди. У них указатели чтения и записи разделены. Работа с таким файлом напоминает проталкивание шаров через трубу - с одного конца мы вталкиваем данные, с другого конца вынимаем их. Организация FIFO-файлов идет по принципу «первый пришёл — первый вышел». Операция чтения из пустой "трубы" проиостановит вызов read (и издавший его процесс) до тех пор, пока кто-нибудь не запишет в FIFO-файл какие-нибудь данные. Очередь в программировании используется, как и в реальной жизни, когда нужно совершить какие-то действия в порядке их поступления, выполнив их последовательно. Примером может служить организация событий в Windows. Когда пользователь оказывает какое-то действие на приложение, то в приложении не вызывается соответствующая процедура (ведь в этот момент приложение может совершать другие действия), а ему присылается сообщение, содержащее информацию о совершенном действии, это сообщение ставится в очередь, и только когда будут обработаны сообщения, пришедшие ранее, приложение выполнит необходимое действие.
Основные этапы выполнения курсового проекта.
Защита курсового проекта после указанного срока защиты только на оценку – удовлетворительно.
1. Выдача задания 2. Разработка структуры программы и спецификаций на программные Курсовой проект должен соответствовать следующим требованиям:
быть выполненной на достаточном теоретическом уровне;
включать анализ материала;
основываться на результатах самостоятельного исследования, если иметь обязательные самостоятельные выводы в заключении работы;
иметь необходимый объем;
быть оформленной по стандарту и выполненной в указанные сроки.
При выборе темы курсового проекта студент должен учитывать:
познавательный интерес к ней;
возможность последующего более глубокого исследования проблемы (написание дипломной работы).
4 ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ КУРСОВОГО ПРОЕКТА
Оформление курсового проекта должно соответствовать ГОСТам (ГОСТ 7.1. – 2003; 7.12 – 93, ГОСТ 2.105-95 текстовые документы, графические документы). Курсовая работа, как правило, печатается на стандартной бумаге в формате А4 и должна иметь объем 25-35 страниц машинописного текста и включать в себя следующую структуру:титульный лист;
оглавление;
введение;
основной текст (главы, параграфы);
заключение;
список использованных источников и литературы;
приложения.
При выполнении документа необходимо соблюдать следующие требования к тексту:
- шрифт Times New Roman, размер (кегль) – 14 стиль (начертание) – обычный, цвет шрифта – черный;
- выравнивание – по ширине; красная (первая) строка (отступ) – 1,25 см;
межстрочный интервал – 1,5;
- автоматический перенос слов.
Страницы курсового проекта следует нумеровать арабскими цифрами, соблюдая сквозную нумерацию по всему тексту, включая приложения. Номер страницы проставляют в правом нижнем углу без точек и черточек.
Титульный лист включают в общую нумерацию страниц документа.
Номер страницы на титульном листе, не проставляют.
Основную часть документа следует делить на разделы (главы, соответствующие основным разделам плана работы над курсовым проектом), подразделы и пункты. Разделы должны иметь порядковые номера в пределах всего документа, за исключением приложений, например: 1, 2, 3 и т.д.
Подразделы должны иметь нумерацию в пределах каждого раздела.
Номер подраздела состоит из номера раздела и подраздела, разделенных точкой. В конце номера подраздела точка не ставится, например: 1.1, 1.2, 1.3 и т.д.
Переносы слов в заголовках не допускаются. Если заголовок состоит из двух предложений, их разделяют точкой. При переносе заголовка на вторую строку первая буква второй строки размещается под первой буквой первой строки. Межстрочный интервал в этом случае – одинарный.
Заголовки «Оглавление», «Введение», «Заключение», «Список использованных источников и литературы», «Приложения» выполняют симметрично тексту (по центру) без абзацного отступа строчными буквами без нумерации.
Каждый раздел текстового документа следует начинать с нового листа, такими разделами являются титульный лист, содержание, введение, теоретическая часть, практическая часть, заключение, список использованных источников, каждое из приложений.
5 ФОРМЫ АТТЕСТАЦИИ И ПОРЯДОК ПРОВЕДЕНИЯ ЗАЩИТЫ
КУРСОВЫХ ПРОЕКТОВ
Курсовой проект допускается к защите при условии законченного оформления, допуска научного руководителя.В случае не допуска курсовой работы к защите, руководитель курсовой работы проставляет в экзаменационной ведомости студенту неудовлетворительную оценку.
Защита курсовых проектов должна быть проведена до начала экзаменационной сессии. Защита курсовых проектов проводится в виде публичного выступления студента. Курсовой проект может быть оценен на «отлично», «хорошо», «удовлетворительно», «неудовлетворительно».
Критериями оценки курсового проекта являются:
- актуальность и степень разработанности темы;
- творческий подход и самостоятельность в анализе, обобщениях и выводах; полнота охвата первоисточников и исследовательской литературы;
- уровень овладения методикой исследования;
- научная обоснованность и аргументированность обобщений, выводов и рекомендаций; научный стиль изложения;
- соблюдение требований к оформлению курсового проекта и сроков ее исполнения.
1. Молчанов А.Ю. Системное программное обеспечение: Учебник для вузов. – СПб.: Питер, 2. Молчанов А.Ю. Системное программное обеспечение. Лабораторный практикум. – СПб.: Питер, 3. Гордеев А.В. Операционные системы: Учебник для вузов. – СПб.: Питер, 4. Таненбаум, Э. Компьютерные сети / Э. Таненбаум, Д. Уэзеролл;пер. с англ. А.Гребенькова.-5-е изд.-СПб.:Питер,2012.-955с. - (Классика Computer Science) 5. Клейменов, С.А. Администрирование в информационных системах:учеб.
пособие для вузов /С.А. Клейменов, В.П. Мельников, А.М. Петраков; под ред. В.П. Мельникова. - М.:Академия,2008.-271с. - (Высшее профессиональное образование) 6. Бек Л. Введение в системное программирование. – М.: Мир, 2008.
7. Вишняков В.А., Петровский А.А. Системное обеспечение микро-ЭВМ.
Учебное пособие для вузов. – М.: Высшая школа, 2010.
8. Зубков С.В. Assembler для DOS, Windows и Unix. Язык неограниченных возможностей. – М: ДМК, 2009.
9. Таненбаум Э. Современные операционные системы, 2-е изд.: Пер. с англ.
- СПб: Питер, 2003. - 1040 с.: ил.
10.Гордеев А. В., Молчанов А. Ю. Системное программное обеспечение:
Учебник для вузов - СПб: Питер, 2003. - 736 с.: ил.
11.Вильямс А. Системное программирование в Windows 2000 для профессионалов - СПб: Питер, 2003. - 624 с.: ил.
12.Джонсон М. Системное программирование в среде Win32, 2-е изд.: Пер. с англ. - M.: Издательский дом "Вильямс", 2001. - 464 с.: ил.
13.Рихтер Дж. Windows для профессионалов: создание эффективных Win приложений с учетом специфики 64-разрядной версии Windows, 4-е изд.:
Пер, англ - СПб: Питер; М.: Издательско-торговый дом "Русская Редакция", 2001. - 752 с.; ил.
14.Журнал «Компьютер-Пресс»
15.Журнал «Мир ПК»
16.Журнал «COMPUTERWORLD»
17.Журнал «PCWEEK/RE»