Inżynieria programowania – wykład i laboratorium Wykład 1. Modele
Transkrypt
Inżynieria programowania – wykład i laboratorium Wykład 1. Modele
Inżynieria programowania – wykład i laboratorium Wykład 1. Modele cyklu życia oprogramowania, specyfikacja wymagań funkcjonalnych i niefunkcjonalnych, modelowanie, faza analizy (stosowane notacje), projektowanie (narzędzia – interfejs użytkownika, moduły bazodanowe/komunikacyjne), implementacja, testowanie, dokumentowanie, konserwacja. 2. Koncepcje tworzenia złożonego oprogramowania - podejście strukturalne/podejście obiektowe/RAD, wykorzystanie bibliotek i frameworków (notacje stosowane do opisu budowy, powiązań elementów oprogramowania oraz ich funkcjonowania, narzędzia CASE) 3. Uruchamianie oprogramowania (rodzaje i przyczyny błędów, debugger, refaktoring, praca krokowa, breakpointy, obserwacja zmiennych, wydruki kontrolne, trudności: bazy danych:plan/optymalizator, programy sieciowe, programy współbieżne/wielowątkowe, maszyny wirtualne, opcje kompilacji, optymalizator kodu, ocena skuteczności uruchamiania) 4. Testowanie oprogramowania (modele testowania względem specyfikacji/kodu, junit/cppunit/dunit, testowanie GUI, wersje językowe – unicode, różne wersje systemów operacyjnych, aplikacje mobilne, zależności od sprzętu i innego oprogramowania, przygotowanie danych testowych, dokumentowanie testowania, testowanie aplikacji webowych, bezpieczeństwo oprogramowania, uwarunkowania ekonomiczne, integracja oprogramowania) 5. Zarządzanie projektem informatycznym (Narzędzia pracy grupowej-groupware, CVS, SVN, API, zarządzanie projektami) 6. Dokumentacja procesu tworzenia oprogramowania oraz dokumentacja użytkowa (automatyczne dokumentowanie, TODO, sposoby formatowania kodu, automatyczne formatowanie kodu, system pomocy dla Windows, formaty hlp, chm, Windows Help) 7. Optymalizacja czasowa i pamięciowa programów (zasady ogólne, wyjątki i cechy charakterystyczne dla wybranych języków, profiler, gprof, programy wielowątkowe) 8. Komunikacja program-użytkownik (.NET, VCL, wxWidgets, QT, podejście RAD, komponentowe, obiektowe, interfejs wstążkowy, aplikacje dotykowe, Aero i Metro, wymagania specjalne: przygotowywanie aplikacji do wykorzystania przez osoby niepełnosprawne) 9. Wdrożenie, utrzymanie i konserwacja oprogramowania (systemy zgłaszania błędów, programy instalacyjne: InnoSetup, MSI, instalowanie w systemach MacOS, Linux, obsługa i funkcje rejestru Windows, zalecenia dla programów zgodnych z Windows Vista/7, modele dystrybucji oprogramowania) 10. Ocena jakości oprogramowania (kryteria, metryki) 11. Projektowanie niezawodnego oprogramowania (czynniki, techniki zwiększające odporność na defekty, programowanie zwinne (agile) oraz ekstremalne, wzorce projektowe) Laboratorium 1. Testowanie i uruchamianie 2. Ocena i poprawa efektywności oprogramowania 3. Komunikacja programów z użytkownikiem 4. Zarządzanie projektem informatycznym, notacje wspomagające modelowanie 5. Przygotowywanie programów instalacyjnych 6. Tworzenie dokumentacji użytkowej oprogramowania Literatura: http://www.sroczynski.pl/index.php?tytul=liter&pkat=inzp Uwagi i wnioski: [email protected]