WYKŁADY Flashcards

IO

1
Q

Pełen opis przedmiotu z usosa

A

Inżynieria oprogramowania jest wiedzą techniczną dotyczącą wszelkich faz cyklu życia oprogramowania. Oprogramowanie traktowane jest jako konkretny produkt spełniający określone wymagania. Ustandaryzowany zbiór procedur i procesów stosowany podczas rozwiązywania problemów wynikłych w trakcie projektowania i wdrażania oprogramowania traktowanego jako nieodłączna część określonego systemu informatycznego nazywany jest metodyką tworzenia oprogramowania. Metodyki abstrahują od merytorycznego kontekstu danego obszaru, a skupiają się na metodach realizacji zadań związanych z zarządzaniem projektem informatycznym. Celem przedmiotu jest prezentacja wybranych metodyk tworzenia oprogramowania, metod analizy i projektowania systemów informatycznych, sposobów przygotowywania dokumentacji technicznej i użytkowej oraz sposobów testowania systemów i szacowania ich niezawodności. Zajęcia koncentrują się także na metodach weryfikacji i walidacji oprogramowania w całym cyklu wytwórczym, w tym na wykonywaniu testów funkcjonalnych i strukturalnych na różnych poziomach(moduł, system). W trakcie zajęć studenci poznają również język UML.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

perspektywa przypadków użycia

A

opisuje zachowanie systemu z punku
widzenia użytkowników, analityków oraz osób wykonujących testy.
Zawiera zarówno elementy statyczne, opisane za pomocą diagramów
przypadków użycia, jak i dynamiczne, opisane za pomocą diagramów
przebiegu, kooperacji, stanów i czynności,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

perspektywa projektowa

A

– uwzględnia opis klasy, interfejsów, sekwencji i
kooperacji, które razem składają się na opis danego problemu oraz jego
rozwiązanie. Elementy statyczne wyrażane są za pomocą diagramów klas i
obiektów, dynamiczne – za pomocą diagramów interakcji, stanów i
czynności

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

perspektywa procesowa

A

odzwierciedla mechanizm kreowania wątków i
procesów w systemie. Elementy statyczne i dynamiczne wyrażanie są za
pomocą diagramów klas, obiektów, interakcji, stanów i czynności, przy
czym główny nacisk kładzie się na klasy aktywne

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

perspektywa implementacyjna

A

– opisuje komponenty i artefakty, użyte do
scalenia i fizycznego udostępnienia systemu. Wiąże się ona z zarządzaniem
konfiguracją poszczególnych wersji systemu. Elementy statyczne wyrażanie
są za pomocą diagramów komponentów i artefaktów

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

perspektywa wdrożeniowa

A

opisuje węzły modelujące sprzęt, na którym
system będzie uruchomiony. Wiąże się ona głównie z rozmieszczeniem,
dostarczeniem i instalacją części systemu fizycznego. Aspekty statyczne
wyrażane są za pomocą diagramów wdrożenia

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Diagram przypadków użycia

A

W najprostszym ujęciu użytkownik zwany aktorem jest reprezentantem
świata zewnętrznego. Aktor komunikuje się z systemem poprzez zdefiniowane
w jego obrębie przypadki użycia. Przypadek użycia jest dobrze określoną interakcją między użytkownikiem, a systemem komputerowym. Odwzorowuje
wybrane (lub wszystkie) funkcje systemu w sposób jaki będą je widzieć przyszli
użytkownicy.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Dziedziczenie przypadku użycia

A

Na rysunku 1.6 pokazano najprostszy schemat dziedziczenia, w którym
jeden przypadek użycia (p2) dziedziczy zachowanie innego (p1) i może
dodawać lub modyfikować część tego zachowania. Przypadki użycia mogą
pozostawać w relacjach zależności opisujących tzw. przebiegi podstawowe lub/i
opcjonalne.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Przebieg podstawowy

A

W przebiegu podstawowym (sekwencyjnym) p1 jest przypadkiem bazowym i zawsze występuje jako pierwszy w kolejności działania: p1 zawsze włącza (lub używa) p2. Stereotyp «include» wskazuje na wspólny fragment
wielu przypadków użycia wykorzystywanych w przebiegach podstawowych, w
których wszystkie operacje powinny być zawsze wykonywane.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Przebieg opcjonalny

A

W przebiegu opcjonalnym (alternatywnym) przypadek występujący jako
pierwszy w kolejności działania (p1) jest czasami rozszerzany o p2 (inaczej
mówiąc p2 czasami rozszerza p1). Stereotyp «extend» ze strzałką prowadzoną od przypadku użycia, który czasami rozszerza inny przypadek użycia
opisuje operacje nie zawsze wykonywane (opcjonalne).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Generalizacja

A

Generalizacja jest związkiem między klasą bazową (ang. base class), zwaną
przodkiem, a specyficznym jej rodzajem, zwanym potomkiem lub klasą
potomną lub pochodną (ang. derived class).
Generalizacja jest procesem przejmowania przez jeden obiekt właściwości
innego umożliwiając tym samym klasyfikowania obiektów. W UML opis klasy
najbardziej ogólnej (będącej na szczycie hierarchii generalizacji i niemającej
przodków) często uzupełnia się, dodając pod jej nazwą słowo {root}. Klasy
takie określa się mianem klas-korzeni. Opis klasy, która nie może mieć podklas,
często uzupełnia się słowem {leaf}. Generalizację oznacza
się linią ciągłą zakończoną niewypełnionym grotem skierowanym w kierunku
klasy bazowej (klasy pojęciowo niezależnej).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Zależność

A

Zależność jest związkiem strukturalnym wskazującym, że obiekty jednego
typu są funkcyjnie zależne od obiektów innego typu. Ogólnie powiemy, iż z
zależnością klas mamy do czynienia wówczas, gdy:
 na liście argumentów funkcji składowej klasy występuje nazwa innej klasy,
 na liście argumentów funkcji składowej klasy występuje wskaźnik do innej
klasy,
 na liście argumentów funkcji składowej klasy występuje odwołanie (referencja) do innej klasy,
 w ciele funkcji składowej klasy występuje zmienna, typu innej klasy,
 w ciele funkcji składowej klasy występuje wskaźnik do innej klasy,
 w ciele funkcji składowej klasy występuje odwołanie (referencja) do innej
klasy, Zależność między klasami dotyczy scenariusza, w którym jedna z klas w jakiś sposób używa obiektów innej klasy. Z reguły obiekty nie pamiętają o sobie (nie przechowują wzajemnych referencji, jak ma to miejsce w przypadku powiązania), a współpraca odbywa się jedynie na poziomie metod (np. metoda jednej z klas przyjmuje w argumencie referencję na obiekt innej klasy). Zależność oznacza się przerywaną linią z otwartym grotem. Grot powinien znajdować się po stronie klasy niezależnej (tej, której kod nie odwołuje się do drugiej klasy).
 typem powrotnym funkcji składowej klasy jest wskaźnik do innej klasy. Na diagramie UML zależność oznacza się
linią przerywaną zakończoną strzałką zwróconą w kierunku klasy niezależnej,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Powiązanie

A

Powiązanie jest związkiem strukturalnym wskazującym, że obiekty jednego
typu są połączone z obiektami innego typu poprzez atrybuty danych klas. Zwykłe powiązanie między dwoma klasami wskazuje, że można przejść z obiektu
jednej z tych klas do obiektu drugiej i na odwrót. Można jednak jawnie wskazać
kierunek nawigacji. W UML powiązanie z kierunkiem oznacza się linią ciągłą
zakończoną otwartym grotem skierowanym w stronę elementu logicznie niezależnego. W UML dostępnych jest sześć podstawowych dodatków do powiązań: nazwa, rola, liczebności przy każdym końcu związku, nawigacja, kwalifikacja oraz
różne rodzaje agregacji, w tym również agregacje z nawigacją. Na poziomie implementacji określa się tak głównie sytuacje, w których jedna z klas zawiera w swoich polach referencję/wskaźnik na obiekt innej klasy. Powiązania mogą być jedno- lub dwustronne. Oznacza się je ciągłą linią z otwartym grotem wskazującym na kierunek powiązania (lub po prostu linią w przypadku powiązania dwustronnego).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Agregacja prosta

A

Powiązanie dwóch klas jest związkiem strukturalnym elementów równorzędnych, podkreślającym sytuację, w której powiązane klasy znajdują się na
tym samym poziomie pojęciowym. Czasami jednak zachodzi potrzeba zapisania
związku rodzaju „całość-część”. W takiej relacji jedna klasa reprezentuje większy element stanowiący całość, zaś druga reprezentuje elementy mniejsze, czyli
części, z których składa się całość. Agregacja jest szczególnym rodzajem powiązania. Agregację prostą
oznaczamy za pomocą rombu po stronie całości, Również mówimy tutaj o formie relacji części do całości, jednak na znacznie luźniejszych zasadach. Obiekty obu klas mogą istnieć niezależnie od siebie. W praktyce zwykle wiąże się to z sytuacją, w której jedna z klas zawiera modyfikowalną kolekcję obiektów innej klasy. Agregację oznaczamy ciągłą linią z pustym rombem po stronie całości.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Agregacja całkowita

A

Agregacja całkowita (kompozycja) to związek charakteryzujący się relacją
wyłącznej własności oraz jednością czasu życia całości i części. Proces konstrukcji całości musi być poprzedzony skonstruowaniem wszystkich jej elementów składowych (części nie mogą powstawać po utworzeniu całości, ale w
momencie gdy destrukcji podlega całość muszą zginąć wszystkie jej części). W
przypadku agregacji prostej część może zależeć od kilku całości, zaś w przypadku kompozycji tylko od jednej. Agregację całkowitą oznaczamy symbolem diamentu (wypełnionym rombem) umieszczonym po stronie całości. Tutaj mówimy o sytuacji, w której jedna z klas stanowi nieodłączną część składową innej. Czas życia obiektów obu klas jest ściśle powiązany - obiekty są tworzone i usuwane w tym samym czasie (stworzenie całości wymaga stworzenia części składowej; usunięcie całości z pamięci pociąga za sobą usunięcie części składowej). Kompozycję oznacza się za pomocą ciągłej linii z zamalowanym grotem w kształcie rombu. Grot znajduje się po stronie klasy reprezentującej całość.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Liczebności powiązań

A

W praktyce, w trakcie modelowania różnych odmian powiązania zachodzi
potrzeba podania liczebności, czyli liczby (krotności) obiektów jaka może być
przyłączona przez jeden egzemplarz powiązania. W UML liczebność zapisywana jest w postaci wyrażenia, którego wartością jest dobrze określony przedział liczbowy lub pojedyncza liczba. Podając liczebność przy jednym końcu
powiązania wskazujemy ile obiektów jednej klasy powinno być połączonych z
każdym obiektem klasy znajdującej się na drugim końcu powiązania. Liczebność można ustalić poprzez wyszczególnienie żądanej liczby, np.: 5, przedziału
liczbowego 1..5 (jeden lub pięć), dowolnie wiele (0..) albo co najmniej dwa
(2..
)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Struktury i typy wyliczeniowe

A

Częściami składowymi modelu mogą być takie elementy, jak struktury i
typy wyliczeniowe. Elementy te z reguły będą agregować z klasami, do których
przekazują swoją zawartość w postaci parametrów. Na rysunku 1.28 pokazano
możliwe oznaczenia agregującej struktury oraz typu wyliczeniowego. Stereotyp «enumeration»

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Diagram czynności

A

Diagramy czynności wykorzystywane do modelowania operacji są bardzo
podobne do używanych dawniej schematów blokowych. Zawartość diagramów
czynności może być przedstawiona w sposób ogólny lub szczegółowy. Elementami szczegółowego diagramu czynności dla modelowanej operacji są pojedyncze kroki obliczeniowe, instrukcje decyzyjne oraz rozgałęzienia. Na diagramach
czynności wyróżniamy punkt startowy, który jest reprezentowany przez czarne
wypełnione koło oraz punkt końcowy przedstawiany w postaci kółka z czarna
kropką w środku.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Diagram obiektów

A

Obiekty na diagramach mogą tworzyć związki strukturowe, uczestnicząc w
wiązaniach (połączeniach) lub agregacjach. Wiązania są egzemplarzami powiązań i dlatego mogą być charakteryzowane poprzez podanie nazwy, kierunku
działania, roli i właściwego stereotypu. Wiązanie to odpowiednik powiązania
klas, występujący pomiędzy obiektami. Oznaczamy je za pomocą linii ciągłej,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Diagram stanów

A

Diagramy stanów obrazują sposób, w jaki elementy modelu zmieniają w
czasie swoje własności w odpowiedzi na różnego rodzaju zdarzenia i interakcje.
Podstawowym elementem tego typu diagramów jest ikona stanu, która może być
przedstawiona w sposób uproszczony, poprzez podanie nazwy stanu, lub w sposób szczegółowy, z dodatkowym wyszczególnieniem wartości atrybutów oraz
podstawowych, aktualnie wykonywanych operacji i zdarzeń, Symbol stanu oznaczany jest prostokątem z zaokrąglonymi
narożnikami. Czarne kółko oznacza punkt wejścia do stanu, strzałka jest symbolem przejścia, zaś kółko z czarną kropką (tzw. bycze oko) oznacza punkt wyjścia ze stanu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Diagramy sekwencji (przebiegu)

A

Diagramy klas są doskonałym narzędziem do prezentowania struktury
logicznej aplikacji. Są głównym elementem modeli opartych na UML, co sprawiło, że są bardzo popularne i powszechnie stosowane. Jednak ze stosowaniem
tego typu diagramów wiążą się poważne problemy:
 diagramy klas nie są wstanie wymodelować dynamicznego zachowania
programu – jego zmian w czasie,
 diagramy klas ilustrują jeden poziom hierarchii elementów składowych
oprogramowania. Dobrze zaprojektowany program powinien poddawać się
dekompozycji hierarchicznej. Klasy i obiekty są podstawą tej dekompozycji.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Operatory interakcji dla diagramu sekwencji

A

 alt (alternative) - określający warunek wykonania bloku operacji,
odpowiadający instrukcji if-else; warunek umieszcza się wówczas wewnątrz
bloku w nawiasach kwadratowych,
 opt (optional) - reprezentujący instrukcję if (bez else),
 par (parallel) - nakazujący wykonać operacje równolegle,
 critical - blok atomowy, oznaczający obszar krytyczny o najwyższym
priorytecie wykonania. Obiekty nie mogą uczestniczyć w innych zadaniach.
 loop - definiujący pętlę typu for (o określonej z góry liczbie iteracji) lub
while (wykonywanej dopóki pewien warunek jest prawdziwy),
 break - wykonanie fragmentu i zakończenie interakcji,
 neg – funkcjonalności nieprawidłowe – wskazuje na wyjątki, które muszą
zostać obsłużone,
 strict – ścisłe uporządkowanie komunikatów,
 seq - słabe uporządkowanie dotyczy komunikatów z kilku lini mogących
wystąpić w dowolnym porządku,
 ignore – komunikaty nie mają istotnego wpływu na całość komunikacji,
 consider – istotność – komunikaty muszą zostać wykonane.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Techniki tworzenia diagramów sekwencji:

A

*ustalenie otoczenia (operacje, przypadki użycia, itp.)
*zidentyfikowanie obiektów biorących udział w operacji (od lewej umieszczane
są obiekty najważniejsze).
*narysowanie linii życia obiektów (jeśli są tworzone i niszczone - dodanie
odpowiednich komunikatów).
*dodanie komunikatu inicjującego, kolejne komunikaty pod nim (dodanie
parametrów do komunikatów (jeżeli jest to wymagane)).
*dodanie aktywacji (ośrodka sterowania).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Diagramy sekwencji (przebiegu): Wskazówki

A

*nazwy aktorów są spójne z diagramami przypadków użycia.
*nazwy obiektów są spójne z diagramami klas.
*po lewej stronie umieszczaj aktorów zewnętrznych dla systemu.
*po prawej stronie umieszczaj aktorów, którzy są wewnętrzni dla systemu.
*po lewej stronie umieszczaj aktorów, którzy są systemami inicjującymi
interakcją z modelowanym.
*aktor może mieć taką samą nazwę jak klasa.
*jeżeli jest to niezbędne - umieszczaj komunikat niszczenia (destroy) obiektu.
*umieszczaj nazwę obiektu jeżeli występuje odwołanie do niej w komunikacie.

*umieszczaj nazwę obiektu jeżeli istnieje wiele obiektów tej samej klasy.
*jeżeli umieszczono kilka obiektów o tej samej nazwie, muszą pochodzić z
różnych klas.
*przy aktorach i obiektach/klasach umieszczaj stereotypy informujące o
warstwie systemu, w której one działają.
*umieszczaj tylko najważniejsze komunikaty.
*jeżeli komunikat jest wysyłany do obiektu/klasy, który jest implementowany
jako składnik oprogramowania (klasa, interfejs, komponent), nazywaj
komunikat z użyciem składni języka programowania.
*jeżeli komunikat wymaga przekazania parametrów, podaj ich nazwy, a nie
same typy danych.
*komunikaty wychodzące od aktorów, którzy są osobami lub organizacjami,
nazywaj w sposób opisowy (zdaniem).
*komunikaty przesyłane do klas (nie obiektów) implementowane są jako metody
statyczne
*przy włączaniu innych przypadków użycia do aktualnie modelowanego stosuj
komunikaty ze stereotypem «include»
*komunikat tworzący obiekt oznaczaj stereotypem «create»
*aktywacja nie jest obowiązkowym elementem linii życia, ale ułatwia
zrozumienie diagramu - podkreśla czas trwania danej operacji

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Diagramy komunikacji (kooperacji)

A

Diagramy komunikacji (dawniej współpracy) umożliwiają pokazanie kolejności wysyłania komunikatów. Kolejność ta obrazowana jest poprzez numery
umieszczane na początku etykiet zawierających nazwy i ew. listę argumentów
(sygnaturę) odpowiedniego komunikatu. Oznaczenia komunikatów są podobne
do stosowanych na diagramach sekwencji. Na rysunku 2.30 pokazano zestaw
typowych symboli używanych podczas konstruowania diagramów komunikacji. W
odróżnieniu od semantycznie bardzo podobnych diagramów przebiegu obrazujących interakcję obiektów w funkcji czasu, diagramy współpracy pokazują otoczenie i ogólną organizację obiektów uczestniczących w konkretnym typie interakcji (np. w wiązaniu). (stos obiektów, jeśli obiekt wielokrotny, można definiować kolejność wysyłania)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Diagramy współpracy

A

Diagramy współpracy pozwalają wymodelować interakcję zachodzącą
między obiektami. W odróżnieniu od semantycznie bardzo podobnych
diagramów przebiegu obrazujących interakcję obiektów w funkcji czasu,
diagramy współpracy pokazują otoczenie i ogólną organizację obiektów
uczestniczących w konkretnym typie interakcji (np. w powiązaniu).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Pakiety

A

Pakiety służą do grupowania i systematyzowania składników modelu o podobnym przeznaczeniu we wspólnej przestrzeni nazw. Wszystkie elementy pakietu muszą posiadać unikatowy identyfikator.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Diagramy wdrożenia

A

Diagramy wdrożenia służą do zobrazowania fizycznej architektury
projektowanego systemu. Podstawowym elementem diagramu wdrożenia jest
węzeł. W zależności od tego, co chcemy przekazać, można używać wielu
oznaczeń dla węzłów. W przedstawieniu architektury sprzętowej podstawowymi
są «processor», który może wykonać kod programu lub komponentu, i
urządzenie «device», które jest przyłączone do węzła i współpracuje z
programem (np. drukarka). Do oznaczania konkretnego sprzętu stosuje się też
takie stereotypy, jak: «pc server», «pc client» czy «user pc». W
trakcie modelowania architektury programowej podstawowymi stosowanymi
stereotypami są «artefact», «executable», «database», «library»
itp.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Diagramy harmonogramowania zadań

A

Diagramy harmonogramowania doskonale opisują interakcje obiektu
stworzonego na bazie klasy w aspekcie czasu trwania sekwencji zmian wartości
w czasie (stanu), jaki obiekt może przyjmować.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Model dojrzałości - 5 stopni

A
  1. Początkowy - proces jest nieprzewidywalny i słabo kontrolowany.
  2. Zarządzany jakościowo (powtarzalny) - organizacja reaguje dopiero, gdy
    wystąpią problemy (KPAs: zarządzanie wymaganiami, planowanie i
    śledzenie projektów tworzenia oprogramowania, zarządzanie dostawcami,
    zapewnienie jakości oprogramowania, zarządzanie konfiguracją).
  3. Zdefiniowany - organizacja jest proaktywna (KPAs: organizacja
    zorientowana procesowo, definicja procesów, program treningów,
    zarządzanie integracją oprogramowania, inżynieria tworzenia
    oprogramowania, koordynacja międzygrupowa, przeglądy dokumentacji).
  4. Zarządzany ilościowo - proces jest mierzalny i kontrolowany (KPAs:
    pomiary i analiza procesów, zarządzanie jakością, zapobieganie defektom).
  5. Optymalizowany - wysiłki organizacji są ukierunkowane na ciągłe
    doskonalenie (KPAs: innowacje technologiczne, zarządzanie zmianami
    procesów).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

SMD/SDLC

A

Ustandaryzowany zbiór procedur i
procesów stosowany podczas rozwiązywania problemów wynikłych w trakcie
projektowania i wdrażania oprogramowania traktowanego jako nieodłączna
część określonego systemu informatycznego nazywamy metodyką rozwoju
oprogramowania SDM (ang. Software Development Methodology) albo cyklem
rozwoju systemów informatycznych SDLC (ang. System Development Life
Cycle).

32
Q

Metodyka

A

jest ustandaryzowanym dla wybranego obszaru
wiedzy/nauki podejściem do rozwiązywania właściwych problemów.
Metodyki abstrahują od merytorycznego kontekstu danego obszaru, a
skupiają się na metodach realizacji zadań związanych z zarządzaniem
projektem informatycznym.

33
Q

Składniki metodyki

A

 formalizmy, modele opisu rzeczywistości (dziedziny problemu), jej
statyki i dynamiki;
 strukturalizacja procesu (cykl życia);
 szczegółowe metody i techniki dokumentowania;
 narzędzia;
 wymagania merytoryczne wobec poszczególnych twórców;
 kryteria oceny jakości projektu i systemu;
 zasady planowania i kierowania rozwojem systemu.

34
Q

Proces biznesowy lub metoda biznesowa

A

Seria powiązanych ze sobą działań lub zadań, które rozwiązują określony
problem lub prowadzą do osiągnięcia określonego efektu.
Wymagane cechy procesu biznesowego:
 Definiowalność: Proces powinien mieć jasno zdefiniowane granice, wejście
i wyjście.
 Porządek: Proces powinien składać się z działań uporządkowanych według
ich usytuowania w czasie i przestrzeni.
 Klient: Musi być odbiorca rezultatów procesu.
 Zwiększanie wartości: Transformacja w trakcie procesu powinna dawać
odbiorcy dodatkową wartość.
 Osadzenie: Proces nie może egzystować samodzielnie - musi być
wbudowany w strukturę organizacyjną.
 Wielofunkcyjność: Proces może, ale niekoniecznie musi, obejmować wiele
funkcji.

35
Q

Proces (model) kaskadowy

A

W opracowywaniu kaskadowym wynik jednego etapu staje się wejściem dla
następnego, przy czym nie ma powrotu do poprzedniego etapu, tak jak pokazuje
to rysunek 4.3. W procesie opracowywania kaskadowego wymagania są szczegółowo przedstawione a następnie te uzgodnione wymagania są przekazywane
projektantowi. Projektant tworzy projekt, po czym przekazuje go programiście
do implementacji. Z kolei programista udostępnia kod osobie zajmującej się
kontrolą jakości, która sprawdza jego działanie i prezentuje go klientowi. Ścisła interpretacja modelu kaskadowego traktuje poszczególne fazy jako
niezależne etapy realizacji przedsięwzięcia. Według tej interpretacji
poszczególne etapy nie nakładają się na siebie (ich wykonanie przebiega
sekwencyjnie - bez procesów iteracyjnych). W rzeczywistości proces ten ma
charakter iteracyjny (w postaci powrotów do wcześniejszych faz modelu w
przypadku wykrycia błędów powstałych w tychże fazach) i przyrostowy (w
każdej fazie nawrotu następuje wzbogacenie modelu).

36
Q

Proces (model) iteracyjny

A

Opracowywanie iteracyjne rozpoczyna się od koncepcji (idei) obrazującej
system. W miarę poznawania szczegółów ta koncepcja podlega ewolucji – może
się rozrastać. Gdy wymagania są już dobrze określone, rozpoczyna się faza projektowania. Pracując nad projektem zaczynamy tworzyć prototyp, a następnie
wstępną implementację produktu. Zagadnienia pojawiające się podczas opracowywania programu wpływają na zmiany w projekcie i mogą nawet wpłynąć na
zrozumienie wymagań. Co najważniejsze, projektujemy i implementujemy
jedynie części pełnego produktu, powtarzając na przemian fazy projektowania i
implementacji. Chociaż kroki tego procesu są naprzemiennie powtarzane, jednak
bardzo trudno jest opisać je na rysunku w sposób cykliczny. Na diagramach
przedstawiane są w sposób uproszczony, sekwencyjny: koncepcja początkowa,
analiza, projektowanie, implementacja, testowanie, wdrożenie. W rzeczywistości
podczas tworzenia pojedynczego produktu wiele razy przechodzimy przez każdy
z tych etapów.

36
Q

Główne etapy testowania

A

Analiza dokumentacji
Testy systemowe
Testy integracyjne
Testy regresji

37
Q

Prototypowanie - cele

A

wykrycie nieporozumień pomiędzy klientem a twórcami systemu
wykrycie brakujących funkcji systemu
wykrycie trudnych do zaimplementowania usług
wykrycie braków w specyfikacji wymagań

38
Q

GRAPPLE - 5 części

A
  1. Identyfikacja problemu, zbieranie wymagań — na tym etapie
    identyfikujemy i opisujemy problem podlegający rozwiązaniu.
  2. Analiza — jest procesem dogłębnego zrozumienia i zdefiniowania
    problemu. W fazie tej określamy środki, które będą potrzebne w celu
    rozwiązania problemu. Wynikiem fazy analizy jest specyfikacja systemu,
    zawierająca opis wszystkich (lub większości) jego funkcji.
  3. Projektowanie — na tym etapie dopracowujemy szczegóły. Po fazie
    analizy znane są już wszystkie żądane funkcje systemu, teraz tworzymy
    szczegółowy projekt każdego rozwiązania, opisujemy zależności między
    modułami, sposoby wywoływania funkcji. W fazie tej projektujemy też
    wygląd formularzy, rozmieszczenie elementów sterujących, diagnozujemy
    możliwe przypadki użycia.
  4. Kodowanie — tworzymy kod programu na podstawie wcześniej
    stworzonych diagramów klas, aktywności, interfejsu użytkownika itp.
  5. Wdrożenie — aplikacja jest testowana w odpowiednim środowisku
    sprzętowo-programowym oraz integrowana ze współpracującymi
    systemami
39
Q

XP – Programowanie ekstremalne

A
  • Stawianie programisty, a nie analityka systemowego i projektanta, w centrum
    zainteresowania,
  • Korzystanie z wzorców architektonicznych, projektowych oraz idiomów,
  • Uznanie kodu za dokumentację projektu,
  • Ścisła współpraca programistów z klientem (przyszłym użytkownikiem).
40
Q

XP czteroetapowy model przetwarzania informacji:

A
  1. Określ cel,
  2. Wykonaj działanie,
  3. Odbierz informacje zwrotna,
  4. Skoryguj działanie tak, aby kolejny efekt był bliższy sukcesowi
41
Q

Test-Driven Development

A

Test-Driven Development jest techniką tworzenia oprogramowania polegającą
na stworzeniu w pierwszej kolejności testu jednostkowego, a następnie
implementacji kodu.

42
Q

Główne zasady TDD

A

Najważniejszym aspektem TDD jest okres czasu, który dzielimy na trzy części:
W pierwszej kolejności piszemy test, następnie implementujemy kod tak, aby
poprawnie przechodził test, a na końcu wykonujemy refaktoryzację. Taki cykl
nazywamy cyklem Red-Green-Refactor.
Testy jednostkowe powinny by¢ pisane przez osoby implementujące
funkcjonalności.

43
Q

Agile

A

Wiele iteracji cyklu Planowanie-Analiza-Implementacja-Testowanie-Wdrożenie

44
Q

.a. SCRUM

A

podejście holistyczne w wytwarzaniu innowacyjnych produktów.
zestaw praktyk stosowanych w zwinnym zarządzaniu projektami, które
kładą nacisk na codzienną komunikację i elastyczną ponowną ocenę
planów, które są realizowane w krótkich, iteracyjnych fazach pracy.

45
Q

MDA - cztery warstwy

A
  • Computation-Independent Model (CIM) – model dziedzinowy, nie pozostający w ścisłej relacji z technologia informatyczną; model biznesowy – zbiór powiązanych ze sobą działań lub zadań, które rozwiązują określony problem lub prowadzą do osiągnięcia określonego efektu. model biznesowy często jest opisywany diagramami czynności.
  • Platform-Independent Model (PIM) – abstrakcyjna, niezależna od platformy systemowej i programistycznej specyfikacja systemu wykorzystująca metamodel;
  • Platform-Specific Model (PSM) – model odwzorowany na konkretne rozwiązania wybranej platformy systemowej i programistycznej;
  • Code – automatycznie generowany kod niskopoziomowy (np. kod Object
    Pascala, Javy, C#, C++).
46
Q

Model-View-Controller

A

 Model (ang. Model) - element odpowiedzialny za obsługę warstwy
opisującej dziedzinę problemu.
 Widok (ang. View) - element odpowiedzialny za obsługę warstwy
prezentacji.
 Kontroler (ang. Controller) - element odpowiedzialny za obsługę
żądań przychodzących od użytkowników.

47
Q

MVC jako wzorzec złożony

A

Widok – Kompozyt: umożliwia tworzenie i pracę z zagnieżdżonymi
widokami,
 Model i Widok – Obserwator: umożliwia powiadamianie widoku przez
model o zmianie stanu (aktywny model),
 Widok i kontroler – Strategia: widok pozostawia obsługę reakcji na
zdarzenia wejściowe w gestii konkretnych implementacji kontrolera.

48
Q

Model-View-Presenter

A

Model jest modelem danych (z dziedziny problemu) jakie maja być
prezentowane.
 IView jest interfejsem widoku.
 ViewImplementation czyli implementacja Widoku to ogólnie mówiąc jest
tym co widzi użytkownik (interfejsem użytkownika).
 Presenter jest łącznikiem pomiędzy Widokiem i Modelem. Kiedy zajdzie
jakieś zdarzenie w Widoku (np. kliknięcie przycisku) to obsługa zdarzenia
jest delegowana do Prezentera. Prezenter wykonuje odpowiednie operacje
używając do tego celu danych z Modelu. Następnie odpowiednio uaktualnia
Widok. Uogólniając – logika działania GUI (UI) zawiera się w Prezenterze.

49
Q

Model-View-ViewModel

A

Wzorzec MVVM, jak składa się z 3 elementów:
 Model,
 View (widok),
 ViewModel – model przystosowany do współpracy z widokiem.

50
Q

Metodyki wytwarzania oprogramowania - typowe etapy

A

-analiza wymagań
(- wizja systemu
- wymagania funkcjonalne, wymagania wydajnościowe…
- przypadki użycia, scenariusze…
- FURPS+)
- projektowanie (architektura, design) (- podejmowanie kluczowych decyzji
- UML, modele, diagramy…)

  • development / implementacja
  • testowanie (- testy manualne
  • testy automatyczne)
  • wdrożenie / utrzymanie
51
Q

Proces kaskadowy (waterfall)

A
  • dzisiaj w zasadzie już tylko teoria
    • brzmi dobrze na papierze, nie sprawdza się w praktyce
    • nacisk na zakończenie jednego etapu przed rozpoczęciem kolejnego
52
Q

Poces iteracyjny / ewolucyjny / przyrostowy

A
  • programowanie zwinne (agile)
53
Q

SCRUM

A
  • małe zespoły
    • samo-organizacja
      • zespół musi posiadać wszystkie kompetencje potrzebne do zrealizowania projektu
      • brak typowego managera - zespół sam organizuje sobie pracę, rozdziela zadania itd.
    • sprinty (iteracje)
      • krótkie - tydzień, dwa, max cztery
      • planowanie sprintu (na początku iteracji)
      • daily standup (15 minut)
      • podsumowanie, retrospekcja…
    • product owner
    • scrum master
    • product backlog
    • sprint backlog
54
Q

Realizacja

A

Strzałka również ma trójkątny, niezamalowany grot, ale linia jest przerywana. Grot znajduje się po stronie interfejsu.

55
Q

SOLID

A
  • Single Responsibility Priniciple
  • Open/Closed Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle
56
Q

Przypadek testowy

A

zbiór danych wejściowych, wstępnych
warunków wykonania, oczekiwanych rezultatów i końcowych warunków
wykonania opracowany w określonym celu lub dla warunku testowego,
jak wykonanie pewnej ścieżki programu lub zweryfikowanie zgodności z
konkretnym wymaganiem

57
Q

RODZAJE TESTÓW (ze względu na fazę)

A
  1. testy jednostkowe,
  2. integracyjne,
  3. funkcjonalne,
  4. systemowe,
  5. akceptacyjne.
58
Q

Testy jednostkowe

A

są bezpośrednio związane z pisanym kodem – testują jego
małe, niepodzielne fragmenty. O określeniu czym są w danym
projekcie te moduły decyduje często sam programista, ponieważ
to do jego obowiązków należy wykonywanie testów
jednostkowych. W większości przypadków są to funkcje lub
metody w klasach, rzadziej całe klasy.

59
Q

Testy integracyjne

A

sprawdzają czy kilka
modułów współgra ze sobą w kodzie w prawidłowy sposób i czy
interakcje pomiędzy integrowanymi modułami (czasem
systemami) nie skutkują nieprzewidzianymi błędami. Testowane
są przeważnie interfejsy lub konfiguracja systemu.

60
Q

Testy funkcjonalne

A

Mają na celu ocenę
spełnienia wymagań określonych w trakcie projektowania
systemu i poprawności działania poszczególnych funkcjonalności,
jeszcze zanim staną się częścią całego systemu. Są one
wykonywane w stylu testów czarnej skrzynki, - sprawdzają
wyłącznie poprawność wyniku działania danej funkcjonalności;
nie jest brany pod uwagę wewnętrzny mechanizm
odpowiadający za daną funkcjonalność. Dla funkcjonalności
działających jak maszyna stanów buduje się w dokumentacji
tablice decyzyjne i na ich podstawie przeprowadza testy. Dla
reszty określa się klasy równoważności (zbiory danych, których
użycie skutkuje takim samym rezultatem) i wartości brzegowe.

61
Q

Testy systemowe

A

przeprowadzane są już na
kompletnym, w pełni zintegrowanym systemie i sprawdzają
zgodność systemu z założeniami. Na tym etapie testuje się
powstały system w rzeczywistym środowisku, bez symulatorów.

62
Q

Testy akceptacyjne

A

to ostatni etap testów,
często wykonywany przez klienta, który sprawdza czy produkt
końcowy spełnia oczekiwania i wymagania. Na tym etapie
wykonywane są scenariusze symulujące wykorzystanie systemu
przez użytkownika końcowego. Rozróżniamy wśród nich w
szczególności testy alfa i beta (ang. alpha testing, beta testing),
gdzie w
 testach alfa scenariusze są wykonywane przez testerów, którzy
są częścią zespołu tworzącego oprogramowanie, natomiast w
fazie
 testów beta niezupełnie gotowy produkt jest oddawany w ręce
prawdziwych użytkowników, którzy mogą zgłaszać błędy
twórcom.

63
Q

RODZAJE TESTÓW (Ze względu na rodzaj)

A

testy regresji
testy wydajnościowe
testy statystyczne
testy bezpieczeństwa
testy białej skrzynki
testy czarnej skrzynki
testy end-to-end
testy dostępności
testy eksploracyjne
testy dymu
testy poczytalności
fuzz testing

64
Q

Testy regresji

A

weryfikacja, czy po
nowowprowadzonych do systemu zmianach (refactoring ?), inne jego
elementy (do tej pory działające) nie uległy awarii. Skutkiem tych
zmian może być błędne działanie innej funkcji programu, która w
poprzednich wersjach działała prawidłowo. Wykonywanie testów
regresji związane jest z ponownym uruchomieniem zestawu testów,
które wcześniej kończyły się poprawnie.

65
Q

testy wydajnościowe

A

mierzenie
wydajności budowanego systemu w różnych kontekstach, obserwuje
się między innymi pamięć, procesor, statystyki połączeń,

66
Q

testy statystyczne

A

badanie niezawodności systemu na podstawie
miar takich, jak: prawdopodobieństwo wystąpienia błędu,
częstotliwość występowanie błędu, czas dostępności systemu,

67
Q

testy bezpieczeństwa

A

zwane także
testami penetracyjnymi, to symulowane ataki na testowany system,

68
Q

testy białej skrzynk

A

– sposób testowania, w
którym uwzględnia się znajomość wewnętrznego działania
komponentów systemu (czasem oznacza to także znajomość kodu),

69
Q

testy czarnej skrzynk

A

sposób testowania,
w którym nie uwzględnia się wiedzy na temat wewnętrznego działania
komponentów systemu, a bierze pod uwagę jedynie wynik testowania
i stan lub działania początkowe,

70
Q

testy end-to-end

A

wykonywanie pełnych
scenariuszy przypadków użycia od początku do końca,

71
Q

testy dostępności

A

testy dostępności
treści dla osób niepełnosprawnych (przeprowadzane m.in. na aplikacjach
webowych),

72
Q

testy eksploracyjne

A

nieformalne testy oparte na doświadczeniu
testera, niezwiązane z dokumentacją dotyczącą planowanych testów,

73
Q

testy dymu

A

– typ testów regresji, polegający na
wstępnych, powierzchownych testach ujawniających niepowodzenia na
tyle kluczowe, aby odrzucić testowaną wersję oprogramowania,

74
Q

testy poczytalności

A

– typ testów regresji, które są
bardziej rozbudowane od testów dymu i sprawdzają szerszy zakres
funkcjonalności, ale wciąż są płytsze niż typowe testy regresji – mają za
zadanie sprawdzić czy warto poświęcać zasoby na dogłębne testowanie
(np. przed wyborem wersji kandydującej do wydania),

75
Q

fuzz testing

A

technika, w której dostarcza się nieprawidłowe lub
losowe dane wejściowe i monitoruje pojawianie błędów, testy są
zautomatyzowane,