Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.1
Wykład 3
Wymagania
MIS-1-505-n In˙zynieria oprogramowania
Pa´zdziernik 2014
Kazimierz Michalik
Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.2
Agenda
1
Przypomnienie: proces produkcji: czynno ´sci i modele
2
Wymagania stawiane oprogramowaniu
3
4
5
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.3
Czynno ´sci w czasie produkcji oprogramowania.
In˙zynieria oprogramowania stara si ˛e zidentyfikowa´c i opisa´c
podstawowe fazy tworzenia i funkcjonowania oprogramowania,
a tak˙ze wskaza´c model optymalnego przebiegu tych faz.
Co mo˙zna robi ´c w czasie tworzenia oprogramowania?
Planowanie (w tym opracowanie wymaga ´n).
Implementacja.
Testowanie.
Dokumentowanie.
Wdro˙zenie.
Utrzymanie (konserwacja).
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.4
Ogólny schemat.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.5
Wymagania funkcjonalne i niefunkcjonalne.
Wymagania funkcjonalne
S ˛
a stwierdzeniami, jakie usługi ma oferowa´c system, jak ma
reagowa´c na okre´slone dane wej´sciowe oraz jak ma si ˛e
zachowywa´c w okre´slonych sytuacjach. Opisuj ˛
a
funkcjonalno´s´c lub usługi, które system powinien oferowa´c.
Wymagania niefunkcjonalne
Ograniczenia usług i funkcji systemu. Obejmuj ˛
a ograniczenia
czasowe, ograniczenia procesu tworzenia, standardy itd. Mog ˛
a
by´c zwi ˛
azane z wła´sciwo´sciami systemu (niezawodno´s´c, czas
reakcji, zaj ˛eto´s´c pami ˛eci itd.), definiowa´c ograniczenia systemu
itp. Nie dotycz ˛
a bezpo´srednio funkcji systemu.
Wymagania dziedzinowe.
Pochodz ˛
a z dziedziny zastosowania systemu i odzwierciedlaj ˛
a
jej charakterystyk˛e. Mog ˛
a mog ˛
a by´c funkcjonalne lub
niefunkcjonalne.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.6
Wymagania u˙zytkownika.
Wymagania u˙zytkownika
Wyra˙zanie w j ˛ezyku naturalnym oraz diagramy o usługach
oczekiwanych od systemu oraz o ograniczeniach, w których
system ma działa´c.
do´s´c wysoki poziom abstrakcji
nie powinny z góry definiowa´c rozwi ˛
aza ´n
powinno da´c si ˛e spełni´c takie wymagania korzystaj ˛
ac z
ró˙znych podej´s´c
wymagaj ˛
a u´sci´slenia
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.7
Wymagania systemowe.
Wymagania systemowe
Szczegółowo ustalaj ˛
a usługi systemu i ograniczenia.
Dokumentacja wymaga ´n systemowych (specyfikacja
funkcjonalna) powinna by´c precyzyjna. Mo˙ze słu˙zy´c jako
kontrakt mi ˛edzy nabywc ˛
a systemu a wytwórc ˛
a.
Specyfikacja projektu oprogramowania.
Abstrakcyjny opis projektu oprogramowania, który jest
podstaw ˛
a bardziej szczegółowego projektu i implementacji.
Poszerza specyfikacj ˛e wymaga ´n systemowych.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.8
Dokumentacja wymaga ´
n (IEEE/ANSI 830-1993)
1
Wst ˛ep.
2
Ogólny opis.
1
Wizja produktu.
2
Funkcje produktu.
3
Charakterystyka u˙zytkowników.
4
Ogólne ograniczenia.
5
Zało˙zenia i zale˙zno´sci.
3
Szczegółowe wymagania.
Wymagania funkcjonalne, niefunkcjonalne, interfejsy etc.
Najbardziej istotna cz ˛e´sci dokumentu. Definicja jak powinna
wygl ˛
ada´c ta cz ˛e´s´c nie jest zalecana, poniewa˙z mocno zale˙zy
do praktyki w firmie i dziedziny zagadnie ´n.
4
Dodatki.
5
Skorowidz.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.9
In˙zynieria wymaga ´
n.
In˙zynieria wymaga ´
n.
Proces, który obejmuje wszystkie czynno´sci niezb ˛edne do
opracowania i aktualizacji dokumentacji wymaga ´n
systemowych.
4 główne czynno´sci:
1
Studium wykonalno´sci.
2
Okre´slenie i analizowanie wymaga ´n.
3
Specyfikowania i dokumentowanie wymaga ´n.
4
Zatwierdzanie wymaga ´n.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.10
Studium wykonalno ´sci.
Studium wykonalno ´sci.
Krótki, skumulowane opracowanie, w którym staramy si ˛e
odpowiedzie´c na pytania:
1
Czy system przyczyni si ˛e do realizacji ogólnych celów
(przedsi ˛ebiorstwa)?
2
Czy system mo˙ze by´c zaimplementowany z u˙zyciem
dost ˛epnych technologii, w ramach ustalonego bud˙zetu i
ogranicze ´n czasowych?
3
Czy system mo˙ze by´c zintegrowany z istniej ˛
acymi
systemami, które ju˙z zainstalowano?
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.11
Okre ´slenie i analiza wymaga ´
n.
Rozpoznanie dziedziny
Analitycy musz ˛
a zrozumie´c dziedzin ˛e
zastosowania.
Zbieranie wymaga ´n
Proces interakcji z uczestnikami systemu,
którego celem jest ujawnienie wymaga ´n.
Klasyfikacja
Podział na grupy.
Usuwanie sprzeczno´sci
Wymagania podane przez ró˙zne
grupy nieuchronnie b ˛edzie zawiera´c
sprzeczno´sci.
Nadawanie priorytetów
Interakcja z uczestnikami w celu
wskazania najwa˙zniejszych wymaga ´n w grupie.
Sprawdzanie wymaga ´n
Czy wymagania s ˛
a spójne i zgodne z
tym czego uczestnicy chc ˛
a od systemu.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.12
Zatwierdzanie wymaga ´
n.
Czy wymagania naprawd ˛e definiuj ˛
a system, którego chce
u˙zytkownik?
1
Sprawdzenie wa˙zno´sci.
2
Sprawdzenie niesprzeczno´sci.
3
Sprawdzenie kompletno´sci.
4
Sprawdzenie realno´sci.
5
Mo˙zliwo´s´c weryfikacji.
Metody sprawdzania wymaga ´n:
Przegl ˛
ad wymaga ´n.
Prototypowanie.
Generowanie testów.
Zautomatyzowane sprawdzanie niesprzeczno´sci.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.13
Zarz ˛
adzanie wymaganiami.
Zmiany gospodarcze, organizacyjne i technologiczne
nieuchronnie prowadz ˛
a do zmian wymaga ´n stawianych
oprogramowaniu.
Zarz ˛
adzanie wymaganiami to proces kierowania i
panowania nad tymi zmianami.
Proces zarz ˛
adzania wymaganiami obejmuje:
1
planowanie, w trakcie którego specyfikuje si ˛e proces
zarz ˛
adzania i zarz ˛
adzanie zmianami
1
Analiza problemu u specyfikacja zmiany.
2
Analiza zmiany i ocena kosztów.
3
Implementacja zmiany.
2
zarz ˛
adzanie zmianami, które polega na analizowaniu zmian
i szacowaniu ich wpływu
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.14
Co to s ˛
a modele?
Model systemu
Graficzna reprezentacja na której przedstawia si ˛e, problem do
rozwi ˛
azania i system do zbudowania.
bardziej zrozumiałe ni˙z szczegółowy opis wymaga ´n
etap po´sredni mi ˛edzy analiz ˛
a a projektowaniem
słu˙z ˛
a wypracowaniu lepszego zrozumienia systemu
mog ˛
a słu˙zy´c do zobrazowania systemu z ró˙znych punktów
widzenia:
1
Zewn ˛etrznego (modeluje si ˛e kontekst lub ´srodowisko
systemu).
2
Zachowania (modeluje si ˛e zachowanie systemu).
3
Strukturalnego (architektura systemu lub struktura danych).
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.15
Modele kontekstowe.
nale˙zy ustali´c granice systemu
rozró˙zni´c co jest systemem a co jego ´srodowiskiem
nale˙zy opracowa´c prosty model architektoniczny
opisuje si ˛e ´srodowisko systemu, nie współprac ˛e
system-otoczenie
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.16
Modele kontekstowe.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.17
Modele zachowania.
Model przepływu danych.
pokazuj ˛
a jak dane przepływaj ˛
a w sekwencji kroków
przetwarzania
jak dane podlegaj ˛
a przekształceniu
w modelu analitycznym "kroki"to przetwarzanie przez ludzi
i komputery
w dokumentacji projektowej"kroki"to funkcje/metody
programu
Model maszyn stanowych.
słu˙z ˛
a do opisywania zachowania systemu
jak reaguje na zewn ˛etrzne i wewn ˛etrzne bod´zce
zawiera stany(1) i zdarzenia (2), które powoduj ˛
a przej´scia
z jednego stanu do drugiego
nie obejmuje przepływu danych w ramach systemu
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.18
Diagram przepływu danych.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.19
Diagram stanów.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.20
Modele obiektowe.
mog ˛
a przedstawia´c sam system (diagramy struktur) jak i
jego działanie(diagramy zachowa ´n)
posługuj ˛
a si ˛e poj ˛eciem klasy i obiektu.
Klasa obiektu.
Abstrakcja zbioru obiektów, która identyfikuje ich wspólne
atrybuty (w znaczeniu modelu danych) oraz usługi i operacje
oferowane przez te obiekty.
Obiekt
Wykonywalna encja, posiadaj ˛
aca atrybuty i operacje klasy.
Egzemplarz klasy obiektów. Wiele obiektów mo˙ze powsta´c z
tej samej klasy.
na ogół modele analityczne s ˛
a po´swi ˛econe klasom
obiektów i ich zwi ˛
azkom
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.21
Modele obiektowe. Diagram hierarchii klas.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.22
Modele obiektowe. Diagram agregacji klas.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.23
Modele obiektowe. Diagram sekwencji.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.24
CASE.
Narz ˛edzia CASE.
Narz ˛edzia Computer Aided Software Engineering to zbiór
narz ˛edzi, które wspomagaj ˛
a konkretny etap procesu tworzenia
oprogramowania. Cz ˛esto ł ˛
aczone w jeden zestaw narz ˛edzi
(warsztat). Zestaw narz ˛edzi CASE do analizy i projektowania,
zawiera:
Edytory diagramów.
Narz ˛edzia do analizy i sprawdzania projektu.
J ˛ezyki zapyta ´n do repozytorium.
Słownik danych.
Narz ˛edzia do definiowania i generowania raportów.
Narz ˛edzia do definiowania formularzy.
Udogodnienia do importu i eksportu.
Generatory kodu.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.25
Prototypowanie w procesie tworzenie oprogramowania.
Prototypowanie ewolucyjne.
Celem jest dostarczenie u˙zytkownikowi działaj ˛
acego systemu.
Zaczyna si ˛e od tych wymaga ´n, które s ˛
a najlepiej rozpoznane i
maj ˛
a najwy˙zszy priorytet. Wymagania mniej jasne lub o
mniejszym priorytecie s ˛
a implementowane tylko gdy za˙z ˛
adaj ˛
a
tego u˙zytkownicy.
Prototypowanie z porzuceniem.
Celem jest zatwierdzenie lub dostarczenie wymaga ´n
systemowych. Zaczyna si ˛e od tych wymaga ´n, które nie s ˛
a
dobrze rozpoznane, aby dowiedzie´c si ˛e wi ˛ecej. Wymagania
oczywiste nie musz ˛
a podlega´c prototypowaniu.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.26
Metody błyskawicznego prototypowania.
Metody błyskawicznego prototypowania.
Metody tworzenia, których przeznaczeniem jest skrócenie
czasu dostarczania, a nie poprawa wła´sciwo´sci systemu
(efektywno´sci, niezawodno´sci itd...)
Istniej ˛
a trzy główne metody błyskawicznego prototypowania:
1
Tworzenie za pomoc ˛
a dynamicznych j ˛ezyków wysokiego
poziomu.
2
Programowanie baz danych.
3
Scalanie komponentów i programów u˙zytkowych.
Przypomnienie: proces
produkcji: czynno´sci i
modele
Wymagania stawiane
oprogramowaniu
3.27
Prototypowanie interfejsu u˙zytkownika.