

Studiuj dzięki licznym zasobom udostępnionym na Docsity
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Przygotuj się do egzaminów
Studiuj dzięki licznym zasobom udostępnionym na Docsity
Otrzymaj punkty, aby pobrać
Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium
Społeczność
Odkryj najlepsze uniwersytety w twoim kraju, według użytkowników Docsity
Bezpłatne poradniki
Pobierz bezpłatnie nasze przewodniki na temat technik studiowania, metod panowania nad stresem, wskazówki do przygotowania do prac magisterskich opracowane przez wykładowców Docsity
pytania na 1 kolokwium z programowania obiektowego
Typologia: Kolokwia
1 / 3
Ta strona nie jest widoczna w podglądzie
Nie przegap ważnych części!
1. Zademonstruj na przykładzie lub opisz przeznaczenie diagramu aktywności:
Diagramy aktywności umożliwiają określenie tego, w jaki sposób system będzie osiągał swoje zamierzone cele Są jednym z rodzajów diagramów języka UML opisujących dynamikę systemu. Diagramy czynności stosuje się w modelowaniu: wysokopoziomowych procesów biznesowych systemów oraz podsystemów scenariuszy przypadków uzycia procesów systemowych charakteryzujących się dużą liczbą równoległych czynności i sytuacji decyzyjnych operacji algorytmów
2. Programowanie dynamiczne
Jeśli problem możemy rozbić na podproblemy i liczba wszystkich potencjalnych podproblemów jest wielomianowa, to zamiast korzystać z rekursji możemy obliczyć wartości wszystkich podproblemów stosując odpowiednią kolejność: od "mniejszych" podproblemów do "większych". Rozmiary problemów muszą być odpowiednio zdefiniowane, nie powinno być zależności cyklicznej. Przykład:
for to do for to do for downto d
return ;
3. Singleton, metoda wytwórcza, fasada, obserwator.
Singleton – kreacyjny wzorzec projektowy, którego celem jest ograniczenie możliwości tworzenia obiektów danej klasy do jednej instancji oraz zapewnienie globalnego dostępu do stworzonego obiektu.
Fasada – klasa posiadająca referencje do elementów systemu z metodami do wykonywania najczęściej potrzebnych zadań, klient – dowolny kod zainteresowany wykorzystaniem złożonego systemu. Klient komunikuje się z systemem poprzez fasadę, która w jego imieniu wykonuje niezbędne operacje na złożonym systemie. To, czy klient posiada także bezpośredni dostęp do systemu, leży w gestii programisty implementującego wzorzec, ponieważ możliwe jest wykorzystanie go do podziału systemu na warstwy, gdzie fasady służą do uproszczenia i ujednolicenia komunikacji. Przykładem użycia wzorca fasady może być aplikacja bankomatowa, która musi wchodzić w interakcję z systemem bankowym.
Metoda wytwórcza (ang. factory method) - wzorzec projektowy, który dostarcza interfejs do tworzenia obiektów, gwarantując jednocześnie możliwość zmiany obiektów jakie będą tworzone przez wzorzec w klasach potomnych. Niniejszy wzorzec projektowy stosuje się gdy: klasa potomna ma decydować jaki obiekt ma zostać stworzony przez klasę bazową; nie da się określić jakie obiekty powinny być tworzone przez klasę bazową; chcemy ukryć implementację frameworka przed klientem, dając jednocześnie klientowi możliwość modyfikacji jego działania.
Obserwator - głównym obszarem wykorzystania wzorca Obserwator jest stworzenie relacji typu jeden-do-wielu łączącej grupę obiektów. Dzięki zastosowaniu wzorca zmiana stanu (czyli zmiana aktualnych wartości pól) obiektu obserwowanego umożliwi automatyczne powiadomienie o niej wszystkich innych dołączanych elementów (obserwatorów).
**4. Narysuj diagram klas wzorca projektowego „metoda wytwórcza”.
metoda testowania tworzonego oprogramowania poprzez wykonywanie testów weryfikujących poprawność działania pojedynczych elementów (jednostek) programu – np. metod lub obiektów w programowaniu obiektowym lub procedur w programowaniu proceduralnym. Testowany fragment programu poddawany jest testowi, który wykonuje go i porównuje wynik (np. zwrócone wartości, stan obiektu, zgłoszone wyjątki) z oczekiwanymi wynikami – tak pozytywnymi, jak i negatywnymi (niepowodzenie działania kodu w określonych sytuacjach również może podlegać testowaniu).
7. W jakim celu stosujemy klasy abstrakcyjne w OOP?
Celem klasy abstrakcyjnej jest zapewnienie wspólnej definicji klasy podstawowej, którą może współdzielić wiele klas pochodnych. Na przykład, biblioteka klas może zdefiniować klasę abstrakcyjną, która jest używana jako parametr do wielu swoich funkcji, i wymaga, aby programiści stosujący tę bibliotekę zapewniali własną implementację klasy, tworząc klasę pochodną.Klasy abstrakcyjne mogą również definiować metody abstrakcyjne