Kiến trúc phần mềm chứa đựng các quyết định chúng để cấu thành một hệ thống tử này này thành các subsystem lớn hơn phần tử cấu trúc và interface của chúng, các công tác, và sự tổng hợp g
Trang 1Use Component Architectures
Kinh nghieäm 3: Duøng kieán truùc Component-Based
Trang 2Kiến trúc phần mềm xác định:
? Kiến trúc phần mềm chứa đựng các quyết định
chúng để cấu thành một hệ thống
tử này
này thành các subsystem lớn hơn
phần tử cấu trúc và interface của chúng, các công tác, và sự tổng hợp giữa chúng
Trang 3Các ảnh hưởng của kiến trúc
hòa
Trang 4Resilient, Component-Based Architectures
tính đàn hồi , và component - based
trên thị trường
Trang 5Ví duï: Component-Based Architecture
User Interface Mechanisms
Customer Product
Lead Tracking User Interface
License Licensing User Interface
Trang 6Kiến trúc Component giải quyết các vấn đề
Các Component dễ tạo ra các kiến trúc đàn hồi
Tái sử dụng các com và framework Thương mại trở nên dễ dàng
Tính đơn thể cho phép phân tách các điều lo lắng
Component cung cấp nền tảng tự nhiên cho quản lý cấu hình
Các ccụ mô hình hóa trực quan hỗ trợ thiết kế tự động
Các nguyên nhân cốt lõi Cách giải quyết
? Thiếu y / c đ / v hệ thống
? Trao đổi TT mơ hồ
? Kiến trúc kém bền
? Quá phức tạp
? Đánh giá chủ quan
? Các mâu thuẫn chưa
xác định
? Test kém
? Qui trình thác nước
? Các thay đổi không
thể kiểm soát
Trang 7Kinh nghiệm 4: Mô hình hóa trực quan phần mềm
Control Changes
Develop Iteratively
Use Component Architectures
Manage
Visually
Trang 8Mô hình hóa trực quan tăng khả năng quản lý độ phức tạp của phần mềm
Kinh nghiệm 4: Mô hình hóa trực quan phần mềm
Trang 9• làm sưu liệu
Trang 10Các lược đồ là các khung nhìn của mô hình
Một mô hình là một mô
tả đầy đủ của hệ thống
từ một phối cảnh cụ thể
Deployment Diagrams
Deployment Diagrams
use-case Diagrams
use-case Diagrams
Scenario Diagrams
State Diagrams
Component Diagrams
Component Diagrams Component Diagrams
Component Diagrams
Component Diagrams
Component Diagrams Models
State Diagrams
Scenario Diagrams
Activity Diagrams
Activity Diagrams
State Diagrams
Trang 11Mô hình hóa trực quan dừng các lược đồ UML
fileMgr : FileMgr repository : Repository document : Document
6 :f i l l D o c u m e n t( )
4: c r e a t e ( )
8 :f i l l F i l e( )
GrpFile read( ) create( ) fillFile( )
rep Repository name : char * = 0 readDoc( ) readFile( ) (from Persistence)
FileMgr fetchDoc( ) sortByName( ) DocumentList add( ) delete( ) Document name : int docid : int numField : int
g e t ( ) open( ) sortFileList( ) create( ) fillDocument( ) fList 1 FileList add( ) delete( ) 1 File read( )
read() fill the code
UI
MFC
RogueWave global DocumentApp
óÀÌ E X E
W i n d o w s N Á.E X E
W i n d o w s N
W i n d o w s 9 5
S o l a r i s
A Ø A Ø EXE
A l p h a IBM
M a i n f r a m e ÀÌÀÌ
W i n d o w s 9 5 Ã
e â ÈÀ ÀÀ Á Ã á -Àì 95 : óÀÌ -Àì N T : ÀÀ -À Ó: À -IBM ÀÁÀÓ: ÀÌ ,
Document FileManager
1: D o c view request ( )
2 :fetchDoc ( ) 3: c r e a t e ( ) 4: c r e a t e ( )
<<entity >>
Forward Engineering (Code Generation)
and Reverse Engineering
add file [ numberOffile==MAX ] / flag OFF add file
close file close file
use-case 3
Source Code edit, compile, debug, link
Use-Case Diagram Class Diagram
Collaboration Diagram Component Diagram
State Diagram
Package Diagram
Deployment Diagram Class
Trang 12Thay đổi bản thiết kế ?
Mô hình hóa trực quan và phát triển theo vòng lặp
Yêu cầu ban đầu
implementation & testing
risk targeting
deployment
analysis & design
Trang 13Cái gì thay đổi? Những thay đổi này được phép
Mô hình hóa trực quan và phát triển theo vòng lặp
Yêu cầu ban đầu
implementation & testing
risk targeting
deployment
analysis & design
Trang 14Giải quyết vấn đề nhờ mô hình hóa trực quan
Các use - case và scenario đặc tả hành vi rõ ràng Các mô hình nắm bắt tường minh các thiết kế
Các kiến trúc không đơn thể hay cứng nhắc bị phơi bày Các chi tiết không cần thiết được che dấu khi cần
Các thiết kế tường minh chỉ ra các mâu thuẫn dễ dàng
Chất lượng của ứng dụng đi kèm với bản thiết kế tốt
Các ccụ trực quan hỗ trợ cho
Các nguyên nhân cốt lõi Lời giải
? Thiếu y / c đ / v HT
? Truyền tin mơ hồ
? Kiến trúc kém bền
? Quá phức tạp
? Đánh giá chủ quan
? Các mâu thuẫn chưa
xác định
? Test kém
? Qui trình thác nước
? Thay đổi không thể KS
? Thiếu ccụ tự động
Trang 15Kinh nghiệm 5: Kiểm định chất lượng phần mềm
Control Changes
Develop Iteratively
Use Component Architectures
Manage
Quality
Trang 16Chi phí tìm kiếm và sửa chữa các vấn đề của phần mềm sẽ tăng hàng 100, hàng 1000 lần
sau khi PT
Development Deployment Cost
Kinh nghiệm 5: Kiểm định chất lượng phần mềm
Trang 17PT theo vòng lặp cho phép test liên tục
T C
D R
T C
D R
T C
D R
Test
Life
Plan Design Implement
Execute
Evaluate
Plan Design Implement
Execute
Evaluate
Plan Design Implement
Execute
Trang 18Test trong một môi trường PT theo vòng lặp
Test Suite 1
Iteration 2 Iteration 3 Iteration 4
Test Suite 2 Test Suite 3 Test Suite 4 Iteration 1
Trang 19Tự động hóa giảm thời gian và công sức test
One Manual Test Cycle 13,000 Tests 2 Weeks 6 People
Trang 20Các khía cạnh của chất lượng phần mềm
Trang 21Các vấn đề được giải quyết nhờ kiểm định CL
Testing đánh giá khách quan về trạng thái dự án
Đánh giá khách quan triệt tiêu các mâu thuần sớm Testing và kiểm định tập trung vào vùng high risk Tìm thấy thiếu sót sớm và chi phí sửa chữa thấp
Các ccụ test tự động giúp test độ tin cậy chức năng và
Nguyên nhân cốt lõi Cách giải quyết
? Thiếu y / c đ / v HT
? Truyền tin mơ hồ
? Kiến trúc kém bền
? Quá phức tạp
? Đánh giá chủ quan
? Các mâu thuẫn chưa
được xác định
? Test kém
? Qui trình thác nước
? Thay đổi không thể KS
Trang 22Kinh nghiệm 6: Kiểm soát thay đổi trong PM
Control Changes
Develop Iteratively
Use Component Architectures Manage
Trang 23Thiếu sự kiểm soát tường minh, đầy đủ
Kinh nghiệm 6: Kiểm soát thay đổi trong PM
Trang 24Ba khía cạnh chính của CM System
Trang 25Các khái niệm của Configuration & Change M.
? Phân rã kiến trúc thành các subsystem và gán trách nhiệm
thực hiện các subsystem cho mỗi nhóm
? Thiết lập vùng làm việc an toàn cho mỗi developer
? Thiết lập một vùng làm việc tích hợp
? Thiết lập một cơ chế khả thi kiểm soát các thay đổi
? Nắm bắt thay đổi xuất hiện nào xuất hiện trong release
nào
? Đưa ra một đường ranh giới hạn chỗ hoàn tất của mỗi
vòng lặp
Trang 26Change Control hỗ trợ tất cả Best Practices khác
? Phát triển theo
? Dự án chỉ tiến triển khi các thay
đổi được kiểm soát
? Để loại bỏ sự dãn phạm vị , đánh
giá ảnh hưởng của mọi thay đổi dự kiến trước khi chấp nhận
? Các Component phải đáng tin cậy ,
i e , tìm thấy phiên bản đúng đắn của tất cả các phần hợp thành
? Để bảo đảm sự hội tụ , phải tăng
dần kiểm soát các model khi các thiết kế ổn định
? Test chỉ có ý nghĩa nếu các version
các phần tử đang test được biết rõ và các phần tử được bỏa vệ trước các thay đổi
Trang 27Các vần đề được giải quyết nhờ Control Change
Nguyên nhân cốt lõi Cách giải quyết
? Thiếu y / c đ / v HT
? Truyền tin mơ hồ
? Kiến trúc kém bền
? Quá phức tạp
? Đánh giá chủ quan
? Mâu thuẫn chưa được
xác định
? Test kém
? Qui trình thác nước
? Thay đổi không thể
kiểm soát
Trang 28Các kinh nghiệm hỗ trợ lẫn nhau
Control Changes
Develop
Iteratively
Use Component Architectures
Model Visually
Verify Quality
Ensures users involved
as requirements evolve
Validates architectural decisions early on
Addresses complexity of design/implementation incrementally Measures quality early and often
Evolves baselines incrementally
Manage Requirements
Trang 29Toång keát
Project Manager
Performance Engineer
Analyst
Developer Tester
Develop Iteratively
Use Component Architectures