Курсът “Софтуерно инженерство” е специализирано обучение за професиите “Приложен програмист” и “Системен програмист” съгласно държавните общообразователни изисквания. Настоящата учебна програма е приложима както за професионалните гимназии, така и за други учебни заведения.
Разпределение
- 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 |
Свободно учебно съдържание
Всички учители, преподаватели и ентусиасти ще могат да изтеглят свободно учебно съдържание за курса “Софтуерно инженерство”, което включва:
- Презентации за всяка тема
- Добре разписани задания за упражнения за всяка тема
- Примерно задание за практически курсов проект
Курсът е част от свободното учебно съдържание на СофтУни фондацията за професия “Приложен програмист”.