1.1 Цели и задачи курсовой работы, реализуемые компетенции в ходе ее выполнения
Курсовая работа по дисциплине «Системное программирование» является одной из форм самостоятельной работы студентов, и представляет собой законченное самостоятельное исследование, в котором содержится решение практической задачи, вытекающее из системного анализа выбранного объекта и предмета, проблемы (ситуации), обобщения и систематизации материала по учебной дисциплине, полученного, как на учебных занятиях, так и в процессе самостоятельного изучения.
Курсовой проект по МДК 01.01 «Системное программирование» предусмотрен учебным планом специальности 230115 Программирование в компьютерных системах и является итоговым контролем знаний студентов.
Выполнение курсового проекта является неотъемлемой и необходимой частью изучения дисциплины «Системное программирование».
Выполнение курсового проекта по МДК 01.01 «Системное программирование» ставит перед студентом следующие цели и задачи:
систематизация, закрепление и расширение теоретических и практических знаний, полученных в процессе обучения;
разработка математической модели поставленной задачи и ее обоснование;
определение практической составляющей задачи, ее экономической сущности;
разработка студентом программного продукта, отвечающего требованиям к уровню подготовки специалиста по специальности 230115 Программирование в компьютерных системах.
Особенностью выполнения данного курсового проекта является наличие у студентов определенных навыков работы в объектно-ориентированной среде программирования C++ Visual Studio.
Результаты выполнения и защиты курсовой работы по дисциплине «Системное программирование» согласно рабочему плану и ОПОП специальности «Программирование в компьютерных системах» в соответствии с ФГОС СПО должны способствовать формированию следующих компетенций:
|
Общекультурные:
ОК-1. Понимать сущность и социальную значимость своей будущей профессии, проявлять к ней устойчивый интерес.
ОК-2. Организовывать собственную деятельность, выбирать типовые методы и способы выполнения профессиональных задач, оценивать их эффективность и качество.
ОК-3. Принимать решения в стандартных и нестандартных ситуациях и нести за них ответственность.
ОК-4. Осуществлять поиск и использование информации, необходимой для эффективного выполнения профессиональных задач, профессионального личностного развития.
ОК-5. Использовать информационно-коммуникационные технологии в профессиональной деятельности.
ОК-6. Работать в коллективе и в команде, эффективно общаться с коллегами, руководством, потребителями.
ОК-7. Брать на себя ответственность за работу членов команды (подчиненных), за результат выполнения заданий.
ОК-8. Самостоятельно определять задачи профессионального и личностного развития, заниматься самообразованием, осознанно планировать повышение квалификации.
ОК-9. Ориентироваться в условиях частой смены технологий в профессиональной деятельности.
ОК-10. Исполнять воинскую обязанность, в том числе с применением полученных профессиональных знаний (для юношей).
Профессиональные:
ПК 1.1. Выполнять разработку спецификаций отдельных компонент.
ПК 1.2. Осуществлять разработку кода программного продукта на основе готовых спецификаций на уровне модуля.
|
ПК 1.3. Выполнять отладку программных модулей с использованием специализированных программных средств.
ПК 1.4. Выполнять тестирование программных модулей.
ПК 1.5. Осуществлять оптимизацию программного кода модуля.
ПК 1.6. Разрабатывать компоненты проектной и технической документации с использованием графических языков спецификаций.
Приобретенные навыки самостоятельной работы, а также собранный в ходе написания курсовой работы материал могут и должны быть использованы в дальнейшем при написании выпускной квалификационной работы. Процесс написания курсовой работы следует расценивать как первый этап работы над научным исследованием.
1.2.Требования, предъявляемые к содержанию курсовой работы
Учитывая специфику МДК 01.01 «Системное программирование» к содержанию курсовой работы предъявляются следующие требования:
- актуальность исследования, представленного в работе;
- полнота и объективность теоретического освещения изучаемой проблемы, как в целом, так и отдельных ее частей;
- использование информационных технологий, базирующихся на применении средств современной вычислительной техники и соответствующего программного обеспечения;
- курсовая работа должна содержать ссылки на использованные литературные источники и источники фактических данных;
- в курсовой работе должен быть представлен краткий обзор литературы по исследуемой проблеме;
- курсовая работа должна быть написана грамотным языком и правильно оформлена;
|
- в курсовой работе должна быть представлена математическую модель задачи;
- в курсовой работе должны быть определены входные и выходные данные задачи; составлена обобщенная блок схема решения задачи;
- разработан интерфейс программы;
- представлен код программы.
Курсовая работа по МДК 01.01 «Системное программирование» должна содержать собой законченный программный продукт, к которому предъявляются определенные требования: обязательно наличие справки, руководства пользователя, сведения о разработчиках.
1.3. Этапы выполнения курсовой работы
Подготовка и защита курсовой работы состоят из следующих последовательных этапов:
- выбор темы курсовой работы, согласование ее с руководителем;
- подбор и изучение литературы по избранной теме;
- составление рабочего плана курсовой работы, согласование его с руководителем;
- изучение отобранной и рекомендованной литературы, аналитических материалов;
- выбор среды программирования;
- составление программы по теме курсовой работы;
- тестирование программы;
- написание текста курсовой работы;
- представление завершенной и оформленной курсовой работы научному руководителю и получение его рецензии на курсовую работу;
- доработка текста курсовой работы по требованию научного руководителя и согласно его замечаниям (если они имеются);
- защита курсовой работы.
1.4 Правила выбора темы курсовой работы
Тема курсовой работы выбирается студентом самостоятельно на основе типового перечня тем курсовых работ (приложение 1).
Закрепление за студентом темы курсовой работы производится по его личному заявлению на имя декана факультета СПО в установленные сроки. Заявления студентов после рассмотрения и утверждения кафедрой избранных ими тем курсовых работ оформляется приказом о закреплении за студентами тем курсовых работ и назначении научных руководителей.
После выбора и утверждения темы курсовой работы студент составляет ее план (содержание) и представляет его своему научному руководителю на утверждение.
1.5 Требования к содержанию курсовой работы
Первоначальный вариант содержания курсовой работы должен быть тщательно продуман и составлен студентом самостоятельно на основе изучения источниковой базы по выбранной теме. Первоначальный вариант содержания (плана) согласуется с научным руководителем.
Содержание курсовой работы должно отражать ее основную идею. В плане должны быть выделены наиболее актуальные вопросы курсовой работы.
Теоретический материал должен раскрывать сущность исследуемой темы, отражать современную проблематику вопроса, представлять перспективные направления решения задач разработки системного программного обеспечения. Весь собранный теоретический материал должен быть хорошо изучен студентом, проанализирован и творчески использован в выполняемой работе.
Не допускается механическое заимствование текста из литературных источников. Все приводимые в работе цитаты, заимствования и цифровые данные, полученные другими авторами, должны иметь ссылки на источники. В процессе работы с теоретическим материалом от студента требуется самостоятельная проработка литературных источников, их критическое осмысление, умение увязать теорию с практикой, выразить собственные суждения и оценки. Для систематизации изученного материала и облегчения его последующего использования целесообразно делать выписки, вести карточки по соответствующим разделам работы с обязательным указанием источника в соответствии с правилами библиографического описания произведений печати. В дальнейшем это позволит сэкономить время при составлении списка используемых источников и литературы.
Курсовые работы должны содержать коды программ, разработанных студентом.
Сравниваемые данные, взятые из разных источников или за ряд лет, должны быть сопоставимы. Используемый материал должен отражать общую направленность и закономерности исследуемых процессов, а не исключения из них.
Все приводимые в работе данные (таблицы, схемы, графики и др.) должны быть подвергнуты тщательному анализу, прокомментированы, логически увязаны с темой работы и использованы для обоснования выводов и предложений. При разработке собранной информации студент должен применять различные методы экономического анализа: индексный, сравнения, графический, экономико-статистический, а также экономико-математические методы и модели с обязательным использованием современных технических средств. Результаты аналитических выкладок и расчетов оформляются в виде таблиц, диаграмм, графиков и др. Достоинством работы является использование для обработки собранной информации компьютерных программ.
Таким образом, содержащиеся в курсовой работе материалы должны отражать общую теоретическую подготовку и специальные знания студента, навыки разработки программных продуктов.
Как правило, курсовая работа состоит из введения, основной части и заключения. Основная часть состоит из разделов и подразделов. Большее число разделов представляется нецелесообразным. В каждом разделе должно быть не менее двух подразделов. Большое число подразделов не рекомендуется.
При составлении плана следует определить содержание отдельных разделов и дать им соответствующее название. Далее необходимо продумать содержание каждого раздела и наметить в виде подразделов последовательность тех вопросов, которые будут в них рассмотрены. Целесообразно на этой основе составить более развернутый план курсовой работы.
Содержание должно включать перечень структурных элементов курсовой работы с указанием номеров страниц, с которых начинается их месторасположение в тексте, в том числе: введение, основная часть, заключение, список использованных источников и литературы; приложения.
Во введенииследует раскрыть основное содержание, теоретическое и практическое значение избранной темы курсовой работы, обосновать ее актуальность, определить цель и задачи, объект исследования, указать теоретическую основу курсовой работы, ее практическую базу. Объем введения не должен превышать двух страниц печатного текста.
Во введении должны быть раскрыты следующие аспекты:
- актуальность выбранной темы, в которой должна отражаться ее практическая значимость;
- объект исследования;
- цель работы, которая определяется из названия и раскрывает общую тему исследования. При определении целей работы необходимо правильно их сформулировать. Так, при формулировании цели не следует использовать глагол «сделать». Правильнее будет употребить глаголы «разработать», «определить», «установить», «показать», «выявить» и т.д;
- задачи работы, которые определяются на основе поставленной цели. Они должны отражать все аспекты вопросов, раскрываемых в ходе работы. Задачи определяются и формулируются исходя из основного содержания (развернутого плана) работы.
- информационную базу исследования, которой являются источники специальной и справочной литературы отечественных и зарубежных авторов по проблемам темы в том числе журнальные статьи, интернет, нормативно – правовые акты;
- методы исследования.
Первый раздел курсовой работы носит, как правило, теоретический характер. В нем раскрывается суть и природа того явления, изучению которого посвящена курсовая работа, приводится краткий обзор литературы по избранной теме, критически рассматриваются точки зрения различных авторов.
В нем необходимо осветить следующие вопросы:
1. Раскрыть историю вопроса и изученность рассматриваемой темы организации системного программного обеспечения в литературе.
2. Определить основные вопросы и содержание процессов организации системного программного обеспечения, охватываемых рассматриваемой темой.
Второй раздел – практический. Во втором разделе необходимо:
1. Осуществить постановку задачи на разработку системного программного обеспечения.
2. Обосновать выбор программного обеспечения.
3. Описать разработку программы, реализующей системную задачу.
3.1 Представить алгоритм решения задачи
3.2 Привести описание интерфейса пользователя;
3.3 Описать разработанные студентом программные блоки (Привести коды программы в приложении)
Заключениедолжно содержать сжатые выводы и предложения по результатам проведенного исследования, направленные на устранение недостатков и совершенствование методов решения вопросов, изученных при написании курсовой работы. Выводы и предложения должны непосредственно вытекать из анализа тех или иных проблем в рамках темы и самого текста курсовой работы, быть конкретными, четкими, лаконичными, ориентированными на практическое использование. Объем заключения не должен превышать двух страниц машинописного текста.
2. Примерные задания и основные положения для разработки курсовой работы на примере конкретной темы
Тема 1. Разработка программы для WIN32 API на основе базовых сервисов для работы с файлами
Архитектура ОС Windows. Микроядерный дизайн. Элементы микроядерной архитектуры и элементы монолитного ядра (комбинированная система). Структура ядра ОС. Управление системными вызовами. Экранная графика. Упрощенная схема архитектуры, ориентированная на выполнение Win32-приложений. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows, расположенный между приложением и совокупностью системных вызовов (системных сервисов в терминологии Microsoft). Базовые сервисы для работы с файлами. Разработка программы c использованием Win32-функции CreateFile() в среде VisualStudio 2010.
Тема 2. Разработка программы для WIN32 API на основе базовых сервисов для работы с устройствами
Архитектура ОС Windows. Ядро (kernel) компонент, находящийся в невыгружаемой памяти и содержащий низкоуровневые функции операционной системы, такие, как диспетчеризация прерываний и исключений, планирование потоков и др. Наборы процедур и базовых объектов, применяемых компонентами высших уровней ОС. Типы данных Windows. Структура Windows программы. Спецификация окна Windows программы. Использование функций Windows API RegisterClassEx(), CreateWindowEx(), ShowWindow(), GetMessage(), TranslateMessage(), DispatchMessage(). Разработка программы c использованием одной из вышеперечисленных функций в среде С++ на базе VisualStudio 2010.
Тема 3. Разработка программы для WIN32 API на основе базовых сервисов для работы с процессами и потоками
Архитектура ОС Windows. Понятие процесса и потока. Блок управления процессом (PCB, Process control block). Переключение контекста. Блок управления потоком (thread control block, TCB). Реализация процессов. Внутреннее устройство процессов в ОС Windows. Управляющие структуры данных процесса. Разработка программы c использованием Win32 функции CreateProcess (CreateProcessAsUser и CreateProcessWithLogonW) в среде VisualStudio 2010.
Тема 4. Разработка программы для WIN32 API на основе библиотеки общих элементов управления для разработки оконных интерфейсов.
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Библиотека Microsoft Foundation Classes. Класс приложения. Класс окна. Завершение программы. Приложение Windows Forms. Создание SDI – приложения. Создание MDI – приложения. Разработка программы, содержащей создание новых пунктов меню в среде С++ на базе VisualStudio 2010.
Тема 5. Разработка программы для WIN32 API на основе Graphics Device Interface
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Интерфейс графических устройств Windows. Механизм рисования в Visual C++. Класс CDC. Отображение графики. Функция –член OnDraw(). Разработка программы с использованием функции OnDraw(), содержащей графические элементы прямоугольник, круг и другие - по выбору студента.
Тема 6. Разработка программы для WIN32 API на основе Network Services
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Система безопасности ОС Windows Защищаемые объекты Windows включают: файлы, устройства, каналы, события, мьютексы, семафоры, разделы общей памяти,разделы реестра ряд других. Субъектами в Windowsявляются процессы и потоки, запускаемые конкретными пользователями. Субъект безопасности - активная системная составляющая, а объект - пассивная. Дискреционный доступа Windows. Привилегированный доступ. Пользователь, как член группы. Инструментальные средства безопасности. Net -функции входят в состав библиотеки NetApi32.Lib. Создание программы создания новой учетной записи с использованием Win32-функции NetUserAdd, принадлежащей семейству сетевых (Net) функций ОС Windows.
Тема 7. Разработка программы для WIN32 API Windows System Information
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Диалоги и создание диалоговых ресурсов. Элементы управления способы добавления их к диалогам. Базовые варианты доступных элементов управления. Категории элементов управления. Модальные и немодальные диалоги. Создание программы с использованием функции OnInitDialog() с поддержкой диалоговых элементов управления в Visual C++.
Тема 8. Разработка программы в формате Unicode
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Стандарт Unicode. ANSI символы. Win32-функции, принимающие строковые параметры. Макросы - UNICODE и _UNICODE. Wcscmp - функция сравнения Unicode строк. Заголовочный файл tchar.h. Строковые функции (lstrlen вместо strlen и т.д.). Разработка программы вывода строки в формате Unicode в Visual C++.
Тема 9. Разработка программы, синтезирующей информацию об ошибке
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Включение кода для корректного восстановления после потенциальных ошибок. Выявление тип ошибки при помощи функции GetLastError. Коды ошибок (а их более 10 тысяч), представляющие собой 32-битные числа, находятся в заголовочном файле WinError.h. Функция SetLastError. Для преобразования кода ошибки в ее содержательное описание предназначена Win32-функция FormatMessage. Описание ошибки по ее коду можно также с помощью утилиты errlook.exe, поставляемой в составе Visual Studio. Использование звукового сигнала функция MessageBeep). Разработка программы, синтезирующей информацию об ошибке, которая имитирует отсутствие нужного файла в Visual C++.
Тема 10. Разработка программы реализующей структурную обработку исключений
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Системные вызовы (system calls) - механизм, позволяющий пользовательским программам обращаться к услугам ядра ОС, то есть этоинтерфейс между операционной системой и пользовательской программой. П рерывание (hardware interrupt) - событие, генерируемое внешним (по отношению к процессору) устройством. Аппаратное прерывание - асинхронное событие. Исключительная ситуация (exception) - событие, возникающее в результате попытки выполнения программой команды, которая по каким-то причинам не может быть выполнена до конца. Разработка программы реализующей структурную обработку исключений в Visual C++.
Тема 11. Разработка программы реализующей системный вызов
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Системные сервисы. Прерывания DPC и APC. Необходимость сохранения состояния текущего потока с его последующим восстановлением. Механизм ловушек (trap). Обработчик ловушек. Функция GetThreadContext. Диспетчеризация прерываний (interrupt dispatch table, IDT). Разработка программы синхронизации с помощью переменной замка в Visual C++.
Тема 12. Разработка программы вывода текстовой информации на экран терминала
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Вывод - процедура переноса данных из памяти компьютера в другое место. Функция puts().Функция putchar().Двойственность символьных переменных. Управляющие коды. Код «табуляция». Код «возврат каретки». Код «перевод страницы». Отображение специальных символов на экране монитора. Функция printf().Форматированный вывод. Разработать программу, содержащую вышеперечисленные функции вывода текстовой информации на экран в Visual C++.
Тема 13. Разработка программы с использованием менеджера объекта
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Windows –приложения. Библиотека MFС. Формы коллекций. Коллекции объектов. Шаблонный класс CArray. Разработать программу обработки массива в Visual C++.
Тема 14. Разработка программы, создающей объект
Объекты, управление которыми осуществляет менеджер объектов в ОС Windows. Объекты - абстрактная концепция, которая активно используется в ОС Windows для регулирования доступа к системным ресурсам. Реализация программных и аппаратных прерываний, а также многих других функций ядра посредством объектов. Объекты ядра (kernel objects). Ядро поддерживает базовые объекты двух видов: объекты диспетчера (события, мьютексы, семафоры, потоки ядра, таймеры и др.) и управляющие (DPC, APC, прерывания, процессы, профили и др.). Объект как блок памяти в виртуальном адресном пространстве ядра. Создание новых объектов, или открытие по имени уже существующих при помощи Win32-функций, таких, как CreateFile, CreateSemaphore, OpenSemaphore и т.д. Разработка программы, создающей один или несколько объектов, появление которых можно проконтролировать с помощью утилиты winobj (программа отображения файла в память) в Visual C++.
Тема 15. Разработка программы создания процесса
Архитектура ОС Windows. ОС как система, обеспечивающая параллельное (или псевдопараллельное) выполнение набора последовательных процессов. Понятие процесса и потока. Процессорное время. Межпроцессное взаимодействие. Системные ресурсы процесса. Состояние процессов. Реализация процессов. Потоки. Управляющие структуры данных процесса. Разработка программы создания нового процесса (CreateProcess)в среде Visual C++ 2010.
Тема 16. Разработка программы создания процесса с паузой
Архитектура ОС Windows. ОС как система, обеспечивающая параллельное (или псевдопараллельное) выполнение набора последовательных процессов. Понятие процесса и потока. Состояние, в котором находится процесс. Структуры процесса: программный счетчик процесса, содержимое регистров процессора, данные, необходимые для планирования использования процессора и управления памятью, учетные данные, информация об устройствах ввода-вывода, связанных с процессом. Разработка программы,вкоторой в качестве дочерней программы используется программа sleep, задача которой - выдержать паузу в среде Visual C++ 2010.
Тема 17. Разработка программы, иллюстрирующей состояние потока
Архитектура ОС Windows. ОС как система, обеспечивающая параллельное (или псевдопараллельное) выполнение набора последовательных процессов. Понятие процесса и потока. Состояния потоков. Состояние "Готовности", состояние "Готов. Отложен (Deferred Ready)", состояние "Простаивает (Standby)", состояние "Ожидания (Waiting)", состояние "Переходное (Transition)", состояние "Выполнение". Разработка программы, которая содержит длительные циклы счета и ожидания в среде Visual C++ 2010.
Тема 18. Разработка программы создания потока
Архитектура ОС Windows. ОС как система, обеспечивающая параллельное (или псевдопараллельное) выполнение набора последовательных процессов. Понятие процесса и потока. Блок потока ядра KTHREAD. Планирование потоков и их синхронизации с другими потоками. Просмотр структур данных потока. Win32-функция CreateThread. Аппаратный контекст потока. Стек ядра потока. Разработка программы, которая создает поток и передает ему параметр, числовое значение которого этот поток выводит на экран на основе функции CreateThread в среде Visual C++ 2010.
Тема 19. Разработка программы демонстрации приоритетного планирования
Архитектура ОС Windows. ОС как система, обеспечивающая параллельное (или псевдопараллельное) выполнение набора последовательных процессов. Планирование потоков. Алгоритмы планирования потоков. Приоритеты. Слой абстрагирования приоритетов. Функция SetPriorityClass. Функция SetThreadPriority. Диапазоны приоритетов процессов. Динамическое повышение приоритета. Разработка программы, в которой два параллельных потока выполняют длительный счетный цикл (подпрограмма Calculations). Второй поток в силу более высокого приоритета выполняется раньше.
Тема 20. Разработка программы для WIN32 API на основе Base Services
Архитектура ОС Windows. Упрощенная схема архитектуры, ориентированная на выполнение Win32-приложений. Программный интерфейс Win32 API в ОС Windows, расположенный между приложением и совокупностью системных вызовов (системных сервисов в терминологии Microsoft). Базовые сервисы для работы с файлами. Разработка программы, реализущей диалог с пользователем c использованием Win32-функции CreateFile() в среде VisualStudio 2010.
Тема 21. Разработка программы для WIN32 API вывода графики на дисплей
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Интерфейс графических устройств Windows. Механизм рисования в Visual C++. Класс CDC. Отображение графики. Функция –член OnDraw(). Разработка программы с использованием функции OnDraw(), содержащей графические элементы квадрат, параллелограмм, трапеция и другие - по выбору студента.
Тема 22. Разработка программы для WIN32 API на основе сетевых сервисов
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Network Services. Элементы микроядерной архитектуры и элементы монолитного ядра (комбинированная система). Структура ядра ОС. Управление системными вызовами. Экранная графика. Упрощенная схема архитектуры, ориентированная на выполнение Win32-приложений. Разработка программы получения имени хоста и создания сокета с использованием функции SocketGetHostName(). При запуске Ctrl+F5.
Тема 23. Разработка программы для WIN32 API интерфейса пользователя
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Библиотека Microsoft Foundation Classes. Класс приложения. Класс окна. Завершение программы. Приложение Windows Forms. Создание SDI – приложения. Создание MDI – приложения. Разработка программы, содержащей создание новых пунктов меню в среде С++ на базе VisualStudio 2010.
Тема 24. Разработка программы операций с окнами
Архитектура ОС Windows. Дополнительный абстрактный слой – программный интерфейс Win32 API в ОС Windows. Библиотека Microsoft Foundation Classes. Класс приложения. Класс окна. Завершение программы. Приложение Windows Forms. Создание SDI – приложения. Создание MDI – приложения. Разработка программы, содержащей создание окна интерфейса в среде С++ на базе VisualStudio 2010.
Тема 25. Разработка программы анализа COM портов
Архитектура ОС Windows. Программный интерфейс Win32 API в ОС Windows. Network Services. Разработка программы, которая для чтения данных из COM-порта использует событие DataReceived генерирующее SerialPort, когда COM-порт их отсылает, с использованием среды VisualStudio 2010.