Create
Learn
Share

Mgrogol

rename
kari565's version from 2016-11-08 12:01

Section

Question Answer
1. Scharakteryzować i wymienić zwinne metody wytwarzania oprogramowania.Zwinny rozwój oprogramowania - grupa metodyk wytwarzania oprogramowania opartego o rozwój iteracyjny. Program dostarczany jest modułami w krótkich etapach (np. tygodniowych), cały czas konsultuje z klientem. Często testuje się moduły programu, przez co wychodzą nowe funkcjonalności programu. Wymagania oraz rozwiązania ewoluują przy współpracy samorządnych zespołów (mała grupa programistów). Wymaga dobrej współpracy i kontaktu w grupie. Bazuje na szybkiej i elastycznej reakcji na zmiany. Przykłady: - programowanie ekstremalne (XP) - nie do końca wiadomo co i jak działa, obserwacja innych projektów zakończonych sukcesem, do małych i średnich projektów - Scrum - proces programowania podzielony jest na sprinty (max 1 msc), pod koniec każdego sprintu należy oddać działający program, codzienne konsultacje, - Feature-Driven Development - często wydawane nowe wersje z użytecznymi funkcjami, klasy przypisane do programistow, w trakcie implementacji jest inspekcja kodu, - Test Driven Development – 1. programista tworzy test (ktory oczywiście nie działa), 2. programista implementuje funkcjonalność (test działa), 3. programista refraktoryzuje kod.
2. Omówić cykl wytwarzania oprogramowania z użyciem metodyki FDD.1. Budowa ogólnego modelu - dostarcza ogólnej wiedzy o planowanych funkcjach tworzonego produktu. Wspólne dzieło analityków, programistów i przyszłych użytkowników systemu. 2. Budowa listy funkcji - stworzenie uporządkowanej listy funkcji realizowanych przez produkt na podstawie ogólnego modelu. Funkcja jest opisywana pojedynczym zdaniem. Funkcje są grupowane 3. Planowanie - ustalanie priorytetów, pracochłonność, ryzyko dla funkcji; ułożenie ich w kolejności do implementacji. 4. Projektowanie i implementacja - powtarzające się iteracyjnie do końca projektu dostarczając klientowi kolejne wersje. Po pozytywnym przejściu testów podczas kolejnych iteracji napisany kod może zostać zintegrowany z główną gałęzią produktu.
3. Wyjaśnij znaczenie trójkąta wyboru Harmonogram‐Koszt‐Produkt (podstawy zarządzania) dla szybkiego wytwarzania aplikacji.W środku trójkąta znajduje się JAKOŚĆ. Nie można zmienić jednego aspektu bez wpływu na pozostałe. Każdy projekt wymaga zrównoważenia tych aspektów. Dotrzymując daty zakończenia według harmonogramu. Wynikiem tego może być zwiększenie kosztów i zmniejszenie zakresu. Realizując budżet. W wyniku tego może ulec wydłużeniu harmonogram przy jednoczesnym zmniejszeniu zakresu. Zwiększając zakres. W wyniku tego może się wydłużyć czas realizacji projektu, a ponadto może wzrosnąć koszt jego zasobów, na przykład pracowników.
4. Charakterystyka metodyki adaptacyjnej SCRUM.- rozwój produktu podzielony na mniejsze iteracje (sprinty), - każdy sprint ma dostarczyć działającą wersje produktu, - zmiany każdego sprinta namacalne dla użytkowników, - kolejne wyniki są coraz bardziej dopracowane, - samoorganizujący się zespół projektu (klient członkiem zespołu), *PROCES = zbieranie wymagań → plan przebiegu → samodzielny wybór zadań przez członków → codzienne 15-minutowe spotkania → przegląd wyników.
5. Charakterystyka metodyki adaptacyjnej eXtreme Programming.- wydajne tworzenie małych i średnich „projektow wysokiego ryzyka” (kiedy nie wiadomo co do końca się robi i jak). * Etapy: cel → działanie → odbiór informacji zwrotnej → skorygowanie działania by efekt był bliższy sukcesowi. * Wartości: komunikacja, prostota, szacunek, informacja zwrotna (dla programistów), odwaga (decyzje). Zalecenia: - iteracyjność - planowanie implementacji funkcji co najwyżej w następnej iteracji - projekt nie z góry - tworzenie architektury projektu w miarę rozszerzania projektu - testy jednostkowe - pisze się przed kodem programu, zapewniają stworzenie tylko tego co ważne - ciągłe modyfikacje architektury - gdy to ułatwi rozwój projektu i nie zepsuje uzyskanych wyników - programowanie parami - jedna osoba koduje, druga obserwuje i zgłasza poprawki. Zamiana ról następuje co kilkadziesiąt minut. Kod staje się bardziej zrozumiały i uzyskuje wyższą jakość. - stały kontakt z klientem.
6. Charakterystyka metodyki wytwórczej RUP.Składa się z 4 faz z których każda może zawierać jedną, bądź wiele iteracji. Fazy projektu: faza rozpoczęcia - formułowanie prognozy finansowej, czynników wpływających na sukces. Prosty model przypadków użycia, plan projektu, analiza ryzyka oraz opis projektu. faza projektowania - analiza dziedziny zagadnienia i budowana podstawowej architektury systemu. Stworzenie kompletnego w 80% procentach modelu przypadków użycia. Opracowanie architektury pozwalającej na realizację przypadków. Stworzenie planu prac dla całego projektu. faza konstrukcji - budowa komponentów i funkcjonalności systemu (większość prac programistycznych). Duże projekty to większa iteracyjność tej fazy (podział dużych zagadnień na mniejsze, łatwiej zarządzane). Powstaje pierwsza wersja programu do wglądu użytkowników . faza przekazania systemu – przekazanie produktu użytkownikom. Szkolenia użytkowników, beta testy, sprawdzana jest zgodność produktu z założeniami z pierwszej fazy.
7. Projektowanie i wytwarzanie komponentowe oprogramowania.Wytwarzanie komponentowe kładzie nacisk na znalezienie i separację kategorii problemów znajdujących szerokie zastosowanie w systemie. Zakłada komponowanie systemów z reużywalnych i niezależnych komponentów w całość systemu. Charakteryzuje się ułatwionym powtórnym wykorzystaniem komponentów w nowym przedsięwzięciu projektowym oraz redukcją czasu wdrożenia nowego projektu. Zapewnia uproszczony proces wymiany komponentów z uwagi na znikome zależności. Minimalizuje koszty konserwacji oprogramowania.
8. Przykłady wykorzystanie diagramów Gantt’a i techniki PERT w procesie wytwarzania oprogramowania.Diagram Gantta - graf stosowany w zarządzaniu projektami. Uwzględnia się w nim podział projektu na poszczególne zadania oraz rozplanowanie ich w czasie. Pokazuje ścieżki krytyczne. zależności między zadaniami. Zastosowanie: - bieżąca kontrola przedsięwzięcia, - nanoszenie odpowiednich korekt, - wizualizacja i planowanie terminów. PERT - technika do planowania działań, zależności i czasu realizacji. Jest to w zasadzie sieć zależności, rysowana zgodnie z zestawem sformalizowanych reguł. Graficznie: wierzchołki to zadania, łuki to czas trwania. W tej metodzie czas potrzebny na wykonanie zadania oblicza się na podstawie 3 wariantów: czasu optymistycznego, najbardziej prawdopodobnego i pesymistycznego według wzoru: t = (topt + 4*tnn + tpes)/6. Stosowane dla dużych i złożonych projektów. - łatwe obliczanie czasu - graficzna reprezentacja, - możliwość szacowania trwania zadania.
9. Wymienić podstawowe algorytmy eksploracji danych.- Naiwny klasyfikator Bayesa - narzędzie kategoryzacji, przydziela przykłady do odgórnie ustalonych kategorii. - Drzewa decyzyjne - graficzny sposób wspierania procesu decyzyjnego. - Algorytm K_średnich <centroidow> - grupowanie elementów na podstawie ich podobieństwa. - Algorytm K najbliższych sąsiadow - prognoza wartości pewnej zmiennej losowej lub klasyfikacja. - Algorytm apriori - analiza atrybutów z bazy danych w poszukiwaniu powtarzających się między nimi zależności, jego wynikiem są reguły asocjacyjne, stosowane w określaniu związków przyczynowo-skutkowych między zdarzeniami w bazie danych. - Algorytm EM - analiza skupień, klasyfikacja bez nadzoru, algorytm zaczyna od tego że każdy obiekt to samodzielne skupienie, a kończy na podziale, w którym wszystkie obiekty należą do jednego skupienia.
10. Zasada maksymalnej entropiiEntropia - niepewność wystąpienia danego zdarzenia elementarnego w następnej chwili. Jeżeli zdarzenie występuje z prawdopodobieństwem równym 1, to jego entropia wynosi 0, gdyż wiadomo, co się stanie – nie ma niepewności. Spośród wielu możliwych rozkładów prawdopodobieństwa pewnego eksperymentu powinniśmy wybrać taki rozkład, który jest obarczony największą niepewnością. Entropia jest maksymalna, gdy każdy wynik jest tak samo prawdopodobny.
11. Metody reprezentacji wiedzy w systemach informatycznych.Stwierdzenia - fakt zapisywany w postaci trójki obiekt-atrybut-wartość - z tego składa się baza wiedzy. Scenariusze - opis warunków początkowych, ról, rezultatów. Język naturalny - opis słowny. Reguły produkcji - zbior faktow oraz reguł, np. IF warunek THEN wniosek. Rachunek zdań - dowolne zdania można rozdzielić za pomocą spojnikow logicznych tj. => implikacja, <=> rownoważność, ¬ negacja, koniunkcja ∧ (i), ∨ alternatywa (lub). Sieci semantyczne - grafy (wierzchołki = obiekty/pojęcia/wart, krawędzie = relacje między wierzchołkami, np. [wrobel]—jest—> [ptak]—ma—>[skrzydła]), Model obliczeniowy - reprezentacja wiedzy matematycznej/fizycznej. Zbiór zmiennych i relacji między nimi.
12. Charakterystyka sieci bayesowskich.- do przedstawiania zależności pomiędzy zdarzeniami, bazując na rachunku prawdopodobieństwa, - podstawowym założeniem jest niezależność danego zdarzenia od wszystkich innych (nie będących jego potomkami), np. reprezentacja zależności między symptomami, a chorobą. - modelowanie za pomocą grafu (wierzchołki = zdarzenia, łuki = związki (jeżeli od wierzchołka A prowadzi ścieżka do wierzchołka B, to B jest potomkiem A)). Konstrukcja: definicja zmiennych → definicja połączeń między zmiennymi → określenie prawdopodobieństwa warunkowego i ‘a priori’ → wprowadzenie danych do sieci → uaktualnienie sieci → wyznaczenie prawdopodobieństwa ‘a posteriori’. Sieci bayesowskie pozwalają wyznaczyć wszystkie możliwe prawdopodobieństwa warunkowe (np. "jakie jest prawdopodobieństwo zdarzenia A, jeśli wiadomo, że zaszło zdarzenie B i nie zaszło zdarzenie C").
13. Rodzaje integracji w systemach informatycznych.Transfer plików - Integracja poprzez wymianę plików tworzonych w poszczególnych aplikacjach. Wymagane jest zapewnienie transformacji pomiędzy różnymi formatami plików. Metoda ta jest prosta i nie ingeruje w integrowane aplikacje, jednak rodzi dużo problemów, np. gdzie i jak trzymać pliki, które pliki przechowywać, jak je transferować, itd. Współdzielona baza danych - wszystkie aplikacje korzystają z jednej wspólnej bazy danych. Dane są dostępne wszystkim natychmiast po aktualizacji, dane są też odporne na problem niespójności. Nie ma też problemu z tłumaczeniem danych między różnymi formatami. Problemem może być ustalenie wspólnego dla wszystkich aplikacji schematu. Zdalne wywoływanie procedur - dobre, gdy integrowane systemy nie tylko muszą dzielić stan, ale również i logikę, tj. jeden moduł systemu musi umieć skorzystać z logiki dostarczanej w innym systemie - istnieje wiele metod realizacji tej metody (CORBA, COM, .NET Remoting, RMI). Messaging - poszczególne aplikacje wysyłają komunikaty w momencie wystąpienia określonego zdarzenia. Komunikaty wysyłane są często, szybko, są niezawodne oraz asynchroniczne (aplikacja docelowa nie musi być dostępna w momencie wysłania komunikatu).
memorize

Recent badges