Stud mat PSK, Liderman.Krzysztof, Projektowanie.Systemow, Materialy


Projektowanie systemów komputerowych

(studia stacjonarne i niestacjonarne)

Specjalność: inżynieria komputerowa

wykłady: 30 (24) godz. (egzamin)

projekt przejściowy: 30 (24) godz. (zaliczenie na stopień)

Prowadzący:

wykłady: dr inż. Krzysztof LIDERMAN, tel. 839701 p.82/S

lider@ita.wat.edu.pl

projekt przejściowy: dr inż. Artur ARCIUCH, tel. 839401 p.88/S

aarciuch@ita.wat.edu.pl

0x08 graphic

---------------------------------

Specjalność: systemy multimedialne

wykłady: 20 (16) godz. (zaliczenie na stopień)

laboratoria: 10 (8) godz. (zaliczenie)

Prowadzący:

wykłady: dr inż. Krzysztof LIDERMAN, tel. 839701 p.82/S

lider@ita.wat.edu.pl

laboratoria: dr inż. Artur ARCIUCH, tel. 839401 p.88/S

aarciuch@ita.wat.edu.pl

0x08 graphic

Literatura podstawowa

  1. Pressman R.S.: Praktyczne podejście do inżynierii oprogramowania. WNT. Warszawa.2004

  2. Liderman K., Arciuch A.: Projektowanie systemów komputerowych. BEL Studio. Warszawa. 2001.

  3. Schmuller J.: UML dla każdego. Helion. (Wyd. org. 2001).

  4. Trocki M. i in.: Zarządzanie projektami. PWE. Warszawa. 2003.

Literatura uzupełniająca

  1. Leffingwell D., Widrig D.: Zarządzanie wymaganiami. WNT. Warszawa. 2003.

  2. Hamlet D., Maybee J.: Podstawy techniczne inżynierii oprogramowania. WNT. Warszawa.2003.

  3. Roszkowski J.: Analiza i projektowanie strukturalne. Helion. 1998.

  4. Bays M.E.: Metodyka wprowadzania oprogramowania na rynek. WNT. Warszawa. 2001.

  5. Clements P., Kazman R., Klein M.: Architektura oprogramowania. Metody oceny oraz analiza przypadków. Helion. 2003.

  6. Hatley J. D., Pirbhai I. A.: Strategies for Real-Time System Specyfication. Dorset House. 1988.

  7. Howard M., Lipner S.: Cykl projektowania zabezpieczeń. Microsoft Press. 2006.

  8. Stasiak A., Suski Z., Patkowski A., Bieniek S.: Projektowanie systemów do zastosowań wbudowanych. Biuletyn IAiR. Zeszyt 2. WAT. Warszawa. 1996

  9. Yourdon E. Marsz ku klęsce. Poradnik dla projektanta systemów. WNT. Warszawa. 2000.

Strony WWW

  1. http://www.mhhe.com/engcs/pressman

  2. http://www.sei.cmu.edu

O terminologii uwag kilka ...

Metodologia projektowania - nauka o racjonalnych sposobach projektowania, niezależnie od celu projektowania i środków. Zajmuje się ona wyróżnianiem
i definiowaniem charakterystycznych czynności w procesie projektowania, identyfikacją ich celów i warunków, ich analizą oraz opisywaniem procedur właściwych tym działaniom.

Metoda - świadomie i celowo zastosowany sposób działania, zmierzający do rozwiązania danego problemu w skończonej liczbie kroków.

Jeżeli kolejność działań i same działania są sformułowane jasno i jednoznacznie, to mówi się o metodzie algorytmicznej i przedstawia się ją w postaci algorytmu.

W przeciwnym przypadku mówi się co najwyżej o metodzie heurystycznej
i przedstawia się ją w postaci programu heurystycznego. Do tej grupy zalicza się większość
metod projektowania technicznego.

Metoda algorytmiczna zapewnia otrzymanie wyniku końcowego z określoną dokładnością i w skończonej liczbie kroków pod warunkiem, że zastosowano odpowiednią metodę do danego zadania i ściśle jej przestrzegano.

Metoda heurystyczna nie zapewnia uzyskania oczekiwanego wyniku końcowego, lecz tylko zwiększa prawdopodobieństwo jego uzyskania.

Metodyka - zbiór metod określonej klasy przeznaczenia (np. metodyka projektowania strukturalnego). Zbiór ten jest zwykle uzupełniony:

Strukturą procesu projektowania nazywamy porządek działań tego procesu, wyróżniony ze względu na określone kryterium, np.:

0x08 graphic
O projekcie słów kilka ...

Przedsięwzięcie - złożone działanie, wielopodmiotowe, przeprowadzone zgodnie z planem, który ze względu na skomplikowanie bywa sporządzany przy pomocy specjalnych metod.

T. Kotarbiński, Sprawność i błąd, PZWS, Warszawa, 1970

Projekt - celowe, niepowtarzalne (realizowane jednorazowo), złożone przedsięwzięcie zawarte w skończonym przedziale czasu - z wyróżnionym początkiem i końcem - realizowane zespołowo, w sposób względnie niezależny od powtarzalnej działalności przedsiębiorstwa, za pomocą specjalnych metod oraz technik.

Celowość - projekt jest działaniem podejmowanym dla spowodowania rezultatów oczekiwanych przez Zleceniodawcę.

Program - termin ten oznacza:

    1. projekt w dziedzinach niekomercyjnych, np. w administracji publicznej;

    2. „superprojekt”, bardziej złożony, droższy i obarczony większym ryzykiem niż projekt, bardziej uwarunkowany politycznie, częściej kończy się niepowodzeniem, trudniej opracować miary jego sukcesu

Rodzaje działań związanych z wykonawstwem projektów

0x08 graphic

Metoda punktów przypadków użycia (UCP)

W metodach obiektowych operuje się na innych artefaktach projektowych niż
w metodach strukturalnych:

W przypadku specyfikowania wymagań na system metodami obiektowymi, do oceny wielkości oprogramowania stosuje się, bazującą na idei metody punktów funkcyjnych, metodę punktów przypadków użycia (UCP - ang. Use Case Points). Korzysta się w niej z aktorów i przypadków użycia.

0x01 graphic
gdzie:

NPU - nieskorygowane punkty przypadków użycia

Naj - liczba aktorów w systemie w każdej klasie złożoności j,

Waj - wagi aktorów w każdej klasie złożoności j,

Nucj - liczba przypadków użycia w każdej klasie złożoności j,

Wucj - wagi przypadków użycia w każdej klasie złożoności j.

Wyznaczanie skorygowanych punktów przypadków użycia SPU:

SPU = NPU×TCF×EF gdzie:

TCF - współczynnik korekcji złożoności technicznej,

EF - współczynnik korekcji złożoności środowiskowej.

Wzory do wyznaczania współczynników korekcji:

0x01 graphic

0x01 graphic

Przyjmuje się, że realizacja jednego SPU wymaga 15 - 30 roboczogodzin.Wartości wag w metodzie UCP

Tab.1. Wycena dla aktorów.

Typ aktora

Opis

Waj

Prosty

Inny system poprzez dobrze zdefiniowany API

5

Średni

Inny system poprzez protokół komunikacyjny

Osoba wykorzystująca interfejs tekstowy

10

Skomplikowany

Osoba wykorzystująca interfejs graficzny

15

Tab.2. Wycena dla przypadków użycia - klasyfikacja wg liczby transakcji.

Typ przypadku użycia

Opis

Wucj

Prosty

Maksymalnie 3 transakcje

5

Średni

Od 4 do 7 transakcji

10

Skomplikowany

Powyżej 7 transakcji

15

Transakcja - jednolite i niepodzielne działanie realizujące przypadek użycia.

Tab.3. Wycena dla przypadków użycia - klasyfikacja wg liczby klas analitycznych.

Typ przypadku użycia

Opis

Wucj

Prosty

Mniej niż 5 klas analitycznych

5

Średni

Od 5 do 10 klas analitycznych

10

Skomplikowany

Powyżej 10 klas analitycznych

15

Brane są pod uwagę jedynie przypadki użycia wykorzystywane przez aktorów,
a pomijane są przypadki włączane (<<include>>) i rozszerzane (<<extend>>)

Czynniki złożoności technicznej oraz środowiskowej
i ich wagi

Czynniki złożoności technicznej Ptk i ich wagi Wtk:

  1. rozproszenie systemu - 2

  2. szybkość reakcji systemu - 1

  3. wydajność widoczna dla użytkowników pracujących interaktywnie - 1

  4. skomplikowane wewnętrzne przetwarzanie - 1

  5. przystosowanie do ponownego użycie kodu - 1

  6. prostota instalacji - 0,5

  7. prostota użycia - 0,5

  8. przenośność - 2

  9. łatwość wprowadzania zmian - 1

  10. współbieżność - 1

  11. specjalne funkcje zabezpieczeń - 1

  12. udostępnianie użytkownikom zewnętrznym - 1

  13. specjalne wymagania na szkolenie użytkowników - 1

Każdy czynnik jest niezależnie oceniany w skali od 0 (brak wpływu na wzrost złożoności ) do 5 (wpływ istotny), tj. Ptk [0,1,2,3,4,5].

Czynniki złożoności środowiskowej Psk ich wagi Wsk:

  1. znajomość metodyki RUP - 1,5

  2. doświadczenie w tworzeniu aplikacji - 0,5

  3. doświadczenie w metodykach obiektowych - 1

  4. umiejętności głównego analityka - 0,5

  5. motywacja zespołu - 1

  6. stabilność wymagań - 2

  7. pracownicy zatrudnieni w niepełnym wymiarze - (-1)

  8. stopień komplikacji języka programowania - (-1)

Każdy czynnik jest niezależnie oceniany w skali od 0 (brak wpływu na wzrost złożoności ) do 5 (wpływ istotny), tj. Psk [0,1,2,3,4,5].

Notacja

0x08 graphic

DIAGRAM KONTEKSTOWY

0x08 graphic

Dokumenty przepływające w systemie:

  1. Lista tematów prac dyplomowych

  2. Wykaz pobranych tematów prac dyplomowych

  3. Pobrany (konkretny) temat pracy dyplomowej

  4. Praca dyplomowa

  5. Opinia recenzenta

  6. Opinia kierownika pracy dyplomowej

  7. Wniosek Komisji Obron Instytutowych

  8. Wniosek Komisji Obron Państwowych

DFD_0 (Data Flow Diagram)

0x08 graphic

DFD_1

0x08 graphic

STD (State Transition Diagram)

0x08 graphic

DFD_2

0x08 graphic

DFD_3

0x08 graphic

Specyfikacja procesu 4.2.6

proces_4.2.6_EGZAMIAN

zanotuj pytania Komisji Obron Państwowych

jeżeli pytania zrozumiałe to

przygotuj na piśmie konspekt odpowiedzi
/*możesz korzystać ze swojej pracy dyplomowej*/

w_przeciwnym_przypadku

poproś KOP o wyjaśnienia

po upływie wyznaczonego czasu zacznij odpowiadać na pytania
/*nie denerwuj się!*/

Obiekty danych

0x08 graphic

To przedstawienie może być modelem w postaci diagramu encja-związek (ERD) który opisuje dane w oderwaniu od metod ich przetwarzania.

0x08 graphic

Opis w modelu dotyczy trzech,
związanych ze sobą, rodzajów informacji:

Liczebność to liczba wystąpień jednego obiektu, które mogą być powiązane
z określoną liczba wystąpień innego obiektu.

Modalność określa obowiązkowość powiązania:

modalność = 1 - powiązanie obowiązkowe,

modalność = 0 - powiązanie opcjonalne.

Dla określenia liczebności i modalności na diagramach, stosuje się np. notację jak na rysunku:

0x08 graphic

ERD (Entity Relationship Diagram)

0x08 graphic

Diagramy powiązań danych (ERD) i typy obiektowe

Zawartość i strukturę danych opisuje się za pomocą diagramów ERD, których elementami są typy obiektowe oraz relacje zachodzące pomiędzy obiektami należącymi do różnych typów.

  1. Typ obiektowy określa zestaw danych opisujących obiekty lub zjawiska występujące w projektowanym systemie lub jego otoczeniu. Poszczególne wartości danych są pamiętane jako atrybuty obiektów.

Opis typu obiektowego składa się z nazwy (typ nosi nazwę obiektu), nieformalnej definicji i listy atrybutów opisujących każdy obiekt typu. Wartość atrybutu (lub kombinacja wartości określonej grupy atrybutów) jednoznacznie identyfikująca obiekt nazywa się kluczem obiektu i oznacza symbolem @.

  1. Relacje opisują statyczne zależności istniejące pomiędzy obiektami należącymi do różnych typów.

W poprawnie zbudowanym ERD:

Diagramy ERD w porównaniu z diagramami DFD nie wnoszą nowych informacji (szczególnie w projektowaniu systemów sterowania) i są w zasadzie nadmiarowe.

Celem odrębnego modelowania danych jest:

Diagram kontekstowy

  1. Cały system jest reprezentowany przez jeden proces (transformację symbolizowaną okręgiem).

  2. Obiekty lub grupy obiektów otoczenia które współdziałają z systemem, są reprezentowane przez terminatory, rysowane w postaci prostokątów.

  3. Na schemacie uwidacznia się tylko zewnętrzne przepływy danych między systemem a obiektami otoczenia.

  4. Magazyny (zbiory) danych reprezentują dane dzielone przez system i terminatory, a pobranie danych ze zbioru zawsze wymaga aktywności systemu.

  5. Kierunki przepływu danych między systemem a terminatorami obrazują relację producent-konsument, przy czym konsument musi być zawsze gotowy do przyjęcia danych, gdy się one pojawią.

  6. Diagram kontekstowy powinny uzupełniać opisy tekstowe:

Bardzo duże diagramy kontekstowe można podzielić na fragmenty zawierające segmenty okręgu obrazującego opisywany system.

Terminatorami mogą być:

Czujniki i elementy wykonawcze powinny zostać pokazane tylko wtedy, gdy po realizacji systemu będą widoczne nie tylko dla wydzielonych programów WE/WY, ale wpłyną istotnie na organizację danych lub algorytmy przetwarzania.

Pominięcie opisu sprzęgu w modelu funkcjonalnym można interpretować jako wprowadzenie pośredniej warstwy sprzęgu wirtualnego.

Słownik Danych

Słownik Danych to uporządkowany wykaz wszystkich elementów danych (informacji, dokumentów, produktów) mających związek z projektowanym systemem wraz z ich precyzyjnym określeniem tak, aby wszystkie osoby zaangażowane w proces projektowania (analitycy, użytkownicy, projektanci itd.) jednakowo interpretowały (rozumiały) wszystkie wejścia, wyjścia, składniki magazynów, przepływy, obliczenia pośrednie itd.

W Słowniku Danych definiuje się elementy:

Przykład notacji w Słowniku Danych:

= składa się z

+ i

( ) opcjonalnie (może wystąpić lub nie)

{} iteracja

[] wybór jednej z kilku alternatywnych mośliwości

** komentarz

@ identyfikator ( pole klucza ) dla magazynu

| rozdziela alternatywne możliwości w konstrukcji [ ]

Słownik Danych - przykład zapisów

0x08 graphic
0x08 graphic
0x08 graphic

nazwisko = tytuł + imię + ( inicjał ) + nazwisko

tytuł = [ Pan | Pani | Panna | Dr | Prof. ]

imię = { dowolny- znak }

nazwisko = { dowolny- znak }

dowolny znak = [ A-Z | a-z | ` | - | | ]

0x08 graphic

Przepływy (1)

Przepływami nazywa się łuki grafu DFD oznaczone graficznie strzałkami, opisujące przepływy (danych, materiałów, sygnałów) pomiędzy procesami (transformacjami) i/lub magazynami (zbiorami).

W klasycznej interpretacji DFD zakłada się, że każdy proces jest wykonywany natychmiast, gdy tylko dostępne są wszystkie przepływy wejściowe. Wynikiem realizacji procesu jest pojawienie się przepływów wyjściowych.
W czasie pomiędzy wystąpieniami przepływów, zawartość magazynów pozostaje stała.

Konwencje interpretacyjne:

  1. Każda strzałka łącząca proces z magazynem oznacza dostępność danych przechowywanych w magazynie dla procesu.

  2. Strzałka prowadząca od procesu do magazynu oznacza, że proces zmienia zawartość tego magazynu.

  3. Strzałka prowadząca od magazynu do procesu oznacza, że dane z tego magazynu są potrzebne procesowi do wygenerowania (np. obliczenia) przepływu wyjściowego.

  4. Zależnie od umowy, proces może wymagać jednoczesnego wystąpienia wszystkich przepływów WE, lub niezależne przepływy WE mogą być buforowane przez proces.

Przepływy (2)

Rodzaje przepływów:

  1. 0x08 graphic
    dyskretne danych ( ) - występują tylko w określonych chwilach. Pojawienie się takiego przepływu można interpretować jako wiadomość powodującą zmianę zawartości magazynu lub wykonanie procesu. Magazyny mogą by połączone z procesami tylko poprzez przepływy dyskretne.

  2. 0x08 graphic
    0x08 graphic
    ciągłe danych ( ) - występują wyłącznie pomiędzy procesami lub procesami a otoczeniem. Procesy do których dochodzą przepływy ciągłe mogą odczytywać ich wartości w dowolnych chwilach; wyjściowe przepływy ciągłe są podtrzymywane przez generujące je procesy w sposób ciągły.

  3. 0x08 graphic
    dyskretne sterujące tzw. zdarzenia ( ) - przenoszą nie dane, a dwustanowe sygnały sterujące lub synchronizujące (np. start/stop);

  4. 0x08 graphic
    0x08 graphic
    ciągłe sterujące ( ) - np. zawsze dostępne wskazania czujników dwustanowych;

  5. wymuszenia (dwustanowe) - specjalne zdarzenia identyfikowane etykietami:

(konwencja notacyjna metodyki Warda-Mellora dla RTS)

Metodyka strukturalna Warda-Mellora projektowania systemów czasu rzeczywistego

Metodyka zakłada budowę kolejnych modeli:

I. Modelu funkcjonalnego (essential model) ETAP ANALIZY

  1. modelu otoczenia (enviromental model)