Предавања – Развој софтвера 2 @ Математички факултет Универзитета у Београду

РС 2

Овде је описан садржај предавања за предмет Развој софтвера 2. У оквиру овог курса се проучавају поједини аспекти софтверског инжењерства, управљања пројектима и разматрају нека питања архитектуре, дизајна и имплементације софтверских система.


1. Информације о курсу презентација

1.1. Веб страна курса

1.2. Семинарски радови

1.3. Садржај курса

1.3.1. Теме које се проучавају

1.3.2. Литература

2. Карактеристике програмског језика C# делом различите од програмског језика Јава презентација

2.1. Функције

2.1.1. Именовани аргументи

2.1.2. Опционални параметри

2.1.3. Параметри out

2.1.4. Параметри ref

2.1.5. Методи проширења

2.2. Класе

2.2.1. Модификатори приступа

2.2.2. Превазилажење метода, витрулени методи

2.2.3. Сакривање метода наткласе, new метод

2.2.4. Превазилажење оператора

2.2.5. Парцијалне класе

2.3. Интерфејси

2.3.1. Имплементација интерфејса

2.3.2. Експлицитна имплементација

2.4. Особине

2.4.1. Имплементација особина, поље за подршку особине

2.4.2. Сакривање особина

2.4.3. Апстрактне особине

2.4.4. Аутоматски имплементиране особине

2.5. Енумерисани типови

2.5.1. Реализација енумерисаних типова

2.5.2. Конверзија код енумерисаних типова

2.6. Генерички типови

2.6.1. Реализација генеричких типова

2.6.2. Имплементација генеричких интерфејса

2.6.3. Ограничења над генеричким типовима

2.7. Индексери

2.7.1. Реализација индексера

2.7.2. Преоптерећење индексера

2.8. Делегати

2.8.1. Реализација делегата

2.8.2. Делегати као параметри метода

2.8.3. Делегати и симултано покретање

2.8.4. Анонимни методи као делегати

2.8.5. Генерички делегати

2.8.6. Предефинисани делегати

2.9. Догађаји

2.9.1. Реализација догађаја

2.9.2. Руковање догађајем

2.9.3. Параметри придружени догађају

2.10. Структуре

2.10.1. Реализација структура

2.10.2. Структуре, методи и особине

2.10.3. Структуре и догађаји

2.11. Ламбда-изрази

2.11.1. Реализација ламбда-израза

2.11.2. Ламбда-изрази и особине

2.11.3. Ламбда-изрази и делегати

2.11.4. Ламбда-изрази и догађаји

2.11.5. Ламбда-изрази и индексери

2.11.6. Ламбда изрази за иницијализацију

2.12. Торке

2.12.1. Реализација торки

2.12.2. Угњеждене торке

2.12.3. Торке и методи

2.12.4. Реализација вредносних торки

2.12.5. Вреднсоне торке и методи

2.12.6. Деконструкција код вредносних торки

2.13. Асинхроно програмирање

2.13.1. Реализација асинхроног програмирања помоћу async, await и класе Task

2.13.2. Синхронизација више конкурентних активности

2.14. LINQ

2.14.1. Реализација LINQ

2.14.2. LINQ синтакса упита и LINQ синтакса метода

2.14.3. LINQ упити над једним извором података

2.14.4. LINQ упити над спојем више извора података

2.15. Нулабилни типови

2.15.1. Реализација нулабилних типова

2.15.2. Методи, особине и оператори за нулабилне типове

2.16. Слогови

2.16.1. Реализација слогова

2.16.2. Слогови и init особине

2.16.3. Слогови и деконструкција

2.16.4. Слогови и наслеђивање


3. Софтверске грешке презентација

3.1. Грешке, откази, кварови

3.2. Врсте софтврских грешака

3.2.1. “Смешне” грешке

3.2.2. Грешке са мањим последицама

3.2.3. Грешке са великим последицама

3.2.4. Грешке са катастрофалним последицама

3.3. Закључци анализе софтверских грешака


4. Развој управљан доменом презентација

4.1. Опис развоја управљаног доменом

4.1.1. Изградња доменског знања

4.2. Свеобухватни језик

4.2.1. Потреба за заједничким језиком

4.2.2. Изградња свеобухватног језика

4.3. Дизајн управљан доменом

4.3.1. Градивни блокови за дизајн управљан доменом

4.3.2. Рефакторизација ради остварења дубљег увида

4.3.3. Заштита интегритета модела


5. Разматрања софтверских архитектура

5.1. Апстракције код архитектуре. Чиста архитектура презентација

5.2. Архитектура са доменом у центру презентација

5.3. Слојеви код софтверске архитектуре презентација

5.4. Команде и упити презентација

5.5. Функционална организација презентација


6. Микросервиси

6.1. Опис микросервиса презентација

6.1.1. Карактеристике микросервиса

6.1.2. Однос између микросервиса и архитектуре орјенитсане према севисима

6.1.3. Однос између микросервиса и дргуих методлогија декомпозиције

6.1.4. Нема универзалног најбољег решења

6.2. Реализација микросервиса презентација

6.2.1. Потрага за најбољом технологијом

6.2.2. Интерфејс према корисницома

6.2.3. Комуникаџија између микросервиса

6.2.4. Технологије комуникације између микросервиса

6.2.5. Скалабилност код микросервиса

6.2.7. Откривање сервиса

6.2.8. Динамичка регистрација сервиса

6.2.9. Документовање сервиса

6.3. CAP тероема презентација


7. Архитектура заснована на микросервисима и контејнерима na .NET Core платформи

7.1. Контејнери - Docker, Kybernetis

7.2. .NET платформа

7.3. Карактеристике разматраних решења


РС 2


Creative Commons License
Овај садржај је заштићен лиценцом Creative Commons Attribution-NonCommercial 3.0 Unported License.

За програмски код који се односи на садржај овог курса се може сматрати да је заштићен MIT лиценцом.