Projektowanie architektoniczne

Slides:



Advertisements
Podobne prezentacje
Architektura SAP R/3 Wybrane zagadnienia.
Advertisements

Projektowanie w cyklu życia oprogramowania
PROGRAMOWANIE STRUKTURALNE
Inżynieria Oprogramowania 9. Testowanie oprogramowania
Inżynieria Oprogramowania 9. Testowanie oprogramowania
Inżynieria Oprogramowania 6. Projektowanie architektoniczne
Wydział Zastosowań Informatyki i Matematyki SGGW
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 Restrukturyzacja oprogramowania l Reorganizowanie i modyfikowanie istniejącego.
Modele systemu Abstrakcyjne opisy sytemu, którego wymagania są opisywane.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Prototypowanie oprogramowania l Błyskawiczne tworzenie oprogramowania służące.
Wyszukiwanie błędów Testowanie programów w celu wyszukania błędów.
Projektowanie Aplikacji Komputerowych
Ksantypa2: Architektura
Dokumentowanie wymagań w języku XML
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy operacyjne.
Projektowanie architektoniczne
Wzorce projektowe w J2EE
Artur Szmigiel Paweł Zarębski Kl. III i
Współczesne systemy informacyjne
Projektowanie i programowanie obiektowe II - Wykład IV
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
Modele baz danych - spojrzenie na poziom fizyczny
Dalsze elementy metodologii projektowania. Naszym celem jest...
Inżynieria Oprogramowania
Wykład 4 Analiza i projektowanie obiektowe
Wykład 2 Cykl życia systemu informacyjnego
C.d. wstępu do tematyki RUP
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
Twoje narzędzie do pracy grupowej
Projektowanie Stron WWW
Prezentacja i szkolenie
Sieciowe Systemy Operacyjne
Podstawy działania wybranych usług sieciowych
InTouch.
ŻYWE JĘZYKI PROGRAMOWANIA LIVING IT UP WITH A LIVE PROGRAMMING LANGUAGE Sean McDirmid Ecole Polytechnique Fédérale de Lausanne (EPFL)
Modelowanie i Identyfikacja 2011/2012 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania 1 Warstwowe.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Wybrane zagadnienia relacyjnych baz danych
Podsumowanie metodologii OMT
Obserwowalność i odtwarzalność
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
1 Każdy obiekt jest scharakteryzowany poprzez: tożsamość – daje się jednoznacznie wyróżnić; stan; zachowanie. W analizie obiektowej podstawową strukturą
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
Modelowanie obiektowe Diagramy klas
Proces tworzenia oprogramowania
Podstawy programowania
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Obliczalność czyli co da się policzyć i jak Model obliczeń sieci liczące dr Kamila Barylska.
Model obiektowy bazy danych
PROCESY W SYSTEMACH SYSTEMY I PROCESY.
Komputerowe wspomaganie projektowania
Diagram aktywności (czynności)
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Przykłady analiza i projektowanie
Systemy informatyczne
Modelowanie obiektowe - system zarządzania projektami.
Podstawy języka skryptów
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Projektowanie architektoniczne
Diagramy przepływu danych
Podstawy programowania
Struktura systemu operacyjnego
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Analiza, projekt i częściowa implementacja systemu wspomagania pracy Referatu Reprografii Promotor: mgr inż. Dariusz OlczykWykonała: Katarzyna Ściwiarska.
Inżynieria systemów informacyjnych
JavaBeans by Paweł Wąsala
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Projektowanie architektoniczne Ustalanie zrębu całości systemu

Zawartość Strukturalizacja systemu Modele sterowania Rozkład na moduły Architektury charakterystyczne dla różnych dziedzin

Architektura oprogramowania Faza procesu projektowania, w której identyfikuje się podsystemy budowanego systemu oraz ustala się zrąb sterowania i komunikacji pomiędzy nimi nosi nazwę projektowania architektonicznego Produktem tej fazy jest architektura oprogramowania

Projektowanie architektoniczne Wstępna faza projektowania systemu Łączy specyfikację z projektem Często wykonywana równolegle z czynnościami przygotowywania specyfikacji Zawiera zidentyfikowanie głównych komponentów systemu i metod komunikacji pomiędzy nimi

Zalety jawnej architektury Komunikacja z uczestnikami Architektura może być używana jako podstawa do dyskusji z różnymi uczestnikami przedsięwzięcia Analiza systemu Środek za pomocą którego można częściowo sprawdzić czy system będzie spełniał krytyczne wymagania niefunkcjonalne Użycie wielokrotne w wielkiej skali Architektura może być używana do budowy wielu systemów

Proces projektowania architektonicznego Strukturalizacja systemu System jest dzielony na kilka podstawowych podsystemów i jest identyfikowana komunikacja pomiędzy nimi Modelowanie sterowania Określa się model przepływu sterowania pomiędzy różnymi częściami systemu Podział na moduły Zidentyfikowane podsystemy dzielone są na moduły

Podsystemu i moduły Podsystem jest w pełni działającym systemem, którego usługi nie zależą od usług oferowanych przez inne podsystemy Moduł jest częścią systemu, która oferuje usługi innym modułom i nie może być rozważana jako oddzielny system

Modele architektoniczne Podczas procesu projektowania architektonicznego mogą powstać różne modele Każdy z modeli przedstawia inny punkt widzenia architektury

Modele architektoniczne Statyczny model strukturalny pokazuje główne komponenty systemu Model dynamiczny procesu przedstawia podział systemu na procesy czasu wykonania Model interfejsu pokazuje interfejsy podsystemów Model związku podobny do modelu przepływu danych

Style architektoniczne Projektowanie architektoniczne można przeprowadzić zgodnie z ogólnym modelem lub stylem Znajomość takich styli może uprościć tworzenie architektury Niestety większość dużych systemów jest mieszana i nie pozwala na użycie tylko jednego stylu

Atrybuty stylów Wydajność Zabezpieczenie Bezpieczeństwo Dostępność Lokalizacja operacji i minimalizacja komunikacji Zabezpieczenie Architektura warstwowa z danymi w wewnętrznej warstwie Bezpieczeństwo Izolacja operacji bezpieczeństwa w jednym miejscu Dostępność Włączenie do systemu komponentów nadmiarowych Zdatność do pielęgnacji Podział na drobnoziarniste, samowystarczalne komponenty

Strukturalizacja systemu Polega na podziale systemu na współpracujące podsystemy Jest zazwyczaj przedstawiana w postaci przeglądowego diagramu blokowego opisującego strukturę systemu Można dodatkowo opracować dokładniejsze modele pokazujące jak podsystemy współdzielą dane i jak się ze sobą komunikują

Uniwersyteckie lektoraty Obsługa w dziekanatach Uzgadnianie Obsługa internetowa Przeglądarka dzienników

Model repozytorium Podsystemy muszą wymieniać informacje. Może to się odbywać na dwa sposoby: Dzielone dane są przechowywane w centralnej bazie danych, która jest dostępna dla wszystkich podsystemów Każdy podsystem utrzymuje własną bazę danych i przekazuje dane bezpośrednio do innych systemów Kiedy danych dzielonych jest dużo stosuje się zazwyczaj centralną bazę danych

Architektura narzędzi CASE Edytor projektów Generator kodu Translator projektów Repozytorium przedsięwzięcia Edytor programów Analizator projektów Generator raportów

Współdzielone repozytorium Zalety Wygodna metoda dzielenia dużych ilości danych Podsystemy nie muszą się troszczyć o używanie danych Centralne zarządzanie (backupy, bezpieczeństwo) Model jest schematem danych Wady Podsystemy muszą uzgodnić repozytorium. Nieuchronne kompromisy Ewolucja jest trudna i droga Nie ma możliwości oddzielnych polityk zarządzania Trudne do rozproszenia

Architektura klient-serwer Model systemów rozproszonych, który pokazuje jak dane są przetwarzane i dostarczane do różnych komponentów Zbiór samodzielnych serwerów dostarcza różnych usług jak drukowanie, ... Zbiór klientów używa tych serwerów Sieć pozwala na dostęp klientów do serwerów

Konkurs programistyczny Zawodnik 1 Zawodnik 2 Zawodnik 3 Zawodnik 4 Sieć Serwer drukowania Serwer zadań Serwer weryfikacji Serwer zapasowy

Klient-serwer Zalety Wady Proste przesyłanie danych Efektywne wykorzystanie sieci. Może wymagać tańszego sprzętu Łatwo dodawać nowe serwery lub ulepszać istniejące Wady Trudna i nieefektywna wymiana danych Oddzielna administracja każdego z serwerów Brak centralnej listy usług i nazw serwerów. Trudno sprawdzić które usługi są dostępne

Model maszyny abstrakcyjnej Opisuje sprzęganie podsystemów Dzieli system na zbiór warstw (maszyn abstrakcyjnych) dostarczających usług Pomaga tworzyć system przyrostowo. Kiedy warstwa się zmienia tylko sąsiednie trzeba zmodyfikować Zazwyczaj trudno podzielić system w ten sposób

System zarządzania wersjami Zarządzanie wersjami Zarządzanie obiektami System bazy danych System operacyjny

Modele sterowania Opisują przepływ sterowania pomiędzy podsystemami. Różnią się od modeli dekompozycji systemu Sterowanie scentralizowane Jeden system jest odpowiedzialny za uruchamianie i zatrzymywanie pozostałych podsystemów Sterowanie zdarzeniowe Każdy z podsystemów samodzielnie odpowiada na zdarzenia przychodzące z zewnątrz

Sterowanie scentralizowane Jeden z podsystemów zarządza pozostałymi Model wywołanie-powrót Model zstępującego wywoływania podprogramów, w którym sterowanie zaczyna się na wierzchołku hierarchii i stopniowo jest przekazywane w dół. Odpowiedni dla systemów sekwencyjnych Model menedżera Odpowiedni dla systemów współbieżnych. Jeden komponent jest odpowiedzialny za uruchamianie, zatrzymywanie i koordynację innych systemów

Model wywołanie-powrót

Model menedżera

Systemy sterowane zdarzeniami Sterowane zdarzeniami przychodzącymi z zewnątrz, gdzie system nie ma wpływu na czas zajścia zdarzenia Dwie podstawowe klasy modeli Modele rozgłaszania. Zdarzenie jest wysyłane do wszystkich podsystemów i każdy z nich może na nie zareagować Modele z przerwaniami. Używane w systemach czasu rzeczywistego gdzie przerwania są wykrywane przez obsługę przerwań i przekazywane do komponentów obsługujących Inne modele zawierają arkusze kalkulacyjne i systemy biznesowe

Modele rozgłaszania Przydatne w przypadku integrowania podsystemów rozproszonych w sieci Podsystemy zgłaszają zainteresowanie pewnym zdarzeniem, które jest im przekazywane kiedy zajdzie Polityka obsługi zdarzenie nie jest zawarta w zdarzeniu i programie obsługującym. Podsystemy decydują jakie zdarzenia przyjmować Podsystemy nie wiedzą czy i kiedy zdarzenie będzie obsłużone

Wybiórcze rozgłaszanie

Systemy sterowane przerwaniami Używane w systemach czasu rzeczywistego, gdzie czas reakcji jest kluczowy Są określone typy przerwań i procedury ich obsługi Każdy typ przerwania jest skojarzony z miejscem w pamięci, gdzie przechowuje się adres procedury obsługi przerwania Pozwalają na szybką odpowiedź, ale są skomplikowane i trudne do zweryfikowania

Sterowanie z przerwaniami

Rozkład na moduły Kolejny poziom struktury w którym podsystemy są rozkładane na moduły Dwa typy rozkładu na moduły Model obiektowy, gdzie system jest dzielony na współpracujące moduły Model przepływu danych, gdzie system jest dzielony na moduły funkcjonalne przetwarzające wejście w wyjście Jeśli to możliwe, powinno się unikać decyzji o współbieżności aż do zaimplementowania modułów

Modele obiektowe System jest dzielony na zbiór luźno uzależnionych o siebie obiektów z dobrze opisanymi interfejsami Głównym celem jest identyfikacja klas, atrybutów i operacji Podczas implementacji klasy są tworzone na podstawie modelu klas i dodatkowego modelu kontroli przepływu sterowania

Obiektowy system fakturowania

Modele przepływu danych Funkcyjne przekształcanie wejścia w wyjście Model potokowy (jak w powłoce) Często występują warianty tego modelu. Popularny szczególnie podczas wykonywania obliczeń Nieodpowiedni dla systemów interaktywnych

Zadania w olimpiadzie Błędy Kompilacja Sprawdzanie Wyniki Zadania Testy

Architektury charakterystyczne dla różnych dziedzin Modele architektoniczne dla konkretnych dziedzin zastosowań Dwie główne klasy Modele ogólne, które są abstrakcjami rzeczywistych systemów. Obejmują główne cechy charakterystyczne tych systemów Modele odniesienia, które są jeszcze bardziej abstrakcyjnymi i wyidealizowanymi modelami. Dostarczają ogólnych informacji o strukturze klasy systemów Modele ogólne są zazwyczaj wstępujące, a modele odniesienia zstępujące

Modele ogólne Bardzo dobrze znanym modelem ogólnym jest model kompilatora Analizator leksykalny Tablica symboli Analizator syntaktyczny Drzewo programu Analizator semantyczny Generator kodu Ogólny model kompilatora można użyć w różnych modelach architektonicznych

Model kompilatora

System przetwarzania języka

Modele odniesienia Modele odniesienia są wynikami analizy dziedziny a nie istniejących systemów Mogą być używane jako podstawa tworzenia systemu albo do porównania z innymi systemami. Przykładem jest model OSI komunikacji w sieci

Model odniesienia OSI Application

Główne tezy Architekt oprogramowania jest odpowiedzialny za stworzenie modelu, podział systemu na podsystemy i ustalenie komunikacji Duże systemy rzadko pasują do jednego modelu Systemy można dzielić zgodnie z architekturą klient-serwer modelem z repozytorium i maszyną abstrakcyjną Modele kontroli sterowania zawierają sterowanie centralne i zdarzeniowe

Główne tezy Podział systemu na moduły zawiera podziały obiektowe i przepływów danych Architektury charakterystyczne dla dziedziny mogą być ogólne jeśli powstały na podstawie analizy systemów lub odniesienia jeśli powstały na podstawie dziedziny