Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Bài giảng về Java
Nội dung xem thử
Mô tả chi tiết
M C L C Ụ Ụ
M C L C Ụ Ụ ........................................................................................................................................ 1
Đ tài 0. Gi i thi u v Java ề ớ ệ ề ............................................................................................................ 6
I. L ch s hình thành và phát tri n ngôn ng l p trình Java ị ử ể ữ ậ ....................................................... 6
I.1. Gi i thi u v Java ớ ệ ề ............................................................................................................. 6
I.2 Tóm t t l ch s hình thành c a Java ắ ị ử ủ ................................................................................. 6
II. Các đ c tr ng c a Java ặ ư ủ ........................................................................................................... 7
II.1. Tính đ n gi n ơ ả ................................................................................................................... 7
II.2. Tính h ng đ i t ng ướ ố ượ ..................................................................................................... 7
II.3. Tính phân tán .................................................................................................................... 7
II.4. Tính m nh m ạ ẽ .................................................................................................................. 7
II.5. Tính an toàn ...................................................................................................................... 7
II.6. Tính trung l pậ ................................................................................................................... 8
II.7. Tính di đ ng ộ ..................................................................................................................... 8
II.8. Tính thông d ch ị ................................................................................................................. 9
II.9. Tính th c thi cao ự ............................................................................................................... 9
II.10. Tính đa lu ng ồ .................................................................................................................. 9
II.11. Tính đ ng ộ ....................................................................................................................... 9
III. Các lo i ng d ng c a Java ạ ứ ụ ủ .................................................................................................. 9
IV. Công c và môi tr ng l p trình Java ụ ườ ậ .................................................................................. 9
V. Cài đ t Java ặ .......................................................................................................................... 10
Đ tài 1. Ngôn ng mô hình hóa UML ề ữ ......................................................................................... 13
I. Xây d ng h th ng ph n m m theo h ng đ i t ng ự ệ ố ầ ề ướ ố ượ ........................................................ 13
I.1 Các khái ni m căn b n c a công ngh h ng đ i t ng ệ ả ủ ệ ướ ố ượ .............................................. 13
I.2 Quy trình chung phát tri n h th ng ph n m m ể ệ ố ầ ề ............................................................. 14
I.3 Nh ng thách th c c a ngành công nghi p ph n m m hi n nay ữ ứ ủ ệ ầ ề ệ .................................... 14
II. L ch s phát tri n ngôn ng mô hình hóa UML ị ử ể ữ ................................................................... 14
II.1. Tóm t t l ch s UML ắ ị ử ..................................................................................................... 14
II.2. Khái ni m v UML ệ ề ........................................................................................................ 15
II.3 Đ c tr ng c a UML ặ ư ủ ........................................................................................................ 15
III. Ngôn ng UML ữ .................................................................................................................... 16
III.1. Các thành ph n c a UML ầ ủ ............................................................................................. 16
III.2. Các h ng nhìn (view) ướ .................................................................................................. 17
III.3 ng d ng UML trong quy trình làm ph n m m Ứ ụ ầ ề .......................................................... 24
IV. Quy trình Rational Unified Process (RUP) phát tri n ph n m m d a trên UML ể ầ ề ự .............. 26
IV.1. Gi i thi u v RUP ớ ệ ề ........................................................................................................ 26
IV.2. Các nguyên t c chính c a RUP: ắ ủ ................................................................................... 26
IV.3. Vòng đ i c a ph n m m theo quy trình RUP ờ ủ ầ ề ............................................................. 26
IV.4. Các công c c a RUP ụ ủ ................................................................................................... 28
Bài t pậ ........................................................................................................................................ 28
Đ tài 2. Nh p môn Java ề ậ ............................................................................................................... 29
I. Vi t và th c hi n m t ch ng trình Java ế ự ệ ộ ươ ............................................................................ 29
I.1 Tìm hi u mã ngu n m t ch ng trình đ n gi n ể ồ ộ ươ ơ ả ............................................................ 29
I.2. Th c hi n ch ng trình Java. ự ệ ươ ......................................................................................... 29
I.3. M t s chú ý khi l p trình Java ộ ố ậ ....................................................................................... 30
1
I.4. C u trúc m t ch ng trình Java ấ ộ ươ ..................................................................................... 30
II. Các ki u d li u trong Java ể ữ ệ .................................................................................................. 31
II.1 Các ki u d li u s nguyên ể ữ ệ ố ............................................................................................ 31
II.2 Các ki u s th c ể ố ự ............................................................................................................. 32
II.3 Ki u ký t (character) ể ự ..................................................................................................... 32
II.4 Ki u logic (boolean) ể ........................................................................................................ 32
II.5 Ki u chu i ể ỗ ....................................................................................................................... 32
II.6 Chuy n đ i gi a các ki u s ể ổ ữ ể ố .......................................................................................... 32
III. Khai báo bi n và h ng trong Java ế ằ ....................................................................................... 33
III.1 Quy t c đ t tên bi n ắ ặ ế ...................................................................................................... 33
III.2 Khai báo bi nế ................................................................................................................. 33
III.3 Bi n ki u m ng ế ể ả ............................................................................................................. 34
III.4 H ng s (literal) ằ ố ............................................................................................................. 35
III.5 Ph m vi ho t đ ng c a h ng và bi n: ạ ạ ộ ủ ằ ế ......................................................................... 36
IV. Các toán t và bi u th c ử ể ứ ..................................................................................................... 36
IV.1 Các toán t và th t u tiên ử ứ ự ư ......................................................................................... 36
IV.2 Bi u th c ể ứ ....................................................................................................................... 37
V. Các l nh đi u khi n r nhánh ệ ề ể ẽ .............................................................................................. 38
V.1 L nh if ệ ............................................................................................................................. 38
V.2. L nh switch …case ệ ........................................................................................................ 38
VI. Các l nh l p ệ ặ ......................................................................................................................... 39
VI.1. Vòng l p for ặ .................................................................................................................. 39
VI.2. Vòng l p while ặ .............................................................................................................. 40
VI.3. Vòng l p do... while ặ ...................................................................................................... 41
VI.4. Phép nh yả ...................................................................................................................... 41
VII. Vào d li u t bàn phím và xu t d li u ra màn hình ữ ệ ừ ấ ữ ệ ..................................................... 42
VII.1. L y giá tr nh p vào t bàn phím ấ ị ậ ừ ............................................................................... 42
VII.2 K t xu t d li u ra màn hình ế ấ ữ ệ ..................................................................................... 43
Bài t pậ ........................................................................................................................................ 44
Đ tài 3. L p trình h ng đ i t ng trong Java ề ậ ướ ố ượ .......................................................................... 46
I. Khái ni m l p trình h ng đ i t ng (Object-Oriented Programming - OOP) ệ ậ ướ ố ượ ................... 46
I.1. Khái ni m OOP ệ ............................................................................................................... 46
I.2 C s lý lu n c a OOP ơ ở ậ ủ .................................................................................................... 46
I.3 Tr u t ng hóa ừ ượ ................................................................................................................. 46
II. Tính đóng gói trong Java ....................................................................................................... 48
II.1 Khái ni m tính đóng gói ệ .................................................................................................. 48
II.2 M i quan h gi a các class ố ệ ữ ............................................................................................. 48
II.3 M t s g i ý khi thi t k class ộ ố ợ ế ế ....................................................................................... 48
IV. S d ng các Class xây d ng s n trong th vi n ử ụ ự ẵ ư ệ ................................................................ 49
V. Xây d ng Class trong Java ự .................................................................................................... 50
V.1 C u trúc c a class ấ ủ ........................................................................................................... 50
V.2 Các thu c tính thành ph n: ộ ầ ............................................................................................. 51
V.3 Các ph ng th c thành ph n ươ ứ ầ ......................................................................................... 52
V.4 G i và truy n tham s cho ph ng th c ọ ề ố ươ ứ ....................................................................... 53
V.6 Các hàm và ph ng th c đ c bi t ươ ứ ặ ệ ................................................................................. 53
V.7 Khai báo ch ng các ph ng th c ồ ươ ứ ................................................................................... 54
V.8 L p l ng nhau – l p n i ớ ồ ớ ộ ................................................................................................. 55
2
VI. Tính k th a trong Java ế ừ ....................................................................................................... 56
VI.1 S k th a các thu c tính và ph ng th c ự ế ừ ộ ươ ứ .................................................................. 56
VI.2 S k th a đ i v i các constructor ự ế ừ ố ớ ............................................................................... 59
VII. Tính đa hình trong Java ....................................................................................................... 60
VII.1 S ép ki u và gán tham chi u đ i t ng ự ể ế ố ượ .................................................................... 60
VII.2 S ràng bu c đ ng –Dynamic Binding ự ộ ộ ....................................................................... 61
VIII. L p Object ớ ......................................................................................................................... 62
IX. Giao di nệ .............................................................................................................................. 62
IX.1 C u trúc c a giao di n ấ ủ ệ .................................................................................................. 62
IX.2 Các tính ch t c a giao di n ấ ủ ệ ........................................................................................... 64
X. Package .................................................................................................................................. 64
X.1 S d ng các package trong th vi n Java ử ụ ư ệ ...................................................................... 64
X.2 Đ t l p vào package ặ ớ ....................................................................................................... 65
Bài t pậ ........................................................................................................................................ 65
Đ tài 4. L p và ph ng th c tr u t ng ề ớ ươ ứ ừ ượ .................................................................................... 67
I. Khái ni m l p tr u t ng ệ ớ ừ ượ ...................................................................................................... 67
II. Cài đ t l p và ph ng th c tr u t ng trong Java ặ ớ ươ ứ ừ ượ ............................................................. 67
Bài t pậ ........................................................................................................................................ 68
Đ tài 5. L u tr và x lý đ i t ng ề ư ữ ử ố ượ ............................................................................................ 69
I. L p Vector và giao di n Enumeration ớ ệ ................................................................................... 69
I.1 L p Vector ớ ........................................................................................................................ 69
I.2 Giao di n Enumeration ệ ..................................................................................................... 70
II. M ng trong Java và l p ArrayList ả ớ ........................................................................................ 72
II.1 M ng trong Java ả .............................................................................................................. 72
II.2. Các thu t toán c b n trên m ng ậ ơ ả ả .................................................................................. 73
II.3 Class Arrays ..................................................................................................................... 74
III Danh sách trong java và giao di n Lists ệ .............................................................................. 76
Bài t pậ ........................................................................................................................................ 77
Đ tài 6. Các lu ng vào ra d li u v i file ề ồ ữ ệ ớ ................................................................................... 78
I. Khái ni m lu ng vào ra (I/O stream) ệ ồ ..................................................................................... 78
II. L p InputStream: ớ ................................................................................................................... 79
III. L p OutputStream ớ ................................................................................................................ 80
IV. L p FileInputStream ớ ............................................................................................................ 80
V. L p FileOutputStream ớ ........................................................................................................... 80
VI. L p File ớ ................................................................................................................................ 80
VII. Nh p xu t l c ậ ấ ọ ................................................................................................................... 82
VII.1 L p FilterInputStream: ớ ................................................................................................ 82
VII.2 L p FilterOutputStream ớ ................................................................................................ 82
VIII. Vào/ra có s d ng b đ m ử ụ ộ ệ .............................................................................................. 82
VIII.1 L p BufferedInputStream: ớ .......................................................................................... 82
VIII.2 L p BufferedOutputStream ớ ......................................................................................... 82
IX. L p RandomAccessFile ớ ...................................................................................................... 85
X. Đ i t ng System.in ố ượ ............................................................................................................. 85
XI. Truy c p file ch đ tu n t ậ ở ế ộ ầ ự ........................................................................................... 85
XII. Truy c p file nh phân ậ ị ........................................................................................................ 89
Bài t p ậ ....................................................................................................................................... 90
Đ tài 7. X lý ngo i l ề ử ạ ệ ................................................................................................................ 91
3
I. Các tình hu ng s d ng ngo i l ố ử ụ ạ ệ .......................................................................................... 91
II. C s qu n lý ngo i l trong Java ơ ở ả ạ ệ ....................................................................................... 91
III. C u trúc cây k th a các x lý ngo i l ấ ế ừ ử ạ ệ ............................................................................ 92
IV. S d ng ngo i l đ c ki m soát ử ụ ạ ệ ượ ể ...................................................................................... 93
V. Xây d ng m t ngo i l ự ộ ạ ệ ........................................................................................................ 94
VI. Bài t pậ .................................................................................................................................. 95
Đ tài 8. X lý các s ki n trong Java ề ử ự ệ .......................................................................................... 96
I. Khái ni m và c s x lý s ki n ệ ơ ở ử ự ệ ......................................................................................... 96
II. Truy c p thông tin s ki n ậ ự ệ ................................................................................................. 102
III. X lý các s ki n trên window ử ự ệ ......................................................................................... 103
IV. Các l p thích nghi ớ .............................................................................................................. 104
V. X lý các s ki n chu t ử ự ệ ộ .................................................................................................. 106
Bài t pậ ...................................................................................................................................... 107
Đ tài 9. Applet ề ............................................................................................................................ 108
I. Xây d ng m t Applet đ n gi n ự ộ ơ ả ........................................................................................... 108
II. C u trúc c b n và vòng đ i c a m t Applet ấ ơ ả ờ ủ ộ ................................................................... 108
III. An ninh và kh năng c a Applet ả ủ ....................................................................................... 110
IV. ng d ng Applet v i c a s Popup Ứ ụ ớ ủ ổ ................................................................................. 110
V. Các th HTML c a Applet ẻ ủ ................................................................................................. 111
VI. Các ph ng th c, l p trình đ h a và b t s ki n c a applet ươ ứ ậ ồ ọ ắ ự ệ ủ ........................................ 112
Đ tài 10. L p trình giao di n đ h a GUI ề ậ ệ ồ ọ ................................................................................ 114
I. Gi i thi u AWT ớ ệ .................................................................................................................. 114
II. V t ch a (Container) ậ ứ .......................................................................................................... 115
II.1 JFrame ............................................................................................................................ 115
II.2 JPanel ............................................................................................................................. 115
II.3 JDialog ........................................................................................................................... 116
II.4 JScrollPane ..................................................................................................................... 118
III. Gi i thi u v các thành ph n GUI c b n ớ ệ ề ầ ơ ả ....................................................................... 118
III.1 Nút nh n ấ ...................................................................................................................... 118
III.2 Nhãn (Label) ................................................................................................................. 118
III.3 Nút đánh d u (checkbox) ấ ............................................................................................. 120
III.4 Nút ch n (radio button) ọ ................................................................................................ 122
III.5 H p tho i Combo ộ ạ ....................................................................................................... 122
III.6 Danh sách (Lists) .......................................................................................................... 123
III.7 Ô văn b n (text field) và vùng văn b n (text areas) ả ả .................................................... 125
III.8 Thanh tr t (Scrollbar) ượ ................................................................................................ 128
IV. Thành ph n Menu ầ .............................................................................................................. 129
V. B qu n lý cách trình bày (Layout Manager) ộ ả ..................................................................... 132
V.1 Cách trình bày FlowLayout: .......................................................................................... 133
V.2 Cách trình bày GridLayout: ........................................................................................... 133
V.3 Cách trình bày BorderLayout ........................................................................................ 133
VI. Các h p tho i ộ ạ ..................................................................................................................... 133
VI.1 H p tho i thông báo ộ ạ .................................................................................................... 133
VI.2 H p tho i ch n File ộ ạ ọ ..................................................................................................... 134
VI.3 H p tho i ch n màu ộ ạ ọ .................................................................................................... 135
Bài t pậ ...................................................................................................................................... 135
Đ tài 11. Threading ề .................................................................................................................... 137
4
I. Khái ni m thread ệ .................................................................................................................. 137
I.1 Khái ni m: ệ ...................................................................................................................... 137
I.2. L p Thread ớ ..................................................................................................................... 137
I.3 Các b c đ t o m t thread ướ ể ạ ộ .......................................................................................... 138
II. Các tr ng thái c a thread. ạ ủ ................................................................................................... 138
III. Các thu c tính c a thread ộ ủ .................................................................................................. 139
III.1 Đ u tiên c a thread ộ ư ủ .................................................................................................. 139
III.2 Nhóm thread ................................................................................................................. 140
III.3 Qu n lý các ngo i l c a thread ả ạ ệ ủ ................................................................................. 140
IV. Đi u khi n các thread ề ể ........................................................................................................ 141
IV.1 Interrupt m t thread ộ ..................................................................................................... 141
IV.2 D ng m t thread ừ ộ .......................................................................................................... 142
IV.3 T m d ng và ph c h i m t thread ạ ừ ụ ồ ộ ............................................................................. 143
IV.4 Gi i phóng th i gian cho CPU ả ờ .................................................................................... 143
IV.5 Đ i m t thread k t thúc công vi c ợ ộ ế ệ ............................................................................. 143
V. Đ ng b thread ồ ộ ................................................................................................................... 144
V.1 Tình tr ng “đua tranh” ạ .................................................................................................. 144
V.2 Khóa đ i t ng ố ượ ............................................................................................................. 145
V.3 Đ i t ng đi u ki n ố ượ ề ệ ..................................................................................................... 146
Bài t pậ ...................................................................................................................................... 148
Ph l c A. Các t khóa c a Java ụ ụ ừ ủ ................................................................................................ 149
Ph l c B M t s hàm hay s d ng ụ ụ ộ ố ử ụ ........................................................................................... 150
Tài li u tham kh o ệ ả ....................................................................................................................... 151
5
Đ tài 0. Gi i thi u v Java ề ớ ệ ề
I. L ch s hình thành và phát tri n ngôn ng l p trình Java ị ử ể ữ ậ
I.1. Gi i thi u v Java ớ ệ ề
Java là m t ngôn ng l p trình m nh đang đ c s d ng r t r ng rãi hi n nay trên toàn ộ ữ ậ ạ ượ ử ụ ấ ộ ệ
th gi i. Trên th c t , Java đ c bi t đ n không ch là m t ngôn ng l p trình mà là m t ế ớ ự ế ượ ế ế ỉ ộ ữ ậ ộ
platform – m t môi tr ng và công ngh phát tri n – riêng bi t. Khi làm vi c v i Java, ng i ộ ườ ệ ể ệ ệ ớ ườ
l p trình đ c s h u m t th vi n l n, có tính m v i m t l ng mã ngu n tái s d ng ậ ượ ở ữ ộ ư ệ ớ ở ớ ộ ượ ồ ử ụ
kh ng l luôn có trên internet. Ngoài ra, các ch ng trình vi t b ng Java có môi tr ng th c ổ ồ ươ ế ằ ườ ự
thi riêng v i các tính năng b o m t, kh năng tri n khai trên nhi u h đi u hành khác nhau và ớ ả ậ ả ể ề ệ ề
nhi u tính năng u vi t khác chúng ta s xem xét trong ph n sau. ề ư ệ ẽ ầ
I.2 Tóm t t l ch s hình thành c a Java ắ ị ử ủ
Năm 1991, m t nhóm k s c a hãng SUN bao g m Patrick Naughton, Sun Fellow và ộ ỹ ư ủ ồ
James Gosling có ý t ng phát minh ra m t ngôn ng l p trình nh g n có th th c thi đ c ưở ộ ữ ậ ỏ ọ ể ự ượ
trên các thi t b d ng nh b chuy n kênh c a truy n hình cáp vì các thi t b ki u này có b ế ị ạ ư ộ ể ủ ề ế ị ể ộ
nh nh . Bên c nh đó, do các hãng khác nhau s d ng các chíp x lý (CPUs) khác nhau nên ớ ỏ ạ ử ụ ử
m t đ c tính quan tr ng mà ngôn ng này ph i có là đ c l p v i các dòng CPUs khác nhau – ộ ặ ọ ữ ả ộ ậ ớ
g i là đ c tính di đ ng. Nhóm đã m m t d án có tên là Green đ hi n th c hóa ý t ng này. ọ ặ ộ ở ộ ự ể ệ ự ưở
Đ gi i quy t v n đ di đ ng, nhóm đã s d ng ý t ng c a k s Niklaus Wirth – ể ả ế ấ ề ộ ử ụ ưở ủ ỹ ư
ng i sáng l p ngôn ng Pascal – v vi c s d ng c ch thông d ch và máy o (virtual ườ ậ ữ ề ệ ử ụ ơ ế ị ả
machine).
V n n t ng ngôn ng , do hãng SUN phát tri n trên n n UNIX nên h s d ng ngôn ề ề ả ữ ể ề ọ ử ụ
ng l p trình C++ là ch y u. Do đó, ngôn ng m i thiên v h ng đ i t ng (Object ữ ậ ủ ế ữ ớ ề ướ ố ượ
Oriented) c a C++ h n là h ng th t c nh Pascal. ủ ơ ướ ủ ụ ư
Ban đ u nhóm đ t tên cho ngôn ng m i là “Oak” nh ng sau đó đ c chuy n thành ầ ặ ữ ớ ư ượ ể
Java do Oak cũng đã là tên m t ngôn ng l p trình khác. ộ ữ ậ
Năm 1992, d án Green cho ra đ i s n ph m đ u tiên có tên là “*7” nh ng đã không ự ờ ả ẩ ầ ư
đ c chào đón nh mong đ i. Sau đó nhóm đã ph i m t c năm 1993 và n a đ u 1994 đ đi ượ ư ợ ả ấ ả ử ầ ể
ti p th công ngh c a mình. T năm 1994, s phát tri n c a Internet đã t o c h i đ Java ế ị ệ ủ ừ ự ể ủ ạ ơ ộ ể
phát tri n nhanh chóng. Nhóm đã phát tri n m t trình duy t có tên là HotJava cho phép các ể ể ộ ệ
ch ng trình Java nhúng đ c trong đó (applet). Đây chính là minh ch ng rõ ràng v s c m nh ươ ượ ứ ề ứ ạ
c a Java đã nhanh chóng đ c c ng đ ng ng i s d ng internet bi t đ n và là ti n đ đ ủ ượ ộ ồ ườ ử ụ ế ế ề ề ể
Java phát tri n r c r nh ngày hôm nay. ể ự ỡ ư
Phiên b n đ u tiên 1.0 c a Java ra đ i vào năm 1996, sau đó là phiên b n 1.1 m c dù ả ầ ủ ờ ả ặ
khá m nh nh ng cũng còn nhi u h n ch . ạ ư ề ạ ế
Năm 1998 đánh đ u b c chuy n mình m nh m c a Java v i s ra đ i c a phiên b n ấ ướ ể ạ ẽ ủ ớ ự ờ ủ ả
1.2 làm cho Java ti n g n t i m c tiêu “vi t m t l n, ch y kh p n i” (Write once, Run ế ầ ớ ụ ế ộ ầ ạ ắ ơ
Anywhere). Các nhân viên ti p th c a Java g i đây là phiên b n “Java 2 Standard Edition ế ị ủ ọ ả
Software Development Kit Version 1.2” ý nói t i s có m t đ ng th i c a 2 phiên b n ớ ự ặ ồ ờ ủ ả
“Standard Edition” là Micro Edition và Enterprise Edition trong Java.
Các phiên b n 1.3, 1.4 là s phát tri n m r ng ti p theo c a phiên b n 1.2. Phiên b n ả ự ể ở ộ ế ủ ả ả
1.5 (chuy n sang g i là phiên b n 5.0) đánh d u s tích h p đ y đ nh t các công ngh Java. ể ọ ả ấ ự ợ ầ ủ ấ ệ
B ng sau cho th y s phát tri n th vi n Java qua các phiên b n: ả ấ ự ể ư ệ ả
6
Phiên
b nả
S các Class và Interface ố
1.0 211
1.1 477
1.2 1524
1.3 1840
1.4 2723
5.0 3270
Hi n t i, Java đã phát tri n t i phiên b n 1.6. ệ ạ ể ớ ả
II. Các đ c tr ng c a Java ặ ư ủ
Java đ c bi t đ n v i các đ c tr ng sau: ượ ế ế ớ ặ ư
II.1. Tính đ n gi n ơ ả
Java đ c phát tri n d a trên C++ nh ng l c b t đi ho c thay th các khái ni m khó ượ ể ự ư ượ ớ ặ ế ệ
hi u nh header file, con tr , structures, union, operator overloading, virtual base class. Trong ể ư ỏ
Java ch có th a k đ n mà không có tính đa th a k nh c a C++. Tuy nhiên tính đa th a k ỉ ừ ế ơ ừ ế ư ủ ừ ế
đ c bi u hi n thông qua vi c s d ng các Interface. ượ ể ệ ệ ử ụ
II.2. Tính h ng đ i t ng ướ ố ượ
Nh đã trình bày trên, Java đ c phát tri n t C++ nên nó là ngôn ng l p trình ư ở ượ ể ừ ữ ậ
h ng đ i t ng. ướ ố ượ
II.3. Tính phân tán
Java cho phép l p trình truy c p các đ i t ng t xa thông qua các giao th c HTTP, ậ ậ ố ượ ừ ứ
FTP b ng các ph ng th c nh RMI hay Socket. ằ ươ ứ ư
Java hoàn toàn thích h p cho các ng d ng Internet. Các công ngh JSP, Servlet cho ợ ứ ụ ệ
phép xây d ng các website t ng tác v i các tính năng th c thi t i u ự ươ ớ ự ố ư
II.4. Tính m nh m ạ ẽ
Vi c lo i b con tr làm tăng đ tin c y c a ch ng trình. L p trình viên không c n ệ ạ ỏ ỏ ộ ậ ủ ươ ậ ầ
quan tâm đ n thao tác c p phát ế ấ và gi i phóng b nh . V i Java, b nh đ c gi i phóng t ả ộ ớ ớ ộ ớ ượ ả ự
đ ng. ộ
II.5. Tính an toàn
Ngôn ng Java đ c thi t k đ tránh các s c : ữ ượ ế ế ể ự ố
• N p ch ng stack lúc runtime. ạ ồ
• Ả ưở ớ ộ ớ ằ ạ ượ ấ nh h ng t i b nh n m ngoài ph m vi đ c c p phát.
• Đ c và ghi file t do ọ ự
7
II.6. Tính trung l pậ
Các ch ng trình vi t b ng Java không b ph thu c vào h đi u hành. Đi u này có ươ ế ằ ị ụ ộ ệ ề ề
đ c là do mã ngu n ch ng trình không đ c biên d ch thành mã máy ngay mà thành mã ượ ồ ươ ượ ị
Bytecode. Khi đem mã Bytecode này ch y trên h máy tính nào thì m t trình thông d ch virtual ạ ệ ộ ị
machine (Java Vitual Machine-JVM) s thông d ch chúng sang mã máy t ng ng đ th c thi. ẽ ị ươ ứ ể ự
Mã ngu n -> ByteCodes -> machine code. ồ
T mã ngu n -> Bytecodes: Trình biên d ch Java. ừ ồ ị
T Bytecodes -> machine code: Trình thông d ch Virtual machine. ừ ị
Java Virtual Machine – JVM
Máy o là m t ph n m m d a trên c s máy tính o. Nó có t p h p các l nh logic đ ả ộ ầ ề ự ơ ở ả ậ ợ ệ ể
xác đ nh các ho t đ ng c a máy tính. Ng i ta có th xem nó nh m t h đi u hành thu nh . ị ạ ộ ủ ườ ể ư ộ ệ ề ỏ
JVM thi t l p các l p tr u t ng cho ph n c ng bên d i, h đi u hành, mã đã biên d ch. ế ậ ớ ừ ượ ầ ứ ướ ệ ề ị
Trình biên d ch chuy n mã ngu n thành t p các l nh c a máy o mà không ph thu c ị ể ồ ậ ệ ủ ả ụ ộ
vào ph n c ng c th . Trình thông d ch trên m i máy s chuy n t p l nh này thành ch ng ầ ứ ụ ể ị ỗ ẽ ể ậ ệ ươ
trình th c thi. Máy o t o ra m t môi tr ng bên trong đ th c thi các l nh b ng cách: ự ả ạ ộ ườ ể ự ệ ằ
• N p các file .class ạ
• Qu n lý b nh ả ộ ớ
• D n “rác”, thu h i b nh c p cho các bi n không còn đ c s d ng. ọ ồ ộ ớ ấ ế ượ ử ụ
Vi c không nh t quán c a ph n c ng làm cho máy o ph i s d ng ngăn x p đ l u ệ ấ ủ ầ ứ ả ả ử ụ ế ể ư
tr các thông tin sau: ữ
• Các “Frame” ch a các tr ng thái c a các ph ng th c. ứ ạ ủ ươ ứ
• Các toán h ng c a mã bytecode. ạ ủ
• Các tham s truy n cho ph ng th c. ố ề ươ ứ
• Các bi n c c b . ế ụ ộ
II.7. Tính di đ ng ộ
Không gi ng C++ và C, các ki u d li u nguyên th y c a Java đ c c p phát m t ố ể ữ ệ ủ ủ ượ ấ ộ
l ng b nh c đ nh. Ch ng h n ki u d li u int c a Java luôn là 4 byte (32 bit) trong khi ượ ộ ớ ố ị ẳ ạ ể ữ ệ ủ
ki u int c a C++ có th hi u là 2 byte ho c 4 byte. Thi t k này giúp cho trình biên d ch luôn ể ủ ể ể ặ ế ế ị
có s bytecode nh nhau trên m i h máy và sau đó phát sinh mã máy theo khuôn d ng c ố ư ọ ệ ạ ố
đ nh. ị
Trong các phiên b n đ u c a Java, v n đ giao di n đ h a cho ng i s d ng (GUI) ả ầ ủ ấ ề ệ ồ ọ ườ ử ụ
ch a đ c x lý tri t đ và ph thu c vào h máy. Ngày nay, th vi n GUI c a Java đã đ c ư ượ ử ệ ể ụ ộ ệ ư ệ ủ ượ
Macintosh
Trình
biên
d ch ị
Bytecode
Trình
thông
d ch ị
Java
(Java
Interpreter)
IBM
Sparc
8
vi t l i hoàn toàn và có tính đ c l p cao giúp cho ch ng trình Java có giao di n gi ng nhau ế ạ ộ ậ ươ ệ ố
trên m i h máy. ọ ệ
II.8. Tính thông d ch ị
Trình thông d ch Java s thông d ch mã bytecode sang mã máy n i mà nó đ c cài đ t. ị ẽ ị ơ ượ ặ
Quá trình này cũng làm các ch ng trình Java ch y ch m h n. Tuy nhiên đây l i là gi i pháp ươ ạ ậ ơ ạ ả
cho tính di đ ng. ộ
II.9. Tính th c thi cao ự
Java s d ng công ngh Just-In-Time (JIT) giúp quá trình thông d ch th c hi n nhanh ử ụ ệ ị ự ệ
h n. V i công ngh này, nh ng mã bytecode gi ng nhau s ch c n thông d ch m t l n. Ngày ơ ớ ệ ữ ố ẽ ỉ ầ ị ộ ầ
nay, công ngh này liên t c đ c c i ti n và cho k t qu v t tr i so v i các trình thông d ch ệ ụ ượ ả ế ế ả ượ ộ ớ ị
truy n th ng. Ví d nh JIT có th qu n lý các đo n mã đ c s d ng th ng xuyên trong ề ố ụ ư ể ả ạ ượ ử ụ ườ
ch ng trình, t i u chúng đ nâng cao t c đ c th c hi n. ươ ố ư ể ố ộ ự ệ
II.10. Tính đa lu ng ồ
V i ch ng trình Java, l p trình viên có th cùng lúc qu n lý nhi u ti n trình khác ớ ươ ậ ể ả ề ế
nhau. Đi u này giúp cho vi c cài đ t các thu t toán song song b ng Java trên các máy tính ề ệ ặ ậ ằ
nhi u CPU đ c d dàng h n, đ c bi t trong các ng d ng th i gian ề ượ ễ ơ ặ ệ ứ ụ ờ th c. ự
II.11. Tính đ ng ộ
Các ch ng trình Java có th đ c nâng c p mà không nh h ng t i ng i s d ng. ươ ể ượ ấ ả ưở ớ ườ ử ụ
Các ph ng th c m i có th đ c cài đ t thêm vào các l p đ i t ng hay các giao di n trong ươ ứ ớ ể ượ ặ ớ ố ượ ệ
th vi n c a ch ng trình đang ch y. ư ệ ủ ươ ạ
III. Các lo i ng d ng c a Java ạ ứ ụ ủ
• Ứ ụ ệ ng d ng console: Không có giao di n GUI.
• Ứ ụ ồ ạ ệ ng d ng đ ho : Có giao di n GUI.
• Applet: Nhúng trong các trang Web.
• Servlet: Các class th c thi phía ự web server.
• JSP: Các file nhúng mã Java và HTML.
• Ứ ụ ự ứ ụ ở ề ầ ạ ng d ng EJB, RMI, JMS: Xây d ng ng d ng b i nhi u thành ph n ghép l i,
giao ti p t xa. ế ừ
IV. Công c và môi tr ng l p trình Java ụ ườ ậ
Hi n nay có r t nhi u môi tr ng phát tri n Java (Integrated Development Environment ệ ấ ề ườ ể
- IDE). M i môi tr ng cung c p cho l p trình viên nh ng ti n ích l p trình m c đ khác ỗ ườ ấ ậ ữ ệ ậ ở ứ ộ
nhau. M t s IDE thông d ng là: ộ ố ụ
• Netbeans (mi n phí t i http:// ễ ạ www.netbeans.org).
• Jcreator (th ng m i). ươ ạ
• Jbuilder (th ng m i). ươ ạ
• Eclipse (mi n phí ễ http://www.eclipse.org/).
9
V. Cài đ t Java ặ
Java phiên b n Java m i nh t có th download t i đ a ch http://java.sun.com/j2se. Sau ả ớ ấ ể ạ ị ỉ
đó cài đ t nh ng d ng bình th ng. ặ ư ứ ụ ườ
Th m c cài đ t m c đ nh c a Java trên ư ụ ặ ặ ị ủ Windows là C:\Program Files\Java\jdk1.6.0_02
(n u phiên b n cài là jdk1.6.0_02). Trong đó có ch a các th m c v i ý nghĩa sau: ế ả ứ ư ụ ớ
bin Ch a các công c và trình biên d ch Java ứ ụ ị
demo Ch a các ch ng trình Java Demo ứ ươ
docs Ch a các tài li u mô t th vi n c a Java ứ ệ ả ư ệ ủ
includes Ch a các file dùng đ biên d ch các đo n mã ngu n vi t b ng ngôn ng khác ứ ể ị ạ ồ ế ằ ữ
(native).
jre Ch a các file l u thông tin môi tr ng lúc th c thi ứ ư ườ ự
lib Ch a các file th vi n ứ ư ệ
src Ch a mã ngu n java ứ ồ
Trong th m c \bin có ch a các công c chính c a Java: ư ụ ữ ụ ủ
Trình biên d ch, 'javac' ị
Cú pháp:javac [options] sourcecodename.java
Trình thông d ch, 'java' ị
Cú pháp:java [options] classname
Trình d ch ng c, 'ja ị ượ vap'
javap d ch ng c bytecode và in ra thông tin v các thu c tính (các tr ng), các ph ng ị ượ ề ộ ườ ươ
th c c a m t l p. ứ ủ ộ ớ
Cú pháp:javap [options] classname
Công c sinh tài li u, 'javadoc' ụ ệ
Ti n ích này cho phép ta t o ra t p HTML d a trên các l i gi i thích trong mã ch ng ệ ạ ệ ự ờ ả ươ
trình (ph n n m trong c p d u /*.... */). ầ ằ ặ ấ
Cú pháp:javadoc [options] sourcecodename.java
Ch ng trình tìm l i - Debug, 'jdb‘ ươ ỗ
Cú pháp:jdb [options] sourcecodename.java
hay
jdb -host -password [options] sourcecodename.java
Cài đ t đ ng d n m c đ nh. ặ ườ ẫ ặ ị
1. M Control Panel ở
2. Ch n System ọ
10
3. Ch n Tab Advanced ọ
4. Ch n Environment Variables ọ
5. Thêm đ ng d n C:\Program Files\Java\jdk1.6.0_02\bin vào bi n môi tr ườ ẫ ế ường Path
- Ch n Variable Path ọ
11
- Ch n Edit ọ
12
Đ tài 1. Ngôn ng mô hình hóa UML ề ữ
I. Xây d ng h th ng ph n m m theo h ng đ i t ng ự ệ ố ầ ề ướ ố ượ
I.1 Các khái ni m căn b n c a công ngh h ng đ i t ng ệ ả ủ ệ ướ ố ượ
H ng đ i t ng là m t công ngh đ s n sinh ra các mô hình ph n ánh m t cách t ướ ố ượ ộ ệ ể ả ả ộ ự
nhiên các nghi p v th c t . Xét cho cùng thì m i quy trình nghi p v trong th c t đ u là s ệ ụ ự ế ọ ệ ụ ự ế ề ự
t ng tác c a các đ i t ng theo m t trình t nh m đ t đ c m t m c đích c th . Nói cách ươ ủ ố ượ ộ ự ằ ạ ượ ộ ụ ụ ể
khác, các đ i t ng và m i quan h gi a chúng ph n ánh quy trình nghi p v . Ví d nh ố ượ ố ệ ữ ả ệ ụ ụ ư
nghi p v tuy n nhân s cho m t công ty có th đ c tóm t t qua m t chu i các t ng tác ệ ụ ể ự ộ ể ượ ắ ộ ỗ ươ
nh sau: ư
1. Công ty đ a ra thông báo tuy n nhân s t i các ng viên có nhu c u ư ể ự ớ ứ ầ
2. Ứ ử ồ ơ ự ể ớ ng viên g i h s d tuy n t i công ty
3. Công ty duy t h s và g i gi y h n ph ng v n t i ng viên ệ ồ ơ ử ấ ẹ ỏ ấ ớ ứ
4. Công ty ph ng v n ng viên ỏ ấ ứ
5. Công ty ký h p đ ng v i ng viên ho c t ch i ợ ồ ớ ứ ặ ừ ố
Trong ví d trên có s tham gia c a hai đ i t ng “công ty” và “ ng viên”. S trao đ i ụ ự ủ ố ượ ứ ự ổ
thông tin gi a hai đ i t ng này cho th y m i quan h ph thu c gi a chúng (dependence). ữ ố ượ ấ ố ệ ụ ộ ữ
M t ví d khác là trong h th ng qu n lý nhân s chúng ta có các đ i t ng nh : nhân ộ ụ ệ ố ả ự ố ượ ư
viên, qu n lý,…cho th y m i quan h d ng khác: các nhân viên làm công vi c qu n lý t t ả ấ ố ệ ạ ệ ả ấ
nhiên cũng là nhân viên c a công ty nh ng có thêm các thu c tính riêng bi t – m t quan h k ủ ư ộ ệ ộ ệ ế
th a (inheritance). ừ
Trong m t h th ng bán hàng, m i đ n hàng bao g m trong nó các thông tin v khách ộ ệ ố ỗ ơ ồ ề
hàng, ngày gi , …và m t danh m c các m t hàng. Khi này ta nói r ng gi a đ n hàng và m t ờ ộ ụ ặ ằ ữ ơ ặ
hàng t n t i m t quan h bao g m (aggregation) ồ ạ ộ ệ ồ
M c tiêu c a công ngh h ng đ i t ng chính là th hi n đ c các đ i t ng và ụ ủ ệ ướ ố ượ ể ệ ượ ố ượ
m i quan h gi a chúng vào trong các h th ng ph n m m. Vì v y, các h th ng ph n m m ố ệ ữ ệ ố ầ ề ậ ệ ố ầ ề
theo công ngh h ng đ i t ng ph n ánh m t cách t nhiên và trung th c nghi p v th c t ệ ướ ố ượ ả ộ ự ự ệ ụ ự ế
và có kh năng đáp ng các thay đ i d dàng. ả ứ ổ ễ
Phát tri n m t h th ng ph n m m theo h ng đ i t ng d a trên 5 khái ni m c ể ộ ệ ố ầ ề ướ ố ượ ự ệ ơ
b n: L p (class), đ i t ng (object), thông đi p (mesage), th a k (inheritance) và đa hình ả ớ ố ượ ệ ừ ế
(polymorphism).
L p là s tr u t ng hóa các đ i t ng th c t theo ph m vi nghi p v . L y ví d v ớ ự ừ ượ ố ượ ự ế ạ ệ ụ ấ ụ ề
h th ng qu n lý sinh viên c a tr ng ĐHBK Hà N i c n qu n lý r t nhi u đ i t ng sinh ệ ố ả ủ ườ ộ ầ ả ấ ề ố ượ
viên khác nhau nh ng có th ch đ c tr u t ng hóa thành m t l p đ i t ng có tên ư ể ỉ ượ ừ ượ ộ ớ ố ượ
SinhVien ch ng h n. S tr u t ng hóa m t l p đ i t ng cho ta k t qu m t t p các thu c ẳ ạ ự ừ ượ ộ ớ ố ượ ế ả ộ ậ ộ
tính (attributes) và các hành vi (operations) đ c tr ng cho b t kỳ đ i t ng nào thu c l p đó. ặ ư ấ ố ượ ộ ớ
Đ i t ng th c t thì có vô s thu c tính và hành vi nh ng ch thu c tính và hành vi trong ố ượ ự ế ố ộ ư ỉ ộ
ph m vi nghi p v là đ c xét đ n. S chi ti t ph thu c vào ph m vi nghi p v . ạ ệ ụ ượ ế ự ế ụ ộ ạ ệ ụ
S tr u t ng hóa di n ra nhi u c p đ . L y ví d : l p đ ng v t có vú bao g m l p ự ừ ượ ễ ở ề ấ ộ ấ ụ ớ ộ ậ ồ ớ
đ ng v t 4 chân, l p 4 chân l i bao g m các l p nh l p mèo, l p trâu,… ộ ậ ớ ạ ồ ớ ư ớ ớ
M i đ i t ng là m t bi u hi n th c t c a m t l p. ỗ ố ượ ộ ể ệ ự ế ủ ộ ớ
object = name + attributes + operations
H th ng h ng đ i t ng n u đ c mô hình đúng s r t linh ho t, d hi u ch nh, ệ ố ướ ố ượ ế ượ ẽ ấ ạ ễ ệ ỉ
đ c cài đ t d dàng b ng các ngôn ng h ng đ i t ng. Các h th ng ph n m m h ng ượ ặ ễ ằ ữ ướ ố ượ ệ ố ầ ề ướ
đ i t ng cũng đ c cài đ t b i các ngôn ng l p trình h ng đ i t ng. ố ượ ượ ặ ở ữ ậ ướ ố ượ
13
H ng đ i t ng không ch là m t lý thuy t mà đã đ c ch ng minh b ng nh ng ng ướ ố ượ ỉ ộ ế ượ ứ ằ ữ ứ
d ng r t thành công trong th c t nhi u lĩnh v c khác nhau. Tuy nhiên, lĩnh v c này v n c n ụ ấ ự ế ở ề ự ự ẫ ầ
đ c chu n hóa h n n a. ượ ẩ ơ ữ
I.2 Quy trình chung phát tri n h th ng ph n m m ể ệ ố ầ ề
Xây d ng m t h th ng ph n m m h ng đ i t ng cũng tuân theo quy trình chung ự ộ ệ ố ầ ề ướ ố ượ
nh m i công ngh khác: ư ọ ệ
1. Requirements : Thu th p yêu c u ậ ầ
2. Analysis : Phân tích
3. Design: Thi t k ế ế
4. Implementation: Cài đ t ặ
5. Test: Ki m th ể ử
6. Deployment: Tri n khai ể
Theo nguyên t c chung này, m i công ty l i ng d ng nh ng công ngh khác nhau đ ắ ỗ ạ ứ ụ ữ ệ ể
phát tri n ng d ng nh các mô hình water fall, mô hình h ng ch c năng,… ể ứ ụ ư ướ ứ
I.3 Nh ng thách th c c a ngành công nghi p ph n m m hi n nay ữ ứ ủ ệ ầ ề ệ
M c dù đã ng d ng các công ngh ti n ti n và quy trình phát tri n chu n hóa nh ng ặ ứ ụ ệ ế ế ể ẩ ư
ngành công nghi p ph n m m v n ph i đ i m t v i nh ng thách th c: ệ ầ ề ẫ ả ố ặ ớ ữ ứ
1. S gia tăng v quy mô t nh đ n l n c a ng d ng ự ề ừ ỏ ế ớ ủ ứ ụ
2. S c ép v th i gian hoàn thành ứ ề ờ
3. S phân tán v không gian làm vi c ự ề ệ
4. Đa d ng v n i dung ạ ề ộ
5. S thay đ i các yêu c u c a ng i s d ng ự ổ ầ ủ ườ ử ụ
Nh ng thách th c này có th nói là g n li n v i m i công ty ph n m m đ c bi t là ữ ứ ể ắ ề ớ ọ ầ ề ặ ệ ở
Vi t Nam, n i mà vai trò c a quá trình kh o sát, phân tích còn b xem nh cũng nh các công ệ ơ ủ ả ị ẹ ư
ty còn đang b ng v i s m r ng v quy mô và thi u nhân l c chuyên môn v phân tích ỡ ỡ ớ ự ở ộ ề ế ự ề
thi t k . ế ế
II. L ch s phát tri n ngôn ng mô hình hóa UML ị ử ể ữ
II.1. Tóm t t l ch s UML ắ ị ử
Nh ng năm 1980 là th i kỳ bùng n s l ng các công ty ph n m m s d ng ngôn ữ ờ ổ ố ượ ầ ề ử ụ
ng l p trình h ng đ i t ng(Object Oriented Programming - OOP) đ xây d ng các ng ữ ậ ướ ố ượ ể ự ứ
d ng. Đi u này d n t i m t đòi h i ph i có m t quy trình làm ph n m m ti p c n theo h ng ụ ề ẫ ớ ộ ỏ ả ộ ầ ề ế ậ ướ
phân tích và thi t k h ng đ i t ng (Object Oriented Analyze and Design - OOAD). Nhi u ế ế ướ ố ượ ề
nhà nghiên c u ph ng pháp trong đó có Booch, Rumbaugh và Jacobson đã làm vi c đ c l p ứ ươ ệ ộ ậ
và đã đ xu t các quy trình th a mãn yêu c u này. M i m t quy trình có m t t p ký hi u mô ề ấ ỏ ầ ỗ ộ ộ ậ ệ
hình riêng đ truy n đ t và di n t các k t qu phân tích và thi t k . ể ề ạ ễ ả ế ả ế ế
Vào đ u nh ng năm 1990, các công ty khác nhau, th m chí là các b ph n khác nhau ầ ữ ậ ộ ậ
c a cùng m t công ty đã s d ng các quy trình khác nhau. Thêm vào đó, các công ty này l i ủ ộ ử ụ ạ
mu n s d ng các công c ph n m m h tr các quy trình c a h . V i quá nhi u quy trình ố ử ụ ụ ầ ề ỗ ợ ủ ọ ớ ề
khác nhau, các công ty ph n m m đã r t khó khăn trong vi c cung c p các công c này. Đi u ầ ề ấ ệ ấ ụ ề
này cho th y vi c c n thi t ph i có m t quy trình v i t p ký hi u th ng nh t. ấ ệ ầ ế ả ộ ớ ậ ệ ố ấ
Năm 1994, James Rumbaugh đã h p tác cùng Grady Booch t i công ty ph n m m ợ ạ ầ ề
Rational Software Corporation đ cùng xây d ng m t quy trình th ng nh t d a trên k t qu ể ự ộ ố ấ ự ế ả
14
c a t ng ng i. Sau đó Ivar Jacobson cũng s m gia nh p nhóm này. Năm 1996, nhóm đã cho ủ ừ ườ ớ ậ
xu t b n phiên b n đ u tiên c a UML t i c ng đ ng phát tri n ph n m m và yêu c u ph n ấ ả ả ầ ủ ớ ộ ồ ể ầ ề ầ ả
h i. Cũng cùng th i gian đó, m t t ch c có tên Object Management Group (OMG) đã m i ồ ờ ộ ổ ứ ờ
nhóm đ trình m t ngôn ng mô hình. OMG là m t t ch c phi l i nhu n chuyên xúc ti n vi c ệ ộ ữ ộ ổ ứ ợ ậ ế ệ
s d ng công ngh h ng đ i t ng trong ngành công nghi p ph n m m thông qua vi c đ a ử ụ ệ ướ ố ượ ệ ầ ề ệ ư
ra các h ng d n và đ c t OOP. Các thành viên c a OMG ban đ u là 3Com Corporation; ướ ẫ ặ ả ủ ầ
American Airlines; Canon, Inc.; Data General; Hewlett-Packard; Philips Telecommunications
N.V.; Sun Microsystems; và Unisys Corporation. Các t p đoàn l n nh HP, IBM, Microsoft, ậ ớ ư
Oracle và Rational Software đã nh n th y l i ích c a UML và đã nh n l i tài tr cho các d án ậ ấ ợ ủ ậ ờ ợ ự
v UML c a OMG. Năm 1997, OMG ti p t c xem xét l i UML và đ n năm 2001 thì phiên ề ủ ế ụ ạ ế
b n UML 1.4 ra đ i. Hi n nay OMG đã phát hành t i phiên b n UML 2.0 và đang nghiên c u ả ờ ệ ớ ả ứ
phiên b n 2.1. ả
II.2. Khái ni m v UML ệ ề
UML – Unified Modeling Language là m t ngôn ng dùng các s đ và mô hình th ng ộ ữ ơ ồ ố
nh t đ mô hình các h th ng ph n m m. ấ ể ệ ố ầ ề
M c đích c a UML là: ụ ủ
• Tr thành ngôn ng mô hình mà t t c m i ng i làm mô hình có th s d ng ở ữ ấ ả ọ ườ ể ử ụ
• T p trung h ng t i gi i quy t các v n đ t n t i trong phát tri n ph n m m ậ ướ ớ ả ế ấ ề ồ ạ ể ầ ề
hi n nay. ệ
• Đ n gi n nh t có th trong khi v n mô hình đ c ph n l n các ng d ng. ơ ả ấ ể ẫ ượ ầ ớ ứ ụ
• Nâng cao tính tái s d ng các thành ph n c a m t h th ng ph n m m ử ụ ầ ủ ộ ệ ố ầ ề
• UML là m t ngôn ng di n t , UML không ph i là m t quy trình. ộ ữ ễ ả ả ộ
Thu t ng “Unified” đây có m t ý nghĩa quan tr ng, nó nói lên các nguyên t c c a ậ ữ ở ộ ọ ắ ủ
UML:
• Th ng nh t ph ng th c, ký hi u, thu t ng ố ấ ươ ứ ệ ậ ữ
• G n k t gi a các chu trình phát tri n ắ ế ữ ể
• Không ph thu c vào lĩnh v c ng d ng ụ ộ ự ứ ụ
• Không ph thu c vào ngôn ng l p trình và môi tr ng th c hi n ụ ộ ữ ậ ườ ự ệ
• Không ph thu c vào quy trình phát tri n ụ ộ ể
• G n k t ch t ch các khái ni m n i t i c a h th ng. ắ ế ặ ẽ ệ ộ ạ ủ ệ ố
II.3 Đ c tr ng c a UML ặ ư ủ
Hi n nay, UML là m t ngôn ng đã đ c OMG chu n hóa và đ c đ c t rõ ràng. T t ệ ộ ữ ượ ẩ ượ ặ ả ấ
c các mô hình, s đ c a UML đ u theo h ng đ i t ng. ả ơ ồ ủ ề ướ ố ượ
Các đ c tính c a UML bao g m: ặ ủ ồ
• Mô hình class (class diagrams) mô t c u trúc tĩnh c a h th ng và m i quan h ả ấ ủ ệ ố ố ệ
gi a các đ i t ng ữ ố ượ
• Mô hình t ng tác (interaction diagrams), mô hình tr ng thái (state diagrams), mô ươ ạ
hình ho t đ ng (activity diagrams) mô t các hành vi đ ng c a các đ i t ng ạ ộ ả ộ ủ ố ượ
trong h th ng cũng nh các thông đi p gi a chúng. ệ ố ư ệ ữ
• Mô hình Use-case và mô hình ho t đ ng mô t các yêu c u và các lu ng công ạ ộ ả ầ ồ
vi c trong h th ng. ệ ệ ố
• Các mô hình c u trúc h n h p (composite structure diagrams) mô t s h p tác ấ ỗ ợ ả ự ợ
cũng nh các đ c đi m v cài đ t. ư ặ ể ề ặ
15