Inżynieria Programowania - Projektowanie architektoniczne. Plan wykładu. Motto. Wstęp. Notatki. Notatki. Notatki. Notatki.



Podobne dokumenty
Inżynieria Programowania - Projektowanie architektoniczne

Lista standardów w układzie modułowym

Zarządzanie projektami. wykład 1 dr inż. Agata Klaus-Rosińska

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Sieci komputerowe. Definicja. Elementy

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Zobacz to na własne oczy. Przyszłość już tu jest dzięki rozwiązaniu Cisco TelePresence.

INSTRUKCJA WebPTB 1.0

Sieci komputerowe cel

Uchwała nr 21 /2015 Walnego Zebrania Członków z dnia w sprawie przyjęcia Regulaminu Pracy Zarządu.

Rodzaje i metody kalkulacji

Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych

Microsoft Management Console

Instrukcja Obsługi STRONA PODMIOTOWA BIP

NOWE I ISTNIEJĄCE SYSTEMY ADMINISTRACJI PUBLICZNEJ W ŚWIETLE ROZPORZĄDZENIA KRAJOWYCH RAM INTEROPERACYJNOŚCI

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:

Wpływ jakości świadczonych usług na doświadczenia abonenta w cyfrowym domu. Janusz Kilon

BEZPIECZEŃSTWO INFORMACYJNE I CYBERNETYCZNE

Kancelaris - Zmiany w wersji 2.50

Budowa systemów komputerowych

Programowanie w internecie nazwa przedmiotu SYLABUS A. Informacje ogólne

Zagospodarowanie magazynu

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

REGULAMIN KONTROLI ZARZĄDCZEJ W MIEJSKO-GMINNYM OŚRODKU POMOCY SPOŁECZNEJ W TOLKMICKU. Postanowienia ogólne

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Zintegrowany System Zarządzania Przedsiębiorstwem FIRMA SYSTEM FIRMA WERSJA 22.10

Poznań, 03 lutego 2015 r. DO-III

Szczegółowe zasady obliczania wysokości. i pobierania opłat giełdowych. (tekst jednolity)

INSTRUKCJA RUCHU I EKSPLOATACJI SIECI DYSTRYBUCYJNEJ

KONCEPCJA NAUCZANIA PRZEDMIOTU RACHUNKOWOŚĆ SKOMPUTERYZOWANA" NA WYDZIALE ZARZĄDZANIA UNIWERSYTETU GDAŃSKIEGO

TAJEMNICA BANKOWA I OCHRONA DANYCH OSOBOWYCH W PRAKTYCE BANKOWEJ

SPRAWOZDANIE z podróŝy słuŝbowej poza granicami kraju

Rady Miejskiej Wodzisławia Śląskiego. w sprawie stypendiów dla osób zajmujących się twórczością artystyczną i upowszechnianiem kultury.

DE-WZP JJ.3 Warszawa,

TWORZENIE I NADZOROWANIE DOKUMENTÓW SYSTEMOWYCH (PROCEDUR, KSIĘGI JAKOŚCI I KART USŁUG) SJ Data:

Segmentacja i plasowanie dr Grzegorz Mazurek. Wybór rynku docelowego. Istota segmentacji

Prawa i obowiązki pracownika oraz pracodawcy w zakresie BHP

InsERT GT Własne COM 1.0

RAPORT Z EWALUACJI WEWNĘTRZNEJ. Młodzieżowego Domu Kultury w Puławach W ROKU SZKOLNYM 2014/2015. Zarządzanie placówką służy jej rozwojowi.

tel/fax lub NIP Regon

POLITYKA JAKOŚCI. Międzyzakładowej Spółdzielni Mieszkaniowej Energetyka

PROJEKTOWANIE PROCESÓW PRODUKCYJNYCH

Projektowanie bazy danych

z dnia 6 lutego 2009 r.

Strategia rozwoju kariery zawodowej - Twój scenariusz (program nagrania).

Podstawa programowa kształcenia ogólnego informatyki w gimnazjum

Programowanie Zespołowe

Realizacja projektów 8.3 PO IG na przykładzie Gminy Borzęcin Rafał Bakalarz

ZARZĄDZENIE NR 713 DYREKTORA GENERALNEGO SŁUŻBY WIĘZIENNEJ z dnia \ 0 marca 2013 r.

KOMISJA WSPÓLNOT EUROPEJSKICH. Wniosek DECYZJA RADY

System obsługi pacjenta w ośrodku zdrowia

Proces certyfikacji ISO 9001:2015. Wydanie normy ISO 9001:2015 dotyczące systemów zarządzania jakością obowiązuje od 15 września 2015 roku.

Strukturalne metodyki projektowania systemûw informatycznych

U M O W A. zwanym w dalszej części umowy Wykonawcą

Harmonogramowanie projektów Zarządzanie czasem

WZÓR UMOWY DLA PRZETARGU NIEOGRANICZONEGO na realizację szkoleń w ramach projektu Patrz przed siebie, mierz wysoko UMOWA NR.

Oferta kompleksowego serwisu sprzętu komputerowego dla przedsiębiorstw, instytucji oraz organizacji.

DZENIE RADY MINISTRÓW

Aneks nr 8 z dnia r. do Regulaminu Świadczenia Krajowych Usług Przewozu Drogowego Przesyłek Towarowych przez Raben Polska sp. z o.o.

ZAGADNIENIA PODATKOWE W BRANŻY ENERGETYCZNEJ - VAT

Uchwała Nr... Rady Miejskiej Będzina z dnia roku

Regulamin organizacji przetwarzania i ochrony danych osobowych w Powiatowym Centrum Kształcenia Zawodowego im. Komisji Edukacji Narodowej w Jaworze

INFORMATOR dotyczący wprowadzania do obrotu urządzeń elektrycznych i elektronicznych aparatury, telekomunikacyjnych urządzeń końcowych i urządzeń

Rozdział 1. Ogólna charakterystyka podatku od towarów i usług

Priorytetami konkursu są:

Podstawy Inżynierii Oprogramowania. Wykład 8 Projektowanie architektury systemu

Warszawska Giełda Towarowa S.A.

DOTACJE NA INNOWACJE ZAPYTANIE OFERTOWE

WYJAŚNIENIA. Wyjaśniam

Opis przedmiotu zamówienia dla części 1 oraz dla części 2 zamówienia. Załącznik nr 1 do SIWZ

Ewidencja abonentów. Kalkulacja opłat

Komentarz technik ochrony fizycznej osób i mienia 515[01]-01 Czerwiec 2009

PROCEDURA PRZEGLĄDU I MONITORINGU KODEKSU ETYCZNEGO PRACOWNIKÓW POWIATOWEGO CENTRUM POMOCY RODZINIE W KOŁOBRZEGU

SUBSTANCJE ZUBOŻAJĄCE WARSTWĘ OZONOWĄ

STATUT PRZEDSZKOLA NIEPUBLICZNEGO KUBUŚ I PRZYJACIELE

UCHWAŁA NR 388/2012 RADY MIEJSKIEJ W RADOMIU. z dnia 27 sierpnia 2012 r. w sprawie ustanowienia stypendiów artystycznych dla uczniów radomskich szkół

Bazy danych. Andrzej Łachwa, UJ, /15

Regulamin Obrad Walnego Zebrania Członków Stowarzyszenia Lokalna Grupa Działania Ziemia Bielska

OSZACOWANIE WARTOŚCI ZAMÓWIENIA z dnia roku Dz. U. z dnia 12 marca 2004 r. Nr 40 poz.356

Aktualizacja CSP do wersji v7.2. Sierpień 2014

1. Koło Naukowe Metod Ilościowych,zwane dalej KNMI, jest Uczelnianą Organizacją Studencką Uniwersytetu Szczecińskiego.

ZASADY WYPEŁNIANIA ANKIETY 2. ZATRUDNIENIE NA CZĘŚĆ ETATU LUB PRZEZ CZĘŚĆ OKRESU OCENY

Zapytanie ofertowe M.M. Druk Serwis Sp. z o.o.

Implant ślimakowy wszczepiany jest w ślimak ucha wewnętrznego (przeczytaj artykuł Budowa ucha

ZARZĄDZENIE NR 82/15 WÓJTA GMINY WOLA KRZYSZTOPORSKA. z dnia 21 lipca 2015 r.

Rozdział 3. Słownik danych (Data Dictionary)...n..61 Formalizm notacji słownika danych...u Rozdział 4. Specyfikacja procesów...n...

Nadzór nad systemami zarządzania w transporcie kolejowym

Absolwent szkoły kształcącej w zawodzie technik hotelarstwa powinien być przygotowany do wykonywania następujących zadań zawodowych:

PRZEMYSŁOWY ODTWARZACZ PLIKÓW MP3 i WAV

ZARZĄDZANIA. marketingowy. Wymaga on zintegrowanych strategii tj. strategii jednoczesnego

Wprowadzenie do zarządzania procesami biznesowymi czym są procesy biznesowe: Part 1

Instrukcja zarządzania systemem informatycznym służącym do przetwarzania danych osobowych

OPIS PRZEDMIOTU ZAMÓWIENIA DO ZAPYTANIA KE1/POIG 8.2/13

Zamawiający potwierdza, że zapis ten należy rozumieć jako przeprowadzenie audytu z usług Inżyniera.

Nowości w module: BI, w wersji 9.0

Kontrola na miejscu realizacji projektu Procedury i zarządzanie projektem Archiwizacja

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

Dziękujemy za zainteresowanie

Transkrypt:

Inżynieria Programowania - Projektowanie architektoniczne Arkadiusz Chrobot Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 30 marca 2013 Plan wykładu 1. Wstęp 2. Strukturalizacja systemu 3. Modele sterowania 4. Rozkład na moduły 5. Architektury charakterystyczne dla różnych dziedzin Motto Lekarz może pogrzebać swoje pomyłki, ale architekt może tylko doradzić klientowi by posadził winnice. Frank Lloyd Wright Wstęp Projektowanie architektoniczne jest wstępną fazą projektowania, w której wyróżnia się podsystemy, ustala schemat sterowania i sposób komunikacji podsystemów.

Zalety Jawne projektowanie i dokumentowanie architektury oprogramowania posiada następujące zalety: 1. Komunikacja z uczestnikami - architektura opisuje cechy wysokopoziomowe projektu i dlatego może służyć jako punkt wyjścia do dyskusji z różnymi uczestnikami systemu. 2. Analiza systemu - opracowanie we wstępnej fazie architektury projektu umożliwia wstępną analizę systemu i określenie, czy jego zakładana struktura pozwala na spełnienie stawianych przed nim wymagań niefunkcjonalnych. 3. Wielokrotne użycie w szerokiej skali - opis architektoniczny jest ze względu na swą wysokopoziomowość dosyć uniwersalny i może służyć jako podstawa do budowy systemów o podobnych założeniach. Proces projektowania architektonicznego W procesie projektowania architektonicznego wyróżniamy trzy podstawowe czynności: 1. Strukturalizacja systemu - system dzieli się nad podsystemy i określa się sposób komunikacji między nimi. 2. Modelowanie sterowania - określa się ogólny model związków sterowania między częściami systemu. 3. Podział na moduły - każdy podsystem dzielony jest na moduły. Podsystemy i moduły Podsystem Podsystem jest częścią systemu, której usługi nie zależą od innych usług, oferowanych przez inne podsystemy. Podsystemy składają się z modułów i mają określony interfejs służący do komunikowania się z innymi podsystemami. Pojedynczy podsystem może być rozpatrywany jako samodzielny system. Moduł Moduł jest komponentem systemu, oferującym co najmniej jedną usługę. Korzysta z usług innego modułu i zazwyczaj nie może być rozpatrywany jako niezależny system. Pojedynczy moduł zwykle składa się z innych modułów. Dokumentacja architektury systemu Dokumentacja architektury systemu może składać się z następujących graficznych przedstawień modeli: 1. Statyczny model strukturalny obejmuje komponenty lub podsystemy, które można zbudować jako niezależne jednostki. 2. Model dynamiczny procesu, w którym przedstawia się podział systemu na procesy czasu wykonania. 3. Model interfejsów, w którym definiuje się usługi oferowane przez każdy podsystem za pośrednictwem jego interfejsu publicznego. 4. Model związków, który obejmuje związki, takie jak przepływ danych między podsystemami.

Zależności Od architektury systemu mogą zależeć następujące wymagania niefunkcjonalne: 1. Efektywność - najczęściej podnosi się poprzez zastosowanie do wykonywania krytycznych operacji niewielkiej liczby komponentów gruboziarnistych, które rzadko się komunikują. 2. Bezpieczeństwo (poufność) - zazwyczaj osiąga się poprzez zastosowanie struktury warstwowej. Najbardziej krytyczne elementy umieszcza się w warstwach wewnętrznych, gdzie należy uwzględnić wysoki poziom weryfikacji. 3. Bezpieczeństwo (niezawodność) operacje dotyczące bezpieczeństwa należy zamknąć w jednym podsystemie lub w niewielkiej liczbie podsystemów. 4. Dostępność - stosuje się komponenty redundantne. 5. Konserwacja - stosuje się dużą liczbę drobnoziarnistych, samodzielnych komponentów, które łatwo zmieniać. Przykład diagramu blokowego - system sterowania robotem System wizyjny System identyfikacji przedmiotów Sterownik alarmu Sterownik chwytacza System wyboru opakowania System pakujący Sterownik taśmociągu Model repozytorium Większość systemów użytkujących duże ilości danych jest zbudowana wokół centralnej bazy danych. Taki model architektury nazywamy modelem repozytorium. Jest on przystosowany do systemów, w których dane są generowane przez jeden podsystem, a użytkowane przez inny. Model repozytorium - przykład Edytor projektów Generator kodu Translator projektów Repozytorium przedsięwzięcia Edytor programów Analizator projektów Generator raportów

+ Efektywny sposób współdzielenia dużych ilości danych. - Konieczny jest wspólny model danych repozytorium, który należy narzucić wszystkim podsystemom. + Podsystemy produkujące dane nie muszą zajmować się sposobem użycia tych danych przez inne podsystemy. - Ewolucja systemu może być trudna ze względu na narzucony model danych. + Scentralizowanie czynności związanych z tworzeniem kopii zapasowych, sterowanie zabezpieczeniami, itp. - Model repozytorium wymusza te same strategie dotyczące zabezpieczeń, sporządzania kopii zapasowych, itp. + Model współdzielenia jest widoczny przez repozytorium, więc integracja nowych narzędzi jest prosta, o ile obsługują ustalony model danych. - Wykonanie rozproszonej wersji repozytorium może być trudne. Model klient-serwer Główne komponenty modelu klient-serwer: zbiór samodzielnych serwerów oferujących usługi innym podsystemom. zbiór klientów korzystających z usług oferowanych przez serwery. sieć, która służy do komunikacji między serwerami, a klientami; nie zawsze jest konieczna. Model klient-serwer - przykład Klient 1 Klient 2 Klient 3 Klient 4 Sieć szerokopasmowa Serwer katalogu Serwer filmów Serwer zdjęć Serwer hipertekstu Katalog Pliki z filmami Zdjęcia w postaci cyfrowej Sieć hipertekstowa + Model klient-serwer jest architekturą rozproszoną. - Brak wspólnego modelu danych.

Model maszyny abstrakcyjnej Model maszyny abstrakcyjnej (model warstwowy) opisuje sprzęganie podsystemów. System jest ułożony w stos warstw, z których każda oferuje pewne usługi. Każda warstwa jest maszyną wirtualną (abstrakcyjną), której język maszynowy (usługi oferowane przez warstwę) służy do implementacji następnego poziomu maszyny abstrakcyjnej. Model maszyny abstrakcyjnej - przykład Zarządzanie wersjami Zarządzanie obiektami System bazy danych System operacyjny + Model warstwowy ułatwia przyrostowe tworzenie oprogramowania. + Architektura warstwowa jest łatwa do przenoszenia i modyfikowania. - Podejście warstwowe jest trudne w zastosowaniu. - Systemy oparte na czystym modelu warstwowym mogą być niewydajne. Modele sterowania Aby podsystemy pracowały jako jeden system, należy nimi sterować tak, żeby ich usługi były dostarczane we właściwe miejsce i we właściwym czasie. Wyróżnia się dwa podejścia do sterowania: 1. Sterowanie scentralizowane - za sterowanie odpowiada całkowicie jeden z podsystemów. 2. Sterowanie zdarzeniami - informacja o sterowaniu nie jest wbudowana w system, każdy z podsystemów może reagować na zdarzenia pochodzące z zewnątrz.

Sterowanie scentralizowane Rozróżniamy dwie klasy systemów sterowania scentralizowanego, w zależności od tego czy podsystemy działają współbieżnie, czy sekwencyjnie: 1. Model wywołanie-powrót - stosowany jedynie w przypadku systemów sekwencyjnych. 2. Model menedżera - można stosować w przypadku systemów współbieżnych. Jeden z komponentów jest wybierany do roli menadżera, systemu, który zarządza innymi procesami. Inaczej nazywany modelem pętli zdarzeń. Model sterowania wywołanie-powrót Program główny Procedura 1 Procedura 2 Procedura 3 Procedura 1.1 Procedura 1.2 Procedura 3.1 Procedura 3.2 + Łatwa analiza przepływu sterowania i deterministyczne działanie systemu. - Utrudniona obsługa wyjątków. Scentralizowane sterowanie z menedżerem - przykład Procesy detektorów Procesy efektorów Sterownik systemu Procesy obliczeniowe Interfejs użytkownika Obsługa awarii

Sterowanie zdarzeniami Dwa podstawowe modele sterowania zdarzeniami to: 1. Model rozgłaszania - zdarzenie jest ogłoszeniem dla wszystkich podsystemów. 2. Model z przerwaniami - zewnętrzne przerwania są wykrywane przez obsługę przerwań i przekazywane do odpowiedniego komponentu, gdzie są przetwarzane. Model rozgłaszania Podsystem Podsystem Podsystem Podsystem 1 2 3 4 Procedura obsługi zdarzeń + Prostota ewolucji. - Brak informacji zwrotnej, co do tego, czy zdarzenie zostało obsłużone. Model sterowania z przerwaniami Przerwania Wektor przerwań Procedura obsługi 1 Procedura obsługi 2 Procedura obsługi 3 Procedura obsługi 4 Proces 1 Proces 2 Proces 3 Proces 4

+ Szybkie odpowiedzi na zdarzenia. - Złożoność programowania i trudności z zatwierdzeniem. Rozkład na moduły Rozkład na moduły dotyczy podsystemów. Można tego dokonać w oparciu między innymi o następujące modele: 1. Model obiektowy - system jest dzielony na zbiór komunikujących się obiektów. 2. Model przepływu danych - system jest dzielony na moduły funkcjonalne, które pobierają dane wejściowe i przetwarzają je na dane wyjściowe. Model ten nosi również nazwę modelu potokowego. Model obiektowy - przykład Klient Pokwitowanie nr klienta nazwisko adres okres kredytowania nr faktury data kwota nr klienta Faktura nr faktury data kwota nr klienta Płatność wystaw() wyślijupomnienie() przyjmijpłatność() wyślijpokwitowanie() nr faktury data kwota nr klienta + Obiekty są luźno od siebie uzależnione, więc można zmieniać ich implementacje nie wpływając na pozostałe obiekty. + Obiekty są często reprezentantami bytów świata rzeczywistego, co ułatwia zrozumienie systemu. + Opracowano języki programowania, które umożliwiają bezpośrednią implementację komponentów obiektowych. + Model obiektowy może być zastosowany zarówno w systemach współbieżnych, jak i sekwencyjnych. - Konieczność jawnego używania nazw i interfejsów obiektów, które dostarczają usług. - Trudno ocenić wpływ zmiany interfejsu pojedynczego obiektu na pozostałe obiekty. - Trudno reprezentować w postaci obiektów złożone byty.

Model przepływu danych - przykład Wystaw fakturę Pokwitowania Odczytaj wystawione faktury Zidentyfikuj płatności Faktury Płatności Znajdź przeterminowane faktury Wystaw upomnienia Upomnienia + Architektura potokowa umożliwia wielokrotne użycie przekształceń. + Jest intuicyjna dla wielu ludzi. + Ewolucja systemu polega na dodaniu nowych przekształceń i jest bardzo łatwa. + Jest łatwa do zaimplementowania zarówno w systemach sekwencyjnych, jak i współbieżnych. - Konieczne jest wprowadzenie wspólnego formatu danych zrozumiałego dla wszystkich przekształceń. - Nie nadaje się do systemów interaktywnych. Architektury charakterystyczne dla różnych dziedzin Istnieją architektury wspólne dla pewnych konkretnych dziedzin zastosowań. Ich egzemplarze różnią się w szczegółach, ale można używać wielokrotnie wspólnej struktury architektonicznej do budowy nowych systemów. Te architektury można podzielić na: 1. Modele ogólne - budowane metodą wstępującą, obejmują zasadnicze charakterystyki rzeczywistych systemów. 2. Modele odniesienia - budowane metodą zstępującą, są jeszcze bardziej abstrakcyjne niż modele ogólne. Są sposobem informowania projektantów o ogólnej strukturze systemów danej klasy. Model ogólny kompilatora - przepływ danych Tabela symboli Analiza leksykalna Analiza składniowa Analiza znaczeniowa Generator kodu

Model ogólny kompilatora - repozytorium Analizator leksykalny Analizator składniowy Analizator znaczeniowy Repozytorium Generator prezentacji Drzewo składni abstrakcyjnej Definicja gramatyki Optymalizator Edytor Tablica symboli Definicja wyjścia Generator kodu Model odniesienia - przykład 7 Program użytkowy Program użytkowy 6 Prezentacja Prezentacja 5 Sesja Sesja 4 Transport Transport 3 Sieć Sieć Sieć 2 Łącze danych Łącze danych Łącze danych 1 Fizyczna Fizyczna Fizyczna Medium komunikacyjne Pytania? Koniec Dziękuję Państwu za uwagę.