Zagadnienia NPR 2015

Poniżej znajduje się lista zagadnień wybranych z wykładu, które będą obowiązujące na teście zaliczeniowym.

Pojęcia

Kompilator, Kompilacja kodu

Interpreter

Język interpretowany, Język kompilowany, Język skryptowy

System kontroli wersji

Application Lifecycle Management (ALM, zarządzanie cyklem życia aplikacji)

Programowanie zwinne

Scrum

Statyczna analiza kodu

Refaktoryzacja

Testy jednostkowe

Asercja

Test driven development

Code coverage

Atrapa obiektu (mock)

Wzorzec: wstrzyknięcie zależności (ang. Dependency Injection, DI)

Memory debugger (odpluskwiacz pamięci)

Profilowanie

Instrumentacja aplikacji

Call graph (graf wywołań funkcji)

Dokumentacja techniczna kodu

Unified_Modeling_Language

Inżynieria wsteczna (reverse engineering)

Diagram_klas, Diagram_przypadków_użycia

Technologie i aplikacje

Czym są i do czego wykorzystywane są wymienione aplikacje i/lub technologie?

Visual Studio

Visual Stdiu Online

ReSharper

CodePlex

cppcheck

FxCop

Subversion

Git

Team Foundation Server

gprof

Valgrind

Doxygen

NUnit

xUnit.net

Moq

Rozszyfruj skróty

Podaj polskojęzyczne i angielskojęzyczne rozwinięcie skrótu.

ALM	Application Lifecycle Management zarządzanie cyklem życia aplikacji
API	Application Programming Interface Interfejs programistyczny aplikacji
DLL	Dynamic-Link Library biblioteka łączona dynamicznie
GCC	GNU Compiler Collection zbiór kompilatorów GNU
GDB	GNU Debugger odpluskwiacz GNU
GNU	GNU’s Not Unix GNU to Nie Unix
GUI	Graphical User Interface graficzny interfejs użytkownika
HTML	HyperText Markup Language hipertekstowy język znaczników
IDE	Integrated Development Environment zintegrowane środowisko programistyczne
SAST	Static Analysis Software Testing statystyczna analiza oprogramowania
SDK	Software development kit zestaw narzędzi dla programistów
TDD	Test-driven development programowanie wspomagane przez testy
TFS	Team Foundation Server
UML	Unified Modeling Language zunifikowany język modelowania
XAML	eXtensible Application Markup Language
XML	Extensible Markup Language Rozszerzalny Język Znaczników

Przykładowe pytania

Czy system kontroli wersji dostępny w TFS posiada architekturę:

scentralizowaną,

zdecentralizowaną,

żadne z powyższych

Jeden z programistów zatwierdził własne świeże zmiany w systemie kontroli wersji dotyczące pewnego piku. Drugi programista pracował nad kodem zawartym w tym samym pliku i próbuje zatwierdzić w repozytorium zmiany naniesione w tej samej linii kodu co pierwszy programista. Jaki będzie efekt takiego działania:

system kontroli wersji automatycznie wybierze najbardziej świeżą wersję pliku, tracąc zmiany naniesione przez pierwszego programistę

system kontroli wersji automatycznie scali pliki wybierając umieszczając pokrywające się linie jedna nad drugą

system kontroli wersji zasygnalizuje wystąpienie konfliktu, który musi zostać rozwiązany zanim drugi programista zatwierdzi zmiany

Do czego służy program Doxygen?

Funkcjonalności systemu można modelować za pomocą:

diagramu przypadków użycia

diagramu klas

diagramu sekwencji