Курс “Софтуерно инженерство” – професия “Приложен програмист”

Курсът “Софтуерно инженерство” е специализирано обучение за професиите “Приложен програмист” и “Системен програмист” съгласно държавните общообразователни изисквания. Настоящата учебна програма е приложима както за професионалните гимназии, така и за други учебни заведения.

Разпределение

  • 145 учебни часа (29 седмици по 5 часа)
  • 12 клас, първи и втори учебен срок

Учебна програма

Настоящата учебна програма по “Софтуерно инженерство” е разработена от експертната група към МОН по проект “Професия приложен програмист”.

Наименование на разделите
Минимален брой часове
1

Въведение в курса

  • Въведение в софтуерната разработка (процеси, методологии, роли, инструменти)
  • Раздаване на практически проекти и разделяне по екипи
  • Дава се съществуващ проект, който всеки екип трябва да допише, да направи тестове, да надгради функционалност, да документира, да изгради CI система и да използва управление на процеси през цялото време
5
2

Работа с чужд код

  • Работа с чужд проект
  • Разучаване на проекта, инсталация, конфигурация и стартиране на проекта
  • Дописване на нова функционалност към проекта
  • Упражнение: работа с чужд проект, инсталация и стартиране на съществуващ проект, дописване на функционалност
5
3

Сорс-контрол системи

  • Сорс-контрол системи. Използване на Git и GitHub
  • Разлики между централизирана и децентрализирана сорс-контрол система
  • Упражнения: екипно взаимодействие с Git и GitHub, създаване на проекти, теглене и качване на промени, създаване и решаване на конфликти от конкурентни промени и сливане на конфликтни промени
10
4

Софтуерни изисквания и прототипи

  • Анализ на софтуерните изисквания, случаи на употреба, истории (user stories), спецификация на изискванията (SRS), гъвкави изисквания
  • Протитипи на потребителския интерфейс (UI Prototyping)
  • Упражнение: създаване на UI прототип
10
5

Софтуерно тестване

  • Писане на unit тестове и регресия
  • Подпъхване на функционалност (mocking)
  • Покритие на кода (code coverage)
  • Интеграционни тестове (integration testing)
  • Настройване на непрекъсната интеграция (GitHub + Travis CI)
  • Упражнение: писане на unit тестове и измерване на code coverage + mocking
  • Упражнение: писане на интеграционни тестове + fixture
  • Упражнение: имплементиране на непрекъсната интеграция
25
6

Софтуерна документация

  • Писане на софтуерна документация (Readme, Wiki, …)
  • Документиране на процес на инсталация и стартиране на проект и на частите на проект и процес на работа
  • Упражнение: документиране на код
10
7

Процеси за софтуерна разработка

  • Основни методологии и техните характеристики
  • Гъвкави методологии: Scrum и Kanban
  • Запознаване с инструменти за управление на проекти и задачи (като Trello и GitHub Projects, GitHub Issues, …)
10
8

Екипна работа по проект

  • Екипна работа по практически проект, използвайки наученото в курса
  • Задължително се работи в екип и се използва сорс контрол система и тракер за задачи и дефекти
60
9

Защита на екипен проект

  • Представяне, защита и оценяване на екипните проекти
10

Свободно учебно съдържание

Всички учители, преподаватели и ентусиасти ще могат да изтеглят свободно учебно съдържание за курса “Софтуерно инженерство”, което включва:

  • Презентации за всяка тема
  • Добре разписани задания за упражнения за всяка тема
  • Примерно задание за практически курсов проект

Курсът е част от свободното учебно съдържание на СофтУни фондацията за професия “Приложен програмист”.