* CBSE cần thiết *Độc lập các thành phần giao diện *Tiêu chuẩn thành phần để tạo điều kiện hội nhập thành phần *Thành phần liên kết khả năng hoạt động *Một quá trình phát triển hướng tới
Trang 1HỌC VIỆN KỸ THUẬT MẬT
MÃ
LỚP :AT6A BÀI TẬP LỚN MÔN CÔNG
NGHỆ PHẦN MỀM
Trang 2Lê Thế Công Nguyễn Văn Phú Kay Thoong (nt)
Trang 3* Những điểm chính
*CBSE là một phương pháp tái sử dụng để xác định và thực hiện các thành phần lỏng vào hệ thống
*Thành phần là một đơn vị phần mềm có chức năng và phụ thuộc hoàn toàn được xác định bởi giao diện của nó
*Một mô hình thành phần định nghĩa một tập hợp các tiêu chuẩn mà các nhà cung cấp thành phần và nhà soạn nhạc nên làm theo
*Trong quá trình CBSE, quá trình các yêu cầu kỹ thuật và thiết kế hệ thống xen kẽ nhau
Trang 4* Những điểm chính
*Thành phần cấu tạo là quá trình 'dây' lại với nhau để tạo ra
một hệ thống
*Khi sáng tác các thành phần tái sử dụng, bạn thường phải
viết các bộ chuyển đổi để hòa giải các giao diện thành
phần khác nhau
*Khi chọn sản phẩm, bạn phải xem xét chức năng cần thiết,
yêu cầu phi chức năng và sự tiến hóa của hệ thống
Trang 5* Mục tiêu
* Để giải thích rằng CBSE có liên quan tới các tiêu chuẩn
phát triển và sáng tạo vào các ứng dụng
* Để mô tả các thành phần và mô hình các thành phần
* Để hiển thị các hoạt động chủ yếu trong quá trình CBSE
* Để thảo luận về các phương pháp tiếp cận thành phần và
các vấn đề có thể phát sinh
Trang 7* CBSE cần thiết
*Độc lập các thành phần giao diện
*Tiêu chuẩn thành phần để tạo điều kiện hội nhập thành
phần
*Thành phần liên kết khả năng hoạt động
*Một quá trình phát triển hướng tới tái sử dụng
Trang 8* Thành phần phát triển
*CBSE là phương pháp tiếp cận với các phần mềm phát triển dựa vào tái
sử dụng phần mềm
*Nó xuất hiện từ sự thất bại của phát triển hướng đối tượng để hỗ trợ tái
sử dụng hiệu quả Các lớp học đối tượng duy nhất là chi tiết và cụ thể
*Thành phần này là trừu tượng hơn đối tượng các lớp học và coi là nhà cung cấp dịch vụ độc lập
Trang 10* CBSE và nguyên tắc
thiết kế
*Ngoài lợi ích của việc tái sử dụng, CBSE được dựa trên
các nguyên tắc phần mềm thiết kế kỹ thuật:
*Các thành phần độc lập không can thiệp với nhau
*Triển khai thành phần được ẩn
*Giao tiếp và thông qua định nghĩa giao diện
*Nền tảng thành phần được chia sẻ và giảm chi phí phát
triền
Trang 11* Thành phần
*Các thành phần cung cấp một dịch vụ mà không liên quan
đến các thành phần được thực hiện hoặc ngôn ngữ lập
trình:
*Thành phần là một thực thể thực thi độc lập có thể
được tạo thành từ một hoặc nhiều đối tượng thực thi
*Giao diện thành phần được công bố và tất cả các tương
tác thông qua giao diện được xuất bản
Trang 12* Định nghĩa thành phần
*Councill and Heinmann:
*Một thành phần phần mềm là một yếu tố phần mềm
phù hợp với một mô hình thành phần và có thể được
triển khai độc lập và sáng tác mà không sửa đổi theo
một tiêu chuẩn thành phần
*Szyperski:
*Một thành phần phần mềm là một đơn vị của các thành
phần hợp đồng quy định các giao diện và bố cảnh rõ
ràng Một thành phần phần mềm có thể được triển khai
độc lập và là chủ đề cho sang tác bên thứ ba
Trang 13*Các dịch vụ được cung cấp bởi một thành phần được thực
hiện thông qua một giao diện và tất cả các tương tác thành
phần diễn ra thông qua giao diện đó
Trang 14* Đặc điểm thành phần
*Chuẩn hóa: Thành phần tiêu chuẩn hóa có nghĩa là một
thành phần mà được sử dụng trong một quá trình CBSE có
phù hợp với một số tiêu chuẩn hóa thành phần mô hình
Mô hình này có thể xác định thành phần giao diện, thành
phần siêu dữ liệu, tài liệu, thành phần và triển khai
*Độc lập: Một thành phần cần được độc lập - nó nên có thể
để soạn và triển khai nó mà không cần phải sử dụng cụ thể
khác các thành phần Trong tình huống mà các thành phần
cần bên ngoài cung cấp dịch vụ, những cần được thiết lập
một cách rõ ràng ra một đặc điểm kỹ thuật giao diện 'yêu
cầu'
Trang 15* Đặc điểm thành phần
*Triển khai: Để có thể triển khai, một thành phần phải được
khép kín và phải có khả năng hoạt động như một thực thể
độc lập trên một số thành phần nền tảng mà thực hiện các
mô hình thành phần Điều này thường có nghĩa là thành
phần là một thành phần nhị phân mà không có được biên
dịch trước khi nó được triển khai
*Tài liệu: Các thành phần có được đầy đủ tài liệu để tiềm
năng người sử dụng của các thành phần có thể quyết định
có hay không họ đáp ứng nhu cầu của họ Cú pháp và, lý
tưởng, ngữ nghĩa của tất cả các giao diện thành phần phải
được quy định cụ thể
Trang 16* Thành phần giao diện
*Cung cấp giao diện: Xác định các dịch vụ được cung cấp
bởi các thành phần khác
*Yêu cầu giao diện: xác định các dịch vụ mà quy định cụ
thể những gì dịch vụ phải được thực hiện có sẵn cho các
thành phần để thực hiện theo quy định
Trang 17* Thành phần giao diện
Provi des i nt erf ace Requires int erf ace
Co mpo nent
Defin es t h e servi ces
from the component’s
envi ron men t t hat i t
us es
Defin es t h e servi ces
t hat are prov id ed
by th e comp on en t
t o ot her compon en t s
Trang 18s tart Sens or
s to pSens or
t es tSen so r
l is t All rep or t
i ni ti ali se
s en sorManagement
s en sorDat a
Trang 19* Linh kiện và các đối
Trang 20* Thành phần mô hình
*Một mô hình thành phần là một định nghĩa của tiêu chuẩn
cho các tài liệu, thực hiện và triển khai thành phần
*Ví dụ và các mô hình thành phần
*Mô hình EJB (Enterprise Java Beans)
*COM + mô hình (mô hình NET)
* Mô hình thành phần quy định cụ thể như thế nào giao
diện nên được xác định và các yếu tố đó nên được bao
gồm trong một định nghĩa giao diện
Trang 21* Các yếu tố của một mô
Interface
defin ition
Sp ecificinterfaces
Co mp ositio n
Namingconv en tio n
Meta-dataacces s
Trang 22* Hỗ trợ trung gian
*Mô hình thành phần là cơ sở cho trung gian cung cấp hỗ
trợ để thực hiện các thành phần
*Thành phần triển khai thực hiện mô hình cung cấp:
* Nền tảng dịch vụ cho phép các thành phần bằng văn bản theo mô
hình giao tiếp
* Ngang dịch vụ là dịch vụ ứng dụng độc lập được sử dụng bởi các
thành phần khác nhau
*Để sử dụng các dịch vụ được cung cấp bởi một mô hình,
các thành phần được triển khai trong một thùng Đây là
một tập hợp các giao diện được sử dụng để truy cập vào
việc triển khai dịch vụ
Trang 23* Thành phần mô hình
dịch vụ
Pl at form s ervi ces
Ad dres si ng Int er face
defin it i on
Co mpo nent communi cat io ns
Except i on management
Ho ri zo nt al servi ces
Secu rit y
Tran sact i on management
Trang 24* Thành phần phát triển để tái
sử dụng
*Các thành phần được phát triển cho một ứng dụng cụ thể
thường có được tổng quát để làm cho họ có thể tái sử dụng
*Một thành phần rất có thể được tái sử dụng nếu nó liên kết
với một trừu tượng miền ổn định (Đối tượng kinh doanh)
*Ví dụ, trong một miền bệnh viện ổn định trừu tượng có
liên quan với mục đích cơ bản - y tá, bệnh nhân, điều trị, vv…
Trang 25* Thành phần phát triển
để tái sử dụng
*Các thành phần để tái sử dụng có thể được cấu tạo đặc biệt
bởi các thành phần thông dụng hiện có
*Các thành phần có thể dùng lại được:
* Nên phản ánh trừu tượng miền ổn định
* Nên ẩn đại diện nhà nước
* Nên càng độc lập càng tốt
* Nên công bố trường hợp đại diện thông qua giao diện thành phần
*Có sự cân băng giữa khả năng tái sử dụng và khr năng sử
dụng
* Các giao diện tổng quát hơn, có nhiều khả năng tái sử dụng nhưng sau đó
phức tạp hơn và it sử dụng
Trang 26* Thay đổi đối với khả
năng tái sử dụng
*Hủy bỏ các phương pháp ứng dụng cụ thể
*Thay đổi tên để làm cho họ nói chung
*Thêm phương pháp để mở rộng phạm vi bảo hiểm
Trang 27* Tái sử dụng các thành
phần
*Chi phí phát triển của các thành phần có thể tái sử dụng có
thể cao hơn so với chi phí tương đương cụ thể Chi phí cần
tăng cường thêm khả năng tái sử dụng này là một tổ chức
chứ không phải là chi phí dự án
*Các thành phần chung có thể ít không gian hiệu quả và có
thể có thời gian thực hiện dài hơn thời gian cụ thể
Trang 28* Thành phần hệ thống
để lại
*Hiện tại hệ thống để lại mà thực hiện một hữu ích chức
năng kinh doang có thể dược đóng góp như là các thành
phần để tái sử dụng
*Điều này liên quan đến việc viết một thành phần bao bọc
mà thực hiện cung cấp và yêu cầu giao diện sau đó truy
cập vào hệ thông để lại
*Mặc dù tốn kém, nhưng việc này còn ít tốn kém hơn so
với việc viết lại các hệ thống để lại
Trang 29* Quá trình CBSE
*Khi tái sử dụng các thành phần, nó là điều cần thiết để làm
cho cân bằng giữa các yêu cầu lý tưởng và các dịch vụ
thực tế được cung cấp bởi các thành phần có sẵn
*Điều này bao gồm:
* Phát triển các yêu cầu phác thảo
* Tìm kiếm cho các thành phần sau đó sửa đổi yêu cầu theo chức năng
có sẵn
* Tìm kiếm một lần nữa để tìm thấy nếu nó tốt hơn đáp ứng các yêu
cầu sửa đổi
Trang 30* Quá trình CBSE
Trang 31* Việc xác định thành
phần quá trình
Trang 32* Thành phần xác định
các vấn đề
*Tin tưởng Bạn cần phải có thể tin tưởng vào nhà cung cấp
của một thành phần Tốt nhất, một thành phần không đáng tin
cậy có thể không hoạt động như quảng cáo, lúc tồi tệ nhất, nó
có thể xâm phạm an ninh của bạn
*Yêu cầu Các nhóm khác nhau của các thành phần này sẽ đáp
ứng các yêu cầu khác nhau
*Xác nhận:
* Các đặc điểm kỹ thuật thành phần có thể không được chi tiết đủ để cho
phép kiểm tra toàn diện được phát triển
* Các thành phần có thể có chức năng không mong muốn Làm thế nào bạn
có thể kiểm tra điều này sẽ không can thiệp với các ứng dụng của bạn?
Trang 33* Ariane phóng thất bại
*Năm 1996, 1 chuyến bay thử nghiệm của tên lửa Ariane 5
đã kết thúc trong thảm họa khi các phóng đi ngoài tầm
kiểm soát 37 giây sau khi cất cánh
*Vấn đề là do một thành phần được sử dụng lại từ một
phiên bản trước của phóng (hệ thống dẫn đường quán tính)
mà không thành công bởi vì giả định khi thành phần được
phát triển đã không giữ cho tên lửa Ariane 5
*Những chức năng mà không thành công trong hợp phần
này là không cần thiết trong Ariane 5
Trang 34* Thành phần cấu tạo
*Quá trình lắp ráp các thành phần để tạo ra một hệ thống
*Thành phần liên quan đến việc tích hợp các thành phần
với nhau và với các cơ sở hạ tầng thành phần
*Thông thường bạn phải viết 'keo mã' để tích hợp các thành
phần
Trang 35* Các loại thành phần
cấu tạo
*Thành phần tuần tự:bao gồm các thành phần được thực
hiện theo thứ tự.Điều này liên quan đến việc so sánh các
giao diện cung cấp của mỗi thành phần
*Cấu trúc thành phần mà một thành phần kêu gọi các dịch
vụ khác Cung cấp giao diện của một trong những thành
phần được bao gồm với giao diện đòi hỏi của người khác
*Thành phần phụ gia giao diện của hai thành phần được đặt
lại với nhau để tạo ra một thành phần mới
Trang 37* Giao diện không tương
thích
*Tham số không tương thích: nơi các hoạt động có cùng tên
nhưng các loại khác nhau
*Hoạt động không tương thích: nơi tên của các hoạt động
trong các giao diện phức hợp khác nhau
*Hoạt động không đầy đủ: nơi cung cấp giao diện của một
trong những thành phần là một tập hợp con của giao diện
đòi hỏi của người khác
Trang 38* Các thành phần không
tương thích
address Find er
ph on eDatab as e (strin g co mmand ) s tring location (s tring p n)
s tring o wner (strin g pn )
s tring p ro pertyTyp e (strin g pn )
mapp er mapDB (s tring command) dis play Map (s tring p os tCod e, scale)
printMap (s tring p os tCod e, scale)
Trang 39* Thành phần bộ chuyển
đổi
*Giải quyết vấn đề không tương thích thành phần bằng
cách hòa giải các giao diện của các thành phần bao gồm
*Sự khác nhau của bộ chuyển đổi được yêu cầu tuỳ thuộc
vào loại của các thành phần
*Một công cụ tìm địa chỉ và một thành phần ánh xạ có thể
được bao gồm thông qua một bộ chuyển đổi dải các mã
bưu chính từ một địa chỉ và vượt qua với thành phần ánh
xạ
Trang 40* Thành phần thông qua
một bộ chuyển đổi
*thành phần PostCodeStripper là các bộ chuyển đổi tạo
điều kiện cho các thành phần tuần tự của công cụ tìm kiếm
địa chỉ và các thành phần ánh xạ
Trang 41* Bộ chuyển đổi cho nhà
sưu tập dữ liệu
Data collector
addSensor removeSensor startSensor stopSensor testSensor
listAll repor t initialise
sensorManagement
sensorData
Adapter sensor
start
getdata
stop
Trang 42* Giao diện ngữ nghĩa
*Bạn phải dựa trên các tài liệu thành phần quyết định nếu
giao diện là cú pháp tương thích thực sự tương thích
*Hãy xem xét một giao diện cho một thành phần Thư viện
Trang 43getCatalo gEn try
addItem retrieve catEntry
Trang 44* Thư viện hình ảnh tài
liệu
*"Phương pháp này cho biết thêm một bức ảnh để các thư
viện và các cộng sự nhận dạng ảnh và mô tả danh mục với
"Những gì sẽ xảy ra nếu định danh bức ảnh đã được liên kết
với một bức ảnh trong thư viện?"
"Là mô tả bức ảnh gắn liền với các mục nhập danh mục
cũng như có nghĩa là các bức ảnh nếu tôi xóa các bức ảnh,
tôi cũng xóa các thông tin danh mục?"
Trang 45* Hạn chế đối tượng
Ngôn ngữ
*Hạn chế đối tượng ngôn ngữ (OCL) đã được thiết kế để
xác định các ràng buộc có liên quan đến các mô hình
UML
*Nó được dựa trên khái niệm về đặc điểm kỹ thuật điều
kiện trước và sau tương tự như phương pháp tiếp cận
Trang 46* Mô tả chính thức của
thư viện ảnh
The context keyword names the component to which the condi tions apply
context addItem
The precondi tions speci fy what must be true before execution of addItem
pre: PhotoLibrary.libSi ze() > 0
PhotoLibrary.retri eve(pid) = nul l
The postconditi ons speci fy what i s true after execution
post: l ibSi ze () = libSize()@pre + 1
PhotoLibrary.retri eve(pid) = p
PhotoLibrary.catEntry(pi d) = photodesc
context delete
pre: PhotoLibrary.retrieve(pid) <> nul l ;
post: PhotoLibrary.retrieve(pid) = null
PhotoLibrary.catEntry(pi d) = PhotoLibrary.catEntry(pi d)@pre
PhotoLibrary.libSi ze() = l ibSi ze()@pre - 1
Trang 47* Thư viện ảnh điều kiện
*Theo quy định, OCL liên kết với các thành phần Thư viện
* Mỗi mục mới này làm tăng kích thước của thư viện bằng cách 1;
* Nếu bạn lấy bằng cách sử dụng cùng một định danh sau đó bạn lấy
lại các bức ảnh mà bạn đã thêm;
* Nếu bạn nhìn lên các cửa hàng bằng cách sử dụng định danh, sau đó
bạn trở lại mục danh mục mà bạn đã thực hiện
Trang 48* Thành phần thương
mại
*Khi sáng tác các thành phần, bạn có thể tìm thấy các xung
đột giữa các yêu cầu chức năng và không chức năng, và
các cuộc xung đột giữa nhu cầu để cung cấp nhanh chóng
và sự tiến hóa của hệ thống
*Bạn cần phải đưa ra những quyết định như:
* Những cấu tạo của các thành phần có hiệu quả để cung cấp các yêu
Trang 49* Thu thập dữ liệu và tạo
Repo rt generat or
Data
Repo rt
Repo rt
Trang 50KẾT THÚC