Inżynieria Wytwarzania Systemów Wbudowanych

Podobne dokumenty
wbudowane October 7, 2015 KSEM WETI PG Komputery przemysłowe i systemy wbudowane Oprogramowanie systemów wbudowanych - wydajność Wydajność

Programowanie współbieżne i rozproszone

Komputery przemysłowe i systemy wbudowane

Strumień specjalizujący urządzeniowo - informatyczny dla wszystkich kierunków na ETI (II st.) 3 grudnia 2014

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Specjalizacja uzupełniająca. urządzeniowo - informatyczna dla wszystkich kierunków na ETI (II st.)

Wzorce projektowe. dr inż. Marcin Pietroo

problem w określonym kontekście siły istotę jego rozwiązania

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Inżynieria Wytwarzania Systemów Wbudowanych

Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016

Wykład 5. Inżynieria oprogramowania MIS s MIO s MIS n Listopad 2014

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

Wykład 1 Inżynieria Oprogramowania

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Programowanie Zespołowe

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Wprowadzenie do programowania aplikacji mobilnych

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Historia modeli programowania

Metody optymalizacji soft-procesorów NIOS

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce odpowiedzialności

INFORMATYKA Pytania ogólne na egzamin dyplomowy

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Programowanie obiektowe. Wprowadzenie

Zaawansowane programowanie w C++ (PCP)

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

OBC01/TOPMOB Projektowanie w języku Objective-C

Replikacje. dr inż. Dziwiński Piotr Katedra Inżynierii Komputerowej. Kontakt:

Wzorce projektowe. dr inż. Marcin Pietroo

Specjalność uzupełniająca

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2015

Program szkolenia: Zaawansowane programowanie w C++

Projektowanie logiki aplikacji

UML w Visual Studio. Michał Ciećwierz

Wzorce projektowe i refaktoryzacja

Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób?

Programowanie obiektowe

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

KARTA PRZEDMIOTU. Projektowanie systemów czasu rzeczywistego D1_13

Analiza i projektowanie obiektowe 2016/2017. Wykład 11: Zaawansowane wzorce projektowe (1)

Systemy rozproszone System rozproszony

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

AM 331/TOPKATIT Wsparcie techniczne użytkowników i aplikacji w Windows 7

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce

Zaawansowane programowanie w języku C++

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Wypożyczalnia VIDEO. Technologie obiektowe

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Programowanie obiektowe

Inżynieria oprogramowania (Software Engineering) Wykład 1

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

PRZEWODNIK PO PRZEDMIOCIE

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Systemy Rozproszone Technologia ICE

Analiza i projektowanie aplikacji Java

Wykład 4. Projektowanie. MIS n Inżynieria oprogramowania Październik 2014

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

Architektury usług internetowych. Tomasz Boiński Mariusz Matuszek

Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Inżynieria Wytwarzania Systemów Wbudowanych

Podstawy modelowania programów Kod przedmiotu

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

KARTA PRZEDMIOTU. Cel 1 Zapoznanie studentów z architekturami i platformami mobilnymi

Modelowanie i analiza systemów informatycznych

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Mechanizmy pracy równoległej. Jarosław Kuchta

Technologie obiektowe

Wzorce projektowe cz. I. Wzorce projektowe cz. I 1/33

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

Programowanie Systemów Wbudowanych

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF. Tomasz Turski

Logistyka I stopień Ogólnoakademicki. Niestacjonarne. Zarządzanie logistyczne Katedra Inżynierii Produkcji Dr Sławomir Luściński

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Projektowanie obiektowe oprogramowania Wykład 7 wzorce czynnościowe (2) Wiktor Zychla 2018

Wprowadzenie. Dariusz Wawrzyniak 1

Transkrypt:

GUT Intel 2015/16 1/19 Inżynieria Wytwarzania Systemów Wbudowanych Wykład 4b Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG October 18, 2018

Wzorce projektowe Wzorzec projektowy - ogólne rozwiazanie znanego problemu. pozwala na optymalizację procesu projektowania pod względem jednegu lub kilku kryteriów, np. QoS optymalizuję pewne aspekty systemu kosztem innych oprogramowanie systemu wbudowanego powinno zawierać liczne wzorce projektowe, będace w równowadze jeśli chodzi o optymalizację różnych aspektów działania systemu GUT Intel 2015/16 2/19

Wzorce projektowe Wzorzec projektowy ma cztery cechy: Nazwa - umożliwia odniesienie sie do wzorca w jasny sposób. Przeznaczenie - problem do rozwiazania, kryterium optymalizacji. Identyfikuje klasę problemów, które wzorzec rozwiazuje. Rozwiazanie - wzorzec sam w sobie Konsekwencje - zyski i koszty zastosowania wzorca. poprawa najbardziej krytycznego pod względem wydajności elementu kosztem zużycia pamięci? poprawa bezpieczeństwa kosztem obsługi i zasilania większej liczby sensorów? Wzorce projektowe dotycz a zarówno programowania strukturalnego jak i obiektowego GUT Intel 2015/16 3/19

Wzorce projektowe programowanie strukturalne - wzorce w języku C standardowe elementy języka: pliki nagłówkowe, typy, stałe, zmienne, funkcje, dyrektywy preprocesora, kod kompilowany do plików obiektów i linkowany do pliku wykonywalnego. źródło: [R. Oshana, M. Kraeling, Software Engineering for Embedded Systems: Methods, Practical Techniques, and Applications (Expert Guide), Elsevier, 2013 GUT Intel 2015/16 4/19

Wzorce projektowe Programowanie object-based struktury danych i typy definiowane przez użytkownika wiele instancji struktur danych identyfikacja instancji przez wskaźnik GUT Intel 2015/16 5/19

Wzorce projektowe Programowanie object-oriented (w języku C) wskaźniki do funkcji - dodatkowa warstwa abstrakcji możliwość wołania różnych funkcji w zależności od instancji obiektu GUT Intel 2015/16 6/19

Wzorce projektowe - przykład Podsystem pewnego dużego systemu powinien zapewniać komunikację w celu przesyłania danych i powiadomień o zdarzeniach. Ten sam podsystem powinien działać na różnych platformach pośrednich (middleware) Zmiana platformy pośredniej powinna być dokonywana jak najmniejszym wysiłkiem. Ważne cechy: re-użycie i przenośność GUT Intel 2015/16 7/19

Wzorce projektowe - przykład Kluczowy problem: jak zapewnić komunikację z różnymi platformami pośrednimi? IDL (interface definiction language) - zależny od platformy. Rozwiazania: nowy IDL, który może być kompilowany dla różnych platform pośrednich nowy IDL tylko do pośredniczenia między wybranymi elementami gotowego IDL a platformami Port Proxy Pattern - nowa warstwa obiektów interfejsu do tłumaczenia zapytań GUT Intel 2015/16 8/19

Wzorce projektowe - przykład Nazwa: Port Proxy Pattern. Komunikacja między architektonicznie różnymi jednostkami. Przeznaczenie (problem context): Różne architektonicznie jednostki połaczone sa ze soba poprzez porty. Problem: jak zapewnić komunikację możliwie niezależna od architektury tych jednostek? Struktura: Tworzenie obiektów proxy, które pośrednicza w wymianie danych między jednostkami, tłumaczac wiadomości i usługi z poziomu aplikacji do poziomu sieci i vice versa. Zmiana jednostki w sieci wymaga utworzenia nowych obiektów proxy. GUT Intel 2015/16 9/19

Wzorce projektowe - przykład źródło: [R. Oshana, M. Kraeling, Software Engineering for Embedded Systems: Methods, Practical Techniques, and Applications (Expert Guide), Elsevier, 2013 Klasy: AbstractClient i AbstractServer obsługuja tylko warstwę aplikacji. Jeśli w systemie nie ma platformy pośredniej, wówczas komunikacja może odbywać się tylko w warstwie aplikacji (między AbstractClient i AbcstractServer) Jeśli istnieje platforma pośrednia (np. TCP/IP, CORBA) klasy ClientProxy i ServerProxy dokonuja konwersji wiadomości miedzy warstwa aplikacji a warstwa sieci. GUT Intel 2015/16 10/19

Wzorce projektowe - przykład Zachowanie klas we wzorcu Proxy Port Pattern źródło: [R. Oshana, M. Kraeling, Software Engineering for Embedded Systems: Methods, Practical Techniques, and Applications (Expert Guide), Elsevier, 2013 GUT Intel 2015/16 11/19

Wzorce projektowe - przykład Proxy Port Pattern - konsekwencje Zyski: Koszty: Izolacja oprogramowania elementów sieci od szczegółów infrastruktury komunikacyjnej Warstwa proxy może zapewniać różne aspekty QoS Komunikacja synchroniczna lub asynchroniczna Zmiana infrastruktury komunikacyjnej nie powoduje konieczności zmiany oprogramowania jednostki konieczność pisania wielu wersji proxy dla różnych infrastruktur komunikacyjnych (czasem bardzo złożonych -> dużo pracy) możliwość wystapienia istotnych opóźnień w komunikacji GUT Intel 2015/16 12/19

Wzorce projektowe - proces GUT Intel 2015/16 13/19

Wzorce projektowe - proces Model poczatkowy (initial model) nie optymalizuj zbyt wcześnie. Na pewno nie na tym etapie! Dopiero wtedy, gdy program zachowuje się poprawnie Identyfikacja kryteriów projektowych (desing criteria) jeśli optymalizujesz jeden aspekt, to zawsze kosztem innych! dokładna identyfiacja tych aspektów jest ważna dla spełnienia założonych wymagań. twórz listy rankingowe kryteriów Wybór wzorców projektowych bierz pod uwagę listy rankingowe opracowane w poprzednim punkcie GUT Intel 2015/16 14/19

Różne spojrzenia na architekturę oprogramowania każdemu aspektowi odpowiada zwykle 1-2 wzorce projektowe w kodzie programu. GUT Intel 2015/16 15/19

Wzorce projektowe - różne spojrzenia na architekturę oprogramowania Subsystem and component view - najbardziej ogólne spojrzenie na cały system; zarzadzanie usługami i danymi, charakterystyka interfejsów layered pattern microkernel pattern recursive containment pattern port pattern Concurency and resource view - zasady współdzielenia zasobów, synchronizacja i szeregowanie watków cyclic executive pattern static priority patern interrupt pattern guarded call pattern message queue pattern randezvous pattern GUT Intel 2015/16 16/19

Wzorce projektowe - różne spojrzenia na architekturę oprogramowania Deployment view - zależności między dyscyplinami, reprezentowanymi przez projekt (oprogramowanie, elektronika, hydraulika, etc.) static allocation pattern hardware proxy pattern hardware adapter pattern mediator pattern debouncing pattern Distribution view - dystrubucja programu w systemie wieloprocesorowym/wielokomputerowym, zachowanie w infrastrukturze komunikacyjnej (protokoły, platformy pośrednie, topologia sieci) shared memory pattern observer pattern port proxy pattern data bus pattern GUT Intel 2015/16 17/19

Wzorce projektowe - różne spojrzenia na architekturę oprogramowania Dependability view - bezpieczeństwo i niezawodność protected single channel pattern homogeneous redundancy pattern heterogeneous redundancy pattern CRC pattern smart data pattern proxy-based firewall pattern secure channel pattern GUT Intel 2015/16 18/19

Literatura R. Oshana, M. Kraeling, Software Engineering for Embedded Systems: Methods, Practical Techniques, and Applications (Expert Guide), Elsevier, 2013 GUT Intel 2015/16 19/19