Projektowanie oprogramowania
Wprowadzenie do
Jest to proces tworzenia, nauczyć się go
projektowania
można poprzez doświadczenie,
studiowanie istniejących systemów.
Kroki:
Studiowanie i zrozumienie problemu,
badanie problemu z różnych punktów
Dr inż. Ilona Bluemke
widzenia.
Szukanie wielu rozwiązań i ich ocena
(wady, zalety).
Opis każdej abstrakcji użytej w
rozwiązaniu.
2
Specyfikacja
wymagń
Architektura systemu
Czynności procesu projektowania
1. Projekt architektury - wyodrębnienie pod-
Specyf. oprogram.
1 2
systemów i ich relacji, dokumentacja
2. Specyfikacja abstrakcji - dla każdego
Specyf. interfejsu
podsystemu specyfikacja dostarczanych usług i
3
ograniczeń pracy
3. Projekt interfejsu dla każdego podsystemu,
Specyf. komponentu
4
dokumentacja
4. Projekt komponentu - usługi przyporządkowane
poszczególnym komponentom, projekt interfejsu
5 Specyf. danych
komponentu
5. Projekt struktur danych używanych w systemie
6
Specyf. algorytów
Specyf. algorytmów
6. Projekt algorytmów dostarczających usługi.
Czynności procesu Produkty procesu
projektowania projektowania
3 4
Jakość projektu
Metody projektowania
Nie ma obiektywnej metody stwierdzającej jaki
Rady, notacje prowadzące do powstania
projekt jest dobry.
projektu sensownego
"dobry" projekt to projekt:
podejście funkcjonalne, strukturalne
spełniający specyfikację,
System modelowany jako transformacje
pozwala na produkcję efektywnego kodu,
danych. Zaczyna się od wysokiego
posiada "pożądane" własności np. daje się łatwo
poziomu, stopniowo ulepsza się w projekt pielęgnować.
bardziej szczegółowy.
System daje się łatwo pielęgnować gdy:
podejścia obiektowe
jest spójny,
System widziany jako zbiór obiektów,
ma mało powiązań,
powiązanych relacjami. Obiekty
jest łatwo adaptowalny.
komunikują się przekazując komunikaty.
Mają atrybuty, zbiory operacji
5 6
1
Spójność (cohesion)
Silne powiązania
Komponent implementuje logiczną funkcję. Jego części
Systemy silnie powiązane
biorą udział w tej implementacji.
Poziomy spójności Constantine & Yourdon(1979): jednostki są zależne
przypadkowa,
jedna od drugiej np.
A B
logiczna (elementy wykonujące podobne funkcje są
pracują na wspólnych
zgrupowane w jednostce),
danych lub wymieniają
czasowa (elementy aktywowane w tym samym
czasie są zgrupowane w jednostce),
informacje sterujące
D C
proceduralna (elementy w jednostce tworzą
sekwencję sterującą),
komunikacyjna (elementy pracują na tych samych
danych wejściowych lub produkują dane wyjściowe),
sekwencyjna (wyjście jednego elementu jest
wejściem następnego),
funkcyjna (każda część jest konieczna do
wykonania funkcji jednostki).
7 8
Niski stopień zależności
Adaptowalność
Aatwość rozumienia (understandability)
Reprezentacji
Wykonując modyfikacje powinniśmy
informacji
rozumieć działanie jednostki systemu.
A
zamknięta w
Dla łatwości rozumienia istotne są:
jednostce.
złożoność jednostki (ale także nazwy ..)
Jeśli nie jest to jakość dokumentacji.
B C D
możliwe to dostęp Adaptowalność możliwa jeśli projekt jest:
dobrze udokumentowany,
do danych
spójny,
wspólnych poprzez
E
o niewielkim stopniu zależności między
odrębną jednostkę.
elementami.
9 10
Typy modeli
modelowanie
Pomaga zrozumieć funkcjonowanie,
Przetwarzania, procesów
ułatwia komunikację z użytkownikiem.
Kompozytowe pokazują budowę encji
Różne modele prezentują system z
Architektoniczne - pokazują pod-
różnych perspektyw:
systemy
Zewnętrzna pokazuje kontekst systemu,
Klasyfikacyjne - pokazują wspólne
otoczenie,
cechy encji
Behavioralna pokazuje zachowanie
systemu,
Zdarzeniowe - pokazują rekcję sytemu
Strukturalna architektura systemu,
na zdarzenia
danych.
11 12
2
Kompilator ujecie strukturalne Kompilator ujęcie obiektowe
Program zródłowy
Program zródłowy
token atom
Włóż symbol
Strumień Tablica
atomów symboli
Analizator Budowa Analizator Genarator
leksykalny Tab. Symb. składni kodu
Sprawdz
Daj symbol
Buduj Gramatyka
symbol
symbol kod wynikowy
wsk. błędów
Tab.Symb.
Drzewo
Komunikat o błędzie
Wyprowadz
składni
błędy
Generuj kod
komunikaty o błędach
Kod wynikowy
13 14
Modele architektury
Organizacja systemu
Dokumentują projekt architektoniczny
Podstawowe style organizacji systemu:
Statyczne modele strukturalne pokazują
Dzielone repozytorium
główne komponenty systemu.
Model dynamiczny pokazuje strukturę procesów Dzielone serwisy styl serwerowy
systemowych.
Warstwowa
Model interfejsów definiuje interfejsy
podsystemów.
Model relacji (zależności) np. przepływu danych
pokazuje zależności podsystemów
Model instalacyjny pokazuje, jak podsystemy
są rozmieszczone
15 16
Przykład architektury z repozytorium -
Model z repozytorium CASE
Podsystemy muszą wymieniać dane.
Metody:
Dane przechowywane są w centralnej bazie
danych repozytorium i dostęp do nich
mają wszystkie podsystemy.
Każdy podsystem ma własną bazę danych i
przekazuje je explicite do innych
podsystemów.
Przy dużych ilościach danych model z
repozytorium jest częściej używany.
17 18
3
Wady i zalety modelu z repozytorium Model klient - serwer
Zalety Model rozproszony, pokazujący jak
Efektywna metoda dzielenia dużych ilości danych
dane i przetwarzanie są rozproszone na
Podsystemy nie muszą wiedzieć jak dane są
różnych komponentach.
produkowane. Centralne mechanizmy zarządzania
np.backup, bezpieczeństwo, etc.
Zbiór samodzielnych serwerów
Dzielony model is publikowany jako schemat
dostarcza specyficznych usług np.
repozytorium.
Drukowanie, zarządzania danymi itd..
Wady
Podsystemy musza zgodzić się na model danych w
Zbiór klientów wywołujących usługi.
repozytorium. Konieczny kompromis;
Ewolucja danych jest trudna i kosztowna; Sieć, pozwalająca klientom na dostęp
Brak reguł zarządzania;
do serwerów.
Trudno jest efektywnie dystrybuować.
19 20
Biblioteka filmów: klient - serwer Wady i zalety modelu klient-serwer
Zalety
Prosta dystrybucja danych;
Efektywne wykorzystanie systemów sieciowych.
Aatwe dodawanie nowego serwera lub upgrade
istniejącego.
Wady
Brak modelu danych dzielonych wiec podsystemy
mają różną organizację danych. Wymiana danych
może być nieefektywna;
Redundancyjne zarządzanie w każdym serwerze;
Brak centralnego rejestru nazw i usług może być
trudne stwierdzenie jakie serwery i usługi są
dostępne.
21 22
Abstrakcyjne maszyny model
warstwowy Architektura warstwowa
Organizacja systemu jako zbioru
warstw (maszyn abstrakcyjnych).
Każda warstwa dostarcza zbioru usług.
Wspiera przyrostowy rozwój
podsystemów w różnych warstwach.
Zmiana interfejsu warstwy wpływa
tylko na warstwy przyległe.
Często jest trudno strukturalizować
system w ten sposób.
23 24
4
Style sterowania Zcentralizowane sterowanie
Podsystem sterowania jest odpowiedzialny za
Związane z przepływem sterowania
wykonanie innych podsystemów.
pomiędzy podsystemami. Różne od
Model Call-return
modelu dekompozycji.
Top-down model podprogramów, sterowanie
Scentralizowane sterowanie
rozpoczyna się w wierzchołku hierarchii
Jeden podsystem jest odpowiedzialny za
podprogramów i przesuwa się w dół. Nadaje się do
sterowanie, uruchamia, zatrzymuje inne
systemów sekwencyjnych.
podsystemy.
Model Manager
Sterowanie zdarzeniowe
Nadaje się do systemów równoległych. Jeden z
komponentów systemu steruje zatrzymaniem,
Każdy podsystem odpowiada na
uruchamianiem i koordynacją innych procesów
zewnętrznie generowane zdarzenia z
systemowych.
innych podsystemów lub z otoczenia.
25 26
Sterowanie w systemach czasu
Model call-return rzeczywistego
27 28
Systemy zdarzeniowe
Model rozgłaszania
Sterowane zewnętrznie generowanymi
Efektywne w integracji podsystemów na
zdarzeniami, pojawienie się zdarzenia nie jest
różnych komputerach w sieci.
kontrolowane przez system obsługujący
Podsystemy rejestrują zainteresowanie
zdarzenie.
pewnymi zdarzeniami. Jeżeli pojawia się
Modele systemów zdarzeniowych
zdarzenie, sterowanie jest przekazywane do
Model rozgłaszania (broadcast). Zdarzenie jest
rozgłaszane do wszystkich podsystemów. Dowolny podsystemu obsługującego je.
podsystem, który jest w stanie, może je obsłużyć;
Reguły sterownia nie są wbudowane w event i
Model sterowany przerwaniami. Używany w
message handler. Podsystemy decydują,
systemach czasu rzeczywistego, przerwania są
wykrywane przez interrupt handler i przekazane do które zdarzenia je interesują.
innych komponentów do obsługi.
Podsystemy nie wiedzą, czy i kiedy pojawi się
Inne systemy produkcyjne
zdarzenie do obsługi.
29 30
5
Systemy sterowane przerwaniami
Rozgłaszanie
Używane w systemach czasu
rzeczywistego gdzie potrzebna jest szybka
reakcja na zdarzenie.
Znane są typy przerwań, dla każdego
typu jest zdefiniowany program obsługi.
Każdy typ jest związany z określonym
miejscem w pamięci, sprzętowy
przełącznik przełącza do programu
obsługi.
Pozwala na szybką odpowiedz ale trudne
do oprogramowania i walidacji.
31 32
System sterowany przerwaniami
33
6
Wyszukiwarka
Podobne podstrony:
6 31 Wprowadzenie do ActiveX i projektowania kontrolek ActiveX (2)WYKŁAD 1 Wprowadzenie do biotechnologii farmaceutycznejMedycyna manualna Wprowadzenie do teorii, rozpoznawanie i leczeniewytyczne do projektu01 Wprowadzenie do programowania w jezyku Cwprowadzenie do buddyzmu z islamskiego punktu widzenia1 wprowadzenie do statystyki statystyka opisowaInformatyka Wprowadzenie Do Informatyki Ver 0 95Wprowadzenie do psychologii wykł UG645 Informacja dodatkowa wprowadzenie do sprawozdania finasowegowięcej podobnych podstron