Zadania do samodzielnego rozwiązania
Strona: | SEZAM - System Edukacyjnych Zasobów Akademickich i Multimedialnych |
Kurs: | 4. Zastosowania narzędzi CASE |
Książka: | Zadania do samodzielnego rozwiązania |
Wydrukowane przez użytkownika: | Gość |
Data: | poniedziałek, 7 lipca 2025, 11:32 |
1. Podstawy implementacji oprogramowania
Zadanie 1
Dla poniższej klasy napisz odpowiadający jej kod w wybranym języku programowania. Zastosuj konwencje nazewnicze właściwe dla wybranego przez siebie języka. Opisz zastosowane konwencje nazewnicze. W razie potrzeby wykonaj inżynierię odwrotną, czyli dokonaj aktualizacji klasy na diagramie.
Zadanie 2
Stwórz model klas odpowiadający poniższemu szkieletowi kodu.
public class CTabelaStudentow {
private int liczbaStudentowNaLiscie;
private CTabelaSymboli translacja;
public void pokazStudenta(int nr) {}
void zbudujTabeleTranslacji(XListaStudentow lis) {}
private void ustalLiczbeStudentow(XListaStudentow lis) {}
public void kasuj() {}
}
public class CTabelaSymboli {
public void dodaj(int numer, long numer) {}
public long podajId(int numer) {}
}
Zadanie 3
Dla poniższego diagramu sekwencji napisz w wybranym języku programowania kod klas „CIndex” oraz „CRejestrowanieOperacji”.
Zadanie 4
Stwórz diagram sekwencji odpowiadający poniższemu fragmentowi kodu.
public class COknoListyStudiujacych {
IPrzegladanieListyStudentow przegladanieListyStudentow;
void przyciskPokazStudenta(int idStudenta) {
przegladanieListyStudentow.pokazStudenta(idStudenta);
}
}
Zadanie 5
Przedstaw ciąg poleceń (etapów) dla systemu kontroli wersji w celu wprowadzenia nowego kodu do głównej gałęzi repozytorium.
Zadanie 6
Mamy zadany kod z głównej gałęzi oraz nowy kod. Podaj treść kodu po złączeniu.
public class CStudent {
private long id;
public XStudent podajStudenta(long idStudenta) {
XStudent srud = new XStudent(idStudenta);
SELECT(stud);
return stud;
}
}
public class CStudent { private long id;
private CRejestracjaStudenta rejestracjaStudenta;
public short zmienOstatniaRejestracje(char status) {
return rejestracjaStudenta.zmienOstatnia(status);
}
}
2. Podstawy testowania
Zadanie 1
Zaprojektuj interfejs zawierający dwie operacje z jednym oraz dwoma parametrami numerycznymi oraz typu napisowego. Zaprojektuj po dwa testy dla każdej operacji, wykorzystujące metodę wartości granicznych. W ramach projektu testów podaj zbiory danych testowych składające się z co najmniej 5 elementów każdy, oraz zbiory oczekiwanych danych wynikowych.
Zadanie 2
Napisz test akceptacyjny metodą czarnej skrzynki dla przypadku użycia „Usunięcie towaru z magazynu”. Załóż określone scenariusze odpowiednich przypadków użycia, niezbędnych do wykonania pełnego testu.
Zadanie 3
Podaj zakres danych wejściowych dla testów zadanego modułu (np. mnożenie liczb ze znakiem) metodą czarnej skrzynki.
Zadanie 4
Wyszukaj kod nietrywialnego modułu programowego (klasy, komponentu) w wybranym języku programowania. Zaproponuj kilka testów tego modułu metodą białej skrzynki. Określ, które ścieżki przepływu sterowania będą sprawdzone tymi testami.
3. Narzędzia i metody automatyzacji inżynierii oprogramowania
Zadanie 1
Narysuj metamodel dla zadanego języka. Język powinien pozwalać na rysowanie akcji oraz przepływów sterowania lub przepływów obiektów między akcjami. Akcje mogą być trzech rodzajów (proszę założyć odpowiednie typy akcji).
Zadanie 2
Narysuj przykładowe modele zgodne z metamodelem z rozwiązania zadania 1. Zaproponuj składnię konkretną.
Zadanie 3
Poszukaj języków do transformacji modeli oraz powiązanych z nimi narzędzi. Napisz prostą transformację w wybranym języku transformacji. Transformacja powinna zamieniać klasę z atrybutami w języku UML w tabelę z kolumnami w języku ERD. Spróbuj wykonać tą transformację w wybranym narzędziu.
Zadanie 4
Poszukaj konkretnych narzędzi dla poszczególnych etapów metody DevOps. Opisz, w jaki sposób narzędzia te można ze sobą zintegrować.