component-based software engineeringcoach.kis.p.lodz.pl/psoir-cbse.pdfprzykładowe modele...

24
Component-based software engineering Chapter 17 Software reuse 1

Upload: others

Post on 18-Sep-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Component-based software engineering

Chapter 17 Software reuse 1

Page 2: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Komponenty i modele komponentów

Procesy inżynierii komponentowej

Chapter 17 Software reuse 2

Page 3: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Podejście do wytwarzania oprogramowania polegająca na powtórnym użyciu elementów zwanych komponentami oprogramowania.

Pojawiła się jako odpowiedź na porażkę obiektowości w kontekście powtórnego użycia w większej skali (Pojedyncze klasy obiektów są zbyt szczegółowe i specyficzne).

Komponenty są bardzie abstrakcyjne niż klasy obiektów i mogą być dostawcami złożonych usług (jako niezależne jednostki).

Chapter 17 Software reuse 3

Page 4: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Niezależne komponenty definiowane przez interfejsy.

Standardy komponentów w celu umożliwienia ich integracji.

Warstwa pośrednia wspierająca inter-operacyjność komponentów.

Proces rozwoju, który jest nakierowany na powtórne użycie.

Chapter 17 Software reuse 4

Page 5: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Poza zasadą powtórnego użycia Inżynieria Komponentowa „wspiera”: Niezależność – Komponenty są niezależne – nie

kolidują ze sobą; Hermetyzacja – ▪ Implementacja komponentów jest ukryta; ▪ Komponenty komunikują się za pośrednictwem

interfejsów;

Współdzielenie ▪ Platformy komponentowe są współdzielone przez

komponenty co pozwala na redukcję kosztów rozwoju.

Chapter 17 Software reuse 5

Page 6: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Abu komponenty mogły się ze sobą komunikować oraz współpracować potrzebne są standardy.

Niestety nie istnieje jeden standard: Sun’s Enterprise Java Beans

Microsoft’s COM and .NET

CORBA’s CCM W praktyce utrudnia to asymilację podejścia.

Nie ma możliwości współpracy komponentów wykorzystujących różne podejścia.

Chapter 17 Software reuse 6

Page 7: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Komponenty udostępniają usługę niezależnie od miejsca uruchamiania i wykorzystanego języka programowania Komponent to niezależna, wykonywalna

jednostka, która może składać się z jednego lub wielu wykonywalnych obiektów;

Interfejs komponentu jest publiczny i wszelka interakcja odbywa się za jego pośrednictwem;

Chapter 17 Software reuse 8

Page 8: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Councill and Heinmann: A software component is a software element that conforms to a

component model and can be independently deployed and composed without modification according to a composition standard.

Szyperski: A software component is a unit of composition with contractually

specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third-parties.

Chapter 17 Software reuse 9

Page 9: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Komponent jest niezależną, wykonywalną jednostką. Nie musi być kompilowany przed użyciem.

Usługa oferowana przez komponent jest dostępna za pośrednictwem interfejsu i cała interakcja z komponentem odbywa się za jego pośrednictwem.

Interfejs komponentu wyrażony jest w terminach parametryzowanych operacji. Wewnętrzny stan komponentu nie jest eksponowany.

Chapter 17 Software reuse 12

Page 10: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Chapter 17 Software reuse 14

Page 11: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Chapter 17 Software reuse 15

Page 12: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Model komponentowy to definicja standardów implementacji, dokumentacji i rozmieszczania komponentów.

Przykładowe modele komponentowe EJB model (Enterprise Java Beans)

COM+ model (.NET model)

Corba Component Model

Model definiuje w jako sposób powinny być definiowane

interfejsy oraz specyfikuje elementy, które powinny pojawić się w jego ramach.

Chapter 17 Software reuse 16

Page 13: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Chapter 17 Software reuse 17

Page 14: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

18

Page 15: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

19

Page 16: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

20

Page 17: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Modele komponentowe stanowią podstawę warstwy pośredniej, która udostępnia mechanizmy wspierające uruchamianie komponentów.

Implementacja modelu komponentowego udostępnia: Usługi platformy, które pozwalają na komunikację komponentów

zdefiniowanych zgodnie z modelem. Inne usługi, które są niezależne od usług konkretnych aplikacji i mogą

być wykorzystywane przez różne komponenty.

Aby możliwe był wykorzystanie usług udostępnianych przez implementację modelu, komponenty muszą być rozmieszczane w kontenerach. Kontener udostępnia zestaw (standardowych) interfejsów

pozwalających na dostęp do implementacji usług platformy.

Chapter 17 Software reuse 22

Page 18: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Chapter 17 Software reuse 23

Page 19: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

Modele komponentowe stanowią podstawę warstwy pośredniej, które udostępnia mechanizmy wspierające uruchamianie komponentów.

Implementacja modelu komponentowego udostępnia: Usługi platformy, które pozwalają na komunikację komponentów

zdefiniowanych zgodnie z modelem. Inne usługi, które są niezależne od usług konkretnych aplikacji i mogą

być wykorzystywane przez różne komponenty.

Aby możliwe był wykorzystanie usług udostępnianych przez implementację modelu, komponenty muszą być rozmieszczane w kontenerach. Kontener udostępnia zestaw (standardowych) interfejsów

pozwalających na dostęp do implementacji usług platformy.

Chapter 17 Software reuse 24

Page 20: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

26

Page 21: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

27

Page 22: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

28

Page 23: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

29

Page 24: Component-based software engineeringcoach.kis.p.lodz.pl/PSOiR-cbse.pdfPrzykładowe modele komponentowe EJB model (Enterprise Java Beans) COM+ model (.NET model) Corba Component Model

CBSE to podejście bazujące na wielokrotnym użyciu w definiowaniu i implementacji luźno powiązanych komponentów.

Komponent to jednostka oprogramowania, której funkcjonalność i zależności są jasno zdefiniowane poprzez interfejsy.

Model komponentów definiuje zbiór standardów, który dostawcy i korzystający z komponentów powinni stosować.

Kluczowe procesy CBSE to „CBSE for reuse” i „CBSE with reuse”.

30