Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 1
Inżynieria systemów
komputerowych
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 2
Plan wykładu
Właściwości systemów
Systemy i ich środowiska
Proces inżynierii systemów
Podsumowanie
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 3
Inżynieria systemów
komputerowych
•
Inżynieria systemów to
czynność specyfikowania,
projektowania,
implementowania,
weryfikowania, wdrażania i
pielęgnacji systemów
postrzegana jako całość.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 4
Co to jest system?
•
System jest celową kolekcją powiązanych ze
sobą komponentów, które współpracują, aby
osiągnąć pewien cel.
•
Bardzo prosty system, na przykład pióro, jest
zrobiony z trzech lub czterech komponentów
sprzętowych.
•
System kontroli lotów składa się z tysięcy
komponentów programowych i sprzętowych
oraz użytkowników, którzy podejmują decyzje
na podstawie informacji otrzymanej z systemu.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 5
Oprogramowanie, a inżynieria
systemowa
•
Wzrasta rola oprogramowania np. w
powszechnie stosowanych urządzeniach
elektronicznych.
•
Ogólnie rzecz biorąc problemy
inżynierii systemów są podobne do
problemów inżynierii
oprogramowania.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 6
Właściwości
systemów
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 7
Właściwości systemów
•
Systemy charakteryzują się tym, że
właściwości i zachowania ich
komponentów są nierozerwalnie ze sobą
splecione.
•
Poprawne działanie każdego z komponentów
systemu zależy od funkcjonowania kilku
innych komponentów.
•
Złożone zależności między komponentami
systemu oznaczają, że system jest czymś
więcej niż tylko sumą swoich części.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 8
Przykłady właściwości
systemów
•
Niezawodność systemu
•
zależy od niezawodności komponentów systemu i
związków między nimi.
•
Użyteczność systemu
•
jest bardzo złożoną właściwością, która nie zależy
jedynie od oprogramowania i sprzętu, ale także od
operatorów systemu i środowiska, w którym się go
używa .
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 9
Typy pojawiających się
właściwości:
•
Właściwości niefunkcjonalne,
•
takie
jak
niezawodność,
efektywność,
bezpieczeństwo i zabezpieczenia
są związane z
zachowaniem systemu w jego środowisku pracy. Często
są zasadnicze dla systemów komputerowych, ponieważ
niepowodzenie w osiągnięciu pewnego zdefiniowanego
minimalnego ich poziomu może sprawić, że
system
będzie bezużyteczny
.
•
Właściwości funkcjonalne,
•
które są widoczne, gdy wszystkie części systemu
współpracują, aby osiągnąć pewien cel. Rower ma na
przykład cechę funkcjonalną bycia środkiem transportu,
gdy scali się go z jego części.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 10
•
Niezawodność jest złożonym pojęciem, które zawsze
należy badać na poziomie systemu, a nie jego
poszczególnych komponentów.
•
Komponenty w systemie są od siebie zależne, a
zatem awarie w jednym z nich mogą przenosić się na
cały system i mieć wpływ na operacje innych systemów.
•
Często projektanci systemu nie są w stanie
przewidzieć, jak konsekwencje awarii przenoszą się
na cały system
•
Nie mogą zatem podać wiarygodnych oszacowań
niezawodności systemu.
Niezawodność systemu
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 11
•
Niezawodność sprzętu
•
Jakie jest prawdopodobieństwo awarii komponentu
sprzętowego i jak długi jest czas jego naprawy?
•
Niezawodność oprogramowania
•
Jakie jest prawdopodobieństwo wytworzenia przez
komponent programowy błędnych danych wyjściowych?
Awarie oprogramowania istotnie różnią się od awarii
sprzętu, ponieważ oprogramowanie nie zużywa się.
•
Niezawodność operatora
•
Jakie jest prawdopodobieństwo błędu operatora systemu?
Czynniki wpływające na niezawodność
całego systemu
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 12
Systemy i ich
środowiska
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 13
Systemy i ich środowiska
•
Systemy nie są niezależnymi bytami, ale
istnieją w pewnym środowisku.
•
Środowisko to ma wpływ na
funkcjonowanie i efektywność systemu.
•
Czasem środowisko można uważać za
system sam w sobie.
•
W ogólniejszym wypadku składa się ono z
pewnej liczby oddziałujących na siebie
systemów.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 14
Hierarchia systemów
System System
System zsypów
zabezpieczeń
oświetlenia
na śmieci
System System
System wodno-
ogrzewania
energetyczny
kanalizacyjny
Miasto
Ulica
Budynek
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 15
Proces inżynierii
systemów
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 16
Proces inżynierii systemów
•
Interdyscyplinarna zawiłość
•
Wiele różnych dziedzin inżynierii wchodzi w skład
inżynierii systemów.
•
Ograniczona możliwość modyfikacji w
trakcie tworzenia systemu.
•
Jedną z przyczyn znaczenia oprogramowania w
systemach jest jego elastyczność.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 17
Proces inżynierii systemów
Definicja
wymagań
Projektowanie
systemu
Tworzenie
podsystemów
Integracja
systemu
Instalacja
systemu
Ewolucja
systemu
Likwidacja
systemu
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 18
Interdyscyplinarna zawiłość inżynierii
systemów
Inżynieria
oprogramowania
Inżynieria
elektroniczna
Inżynieria
mechaniczna
Inżynieria
strukturalna
Inżynieria
systemu
kontroli lotów
Projektowanie
interfejsu
użytkownika
Inżynieria
lądowa
Inżynieria
elektryczna
Architektur
a
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 19
Definicja wymagań
systemowych
•
Trzy rodzaje wymagań
•
Abstrakcyjne wymagania funkcjonalne:
podstawowe
funkcje, które system ma wypełniać są definiowane na
wysokim poziomie abstrakcji.
•
Właściwości systemu:
są to niefunkcjonalne, pojawiające
się właściwości systemu.
•
Cechy, których system ma nie mieć:
czasem
wyspecyfikowanie tego, czego systemowi nie wolno robić,
jest tak samo ważne, jak określenie tego, co system powinien
robić.
•
Ważną częścią fazy definicji wymagań jest ustalenie
zbioru ogólnych celów, które system ma osiągnąć.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 20
Cele systemu
•
Funkcjonalność systemu
•
Dostarczyć antywłamaniowy i przeciwpożarowy
system alarmowy biurowca, który na zewnątrz i we
wnętrzu wyemituje ostrzeżenie o pożarze lub
włamaniu.
•
Cele organizacyjne
•
Zapewnić, aby normalna praca w biurowcu nie była
poważnie zakłócona przez pożary i włamania.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 21
Proces projektowania
systemu
Podziel
wymagania
Zdefiniuj interfejsy
podsystemów
Przypisz wymagania
podsystemom
Zidentyfik
uj
podsystem
y
Określ funkcjonalność
podsystemów
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 22
Trudności przy
projektowaniu
•
Objęcie wymaganiami całego zakresu
rozwiązań z rożnymi kombinacjami
sprzętu, oprogramowania i pracy ludzkiej.
•
Oczekiwanie, ze system będzie od razu
funkcjonował bez zarzutu.
•
Czynniki natury organizacyjnej i
politycznej mają istotny wpływ na wybór
rozwiązania.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 23
Tworzenie podsystemów
•
W czasie tworzenia podsystemów
implementuje się podsystemy
zidentyfikowane w trakcie projektowania.
•
Proces tworzenia
rzadko będzie polegał na
budowie wszystkich podsystemów od zera
.
Na ogół część podsystemów będzie jednak
komercyjnymi systemami z półki (zakupionymi
w celu integracji z naszym systemem).
•
Różne podsystemy są zwykle tworzone
równolegle.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 24
•
Z powodów technicznych i menedżerskich najlepiej
jest jednak integrować przyrostowo, tzn. w
jednym kroku jest integrowany jeden system.
•
Zwykle nie da się ustalić harmonogramów
budowania wszystkich podsystemów tak, aby
kończyły się w tym samym czasie.
•
Integracja przyrostowa zmniejsza koszty
wykrywania błędów.
•
Awarie podsystemów , które są konsekwencjami
niewłaściwych założeń o innych podsystemach, są
zwykle wykrywane w trakcie integracji systemu.
Integracja systemu
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 25
•
Środowisko, w którym system ma być
zainstalowany, jest inne niż to, które
zakładali twórcy systemu.
•
Potencjalni użytkownicy systemu mogą być
wrogami jego wprowadzenia.
•
Nowy system ma koegzystować z
istniejącym systemem do czasu przekonania
firmy, że nowy system pracuje poprawnie.
•
Mogą wystąpić fizyczne problemy z
instalacją.
Problemy instalacji
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 26
•
Uruchomienie systemu może wymagać
organizacji sesji szkoleniowych dla
operatorów i zmiany normalnego toku pracy.
•
Nie wykryte problemy mogą pojawić się w tej
fazie, ponieważ specyfikacja systemu mogła
zawierać błędy i opuszczenia.
•
Współpraca nowego systemu z istniejącymi już
systemami
•
Niekompatybilność
•
Zwiększenie liczby błędów operatora, poprzez mylenie
poleceń dostępnych w różnych interfejsach.
Działanie systemu
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 27
Ewolucja systemu
•
Czas życia wielkich złożonych systemów jest bardzo
długi. W trakcie swego działania systemy te muszą
ewoluować.
•
Ewolucja oprogramowania jest ze swej natury
kosztowna
•
Proponowane zmiany muszą być bardzo starannie
rozważone z punktu widzenia przedsiębiorstwa i technologii.
•
Podsystemy nigdy nie są całkowicie niezależne.
•
Przyczyny pierwotnych decyzji projektowych zwykle nie są
zapisywane.
•
W miarę starzenia się systemu jego struktura staje się coraz
bardziej skomplikowana przez zmiany.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 28
Zaopatrywanie w system
•
Klientami kupującymi złożone systemy
komputerowe są zwykle duże
przedsiębiorstwa, np. instytucje wojskowe,
rządowe i służby ratownicze.
•
System może być kupiony jako całość, a także
jako zestaw oddzielnych części, które potem
się integruje, specyficznie projektuje i wytwarza.
•
W wypadku wielkich systemów podjęcie decyzji,
którą z tych opcji wybrać, może trwać
miesiące, a nawet lata.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 29
Proces zaopatrywania w
system
Zaadaptuj
wymagania
Wybierz
system
Wyślij zapytanie ofertowe
Wybierz
ofertę
Negocjuj kontrakt
Podpisz
kontrakt
na
budowanie
Wybierz
dostawcę
Ogłoś przetarg
Zbadaj rynek w
poszukiwaniu
istniejących systemów
Systemy z
półki
są dostępne
Wymagany jest
system
na zamówienie
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 30
Problemy zaopatrywania
•
Komponenty z półki zwykle nie spełniają
wymagań idealnie, chyba że napisano te
wymagania z myślą o tych właśnie komponentach.
•
Gdy system będzie budowany na zamówienie,
specyfikacja wymagań jest podstawą
kontraktu zamawianego systemu.
•
Po wybraniu wykonawcy systemu następuje okres
negocjacji kontraktu, w trakcie którego
uzgadnia się dalsze zmiany wymagań i omawia
różne sprawy, np. koszt zmian.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 31
Model wykonawca -
podwykonawca
Klient potrzebujący systemu
Generalny
wykonawca
Podwykonawca
1
Podwykonawca
2
Podwykonawca
3
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 32
Podsumowanie
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 33
•
Inżynieria systemów jest złożonym i
trudnym procesem, który wymaga wkładu
pracy specjalistów wielu dziedzin inżynierii.
•
Pojawiające się właściwości systemu są
charakterystykami systemu jako całości, a
nie jego części składowych.
•
Architektury systemów zwykle prezentuje
się na diagramach blokowych,
przedstawiających główne podsystemy i
związki między nimi.
Ian Sommerville Inżynieria oprogramowania WNT 2003 Rozdz. 2
Slajd 34
•
Typami komponentów funkcjonalnych systemu są
komponenty detektorowe, komponenty
obliczeniowe, komponenty koordynujące,
komponenty komunikacyjne i komponenty
interfejsu.
•
Proces inżynierii systemów obejmuje specyfikację,
projektowanie, tworzenie, integrację i testowanie.
•
Proces zaopatrywania w system obejmuje specyfikację
systemu, ogłoszenie przetargu, wybór dostawcy i
zawarcie kontraktu na dostawę systemu.