Giáo trình Các mô hình cơ bản trong phân tích và thiết kế hướng đối tượng
1.1. TỔNG QUAN VỀ MÔ HÌNH HÓA
1.1.1. Khái niệm trừu tượng hóa
Để tìm hiểu về một thế giới phức tạp, mọi khoa học thực nghiệm
đều phải vận dụng một nguyên lý cơ bản, đó là sự trừu tượng hóa
(Abstraction). Trừu tượng hóa là một nguyên lý của nhận thức, đòi
hỏi phải bỏ qua những sắc thái (chi tiết của chủ điểm) không liên
quan tới chủ định hiện thời, để tập trung hoàn toàn vào các sắc thái
chính liên quan tới chủ định đó (từ điển Oxford).
Theo Liberty J.,1998, trừu tượng là nguyên lý bỏ qua những khía
cạnh của chủ thể không liên quan đến mục đích hiện tại để tập trung
đầy đủ hơn vào các khía cạnh còn lại. Trừu tượng hóa là đơn giản hóa
thế giới thực một cách thông minh. Nó cho khả năng tổng quát hóa
và ý tưởng hóa vấn đề đang xem xét. Chúng loại bỏ đi các chi tiết dư
thừa mà chỉ tập trung vào các điểm chính, cơ bản.
Trừu tượng là sự mô tả một cách khái quát một đối tượng thực
và bỏ qua nhiều yếu tố, nhiều mặt không quan trọng của nó [23]. Sử
dụng nguyên lý trừu tượng hóa có nghĩa là thừa nhận thế giới thực là
phức tạp, thay vì cố gắng hiểu biết toàn bộ bằng lựa chọn một phần
của vấn đề
Trừu tượng bao gồm nhiều dạng: trừu tượng thủ tục, trừu tượng
dữ liệu, trừu tượng điều khiển [11]. Trong đó trừu tượng dữ liệu là cơ
chế mạnh, dựa trên cơ sở tổ chức suy nghĩ và đặc tả về các nhiệm vụ
của hệ thống. Trừu tượng dữ liệu là nguyên tắc xác định kiểu dữ liệu
cho các thao tác áp dụng cho đối tượng, với ràng buộc là các giá trị
lưu trữ trong đối tượng chỉ được sửa đổi hay quan sát thông qua các
thao tác đó. Người thiết kế áp dụng trừu tượng dữ liệu để xác định
thuộc tính và các thao tác, xâm nhập thuộc tính thông qua thao tác.
Theo Wasserman, “Ký pháp trừu tượng mang tính tâm lý cho
phép ta tập trung vào một vấn đề ở một mức nào đó của sự khái quát,
bỏ qua các chi tiết ở mức thấp ít liên quan. Việc sử dụng sự trừu
tượng cũng cho phép ta làm việc với các khái niệm và thuật ngữ gần
gũi trong môi trường của vấn đề đặt ra mà không phải chuyển chúng
thành một cấu trúc không quen thuộc” [11].
Nếu các mặt, các yếu tố của đối tượng được mô tả bị bỏ qua càng
nhiều thì mức trừu tượng hóa càng cao. Như vậy ta có thể mô tả đối
tượng thiết kế với nhiều mức trừu tượng khác nhau tùy thuộc vào sự
hiểu biết, nhận thức của người phát triển và yêu cầu đặt ra đối với nó.
Có nhiều mức trừu tượng:
- Mức cao nhất: một giải pháp được phát biểu theo thuật ngữ đại
thể bằng cách dùng ngôn ngữ của môi trường vấn đề.
- Mức vừa: lấy khuynh hướng thủ tục nhiều hơn. Thuật ngữ
hướng vấn đề thường đi đôi với thuật ngữ hướng cài đặt trong mô tả
giải pháp.
- Mức thấp: giải pháp được phát biểu theo thuật ngữ chi tiết để
có thể được cài đặt trực tiếp.
Mỗi bước trong tiến trình kỹ nghệ phần mềm đều là sự làm mịn
cho một mức trừu tượng của phần mềm. Trong kỹ nghệ hệ thống,
phần mềm được dùng như một phần tử của hệ thống dựa trên máy
tính. Trong phân tích các yêu cầu phần mềm, giải pháp phần mềm
được phát biểu dưới dạng "đó là cái quan trọng trong môi trường vấn
đề". Khi chúng ta chuyển từ thiết kế sơ bộ sang thiết kế chi tiết thì
mức độ trừu tượng giảm dần. Quá trình này dẫn tới mức trừu tượng
thấp nhất khi sinh ra chương trình gốc.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Tóm tắt nội dung tài liệu: Giáo trình Các mô hình cơ bản trong phân tích và thiết kế hướng đối tượng
Unified Framework, Addison-Wesley, 1998. [14]. Silvia T., Acuna, Natalia Juristo, Software process modeling, Springer, Spain, 2005. [15]. Sommerville I., Software Engineering, Addison-Wasley, 6th Edition, 2001, 7th editor Chapter 19, 2004. [16]. Zhiming L., Object-Oriented Software Development Using UML, UNU /IIST, Macau 2001. 2. Tiếng Việt [17]. Đoàn Văn Ban, Phân tích, thiết kế và lập trình hướng đối tượng, NXB Thống kê, 1997. [18]. Đoàn Văn Ban, Phân tích thiết kế hướng đối tượng bằng UML, Bài giảng cao học Viện Công nghệ thông tin, 2004. [19]. Đặng Văn Đức, Phân tích thiết kế hướng đối tượng bằng UML (Thực hành với Rational Rose), NXB Khoa học và Kỹ thuật, Hà Nội, 2002. [20]. Huỳnh Văn Đức và tập thể tác giả, Giáo trình nhập môn UML, NXB Lao động Xã hội, 2003. [21]. Lê Văn Phùng, Phân tích và thiết kế hệ thống thông tin, NXB Lao động Xã hội, 2004. [22]. Lê Văn Phùng, Kỹ thuật phân tích và thiết kế hệ thống thông tin hướng cấu trúc, NXB Thông tin và Truyền thông, 2009. [23]. Lê Văn Phùng, Kỹ nghệ phần mềm, NXB Thông tin và Truyền thông, 2010. [24]. Ngô Trung Việt, Kỹ nghệ phần mềm - Cách tiếp cận của người thực hành, NXB Giáo dục, tập 1/1997, tập 2, 3/1999. [25]. Nguyễn Văn Vỵ, Phân tích và thiết kế các hệ thống thông tin hiện đại hướng cấu trúc và hướng đối tượng, NXB Thống kê, 2002. [26]. Nguyễn Văn Vỵ, Bài giảng cao học về phân tích thiết kế hướng đối tượng, Đại học Công nghệ Hà Nội. [27]. Nguyễn Văn Vỵ, Nguyễn Việt Hà, Giáo trình kỹ nghệ phần mềm, NXB Giáo dục Việt Nam, 2009. MỤC LỤC Lời nói đầu .................................................................................................... 5 Chương 1. Tổng quan về mô hình hóa phần mềm .................................... 5 1.1. Tổng quan về mô hình hóa ............................................................... 5 1.1.1. Khái niệm trừu tượng hóa............................................................. 5 1.1.2. Khái niệm mô hình và mô hình hóa ............................................. 7 1.1.3. Phương pháp mô hình hóa.......................................................... 11 1.1.4. Ngôn ngữ mô hình hóa ............................................................... 13 1.1.5. Nguyên tắc mô hình hóa............................................................. 13 1.2. Mô hình hóa tiến trình phát triển phần mềm ................................ 14 1.2.1. Tiến trình phát triển phần mềm .................................................. 14 1.2.2. Ngôn ngữ mô hình hóa hợp nhất (UML).................................... 15 1.2.3. Quy trình phát triển phần mềm hợp nhất (USDP)...................... 17 Chương 2. Các khái niệm cơ bản trong phân tích và thiết kế hướng đối tượng ................................................... 19 2.1. Cách tiếp cận hướng đối tượng ...................................................... 19 2.1.1. Các đặc trưng của cách tiếp cận hướng đối tượng...................... 20 2.1.2. Các ưu khuyết điểm của thiết kế hướng đối tượng..................... 21 2.2. UML và các giai đoạn phát triển phần mềm.................................. 22 2.2.1. Giai đoạn nghiên cứu sơ bộ ........................................................ 22 2.2.2. Giai đoạn phân tích..................................................................... 22 2.2.3. Giai đoạn thiết kế........................................................................ 23 2.2.4. Giai đoạn lập trình ...................................................................... 23 2.2.5. Giai đoạn kiểm thử ..................................................................... 24 2.3. Đặc trưng tiến trình phát triển phần mềm hướng đối tượng bằng UML ........................................ 24 2.3.1. Ca sử dụng điều khiển toàn bộ quá trình phát triển.................... 24 2.3.2. Quá trình phát triển lấy kiến trúc làm trung tâm ........................ 25 2.3.3. Tiến trình phát triển là quá trình lặp và tăng dần........................ 26 2.4. Một số khái niệm cơ bản trong UML ............................................. 28 2.4.1. Các đối tượng ............................................................................. 28 2.4.2. Lớp các đối tượng....................................................................... 29 2.4.3. Các giá trị và các thuộc tính của đối tượng ................................ 30 2.4.4. Các thao tác ............................................................................... 31 2.4.5. Các gói........................................................................................ 32 2.5. Các nét cơ bản về UML ................................................................... 33 2.5.1. Mô hình hóa kiến trúc hệ thống.................................................. 33 2.5.2. Các vấn đề cốt lõi trong UML.................................................... 35 2.6. Quy trình xây dựng các mô hình cơ bản trong phân tích và thiết kế hệ thống hướng đối tượng bằng UML ......................... 50 2.6.1. Các pha chính trong quy trình phát triển phần mềm .................. 50 2.6.2. Phần mềm công cụ phục vụ phân tích và thiết kế hướng đối tượng........................................................ 51 Chương 3. Yêu cầu hệ thống và mô hình nghiệp vụ ............................... 53 3.1. Khái niệm yêu cầu ........................................................................... 53 3.1.1. Yêu cầu chức năng ..................................................................... 56 3.1.2. Yêu cầu phi chức năng ............................................................... 56 3.2. Mô hình nghiệp vụ .......................................................................... 56 3.2.1. Nội dung và sản phẩm của pha lập mô hình nghiệp vụ .............. 56 3.2.2. Xây dựng mô hình nghiệp vụ ..................................................... 57 3.2.3. Xác định các yêu cầu bổ sung .................................................... 59 3.3. Xác định yêu cầu hệ thống và mô hình ca sử dụng....................... 59 3.3.1. Nội dung và sản phẩm của pha xác định yêu cầu....................... 60 3.3.2. Mô hình ca sử dụng .................................................................... 60 Chương 4. Mô hình phân tích đối tượng.................................................. 82 4.1. Xác định các phần tử trong mô hình khái niệm ............................ 83 4.1.1. Xác định đối tượng ..................................................................... 83 4.1.2. Xác định thuộc tính của lớp........................................................ 84 4.1.3. Xác định các thao tác của lớp..................................................... 91 4.2. Xác định mối quan hệ giữa các lớp ................................................ 94 4.2.1. Quan hệ kết hợp.......................................................................... 95 4.2.2. Quan hệ tụ hợp ......................................................................... 102 4.2.3. Quan hệ tổng quát hóa .............................................................. 104 4.2.4. Quan hệ kế thừa........................................................................ 106 4.2.5. Quan hệ phụ thuộc.................................................................... 107 4.2.6. Quan hệ thực hiện hóa .............................................................. 108 4.3. Phát triển mô hình đối tượng........................................................ 108 4.3.1. Các loại lớp trong sơ đồ lớp ..................................................... 108 4.3.2. Khuôn mẫu của các lớp ............................................................ 110 4.3.3. Quy trình phát triển các lớp đối tượng và sơ đồ lớp có mối quan hệ chủ yếu ...................................... 113 Chương 5. Các mô hình phân tích động thái...................................... 118 5.1. Các yếu tố thể hiện sự tương tác .................................................. 119 5.1.1. Các sự kiện và hành động của hệ thống ................................... 119 5.1.2. Trao đổi thông điệp giữa các đối tượng.................................... 122 5.2. Sơ đồ trình tự ................................................................................. 123 5.2.1. Các thành phần của sơ đồ trình tự ............................................ 123 5.2.2. Xây dựng sơ đồ trình tự cho một luồng dữ liệu trong mỗi ca sử dụng ............................................................... 126 5.2.3. Ví dụ về xây dựng các sơ đồ trình tự cho hệ thống bán hàng .. 127 5.2.4. Ghi nhận các hoạt động của các lớp đối tượng......................... 130 5.2.5. Các hợp đồng/các đặc tả về hoạt động của hệ thống................ 131 5.3. Sơ đồ trạng thái ............................................................................. 134 5.3.1. Trạng thái và sự biến đổi trạng thái.......................................... 135 5.3.2. Xác định các trạng thái và các sự kiện ..................................... 137 5.3.3. Xây dựng sơ đồ trạng thái ........................................................ 138 Chương 6. Các mô hình thiết kế tương tác ............................................ 142 6.1. Sơ đồ hoạt động ............................................................................. 142 6.1.1.Trạng thái và sự chuyển trạng thái ............................................ 143 6.1.2. Nút quyết định và rẽ nhánh ...................................................... 143 6.1.3. Thanh tương tranh hay thanh đồng bộ...................................... 144 6.1.4. Tuyến công việc ....................................................................... 145 6.2. Sơ đồ cộng tác................................................................................ 147 6.2.1. Các cấu phần trong sơ đồ cộng tác ........................................... 152 6.2.2. Thiết kế các sơ đồ cộng tác và các lớp đối tượng..................... 164 6.2.3. Ví dụ thiết kế hệ thống bán hàng.............................................. 173 Chương 7. Mô hình kiến trúc logic......................................................... 173 7.1. Kiến trúc hệ thống ......................................................................... 173 7.1.1. Định nghĩa ................................................................................ 173 7.1.2. Phân loại kiến trúc hệ thống ..................................................... 173 7.2. Phân tích kiến trúc ........................................................................ 173 7.2.1. Xác định các gói ....................................................................... 174 7.2.2. Xác định các lớp thực thể hiển nhiên ....................................... 178 7.2.3. Xác định các yêu cầu chuyên biệt chung nhất.......................... 178 7.3. Thiết kế kiến trúc........................................................................... 179 7.3.1. Thiết kế cấu hình mạng cho hệ thống....................................... 179 7.3.2. Thiết kế các hệ thống con và các giao diện của chúng............. 181 7.3.3. Xác định các lớp thiết kế quan trọng về mặt kiến trúc ............. 185 Chương 8. Mô hình kiến trúc vật lý ....................................................... 188 8.1. Sơ đồ thành phần .......................................................................... 188 8.1.1. Các thành phần trong sơ đồ ...................................................... 189 8.1.2. Sơ đồ thành phần trong ATM................................................... 192 8.2. Sơ đồ triển khai ............................................................................. 193 8.2.1. Các phần tử (nút) của sơ đồ triển khai...................................... 194 8.2.2. Sơ đồ triển khai của hệ thống ATM ......................................... 196 Chương 9. Mô hình phân tích và thiết kế một ca sử dụng ................... 197 9.1. Phân tích một ca sử dụng ............................................................. 197 9.1.1. Xác định các lớp phân tích ....................................................... 197 9.1.2. Mô tả các tương tác giữa các đối tượng phân tích.................... 200 9.1.3. Mô tả luồng các sự kiện phân tích (flow of events-analysis) ... 201 9.1.4. Nắm bắt các yêu cầu chuyên biệt ............................................. 202 9.2. Thiết kế một ca sử dụng ................................................................ 203 9.2.1. Thiết kế một ca sử dụng dưới dạng cộng tác của các lớp......... 203 9.2.2. Thiết kế một ca sử dụng dưới dạng cộng tác của các đối tượng trong các lớp................................................ 204 9.2.3. Thiết kế một ca sử dụng dưới dạng các hệ thống con tham gia cùng với các giao diện giữa chúng ............................ 206 9.2.4. Nắm bắt các yêu cầu triển khai................................................. 208 Chương 10. Mô hình thiết kế đối tượng ................................................. 209 10.1. Quá trình thiết kế......................................................................... 209 10.1.1. Các yêu cầu thông tin trong quá trình thiết kế........................ 209 10.1.2. Các bước thực hiện thiết kế chi tiết ........................................ 210 10.1.3. Cơ chế duy trì đối tượng......................................................... 210 10.2. Hướng dẫn chi tiết thiết kế sơ đồ lớp.......................................... 213 10.2.1. Rà soát, bổ sung các lớp thiết kế đã phác thảo trong giai đoạn phân tích ........................................................ 213 10.2.2. Đặc tả đầy đủ và chi tiết các thuộc tính và các thao tác của mỗi lớp đã thiết kế ........................................................... 215 10.2.3. Rà soát và bổ sung đầy đủ các liên kết giữa các đối tượng và sự kết hợp giữa các lớp ...................................................... 218 10.2.4. Bổ sung các mối quan hệ kết hợp và khả năng điều khiển được ...................................................................... 218 10.2.5. Bổ sung các quan hệ phụ thuộc dữ liệu .................................. 220 10.2.6. Bổ sung các lớp tổng quát và các quan hệ kế thừa................. 221 Thuật ngữ và từ viết tắt............................................................................. 229 Tài liệu tham khảo .................................................................................... 231 ChÞu tr¸ch nhiÖm xuÊt b¶n nguyÔn thÞ thu hμ Biªn tËp: ng« mü h¹nh TrÞnh thu ch©u Tr×nh bμy s¸ch: bïi ch©u loan Söa b¶n in: TrÞnh thu ch©u ThiÕt kÕ b×a: trÇn hång minh In 700 b¶n, khæ 16 x 24 cm t¹i C«ng ty In H¶i Nam Sè ®¨ng ký kÕ ho¹ch xuÊt b¶n: 863-2010/CXB/5-587/TTTT Sè quyÕt ®Þnh xuÊt b¶n: 245/Q§-NXB TTTT ngμy 21 th¸ng 10 n¨m 2010 In xong vμ nép l−u chiÓu th¸ng 10 n¨m 2010.
File đính kèm:
- giao_trinh_cac_mo_hinh_co_ban_trong_phan_tich_va_thiet_ke_hu.pdf