Y êu cầu, lý do chọn đề tài và phạm vi của đề tài
Yêu cầu của đề tài
1.1.1 Tìm hiểu về công cụ trợ giúp trong việc phân tích thiết kế hệ thống theo hướng đối tƣợng là công cụ UML ( Unified Modeling Language)
1.1.2 Áp dụng UML để phân tích thiết kế hệ thống báo động nhà
Lý do chọn đề tài
Hiện nay, có nhiều công cụ hỗ trợ kỹ sư phần mềm trong việc phát triển ứng dụng, được gọi là CASE (Computer Aided Software Engineering) Những công cụ này giúp tối ưu hóa quy trình lập trình, tăng cường hiệu suất làm việc và cải thiện chất lượng sản phẩm phần mềm.
Engineering) có hiệu quả sử dụng cao nhƣng các lập trình viên vẫn đang đi theo hướng thiết kế cổ điển
Mục đích của đề tài này là giới thiệu cho lập trình viên công cụ UML, hỗ trợ hiệu quả trong phân tích và thiết kế hệ thống theo hướng đối tượng, một phương pháp hiện đại Đồng thời, bài viết cũng ứng dụng công cụ này để phân tích hệ thống báo động nhà mang tên Save Home.
Phạm vi của đề tài
Do thời gian hạn hẹp, bài viết này chỉ giới thiệu các thành phần cơ bản của công cụ UML, đủ để phân tích và thiết kế hệ thống Các thành phần chính bao gồm các sơ đồ mô tả bài toán và chi tiết của chúng, thể hiện bài toán qua các lớp và thuộc tính của đối tượng.
Cuối cùng, bài viết sẽ phân tích thiết kế hệ thống báo động cho nhà ở Tuy nhiên, do hạn chế về thời gian và điều kiện, hệ thống chưa được triển khai trên phần cứng và phần mềm cụ thể Việc cài đặt sẽ được thực hiện khi đề tài này tiếp tục phát triển.
Đánh giá giữa phân tích thiết kế theo hướng chức năng và hướng đối tƣợng
Ư u nhược điểm của phân tích thiết kế hệ thống theo hướng chức năng
Phân tích thiết kế theo hướng chức năng tập trung vào các chức năng của hệ thống, sử dụng các công cụ như biểu đồ phân cấp chức năng, biểu đồ luồng dữ liệu, sơ đồ liên kết thực thể và các thuộc tính để mô tả hệ thống Ngôn ngữ cài đặt hệ thống thường bao gồm các hệ quản trị cơ sở dữ liệu như Foxpro, Fortran, và các ngôn ngữ lập trình khác.
* Ƣu điểm : - trực quan, dễ thu thập dữ liệu, dễ kiểm tra và đánh giá
- dễ phân tích và thiết kế
- thích hợp với các ứng dụng xử lý theo lô
* Nhƣợc điểm : - không xử lý đƣợc các ứng dụng trực tuyến và thời gian thực
- không có tính sử dụng lại
2.2 Ư u nhược điểm của phân tích thiết kế hệ thống theo hướng đối tượng
Phân tích thiết kế hệ thống theo hướng đối tượng tập trung vào việc sử dụng các đối tượng, bao gồm thuộc tính và phương thức thao tác trên chúng Công cụ mô tả bài toán là các lớp được phân cấp và kế thừa, giúp tổ chức cấu trúc hệ thống một cách hiệu quả Ngôn ngữ lập trình hướng đối tượng như C++ được sử dụng để cài đặt các thiết kế này, mang lại tính linh hoạt và khả năng mở rộng cho hệ thống.
Giáo viên hướng dẫn ThS: Lê Văn Minh Thực hiện:
* Ƣu điểm : - Có khả năng mở rộng hệ thống dễ dàng
- Có tính sử dụng lại
- Mô tả đƣợc các ứng dụng trực tuyến và thời gian thực
* Nhƣợc điểm : - Khó mô tả bài toán
- Khó phân tích thiết kế
- Có tính trừu tƣợng cao
Mỗi hướng phân tích thiết kế đều có những ưu nhược điểm riêng Phân tích thiết kế theo hướng chức năng mang lại nhiều lợi ích, nhưng không thể mô tả các ứng dụng trực tuyến và thời gian thực, điều này trở nên quan trọng trong môi trường mạng hiện nay Chỉ có phân tích thiết kế theo hướng đối tượng mới đáp ứng được nhu cầu này Mặc dù vẫn còn nhiều thách thức trong việc mô tả hệ thống, nhưng nhờ vào nhiều công cụ hỗ trợ, hướng phân tích này đang dần thay thế phương pháp phân tích thiết kế theo hướng chức năng.
Sau đây sẽ giới thiệu một công cụ dùng để phân tích thiết kế hệ thống theo hướng đối tượng
Phần II : Công cụ UML
(Unified Modeling Language: mô hình ngôn ngữ hợp nhất)
Chương I : khái niệm về UML
Mô hình đóng vai trò quan trọng trong việc thiết lập các quy tắc kỹ thuật, giúp mô tả hình dáng và cấu trúc của các công trình như nhà ở, máy móc hay các bộ phận trong công ty Quá trình vẽ mô hình được thực hiện bởi nhiều người, những người này cung cấp chi tiết cần thiết để phản ánh công việc hiện tại Các yếu tố như chi phí, thời gian ước tính, phân bố công việc và nguồn cung cấp là những thông tin cơ bản được tích hợp trong quá trình vẽ.
Mô hình và sơ đồ là những yếu tố quan trọng trong quá trình thiết kế, với mô hình được định nghĩa là tập hợp các quy tắc có thể áp dụng trong giai đoạn phát triển hoặc lập kế hoạch Trong suốt hoạt động của mô hình, người thiết kế cần giám sát các kết quả để đảm bảo chúng đáp ứng yêu cầu về chức năng, hiệu suất, khả năng phục vụ và độ tin cậy Mô hình cần được xây dựng sao cho các quy tắc thể hiện những khía cạnh kết quả khác nhau, đồng thời cho thấy rằng quy tắc lý tưởng phản ánh cấu hình hệ thống Mô hình sẽ trải qua nhiều giai đoạn, và ở mỗi giai đoạn, nó sẽ được chi tiết hóa thêm.
Quá trình tạo ra mô hình là một chuỗi hoạt động lặp đi lặp lại nhằm đảm bảo rằng các mô hình đáp ứng yêu cầu dự án và đạt đến mục tiêu đề ra Mô hình không phải là phiên bản cuối cùng, mà có thể được thay đổi và cập nhật trong quá trình phát triển dự án Những giải pháp tốt thường đã được kiểm tra và đạt đến trình độ cao nhờ vào ý kiến và cách giải quyết sáng tạo Khi người thiết kế sở hữu nhiều khả năng khác nhau, họ sẽ có cái nhìn sâu sắc hơn về hệ thống, từ đó tạo ra những mô hình chất lượng hơn.
Nhận xét
Mỗi hướng phân tích thiết kế đều có những ưu nhược điểm riêng Phân tích thiết kế theo hướng chức năng có nhiều ưu điểm, nhưng nhược điểm lớn nhất là không mô tả được các ứng dụng trực tuyến và thời gian thực Trong khi đó, với môi trường người dùng hiện nay chủ yếu là mạng, các ứng dụng chủ yếu là trực tuyến và thời gian thực, chỉ có phân tích thiết kế theo hướng đối tượng mới đáp ứng được yêu cầu này Mặc dù còn nhiều khó khăn trong việc mô tả hệ thống, nhưng nhờ vào nhiều công cụ hỗ trợ, hướng phân tích thiết kế theo đối tượng đang dần thay thế phương pháp theo hướng chức năng.
Sau đây sẽ giới thiệu một công cụ dùng để phân tích thiết kế hệ thống theo hướng đối tượng
Phần II : Công cụ UML
(Unified Modeling Language: mô hình ngôn ngữ hợp nhất)
Chương I : khái niệm về UML
Các mô hình đóng vai trò quan trọng trong việc thiết lập các quy tắc kỹ thuật, giúp mô tả rõ ràng hình dáng và cấu trúc của các công trình như nhà ở, máy móc hay các bộ phận trong công ty Quá trình vẽ mô hình thường được thực hiện bởi nhiều người, họ cung cấp các chi tiết cần thiết để tái hiện chính xác cấu trúc công việc hiện tại Những yếu tố như chi phí, thời gian ước tính, phân bố công việc và nguồn cung cấp là những thông tin thiết yếu được ghi nhận trong quá trình này.
Để xây dựng một mô hình hiệu quả, cần có sơ đồ rõ ràng và tập hợp các quy tắc phù hợp với từng giai đoạn phát triển hoặc lập kế hoạch Trong quá trình hoạt động, người thiết kế phải liên tục giám sát kết quả để đảm bảo chúng đáp ứng các yêu cầu về chức năng, hiệu suất, khả năng phục vụ và độ tin cậy Mô hình cần được phát triển với nhiều khía cạnh khác nhau, cho phép điều chỉnh và chi tiết hóa qua từng giai đoạn, nhằm đạt được cấu hình hệ thống lý tưởng.
Quá trình tạo ra các mô hình bao gồm việc thực hiện các hoạt động ở mức cao, với các nhà thiết kế mô hình lặp đi lặp lại để đảm bảo rằng mô hình đạt yêu cầu dự án đã được cấu trúc hóa Mô hình không phải là sản phẩm cuối cùng; chúng có thể thay đổi và được cập nhật trong quá trình dự án Những phương án tốt thường đạt được thông qua ý kiến và giải pháp sáng tạo, tạo ra những mô hình chất lượng đã được kiểm tra Khi các nhà thiết kế sở hữu nhiều khả năng khác nhau, họ có thể cung cấp cái nhìn sâu sắc về hệ thống và phát triển các mô hình hiệu quả.
CÔNG CỤ UML CHƯƠNG I: Khái niệm về UML 1.1 Mở đầu
Mô hình ngôn ngữ hợp nhất (UML)
Mô hình ngôn ngữ hợp nhất (UML) có khả năng giải quyết hiệu quả các vấn đề đã được mô tả, nhờ vào tiềm năng xây dựng các mô hình thông qua phương pháp hướng đối tượng.
1.2.1 Các phương pháp hướng đối tượng điển hình
Hướng đối tượng, bắt nguồn từ ngôn ngữ lập trình tuần tự, đã trở nên phổ biến từ những năm 80 nhờ sự phát triển của các ngôn ngữ lập trình hỗ trợ phát triển phần mềm Trong những năm 90, một số phương pháp hướng đối tượng đã thu hút được sự chú ý và trở thành xu hướng trong ngành công nghiệp phần mềm.
Phương pháp của Grady Booch cho phép phát triển hướng đối tượng qua nhiều cách khác nhau, với hệ thống được phân tích từ nhiều khung nhìn khác nhau, mỗi khung nhìn được mô tả bằng các mô hình sơ đồ Mặc dù phương pháp này có nhiều ký hiệu phong phú, nhưng chỉ một số ít người sử dụng tìm thấy chúng hữu ích, và nhiều ký hiệu còn được vẽ bằng tay Phương pháp Booch cũng bao gồm tiến trình phân tích hệ thống từ cả hai quan điểm vĩ mô và vi mô, tạo nền tảng cho sự phát triển và xử lý lặp ở mức cao.
OMT (the Object Modeling Technique): công nghệ mô hình hoá đối tƣợng là một phương pháp được phát triển khi người ta phát minh ra điện học, lúc đó
James Rumbaugh đang phát triển một quy trình kiểm tra trực tuyến, giúp thể hiện các yêu cầu của hệ thống Hệ thống được mô tả qua nhiều phương pháp như phương pháp đối tượng, động lực học, chức năng và mô hình use-case, nhằm mang lại cái nhìn toàn diện Phương pháp OMT đặc biệt hữu ích trong việc định nghĩa hệ thống, đồng thời cho phép tạo tài khoản tương tranh và ánh xạ liên kết tới các cơ sở dữ liệu.
OOSE (Objectory) là công nghệ phần mềm hướng đối tượng và các phương pháp hướng đối tượng được phát triển bởi Ivan Jacobson Phương pháp OOSE, ra đời vào năm 1994, dựa trên khuôn dạng ViewPoint và mang đến một phiên bản cải tiến trong việc phát triển phần mềm.
Phương pháp hướng đối tượng, theo Jacobson, đã được áp dụng để phát triển các hệ thống như thiết bị viễn thông và hệ thống tài chính cho công ty môi trường Hai phương pháp này đóng vai trò quan trọng trong việc xây dựng các use-case, với việc định nghĩa yêu cầu ban đầu của hệ thống sẽ được mở rộng bởi các tác nhân (actors) Các use-case được thực hiện qua nhiều giai đoạn trong quá trình phát triển và kiểm tra hệ thống.
Giáo viên hướng dẫn ThS: Lê Văn Minh Thực hiện:
Nguyễn Thị Thu Hương đã thực hiện việc chỉnh sửa hệ thống và đưa đối tượng vào các công việc kỹ thuật Những ý kiến này được áp dụng trong mô hình nhằm thúc đẩy quá trình xử lý hiệu quả hơn.
Fusion (sự hợp nhất): Các phương pháp hợp nhất được Hewleft - Packard
Phương pháp thế hệ thứ hai, được đề xuất bởi D Coleman vào năm 1994, là nền tảng cho các phương pháp ban đầu Phương pháp hợp nhất đã được cải tiến từ những quan điểm quan trọng trước đó, bao gồm các kỹ thuật thể hiện các phương thức và sự tương tác giữa các đối tượng, đồng thời sở hữu nhiều biểu đồ mô hình đa dạng.
Phương pháp Coad/Yourdon, hay còn gọi là phân tích thiết kế hướng đối tượng OOA/OOD, là một trong những phương pháp đầu tiên được áp dụng trong lĩnh vực này Mặc dù phương pháp này đơn giản và dễ học, với một số giới hạn về ý kiến và thuật ngữ, nhưng các chú thích và phương pháp không được cải tiến đã dẫn đến việc các hệ thống sử dụng phương pháp này bị hạn chế Do đó, hiện nay, Coad/Yourdon ít được sử dụng trong phân tích và thiết kế hệ thống.
Mỗi phương pháp phát triển phần mềm đều có ký hiệu và cách xử lý riêng, cùng với các công cụ hỗ trợ khác nhau Việc lựa chọn phương pháp phù hợp thường yêu cầu các cuộc thảo luận sôi nổi để xác định phương pháp tối ưu nhất Mỗi phương pháp mang lại những ưu điểm riêng, do đó, để đạt được hiệu quả cao, cần phải kết hợp nhiều phương pháp lại với nhau Tuy nhiên, câu hỏi đặt ra là ai sẽ là người tìm kiếm và hợp nhất các phương pháp này?
Grady Booch và James Rumbaugh đã hợp lý hóa các phương pháp phát triển phần mềm và bắt đầu làm việc trên UML vào năm 1994, dẫn đến sự ra đời của phương pháp "các phương pháp hợp nhất" Phương pháp Booch và OMT-2 của Rumbaugh đã định hình sự phát triển này, và vào năm 1995, Ivan đã kết nối các phương pháp hướng đối tượng lại với nhau Một công ty ở Thụy Điển đã mua phần mềm hệ thống hướng đối tượng, đánh dấu một bước tiến mới cho UML và nhấn mạnh tầm quan trọng của việc phát triển một ngôn ngữ mô hình chuẩn, được gọi là "Unified Modeling Language (UML)" Quá trình xây dựng mô hình ngôn ngữ chuẩn này được coi là một nhiệm vụ quan trọng, nhằm tạo ra một tiến trình mà mọi người đều có thể sử dụng.
Booch, Rumbaugh và Jacobson đã phân tích các khái niệm khác nhau của UML để phát triển hướng đối tượng, từ đó đưa ra nhiều ý kiến và gợi ý để cải tiến ngôn ngữ này Phiên bản 1.0 của UML được phát hành vào năm 1997.
UML, mặc dù dựa trên các phần chính của phương pháp Booch, đã tích hợp các khái niệm từ nhiều phương pháp khác nhau như OMT và OOSE Các thành phần của UML chú thích cho các phương thức có sẵn trong sơ đồ, với mục đích định nghĩa rõ ràng các trạng thái.
Mô hình hệ thống (không phải hoàn toàn là phần mềm) sử dụng các khái niệm hướng đối tựơng
Thành lập một sự kết nối rõ ràng
Chỉ ra được địa chỉ của kích thước kế thừa đầy đủ về nhiệm vụ- chức năng của hệ thống
Tạo một mô hình ngôn ngữ sử dụng cả yếu tố con người và máy móc
UML đã trở thành một mô hình ngôn ngữ chung được sử dụng rộng rãi trong nhiều ngành công nghiệp Nó được phát triển qua quá trình hình thành và thử thách bởi kỹ thuật mô hình hệ thống, đồng thời nhận được sự hỗ trợ từ ngành công nghiệp để thiết lập tiêu chuẩn thực tiễn UML còn được hỗ trợ bởi nhiều tài liệu phong phú, bao gồm các mô hình lớn và các dạng ngữ nghĩa đặc biệt của ngôn ngữ.
Giáo viên hướng dẫn ThS: Lê Văn Minh Thực hiện:
UML được thành lập nhằm phát triển và hợp lý hóa ngôn ngữ, giúp mọi người dễ dàng sử dụng Tuy nhiên, ngôn ngữ này không có quyền sở hữu và việc áp dụng các phương pháp của nó cần có sự hỗ trợ từ các công cụ Các nhà cung cấp công cụ đã tạo ra các công cụ CASE và khuyến khích việc viết sách về UML để nâng cao kiến thức và ứng dụng của ngôn ngữ này.
Phát triển phần mềm hướng đối tượng
UML là một mô hình ngôn ngữ hướng đối tượng, bao gồm các thành phần và sơ đồ cơ bản cho việc xây dựng các mô hình hướng đối tượng Cuốn sách này trình bày các khái niệm khác nhau về lập trình hướng đối tượng, cùng với một số thiết bị đọc có thể còn lạ lẫm với người dùng.
Giáo viên hướng dẫn ThS: Lê Văn Minh Thực hiện:
OO và kỹ thuật ấy sẽ đọc vài lời giới thiệu của văn bản, tương tự như với các quan điểm hướng đối tượng khác như là:
Hướng đối tượng là một kỹ thuật quan trọng trong việc tạo ra các mô hình, giúp phản ánh phạm vi công việc và máy móc Kỹ thuật này đóng vai trò then chốt trong việc xác định và quản lý các yếu tố liên quan đến phạm vi.
Các mô hình hướng đối tượng (OO) khi được cấu trúc lại sẽ dễ dàng hơn trong việc liên kết, thay đổi và mở rộng Điều này giúp chúng ta có thể tùy chỉnh và kiểm tra một cách hiệu quả.
Khi sửa đổi và xây dựng các hệ thống sử dụng kỹ thuật lập trình hướng đối tượng (OO), cần đảm bảo tính linh hoạt và kiến trúc được định nghĩa rõ ràng Hệ thống cũng nên cung cấp tùy chọn tạo và thực hiện các thành phần tái sử dụng, đồng thời yêu cầu khả năng tạo mã cho toàn bộ hệ thống.
Các mô hình hướng đối tượng (OO) có thể được áp dụng một cách hiệu quả trong phần mềm sử dụng ngôn ngữ lập trình OO Tuy nhiên, trong thực tế, yếu tố quan trọng hơn là công nghệ phần mềm hướng đối tượng, thay vì chỉ tập trung vào bộ máy tính và ngôn ngữ lập trình.
Mặc dù không hoàn toàn đúng theo lý thuyết, kỹ thuật này đã được chứng minh là hiệu quả và được áp dụng trong nhiều dự án xây dựng hệ thống khác nhau Tuy nhiên, các trường hợp thường thiếu tiêu chuẩn để chứng minh tính hợp lệ của kỹ thuật đối tượng, điều này cũng góp phần vào quá trình công nghiệp hóa OMG đã nỗ lực hoàn thành các nhiệm vụ được giao như một phần của tiêu chuẩn.
Một phương pháp hiệu quả trong tổ chức đối tượng là kết hợp tiến trình phát triển với mô hình ngôn ngữ, sử dụng các công cụ và kỹ thuật có cấu trúc phù hợp.
Sử dụng UML
UML là công cụ hữu ích để mô hình hóa các hệ thống với nhiều loại khác nhau Nó có thể được áp dụng trong các giai đoạn phát triển khác nhau, từ việc xác định yêu cầu đến kiểm tra và đánh giá kết quả của hệ thống.
1.5.1.Các kiểu hệ thống khác nhau: Đích của UML là mô tả được vài kiểu hệ thống Thuật ngữ sơ đồ hướng đối tƣợng đƣợc dùng chung để tạo ra các mô hình của hệ thống phần mềm UML cũng một xí nghiệp Ở đây các kiểu hệ thống khác nhau có các đặc tính chung nhƣ sau: Thông tin hệ thống: lưu, khôi phục, dịch chuyển và đưa thông tin tới người sử dụng, ở đây sử dụng một khối lƣợng lớn dữ liệu, có đầy đủ các mối liên kết được lưu vào bảng quan hệ hoặc đối tượng cơ sở dữ liệu
Kỹ thuật hệ thống là việc áp dụng các phương pháp kỹ thuật để quản lý và điều hành các thiết bị điều khiển, chẳng hạn như trong lĩnh vực viễn thông, hệ thống máy tính nhỏ, hoặc các quy trình xử lý Thông thường, kỹ thuật này liên quan đến việc xử lý hệ thống theo thời gian thực.
Nhúng các hệ thống thời gian thực: thực hiện nhúng phần cứng vào một thiết bị khác
Hệ thống phân tán là một kiến trúc cho phép dữ liệu dễ dàng di chuyển giữa các máy tính khác nhau, yêu cầu sự đồng bộ giữa các máy liên kết Các hệ thống này thường được xây dựng trên nền tảng như CORBA, COM/DCOM, hoặc Java beans/RMI.
Phần mềm hệ thống là nền tảng cho các cơ sở hạ tầng khác nhau, cho phép sử dụng các phần mềm đa dạng Nó quản lý hệ thống tính toán cơ sở dữ liệu và cung cấp giao diện người dùng thông qua các phương thức cấp thấp trên phần cứng, đồng thời tạo ra các giao diện chung cho các phần mềm khác.
Hệ thống thương mại: Mô tả các đích, các nguồn, các quy tắc và các công việc hiện tại trong xí nghiệp
Công nghệ tác nghiệp đang nổi lên như một lĩnh vực quan trọng trong mô hình hóa hướng đối tượng Các mô hình hướng đối tượng đã chứng minh hiệu quả vượt trội trong việc mô hình hóa các quy trình tác nghiệp trong doanh nghiệp Hiện nay, ngôn ngữ mô hình hóa hướng đối tượng được áp dụng để phát triển hệ thống thông tin tác nghiệp trong các công ty.
Các giai đoạn phát triển hệ thống
Có 5 giai đoạn phát triển hệ thống là: các yêu cầu phân tích, phân tích, thiết kế, cài đặt và kiểm thử
Giáo viên hướng dẫn ThS: Lê Văn Minh Thực hiện:
UML sử dụng các trường hợp để thu thập yêu cầu từ khách hàng, mô hình hóa các tác nhân bên ngoài và chức năng mà họ mong muốn từ hệ thống Các tác nhân và trường hợp sử dụng được liên kết với nhau, thể hiện mối quan hệ truyền thông và phá vỡ cấu trúc phân cấp Sơ đồ USE-CASE của UML mô tả chi tiết các tác nhân và trường hợp sử dụng, giúp làm rõ những mong đợi của khách hàng đối với hệ thống, đồng thời yêu cầu phân tích cũng có thể áp dụng cho các tiến trình tác nghiệp.
Các giai đoạn phân tích liên quan đến các khái niệm trừu tượng về nguồn, bao gồm lớp và đối tượng, cùng với các cơ chế được thể hiện trong phạm vi vấn đề Mô hình các lớp đã được xác định và liên kết với các mô hình khác thông qua sơ đồ lớp của UML Sự liên kết giữa lớp và quá trình thực hiện các trường hợp cũng được mô tả qua các mô hình động trong UML Trong giai đoạn phân tích, chỉ có phạm vi vấn đề lớp được mô hình hóa, trong khi các giải pháp kỹ thuật cho lớp được định nghĩa chi tiết trong hệ thống phần mềm, bao gồm các lớp cho giao diện người sử dụng, cơ sở dữ liệu, truyền thông, và sự tương tác.
Trong giai đoạn thiết kế, kết quả phân tích được phát triển thành các giải pháp kỹ thuật, bao gồm việc thêm các lớp mới cho cơ sở hạ tầng kỹ thuật như giao diện người dùng, cơ sở dữ liệu và truyền thông với các hệ thống khác Phạm vi của các lớp này được "nhúng" vào cơ sở hạ tầng kỹ thuật, cho phép sự thay đổi linh hoạt giữa phạm vi vấn đề và cơ sở hạ tầng Các kết quả thiết kế sau đó sẽ được chi tiết hóa để phục vụ cho pha lập trình.
Trong giai đoạn lập trình, việc chuyển đổi các lớp từ thiết kế sang mã thực trong ngôn ngữ lập trình hướng đối tượng phụ thuộc vào khả năng của ngôn ngữ đó, có thể dễ hoặc khó tùy thuộc vào từng nhiệm vụ Khi mô hình được chuyển đổi thành mã một cách tùy tiện, giai đoạn trước đó chỉ nhằm hiểu và cấu trúc hệ thống Quyết định chuyển đổi thành mã có thể tạo ra các mô hình đơn giản và chính xác Lập trình là một giai đoạn tách biệt với quá trình chuyển đổi mô hình thành mã.
Hệ thống kiểm tra đáng tin cậy bao gồm các đơn vị kiểm tra, kiểm tra tích hợp, kiểm tra hệ thống và kiểm tra sự chấp nhận Các đơn vị kiểm tra thường là các lớp riêng biệt hoặc nhóm lớp do lập trình viên thực hiện Kiểm tra tích hợp tập trung vào việc kiểm tra các thành phần và lớp đã được tích hợp để đảm bảo hoạt động đồng thời đúng như mong đợi.
Hệ thống kiểm tra hoạt động như một hộp đen, đảm bảo chức năng của hệ thống phù hợp với nhu cầu của người sử dụng cuối Kiểm tra sự chấp nhận do khách hàng thực hiện nhằm xác định các yêu cầu của hệ thống có được đáp ứng hay không Các phương pháp kiểm tra khác nhau áp dụng các sơ đồ UML tương ứng với từng loại công việc Kiểm tra đơn vị sử dụng sơ đồ lớp và các đặc trưng của lớp, trong khi kiểm tra tích hợp thường dựa trên sơ đồ thành phần và sơ đồ cộng tác Cuối cùng, kiểm tra hệ thống sử dụng các sơ đồ use-case phù hợp với kiểu của hệ thống theo các sơ đồ đã được định nghĩa ban đầu.
Giáo viên hướng dẫn ThS: Lê Văn Minh Thực hiện:
CÁC THÀNH PHẦN CƠ BẢN CỦA UML
Mô hình ngôn ngữ hợp nhất có ứng dụng rộng rãi, phù hợp cho mô hình xí nghiệp và phần mềm trong tất cả các giai đoạn phát triển Nó hỗ trợ mọi loại hệ thống và các mô hình toàn diện, bao gồm cả cấu trúc tĩnh và kiểu dáng động Với khả năng thực hiện đa dạng, ngôn ngữ này được định nghĩa và mở rộng với đầy đủ các đặc điểm chung, giúp giảm thiểu sự thay đổi và các vấn đề phức tạp trong quá trình phát triển.
Chương này giới thiệu sơ qua về UML, giải thích ngắn gọn về phạm vi và cấu trúc các thành phần của ngôn ngữ
Mô tả sơ qua về sự khác nhau của các thành phần trong UML :
Các View là các mô tả cơ bản khác nhau của hệ thống, không phải là đồ thị mà thể hiện sơ đồ một cách trừu tượng Mỗi View phản ánh đặc điểm lý tưởng của hệ thống, có thể tạo ra bức tranh tổng thể về cấu trúc của nó Các View cũng kết nối với mô hình ngôn ngữ, giúp lựa chọn các tiến trình và phương thức cho sự phát triển.
Sơ đồ là các đồ thị mô tả trong cách nhìn, và UML có 9 sơ đồ khác nhau được sử dụng trong tất cả các cách nhìn để thể hiện sự kết hợp của hệ thống.
Các phần tử mô hình là những thành phần quan trọng trong sơ đồ, thể hiện các khái niệm hướng đối tượng như lớp (Classes), đối tượng (Objects), mẫu tin (Messages) và các mối quan hệ giữa chúng như sự liên kết, sự phụ thuộc và sự tổng quát Mỗi thành phần mô hình có ký hiệu và ý nghĩa riêng, đồng thời cung cấp thông tin hay ngữ nghĩa cho các tiến trình, phương thức, tổ chức hoặc người sử dụng.
Giáo viên hướng dẫn ThS: Lê Văn Minh Thực hiện:
Mô hình hóa một hệ thống đầy đủ là một nhiệm vụ phức tạp, trong đó hệ thống toàn vẹn được mô tả qua một đồ thị đơn giản Hệ thống này cần phải rõ ràng, dễ chuyển đổi và dễ hiểu Tuy nhiên, đồ thị đơn không thể thu thập tất cả thông tin cần thiết để mô tả đầy đủ hệ thống Hệ thống được thể hiện qua nhiều khía cạnh khác nhau, bao gồm hoạt động (cấu trúc tĩnh và sự tương tác động), không hoạt động (yêu cầu đồng bộ hóa, độ tin cậy, sự phát triển, v.v.), và các khía cạnh tổ chức (việc tổ chức và ánh xạ tới các mô-đun mã).
Một hệ thống được biểu diễn qua nhiều View, mỗi View đại diện cho một phép chiếu về các khía cạnh đặc biệt của hệ thống Mỗi View được mô tả bằng các sơ đồ, nhấn mạnh những thông tin quan trọng của hệ thống Một sơ đồ có thể thể hiện nhiều View khác nhau, tập trung vào một khía cạnh cụ thể tại một thời điểm Mặc dù một sơ đồ trong một View riêng có thể đơn giản để dễ truyền đạt, nhưng nó vẫn chưa đầy đủ so với các sơ đồ và View khác Do đó, bức tranh tổng thể của hệ thống cần được mô tả qua tất cả các View cạnh nhau Hình 2.1 minh họa tất cả các View của UML, thể hiện các ký hiệu đồ thị đại diện cho các phần tử mô hình của hệ thống.
View use-case: mô tả chức năng của hệ thống mà người ngoài có thể thấy đƣợc
View logical: mô tả chức năng làm nhƣ thế nào?, nó đƣợc định nghĩa bên trong hệ thống
View cạnh tranh (Concurrency) thể hiện sự hài hòa trong hệ thống, liên quan đến các vấn đề địa chỉ hoá, sự liên kết và đồng bộ Điều này cho thấy sự hiện diện của một hệ thống hài hòa, nơi mọi thành phần hoạt động một cách hiệu quả và đồng nhất.
View triển khai ( Deplogment ): thể hiện hệ thống triển khai trong kiến trúc vật lý của các máy tính và các thiết bị đƣợc gọi là các nút (Nodes)
View thành phần (Component): thể hiện việc tổ chức của các mã thành phần
Chức năng chuyển đổi giữa các View được thiết kế nhằm hỗ trợ công việc không có trong sơ đồ, giúp dễ dàng chuyển từ View use-case này sang chức năng đã được mô tả bởi người sử dụng hoặc từ View tới chức năng phân tán trong cấu trúc vật lý Trong quá trình này, chúng ta cũng có thể tìm thấy các máy tính khả dụng cho các công việc khác.
Hình 2.1 : Các view trong UML
Ngoài các loại View cơ bản, UML còn hỗ trợ nhiều View khác như view động, view tĩnh, view logic, view vật lý và view biểu thị luồng công việc Mặc dù UML không bắt buộc phải sử dụng những View này, nhưng chúng vẫn được các nhà thiết kế áp dụng, đóng vai trò là công cụ và cơ sở cho các View khác trong quá trình thiết kế.