Программа курса ПИ (2014–2015 учебный год)

Осенний семестр

Название Ссылка
1 Введение в программную инженерию PDF
2 Дисциплины программной инженерии PDF
3 Области знаний SWEBOK — основные дисциплины PDF
4 Области знаний SWEBOK — дисциплины управления PDF
5 Жизненный цикл программного обеспечения PDF
6 Инженерия требований PDF
7 Моделирование программных систем PDF
8 Архитектура ПО PDF
9 Объектно-ориентированное проектирование. Шаблоны проектирования PDF
10 Парадигмы программирования (часть 1) PDF
11 Парадигмы программирования (часть 2) PDF
12 Языки программирования. Метапрограммирование PDF
Список вопросов на зачете
  1. Цель и составляющие программной инженерии.
  2. Дисциплины программной инженерии.
  3. Области стандарта SWEBOK.
  4. Модели жизненного цикла ПО. Стандарт ISO/IEC 12207.
  5. Классификация требований к ПО. Процессы инженерии требований.
  6. Моделирование программных систем. Типы и назначение моделей.
  7. Унифицированный язык моделирования (UML) и его роль в разработке ПО.
  8. Виды архитектуры ПО, границы их применения.
  9. Классификация и назначение шаблонов проектирования. Примеры шаблонов.
  10. Парадигмы и методы программирования.
  11. Порождающее программирование. Язык описания предметных областей (DSL).
  12. Теоретические методы программирования.

Весенний семестр

Название Ссылка
13 Тестирование ПО PDF
14 Верификация и валидация PDF
15 Эволюция и сопровождение ПО PDF
16 Документирование ПО PDF
17 Интерфейсы в программировании PDF
18 Интерфейсы и типы данных (часть 1) PDF
19 Интерфейсы и типы данных (часть 2) PDF
20 Интероперабельность PDF
21 Управление конфигурацией ПО. Часть 1: контроль версий. PDF
22 Управление конфигурацией ПО. Часть 2: построение и выпуски. PDF
23 Управление качеством ПО PDF
24 Управление программным проектом PDF
25 Хранение данных. Объектно-реляционные отображения PDF
26 Сервисная архитектура приложений. Веб-сервисы PDF
27 Введение в облачные вычисления PDF
Список вопросов для экзамена
  1. Эволюция ПО. Сопровождение как частный случай эволюции. Типы сопровождения: исправление дефектов, адаптация, совершенствование.
  2. Реинженерия и рефакторинг программ.
  3. Документирование ПО. Формы документации. Автоматические генераторы документации: javadoc, doxygen.
  4. Понятие интерфейса в программной инженерии. Двоичные и программные интерфейсы.
  5. Связывание компонентов приложения с помощью виртуальных машин. Примеры виртуальных машин: Java Virtual Machine, Common Language Runtime.
  6. Интерфейсы внешних функций. Java Native Interface.
  7. Теория типов данных. Типобезопасность и безопасность памяти. Классификация систем типов данных в языках программирования: статическая и динамическая типизация; номинальная, структурная и утиная типизация.
  8. Приведение типов данных и полиморфизм. Виды полиморфизма: специальный, параметрический и полиморфизм подтипов. Отличие между наследованием и полиморфизмом.
  9. Интерфейсы в языках программирования. Интерфейс как контракт. Принцип подстановки Барбары Лисков.
  10. Ковариантность и контравариантность параметрических конструкций в языках программирования (Java, C#).
  11. Фундаментальные типы данных согласно стандарту ISO 11404. Типы данных, независимые от ЯП.
  12. Понятие интероперабельности компонентов программных систем. Низкоуровневая и высокоуровневая интероперабельность.
  13. Архитектура посредников доступа к объектам (object request broker). Язык спецификации интерфейсов (IDL).
  14. Очереди сообщений. Архитектуры очереди: point to point и publish / subscribe.
  15. Централизованные и распределенные системы управления версиями. Git.
  16. Методы автоматизации сборки ПО. Утилиты make и ant.
  17. Управление выпусками ПО. Выпуски в контексте эволюции программных продуктов.
  18. Основные принципы непрерывной интеграции (continuous integration).
  19. Управление качеством программных систем. Модели качества.
  20. Измерение программного обеспечения. Метрики ПО и их связь с характеристиками качества.
  21. Управление программным проектом. Планирование разработки.
  22. Управление рисками при разработке ПО.
  23. Постоянное хранение данных (data persistence). Сериализация данных. Обзор стандартов XML и JSON.
  24. Объектно-реляционные отображения (ORM). Шаблоны проектирования, связанные с ORM: ActiveRecord, DataMapper.
  25. Сервисная архитектура приложений. Веб-сервисы на основе SOAP / WSDL.
  26. Понятие REST (передача репрезентативного состояния) для сервисов. Отличительные особенности веб-сервисов на основе REST.
  27. Понятие BigData. Базы данных NoSQL.
  28. Вспомогательные технологии для облачных вычислений. Классификация облачных архитектур.

Материалы

  1. Лаврищева Е.М., Петрухин В.А. Методы и средства программного обеспечения. — М.: Мин. образования РФ. — 2007. — 415 с.
    Публикуется с разрешения авторов.
  2. Лавріщева К.М. Програмна інженерія. — К.: Академперіодика. — 2008. — 319 с.
    Публикуется с разрешения автора.
  3. Sommerville I. Software engineering, 9th ed. — Boston, Massachusetts: Addison-Wesley. — 2011. — 790 p.
  4. Pfleeger S.L., Atlee J.M. Software engineering: theory and practice. — Upper Saddle River, New Jersey: Prentice Hall. — 2010. — 756 p.
  5. Guide to the software engineering body of knowledge, version 3.0 / ed. by Bourque P., Fairley R.E. — IEEE Computer Society. — 2014. — URL: http://swebok.org/.
  6. McConnell S. Code complete. — Upper Saddle River, New Jersey: Microsoft Press. — 2009. — 960 p.
  7. Pressman R.S. Software engineering: a practitioner’s approach. — Basingstoke: Palgrave Macmillan. — 2005. — 880 p.
  8. Object-oriented analysis and design with applications / Booch G., Maksimchuck R.A., Engle M.W. et al. — Upper Saddle River, New Jersey: Pearson Education. — 2007. — 720 p.
  9. Jacobson I., Ng P.-W. Aspect-oriented software development with use cases. — Boston, Massachusetts: Addison-Wesley. — 2005. — 418 p.
  10. Bell M. Service-oriented modeling. — Hoboken, New Jersey: John Wiley & Sons. — 2008. — 368 p.
  11. Hansen M.R., Rischel H. Functional programming using F#. — Cambridge: Cambridge University Press. — 2013. — 361 p.
  12. Fowler M., Beck K., Brant J., Opdyke W., Roberts D. Refactoring: improving the design of existing code. — Boston, Massachusetts: Addison-Wesley. — 2012. — 455 p.
  13. Hohpe G., Woolf B. Enterprise Integration Patterns. — Boston, Massachusetts: Addison-Wesley. — 2012. — 735 p.
  14. Fowler M. Patterns of enterprise application architecture. — Boston, Massachusetts: Addison-Wesley. — 2012. — 557 p.
  15. Shore J., Warden S. The art of agile development. — Sebastopol, California: O’Reilly Media. — 2008. — 409 p.
  16. Wiegers K., Beatty J. Software requirements. — Upper Saddle River, New Jersey: Pearson Education. — 2013. — 672 p.
  17. Myers G.J., Sandler C., Badgett T. The art of software testing. — Hoboken, New Jersey: John Wiley & Sons. — 2011. — 256 p.
  18. Tian J. Software quality engineering. — Hoboken, New Jersey: John Wiley & Sons. — 2005. — 440 p.
  19. Buyya R., Broberg J., Goscinski A.M. Cloud computing: principles and paradigms. — Hoboken, New Jersey: John Wiley & Sons. — 2010. — 664 p.
  20. Coulouris G.F., Dollimore J., Kindberg T. Distributed systems: concepts and design. — Upper Saddle River, New Jersey: Pearson Education. — 2011. — 927 p.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *