8/30/2017<br />
<br />
Nội dung<br />
<br />
Chương 2.<br />
Ngôn ngữ mô hình hóa<br />
thống nhất (UML)<br />
<br />
1. Giới thiệu UML<br />
2. Unified modeling language (uml)<br />
3. UML và các giai đoạn của chu trình phát triển phần mềm<br />
<br />
GV: Lê Thị Minh Nguyện<br />
Email: nguyenltm@huflit.edu.vn<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
1<br />
<br />
Giới thiệu UML<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
2<br />
<br />
1.1. UML là gì?<br />
• “Three Amigos”: Ivar Jacobson, Grady Booch và Jim Rumbaugh đã hợp<br />
nhất các phương pháp OO và tạo ra ngôn ngữ mô hình hóa chuẩn UML<br />
• Là ngôn ngữ dùng để<br />
<br />
1.1. UML là gì?<br />
1.2. Sơ lược lịch sử phát triển của UML<br />
1.3. Các khung nhìn của UML<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
• Trực quan hóa (Visualizing)<br />
• Xác định rõ (Đặc tả - Specifying)<br />
• Xây dựng (Constructing)<br />
• Tài liệu hóa (Documenting)<br />
Cho các kết quả (artifacts) của quá trình thực hiện phần mềm.<br />
<br />
3<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
4<br />
<br />
1<br />
<br />
8/30/2017<br />
<br />
UML là ngôn ngữ trực quan<br />
<br />
UML là ngôn ngữ để đặc tả<br />
<br />
UML là ngôn ngữ thống nhất trực quan<br />
giúp công việc được xử lý nhất quán, giảm<br />
thiểu lỗi xảy ra<br />
<br />
• UML xây dựng các mô hình chính xác, rõ ràng và đầy<br />
đủ.<br />
<br />
◦ Có những thứ mà nếu không mô hình hóa thì<br />
không hoặc khó có thể hiểu được<br />
◦ Mô hình trợ giúp hiệu quả trong việc liên lạc,<br />
trao đổi<br />
Trong tổ chức<br />
Bên ngoài tổ chức<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
UML là ngôn ngữ để xây dựng HT<br />
<br />
6<br />
<br />
UML là ngôn ngữ để tài liệu hóa<br />
UML giúp tài liệu hóa về kiến trúc, yêu cầu, kiểm thử,<br />
lập kế hoạch dự án, và quản lý việc bàn giao phần mềm<br />
<br />
• Các mô hình UML có thể kết nối trực tiếp với rất nhiều ngôn<br />
ngữ lập trình.<br />
•<br />
•<br />
•<br />
•<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
5<br />
<br />
Use Case Diagram<br />
<br />
Ánh xạ sang Java, C++, C#, Visual Basic…<br />
Các bảng trong RDBMS hoặc kho lưu trữ trong OODBMS<br />
Cho phép các kỹ nghệ xuôi (chuyển UML thành mã nguồn)<br />
Cho phép kỹ nghệ ngược (xây dựng mô hình hệ thống từ mã nguồn)<br />
<br />
Deployment Diagram<br />
ºÐ» ê ȯ °æÀÇÇϵå¿þ ¾î¹×³×Æ®¿÷À¸·ÎÀÇÁ¤º¸ ½Ã½ ºÅÛ ¿¬°á ¸ðµ¨<br />
- À©µµ¿ì 95 : Ŭ¶óÀ̾ ðÆ®<br />
- À©µµ¿ì NT: ÀÀ¿ë¼¹ö<br />
- À¯ ´Ð½ º ¸Ó½Å: ÀÀ¿ë ¼¹ö ¹×µ¥ÀÌŸ¼ ¹ö, Åë½Å ¼¹ö<br />
- IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼¹ö, Åë ½Å¼¹ö<br />
<br />
Các biểu đồ khác<br />
nhau, các ghi chú,<br />
ràng buộc được đặc<br />
tả trong tài liệu<br />
<br />
Wi n d o ws9 5<br />
<br />
Wi n d o w95<br />
<br />
Wi n d o ws9 5<br />
<br />
Use Case 1<br />
¹®¼ °ü ¸®<br />
Ŭ¶ ó À̾ð Æ®.EXE<br />
<br />
¹®¼ °ü ¸® ¾ ÖÇø´<br />
<br />
Wi n d o ws<br />
NT<br />
<br />
Actor A<br />
<br />
Actor B<br />
<br />
Use Case 2<br />
<br />
So l a ri s<br />
<br />
¹®¼ °ü ¸® ¿£ Áø.EXE<br />
<br />
Al p h a<br />
UNIX<br />
ÀÀ¿ë ¼ ¹ö .EXE<br />
Wi n d o ws<br />
NT<br />
<br />
IBM<br />
<br />
Use Case 3<br />
<br />
M a i n fram e<br />
<br />
µ¥ ÀÌŸº£ À̽º¼ ¹ö<br />
<br />
Do c u m en tL ist<br />
<br />
mainWnd<br />
<br />
fileMgr :<br />
<br />
document :<br />
<br />
gFile<br />
<br />
repository<br />
Do c u m en t<br />
Fi l e M g r<br />
<br />
FileMgr<br />
<br />
user<br />
<br />
Document<br />
add( )<br />
n a m e : i nt<br />
d e l e te( )<br />
<br />
fe tc h Doc ()<br />
<br />
d o c i d : in t<br />
<br />
s o rtBy Nam e()<br />
n u m Fi el d : i nt<br />
<br />
Ư Á¤ ¹®¼ ¿¡ ´ëÇÑ º¸±â¸¦<br />
» ç ¿ë ÀÚ°¡ ¿äûÇÑ´Ù.<br />
<br />
g e t( )<br />
<br />
1 : Do c vi ew req ues t ()<br />
<br />
open( )<br />
c l o s e ()<br />
2 : fe tch Doc( )<br />
<br />
re a d () fi l th e<br />
c o d e ..<br />
<br />
re a d ( )<br />
<br />
Fi l e L i st<br />
<br />
s o rtFi l eL is t( )<br />
fL i s t<br />
<br />
c re a te ()<br />
<br />
3 : c re ate ( )<br />
<br />
fi l l Do c um ent()<br />
add( )<br />
d e l e te( )<br />
1<br />
<br />
4 : c re ate ( )<br />
<br />
5 : re a dDo c ()<br />
<br />
ÈÀÏ°ü ¸®ÀÚ´Â Àо î¿ Â<br />
¹®¼ ÀÇ Á¤ º¸¸¦ ÇØ´ç ¹®¼<br />
°´Ã¼ ¿¡ ¼ ³Á¤À» ¿ä ûÇÑ´Ù.<br />
<br />
6 : fi l l Doc umen t ( )<br />
<br />
re p<br />
7 : re a dFi le ( )<br />
Fi l e<br />
Re p o s i to ry<br />
<br />
8 : fi l l Fil e ( )<br />
(fro m Pe rsi ste nce )<br />
re a d ( )<br />
È¸é °´Ã¼ ´ÂÀоîµéÀÎ<br />
°´Ã¼ µé ¿¡ ´ëÇØ À̸§º°·Î<br />
Á¤ ·ÄÀ» ½ÃÄÑ È¸é¿¡<br />
º¸¿©ÁØ´Ù.<br />
<br />
9 : s o rtBy Name ( )<br />
<br />
Grp Fi l e<br />
<br />
n a m e : ch ar* = 0<br />
<br />
re a d ( )<br />
re a d Do c( )<br />
re a d Fi l e( )<br />
<br />
open( )<br />
c re a te ()<br />
fi l l Fi l e ()<br />
<br />
Sequence Diagram<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
7<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
Class Diagram<br />
8<br />
<br />
2<br />
<br />
8/30/2017<br />
<br />
3.2. Lịch sử phát triển của UML<br />
<br />
3.2. Lịch sử phát triển của UML<br />
Vào 1994, có hơn 50 phương pháp mô hình hóa hướng đối<br />
tượng:<br />
<br />
• UML được 3 chuyên gia hướng đối<br />
tượng hợp nhất các kỹ thuật của họ<br />
vào năm 1994:<br />
<br />
◦ Fusion, Shlaer-Mellor, ROOM, Class-Relation,Wirfs-Brock, CoadYourdon, MOSES, Syntropy, BOOM, OOSD, OSA, BON, Catalysis, COMMA,<br />
HOOD, Ooram, DOORS …<br />
<br />
• Booch91 (Grady Booch): Conception,<br />
Architecture<br />
• OOSE (Ivar Jacobson): Use cases<br />
• OMT (Jim Rumbaugh): Analysis<br />
<br />
“Meta-models” tương đồng với nhau<br />
Các ký pháp đồ họa khác nhau<br />
Quy trình khác nhau hoặc không rõ ràng<br />
Cần chuẩn hóa và thống nhất các phương pháp<br />
<br />
• Thiết lập một phương thức thống<br />
nhất để xây dựng và “vẽ” ra các yêu<br />
cầu và thiết kế hướng đối tượng<br />
trong quá trình PTTK phần mềm <br />
UML được công nhận là chuẩn chung<br />
vào năm 1997.<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
9<br />
<br />
3.2. Lịch sử phát triển của UML<br />
<br />
10<br />
<br />
3.3. Khung nhìn của UML<br />
Khung nhìn của mô hình có ý nghĩa với những người tham gia nào đó<br />
4 + 1 Architectural View<br />
<br />
UML 2.0<br />
(2004)<br />
<br />
UML 1.5<br />
(March, ‘03)<br />
<br />
UML 1.1<br />
<br />
UML<br />
Partners’<br />
Expertise<br />
<br />
Logical View<br />
<br />
(Sept. ‘97)<br />
<br />
Implementation View<br />
Analysts/Designers<br />
<br />
UML 1.0<br />
<br />
Software management<br />
<br />
UML 0.9 and UML 0.91<br />
(June ‘96)<br />
<br />
(OOPSLA ’95)<br />
<br />
Booch ’93<br />
<br />
Other<br />
Methods<br />
<br />
Use-Case View<br />
<br />
(Oct. ‘96)<br />
<br />
Unified Method 0.8<br />
<br />
OOSE<br />
<br />
Programmers<br />
<br />
Structure<br />
<br />
(Jan. ‘97)<br />
<br />
Booch ‘91<br />
<br />
End-user<br />
Functionality<br />
<br />
Public<br />
Feedback<br />
<br />
Process View<br />
System integrators<br />
<br />
OMT - 2<br />
<br />
Performance, scalability, throughput<br />
<br />
Deployment View<br />
System engineering<br />
System topology, delivery,<br />
installation, communication<br />
<br />
OMT - 1<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
11<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
12<br />
<br />
3<br />
<br />
8/30/2017<br />
<br />
Khung nhìn Use case<br />
<br />
Khung nhìn Logic<br />
Cấu phần chính là mô hình thiết kế<br />
<br />
• Nắm bắt các chức năng của hệ thống<br />
• Cần thiết cho các hoạt động phân tích, thiết kế và kiểm thử<br />
• Hợp đồng giữa khách hàng và người phát triển<br />
• Hành vi của hệ thống – các chức năng mà hệ thống cần cung<br />
cấp – được lưu trong một mô hình use case<br />
•<br />
•<br />
•<br />
•<br />
<br />
◦ Cung cấp mô tả cụ thể về hành vi chức năng của hệ thống.<br />
◦ Xuất phát từ mô hình phân tích<br />
Mô tả vắn tắt về hành vi của hệ thống dựa trên mô hình use case<br />
<br />
◦ Tập hợp lớp, tổ chức vào các hệ thống con<br />
◦ Bao gồm:<br />
<br />
Biểu đồ use case<br />
Luồng sự kiện use case<br />
Biểu đồ hoạt động<br />
Các tài liệu phụ trợ<br />
<br />
Biểu đồ lớp, biểu đồ tương tác, biểu đồ trạng thái<br />
Hệ thống con và giao diện của chúng<br />
<br />
13<br />
<br />
Khung nhìn tiến trình (process)<br />
<br />
Khung nhìn thực thi (implementation)<br />
•<br />
<br />
Tổ chức các mô-đun phần mềm tĩnh (mã nguồn, tệp dữ liệu,<br />
<br />
Bao gồm các thread và các process tạo nên các cơ chế đồng<br />
thời và đồng bộ của hệ thống<br />
Giải quyết về các vấn đề:<br />
<br />
các thành phần thực thi, tài liệu…) trong môi trường dưới<br />
dạng:<br />
<br />
◦<br />
◦<br />
◦<br />
◦<br />
◦<br />
<br />
- Chia thành các package và phân lớp (layer)<br />
- Quản lý cấu hình (quyền sở hữu, kế hoạch bàn giao…)<br />
•<br />
<br />
14<br />
<br />
Đồng thời và song song (đồng bộ, deadlock…)<br />
Dung thứ lỗi (cô lập chức năng và lỗi, độ tin cậy)<br />
Khởi động và tắt hệ thống<br />
Phân phối đối tượng và dữ liệu<br />
Hiệu năng (thời gian đáp ứng, thông lượng) và tính co dãn<br />
<br />
Không cần thiết đối với môi trường xử lý đơn lẻ<br />
Mô hình hóa bằng biểu đồ lớp, biểu đồ tương tác và biểu đồ<br />
trạng thái<br />
<br />
Được mô hình hóa trong các biểu đồ thành phần<br />
<br />
15<br />
<br />
16<br />
<br />
4<br />
<br />
8/30/2017<br />
<br />
Khung nhìn triển khai (deployment)<br />
<br />
3.UNIFIED MODELING LANGUAGE (UML)<br />
<br />
• Mô tả các nút vật lý khác nhau và các kết nối lẫn nhau giữa<br />
chúng cho các cấu hình nền tảng điển hình nhất<br />
• Giải quyết các vấn đề:<br />
<br />
UML defines 13 diagrams that describe 4+1 architectural views<br />
<br />
• Triển khai<br />
• Cài đặt<br />
• Bảo trì<br />
<br />
• Được mô hình hóa bằng biểu đồ triển khai<br />
<br />
18<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
17<br />
<br />
UNIFIED MODELING LANGUAGE (UML)<br />
Structural Things<br />
<br />
Class, interface, collaboration,<br />
use case, components, nodes<br />
<br />
Behavior things<br />
<br />
Interaction, State machine<br />
<br />
Group things<br />
<br />
Package<br />
<br />
Annotation things<br />
<br />
Note<br />
<br />
Structural Diagram<br />
<br />
18<br />
<br />
UNIFIED MODELING LANGUAGE (UML)<br />
Static<br />
Diagrams<br />
<br />
-Class diagram<br />
-Object diagram<br />
-Component diagram<br />
-Deployment diagram<br />
<br />
Sequence<br />
Diagrams<br />
<br />
Class<br />
Diagrams<br />
<br />
Use-Case<br />
Diagrams<br />
<br />
Object<br />
Diagrams<br />
<br />
Things<br />
Diagram<br />
<br />
Communication<br />
Diagrams<br />
<br />
Component<br />
Diagrams<br />
<br />
Models<br />
<br />
Relationship<br />
Structural Relationship<br />
<br />
Dependency, Aggregation,<br />
Association, Generalization<br />
<br />
Behavior Relationship<br />
<br />
Communication, Includes,<br />
Extends, Generalizes<br />
<br />
Behavioral Diagram<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
Dynamic<br />
Diagrams<br />
<br />
- Use case diagram<br />
- Activity diagram<br />
- Interaction diagram<br />
- State machine diagram<br />
<br />
19<br />
<br />
State Machine<br />
Diagrams<br />
<br />
Activity<br />
Diagrams<br />
<br />
Deployment<br />
Diagrams<br />
<br />
20<br />
<br />
5<br />
<br />