CHƯƠNG 1: TONG QUAN VE PHAN TICH THIET KEHUGNG DOI TƯỢNG 1. Cơ bản về phân tích, thiết kế hướng đối tượng. Khái niệm về Phân tích và thiết kế hướng đối tượng (Object Oriented Analysis and Design: OOAD) Trong kỹ nghệ phần mềm để sản xuất được một sản phẩm phần mềm người ta chia quá trình phát triển sản phẩm ra nhiều giai đoạn như: thu thập và phân tích yêu cầu, phân tích và thiết kế hệ thống, phát triển, kiểm thử, triển khai và bảo trì. Trong đó, giai đoạn phân tích, thiết kế bao giờ cũng là giai đoạn khó khăn và phức tạp nhất.
Giai đoạn này giúp chúng ta hiểu rõ yêu cầu đặt ra, xác định giải pháp, mô tả chỉ tiết giải pháp. Nó trả lời 2 câu hỏi What (phần mềm này làm cái gì3) và How (làm nó như thế nào?). Đề phân tích và thiết kế một phần mềm thì có nhiều cách làm, một trong những cách làm đó là xem hệ thống gồm những đối trợng sống trong đó và tương tác với nhau. Việc mô tả được tất cả các đối tượng và sự tương tác của chúng sẽ giúp chúng ta hiểu rõ hệ thống và cài đặt được nó.
Phương thức này gọi là Phân tích thiết kế hướng đối tượng (OOAD) 1. Giới thiệuvề UML (Unified Modeling Language) UML là ngôn ngữ mô hình hóa hợp nhất dùng đề biểu diễn hệ thống. Nói một cách đơn giản là nó dùng để tạo ra các bản vẽ nhằm mô tả thiết kế hệ thống. Các bản vẽ này được sử dụng để các nhóm thiết kế trao đổi với nhau cũng như dùng đề thi công hệ thống (phát triển), thuyết phục khách hàng, các nhà đầu tư v.
(Giống như trong xây dựng người ta đùng các bản vẽ thiết kế để hướng dẫn và kiểm soát thi công, bán hàng căn hộ vv. Tại sao phải sử dụng OOAD và UML? OOAD cần các bản vẽ để mô tả hệ thống được thiết kế, còn UML là ngôn ngữ mô tả các bản vẽ nên cần nội dung thể hiện. Do vậy, chúng ta phân tích,thiết kế theo hướng đối tượng và sử dụng UML để biêu diễn các thiết kế đó nên chúng thường đi đôi với nhau. OOAD sử dụng ƯML Trang 3 UML sử dụng đề vẽ cho nhiều lĩnh vực khác nhau như phần mềm, cơ khí, xây dựng V.
Phân tích thiết kế hướng đối tượng sử dụng UML bao gồm các thành phần sau: — View (góc nhìn) — Diagram (ban vé) — Notations (ky hiéu) — Mechanisms (qui tac, co ché) 1. Mục đích của mô hình hướng đối tượng s* Mô hình được các hệ thống (không chỉ hệ thống phần mềm) và sử dụng được tất cả các khái niệm hướng đối tượng một cách thống nhất. s* Cho phép đặc ta, hé trợ để đặc tả tường minh (trực quan) mối quan hệ giữa các khái niệm cơ bản trong hệ thống, đồng thời mô tả được mọi trạng thái hoạt động của hệ thống đối tượng. Nghĩa là cho phép mô tả được cả mô hình tĩnh lẫn mô hình động một cách đầy đủ và trực quan.
s* Tận dụng được những khả năng sử dụng lại và kế thừa ở phạm vi diện rộng để xây dựng được những hệ thống phức tạp và nhạy cảm như: các hệ thống động, hệ thống thời gian thực, hệ thống nhúng thời gian thực, v. s* Tóm lạiUMLsử dụng vẽ các biểu đề trên là ngôn ngữ mô hình hoá, ngôn ngữ đặc tả và ngôn ngữ xây dựng mô hình trong quá trình phát triển phần mềm, đặc biệt là trong phân tích và thiết kế hệ thống hướng đối tượng. UML là ngôn ngữ hình thức, thống nhất và chuẩn hoá mô hìnhhệ thống một cách trực quan. Nghĩa là các thành phần trong mô hình được thê hiện bởicác ký hiệu đề hoạ, biểu đề và thể hiện đầy đủ mối quan hệ giữa chúng một cách thống nhất và có logic chặt chẽ.
Sử dụng UML để phát triển phần mềm thống nhất UML được phát triển dé đặc tả quá trình phát triển phần mềm, nhằm mô hình hoá hệ thống. Quá trình phát triển phần mềm này gọi là quá trình phát triển phần mềm hợp nhất (USPD) hay quá trình hợp nhất Rational, gọi tắt là quá trình hợp nhất (UP). RUP là tập các qui tắc hướng dẫn về phương diện kỹ thuật và tổ chức để phát triển phần mềm, nhắn mạnh chủ yếu vào các bước phân tích và thiết kế. RUP được cấu trúc theo hai chiều: Trang 4 1.
Chiều thời gian: chia quá trình thành các pha thực hiện và các bước lặp. Chiều thành phần: các sản phầm cùng với các hoạt động được xác định đầy đủ. Cầu trúc dự én theo chiéu thời gianbao gồm các pha thực hiện: (Khởi động (Inception): xác định dự án tổng thể (1) Soạn thảo dự án tỉ mỉ (Elaboration): + Lập kế hoặch cho những hoạt động cần thiết + Xác định những tài nguyên cần đề thực hiện dự án + Xác định các tính chất, đặc trưng của dự án + Xây dựng kiến trúc cho hệ thống. (i0) Xác định những sản phẩm ở mỗi pha thực hiện.
(v) Chuyển giao: cung cấp sản phẩm cho cộng đồng người sử dụng. Câu trúc dự án theo chiều thành phẩm bao gồm các hoạt động: Mô hình hoá nghiệp vụ: thiết lập các khả năng của hệ thống cần xây dựng và nhu cầu của người sử dụng. Phân tích các yêu cầu: chỉ tiết các yêu cầu chức năng và phi chức năng của hệ thống. Phân tích thiết kế hệ thống: mô tả hệ thống thực hiện các yêu cầu và hế trợ cài đặt.
Cài đặt chương trình: lập trình những kết quả thiết kế nêu trên dé hệ thống hoạt động đúng theo yêu cầu. Kiểm thử, kiểm chứng các thành phân và toàn bộ hệ thống. Triển khai hệ thống: khai thác hệ thống và huấn luyện người sử dụng. UP bao gồm con người, dự án, sản phẩm, qui trình và công cụ.
Con người là những người tham gia dự án để tạo ra sản phẩm phần mềm theo một quá trình với sự hỗ trợ của công cụ được cung cấp. UP là quá trình phát triển phần mềm được hướng dân bởi các ca sử dụng. Nghĩa là các yêu cầu của người sử đụng được mô tả trong các ca sử dụng, là chuối các hành động được thực hiện bởi hệ thống nhằm cung cấp các dịch vụ, các thông tin cho khách hàng. Các ca sử dụng bao gồm chuối các công việc được xem là nền tảng để tạo ra mô hình thiết kế và cài đặt hệ thống.
UP cũng là qui trình tập trung vào kiến trúc, được lặp và phát triển tăng trưởng liên tục. Kiến trúc của hệ thống phải được thiết kế nhằm đáp ứng các yêu cầu của cácca sử Trang 5 dụng chính, trong giới hạn của chuẩn phần cứng mà hệ thống sẽ chạy và của cấu trúc cả hệ thống lẫn các hệ thống con. Tính lặp của quá trình phát triển phần mềm được thể hiện ở chỗ là một dự án được chia thành các dự án nhỏ và được thực hiện lặplại trong tùng bước thực hiện. Mỗi dự án nhỏ đều thực hiện phân tích, thiết kế, cài đặtvà kiểm thử, v.
Mỗi phần việc đó được phát triển tăng trưởng và cả dự án cũng được thực hiện theo sự tăng trưởng này. UP không chỉ tạo ra một hệ thống phần mềm hoàn chỉnh mà còn tạo ra một số sản phẩm trung gian như các mô hình. Các mô hình chính trong UP là mê hình nghiệp vụ (ca sử dụng), mô hình khái niệm, mô hình thiết kế, mô hình triển khai và mô hình trắc nghiệm. Các mô hình này có sự phụ thuộc theo vết phát triển, nghĩa là có thể lần theo từng mô hình để đến được mô hình trước.
Cac biéu d6 (Diagram): Diagram các bạn có thể dịch là sơ đồ. Tuy nhiên ở đây chúng ta sử dụng từ bản vẽ cho dễ hình dung. Các bản vẽ được dùng đề thể hiện các góc nhìn của hệ thống. Logical View Implementation View Class Diagram Object Diagam Component Diaram, Use Case View Use Case Diagram Sequence Diagram Collaboration Diagram Deployment View State Diagram = Actavity Diagram Process View Deployment Diagram Hình 1.1: Cac ban vé trong OOAD str dung UML Trong dé, —Biéu dé ca str dung ( Use Case Diagram): bản vẽ mô tả về ca sử dụng của hệ thống.
Bản vẽ này sẽ giúp chúng ta biết được ai sử dụng hệ thống, hệ thống có những chức năng gì. Lập được bản vẽ này bạn sẽ hiểu được yêu cầu của hệ thống cần xây dựng. Trang 6 — Biểu để lớp (Class Diagram): bản vẽ này mô tả cấu trúc của hệ thống, tức hệ thống được cấu tạo từ những thành phần nào. Nó mô tả khía cạnh tĩnh của hệ thống.
— Biểu đề đối tượng(Object Diagram): Tương tự như Class Diaeram nhưng nó mô tả đến đối tượng thay vì lớp (Class). —Biểu đề trình tự (Sequence Diagam): là bản vẽ mô tả sự trong tác của các đối tượng trong hệ thống với nhau được mô tả tuần tự các bước tương tác theo thời gian. - Biểu đồ cộng tác (Collaboration Diagram): tương tự như sequence Diagram nhưng nhắn mạnh về sự tương tác thay vì tần tự theo thời gian. — Biểu đề trạng thái (State Diagram): bản vẽ mô tả sự thay đổi trạng thái của một đối tượng.
Nó được dùng để theo dõi các đối trợng có trạng thái thay đổi nhiều trong hệ thống. — Biểu đề hoạt động (Activity Diagram): bản vẽ mô tả các hoạt động của đối tượng, thường được sử dụng đề hiểu về nghiệp vụ của hệ thống. —Biểu để thành phần (Component Diagram): bản vẽ mô tả về việc bố trí các thành phân của hệ thống cũng như việc sử dụng các thành phần đó. —Biểu đề triển khai (Deployment Diagram): bản vẽ mô tả việc triển khai của hệ thống như việc kết nối, cài đặt, hiệu năng của hệ thống v.
s* Các quan sát ( Các kiểu xem) Khi xem xét một hệ thống, chúng ta cần xây dựng mô hình từ những hướng nhìn (View- khía cạnh) khác nhau, xuất phát từ thực tế là những người làm việc với hệ thống, với các vai trò khác nhau sẽ nhìn hệ thống từ những khía cạnh khác nhau. UML xét hệ thống trên 5 khía cạnh: Trang 7 Logical View Component View Software Management, ~Reuse_ Portability ; Functionality | Use Case View | Understandability, ị Usability Process View Deployment View Preformance, Availability, Fault Tolerance |Preformance, Availability; | Delivery and Intallation ¡ Hình 1.2: Cac View trong OOAD str dung UML Trong dé, — Use Case View: cung cấp góc nhìn về các ca sử dụng giúp chúng ta hiểu hệ thống có gì? ai dùng và dùng nó như thế nào. — 1ogical View: cung cấp góc nhìn về cấu trúc hệ thống, xem nó được tổ chức như thế nào. —_Process View: cung cấp góc nhìn động về hệ thống, xem các thành phần trong hệ thống tương tác với nhau như thế nào.