Курсът “Разработка на софтуер” се изучава в професиите “Програмист“, “Приложен програмист” и “Системен програмист” съгласно държавните общообразователни изисквания. Настоящата учебна програма е приложима както за професионалните гимназии, така и за други учебни заведения.
Разпределение
- 162 учебни часа (18 седмици по 4 часа + 18 седмици по 5 часа)
- 11 клас, първи и втори учебен срок
Учебна програма
Настоящата учебна програма по “Разработка на софтуер” е разработена от експертната група към МОН по проект “Професия приложен програмист”.
№ |
Наименование на разделите
|
Минимален брой часове
|
1 |
Увод в разработката на софтуер – преглед на трислойния модел
- Слой за данни
- Слой за услуги
- Слой за UI
- Упражнение: създаване на просто трислойно приложение (конзолно)
|
9
|
2 |
Увод в концепцията за тестване – писане на “unit” тестове
- Какво е регресия и защо е опасна?
- Покриване на кода с тестове
- Упражнение: писане на unit тестове
|
9
|
3 |
Увод в концепцията за дебъгване – откриване и отстраняване на проблеми
- Запознаване с различни методики за търсене на бъг
- Използване на дебъгер
- Добри практики при дебъгване и отстраняване на бъгове – писане на тестове, които покриват проблема
- Упражнение: дебъгване на код с грешки, оправяне на грешките и писане на unit тестове
|
9
|
4 |
Увод в концепцията за рефакториране и правене на “инкрементални промени”
- Основни инструменти и похвати за рефаткориране на код
- Запознаване с идеята за “style guides” и “linters”
- Запознаване с идеята за “grep на парче код”, “jump into functions” и “find usages”
- Добри практики при рефакториране чрез писане на тестове. Как да направим кода тестваем?
- Упражнение: рефакториране на недобре написан код, промяна на кода да стане тестваем, покриване с тестове
|
9
|
5 |
Увод в инструментите за разработка – IDE, текстови редактори, командни инструменти
- Каква е разликата между IDE и текстов редактор?
- Как може да сме продуктивни в IDE-то? Допълнителни разширения и клавишни комбинации
- Как може да сме продуктивни в текстовия редактор? Допълнителни разширения и клавишни комбинации
- Използване на базови инструменти за търсене и промяна на кода.
- Обобщение на наученото до сега
- Упражнение: работа с по-сложните функции на текстов редактор и IDE средата
|
9
|
6 |
Използване на външни “3rd party” библиотеки. Пакетни мениджъри
- Търсене, инсталиране и употреба на външни библиотеки, които решават често срещани проблеми.
- Четене, ориентация и търсене в документация на външна библиотека.
- Запознаване с концепцията за “пакетен мениджър”. Ниво операционна система и ниво език за програмиране.
- Упражнение: инсталиране и използване на външни библиотеки
|
9
|
7 |
Свързване на приложения с бази от данни
- Използване на “клиентски библиотеки” за свързване с база от данни
- Четене на конфигурационни файлове
- Писане на SQL заявки през език за програмиране
- Изпълняване на SQL заявки в транзакции през език за програмиране
- Запознаване с идеята зад “prepared statements”
- Създаване на CRUD приложения върху база от данни
- Упражнения: създаване на CRUD прложение с база от данни (конзолно)
|
18
|
8 |
Създаване на приложения с няколко потребителски интерфейса. Дефиниране на APIs
- Разделяне на приложението на три ясно отделени слоя – за данни, за услуги и за потребителски интерфейс.
- Моделиране на приложението така, че да не е зависимо от потребителския интерфейс – създаване на публичен API
- Създаване на 2 различни потребителски интерфейса за едно и също приложение
- Упражнение: изграждане на трислойно приложение с публичен API, с конзолен и UI или уеб клиент
|
18
|
9 |
Ниво на абстракция – дизайн и интерфейс на приложение
- Понятие за “публичен” и “частен” интерфейс
- Понятие за “ниво на абстракция”
- Използване на ORM за достъп до база от данни. Връзка между релационен и обектен модел
- Упражнение: изграждане на трислойно приложение с публичен API, който извършва CRUD операции към база данни чрез ORM framework.
|
18
|
10 |
Създаване на курсова работа в екип
- Трислойно приложение с публичен API
- Поне два потребителски интерфейса
- Използване на база данни
- Използване на външни библиотеки
- Пълно покритие с unit тестове
- Спазване на “style guide”
|
54
|
11 |
Защита на курсова работа
|
9
|
Свободно учебно съдържание
Всички учители, преподаватели и ентусиасти ще могат да изтеглят свободно учебно съдържание за курса “Разработка на софтуер”, което включва:
- Презентации за всяка тема
- Добре разписани задания за упражнения за всяка тема
- Примерно задание за практически курсов проект
Курсът е част от свободното учебно съдържание на СофтУни фондацията за професия “Приложен програмист”.