Раздел 1Введение

Введение в программную инженерию, включающее в себя обзор методов разработки ПО и различные подходы к жизненному циклу.

Лекции

1. Введение в программную инженерию

Первая лекция по программной инженерии посвящена ее назначению и месту в науке. Детальнее→

2. Дисциплины программной инженерии

Во второй лекции по программной инженерии делается попытка выделить ее основные аспекты в виде пяти дисциплин: научной, инженерной, производственной, управленческой и экономической. Детальнее→

3. Основные области знаний SWEBOK

В третьей лекции по программной инженерии речь идет о пяти основных областях знаний из стандарта SWEBOK. Эти области соответствуют пяти процессам разработки программного обеспечения: инженерия (выработка) требований; проектирование; конструирование (т.е. написание кода); тестирование; сопровождение. Детальнее→

4. Организационные области знаний SWEBOK

Четвертая лекция по программной инженерии описывает вспомогательные области знаний SWEBOK. Их, как и основных областей, пять: управление конфигурацией ПО; управление инженерией; процесс инженерии; инструменты и методы программной инженерии; инженерия качества. Детальнее→

5. Жизненный цикл ПО

В этой лекции рассматривается жизненный цикл программ — от первоначальной задумки до выпуска конечного продукта. Как оказывается, разрабатывать ПО можно существенно различными способами в зависимости от характеристик продукта (скажем, его объема) и от расстановки приоритетов заказчиком (нужны ли частые выпуски? требуется ли высокая надежность?). Детальнее→

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

  • История разработки ПО в СССР и на Западе.
  • Исторический обзор моделей жизненного цикла ПО.
  • Парадигма Rapid Application Development.
  • Сравнение моделей разработки, соответствующих гибкой методологии.

Контрольные вопросы

  • Место и задачи программной инженерии.
  • Место ПИ среди компьютерных наук.
  • История развития программной инженерии в СССР и на Западе. Эволюция подхода к разработке компьютерных программ.
  • Дисциплины программной инженерии.
  • ПИ как наука. Связь программной инженерии с дисциплинами дискретной математики.
  • Роль стандартов и повторного использования в разработке программного обеспечения.
  • Сущность дисциплины управления ПИ.
  • Стандарт жизненного цикла ISO 12207.
  • Категории процессов жизненного цикла.
  • Определение и цели моделей жизненного цикла ПО.
  • Каскадная модель жизненного цикла, ее преимущества и недостатки и области применения.
  • Эволюционная модель жизненного цикла, ее преимущества и недостатки и области применения.
  • Инкрементная модель жизненного цикла, ее преимущества и недостатки и области применения.
  • Основные положения гибкого подхода к разработке ПО.
  • Методы гибкой методологии разработки: непрерывная интеграция, парное программирование, разработка через тестирование.
  • Виды гибкой методологии.
  • Экстремальное программирование.

Литература

  • Лаврищева Е.М. Методы программирования. Теория, инженерия, практика. — К.: Наукова думка. — 2006. — 451 с.
  • Лаврищева Е.М., Петрухин В.А. Методы и средства программного обеспечения. — М:. Мин. образования РФ. — 2007. — 415 с.
  • Лаврищева Е.М. Программная инженерия. Учебник. — К.: Академпериодика. —
    1. — 319 с.
  • Sommerville I. Software engineering, 9th ed. — Boston, Massachusetts: Addison-Wesley. — 2011. — 790 p.
  • A Guide to the Project Management Body of Knowledge (PMBOK Guide), 5th ed. – Project Management Institute. — 2013. — 589 p.
  • Guide to the Software Engineering Body of Knowledge, Version 3.0. / ed. by P. Bourque and R.E. Fairley. — IEEE Computer Society. — 2014.
  • McConnell S. Rapid Development: Taming Wild Software Schedules. — Microsoft Press Books. — 1996. — 647 p.
  • Kerr J.M., Hunter R. Inside RAD: How to Build a Fully Functional System in 90 Days or Less. — McGraw-Hill. — 1994. — 213 p.
  • Shore J., Warden S. The art of agile development. — Sebastopol, California: O’Reilly Media. — 2008. — 409 p.
  • Beck K., Andres C. Extreme programming explained. — Boston, Massachusetts: Addison-Wesley. — 2004. — 180 p.
  • Martin R.C. Agile Software Development: Principles, Patterns, and Practices. — Pearson Education. — 2003. — 529 p.
  • Software Engineering Body of Knowledge, Version 3.0.
  • Selecting a development approach.