Chương 3 Phõn tớch thiết kế hướng đối tượng
3.1. Phỏt triển phần mềm hướng đối tượng với UML
Cỏc kỹ thuật phõn tớch và thiết kế hướng đối tượng đó được phỏt triển nhằm sử dụng trong mụ hỡnh hoỏ cụng việc, phõn tớch yờu cầu và thiết kế phần mềm. Với sự phỏt triển nhanh chúng của cụng nghệ hướng đối tượng (OO), một số kỹ thuật trong hướng đối tượng đó được phỏt triển và tớch hợp. UML được thiết kế để kết hợp những đặc điểm tốt nhất của kỹ thuật phõn tớch thiết kế hướng đối tượng với cỏc ký hiệu nhằm đưa ra một chuẩn cụng nghiệp.
UML – the Unified Modeling Language là một ngụn ngữ dựng cho đặc tả, trực quan hoỏ, và làm tài liệu cho cỏc sản phẩm trong quỏ trỡnh phỏt triển hệ thống phần mềm của hệ thống phần mềm, cũng như mụ hỡnh hoỏ cụng việc và cỏc hệ thống khụng phải phần mềm khỏc [4, 27, 28]. Quỏ trỡnh phỏt triển phần mềm sử dụng UML gồm những giai đoạn sau:
Đặc tả yờu cầu (Nắm bắt yờu cầu và phõn tớch): Mục đớch chớnh trong giai đoạn này là nắm bắt yờu cầu của khỏch hàng đối với hệ thống, tạo mụ hỡnh use-case và mụ hỡnh khỏi niệm.
Thiết kế: Mục đớch của giai đoạn là tạo ra cỏc biểu đồ tương tỏc đối với cỏc thao tỏc và biểu đồ lớp thiết kế.
Thực thi/Cài đặt: Đõy là quỏ trỡnh ỏnh xạ cỏc sản phẩm được tạo ra trong giai đoạn thiết kế (artifacts) với mó nguồn bằng một ngụn ngữ lập trỡnh cụ thể.
3.1.1. Đặc tả yờu cầu
Núi chung, yờu cầu là một thành phần/chức năng mà hệ thống phải cú hoặc một ràng buộc mà hệ thống phải thoả món để được khỏch hàng chấp nhận. Đặc tả yờu cầu là quỏ trỡnh giao tiếp giữa người phỏt triển, khỏch hàng và người sử dụng hệ thống để định nghĩa một hệ thống mới; tập trung vào việc mụ tả mục đớch của hệ thống và hệ thống sẽ thực hiện những chức năng gỡ. Trong phương phỏp phỏt triển
hướng đối tượng, đặc tả yờu cầu tối thiểu nờn bao gồm: tổng quan, mục đớch, chức năng, thuộc tớnh, cỏc use case, và mụ hỡnh khỏi niệm của hệ thống.
3.1.2. Tạo mụ hỡnh Use Case
Trong phõn tớch hướng đối tượng, việc tạo ra và sử dụng mụ hỡnh use-case là rất quan trọng. Mỗi use case mụ tả chức năng được cung cấp bởi hệ thống như một tập cỏc sự kiện – khi người sử dụng hành động theo chuỗi sự kiện này, họ nhận được một kết quả trực quan. Người sử dụng thường được mụ hỡnh hoỏ là tỏc nhõn. Cỏc tỏc nhõn khởi đầu một use case để truy cập vào chức năng của hệ thống. Một use case sau đú cú thể gọi một use case khỏc và lấy thờm thụng tin từ phớa tỏc nhõn. Để xỏc định cỏc use case, phải xem xột yờu cầu về hệ thống dưới quan điểm tỏc nhõn và thảo luận với những ai sẽ là tỏc nhõn trong thực tế.
Tất cả cỏc tỏc nhõn và use case của hệ thống tạo thành mụ hỡnh use case – mụ tả quan hệ giữa cỏc use case, giữa use-case với tỏc nhõn; và đặc tả yờu cầu chức năng của hệ thống. Mụ hỡnh use case bao gồm nhiều biểu đồ use case.
3.1.3. Tạo mụ hỡnh khỏi niệm
Một trong những hoạt động quan trọng và đặc trưng của phõn tớch yờu cầu hướng đối tượng là xỏc định khỏi niệm liờn quan tới yờu cầu và tạo ra mụ hỡnh khỏi niệm của ứng dụng. Mụ hỡnh khỏi niệm minh họa cỏc khỏi niệm trừu tượng, cú đầy niệm nghĩa trong miền ứng dụng. Việc tạo ra cỏc khỏi niệm là bước mang tớnh hướng đối tượng cần thiết nhất trong quỏ trỡnh phõn tớch và tỡm hiểu miền ứng dụng để xõy dựng phần mềm cú khả năng mở rộng và tỏi sử dụng cao. Mục đớch của bước này là phõn ró bài toỏn thành cỏc khỏi niệm hoặc cỏc đối tượng đơn lẻ.
Để tạo ra mụ hỡnh khỏi niệm, cỏc ký hiệu sau trong UML được sử dụng [4, 27]:
Khỏi niệm (Concept): Một khỏi niệm được biểu diễn bởi một lớp với tờn xỏc định. Một thể hiện của một khỏi niệm được gọi là một đối tượng của lớp tương ứng. Do đú, một lớp định nghĩa một tập cỏc đối tượng. Lớp là sự trừu tượng hoỏ, đặc tả thuộc tớnh và hành vi của một tập cỏc đối tượng. Đối tượng
là cỏc thể hiện cụ thể của lớp. Mỗi đối tượng cú một đặc tớnh – cú thể dựng để phõn biệt với cỏc đối tượng khỏc.
Liờn kết (Association): Khụng cú mụ hỡnh khỏi niệm nào mà trong đú cỏc khỏi niệm độc lập với nhau. Cỏc đối tượng của cỏc lớp khỏc nhau phải cú quan hệ với nhau để cú thể tương tỏc và hợp tỏc, cựng thực hiện một tiến trỡnh nào đú.
Một liờn kết là một quan hệ giữa hai lớp - đặc tả liờn kết giữa cỏc thể hiện của hai lớp, nhằm mục đớch cựng làm việc. Thể hiện của lớp là cỏc đối tượng, do đú thể hiện của liờn kết là cỏc kết nối (link) giữa cỏc đối tượng của hai lớp. Khi núi về liờn kết giữa hai lớp, khỏi niệm tớnh đa thể (multiplicity) cho biết đối tượng của một lớp cú thể cú liờn kết với bao nhiờu đối tượng trong một lớp khỏc tại một thời điểm xỏc định nào đú. Một điểm cần chỳ ý là cần phải xỏc định rừ ràng vai trũ của mỗi lớp trong liờn kết.
Tụ hợp (Aggregation): Một liờn kết tụ hợp được sử dụng để chỉ rằng một thể hiện của lớp cú thể bao gồm cỏc thể hiện của một lớp khỏc. Số lượng thể hiện “con” phụ thuộc tớnh đa thể của liờn kết. Một cỏch tổng quỏt, cú thể xem khỏi niệm tụ hợp như quan hệ toàn thể - bộ phận hoặc quan hệ một phần (Một lớp là một phần của một lớp khỏc).
Tổng quỏt hoỏ (Generalization): Một liờn kết tổng quỏt hoỏ là một quan hệ giữa một lớp tổng quỏt với một hoặc nhiều lớp cụ thể. Trong quan hệ tổng quỏt hoỏ, lớp cụ thể hoỏ được gọi là lớp con (subclass), lớp tổng quỏt hoỏ được gọi là siờu lớp. Liờn kết tổng quỏt hoỏ cho phộp cỏc lớp con kế thừa cỏc thuộc tớnh và cỏc thao tỏc của siờu lớp.
Thuộc tớnh của lớp: Mỗi thể hiện của lớp đều cú những tớnh chất nhất định. Một thuộc tớnh của một lớp là sự trừu tượng hoỏ của một đặc điểm cụ thể hoặc một tớnh chất của cỏc thực thể (cỏc thực thể này được trừu tượng hoỏ là cỏc đối tượng của lớp). Tại một thời điểm bất kỡ, thuộc tớnh của một đối tượng của lớp là một giỏ trị dữ liệu lụ gớch biểu diễn tớnh chất tương ứng của
đối tượng, và được gọi là giỏ trị của thuộc tớnh của đối tượng tại thời điểm đú.
Biểu đồ lớp mụ tả cấu trỳc tĩnh của hệ thống theo khớa cạnh lớp và đối tượng.
3.1.4. Tạo biểu đồ tương tỏc giữa cỏc đối tượng
Một trong những nhiệm vụ chớnh của giai đoạn thiết kế là tạo ra biểu đồ tương tỏc cho cỏc thao tỏc hệ thống. UML định nghĩa hai loại biểu đồ tương tỏc, đú là biểu đồ cộng tỏc và biểu đồ trỡnh tự đối tượng.
Trong hệ thống hướng đối tượng, kết quả khi cỏc đối tượng làm việc với nhau chớnh là chức năng mà khỏch hàng yờu cầu đối với hệ thống. Mỗi đối tượng riờng lẻ cung cấp chỉ một phần của chức năng – đảm nhiệm một nhiệm vụ cụ thể nào đú, nhưng khi cỏc đối tượng kết hợp làm việc với nhau, chỳng sẽ tạo ra chức năng ở mức cao mà người dựng cú thể sử dụng. Để làm việc cựng nhau, cỏc đối tượng cần phải giao tiếp với nhau; chỳng thực hiện điều này bằng cỏch truyền thụng điệp.
Biểu đồ cộng tỏc là đồ thị (graph) biểu diễn một số đối tượng và cỏc liờn kết giữa chỳng, trong đú chỉ rừ cỏc thụng điệp được truyền từ đối tượng này đến đối tượng khỏc. Biểu đồ cộng tỏc cú thể được sử dụng để chi tiết hoỏ biểu đồ lớp, giỳp người phõn tớch tỡm hiểu và gom nhúm cỏc đối tượng tham gia vào mỗi use case trong thực tế. Biểu đồ cộng tỏc giỳp làm hoàn thiện biểu đồ lớp, đồng thời là tài liệu đặc tả tương tỏc giữa cỏc đối tượng. Chỳng cũng cú thể được sử dụng để đặc tả cỏc đối tượng tham gia vào một thao tỏc. Mục đớch chớnh của biểu đồ cộng tỏc là:
Mụ hỡnh hoỏ tương tỏc giữa cỏc đối tượng nhằm thực hiện chức năng của use case.
Mụ hỡnh hoỏ tương tỏc giữa cỏc đối tượng nhằm thực hiện chức năng của thao tỏc.
Mụ hỡnh hoỏ cỏc cơ chế trong thiết kế kiến trỳc của hệ thống.
Được dựng cựng với cỏc tương tỏc. Tương tỏc là cỏc thụng điệp được truyền giữa cỏc đối tượng.
Biểu đồ trỡnh tự đối tượng được sử dụng để chỉ ra tương tỏc tương tự như trong biểu đồ cộng tỏc, nhưng nhấn mạnh hơn đến thứ tự của thụng điệp theo thời gian [4, 27, 30].
3.1.5. Ánh xạ biểu đồ lớp thiết kế với mó nguồn
Mục đớch cuối cựng của phỏt triển hướng đối tượng hệ thống là tạo ra mó nguồn theo một ngụn ngữ lập trỡnh hướng đối tượng cụ thể. Cỏc kết quả được tạo ra trong giai đoạn thiết kế cung cấp cỏc thụng tin cần thiết để sinh mó nguồn.
Ánh xạ một biểu đồ lớp thiết kế thành một định nghĩa lớp cơ bản trong một ngụn ngữ lập trỡnh hướng đối tượng gồm những bước sau:
định nghĩa lớp: định nghĩa cỏc lớp trong biểu đồ lớp thiết kế theo cỏc ký hiệu của ngụn ngữ lập trỡnh.
định nghĩa phương thức: định nghĩa phương thức của lớp trong biểu đồ lớp thiết kế theo ký hiệu của ngụn ngữ lập trỡnh.
Xuất phỏt từ biểu đồ tương tỏc để thực hiện cỏc bước này