4810301-Razrabotka na softuer - 11 klas - 72 Трислоен модел и основни концепции Същност на трислойния модел; Слой за данни (data access layer); Слой за услуги (service layer); Слой за потребителски интерфейс (UI layer); Концепция за тестване на кода; Концепция за „регресия” и регресионни тестове; Покритие на кода с тестове; Запознаване с различни методики за търсене на дефекти; Използване на дебъгер; Добри практики при дебъгване и отстраняване на дефекти - писане на тестове, които покриват проблема; Концепция за рефакториране и правене на „инкрементални промени“. Основни инструменти и похвати за рефакториране на код; Употреба на стилови ръководства ("style guides") и линтери ("linters"); Добри практики при рефакториране чрез писане на тестове. Инструменти за разработка Интегрирани среди за разработка (IDE). Разлика между IDE и текстов редактор; Техники за продуктивно използване на IDE - допълнителни разширения и клавишни комбинации; Техники за продуктивно използване на текстов редактор - допълнителни разширения и клавишни комбинации; Използване на инструменти в IDE за работа със сорс-контрол системи; Използване на базови инструменти за търсене и промяна на кода. Инструменти за намиране на всички употреби на фрагмент код, навигиране към дефиниция на функция; Използване на външни библиотеки в приложенията; Управление на пакети. Бази от данни Използване на библиотеки за свързване с база от данни; Конфигуриране на връзката към база от данни; Писане на SQL заявки през език за програмиране; Изпълнение на SQL заявки чрез език за програмиране, изпълнение на SQL команди и извличане на резултата от тях; Заявки с подобрена защита чрез подготвени заявки (prepared statements); Реализиране на CRUD операции в приложение върху база от данни; Използване на системи за обектно-релационно съпоставяне (ORM frameworks); Съпоставяне на таблици с класове в ORM; Съпоставяне на свързани таблици с класове в ORM. Потребителски интерфейс Графичен потребителски интерфейс; Компоненти в графичен потребителски интерфейс. Работа с форми (forms), етикети (label), текстови полета (textbox), бутони (button) и други компоненти; Събития в графичен потребителски интерфейс; Свързване на данни в графичен потребителски интерфейс (Data binding); Уеб графичен интерфейс. Създаване на изгледи в слоя за потребителски интерфейс с HTML, CSS, JavaScript и/или шаблонен език; Принципи за правилно разделяне на компонентите на приложението по слоеве; Свързване на различни интерфейси към едно и също приложение. 4810301- UP - Razrabotka na softuer - 11 klas - 90 Подготовка за разработка Групиране на учениците в екипи от учителя; Разпределяне на задания за работа за всеки екип; Анализ на изискванията на заданията; Организация на екипа. Създаване на хранилище за кода на софтуера; Разбиване на работата на подзадачи. Разпределение на подзадачите между членовете на екипите. Разработка на софтуер Работа по задачите от всеки от членовете на екипа; Преглед на кода за спазване на добри практики между членовете на екипа и учителя; Тестване на кода; Документиране на кода; Междинна демонстрация и преглед на проектите на всеки екип; Демонстрация и защита на проектите Окончателен преглед на кода за спазване на добрите практики (code review); Презентация и защита на проекта.