Экзамен: 6 семестр всего часов: 118

Вид материалаПрограмма

Содержание


Всего часов
Структура курса
Задания для самостоятельной работы
Список литературы
Подобный материал:

Министерство образования и науки Российской Федерации

Московский физико-технический институт

(государственный университет)


УТВЕРЖДАЮ

Проректор по учебной работе

__________ Ю. А. Самарский

«____» ____________ 2007 г.


П Р О Г Р А М М А


по курсу: ТЕХНИКА программирования (базовый)

по направлению: 511600

факультеты: ФУПМ, ФАКИ

кафедра: ИНФОРМАТИКИ

курс: 3

семестр: 6

лекции: 32 часа

практические занятия: 32 часа

курсовая работа: 6 семестр

экзамен: 6 семестр


^ ВСЕГО ЧАСОВ: 118


Программу составил ст. преподаватель Устюжанин А.Е.


Программа обсуждена на заседании

кафедры информатики

16 января 2007 г.


Заведующий кафедрой

профессор И.Б. Петров

Введение


Цель данного курса - знакомство студентов с технологиями разработки программного обеспечения (ПО), которые включают все этапы жизненного цикла продукта. В ходе курса рассматриваются наиболее распространенные модели процессов работы над программным обеспечением: Waterfall model, Rational Unified Process, eXtreme Programming. Излагаемый материал активно использует язык моделирования UML, который используется как для описания структурных схем, так и для описаня динамических взаимодействий. Технологически курс построен вокруг Common Layer Infrastructure, стандартизированной в ECMA и ее реализацией компанией Microsoft - Microsoft .NET Framework. Рассматриваются такие аспекты построения системы как разработка архитектуры системы с использованием шаблонов проектирования, оформления исходного кода, документация исходного кода, создание тестирующих приложений. В ходе разработке учебных проектов студенты затрагивают такие темы как
  • разработка консольных приложений
  • разработка графических приложений WindowsForms
  • взаимодействие приложений с файловой системой
  • сетевое взаимодействие приложений (Sockets, .NET Remoting)
  • сериализация/десериализация
  • использование многопоточности

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

Теоретические материалы подкреплены практической работой, в ходе которой каждому студенту предлагается либо разработать собственный проект, либо подключиться к существующему open-source проекту (ссылка скрыта,ссылка скрыта или ссылка скрыта).


^

Структура курса


Теория

Практика

1. Жизненный цикл ПО. Разработка требований. Основные роли участников проекта.

2. Архитектура платформы .NET Framework.

Выбор тем курсовых проектов.

3. UML как основной язык проектирования. Разработка архитектуры приложения.

4. Знакомство с языком C#. Основные типы. Массивы. Классы. Строки.

Консольные приложения на языке C#.

5. C#. Свойства, интерфейсы, делегаты, события, исключения. Использование исключений. Событийная модель управления приложением

Разработка графического приложения.

6. Работа с потоками. Файлы. Сетевые соединения.

Разработка приложений, взаимодействующих по сети.

7. Введение в использование шаблонов проектирования. Шаблон Model-View-Controller. Шаблон Factory. Многопотоковое приложение. Механизмы синхронизации.

Разработка многопотокового приложения

8. Технология .NET Remoting. Application Domain. Application Context. Шаблон publisher/subscriber.

Взаимодействие по сети с использованием механизмов .NET Remoting.

9. Общие подходы к разработке безопасных приложений. Основные типы уязвимостей и угроз. Шаблон CommandProcessorссылка скрыта

Модификация приложения для поддержки client-server архитектуры.

10. Механизмы безопасности .NET Framework.

Модификация приложения для поддержки P2P архитектуры.

11. Основы архитектуры расширяемого приложения. Шаблоны Command, Strategy, Chain of Responsibility, Observer, Visitor.

Поддержка плагинов для сериализации сетевого трафика приложения.

12. Использование .NET Reflection API. Шаблоны Abstract Factory, Factory Method, Prototype.

Разработка самомодицифирующегося приложения.
^

Задания для самостоятельной работы

  1. Разработка консольного приложения.
  2. Разработка GUI приложения (WinForms).
  3. Разработка собственного обработчика-редактора поля для PropertyView.
  4. Разработка многопоточного приложения.
  5. Разработка многомодульного приложения.
  6. Приложение передачи информации через UDP Sockets.
  7. Приложение передачи информации через TCP Sockets.
  8. Приложение передачи информации через .NET Remoting.
  9. Приложение защищенной передачи данных с использованием CryptoAPI.
  10. Интеграция .NET приложения с приложением стороннего разработчика (Matlab).
^

СПИСОК ЛИТЕРАТУРЫ

    1. Маклин С., Нафтел Дж., Уильямс К. Microsoft .NET Remoting (пер. с англ.).
    2. Просиз Дж. Программирование для Microsoft .NET, 2002.
    3. Петцольд Ч. Программирование для Microsoft Windows на C#.
    4. Гиббонз П. Платформа .NET для Java-программистов.
    5. Троелсен Э. C# и платформа .NET. Библиотека программиста, 2002.
    6. Лебланк Д., Ховард М. Защищенный код. 2003.
    7. Фаулер М., Скотт К. UML. Основы. Краткое руководство по унифицированному языку моделирования. 2002.
    8. Ларман К. Применение UML и шаблонов проектирования. 2002.
    9. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. 2001.
    10. Влиссидес Дж. Применение шаблонов проектирования. Дополнительные штрихи.
    11. Трот Дж. Р., Шаллоуей А. Шаблоны проектирования. Новый подход к объектно-ориентированному анализу и проектированию.
    12. Сайт курса: ссылка скрыта