Software Engineering zaczyna się tam, gdzie kończy się programowanie. W tym kursie nauczysz się solidnych podstaw w Software Engineering. Stanowi on pomost od programowania do solidnych praktyk inżynierskich. Kurs zawiera przegląd podstawowych pojęć i słownictwa zwykle używanego w tej dziedzinie. Podczas kursu nauczysz się korzystać z wielu technik planowania, wdrażania i walidacji projektów oprogramowania oraz oceny i ulepszania procesów rozwoju.
Odbiorcy:
Kurs przeznaczony jest dla programistów z różnych środowisk, którzy znają co najmniej jeden język programowania.
Dzień 1: Proces
Wprowadzenie
- Czym jest inżynieria systemów?
- Czym jest Software Engineering?
- Dlaczego Software Engineering jest trudne?
- Wymagania systemowe
- Modelowanie systemu
Procesy Software Engineering
- Czym jest proces tworzenia oprogramowania?
- Tradycyjne procesy
- Agile Procesy
- Procesy tworzenia systemów o wysokiej integralności
- Normy i systemy certyfikacji
Systemy o wysokiej integralności
- Czym są systemy wysokiej integralności?
- Rola kultury zarządzania jakością
- Przyczyny błędów
- Standard systemów krytycznych
- Inżynieria niezawodności
Konserwacja oprogramowania
Dzień 2: Planowanie
Wymagania
- Wymagania użytkownika
- Elicytacja/analiza wymagań użytkownika
- Wymagania systemowe
- Wymagania dotyczące oprogramowania
- Specyfikacja oprogramowania
- Proces wymagań
- Narzędzia do zarządzania wymaganiami
Software Design
- Prawo Conwaysa
- Wzorce projektowe
- Narzędzia modelowania tekstowego
- Zasady projektowania OO
- Narzędzia projektowe
- Wspólne architektury
Modelowanie
- Planowanie architektury
- Reprezentacje graficzne UML
- Reprezentacje niegraficzne UML
Dzień 3: Kod
Budowa oprogramowania
- Jak przenieść projekt do kodu
- Najlepsze praktyki Programming
- Abstrakcja kodu
- Przepływ pracy Programming
Configuration Management
- Czym jest Configuration Management?
- Configuration Management w ISO9000 i CMMI
- Narzędzia CASE do planowania, projektowania i kontroli jakości
- Narzędzia CASE do pisania oprogramowania
- Kontrola wersji z SVN
- Integracja systemów
Kod dla systemów o wysokiej integralności
- Zapobieganie błędom
- Wyłapywanie błędów
- Ograniczanie wpływu błędów
- Typowe problemy z kodem dla systemów o wysokiej integralności
Wskaźniki jakości kodu
- Wskaźniki rozmiaru kodu
- Wskaźniki złożoności kodu
- Metryki niezwiązane z kodem
- Analiza statyczna
Dzień 4: Weryfikacja i walidacja
Recenzje
- Podstawy VV
- Niezależna weryfikacja i walidacja
- Przegląd projektu i wymagań
- Inspekcje kodu
- Przeglądy oprogramowania
- Audyty
- Inne metody weryfikacji i walidacji
Testowanie systemów o wysokiej integralności
- Dokumenty dotyczące bezpieczeństwa
- Scenariusze
- Argumentacja na rzecz bezpieczeństwa
- Przeglądy systemów o wysokiej integralności
- Przewidywanie niezawodności
- Metody formalne
- Koszty V + V
Testowanie automatyczne
- Dlaczego warto testować?
- Testy automatyczne vs ręczne
- Testowanie przyrostowe
- Rodzaje testów
- Narzędzia do testowania
- Wiązki testowe
Dzień 5: Management
Projekt Management
- Czym jest Projekt Management?
- Przekazanie klientowi
- Standardy (PMP, PRINCE2)
- Zarządzanie czasem
- Zarządzanie kosztami
- Zarządzanie ryzykiem
- Dokumentacja projektu
Ocena procesu
- Funkcja oceny procesu
- Działanie na metryce
- Metryka procesu
- Standardy i ramy oceny procesów (CMMI, ISO 9001, TickIt+)
- Spotkania dotyczące oceny procesów
Podsumowanie i wnioski
United Arab Emirates - Software Engineering
Saudi Arabia - Software Engineering
South Africa - Software Engineering
Österreich - Software Engineering
Schweiz - Software Engineering
Deutschland - Software Engineering
Czech Republic - Software Engineering
Denmark - Software Engineering
Estonia - Software Engineering
Finland - Software Engineering
Magyarország - Software Engineering
Ireland - Software Engineering
Luxembourg - Software Engineering
España - Ingeniería de Software
Lithuania - Software Engineering
Nederland - Software Engineering
Portugal - Software Engineering
România - Software Engineering
Sverige - Software Engineering
Türkiye - Software Engineering
Belgique - Software Engineering
Australia - Software Engineering
Malaysia - Software Engineering
New Zealand - Software Engineering
Philippines - Software Engineering
Singapore - Software Engineering
Thailand - Software Engineering
Vietnam - Software Engineering
Argentina - Ingeniería de Software
Chile - Ingeniería de Software
Costa Rica - Ingeniería de Software
Ecuador - Ingeniería de Software
Guatemala - Ingeniería de Software
Colombia - Ingeniería de Software
México - Ingeniería de Software
Panama - Ingeniería de Software
Uruguay - Ingeniería de Software
Venezuela - Ingeniería de Software
United Kingdom - Software Engineering
South Korea - Software Engineering
Pakistan - Software Engineering
Sri Lanka - Software Engineering
Bulgaria - Software Engineering
Bolivia - Ingeniería de Software
Indonesia - Software Engineering
Kazakhstan - Software Engineering
Moldova - Software Engineering
Morocco - Software Engineering
Tunisia - Software Engineering
Slovakia - Software Engineering
Nigeria - Software Engineering
Botswana - Software Engineering
Slovenia - Software Engineering