io lepsze odpowiedzi(1) id 2197 Nieznany

background image

1.

Omów przedmiot i zakres inżynierii oprogramowania.

Przedmiot:

Inżynieria oprogramowania jest wiedzą techniczną dotycząca wszystkich faz cyklu życia
oprogramowania. Traktuje oprogramowanie jako produkt, który ma spełniać potrzeby

techniczne, ekonomiczne lub społeczne.
Dobre oprogramowanie powinno być:

- zgodne z wymaganiami użytkownika,
- niezawodne,

- efektywne,
- łatwe w konserwacji,

- interoperacyjne (jeżeli nie jest autonomiczne)
- ergonomiczne.

Inżynieria oprogramowania jest wiedzą empiryczną, syntezą doświadczenia tysięcy ośrodków
zajmujących się budową oprogramowania.

Zakres:

Sposoby prowadzenia przedsięwzięć informatycznych.
Techniki planowania, szacowania kosztów, harmonogramowania i monitorowania przedsięwzięć

informatycznych.
Metody analizy i projektowania systemów.

Techniki zwiększania niezawodności oprogramowania.
Sposoby testowania systemów i szacowania niezawodności.

Sposoby przygotowania dokumentacji technicznej i użytkowej.
Procedury kontroli jakości.

Metody redukcji kosztów konserwacji (usuwania błędów, modyfikacji i rozszerzeń)
Techniki pracy zespołowej i czynniki psychologiczne wpływające na efektywność pracy.

2.

Omów zagadnienie języka programowania i semiotyki języka programowania.

Język programowania jest środkiem umożliwiającym zapis algorytmów w postaci zrozumiałej

dla człowieka, a równocześnie przetwarzanej do postaci zrozumiałej dla komputera (maszyny
algorytmicznej)

Semiotyka zajmuje się badaniem symboli, znaków. W jej skład wchodzą:
syntaktyka, zajmująca się określaniem przynależności danego słowa do zestawu słownika

określonego języka programowania
semantyka, zajmująca się określeniem znaczenia programu, zapisanego w określonym języku

programowania

Syntaktyka jest częścią ogólnej teorii znaków (semiotyki) i zajmuje się strukturą i formą
wyrażeń, a także dopuszczalnymi zmianami ich formy, zwanymi „przekształceniami”.

Wyróżnia się dwa rodzaje reguł składniowych:
reguły formowania, określające zbiór wyrażeń poprawnie zbudowanych na określonym

alfabecie języka
reguły przekształcania, określające zbiór możliwych przekształceń na bazie słów z zadanego

zestawu słownika

W dziedzinie algorytmiki, jak również logiki matematycznej mają zastosowanie wyłącznie
reguły inferencyjne, tzn. takie przekształcenia, które są prawdziwe w sensie logiki

Najczęściej przyjmuje się, że mamy do czynienia z dwoma podzbiorami dziedziny nazywanej

syntaktyką:
syntaktyka formalna, która jest rozumiana jako ogólne badania formalne, dotyczące języków

logiki i matematyki, jak również języków naturalnych,
syntaktyka logiczna, która zajmuje się badaniem języków logiki i matematyki (np. rachunek

predykatów, rachunek zdań)

Językami programowania, badaniem ich algorytmiczności zajmuje się syntaktyka języków
programowania, która jest jednym z rodzajów syntaktyk formalnych

3. Omów zagadnienie i skutki tzw. „kryzysu oprogramowania”.

background image

Podstawowym powodem kryzysu oprogramowania jest złożoność produktów informatyki i

procesów ich wytwarzania

Skutki:
27% projektów powstaje w założonym czasie, budżecie i funkcjonalności

33% projektów przekracza czas, budżet i ma mniejszą funkcjonalność
40% projektów jest przerywanych

53% projektów przekracza koszty o 51%
68% projektów przekracza czas o 51%

69% niepowodzeń to czynniki pozainformatyczne.

4. Omów przykładowe źródła złożoności projektu informatycznego.

Dziedzina problemowa,

obejmująca ogromną liczbę wzajemnie uzależnionych aspektów i problemów.
Środki i technologie informatyczne:

sprzęt, oprogramowanie, sieć, języki, narzędzia, udogodnienia.
Zespół projektantów: podlegający ograniczeniom pamięci, percepcji, wyrażania informacji i

komunikacji.
Potencjalni użytkownicy:

czynniki psychologiczne, ergonomia, ograniczenia pamięci i percepcji, skłonność do błędów i
nadużyć, tajność, prywatność.

5. Omów sposoby opanowywania złożoności projektu informatycznego.

Zasada dekompozycji:

rozdzielenie złożonego problemu na podproblemy, które można rozpatrywać i rozwiązywać
niezależnie od siebie i niezależnie od całości.

Zasada abstrakcji:

eliminacja, ukrycie lub pominięcie mniej istotnych szczegółów rozważanego przedmiotu lub
mniej istotnej informacji; wyodrębnianie cech wspólnych i niezmiennych dla pewnego zbioru

bytów i wprowadzaniu pojęć lub symboli oznaczających takie cechy.

Zasada ponownego użycia:
wykorzystanie wcześniej wytworzonych schematów, metod, wzorców, komponentów projektu,

komponentów oprogramowania, itd.

Zasada sprzyjania naturalnym ludzkim własnościom:
dopasowanie modeli pojęciowych i modeli realizacyjnych systemów do wrodzonych ludzkich

własności psychologicznych, instynktów oraz mentalnych mechanizmów percepcji i rozumienia
świata.

6. Omów zagadnienie modelowania pojęciowego w projekcie informatycznym.

Projektant i programista muszą dokładnie wyobrazić sobie problem oraz metodę modelowania

pojęciowego. Zasadnicze procesy tworzenia oprogramowania zachodzą w ludzkim umyśle i nie
są związane z jakimkolwiek językiem programowania.

Pojęcia modelowania pojęciowego (conceptual modeling ) oraz modelu pojęciowego

(conceptual model ) odnoszą się procesów myślowych i wyobrażeń towarzyszących pracy nad
oprogramowaniem.

Modelowanie pojęciowe jest wspomagane przez środki wzmacniające ludzką pamięć i

wyobraźnię. Służą one do przedstawienia rzeczywistości opisywanej przez dane, procesów
zachodzących w rzeczywistości, struktur danych oraz programów składających się na

konstrukcję systemu.

Perspektywy w modelowaniu pojęciowym:
Percepcja rzeczywistego świata <-- odwzorowanie --> Analityczny model rzeczywistości <--

background image

odwzorowanie --> Model struktur danych i procesów SI

7. Co to jest metodyka prowadzenia projektu informatycznego?

Metodyka jest to zestaw pojęć, notacji, modeli, języków, technik i sposobów postępowania

służący do analizy dziedziny stanowiącej przedmiot projektowanego systemu oraz do
projektowania pojęciowego, logicznego i/lub fizycznego.

Metodyka jest powiązana z notacją służącą do dokumentowania wyników faz projektu
(pośrednich, końcowych), jako środek wspomagający ludzką pamięć i wyobraźnię i jako środek

komunikacji w zespołach oraz pomiędzy projektantami i klientem.

Metodyka ustala:

- fazy projektu, role uczestników projektu,
- modele tworzone w każdej z faz,

- scenariusze postępowania w każdej z faz,
- reguły przechodzenia od fazy do następnej fazy,

- notacje, których należy używać,

- dokumentację powstającą w każdej z faz.

8. Omów następujący model cyklu życia oprogramowania: … nazwa modelu

1. Model kaskadowy:

Model kaskadowy zwany tez modelem wodospadu lub liniowym, jest klasycznym

modelem cyklu życia oprogramowania. Jest to model, który został zaproponowany poprzez

analogię do sposobu prowadzenia przedsięwzięć w innych dziedzinach inżynierii, na przykład
budownictwie.

Model kaskadowy składa się czynności które podczas tworzenia oprogramowania

są wykonywane sekwencyjnie:

-określenie wymagań , w której określane są cele oraz szczegółowe wymagania wobec
tworzonego systemu.

-analiza
-projektowanie, w której powstaje szczegółowy projekt systemu spełniającego ustalone

wcześniej wymagania.
-implementacja, w której projekt zostaje zaimplementowany w konkretnym środowisku

programistycznym oraz wykonane są testy poszczególnych modułów.
-testowanie, w której następuje integracja poszczególnych modułów połączonych z

testowaniem poszczególnych podsystemów oraz całego oprogramowania.
-konserwacja, w której oprogramowanie jest wykorzystywane przez użytkowników,

a producent dokonuje konserwacji oprogramowania – wykonuje modyfikacje polegające
na usuwaniu błędów, zmianach i rozszerzaniu funkcji systemu.

Wady modelu kaskadowego:

- narzucenie twórcom oprogramowania ścisłej kolejności wykonywania prac

- wysoki koszt błędów popełnionych we wczesnych fazach

- długa przerwa w kontaktach z klientem

Model ten mimo swoich wad jest niezbędny dla planowania, harmonogramowania,

monitorowania i rozliczeń finansowych.
Występuje także zmodyfikowany model kaskadowy z iteracjami. Modyfikacja ta polega na tym,

że z każdej fazy można się cofnąć do faz wcześniejszych.

2. Model spiralny, przyrostowy, ewolucyjny

Model spiralny składa się z czterech głównych faz wykonywanych cyklicznie:

- analiza ryzyka

- konstrukcji
- atestowania

- planowania

background image

W pierwszej fazie rozważane są ogólne opcje budowy nowej wersji systemu. Możliwości

te są analizowane przy wzięciu pod uwagę ryzyka związanego z ich realizacją. Problematyka

analizy opcji omawiana jest w kolejnym rozdziale dotyczącym fazy strategicznej realizacji
przedsięwzięcia. Faza ta może obejmować także budowę prototypu.

W kolejnej fazie konstruowana jest kolejna wersja systemu w sposób zgodny z modelem

kaskadowym.

W fazie atestowania kolejna wersja systemu jest oceniana przez klienta. Jeżeli ocena nie

jest w pełni pozytywna rozpoczynany jest kolejny cykl.

W fazie planowania ustalane są generalne cele produkcji kolejnej wersji systemu.

Model przyrostowy:

Rozpoczyna się od określenia wymagań oraz wykonania wstępnego, ogólnego

projektu całości systemu. Następnie wybierany jest pewien podzbiór funkcji systemu. Dalej,

zgodnie z przebiegiem modelu kaskadowego, wykonywany jest szczegółowy projekt oraz
implementacja części systemu realizującej te funkcje. Po przetestowaniu zrealizowany

fragment pełnego systemu może zostać dostarczony klientowi.

Zalety tego modelu to:

- skrócenie przerw w kontaktach z klientem.
- możliwość wczesnego wykorzystania przez klienta dostarczonych fragmentów

systemu.

- możliwość elastycznego reagowania na powstałe opóźnienia. Jeżeli realizacja

fragmentu systemu opóźni się, nie musi to oznaczać opóźnienia całego przedsięwzięcia. Istnieje
wtedy możliwość przyspieszenia prac nad dalszymi częściami.

Wadą tego modelu jest pewien dodatkowy koszt związany niezależną realizacją

fragmentów systemu. Z reguły nie jest możliwe proste wycięcie podzbioru funkcji w pełni

niezależnych od pozostałych. W związku z tym może zajść konieczność implementacji tzw.
Szkieletów modułów, tj. modułów o interfejsie zgodnym z modułami, które znajdą się pełnym

systemie lecz nie realizujących w pełni ich funkcji. Implementacja tych modułów to oczywiście
pewien dodatkowy nakład pracy oraz zwiększone ryzyko nie wykrycia błędów w fazie

testowania.

Model ewolucyjny:

Wytwarzanie ewolucyjne polega na:

- opracowaniu wstępnej implementacji,

- pokazaniu jej użytkownikowi z prośbą o komentarze
- udoskonalaniu jej w wielu wersjach aż do powstania odpowiedniego systemu;

Rodzaje wytwarzania ewolucyjnego:

Tworzenie badawcze:

- celem procesu jest praca z klientem, polegająca na badaniu wymagań i

dostarczeniu ostatecznego systemu;

- tworzenie rozpoczyna się od tych części systemu, które są dobrze rozpoznane;
- system ewoluuje przez dodawanie nowych cech, które proponuje klient;

Prototypowanie z porzuceniem:

- celem procesu tworzenia ewolucyjnego jest zrozumienie wymagań klienta i

wypracowanie lepszej definicji wymagań stawianych systemowi;

- budowanie prototypu ma głównie na celu eksperymentowanie z tymi

wymaganiami użytkownika, które są niejasne;

Wady modelu ewolucyjnego:

-proces nie jest widoczny;
-system ma złą strukturę;

background image

-konieczne mogą być specjalne narzędzia i techniki;

Stosowanie:

- w wypadku systemów małych (mniej niż 100 000 wierszy kodu) lub średnich (do

500 000 wierszy kodu) z krótkim czasem życia podejście ewolucyjne jest dobre;

- wypadku dużych systemów o długim czasie życia wady tworzenia ewolucyjnego

ujawniają się jednak z całą ostrością;

3. Prototypowanie

Sposób na uniknięcie zbyt wysokich kosztów błędów popełnionych w fazie określania

wymagań. Zalecany w przypadku, gdy określenie początkowych wymagań jest stosunkowo
łatwe.

Model ten składa się z następujących faz:

- ogólne określenie wymagań

- budowa prototypu

- weryfikacja prototypu przez klienta

- pełne określenie wymagań

- realizacja pełnego systemu zgodnie z modelem kaskadowym

Głównym celem realizacji prototypu jest lepsze określenie wymagań, czyli:

- wykrycie nieporozumień pomiędzy klientem a twórcami systemu

- wykrycie brakujących funkcji
- wykrycie trudnych usług

- wykrycie braków w specyfikacji wymagań

4. Programowanie odkrywcze:

Programowanie odkrywcze zalecane jest w sytuacjach gdy określenie wymagań klienta

może być tak trudne, że nawet budowa pojedynczego prototypu nie wystarcza dla rozwiania

wszelkich wątpliwości. Model ten rozpoczyna się od wstępnego, bardzo ogólnego określenia
wymagań. Następnie bardzo szybko rozpoczyna jest realizacja systemu. Faza realizacji

obejmuje z reguły wykonanie przynajmniej bardzo ogólnego projektu. System jest następnie
weryfikowany przez klienta. Jeżeli zostanie on uznany za nieodpowiedni, budowana jest kolejna

wersja systemu. Nie jest to przy tym budowa od podstaw lecz najczęściej modyfikacja
poprzedniej wersji. Cykl kończy się jeżeli jedna z kolejnych wersji zadowala klienta, lub dojdzie

on do wniosku, że nie jest możliwe osiągnięcie zadowalającego efektu.

Zaletą tego modelu jest możliwość stosowania nawet w wypadkach dużych trudności z

określeniem wymagań klienta.

Wady tego modelu:

- praktycznie niemożliwe jest zachowanie sensownej struktury systemu, nawet

jeżeli na wstępie wykonano ogólny projekt. Struktura zaproponowana na wstępie na pewno

zaginie w kolejnych iteracjach wprowadzania zmian do systemu. Po kilku iteracjach okazuje się,
że wprowadzanie kolejnych zmian i usuwanie kolejnych błędów, powoduje dodawanie nowych

błędów. W efekcie praktycznie nie możliwe jest wykonanie w ten sposób większych systemów o
zadowalającej niezawodności.

- ponieważ model ten nie obejmuje pełnego określenia wymagań, testowanie

systemu może odbywać się prawie wyłącznie przy bezpośrednim udziale klienta. W wypadku

innych modeli testowanie polega przede wszystkim na weryfikowaniu zgodności systemu z
wcześniej sprecyzowanymi wymaganiami.

5. Model „V”;

Polega na wytwarzaniu równolegle oprogramowania i prowadzeniu testów akceptacji,

poszczególne elementy systemu są badane od razu po wytworzeniu, praca polega na podziale

background image

systemu na podsystemy, a te na poszczególne zadania, co robi jeden z zespołów, a drugi
zespół odpowiada wyłącznie za ocenę i testowanie systemu. testy odbywają sie od zadań,

potem przechodzą do testowania podsystemów, a następnie testowany jest pełny system.

6. Montaż z gotowych elementów

Model montażu z gotowych elementów kładzie szczególny nacisk na możliwości redukcji

nakładów przez maksymalne wykorzystanie podobieństw tworzonego oprogramowania do

wcześniej tworzonych systemów.

Gotowe elementy mogą być wykorzystywane na różnych etapach realizacji

przedsięwzięcia. Najczęściej są one wykorzystywane na etapie implementacji. Przykładem
może być stosowanie:

- bibliotek
- języków czwartej generacji, których złożone instrukcje mogą być traktowane

jako odwołania do wybudowanych bibliotek

- pełnych aplikacji np. wykorzystanie przeglądarki plików pomocy w systemie MS

Windows

Istnieją dwie metody pozyskiwania gotowych elementów:

- zakup od zewnętrznych dostawców
- opracowanie wyników aktualnie realizowanych przedsięwzięć tak, aby mogłyby

być wykorzystane w kolejnych przedsięwzięciach.

Zalety stosowania gotowych elementów to:

- wysoka niezawodność
- zmniejszenia ryzyka

- efektywne wykorzystanie specjalistów
- narzucanie standardów

Wadami tego modelu są:

- dodatkowy koszt przygotowania elementów do ponownego wykorzystania.

- ryzyko uzależnienia się od dostawcy elementów
- niedostatki narzędzi wspomagających ten rodzaj pracy

9. Omów zadania kierownictwa przedsięwzięcia informatycznego w cyklu
wytwórczym oprogramowania.

Podstawowe zadania kierownictwa przedsięwzięcia informatycznego:

Opracowanie propozycji dotyczących sposobu prowadzenia przedsięwzięcia

Kosztorysowanie przedsięwzięcia

Planowanie i harmonogramowanie przedsięwzięcia

Monitorowanie i kontrolowanie realizacji przedsięwzięcia

Dobór i ocena personelu

Opracowanie i prezentowanie sprawozdań dla kierownictwa wyższego szczebla

10. Omów podstawowe czynniki psychologiczne w procesie wytwórczym i rodzaje

osobowości twórców oprogramowania

Czynniki te wynikają z faktu, że oprogramowanie jest używane i tworzone przez ludzi.

Użytkowanie - implikuje zasady tworzenia interfejsu użytkownika i dokumentacji użytkowej.

background image

Tworzenie - zagadnienia psychologiczne odgrywające rolę w tworzeniu oprogramowania.

Elementy ludzkiej inteligencji:

Umiejętność całościowego (syntetycznego) spojrzenia na problem.

Posługiwanie się wiedzą płynącą z doświadczenia, a więc stosowania nieścisłych zasad

wnioskowania na bazie wcześniejszych doświadczeń.

Istnieją ogromne różnice w predyspozycjach osób dotyczące ich efektywności w produkcji

oprogramowania.

Testy osobowości:

metody określenia, czy dana osoba posiada cechy przydatne na danym stanowisku.

Stosowanie testów osobowości wiąże się z następującymi trudnościami:

Osobowość ludzka ma charakter dynamiczny (zmienia się). Wieloletnia praktyka

zawodowa nie pozostaje bez wpływu na osobowość.

Różne zadania mogą wymagać różnych cech osobowości. Inne powinien posiadać

analityk (kontakt z klientem), inne zaś programista lub osoba testująca

oprogramowanie. Ponadto, metody inżynierii oprogramowania ulegają zmianie, co
pociąga za sobą inny stosunek pożądanych cech osobowości do aktualnych zadań.

Osoby poddane testom będą starały się raczej odgadnąć pożądaną przez testujących

odpowiedź niż odpowiadać zgodnie ze stanem faktycznym. Test nie będzie więc

odzwierciedlał cech osobowości osoby, lecz raczej to, jak ta osoba wyobraża sobie cele i
kryteria testowania oraz cechy pożądane przez pracodawcę.

11. Omów cechy dobrego inżyniera oprogramowania i sposoby zorientowania na
pracę

w cyklu wytwórczym oprogramowania.

Umiejętność pracy w stresie. W pracy często zdarzają się okresy wymagające szybkiego

wykonania złożonych zadań. Dla większości osób niewielki stres działa mobilizująco. Po
przekroczeniu jednak pewnego progu następuje spadek możliwości danej osoby. Próg ten jest

różny dla różnych osób.

Zdolności adaptacyjne. Informatyka jest jedną z najszybciej zmieniających się dziedzin. Ocenia

się, że 7-9 miesięcy przynosi w informatyce zmiany, które w innych dziedzinach zajmują 5-7 lat.
Oznacza to konieczność stałego kształcenia dla wszystkich inżynierów oprogramowania - stałe

poznawanie nowych narzędzi, sprzętu, oprogramowania, technologii, metod, sposobów pracy.
Niestety, nie wszyscy to tempo wytrzymują.

Czynniki psychologiczne mają zasadniczy wpływ na efektywność pracy zespołu. Wyróżnia się
następujące typy psychologiczne:

1.

Zorientowani na zadania (task-oriented). Osoby samowystarczalne, zdolne, zamknięte,

agresywne, lubiące współzawodnictwo, niezależne.

2.

Zorientowani na siebie (self-oriented). Osoby niezgodne, dogmatyczne, agresywne,

zamknięte, lubiące współzawodnictwo, zazdrosne.

background image

3.

Zorientowani na interakcję (interaction-oriented). Osoby nieagresywne, o niewielkiej

potrzebie autonomii i indywidualnych osiągnięć, pomocne, przyjazne.

Osoby typu 1 są efektywne, o ile pracują w pojedynkę. Zespół złożony z takich osób może być

jednak nieefektywny. Lepsze wyniki dają zespoły złożone z typów 3. Typ 1 i 2 może być także
efektywny w zespole, o ile jest odpowiednio motywowany przez kierownictwo. Typy 3 są

konieczne w fazie wstępnej wymagającej intensywnej interakcji z klientem.

12. Omów podstawowe obszary zarządzania przedsięwzięciem informatycznym

według Prince2

Wymiar produktu:

Przez produkty projektu rozumie się wszystkie jego elementy, które mogą

powstać w wyniku jego realizacji.

Może to być gotowe oprogramowanie, zainstalowane systemy, dokumentacja

oprogramowania, różnego rodzaju procedury, wykształcone kadry ludzkie itp.

Opracowanie planów działań w wymiarze produktów odbywa się na podstawie

definicji zakresu projektu.

Wymiar czasu:

Na podstawie precyzyjnie zdefiniowanego zakresu projektu można

zdefiniować drugi wymiar projektu, czyli czas, który jest najczęściej

zapisywany w postaci harmonogramu.

Często spotykaną formą prezentacji harmonogramu są na przykład tabele

lub arkusze kalkulacyjne, jak również wykresy Gantta, które przedstawiają

poszczególne czynności projektowe w sieci uwzględniającej wzajemne ich
zależności, następstwa i zasoby niezbędne do ich wykonania w

odpowiednio zdefiniowanej skali czasu.

Wymiar budżetu:

Budżet projektu stanowi zestawienie kosztów realizacji projektu.

Koszt ten powinien być podzielony na poszczególne jego kategorie.

Mogą to być:

koszty osobowe,

koszty sprzętu,

administracji projektu,

delegacji,

szkoleń itp.

Wymiar jakości:

oceny zarówno poszczególnych produktów projektowych:

dokumentacji,

oprogramowania,

platformy techniczno-systemowej itp.

jak i oceny organizacji procesu projektowego:

planu wzajemnych oddziaływań procesów projektowych,

zasobów ludzkich zaangażowanych w projekt,

zarządzania poszczególnymi wymiarami projektu itp.

13.Omów przykład struktury biura projektu informatycznego, zbudowanego według zaleceń

Prince2.

background image

W większych projektach powołuje się: menedżera konfiguracji , archiwum projektu,

planiste

Dodatkowe informacje (jak chcesz 3 nie czytaj dalej)!!!

Szef projektu- jest personalnie odpowiedzialny za sukces lub porażkę projektu, decyduje na

szczeblu operacyjnym. Szefowie ze strony użytkownika i ze strony dostawcy tworzą Zarząd
Projektu.

Szef projektu u użytkownika- odpowiada za: współorganizację prac projektowych i

zapewnienie zasobów dla projektu ze strony klienta
Szef projektu u dostawcy – odpowiada za: 1.organizowanie (planowanie) projektu i prac oraz

korygowanie planów 2. ustalenie założeń, wymagań użytkownika oraz kryteriów akceptacji
produktów projektowych 3. kontrolę postępów i ich raportowanie (produkt, czas, budżet) 4.

mianowanie Szefów Zespołów i Sekretariatu Projektu 5. dostarczenie produktów do testów i
akceptacji 6. zapewnienie zasobów ze strony dostawcy 7. zorganizowanie prac Komitetu

Sterującego 8. kontakty z poddostawcami
Sekretariat/administracja biura projektu – wykonuje zadania w zakresie

: 1. prowadzenia biblioteki projektu, planów, raportów, wniosków o zmianę itp. 2. zarządzania
korespondencją, dokumentacją spotkań 3. zbierania i konsolidacji raportów z zespołów

technicznych 4. przygotowania materiałów do raportów Szefa Projektu 5. spraw osobowych
(urlopy, rozliczenia finansowe, sprawy pracownicze itp.) 6. rozliczeń finansowych z dostawcami

zewnętrznymi 7. rozliczeń finansowych z klientem

Zespoły Realizacyjne
-są wykonawcami produktów i dlatego od ich prawidłowego składu i organizacji zależy

powodzenie realizacji projektu.

14. Omów podstawowe obszary zarządzania przedsięwzięciem informatycznym według
metodyki PMI.

background image

Zarządanie:

Zakresem – obejmuje procesy dające pewność że projekt uwzględnia wszystkie konieczne
czynności niezbędne dla pomyślnego zakończenia projektu i uzyskania oczekiwanego zakresu

produktu
.

Główne procesy to: 1.inicjowanie faz projektu 2.planowanie zakresu 3.definiowanie zakresu

4.weryfikacja zakresu 5.kontrola zmian zakresu

Kosztem-obejmuje procesy wymagane do zapewnienia, że projekt zostanie ukończony w

ramach zaakceptowanego budżetu.

Główne procesy to:

1.planowanie zasobów 2.estymowanie kosztu 3.przypisywanie kosztów (budżetowanie)

4.kontrola kosztu 5.zarządzanie zmianami budżetu

Harmonogramem(czasem)- obejmuje procesy wymagane do zapewnienia przestrzegania

przez zespół projektowy ustalonych granic czasowych dla poszczególnych czynności w
projekcie.

Główne procesy to: 1.definiowanie czynności 2.sekwencjonowanie czynności

3.estymowanie czasu 4.opracowanie harmonogramu 5.kontrola wykonania harmonogramu
6.zarządzanie zmianami harmonogramu

Jakością-obejmuje procesy wymagane do zapewnienia zaspokojenia przez rezultaty projektu
tych potrzeb, dla których został on powołany.

Główne procesy to:1.planowanie jakości

2.zapewnienie jakości 3.kontrola jakości

Komunikacją-obejmuje procesy służące zapewnieniu terminowego i właściwego tworzenia,

gromadzenia, rozpowszechniania, przechowywania i usuwania informacji niezbędnej do
efektywnego zarządzania projektem.

Główne procesy: 1.planowanie komunikacji

2.dystrybuowanie informacji 3.sprawozdawczość

Integracją-obejmuje procesy wymagane do zapewnienia poprawnej koordynacji wszystkich

elementów projektu.

Główne procesy:1.wypracowanie planu projektu 2.wykonywanie planu

projektu 3.ogólna kontrola zmian projektu

Ryzykiem -obejmuje procesy identyfikacji, analizowania i reakcji na zaistnienie czynników
ryzyka w projekcie.

Główne procesy: 1.identyfikacja ryzyka 2.estymowanie ryzyka

3.optymalizacja ryzyka 4.monitorowanie ryzyka

Zasobami ludzkimi- obejmuje procesy ułatwiające efektywne wykorzystanie ludzi w projekcie

(klientów, sponsorów i innych uczestników).

Główne procesy:

1.planowanie organizacji 2.nabór personelu 3.zarządzanie zespołami ludzkimi

Zaopatrywaniem/zleceniami/sprzedażą obejmuje zdobywanie dóbr i usług spoza
organizacji wykonującej projekt

Główne procesy:1.planowanie zleceń 2.planowanie ofert

3.realizacja ofert 4.selekcja dostawców

background image

15.Omów przykład struktury biura projektu informatycznego zbudowanego według zaleceń

metodyki Chestra SBS.

Informacje dodatkowe:

Kierownik Projektu(Szef projektu)– posiada

-

silną pozycje

Architekt Systemowy i Biznesowy – określają zakres projektu i zakres produktu
Techniczne zarządzanie projektem – wyróżniono dokumentacje użytkownika i obszary

testów

16.Porównaj zalecenia Prince2, PMI i Chestra SBS w zakresie obszarów zarządzania projektem
informatycznym i organizacji biura projektu informatycznego.

(ps.co do Chestra SBS to jest on kurwa wielką niewiadomą co potwierdza slajd opisujący
zawartość prezentacji który mówi o elementach Chestra v. 2.0 z Siemens Business Services

natomiast pytanie wymaga znajomości zarządzania projektem informatycznym wg tej metodyki
, poniżej zamieszczam moje wypociny)

Studiując metodyką Prince2 można odnieść nieodparte wrażenie, że jest ona mocno
sugerowana osiągnięciami standardów PMI. Wydaje się, że autorom metodyki Prince2 zależało

przede wszystkim na pewnym zagregowaniu, usystematyzowaniu i przełożeniu zasad
określonych w standardach północno-amerykańskich na uwarunkowania rynku europejskiego.

background image

Różnice w zakresie zarządzania projektem informatycznym w Prince2 i PMI

Różnice w organizacji biura projektu informatycznego w Prince2 i Chestr SBS:

W zaleceniach Prince 2 wyróżnia się szefa projektu od strony użytkownika i dostawcy (tworzą
oni zarząd projektu), w Chestr jest jeden szef projektu inaczej zwany kierownikiem,

posiadający silną pozycje. Istotne różnice w administracji projektu to: w Prince2 menedżer
konfiguracji(powoływany do większych projektów) który to w metodyce Chestr nie jest

składową administracji projektu a dodatkowo w Chestr powołuje się menedżerów budżetu i
jakości. Kolejną różnicą jest w Chestr architekt systemowy i biznesowy(określają zakres projektu

i produktu) natomiast w Prince2 sekretariat biura projektu. Wyróżnionymi obszarami w Chestr
jest dokumentacja i testowanie. W metodyce Prince2 dzięki oddzieleniu grupy zarządczej,

odpowiedzialnej za organizację i kierowanie, od technicznej wytwarzającej produkt, może ona
znaleźć zastosowanie w wielu dziedzinach.

Co do Chestra to ambitnych odsyłam do toolboxa

Siemensa który dodaje jako załącznik.

Cechy:
W Prince2 skoncentrowano się na określeniu zasad organizacji i zarządzania projektem, co ma

w przekonaniu jej autorów gwarantować prawidłowe jego rozpoczęcie i doprowadzenie do
pomyślnego zakończenia oraz wypracowanie oczekiwanych produktów, przy jednoczesnym

dotrzymaniu planowanego czasu, budżetu i jakości projektu.

17. Omów zagadnienie zarządzania konfiguracją w przedsięwzięciu informatycznym na
podstawie metodyki RUP

Zarządzania konfiguracją ma na celu: 1. identyfikacje i udokumentowanie funkcjonalnych
oraz niefunkcjonalnych charakterystyk produktów projektowych 2. monitorowanie wszelkich

zmian tych charakterystyk 3. zapisywanie i raportowanie zmian oraz stopnia implementacji
zmian 4. weryfikacje poszczególnych produktów projektowych pod względem spełniania

wymagań ustalonych dla tych produktów

18. Omów zakres działania tzw. „inżynierii wymagań” w procesie wytwórczym oprogramowania

Celem fazy określenia wymagań jest ustalenie wymagań klienta wobec tworzonego systemu.

Dokonywana jest zamiana celów klienta na konkretne wymagania zapewniające osiągnięcie
tych celów. Proces inżynierii wymagań to: wynajdowanie, analizowanie, specyfikowanie i

dokumentowanie sprawdzania usług i ograniczeń
W zakresie inżynierii wymagań wyróżnia się: wymagania użytkownika, wymagania

systemowe, wymagania funkcjonalne i niefunkcjonalne, dokumentacje wymagań stawianych
oprogramowaniu.

Punktem wyjściowym w projektowaniu w pełni funkcjonalnej aplikacji są trzy podstawowe
elementy związane z inżynierią wymagań, czyli:

zebranie wymagań użytkowników,

zarządzanie tymi wymaganiami, czyli zestawienie powstałej specyfikacji z

oczekiwaniami klienta,

background image

weryfikowanie tych wymagań poprzez stałą komunikację całego zespołu, aby
upewnić się, że powstaje odpowiednia aplikacja.

Projekt powinien odnosić się do trzech poziomów wymagań: 1.Wymagania biznesowe(potrzeby)
2. Wymagania użytkownika(cechy) 3.Wymagania systemowe(funkcjonalne, niefunkcjonalne)

19. Omów podstawowe metody rozpoznawania wymagań i cechy jakościowego dobrego opisu
wymagań.

Dobry opis wymagań powinien być:

-Kompletny
-Niesprzeczny

-Weryfikowalny
-Realizowalny

Ponadto:
–Opisywać zewnętrzne zachowania systemu z pominięciem sposobu jego realizacji

–Obejmować ograniczenia, przy jakich musi pracować system
–Łatwy w modyfikacji

–Zapewniać możliwości zmiany wymagań w kolejnych etapach
–Zawierać zachowania systemu w niepożądanych lub skrajnych sytuacjach (brzegowych)

Metody rozpoznawania wymagań:
Wywiady i przeglądy.
Wywiady powinny być przygotowane (w postaci listy pytań) i

podzielone na odrębne zagadnienia. Podział powinien przykrywać całość tematu i powinny być
przeprowadzone na reprezentatywnej grupie użytkowników. Wywiady powinny doprowadzić do

szerokiej zgody i akceptacji projektu.
Studia na istniejącym oprogramowaniem. Dość często nowe oprogramowanie zastępuje

stare. Studia powinny ustalić wszystkie dobre i złe strony starego oprogramowania.
Studia wymagań systemowych. Dotyczy sytuacji, kiedy nowy system ma być częścią

większego systemu.
Studia osiągalności. Określenie realistycznych celów systemu i metod ich osiągnięcia.

Prototypowanie. Zbudowanie prototypu systemu działającego w zmniejszonej skali, z
uproszczonymi interfejsami.

20. Omów główne klasy wymagań na system informatyczny. Podaj przykłady

takich wymagań.
Główne klasy wymagań to Funkcjonalne, Niefunkcjonalne i Dziedzinowe

Funkcjonalne (jakie usługi oferuje, jak ma reagować, jakie dane przyjmować) :
-system wymaga logowania użytkownika

-możliwość sprawdzania postępów pracy w każdym momencie
Niefunkcjonalne( ograniczenia czasowe, standardy) :

-system powinien odszukiwać dane każdego użytkownika poniżej 10 sekund
-system nie powinien zajmować więcej niż 10GB

Dziedzinowe (odzwierciedlają charakterystykę dziedziny systemu, mogą być
funkcjonalne lub niefunkcjonalne):

background image

-Wszystkie bazy danych powinny być dostępne przez jednolity interfejs użytkownika,
którego podstawą jest standard Z39.50

21. Omów i podaj przykłady wymagań funkcjonalnych dla systemu
informatycznego.

Wymagania funkcjonalne określają jakie usługi ma oferować system, jak ma reagować na
otrzymywane dane wejściowe oraz w określonych sytuacjach. Określają one użytkowników

korzystających z systemu oraz możliwości każdego z nich. Określają również wykorzystanie
systemów zewnętrznych. Mogą one również określać czego system nie powinien robić.

Wymagania funkcjonalne mogą być realizowane przez systemy zewnętrzne.
Przykłady:

-wprowadzenie nie pełnych danych system powinien komunikować błędem
-system powinien przydzielać odpowiednie zlecenia pracownikom

22. Omów i podaj przykłady wymagań niefunkcjonalnych dla systemu

informatycznego.
Wymagania niefunkcjonalne są to ograniczenia systemu, które obejmują ograniczenia czasowe,

ograniczenia dotyczące procesu tworzenia, standardy itd.
Wynikają one z potrzeb użytkownika, budżetu, potrzeby współpracy z innym systemem,

strategii firmy i czynników zewnętrznych. Wymagania niefunkcjonalne można podzielić na trzy
podklasy:

Produktowe (określają zachowanie produktu) :
-system powinien być łatwy w użyciu dla doświadczonych kontrolerów

Organizacyjne (wynikają ze strategii w firmie wytwórczej i firmie klienta)
-proces tworzenia systemu i końcowe dokumenty powinny być zgodne z procesem i

produktami zdefiniowanymi w standardzie XYZCo-SP-STAN-95.
Zewnętrzne

-system nie powinien ujawniać operatorom żadnych danych osobowych klientów
oprócz nazwisk i numerów identyfikacyjnych.

23. Omów metody specyfikacji wymagań dla systemów informatycznych.
W zależności od potrzeb stosuje się różne metody specyfikacji wymagań:

-Język naturalny - najczęściej stosowany. Wady: niejednoznaczność powodująca różne
rozumienie tego samego tekstu; elastyczność, powodująca wyrazić te same treści na wiele

sposobów. Utrudnia to wykrycie powiązanych wymagań i powoduje trudności w wykryciu
sprzeczności.

-Formalizm matematyczny. Stosuje się rzadko (dla specyficznych celów).
-Język naturalny strukturalny. Język naturalny z ograniczonym słownictwem i składnią. Tematy i

zagadnienia wyspecyfikowane w punktach i podpunktach.
-Tablice, formularze. Wyspecyfikowanie wymagań w postaci tablic, kojarzących różne aspekty.

-Diagramy blokowe: forma graficzna pokazująca cykl przetwarzania.
-Diagramy kontekstowe: ukazują system w postaci jednego bloku oraz jego powiązania z

otoczeniem, wejściem i wyjściem.
-Diagramy przypadków użycia: poglądowy sposób przedstawienia aktorów i funkcji systemu.

24. Omów przykładowy zakres treści dokumentu opisującego wymagania na system
informatyczny.

Dokument opisujący wymagania na system informatyczny ma pewien schemat:
Informacje organizacyjne:

Streszczenie (około 200 słów), Spis treści, Statut dokumentu(autorzy, firmy, podpisy),
Zmiany w stosunku do poprzedniej wersji.

Zasadnicza zawartość dokumentu:
1. Wstęp

(1.1 Cel 1.2 Zakres 1.3 Definicje akronimy i skróty 1.4 Referencje, odsyłacze do innych
dokumentów 1.5 Krótki przegląd )

2. Ogólny opis
(2.1 Walory użytkowe i przydatność projektowanego systemu 2.2 Ogólne możliwości

projektowanego systemu 2.3 Ogólne ograniczenia 2.4 Charakterystyka
użytkowników 2.5 Środowisko operacyjne 2.6 Założenia i zależności )

3. Specyficzne wymagania
( 3.1 Wymagania funkcjonalne 3.2 Wymagania niefunkcjonalne )

Dodatki
Kolejność i numeracja punktów w przedstawionym spisie treści powinna być zachowana. W

przypadku gdy pewien punkt nie zawiera żadnej informacji należy wyraźnie to zasygnalizować
przez umieszczenie napisu „Nie dotyczy”.

background image

Dla każdego wymagania powinien być podany powód jego wprowadzenia: cele przedsięwzięcia,
których osiągnięcie jest uwarunkowane danym wymaganiem.

25. Omów zakres fazy analizy w cyklu wytwórczym systemów informatycznych.
Celem fazy analizy jest ustalenie wszystkich tych czynników, które mogą wpłynąć na decyzje

projektowe, na przebieg procesu projektowego i na realizację wymagań. Wynikiem jest logiczny
model systemu
, opisujący sposób realizacji przez system postawionych wymagań, lecz

abstrahujących od szczegółów implementacyjnych.
Zakres fazy analizy:

--Wykracza poza zakres odpowiedzialności systemu -> kontekst użycia i współpracy;
--Ujęcie w modelu pewnych elementów nie będących częścią systemu -> model jest

bardziej zrozumiały;
--Abstrakcja modelowania -> podczas modelowania może nie być jasne,

które elementy modelu będą realizowane przez oprogramowanie a które w sposób
sprzętowy lub ręcznie;

--Dostępne środki mogą nie pozwolić na realizację systemu w całości -> analiza może
wykryć fragmenty, które mogą być szczególnie ważne;

26. Omów główne cechy modelu analitycznego i podstawowe czynności w fazie
analizy systemu informatycznego.

Cechy modelu analitycznego:
--Uproszczony opis systemu;

--Hierarchiczna dekompozycja funkcji systemu;
--Model logiczny jest opisany przy pomocy notacji zgodnej z pewną konwencją;

--Jest on zbudowany przy użyciu dobrze rozpoznanych metod i narzędzi;
--Jest on używany do wnioskowania o przyszłym oprogramowaniu;

Model oprogramowania powinien być jego uproszonym opisem, opisującym wszystkie istotne
cechy oprogramowania na wysokim poziomie abstrakcji.

Model ten jednakże nie zastępuje doświadczenia i wnikliwości projektantów, lecz pomaga
projektantom w zastosowaniu tych walorów.

Czynności w fazie analizy:
--Rozpoznanie, wyjaśnianie, modelowanie, specyfikowanie i dokumentowanie

rzeczywistości lub problemu będącego przedmiotem projektu;
--Ustalenie kontekstu projektu;

--Ustalenie wymagań użytkowników;
--Ustalenie wymagań organizacyjnych;

--Inne ustalenia, np. dotyczące preferencji sprzętowych, preferencji w zakresie
oprogramowania, ograniczeń finansowych, ograniczeń czasowych, itd.

Analiza nie powinna stawiać nacisku na zmianę rzeczywistości poprzez wprowadzenie tam
nowych elementów, jej celem jest rozpoznanie wszystkich tych aspektów rzeczywistości, które

mogłyby mieć wpływ na postać, organizację lub wynik projektu.

27.Omów przykłady nieobiektowego podejścia do analizy, projektu i implementacji
systemów informatycznych.

Metodyki strukturalne - łączą statyczny opis danych oraz statyczny opis procesów.

Do tej klasy należą:

Metodyka Yourdona (DeMarco i Ward/Mellor);

Structured System Analysis and Design Methodology (SSADM);

Structured Analysis and Design Technique (SADT).

Uważa się, że wadą metodyk strukturalnych są trudności w zintegrowaniu modeli oraz iż

pomimo dojrzałości, mogą nie być adekwatne do współczesnych tendencji wytwarzania
systemów informatycznych;

Przykład metodyki - CDM-Oracle-1996

stosowana do procesów biznesowych i funkcji, które nie mogą być obsłużone za

pomocą dostępnych aplikacji „z półki”;

CDM jest zbiorem zdefiniowanych procesów tworzenia oprogramowania, które
zostały określone przy założeniu, że w procesie wytwórczym stosowane są

metody i narzędzia CASE;

zakłada, że potrzeby biznesowe zostają wyraźnie zdefiniowane na samym
początku cyklu projektowego oraz że ich zweryfikowanie jest możliwe podczas

całego procesu wytwórczego;

background image

CDM wyróżnia następujące procesy:

definicja potrzeb biznesowych (studium możliwości),

analiza istniejących systemów,

opracowanie architektury technicznej,

projektowanie i budowa bazy danych,

projektowanie i budowa modułów,

konwersja danych,

opracowanie dokumentacji technicznej,

testowanie,

szkolenie,

przejście na nowy system,

obsługa serwisowa;

28.Omów przykłady obiektowego podejścia do analizy, projektu i implementacji

systemów informatycznych.

/* Pytanie brzmi omów PRZYKŁADY więc jakiś geniusz od poprzedniej ściągi nie bardzo
zrozumiał pytanie i na przekór nie przytoczył ANI JEDNEGO przykładu metodyki. Jest tego w

chuja i nie widzę sposobu spamiętania wszystkich tych pierdół w podpunktach. Załączam
przekroje metodyk z wykładów */

Analiza i Projektowanie - metody obiektowe
Wspólna zasada: zaczynamy od rozpoznania struktury obiektów. Najważniejsze jest, czym są

obiekty, a nie co robią.
Wspólne kroki wszystkich metod obiektowych:

Identyfikacja klas i obiektów, ich atrybutów i metod

Ustalenie powiązań między obiektami

Ustalenie interfejsu każdego obiektu (protokołu)

Ustalenie współpracy obiektów, przepływ informacji

Implementacja, tworzenie prototypu.

# Przykład- Metoda Coad/Yourdon
5 głównych czynności

1. znajdowanie klas i obiektów
2. identyfikacja struktur

3. identyfikacja tematów
4. definiowania atrybutów

5. definiowania usług

model analizy obiektowej zawiera 5 warstw

1. warstwa tematów
2. warstwa klas i obiektów

3. warstwa struktury
4. warstwa atrybutów

5. warstwa usług

# Przykłąd Analiza metoda OMT (metoda Rumbaugh)

OMT - Object Modelling Technique
3 części składowe modelu, pokazujące różne jego aspekty:

Model Obiektów (OMT Object Model)
statyczny obraz struktury modelu

- klasy
- atrybuty

- operacje
- relacje między klasami i instancjami (powiązania - asocjacje,

całość - część (agregacje), gen- spec)
Model Dynamiczny (OMT Dynamic Model)

współdziałanie obiektów (powiązania wyznaczone przez komunikaty).
Tu mieszczą się różne diagramy pokazujące przepływ sterowania,

także ograniczenia i warunki na wartości atrybutów.

background image

Model Funkcyjny (OMT Functional Model)
specyfikacja operacji jako funkcji przekształacących wejście na

wyjście, warunki poprawności (asercje).

# Ogólnie w temacie o analizie obiektowej
– opracowanie modelu obiektowego dziedziny zastosowania;

– rozpoznane obiekty odzwierciedlają byty i operacje związane z rozwiązywanym problemem;
Projektowanie obiektowe

– opracowanie modelu obiektowego systemu oprogramowania, który będzie implementacją
zidentyfikowanych wymagań;

– obiekty projektu obiektowego są związane z rozwiązaniem problemu;
Zadania w etapach fazy projektowania:

– uściślenie istniejących definicji klas, np. metod,
– dziedziczenie klas i operacji,

– szczegółowy projekt operacji wraz z przeprojektowaniem ich algorytmów,
– wprowadzenie ogólnych mechanizmów realizacji dynamiki obiektów,

– decyzje o trwałości obiektów,
– modularyzacja i ukrywanie informacji,

– optymalizacja modelu,
– dokumentacja projektu;

Programowanie obiektowe

– realizacja projektu oprogramowania za pomocą języka programowania obiektowego;
– języki obiektowe umożliwiają bezpośrednią implementację obiektów i dostarczają

udogodnienia do definiowania klas obiektów;

29.Co to jest system informatyczny i jakie są jego główne wyznaczniki jakości.

System informatyczny jest złożoną konstrukcją, której stopień skomplikowania zależy od
złożoności architektury. Wielkie systemy są zwykle podzielone na podsystemy, które oferują

pewien zbiór powiązanych ze sobą interfejsów;

System informatyczny to złożony program komputerowy lub zespół współdziałających ze sobą
programów, przeznaczonych do wykonywania określonych funkcji: np. system operacyjny,

system zarządzania bazami danych .
Najczęściej o systemie informatycznym mówi się wtedy, gdy do zbierania, gromadzenia,

przesyłania i przetwarzania danych zastosowane są techniczne środki informatyki, a
przynajmniej komputer do przetwarzania. Zestaw technicznych środków informatyki jest

przeznaczony do realizacji zadań określonych przez system informacyjny .
Podsumowując – system informatyczny to określony obszar systemu informacyjnego danego

obiektu, obsługiwany za pomocą technicznych środków dostępnych w informatyce.

Wyznaczniki jakości systemu informatycznego:
zgodny z wymaganiami użytkownika

-niezawodny
-efektywny

-łatwy w konserwacji
-interoperacyjny (jeżeli nie jest autonomiczny)

-ergonomiczny

System informatyczny - jest to zbiór powiązanych ze sobą elementów, którego funkcją jest
przetwarzanie

danych

przy użyciu techniki komputerowej. Na systemy informatyczne składają

się obecnie takie elementy jak:

sprzęt - obecnie głównie

komputery

, oraz

background image

o

urządzenia służące do przechowywania danych

o

urządzenia służące do komunikacji między sprzętowymi elementami systemu

o

urządzenia służące do komunikacji między ludźmi a komputerami

o

urządzenia służące do odbierania danych ze świata zewnętrznego - nie od ludzi
(na przykład czujniki elektroniczne,

kamery

,

skanery

)

o

urządzenia służące do wpływania systemów informatycznych na świat
zewnętrzny - elementy wykonawcze (na przykład

silniki

sterowane

komputerowo,

roboty

przemysłowe, podłączony do komputera ekspres do kawy,

sterowniki urządzeń mechanicznych)

o

urządzenia służące do przetwarzania danych nie będące komputerami

oprogramowanie

zasoby osobowe - ludzie

elementy organizacyjne - czyli procedury (procedury organizacyjne - termin z
zarządzania) korzystania z systemu informatycznego, instrukcje robocze itp.

elementy informacyjne; bazy wiedzy -

ontologie

dziedziny/dziedzin, w których używany

jest system informatyczny - na przykład podręcznik księgowania w wypadku systemu

finansowo-księgowego

30.Omów podstawowe diagramy statyczne w języku IBM/Rational UML.

Diagram klas – to statyczny diagram strukturalny, przedstawiający strukturę systemu w
modelach obiektowych przez ilustrację struktury klas i zależności między nimi. Elementami

występującymi w diagramie klas są:
-klasy

-interfejsy
-grupy współdziałania

Pomiędzy elementami występującymi na diagramie klas występują związki:
-zależności

-generalizacji
-asocjacji

-agregacji
Diagram klas jest najczęściej wykorzystywanym diagramem w notacji UML.

Diagram obiektów - (Object Diagram)zamiast klas pokazują instancje. Przydają się do

wyjaśniania drobnych elementów ze skomplikowanymi relacjami, zwłaszcza rekurencyjnymi.
Każdy prostokąt na diagramie obiektów odpowiada pojedynczej instancji. Nazwy instancji na

diagramach UML są podkreślone. Nazwy klas lub instancji mogą zostać pominięte na
diagramach obiektów, pod warunkiem, że sens diagramu pozostaje jasny.

Diagram komponentów - (Component Diagram) (zwany także diagramem implementacji) to

diagram przedstawiający jeden z aspektów modelu zgodnego z UML. Przedstawia fizyczne
elementy wchodzące w skład systemu i połączenia między nimi. Elementami tymi są:

Komponenty przedstawiane za pomocą dużego prostokąta,

z dwoma mniejszymi z jego lewej strony oraz z etykietą w środku. Komponenty mogą być

przedstawiane zarówno jako klasy jak i instancje. Klasa oznacza elementy systemu istniejące
podczas jego działania (np. interfejs użytkownika czy dane). Konkretne instancje precyzują

o jaki element chodzi (np. okno programu będące częścią interfejsu). Węzły są to zasoby
sprzętowe dostępne podczas działania systemu. Obrazowane są za pomocą

prostopadłościanów.

Zależności

Diagram pakietów – (Package Diagram)to diagram służący do porządkowania struktury

systemu. Stosowane, aby uprościć skomplikowane diagramy klas, klasy grupujemy w pakiety.

background image

Pakiet to zbiór logicznie powiązanych elementów UML. Pakiety to prostokąty z małymi
zakładkami na górze. Nazwa pakietu znajduje się na zakładce albo wewnątrz prostokąta.

Strzałki z przerywanymi liniami to zależności. Jeden pakiet jest zależny od drugiego, jeśli
zmiany w drugim pakiecie mogą wymusić zmiany w pierwszym.

Diagram wdrożenia - (Deployment Diagram) obrazuje konfigurację węzłów działających w

czasie wykonania i zainstalowane na nich komponenty. Odnosi się do statycznych aspektów
perspektywy wdrożeniowej. Wiąże się z diagramem komponentów, ponieważ zwykle każdy

węzeł zawiera conajmniej jeden komponent.
Diagramy wdrożenia zawierają na ogół węzły i powiązania między nimi. Są przydatne do

modelowania systemów rozproszonych i typu klient-serwer.

31.Omów podstawowe diagramy dynamiczne w języku IBM/Rational UML.

Diagram przypadków użycia ( Use Case Diagram)
Diagramy przypadków użycia opisują, co robi system z punktu widzenia zewnętrznego

obserwatora. Eksponują to, co robi system, a nie jak to robi. Diagramy przypadków użycia
pozostają w bliskim związku ze scenariuszami. Przypadek użycia to podsumowanie scenariuszy

pojedynczego zadania lub celu. Aktor to ktoś albo coś, co inicjuje zdarzenia związane z tym
zadaniem. Aktor po prostu określa rolę, którą odgrywa człowiek lub obiekt.

Jeden przypadek użycia może mieć wielu aktorów.
Diagramy przypadków użycia mają trzy zastosowania:

-Określanie funkcji (wymagań). Nowe przypadki użycia często generują nowe wymagania,
kiedy system jest analizowany i projekt przybiera coraz wyraźniejszy kształt.

-Komunikacja z klientami. Prostota notacji sprawia, że diagramy przypadków użycia są dobrym
sposobem porozumiewania się programistów z klientami.

-Generowanie przypadków testowych. Zbiór scenariuszy danego przypadku użycia może
zasugerować sposoby testowania tych scenariuszy.

Diagram stanów. (State Machine Diagram)

Obiekty cechują się zachowaniami i stanem. Stan obiektu zależy od jego bieżącej aktywności
lub warunków. Diagram stanów pokazuje możliwe stany obiektu oraz przejścia, które powodują

zmianę stanu. Stany to zaokrąglone prostokąty. Przejścia to strzałki wiodące od jednego stanu
do drugiego. Zdarzenia lub warunki wyzwalające przejścia są zapisane obok strzałek.

Diagram czynności (Activity Diagram) to szczególny przypadek diagramu stanów, który

obrazuje strumień kolejno wykonywanych czynności.
Diagram czynności obrazuje przepływ sterowania (jest właściwie schematem blokowym).

Przedstawia sekwencyjne (ew. współbieżne) kroki procesu obliczeniowego.
Diagram czynności zawiera na ogół stany (akcji i czynności), przejścia oraz obiekty.

Wykonywane obliczenia nazywamy stanami (akcji lub czynności). Stany akcji i czynności są
szczególnymi przypadkami stanów maszyny stanowej. Diagram czynności jest rodzajem

maszyny stanowej.
Tory wskazują umiejscowienie czynności. Występując na diagramie czynności są pooddzielane

pionowymi, ciągłymi liniami. Każdy tor ma unikatową nazwę.

Diagram sekwencji zdarzeń (przebiegów)
Opisują one, jak obiekty ze sobą współpracują. Diagram sekwencji to diagram interakcji, który

szczegółowo pokazuje, w jaki sposób są wykonywane operacje - jakie komunikaty są wysyłane i
kiedy. Czas upływa w miarę poruszania się w dół strony. Obiekty zaangażowane w operację są

wymienione od lewej do prawej według tego, kiedy biorą udział w sekwencji komunikatów.

Diagram współpracy (kooperacji)
Diagramy współpracy to diagramy interakcji. Dostarczają tych samych informacji co diagramy

sekwencyjne, ale skupiają się na rolach obiektów, a nie na czasach przesyłania komunikatów.
Na diagramie sekwencyjnym role obiektów są wierzchołkami, a komunikaty - liniami łączącymi

wierzchołki.
Prostokąty opisujące rolę obiektu są oznaczone nazwami klas lub obiektów (albo obiema

nazwami). Nazwy klas są poprzedzone dwukropkiem ( : ).

32.Omów podstawowe diagramy w metodyce Oracle CASE Method.

background image

Diagram zależności
Diagram zależnosci to narzedzie do przedstawiania złożonych zależnosci miedzy przyczynami i

skutkami. Diagramy zależnosci pozwalajż odnalećź często trudną do wykrycia zależnosc
problemu od pierwotnej przyczyny. Pomagaja zilustrowac łancuchy zaleznosci i wzajemnych

zaleznosci, przez co ułatwiaja podjecie działania w odpowiednim miejscu. Pomagaja równiez w
identyfikacji efektów ubocznych tych działan. Diagram dokumentujący zależności między

elementami danych nazywa się diagramem zależności lub diagramem determinowania.

Elementy danych rysowane są w postaci owali, kółek lub baniek.

Zależność funkcyjna oznaczana jest przy pomocy strzałek łączących element determinujący z

zależnym

Diagram zależności przedstawia kolejność wykonywania wcześniej ustalonych funkcji

elementarnych. Dotyczy zależności informacyjnych. Jest to tzw. diagram następstw,
uwzględniający zdarzenia inicjujące wykonanie funkcji oraz ich wyniki. Przedstawia wszystkie

możliwe drogi postępowania, zatem wymaga użycia operatorów relacji OR, AND i XOR.

Diagram przepływu danych - DFD (ang. Data Flow Diagram) . diagramy przepływu danych
pozwalają na modelowanie procesów w systemie informatycznym lub organizacji. Podstawowe

elementy diagramów DFD
to:

· proces (ang. process),
· przepływ (ang. flow),

· magazyn inaczej skład/składnica danych (ang. datastore),
· terminator (ang. terminator) inaczej jednostka zewnętrzna (ang external entity).

Każdy z powyższych elementów ma odpowiedni symbol graficzny jednoznacznie wyróżniajacy
go

na diagramie. Niestety, różne metodyki używają różnej symboliki . zwykle jednak koncepcja i
semantyka

diagramów jest jednakowa.

-Funkcje — (procesy) realizują określone cele; jeśli funkcji nie można rozbić na pod-funkcje,
wówczas nosi ona nazwę elementarnej.

-Magazyny danych — trwałe lub tymczasowe składnice danych, które są argumentami dla
funkcji.

-Terminatory — obiekty, które nie są częścią systemu, ale stanowią odbiorców bądź źródła
danych lub argumentów funkcji.

Przepływy — elementy pokazujące kierunek przesyłu danych (np. bajtów, znaków, pakietów..).
Diagram przepływu danych obrazuje za pomocą przepływów kierunek przepływu danych

pomiędzy funkcjami, magazynami i obiektami zewnętrznymi.

33.Porównaj następujące podejścia do analizy i projektowania systemów
informatycznych:

1) podejście: encja-związek, 2) podejście obiektowe.

/* zagadnienie troche niedopowiedziane, ale możne ładnie wode polać w temacie*/

W analize i projektowaniu systemów inf. rozróżniamy dwa podejścia – strukturalne i obiektowe.

Podejście encja-związek jest strukturalne – diagramy encja-związek występuja w strukturalnej
metodyce SSADM. Model taki opisuje statyczna strukturę systemu, grupując dane w kolekcje

zwane
obiektami (encje). Graficznym odpowiednikiem jest diagram ERD (ang. Entity Relationshi

Diagram), którego węzły reprezentują obiekty natomiast łuki odzwierciedlają relacje
pomiędzy obiektami. Przy podejściu bazodanowym, gdy występuje spora ilość danych,

korzystne jest rozróżnianie rodzajów danych oraz prześledzenie ich przepływu.
Obecnie najbardziej rozpowszechnione jest podejście obiektowe. Cechuje się ono

przejrzystością oraz wygodą tworzenia modelów. Intuicyjnie dokonywane jest powiązywanie
metod z danymi, na których one operują. Pomiędzy obiektami można w prostszy sposób

zamodelować interakcję.
Model obiektowy skupia się bardziej nad tym jak dane są przetwarzane, jaki jest do nich

dostęp, jaka jest wymiana danych pomiędzy obiektami. W modelu obiektowym na drugi plan
przesunięte jest jak dane są przechowywane, a także jak są reprezentowane. Znacznie

istotniejsze jest kto ma do nich dostęp, jakie obiekty biorą udział w ich przetwarzaniu i jakie

background image

metody operują na danych. Podejście to jest korzystne dla wszystkich systemów, gdzie
konieczna jest odpowiednia kontrola dostępu do danych, poprawności danych, oraz kontrola

sposobu przetwarzania.

34. Omów zagadnienie audytu w procesie wytwórczym systemów informatycznych

Audytem nazywany jest niezależny przegląd i ocenę jakości oprogramowania, która zapewnia
zgodność z wymaganiami na oprogramowanie, a także ze specyfikacją, generalnymi

założeniami, standardami, procedurami, instrukcjami, kodami oraz kontraktowymi i
licencyjnymi wymaganiami.

Aby zapewnić obiektywność, audyt powinien być przeprowadzony przez osoby niezależne od
zespołu projektowego.

Audyt powinien być przeprowadzany przez odpowiednią organizację audytu (która aktualnie
formuje się w Polsce, Polskie Stowarzyszenie Audytu) lub przez osoby posiadające uprawnienia/

licencję audytorów.
Reguły i zasady audytu są określone w normie:

ANSI/IEEE Std 1028-1988 „IEEE Standard for Reviews and Audits”.
Celem audytu projektu informatycznego jest dostarczenie odbiorcy i dostawcy obiektywnych,

aktualnych i syntetycznych informacji o stanie całego projektu
Pod kątem procesu wytwórczego systemów informatycznych audytowi podlegają produkty

(cząśtkowe) projektu informatycznego. Ma to na celu sprawdzenie czy rezultaty poszczególnych
prac odpowiadają zakładanym wymaganiom.

35.Omów zagadnienie inspekcji oprogramowania w procesie wytwórczym systemów

informatycznych.
Inspekcja to formalna technika oceny, w której wymagania na oprogramowanie, projekt lub kod

są szczegółowo badane przez osobę lub grupę osób nie będących autorami, w celu identyfikacji
błędów, naruszenia standardów i innych problemów [IEEE Std. 729-1983]

Dla procesów wytwórczego może ona mieć "zbawienny" wpływ gdyż poprawia ona proces
programowy.

Czas wytworzenia systemu dzięki inspekcji skraca się, gdyż wcześniej dowiadujemy się o
błedach.

Zwiększa ona także motywację pracowników poprzez obudzenie w nich świadomości, że
produkt będzie oceniany.

Może mieć ona z kolei zgubny wpływ na etapie opracowywania dokumentów, gdyż
pracownikowi "rodzi się" w głowie myśl: "inspekcja wskaże błędy".

Po inspekcji, kontrolach indywidualnych i poprawie produktu następuje burza mózgów mająca
na celu identyfikację przyczyn błędów (max 10 najpoważniejszych) i propozycji poprawy

procesu programowego, by błędy te nie powtórzyły się w przyszłości.
Idee są notowane bez ich głębokiej oceny.

36. Omów rodzaje testów oprogramowania w odniesieniu do cyklu życia systemu

informatycznego.

Strategia procesu testowania zależy w dużej mierze od przyjętego modelu cyklu życia
oprogramowania, rodzaju oprogramowania, dojrzałości zespołu testerów, posiadanych narzędzi

do testowania.
Badanie prognostyczne - zanim powstanie kod źródłowy, czyli w fazach: określenia wymagań i

projektowania.
Zalety:

- Zwiększenie prawdopodobieństwa uniknięcia lub zmniejszenia oddziaływania zjawiska
propagacji błędów

- Stosunkowo niskie koszty testowania
- Możliwość przebadania wielu różnych projektów oprogramowania w celu wyboru najlepszego

do implementacji
Wady:

- Bazowanie na modelu oprogramowania, co może zmniejszyć dokładność badania (potencjalna
rozbieżność z właściwościami implemetacyjnymi

Badania diagnostyczne:
Typy:

- Analiza dynamiczna

eksperymentowanie z działającym kodem programu;

background image

- analiza statyczna

praca z kodem źródłowym w celu:

»

rozpoznania funkcjonalności testowanego kodu;

»

zaprojektowania odpowiednich testów;

- inspekcje
- audyty

37.Omów uwarunkowania prawne i inżynierskie procesu testów akceptacyjnych
systemu informatycznego.

Na podstawie art. 21 ust. 6 ustawy z dnia 17 lutego 2005 r. o informatyzacji działalności
podmiotów realizujących zadania publiczne (Dz. U. Nr 64, poz. 565) zarządza się, co następuje:

§ 1. Rozporządzenie określa: 1) metodykę , warunki i tryb sporządzania testów akceptacyjnych;
2) sposób postępowania w zakresie badania, o którym mowa w art. 21 ust. 1 ustawy z dnia 17

lutego 2005 r. o informatyzacji działalności podmiotów realizujących zadania publiczne,
zwanego dalej „badaniem”, w tym sposób dokumentowania wyników badania oraz weryfikacji

badania; § 3. 1. Podmiot publiczny sporządza testy akceptacyjne z zachowaniem metodyki
prowadzenia projektów informatycznych o publicznym zastosowaniu odpowiadającej specyfice

systemu teleinformatycznego używanego do realizacji zadań publicznych, w zakresie
obejmującym wyłącznie funkcjonalność oprogramowania testowanego. 2. Sporządzenie testu

akceptacyjnego obejmuje przygotowanie: 1) specyfikacji przypadku testowego, zgodnie z
wzorem określonym w załączniku nr 1 do rozporządzenia; 2) specyfikacji scenariusza

testowego, zgodnie z wzorem określonym w załączniku nr 2 do rozporządzenia, jeżeli jej
sporządzenie jest niezbędne do przeprowadzenia badania z uwagi na funkcjonalność

oprogramowania testowanego. § 4. 1. Podmiot publiczny, mając na uwadze, aby badanie
obejmowało w pełni funkcjonalność oprogramowania testowanego: 1) sporządza opis badania

składający się z: a) specyfikacji poszczególnych przypadków testowych, b) specyfikacji
poszczególnych scenariuszy testowych w przypadku, o którym mowa w § 3 ust. 2 pkt 2; 2)

zapewnia, nieodpłatnie dla podmiotów uprawnionych, dostęp do oprogramowania testowego
albo, zgodnie z § 5 ust. 2, do oprogramowania komunikacyjnego; 3) publikuje, w Biuletynie

Informacji Publicznej, opis badania, o którym mowa w pkt 1, oraz informacje niezbędne dla
uzyskania skutecznego dostępu przez podmioty uprawnione do oprogramowania, o którym

mowa w pkt 2.
38.Omów istotę testowania metodą black box i white box.

Testowanie strategią białej skrzynki pozwala sprawdzić wewnętrzną logikę programów poprzez
odpowiedni dobór danych wejściowych, dzięki czemu można prześledzić wszystkie ścieżki

przebiegu sterowania programu.
Tradycyjnie programiści wstawiają kod diagnostyczny do programu aby śledzić wewnętrzne

przetwarzanie. Debuggery pozwalają programistom obserwować wykonanie programu krok po
kroku.

Często niezbędne staje się wcześniejsze przygotowanie danych testowych lub specjalnych
programów usprawniających testowanie (np. programu wywołującego testowaną procedurę z

różnymi parametrami).
Dane testowe powinny być dobrane w taki sposób, aby każda ścieżka w programie była co

najmniej raz przetestowana.
Ograniczeniem testowania na zasadzie białej skrzynki jest niemożliwość pokazania brakujących

funkcji w programie. Wadę tę usuwa testowanie n/z czarnej skrzynki.
Przykładowy graf strumieni podprogramu wyszukującego binarnie:

background image

Testowanie strategią czarnej skrzynki - Tak określa się sprawdzanie funkcji oprogramowania bez
zaglądania do środka programu. Testujący traktuje sprawdzany moduł jak „czarną skrzynkę”,

której wnętrze jest niewidoczne.
Testowanie n/z czarnej skrzynki powinno obejmować cały zakres danych wejściowych.

Testujący powinni podzielić dane wejściowe w „klasy równoważności”, co do których istnieje
duże przypuszczenie, że będą produkować te same błędy. Np. jeżeli testujemy wartość

„Malinowski”, to prawdopodobnie w tej samej klasie równoważności jest wartość „Kowalski”.
Celem jest uniknięcie efektu „eksplozji danych testowych”.

„Klasy równoważności” mogą być również zależne od wyników zwracanych przez testowane
funkcje. Np. jeżeli wejściem jest wiek pracownika i istnieje funkcja zwracająca wartości

„młodociany”, „normalny” „wiek emerytalny”, wówczas implikuje to odpowiednie klasy
równoważności dla danych wejściowych.

Wiele wejść dla danych (wiele parametrów funkcji) może wymagać zastosowania pewnych
systematycznych metod określania ich kombinacji, np. tablic decyzyjnych lub grafów

przyczyna-skutek.

Tester zadaje dane wejściowe i analizuje dane wyjściowe;

»

Jeżeli dane wyjściowe (wyniki) nie są zgodne z założeniami, to test
pozytywnie wykrył defekt oprogramowania;

Zadaniem testera jest taki wybór danych wejściowych, aby z dużym p-stwem były elementami

zbioru „Wejście-b”;
Dane wejściowe mogą być dzielone na klasy równoważności (dziedziny) o wspólnych cechach

(np. liczby dodatnie);

»

Zakłada się, że programy działają zwykle w porównywalny sposób dla
wszystkich elementów jednej klasy;

»

Przypadki testowe projektuje się tak, aby dane wejściowe i wyjściowe
leżały wewnątrz tych klas;

background image

39.Omów zagadnienie architektury systemów informatycznych.

Architektura globalna: koordynacja i komunikacja pomiędzy organizacjami;

Architektura korporacyjna (enterprise): koordynacja i komunikacja w obrębie organizacji;

Architektura systemu: koordynacja i komunikacja pomiędzy aplikacjami;

Architektura aplikacji (Subsystem): dostarczanie funkcjonalności;

Makro-architektura (Frameworks): powtarzające się aplikacje;

Mikro-architektura: wzorce projektowe;

Obiekty: specyficzne konstrukcje w językach programowania;

40.Omów zagadnienie projektowania architektonicznego systemów informatycznych.

Proces projektowania architektonicznego polega na ustaleniu podstawowego zrębu

systemu. Podział architektoniczny jest niezbędny do strukturalizacji i porządkowania

specyfikacji. Model architektoniczny jest zwykle punktem początkowym do specyfikowania
rozmaitych części systemu. Obejmuje identyfikację najważniejszych komponentów systemu i

komunikacji między nimi. Wyróżnia się składowe procesy projektowania architektonicznego:
2. Strukturalizacja systemu

1. System jest dzielony na kilka podstawowych podsystemów, przy czym podsystem

jest niezależną jednostką oprogramowania

2. Identyfikuje się tu komunikację między podsystemami

3. Modelowanie sterowania

1. Określa się ogólny model związków sterowania między częściami systemu

Podział na moduły

Każdy zidentyfikowany podsystem jest dzielony na moduły
Architekt musi wskazywać typy modułów i ich połączenia

Wynikiem projektowania architektonicznego są dokumentacja zawierająca modele graficzne i
opisy tekstowe oraz modele przedstawiające rozmaite perspektywy architektury.

41.Omów istotę koncepcji wzorców projektowych w projektowaniu systemów
informatycznych.

Wzorzec projektowy jest to uniwersalne, sprawdzone w praktyce rozwiązanie często

pojawiających się, powtarzalnych problemów projektowych. Wzorce projektowe zwiększają
elastyczność, wielokrotne wykorzystanie oraz czytelność projektu, dostarczają sprawdzonych

rozwiązań dla powtarzających się problemów, wpływają na sposób modelowania, usprawniają
komunikację oraz tworzenie dokumentacji.

Podział wzorców 1:

Analityczne – ułatwiają modelowanie dziedziny

Projektowe – opisują pewne techniki projektowe

Architektury – standardowe rozwiązania architektury

Organizacyjne – opisują organizację pracy zespołu

Podział wzorców 2:

Konstrukcyjne

wykorzystywane do pozyskiwania obiektów zamiast ich bezpośredniego tworzenia

Strukturalne

stosowane do łączenia obiektów w większe struktury

Operacyjne

definiowanie komunikacji pomiędzy obiektami

kontrolowanie przypływu danych w złożonych algorytmach (programach)

przydział zobowiązań obiektom

Podział wzorców 3:

Warstwy prezentacji

Warstwy logiki

background image

Warstwy integracji

42.Omów wzorzec projektowy …… (nazwa jednego z wzorców z wykładu).

Jak wyżej

43.Omów model niezawodności oprogramowania według Jelińskiego-Morandy.

wykrywanie błędów jest niezależne

usuwanie wykrytych błędów nie generuje nowych

intensywność wykrywana błędów – proporcjonalna do liczby błędów pozostających w

oprogramowaniu:

gdzie:

K – stała

Er – wspł. pozostających błędów
Et – stała – początkowa liczba błędów w programie

It – stała – liczba instrukcji w programie
Ec – łączna unormowana liczba błędów usuniętych w przedziale [0, (tał)] :)

44.Omów zjawisko propagacji kosztów błędu oprogramowania i podaj przykładowe

z(

τ

)

K(E

T

/I

T

ε

C

(

τ

)

E

T

/I

background image

szacunki kosztów.

45.Omów źródła kosztów nieprawidłowości oprogramowania.

Koszty oprogramowania złej jakości

background image

1. Koszty jakości

koszty błędów (traktowane jako straty)

koszty oceny (traktowane jako nakłady)

koszty zapobiegania (traktowane jako nakłady)

2. Koszty procesu

koszty niezgodności (traktowane jako straty)

koszty zgodności (traktowane jako nakłądy)

3. Straty jakości (skutki odchyleń od wymagań jakościowych)

testowanie: 30%-40% całkowitej pracochłonności

testowanie systemów krytycznych: 70%-80% całkowitej pracochłonności

46.Co to jest testowanie, weryfikacja i walidacja oprogramowania? Podaj przykłady.

Testowanie: sprawdzanie, czy system działa tak, jak założono w specyfikacji.
Przykłady:

–Testowanie komponentów: Testuje się poszczególne komponenty, aby zapewnić, że działają
poprawnie;

–Testowanie modułów: Moduł jest kolekcją niezależnych komponentów takich jak klasy
obiektów, abstrakcyjne typy danych, albo bardziej luźną kolekcją procedur i funkcji;

–Testowanie podsystemów: Ta faza obejmuje testowanie kolekcji modułów, które zintegrowano
w podsystemie;

–Testowanie systemu: Ten proces testowania ma wykryć błędy wynikające z nieprzewidzianych
interakcji między zintegrowanymi podsystemami i problemów z interfejsami podsystemów;

–Testowanie odbiorcze: Jest to końcowa faza procesu testowania przed przyjęciem systemu do
użytkowania;

Weryfikacja: testowanie zgodności systemu z wymaganiami zdefiniowanymi w fazie

określenia wymagań.
Walidacja (atestowanie): ocena systemu lub komponentu podczas lub na końcu procesu

jego rozwoju na zgodności z wyspecyfikowanymi wymaganiami. Atestowanie jest więc
weryfikacją końcową.

Przykłady:

-Przeglądy techniczne oraz inspekcje oprogramowania.
-Sprawdzanie czy wymagania na oprogramowanie są zgodne z wymaganiami użytkownika.

-Sprawdzanie czy komponenty projektu są zgodne z wymaganiami na oprogramowanie.
-Testowanie jednostek oprogramowania (modułów).

-Testowanie integracji oprogramowania, testowanie systemu.
-Testowanie akceptacji systemu przez użytkowników

-Audyt.

47.Omów istotę i przykłady metod prognostycznego badania jakości
oprogramowania.

Badanie prognostyczne: badanie

gdy nie ma jeszcze kodu. Zanim powstanie implementacja oprogramowania, jego przyszłe
działanie jest badane na podstawie założeń analitycznych/ projektowych.

Zalety:
-Zwiększenie prawdopodobieństwa uniknięcia lub zmniejszenia oddziaływania zjawiska

propagacji błędów,

-Stosunkowo niskie koszty testowania,

-Możliwość przebadania wielu różnych projektów oprogramowania w celu wyboru najlepszego
do implementacji.

Wady:
-Bazowanie na modelu oprogramowania, co może zmniejszyć dokładność badania (potencjalna

rozbieżność z właściwościami implemetacyjnymi).

48.Omów istotę i przykłady metod prognostycznego badania jakości
oprogramowania.

background image

Badanie diagnostyczne: badanie gdy istnieje kod źródłowy; Składa się z:

-Analiza dynamiczna: eksperymentowanie z działającym kodem programu;
-Analiza statyczna: praca z kodem źródłowym w celu rozpoznania funkcjonalności testowanego

kodu i
zaprojektowania odpowiednich testów;

-wykrywanie anomalii:
defekt: nieprawidłowe działanie człowieka w procesie wytwarzania, np. złe sformułowanie

wymagań, zła decyzja projektowa, pomyłka w implementacji;
–Błąd: każde zdarzenie, w wyniku którego kod produkuje nieoczekiwany rezultat;

–Awaria: stan, w którym program nie jest zdolny wykonać prawidłowo co najmniej jednej ze
swoich funkcji;

49.Wymień i omów składowe jakości oprogramowania na drugim poziomie drzewa

jakości.

Drugi poziom to: ADEKWATNOŚĆ
:

-Kompletność

-Racjonalność funkcjonalna

-Racjonalność komunikacyjna

-Zwartość funkcjonalna

-Zwartość komunikacyjna
Tu niestety nichuja nie ma w wykładach a w necie tez niewiele znalazłem, ale dosyć intuicyjne

wiec można polać wodę.

50.Omów główne klasy błędów w systemach informatycznych.

błędy wymagań i analizy: złe sformułowanie problemu, zaniedbanie istotnych parametrów,
niewłaściwy algorytm

błędy projektowania: błędna interpretacja wymagań, błędy logiczne
błędy opracowania (danych) szczegółowej struktury programu: zła interpretacja wymagań

dla programu, niepełność struktury programu, nie uwzględnienie przypadków szczególnych,
niedostateczne dopracowanie błędów, zlekceważenie warunków czasowych;

błędy kodowania: syntaktyczne, zazwyczaj rozpoznawane przez kompilator, błędy
merytoryczne (nieprawidłowe korzystanie z indeksów i wskaźników, zły przydział pamięci,

pominięcie inicjalizacji zmiennych, pomieszanie parametrów funkcji, błąd w pętlach, zamiana
wyników decyzji w instrukcjach warunkowych, błędy deklaracji typów i wymiarów danych, błędy

zakresów wartości danych,
błędy kompilacji i konsolidacji: błędy kompilatora, błędy w zakresach nazw itp.

51.Omów czynności procesu testowania oprogramowania.

Testowanie komponentów <-> Testowanie modułów <-> testowanie podsystemów <->

testowanie systemów <-> testowanie odbiorcze;
-testowanie komponentów: Testuje się poszczególne komponenty, aby zapewnić, że działają

poprawnie
-testowanie modułów: Moduł jest kolekcją niezależnych komponentów takich jak klasy

obiektów, abstrakcyjne typy danych, albo bardziej luźną kolekcją procedur i funkcji.
-testowanie podsystemów: Ta faza obejmuje testowanie kolekcji modułów, które zintegrowano

w podsystemie.

- testowanie systemu: Podsystemy zintegrowano już w system. Ten proces testowania ma

background image

wykryć błędy wynikające z nie przewidzianych interakcji między podsystemami i problemów z
interfejsami podsystemów.

- testowanie odbiorcze: Jest to końcowa faza procesu testowania przed przyjęciem systemu do
użytkowania.

52.Co to jest przypadek testowy, scenariusz testów? Podaj przykłady.

Przypadek testowy (ang. test case) - specyfikacja:
-stan początkowy, czyli stan testowanego systemu (lub jego fragmentu) przed testem,

-dane wejściowe,
-warunki testu,

-dane wyjściowe (oczekiwane wyniki);
-Jakość przypadku testowego :

prawdopodobieństwo znalezienia jeszcze nie wykrytego błędu;

Test zakończony powodzeniem:

WYKRYWA dotychczas nie wykryty błąd;
[G. Myers, The Art. Of Software Testing, 1979]

Określone w rozporządzeniu ministra nauki i informatyzacji z 19 października 2005:
przypadek testowy — test akceptacyjny obejmujący pojedynczy zestaw danych wejściowych

wprowadzanych do oprogramowania testowanego;
scenariusz testowy — zestaw co najmniej dwóch przypadków testowych powiązanych ze

sobą w taki sposób, że danymi wejściowymi do każdego kolejnego przypadku testowego są
niezmienione dane wyjściowe z poprzedzającego go przypadku testowego;

background image

53.Co to jest macierz przykrycia testów akceptacyjnych? Podaj przykłady.
Macierz przykrycia testów akceptacyjnych jest to macierz opisująca wszystkie funkcjonalności

oprogramowania oraz powiązane z nimi przypadki testowe. Pozwala na wykrycie
nietestowanych funkcjonalności oraz nadmiarowych testów (nie testujących żadnej

funkcjonalności).

background image

54.Omów podstawowe schematy testów integracyjnych. Podaj przykłady.

-Skokowe - grupują wybrane (lub wszystkie) jednostki w celu ich równoczesnego

przetestowania
-Przyrostowe - zakładają dołączenie do tworzonej całości za każdym razem tylko jednej

uprzednio przetestowanej jednostki:

zstępujące (odgórne) - integruje się i testuje się komponenty wysokiego poziomu
przed ukończeniem ich projektu i implementacji;

wstępujące (oddolne) - testuje się i integruje komponenty niskiego poziomu
przed ukończeniem budowy komponentów wyższego poziomu;

-Testowanie interfejsu jest wykonywane po zintegrowaniu modułów lub podsystemów w

większe systemy.
-Każdy moduł i podsystem ma zdefiniowany interfejs, który jest wywoływany przez inne

komponenty programu, np.:

Interfejsy parametryczne,

Interfejs w pamięci dzielonej,

Interfejsy proceduralne,

Interfejsy z przekazywaniem komunikatów;

-Celem testowania interfejsu jest wykrycie usterek, które pojawiły się w systemie z powodu

błędów w interfejsach lub nieprawdziwych założeniach o interfejsach.

55.Jaka jest istota konstrukcyjnych wzorców projektowych? Przedstaw przykład
wzorca konstrukcyjnego.

- służą do pozyskiwania obiektów;
- szczegółowo opisują jaki obiekt może zostać stworzony;

- uniezależniają kod od typów tworzonych obiektów (zależne jest to tylko od parametrów
konfiguracyjnych);

Przykłady:

-Singelton-

-Zapewnia powołanie tylko jednej instancji obiektu w całej aplikacji i kontrolowany

dostęp;
-Obiekt powołany wg tego wzorca jest globalnym punktem dostępu do instancji danej

klasy ;
-Wzorzec może być zmodyfikowany do tworzenia określonej liczby instancji danej klasy

(>1);
-Funkcje wzorca: utworzenie obiektu, inicjalizacja obiektu, punkt dostępu, modyfikacja

obiektu;
-Prostszym rozwiązaniem jest: globalnie dostępna zmienna statyczną przechowująca

referencję do obiektu;

-metoda fabrykująca;

Fabryka nie może przewidzieć, jakie obiekty i w jaki sposób tworzyć;

Klient zna tylko interfejs klasy abstrakcyjnej;

Informacje o sposobie i odpowiedzialność za tworzenie obiektu znajdują się w
implementacjach „metody tworzącej” klas pochodnych;

Można tworzyć domyślny produkt, ale też dać użytkownikowi możliwość podstawienia
swojej wyspecjalizowanej wersji;

-fabryka abstrakcyjna;
-fabryka;

-Fabryka nowych obiektów w zdefiniowanych klasach wzorcowych;
Wszystkie klasy wzorcowe mają metody o tej samej nazwie, ale o innych realizacjach;

Zaleta – możliwość modyfikowania klas wzorcowych (tworzących) w jednym miejscu
projektu;

Popularne wersje Fabryki: Metoda Fabrykująca, Fabryka Abstrakcji, Budowniczy,
Prototyp;

-budowniczy;
-prototyp.

Podsumowanie:

Singleton – pojedyncza instancja obiektu;
Metoda Fabrykująca – tworzenie obiektów w klasach pochodnych;

Fabryka Abstrakcyjna – tworzenie rodzin obiektów bez wydzielonych klas fabryk;
Budowniczy – ukrycie szczegółów tworzenia za interfejsem zarządcy;

background image

Prototyp – tworzenie kopii na podstawie w pełni zainicjalizowanej instancji;

56.Jaka jest istota strukturalnych wzorców projektowych? Przedstaw przykład
wzorca strukturalnego.

Stosowany do łączenia obiektów w większe struktury;

Zastosowanie np. w implementacji złożonego interfejsu użytkownika;

Przykłady:

Fasada,

Ujednolicony i prostszy interfejs do struktury złożonych podsystemów;

Separacja klienta od złożonych podsystemów;

Wybór odpowiedniej struktury dla żądania klienta;

Możliwości zmian w ukrywanych podsystemach;

Przykłady:

w bibliotekach Javy: klasy pakietu java.sql (Statement, ResultSet);

wejście usług w Service Oriented Architecture (SOA);

Adapter,

Konwertuje (dopasowuje) interfejsy jednej klasy do interfejsu innej klasy;

Umożliwia klasom o różnych interfejsach współpracę w jednym

programie;

Niewielka elastyczność – adaptacji podlega tylko jedna klasa (Adaptee),

bez jej podklas;

Zmiana zachowania klasy Adapter może zmienić zachowanie klasy

dostosowywanej Adaptee;

Dwa sposoby realizacji:

dziedziczenie,

kompozycja;

Most,

Kompozyt,

System złożony z podsystemów o strukturze drzewiastej ( reprezentacja
związku „całość-część”);

Wspólny interfejs dla klas węzłów i liści – ujednolicone widzenie
kontenerów i obiektów składowanych;

Łatwo rozszerzalny o nowe podsystemy implementujące (określony
interfejs);


Przykłady:

Przykład w bibliotekach Javy: kontenery (Panel, JComponent, …);

Dekorator,

Waga Piórkowa,

Zastąpienie wielu obiektów jednym współdzielonym z opisem stanu
zubożonym w porównaniu z pierwotnym obiektem;

Zamiast przechowywać wewnątrz atrybuty stanu, obiekty dostają
wartości z zewnątrz jako parametry wywołania metod;

Zalety:

Ograniczenie liczby tworzonych instancji obiektów;

Przesunięcie części danych z obiektu do przekazywanych parametrów
metod;

Wady:

Zwiększony koszt wywoływania metod obiektów;

Uzyskuje się przyspieszenie programów operujących na wielu niezbyt
złożonych obiektach;

Przykład: zbiory obiektów „znaków literowych”;

Proxy;

57.Jaka jest istota czynnościowych wzorców projektowych? Przedstaw przykład
wzorca czynnościowego.

W celu definiowania komunikacji pomiędzy obiektami;

Pomagają kontrolować przepływ danych w złożonym programie;

Przykłady:

background image

Iterator,

Upraszcza przemieszczanie po kolekcji danych (np. liście), z

wykorzystaniem standardowego interfejsu;

Nie wymaga znajomości wewnętrznej struktury kolekcji danych;

Umożliwia równoczesne przeglądanie kilku kolekcji;


Przykład:

W bibliotekach Javy: iterator w kolekcjach z pakietu java.util;

Łańcuch Odpowiedzialności,

Zestaw klas obsługuje żądanie w określonej kolejności;

Żądanie jest przekazywane pomiędzy klasami w określonym łańcuchu;

Czasami ostatni obiekt łańcucha obsługuje wszystkie żądania;


Przykład:

Realizacja w Javie: Frame -> Panel -> Component;

Stan,

Tworzy obiekty pochodne z bazowej klasy State dla każdego stanu, w
którym może znaleźć się aplikacja;

Przełączanie pomiędzy obiektami stanu, gdy zmieni się stan aplikacji;

Wraz ze zmianą stanu i tym samym obiektu może zmienić się zachowanie

obiektu (inne implementacje metod);

Eliminuje złożone instrukcje warunkowe (np. switch) w metodach obiektu;

Wada: powstaje wiele małych klas;

Zaleta: upraszcza program;

Mediator,

Mediatora stanowi „zarządcę obiektów”;

Wprowadza luźniejsze powiązania pomiędzy klasami – obiekty znają
Mediatora a nie koniecznie inne obiekty;

Zmiany stanu obiektów są za jego pośrednictwem (odpowiednich metod)
propagowane do zainteresowanych obiektów;

Często jest specjalizowany dla jednego projektu;

Obserwator,

Strategia;

Potrzeba kilku wariantów algorytmu;

Wybór określonego wariantu poprzez powołanie obiektu pochodnego do
zdefiniowanego interfejsu bazowego lub klasy abstrakcyjnej;

Każda wersja algorytmu jest implementowana w osobnej klasie;

Zalety:

algorytm może używać danych, których klient nie zna;

hermetyzacja algorytmów w oddzielnych klasach pozwala na ich

modyfikację niezależnie od kontekstu;

to rozwiązanie zastępuje instrukcje wyboru lub warunkowe;


Document Outline


Wyszukiwarka

Podobne podstrony:
Klucz odpowiedzi id 236518 Nieznany
odpowiedzibezpieczenstwo id 332 Nieznany
konspekt odpowiedzialnosc id 24 Nieznany
OPRACOWANE ODPOWIEDZI id 337615 Nieznany
odpowiedzialnosc id 332805 Nieznany
odpowiedzialnosc1 id 332799 Nieznany
HYDROSFERA 02 odpowiedzi id 207 Nieznany
IO wyk Petri id 554305 Nieznany
ZS Pytania i Odpowiedzi id 5930 Nieznany
odpowiedzi[1] id 413371 Nieznany
BHP odpowiedzi id 84474 Nieznany (2)
ODPOWIEDZI id 332297 Nieznany
odpowiedzi 7 id 332321 Nieznany
odpowiedzi id 332293 Nieznany
IO wyk1 wprowadzenie id 555840 Nieznany
LUDNOSC 01 odpowiedzi id 273718 Nieznany
ekonomika odpowiedzi id 156604 Nieznany
Milosc i odpowiedzialnosc id 30 Nieznany

więcej podobnych podstron