Программная инженерия — Результаты освоения (цели) дисциплины

Номер цели

Содержание цели

Иметь представления  о

1

Жизненном цикле программного проекта и продукта  и его моделях.

2

Общей структуре UP, фазах и итерациях.

3

Архитектуре программной системы и ее различных аспектах, отражаемых в UML

4

Взаимоотношениях между архитектурой, моделью программной системы и ее представлением в UML

5

Роли и месте управления программными проектами (УПП) в своде знаний по программной инженерии SWEBOK

6

Особенностях управления проектами в программировании

7

Роли и месте инженерного проектирования (Software Desing) в своде знаний по программной инженерии SWEBOK

8

Содержании и структуре наиболее распространенных фреймворков и их применении в проектировании программных систем

9

Различных нотациях проектирования и документирования разработок, их особенностях и перспективах

10

Содержании технологического процесса тестирования на различных фазах разработки проекта

11

Философии тестирования, алгоритмически неразрешимых проблемах, связанных с тестированием.

12

Творческом характере процессов конструирования (отладки) и тестирования и его проявлениях

Знать

13

Общую структуру UML, назначение и характеристики отдельных компонент

14

Принципы разработки требований, их характеристики, способы получения и фильтрации

15

Принципы построения модели прецедентов

16

Нотацию представления классов и объектов в UML

17

Виды отношений и зависимостей между классами и объектами на фазах анализа и проектирования

18

Нотацию диаграмм взаимодействия, коммуникаций, деятельности и состояний, способы описания поведения системы на фазах анализа и проектирования

19

Структуру рабочих потоков определения требований, анализа, проектирования и реализации, исходные данные и результаты, участников разработки и их деятельность, используемые средства UML

20

Ключевые элементы проектирования программных средств. Основные принципы проектирования программных систем, их содержание и реализацию в технологии объектно-ориентированного программирования.

21

Виды шаблонов проектирования (паттернов), их назначение и внутреннюю организацию

22

Основные содержание различных стратегий проектирования: структурной, функциональной, объектно-ориентированной, компонентной, стратегии на основе структур данных.

23

Основные виды моделей процессов в УПП, их особенности.

24

Виды структур проектных организаций, их сильные и слабые стороны.

25

Фазы жизненного цикла проекта, их содержание

26

Основные стандарты в области УПП

27

Организационную структуру проекта, перечень исполнителей и их функции

28

Содержание фазы инициации, анализа и реализации проекта.

29

Определение и характеристики рисков, способы идентификации и реакции. Наиболее вероятные риски и способы их предотвращения

30

Методы оценки трудоемкости и сроков разработки проекта

31

Основные принципы формирования команды исполнителей проекта

32

Классификационные характеристики программных ошибок. Виды программных ошибок, причины появления и способы устранения.

33

Сущность тестирования. Критерии выбора тестов: структурный (белый ящик), функциональный (черный ящик), стохастический, мутационный.

Уметь

33

Разрабатывать требования к архитектуре и программному продукту

34

Описывать программную систему на уровне диаграмм прецедентов.

35

Описывать программную систему в виде набора классов анализа и отношений

36

Использовать диаграммы взаимодействия, деятельности, состояния и коммуникационные диаграммы для описания поведения программной системы

37

Использовать средства потокового программирования и синхронизации для организации внутреннего параллелизма приложений

38

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

39

Использовать концепцию модель-вид-контроллер при проектировании интерактивных приложений

40

Применять средства событийного программирования (слушатели событий, CallBack-вызовы) для организации взаимодействия компонент программной системы.

41

Распределять функциональность между клиентским и серверным приложениями (тонкий и толстый клиент)

42

Разрабатывать и использовать шаблоны проектирования при разработке программных компонент.

43

Определять функции исполнителей проекта и распределять работы между ними

44

Разрабатывать концепцию проекта, определять финансовую и стратегическую ценности и риски.

45

Разрабатывать требования, классы анализа, прецеденты

46

Использовать средства UML на фазах анализа и реализации проекта

47

Уметь строить диаграммы Ганта для планирования процессов программного проекта

48

Проводить качественную и количественную оценку рисков

49

Использовать методы оценки PERT, функциональных точек и COCOMO II

50

Проводить инспекцию программного кода

51

Различные приемы отладки и поиска дефектов

52

Документировать и анализировать программные ошибки

53

Использовать инструментальные средства и технологические приемы модульного тестирования

54

Использовать технику обратного инжиниринга для восстановления и анализа кода

55

Использовать техники рефакторинга и реинжиниринга для усовершенствования кода