Docsity
Docsity

Przygotuj się do egzaminów
Przygotuj się do egzaminów

Studiuj dzięki licznym zasobom udostępnionym na Docsity


Otrzymaj punkty, aby pobrać
Otrzymaj punkty, aby pobrać

Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium


Informacje i wskazówki
Informacje i wskazówki

pytania na 1 kolokwium z programowania obiektowego, Kolokwia z Programowanie obiektowe

pytania na 1 kolokwium z programowania obiektowego

Typologia: Kolokwia

2020/2021

Załadowany 23.04.2021

domxwoj
domxwoj 🇵🇱

4 dokumenty

1 / 3

Toggle sidebar

Ta strona nie jest widoczna w podglądzie

Nie przegap ważnych części!

bg1
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 oblicz 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ę bazo wą;
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).
pf3

Podgląd częściowego tekstu

Pobierz pytania na 1 kolokwium z programowania obiektowego i więcej Kolokwia w PDF z Programowanie obiektowe tylko na Docsity!

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”.

  1. Hermetyzacja – przykład:** class Uczen {private: char imie[20]; char nazwisko[20]; int klasa; public: void przyjmij(const char *im, const char *nz, int kl); void pokaz(); void promuj(); }; 6. Testy jednostkowe:

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