zhChinese    enEnglish
  ПМ-ПУ  » Образование  » Программы курсов » Программная инженерия

Программная инженерия

Общий курс

Составитель: к.ф.-м.н., ст. преп. Зарецкий Д.В.

  1. Программное обеспечение: природа и качество. Классификация ПО. Требования и показательные качества ПО. Информационные системы. Системы реального времени. Принципы инженерии ПО.
  2. Основные понятия объектно-ориентированного программирования. Объекты. Сообщения. Интерфейс. Класс. Полиморфизм.
  3. Обзор языков, платформ, технологий и средств разработки. .NET Framework и J2EE - сравнительный анализ. Основы CORBA, DCOM, EJB, .NET Remoting. Реляционные и объектно-ориентированные базы данных. Интеренет приложения, веб сервисы. Средства управления исходным кодом (CVS, Subversion, SourceSafe)
  4. Стратегии распределенных вычислений. Связи. Процессы. Синхронизация. Репликация. Отказоустойчивость. Распределенные системы объектов, файлов, документов. Распределенные системы согласования.
  5. Проектирование, спецификация. Составление технических заданий. Методы сбора информации. UML. Use case диаграммы. Диаграммы классов, объектов, компонентов, состояний, последовательностей, действий. ORM. CASE инструменты. Спецификации асинхронных систем. Логические, алгебраические спецификации. Концептуальный, логический и физический дизайн. Прототипирование. Паттерны проектирования.
  6. Процесс разработки программного обеспечения. Структура проектной группы. Стадии проекта. Нотации оформления кода. Самодокументированность кода. Рефакторинг. Экстремальное программирование. Безопасность кода. Принципы построения GUI. Ведение параллельных версий. Компиляция и отладка ПО. Оптимизация.
  7. Внедрение продукта. Разработка пользовательской документации. Создание программы установки. Обучение пользователей, поддержка ПО. Повторное использование и переносимость ПО, реинжинирия.
  8. Тестирование. Верификация. Методы тестирования (методы "черного и белого ящика") Планы тестирования проекта, компонентов. Модели анализа. Автоматизированные регрессиные тесты. Тестирование классов и иерархий классов. Тестирование распределенных объектов. Тестирование интернет приложений.
  9. Управление. Планирование проекта. Анализ рисков. Оценка затрат. Внутренняя проектная документация. Командная работа, распределение ролей и ответсвенности (централизованный, децентрализованный и смешанный тип управления). Диаграммы Ганта. Графики PERT. Контроль качества. Анализ текущего состояния проекта. Стабильность/нестабильность проекта, построение графиков интенсивности возникновения и устранения ошибок. Средства поддержки управления проектом. Модель развития функциональных возможностей CMM.

Литература

  1. Мартин Фаулер Архитектура корпоративных программых приложений. Москва. Изд. Вильямс 2004.
  2. Карло Гецци, Мехди Джазайери, Дино Мандриоли Основы инженерии программного обеспечения. Санкт-Петербург БХВ 2005.
  3. Э. Таненбаум, М. ван Стеен Распределенные системы. Принципы и парадигмы. Изд. Питер 2004.
  4. Джон Макгрегор, Девид Сайкс Тестирование объектно-ориентированного программного обеспечения. 2002
  5. Beck. Test-Driven Development: By Example. Addison-Wisley, 2003.
  6. Эд Салливан Время-деньги. Microsoft Press, Русская редакция. Москва 2002.
  7. Бек, К. Экстремальное программирование. Библиотека программиста. СПб.: Питер, 2002.
  8. Microsoft Solution Framework White Paper June 2002, http://www.microsoft.com/msf/
  9. Sun Microsystems. Java Language Specification, http://java.sun.com/j2se/
  10. Object Management Group's Unified Modeling Language http://www.omg.org/uml/

Материалы к лекциям