Uvod u dijagram komponenti Prof dr Angelina Njegu

  • Slides: 54
Download presentation
Uvod u dijagram komponenti Prof. dr Angelina Njeguš Redovni profesor na Univerzitetu Singidunum anjegus@singidunum.

Uvod u dijagram komponenti Prof. dr Angelina Njeguš Redovni profesor na Univerzitetu Singidunum anjegus@singidunum. ac. rs Beograd, 2019/2020.

Notacije modelovanja UML Class Diagrams • information structure • relationships between data items •

Notacije modelovanja UML Class Diagrams • information structure • relationships between data items • modular structure for the system UML Package Diagrams Use Cases user’s view Lists functions visual overview of the main requirements (UML) Statecharts Overall architecture • responses to events Dependencies between components • dynamic behavior UML Sequence Diagrams • event ordering, reachability, deadlock, etc Activity diagrams individual scenario business processes; interactions between users and system concurrency and synchronization; Sequence of messages dependencies between tasks;

Dijagram komponenti

Dijagram komponenti

Finalni UML dijagrami komponenti i uvođenja opisuju izvršnu arhitekturu sistema § Opis fizičke implementacije

Finalni UML dijagrami komponenti i uvođenja opisuju izvršnu arhitekturu sistema § Opis fizičke implementacije sistema ukazuje na tri različita problema: softver, hardver i njihovu integraciju. § Dijagrami komponenti i uvođenja modeluju integraciju i distribuciju fizičkih komponenti softvera na hardverske komponente. § Koje su to fizičke komponente softvera? Izvorni kod, skript-ovi, tabele baze podataka, biblioteke. . .

Šta je komponenta? § Termin „komponenta“ ukazuje na jednu modularnu jedinicu ili grupu klasa

Šta je komponenta? § Termin „komponenta“ ukazuje na jednu modularnu jedinicu ili grupu klasa koje: rade zajedno predstavljaju jednu autonomnu jedinicu, tj. nezavisni deo sistema ili podsistem koji može da komunicira sa ostalim delovima sistema mogu biti ponovo upotrebljive mogu biti zamenjive u svom okruženju.

Interfejsi komponente • • Komponenta definiše svoja ponašanja kroz: interfejse koje nudi (provided interfaces):

Interfejsi komponente • • Komponenta definiše svoja ponašanja kroz: interfejse koje nudi (provided interfaces): opisuje servise koje komponenta nudi okruženju interfejse koje zahteva (required interfaces): opisuje servise koje komponenta očekuje od svog okruženja Komponenta se može zameniti drugom komponentom jedino ako obe imaju iste interfejse.

Šta sve može biti komponenta? § Komponente se mogu grupisati u zavisnosti od tipa:

Šta sve može biti komponenta? § Komponente se mogu grupisati u zavisnosti od tipa: ◦ ◦ Neke komponente postoje jedino za vremenu kompajliranja neke postoje tokom povezivanja neke postoje tokom izvršavanja aplikacije dok neke postoje više puta (trajnije su). ◦ Komponente softvera mogu biti: izvršni fajlovi, biblioteke, dokumenta, tabele u bazi podataka, skript-ovi, izvorni kod, Enterprise Java Bean (EJB) i dr.

<<Stereotipi>> komponenata § Stereotipi komponenata ukazuju na ulogu koju komponenta ima u implementaciji. §

<<Stereotipi>> komponenata § Stereotipi komponenata ukazuju na ulogu koju komponenta ima u implementaciji. § Opšti stereotipi komponenata su: <<executable>> - komponenta koja se izvršava na procesoru <<file>> - predstavlja obično podatke ili izvorni kod <<document>> - dokument, npr. strana koja se ubacuje na Web strani <<table>> - komponenta baze podataka kojoj pristupa neka izvršna jedinica …

Zavisnosti između komponenata § Komponente mogu da zavise jedna od druge, npr: • izvršna

Zavisnosti između komponenata § Komponente mogu da zavise jedna od druge, npr: • izvršna (. exe) može da zahteva pristup. dll (dynamic link library) biblioteci • neka klijent aplikacija može da zavisi od aplikacije na serverskoj strani, koja zavisi od interfejsa baze podataka itd. • Usage je zavisnost u kojem element (klijent) zahteva drugi element (supplier) kako bi se potpuno definisao ili implementirao • Abstraction povezuje dva elementa koji predstavljaju isti koncept, ali na različitim nivoima apstrakcije. • Deployment je zavisnost koja pokazuje lokaciju nekog elementa.

Pregled relacija zavisnosti

Pregled relacija zavisnosti

Šta je dijagram komponenti? • Dijagram komponenti modeluje strukturu softvera, ukazujući na zavisnosti između

Šta je dijagram komponenti? • Dijagram komponenti modeluje strukturu softvera, ukazujući na zavisnosti između tih softverskih komponenata • Crta se kao graf komonenti, ponekad grupisanih u pakete ili podsisteme, na kojem se prikazuju zavisnosti između njih.

Namena dijagrama komponenti § Namena dijagrama komponenti je da definiše softverske module i njihove

Namena dijagrama komponenti § Namena dijagrama komponenti je da definiše softverske module i njihove međusobne relacije Svaka komponenta softvera je deo koda koji se nalazi u memoriji na nekom delu hardvera Svaka komponenta mora da definiše interfejs koji omogućava drugim komponenatama da komuniciraju sa njom § Navodeći ključne elemente kao što su komponente, interfejsi komponenti i zavisnosti može se opisati fizička implementacija sistema u terminima softverskih modula i njihovih međusobnih odnosa.

Notacije komponenti na dijagramu komponenti § § § Komponente su autonomne i enkapsulirane jedinice

Notacije komponenti na dijagramu komponenti § § § Komponente su autonomne i enkapsulirane jedinice unutar sistema ili podsistema koje obezbeđuju jedan ili više interfejsa Ideja je da se komponenta može lako zameniti, ponovo upotrebiti, jer enkapsulira ponašanja i implementira određeni interfejs Na slici se prikazuju različiti načini prikazivanja komponenti:

Elementi komponente § Komponenta može da ima sledeće elemente: Interfejse (Interface) – Deklariše skup

Elementi komponente § Komponenta može da ima sledeće elemente: Interfejse (Interface) – Deklariše skup operacija i obaveza Relacije zavisnosti (Usage dependencies) - kada jedan element zahteva drugi element za svoju potpunu implementaciju. Portove (Port) • Port predstavlja tačku interakcije između komponente i njenog okruženja • Koristi se kada komponenta delegira interfejse u internu klasu. • Predstavljen je malim kvadratom na kraju interfejsa Konektore (Connector) • Povezuje dve komponente • Dva tipa: Delegation i Assembly.

Modelovanje interfejsa komponenti § Komponenta može da obezbedi jedan ili više javnih interfejsa Obezbeđeni

Modelovanje interfejsa komponenti § Komponenta može da obezbedi jedan ili više javnih interfejsa Obezbeđeni interfejsi predstavljaju servise koje komponente obezbeđuje svojim klijentima Na slici gore desno se prikazuje koje interfejse komponenta Order zahteva i obezbeđuje § UML 2 uvodi još jedan način prikaza interfejsa komponenti (slika dole desno) Krug na kraju strelice (lollipop) predstavlja interfejs koji komponenta obezbeđuje Polu krug (socket) predstavlja interfejs koji komponenta zahteva

Interfejsi komponente: Prikaz crne i bele kutije (black and white-box view) § Prikaz crne

Interfejsi komponente: Prikaz crne i bele kutije (black and white-box view) § Prikaz crne kutije - kada se ne vidi interna struktura interfejsa, već se interfejs prikazuje npr. u vidu kruga § Prikaz bele kutije – kada se jasno vide metode interfejsa. Relacije u tom slučaju su: Za provided interfejs: relacija Realizacije. Na slici komponenta porudžbina realizuje interfejs Unos porudžbine Za required interfejs: relacija <<use>> ka interfejsu Osoba. 16

Interfejsi komponente: prikaz crne kutije (black box view) • Provided interfejs je interfejs koji

Interfejsi komponente: prikaz crne kutije (black box view) • Provided interfejs je interfejs koji komponenta realizuje • Required interfejs je interfejs koji je potreban komponenti da bi funkcionisala.

Port n Određuje različite tačke interakcije: • Između komponente i njenog okruženja • Između

Port n Određuje različite tačke interakcije: • Između komponente i njenog okruženja • Između komponente i njenih internih delova n Portovi mogu biti imenovani n Port je pridružen interfejsu koji određuje prirodu interakcije koja se može dogoditi preko porta • Port ukazuje na to da sama komponenta ne obezbeđuje željeni interfejs (required ili provided), već komponenta delegira interfejs internoj klasi.

Modelovanje relacija komponenti § Ukoliko se prikazuju relacije između komponenata onda interfejsi mogu da

Modelovanje relacija komponenti § Ukoliko se prikazuju relacije između komponenata onda interfejsi mogu da uključe i strelice zavisnosti koje polaze od zahtevanog interfejsa (socket), a završavaju se kod interfejsa provajdera (lollipop). Slika: Dijagram komponenti (prikazuje se kako komponenta Order System zavisi od drugih komponenata)

Konektori § Dva tipa konektora: Delegiranje (Delegation): • Predstavlja prosleđivanje signala internoj komponenti radi

Konektori § Dva tipa konektora: Delegiranje (Delegation): • Predstavlja prosleđivanje signala internoj komponenti radi realizacije Sklapanje (Assembly): • Ovaj konektor između dve komponente definiše da jedna komponenta obebezbeđuje one servise koja druga komponenta zahteva • Može se definisati samo od required ka provided interfesju. • Notacija Assembly konektora je tzv. “ball-and-socket” konekcija

Assembly konektori

Assembly konektori

Relacija Abstraction § § § Relacija apstrakcije je zavisnost između elemenata modela koji predstavljaju

Relacija Abstraction § § § Relacija apstrakcije je zavisnost između elemenata modela koji predstavljaju isti koncept na različitim nivoima apstrakcije ili različitim perspektivama. U relaciji apstrakcije, jedan element modela, npr. Client, je detaljniji (prerađeniji) u odnosu na drugi element, npr. Supplier. Relacije apstrakcije mogu povezivati i elemente modela koji su u istom modelu ili u različitim modelima. Na primer, ukoliko razvijate model analize, a zatim model projektovanja, možete ova dva modela povezati relacijom apstrakcije ukazujući da model projektovanja nudi različite nivoe apstrakcije za isti sistem.

Modelovanje interne strukture komponente Kako modelovati internu strukturu komponenata kada se ona sastoji od

Modelovanje interne strukture komponente Kako modelovati internu strukturu komponenata kada se ona sastoji od drugih komponenata? § § Da bi se prikazala interna struktura komponente, potrebno je nacrtati jednu veću komponentu, a u njoj njene interne komponente Na sledećoj slici se prikazuje interna struktura komponente Prodavnica (Store). § Na granicama komponente Store nalaze se kvadratići koji se nazivaju portovi § § Portovi obezbeđuju način modelovanja koji prikazuje u kakvoj su vezi interfejsi provided/required sa internim delovima komponente Portovi omogućavaju razdvajanje interne strukture komponente Store od eksternih entiteta Order. Entry port se delegira interfejsu Order. Entry komponente Order na obradu Takođe, interna komponenta Customer koja zahteva interfejs Account se delegira Account interfejs portu § Store komponenta obezbeđuje interfejs Order. Entry, a zahteva interfejs Account. Store komponenta je sačinjena od tri komponenti: Order, Customer i Product komponente Povezujući se sa Account portom, interne komponente (npr. Customer komponenta) može da ima lokalnog predstavnika nekog nepoznatog eksternog entiteta čiji port interfejs implementira Zahtevani Account interfejs će biti implementiran od strane spoljne komponente Interne komponente su povezane sa assembly konektorom koji povezuje jednu komponentu provided interfejsa sa drugom komponentom required interfejsa.

Primer: Interna struktura komponente Store

Primer: Interna struktura komponente Store

Primer: Komponente stereotipa <<subsystem>>

Primer: Komponente stereotipa <<subsystem>>

Koraci modelovanja komponenti 1. Pronađite komponente i prikažite zavisnosti 2. Identifikujte podkomponente 3. Identifikujte

Koraci modelovanja komponenti 1. Pronađite komponente i prikažite zavisnosti 2. Identifikujte podkomponente 3. Identifikujte interfejse između komponenti

Primer: Sistem biblioteke

Primer: Sistem biblioteke

Primer dijagrama komponenti

Primer dijagrama komponenti

Vežba 1: Nacrtati white box prikaz za komponentu kontrola zaliha § Komponenta Kontrola zaliha

Vežba 1: Nacrtati white box prikaz za komponentu kontrola zaliha § Komponenta Kontrola zaliha (Inventory Control) omogućava: Upravljanje kretanjem zaliha (Stock Movement) pomoću sledećih metoda: item. Out(), item. In(), adjust. Stock() i create. Report(). Kontrolu kataloga proizvoda (Catalog Control) sa metodama: item. Create() i item. Delete(). Dopunu zaliha (Re. Order) kreiranjem porudžbine (create. Order()). § Za potpunu implementaciju ove komponente, zahteva se: Pristup bazi podataka (Database Access) radi vršenja upita (query()) i ažuriranja baze (update())

Rešenje vežbe 1

Rešenje vežbe 1

Vežba 2: Dopuniti prethodni primer sa drugim komponentama (black box prikaz) § Komponente Parts.

Vežba 2: Dopuniti prethodni primer sa drugim komponentama (black box prikaz) § Komponente Parts. Order (poručivanje delova) i Build. List (sastavnica) zahtevaju interfejs Stock Movement, koga obezbeđuje Inventory. Ctrl komponenta § Komponenta Catalogue. Entry zahteva interfejs Catalogue. Ctrl kojeg nudi komponenta Inventory. Ctrl. § Komponenta Stock. Order zahteva interfejs Re. Order kojeg nudi komponenta Inventory. Ctrl. § Komponenta Inventory Database (baza podatka zaliha) nudi pristup bazi podataka (Database Access) komponenti Inventory. Ctrl.

Rešenje vežbe 2

Rešenje vežbe 2

Vežba 3: Prikazati internu strukturu komponente Inventory. Ctrl § Prikazati internu strukturu komponente i

Vežba 3: Prikazati internu strukturu komponente Inventory. Ctrl § Prikazati internu strukturu komponente i odgovarajuće konektore: Inventory. Ctrl ima sledeće podkomonente: Transaction, Requisition i Ctrl. Centre. Zavisnosti između komponenata su prikazane na slici dole. Interfejs Stock. Movement se delegira komponenti Transaction. Interfejs Re. Order se delgira komponenti Requisition. Interfejs Catalogue. Control se delegira komponenti Ctrl. Centre. Komponenta Ctl. Centre delegira pristup bazi podataka (Database Access)

Rešenje vežbe 3

Rešenje vežbe 3

Vežba 4: Nacrtati podsisteme sa svojim komponentama i vezama § Podsistem <<subsystem>> Web. Store

Vežba 4: Nacrtati podsisteme sa svojim komponentama i vezama § Podsistem <<subsystem>> Web. Store sadrži sledeće komponente: Catalog. Search, Shopping. Cart i Authentication. Ovaj podsistem nudi sledeće: • Product. Search preko Catalog. Search komponente • Online. Shopping preko Shopping. Cart komp. • User. Session preko Authentication komp. Podsistem zahteva sledeće komponente: • Catalog. Ctrl preko Catalog Search komp. • Manage Orders preko Shopping. Cart komp. • Manage Customers preko Authentication komp. Takođe komponenta Shopping Cart zahteva User Session od Authentication komp. • Podsistem Warehouse sadrži komponentu Inventory. Ctrl i preko nje omogućava interfejse Catalog. Ctrl i Manage. Inventory. • Podsistem Accounting sadrži komponente Orders, Customers i Accounts. • Preko Orders komponente ovaj podsistem nudi Manage. Orders zahteva Manage. Inventory. • Preko komp. Customers nudi Manage Customers. Ovaj interfejs koristi i komponenta Orders. Komponenta Customers zahteva Manage Accounts od komp. Accounts.

Vežba 5: Nacrtati podsistem Banka § Podsistem Banka sadrži sledeće komponente: Bank Account koji

Vežba 5: Nacrtati podsistem Banka § Podsistem Banka sadrži sledeće komponente: Bank Account koji zahteva podizanje novca (Cash. Withdraw) i plaćanje u prodavnici (Payment in Shop) Debit Card nudi interfejs Card i delegira komponenti ATM. Credit Card nudi interfejs Card i delegira komponenti Purchase.

Lab 1: Delovi komponente u RSA alatu • Kreirajte dijagram komponenti i dodajte jednu

Lab 1: Delovi komponente u RSA alatu • Kreirajte dijagram komponenti i dodajte jednu komponentu. • Uključivanje određenih pregrada (compartment) kod komponente: • Window > Preferences • Proširiti > Modeling > UML Diagrams > Component • Čekirati pod Show compartments: Required interfaces i Provided interfaces • Ukoliko se žele prikazati i nazivi, onda pod Show compartment titles čekirati isto Required i Provided interfejse.

Prikaz interfejsa za određenu komponentu § Ukoliko želite da samo određene komponente imaju vidljivost

Prikaz interfejsa za određenu komponentu § Ukoliko želite da samo određene komponente imaju vidljivost pregrada, to se može učiniti na sledeći način: Desni klik na komponentu: Filters > Show Hide Compartments on the component > Required Interfaces compartment ili Desni klik na komponentu: Filters > Show Hide Compartments on the component > Provided Interfaces compartment

Lab 2: Dodavanje interfejsa komponenti u RSA • Dodajte komponentu “Online. Payment” i dva

Lab 2: Dodavanje interfejsa komponenti u RSA • Dodajte komponentu “Online. Payment” i dva interfejsa: “Identity. Management” i “Payment. Transaction” • Prevući interfejs “Identity. Management” preko Required interfaces pregrade na komponenti. • Prevući interfejs “Payment. Transaction” preko Provided interfaces pregrade na komponenti.

Prikaz “External View” § Da bi se prikazao interfejs bilo kao krug ili soket

Prikaz “External View” § Da bi se prikazao interfejs bilo kao krug ili soket koji je pridužen komponenti, potrebno je omogućiti External View Option, na sledeći način: Filters > Show External View (slika desno)

Lab 3: Nacrtati komponentu “Order” § Prikazati komponentu “Order” na dva načina: Sa internim

Lab 3: Nacrtati komponentu “Order” § Prikazati komponentu “Order” na dva načina: Sa internim pregradama za provided i required interfejsima (Interfejs Invoice ima dve operacije: create() i register. Payment()). Sa External View, odnosno spoljnim prikazima interfejsa kao krug i/ili soket.

Korak 1: Kreirati UML projekat § File > New > Project § Modelling >

Korak 1: Kreirati UML projekat § File > New > Project § Modelling > UML Project name: Component. Diagram § Blank Package > Package name: Order. Component

Korak 2: Kreirati komponentu i interfejse § U Project Explorer-u, pod kreiranim projektom u

Korak 2: Kreirati komponentu i interfejse § U Project Explorer-u, pod kreiranim projektom u okviru modela, desnim klikom na paket odabrati Add diagram > Component diagram. § Sa palete kreirati jednu komponentu Order i pet interfejsa: Person, Invoice, Orderable. Item, Item. Allocation i Tracking.

Korak 3: Prevući interfejse § Prevući interfejse u odgovarajuće pregrade: Person, Invoice i Orderable.

Korak 3: Prevući interfejse § Prevući interfejse u odgovarajuće pregrade: Person, Invoice i Orderable. Item prevući do Required interfaces Tracking i Item. Allocation prevući do Provided Interfaces

Lab 4: Kreirati kompozitni strukturni dijagram Napomena: § Kompozitni strukturni dijagram (Composite Structure Diagram)

Lab 4: Kreirati kompozitni strukturni dijagram Napomena: § Kompozitni strukturni dijagram (Composite Structure Diagram) prikazuje internu kolaboraciju klasa, interfejsa ili komponenti kako bi opisala funkcionalnost.

Korak 1: Kreirati komponente i interfejs § Kreireti dijagram komponenti: Add Diagram > Component

Korak 1: Kreirati komponente i interfejs § Kreireti dijagram komponenti: Add Diagram > Component Diagram. § Kreirati 2 komponente “Web. Store” i “Warehouse”: Sa palete kliknuti na Stereotyped Component i selektovati stereotip <<subsystem>>, tj. Create Subsystem Component i imenovati kao Web. Store Ponoviti postupak i za drugu komponentu stereotipa <<subsystem>> pod nazivom Warehouse. § Prikazati samo njihove nazive, bez odeljaka: Desni klik na Web. Store, odabrati Filters > Show/Hide Compartment > Name Compartment Only Isti postupak ponoviti i za Warehouse. § Kreirati interfejs Search. Inventory, klikom sa palete na Interface.

Korak 2: Kreirati kompozitni dijagram § Kreireti kompozitni dijagram: Add Diagram > Composite structure

Korak 2: Kreirati kompozitni dijagram § Kreireti kompozitni dijagram: Add Diagram > Composite structure diagram > naziv: My. Composite. Diagram. § Prevući sa Project Explorer pogleda, kreirane dve komponente § Sa palete odabrati Port i dodati na obe komponente, izborom na opciju “Unspecified”. § Sa palete kliknuti na Provided interface i dodati na web. Store § Na isti način, selektovati Required interface i prevući do komponente Warehouse. § Odabrati Select Existing Element i u Search ili Browse pronaći kreirani interfejs pod nazivom: Search. Inventory Sa padajućeg menija odabrati Select Existing Element i u Search ili Browse pronaći kreirani interfejs pod nazivom: Search. Inventory Na kraju, kliknite na Connector i povežite dva porta (od kvadratića do kvadratića).

Lab 5: Nacrtati dijagram komponenti sa sledećim interfejsima Servera • Komponenta Server koristi (usage)

Lab 5: Nacrtati dijagram komponenti sa sledećim interfejsima Servera • Komponenta Server koristi (usage) interfejs Database koji ima dve operacije: Retrieve() i Store() • Komponenta Server realizuje interfejs HTTPRequest koji ima sledeće: • Atribute: host: String i port: Integer • Operacije: Get(), Head() i Post().

Rešenje

Rešenje

Vežba 6: Nacrtati dijagram komponenti za sistem fakulteta § Postoje dve UI komponente: Seminar

Vežba 6: Nacrtati dijagram komponenti za sistem fakulteta § Postoje dve UI komponente: Seminar Management i Student Administration: Komponenta Facilities obezbeđuje interfejse Data. Access i Facilities. Komponenta Seminar Management koristi interfejs Facilities Komp. Student obezbeđuje interfejse Data. Access i Student. Komponenta Seminar Management koristi Interfejs Student Komp. Seminar obezbeđuje interfejs Data. Access komponenti Seminar Management i Seminar komponenti Student. Administration Komp. Schedule obezbeđuje interfejs Data Access komponenti Seminar Management i obezbeđuje i Schedule interfejs Sve četiri komponente (Facilities, Student, Seminar, Schedule) zahtevaju interfejse Access Control od komponente Security i Persistance od komp. Persistance Komp. Persistence zahteva JDBC od komponente University DB <<database>>

Rešenje

Rešenje

Vežba 7: Nacrtati dijagram komponenti jednog tipičnog e-commerce sistema § Postoje dve aplikacije Online

Vežba 7: Nacrtati dijagram komponenti jednog tipičnog e-commerce sistema § Postoje dve aplikacije Online Ordering i Shipping koje koriste određene komponente: Komp. Customer obezbeđuje interfejse ICustomer komponenti Online Ordering i interfejs IXML Komp. Order obezbeđuje interfejse IOrder komp. Online Ordering i interfejs IXML Komp. Delivery obezbeđuju interfejs IDelivery komp. Shipping, a IXML komponenti Online Ordering Sve tri komponente (Customer, Order i Delivery) zahtevaju interfejse IPersistance (komp. Persistance) i IAccess. Control (komp. Security) Security komp. obezbeđuje i interfejs IEncryption Komp. Persistence zahteva interfejs preko JDBC ka komponenti baze podataka University DB <<datastore>>

Rešenje 53

Rešenje 53

Dodatni izvori: § FREE COURSE Software Development Process: https: //www. udacity. com/course/software-developmentprocess--ud 805 §

Dodatni izvori: § FREE COURSE Software Development Process: https: //www. udacity. com/course/software-developmentprocess--ud 805 § Projektovanje informacionog sistema biblioteke pomoću UML-a: http: //www. elitesecurity. org/t 371538 -1 Projektovanje-informacionog-sistema-biblioteke-pomocu-UML § Dodavanje delova kompozitnog dijagrama: https: //www. ibm. com/support/knowledgecenter/SS 8 PJ 7_8. 5. 1/com. ibm. xtools. modeler. doc/topics/tadd part. html § Dodatni primeri: https: //cewebs. cs. univie. ac. at/piswa/ws 09/index. php? m=D&t=home&c=show&CEWeb. S_c=g 4 t 6&CEWeb. S_what=componentarchitecture