ТЕМАТИКА КУРСОВЫХ ПРОЕКТОВ. для студентів денної форми навчання фаху:
ПРОЕКТУВАННЯ ПО КУРСУ
"СИСТЕМНЕ ПРОГРАМУВАННЯ "
для студентів денної форми навчання фаху:
7091501 “Комп'ютерні системи та мережі”;
7091502 “Системне програмування”;
7091503 “Спеціалізовані комп'ютерні системи“.
|
Упорядники:
Волк М.О.
Відповідальний за випуск
Харків ХТУРЕ 2000
МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
ХАРКІВСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ
УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ
МЕТОДИЧНІ ВКАЗІВКИ ДО КУРСОВОГО
ПРОЕКТУВАННЯ ПО КУРСУ
"СИСТЕМНЕ ПРОГРАМУВАННЯ "
для студентів денної форми навчання фаху:
7091501 “Комп'ютерні системи та мережі”;
7091502 “Системне програмування”;
7091503 “Спеціалізовані комп'ютерні системи“.
|
Харків ХТУРЕ 2000
Методичні вказівки до курсового проектування по курсу
“ Системне програмування ” для студентів денної форми навчання /Упоряд. Волк М.О.-
Харків: ХТУРЕ, 2000.- с.-Укр.мовою.
Упорядники: М.О. Волк.
ОБЩИЕ ПОЛОЖЕНИЯ
Данные методические указания предназначены для проведения курсового проектирования по курсу “Системное программирование”, что завершает процесс подготовки специалистов по данному курсу. Курсовое проектирование введено в учебный процесс на основании учебных планов по вышеупомянутым учебным планам и проводятся у 4-м семестре.
Методические указания состоят из таких разделов: цели и задачи курсового проектирования, тематика курсовых проектов, структура и содержание курсового проекта, методические указания по его выполнение, требования к оформлению курсового проекта, организация проектирования и защита курсового проекта.
При курсовом проектировании студент должен показать творческий подход к разработке модулей программного обеспечения, грамотное использование существующего программного обеспечения, хорошее алгоритмическое мышление, навыки высококвалифицированного программирования на различных алгоритмических языках низкого уровня. Студенты должны уметь превратить свою программу в программный продукт, выполнить качественный анализ программы, сделать оценку полученных результатов при использовании различных вариантов.
Задания предполагают создание уникальной программы, которая написана с использованием процедур и функций операционной системы. Особое внимание при разработке необходимо уделить эффективности с точки зрения используемых ресурсов вычислительной системы. Важное значение имеет удобный интерфейс с пользователем и хорошая документация к программе, предназначенная для пользователей и сопровождения программы. Желательно позаботиться о средствах защиты своих программ от несанкционированного доступа.
Многие задания комплексные. Разработка больших программ требует дополнительных знаний а области организаций работ при создании модулей системы разными программистами. Возможно решение одной задачи несколькими студентами, но в этом случае предполагается обязательный анализ и сравнение различных вариантов.
1. ЦІЛІ ТА ЗАДАЧІ КУРСОВОГО ПРОЕКТУВАННЯ
Основной целью курсового проектирования по курсу "Системное программирование" является систематизация, углубление и активное применение знаний по системному программированию, закрепление знаний, полученных в лекционном курсе, а также на практических и лабораторных занятиях. Данную цель можно раскрыть следующим образом:
систематизация и закрепление теоретических знаний студентов по основным разделам курса "Системное программное обеспечение";
углубленное изучение проблем разработки программного обеспечения для современных ЭВМ;
привитие студентам практических навыков использования языков низкоуровневого типа при составлении системных программ, стыковки программных модулей, написанных на разных языках, а также анализа основных характеристик программ;
знакомство с реферативными журналами и другими информационными источниками по программному обеспечению с целью анализа состояния решаемых задач:
выполнение всех этапов разработки программ на примере, близком к реальным задачам,
подготовка к выполнению дипломной работы.
Самая важная задача курсового проектирования - развитие в студентов привычек разработки сложного программного обеспечения, которые включают изучения предметной области, для которой разрабатывается приложение, выбор, обоснование и использование современных систем проектирования с учетом эффективности разработок, таких, как время проектирования и отладки программного проекта, стоимости разработок. Особое внимание необходимо уделить использованию современных методов разработки программ таких, как объектно-ориентированное программирование и визуально проектирования, а также структурное и модульное программирования. Задачи, решаемые в процессе курсового проектирования:
разработка системы математического обеспечения или его части в соответствии с требованиями к системе;
закрепление практических навыков в оформлении документации на каждом этапе разработки;
закрепление практических навыков использования ЭВМ, программного обеспечения, существующих средств обслуживания системных программистов;
развитие навыков самостоятельной работы с системами государственных стандартов.
Изложенное выше должно способствовать развитию у студентов алгоритмического и логического мышления, а также способствовать самостоятельному инженерному творчеству.
Для выполнения курсового проекта за студентами закрепляется руководитель курсового проекта с числа преподавателей и сотрудников кафедры, что выдает задачу, консультирует студентов в течении всего времени проектирования, фиксирует график выполнения курсового проекта. Особое внимание руководитель курсового проекта должен уделить развития в студентов привычек самостоятельного решения поставленной задачи, умению выделять главные факторы в решаемой задаче, абстрагироваться от второстепенных деталей и решать задачу на том уровне абстракции, которые отвечает природе этой задачи.
В курсе "Системное программирование" основное внимание уделяется изучению современных операционных систем, способов проектирования приложений, объектно-ориентированному программированию. В процессе курсового проектирования студенты должны продемонстрировать знания основных способов взаимодействия приложений с операционной системой, представлению объектов и операций над ними. Использование абстрактных понятий при системном и структурном подходе позволяет отложить вопрос детализации представления данных на больше позднее время и частично автоматизировать этот процесс. Использование современных способов визуального проектирования приложений спасает разработчика от рутинной работы, тем не менее, ошибки допущенные на начальном этапе проектирования, могут со временем свести на нет эффективность решаемой задачи. Поэтому, основное внимание необходимо уделить применению рассмотренных идей и методов в практическом программировании.
ТЕМАТИКА КУРСОВЫХ ПРОЕКТОВ
Темы курсовых работ должны быть реальными и посвящены расширению функции существующих программ, разработке драйверов для новых аппаратных средств или модификации существующих, а также решению задач, требуемых учебным процессом.
Все курсовые работы по темам могут быть разделены на группы:
изучение существующих систем математического обеспечения, их возможностей, а затем модификация и дополнение функций этих систем;
разработка новых систем, которые позволяют решать задачи автоматизации ручного труда, обучения, тестирования и т.д.
разработка интерфейсных приложений типа пользователь-приложение и приложение-приложение;
К первым относятся проекты, связанные с расширением возможностей алгоритмических языков, операционных систем, редакторов, а также моделирование команд одного типа ЭВМ на других ЭВМ, т.е. создание кросс-систем, языковая реализация параллельного программирования и т.д.
Ко вторьм - проекты, связанные с автоматизацией труда программистов, корректоров, референтов и др.
К третьим относятся проекты, связанные с созданием интерфейса программных приложений на уровне команд операционной системы.
Актуальность тематики курсовых проектов должна отвечать современному состоянию программного обеспечения и перспективам его развития. Перечень тем утверждается на заседании кафедры ЭВМ.
Для практического освоения теории и методов разработки больших программных систем предусматривается выполнение комплексных курсовых проектов.
Настоящие методические указания не исключают курсовых проектов по тематике, отличной от рекомендованной. Курсовые проекты могут основываться на работах, выполняемых по тематике НИРС, но должны быть доведены до создания программного продукта. Большинство заданий на курсовое проектирование предусматривает необходимость выполнения всех этапов разработки программного обеспечения. Для успешного выполнения этих работ желательно, чтобы студенты получили задание в предшествующем курсовому проектированию семестре. В этом случае возможно выполнение этапов разработки спецификации и проекта еще до изучения языка системного программирования. Желательна связь тематик курсового и дипломного проектирования.
Этот далеко не полный перечень направлений постоянно расширяется и дополняется. Ниже приведена примерная тематика курсовых проектов:
1. Программы системного уровня, системные утилиты, расширяющие возможности операционных систем.
1) Диагностика дискет
2) Диагностика винчестера
3) Шифровка - расшифровка файла
4) Программирование принтера
5) Программирование динамика и таймера
6) Разработка резидентных программ
2. Интерфейсные программы, связь и обмен данными.
1) Разработка систем визуального ввода/вывода информации
2) Разработка пользовательского интерфейса
3) Реализация точечной и векторной графики
4) Разработка программного обеспечения для издательских систем. Форматирование текстов в соответствии с заданными правилами
5) Разработка OLE - объектов
6) Создание многооконных приложений
7) Разработка динамически подключаемых библиотек интерфейсных процедур
8) Программы динамического обмена данными
3. Прикладные программы.
1) Разработка тренажера клавиатуры
2) Разработка точечного графического редактора
3) Создание векторного редактора
4) Разработка программ обработки текстов
СТРУКТУРА И СОДЕРЖАНИЕ КУРСОВОГО ПРОЕКТА
Структура курсовой работы
Курсовая работа должна быть выполнена в соответствии с заданием на проектирование и представлена пояснительной запиской и действующей программой на дискете.
Структура пояснительной записки и ее объем (до 30 страниц текста формата. А4) должны быть такими, чтобы полностью раскрыть все разделы задания на курсовое проектирование. Она должна содержать следующие разделы:
введение;
анализ требований к разрабатываемой системе на основании задания;
разработка спецификаций системы;
проектирование системы;
реализация и тестирование системы;
заключение.
Во введении необходимо показать актуальность решения поставленной задачи, при необходимости сделать обзор существующих систем с целью доказать, что они не решают поставленных задач или решают их неэффективно.
Во втором разделе должны быть четко определены цель разработки, сформулированы ограничения на входные данные системы, описаны выходные данные.
В третьем разделе в зависимости от задания к курсовому проекту должны быть описаны или существующие спецификации, или разработанные студентом. Например, если курсовая работа предусматривает разработку системы для расширения существующего языка, то спецификации разрабатываются студентом и фактически задают правила записи дополнительных операторов и их описание. Если курсовая работа посвящена разработке кросс-средств или созданию блоков, трансляторов со свойствами, отличными от свойств существующих трансляторов, то спецификациями являются операторы языка, для которого создается система. В этом случае операторы просто описываются.
В четвертом разделе должна быть разработана структура системы, отражающая взаимодействие отдельных модулей, определены функции каждого модуля, его вход и выход. Необходимо разработать алгоритм функционирования каждого модуля. При выполнении комплексной работы в пояснительной записке необходимо показать структуру всей системы, определить, какие модули разработаны в данной работе, и дать описание алгоритмов функционирования именно этих модулей.
В пятом разделе должны быть описаны; разработанные программы, определен оптимальный набор тестов и описаны результаты испытания системы на выбранном наборе тестов.
В заключении необходимо сделать краткий обзор полученных результатов и дать рекомендации по внедрению разработанной системы, а также по ее модификации.