PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG OBJECT ORIENTED ANALYSIS AND DESIGN DR. DAO NAM ANH Bài giảng 4: PHÂN TÍCH HỆ THỐNG – MÔ HÌNH KHÁI NIỆM VÀ BIỂU ĐỒ LỚP 1 RESOURCE - REFERENCE 1. Ian Sommerville, Software Engineering, Ninth Edition, 2011 2. Bernd Bruegge & Allen H. Dutoit. Object-Oriented Software Engineering: Using UML, Patterns, and Java, Third Edition, Prentice Hall, 2010 3. Russell C. Bjork, ATM Simulation Links, Gordon College 4. Hans-Erik Eriksson, Magnus Penker, Brian Lyons, David Fado, UML 2 Toolkit, John Wiley & Sons Inc, 2003 5. Dương Kiều Hoa – Tôn Thất Hoà An, Phân tích và thiết kế Hệ thống thông tin với UML, 2006 6. Đào NamAnh, Giáo Trình Phân Tích Và Thiết Kế Hướng Đối Tượng, Đại học Điện lực, 2013 2 CONTENT – NỘI DUNG Phân tích hệ thống – Mô hình khái niệm và biểu đồ lớp 4.1 Mô hình khái niệm – mô hình đối tượng 4.2 Xác định các lớp, đối tượng 4.3 Mối quan hệ giữa các lớp đối tượng 4.4 Nâng cấp mô hình 3 1. Mô hình khái niệm – mô hình đối tượng 1.1 Đối tượng và lớp  Trong mô hình hóa hướng đối tượng, những phần tử cấu thành căn bản nhất của mô hình là lớp, đối tượng và mối quan hệ giữa chúng với nhau.  Lớp và đối tượng sẽ mô hình hóa những gì có trong hệ thống mà chúng ta muốn miêu tả, các mối quan hệ sẽ biểu thị cấu trúc.  Khi sử dụng lập trình hướng đối tượng để xây dựng các hệ thống phần mềm thì lớp và các mối quan hệ của chúng là các thông tin cơ bản để xây dựng sản phẩm phần mềm. 4 1. Mô hình khái niệm – mô hình đối tượng 1.2 Trạng thái, ứng xử và nhận diện của đối tượng  Cho đến nay, lớp là không có gì mới. Darwin là người đã sử dụng các lớp để mô tả các nhóm sinh vật. Ông nhóm các loài vào các lớp để mô tả lý thuyết tiến hóa.  Thiết kế hướng đối tượng phân loại thông tin một cách tương tự. Song UML cung cấp một điều mới: một sự phân biệt rõ ràng giữa lớp và đối tượng. 5 1. Mô hình khái niệm – mô hình đối tượng 1.2 Trạng thái, ứng xử và nhận diện của đối tượng  Đối tượng (object) tồn tại trong thế giới thực. Nó có thể là một phần của bất kỳ loại hệ thống, ví dụ, một máy tính, một tổ chức, hoặc một nghiệp vụ.  Một số đối tượng có xu hướng lý thuyết (chẳng hạn như các đối tượng thực hiện trong một hệ thống phần mềm):  Ta có thể lấy chúng bằng cách phân tích cấu trúc và hành vi của các đối tượng trong thế giới thực. Các đối tượng, trong cách này hay cách khác, đại diện cho sự hiểu biết của bạn về thế giới thực. 6 1. Mô hình khái niệm – mô hình đối tượng 1.2 Trạng thái, ứng xử và nhận diện của đối tượng 7 1. Mô hình khái niệm – mô hình đối tượng 1.2 Trạng thái, ứng xử và nhận diện của đối tượng  Trạng thái (state) của một đối tượng thường sẽ thay đổi theo thời gian, và được định nghĩa qua một tổ hợp các thuộc tính.  Ví dụ một danh sách ghi danh cho một lớp trong hệ thống trường học có thể có hai trạng thái: trạng thái đóng và trạng thái mở.  Nếu danh sách sinh viên ghi danh cho lớp này còn nhỏ hơn số tối đa cho phép (ví dụ là 10), thì trạng thái của bảng ghi danh này là mở.  Một khi đã đủ 10 sinh viên ghi danh cho lớp, danh sách sẽ chuyển sang trạng thái đóng 8 1. Mô hình khái niệm – mô hình đối tượng 1.2 Trạng thái, ứng xử và nhận diện của đối tượng  Ứng xử (Behaviour) xác định một đối tượng sẽ phản ứng như thế nào trước những yêu cầu từ các đối tượng khác, nó tiêu biểu cho những gì mà đối tượng này có thể làm.  Ứng xử được thực thi qua loạt các Phương thức (operation) của đối tượng.  Trong ví dụ trường đại học, một đối tượng bảng ghi danh lớp có thể có ứng xử là bổ sung thêm một sinh viên hay xóa đi tên của một sinh viên khi sinh viên đăng ký học hay bãi bỏ đăng ký. 9 1. Mô hình khái niệm – mô hình đối tượng 1.2 Trạng thái, ứng xử và nhận diện của đối tượng  Sự nhận diện (Identity) đảm bảo rằng mỗi đối tượng là duy nhất – dù trạng thái của nó có thể giống với trạng thái của các đối tượng khác.  Ví dụ, khóa học đại số 101 chương 1 và khóa học đại số 101 chương 2 là hai đối tượng trong hệ thống ghi danh trường học.  Mặc dù cả hai đều thuộc loại bảng ghi danh, mỗi khóa học vẫn có sự nhận dạng duy nhất của mình. 10 1. Mô hình khái niệm – mô hình đối tượng 1.3 Biểu đồ lớp  Một biểu đồ lớp (class diagram) là một dạng mô hình tĩnh.  Một biểu đồ lớp miêu tả hướng nhìn tĩnh của một hệ thống bằng các khái niệm lớp và mối quan hệ giữa chúng với nhau.  Mặc dù có những nét tương tự với một mô hình dữ liệu, nhưng các lớp không chỉ thể hiện cấu trúc thông tin mà còn miêu tả cả hành vi.  Một trong các mục đích của biểu đồ lớp là tạo nền tảng cho các biểu đồ khác, thể hiện các khía cạnh khác của hệ thống. 11 1. Mô hình khái niệm – mô hình đối tượng 1.3 Biểu đồ lớp  Một lớp trong một biểu đồ lớp có thể được thực thi trực tiếp trong một ngôn ngữ hướng đối tượng có hỗ trợ trực tiếp khái niệm lớp.  Một biểu đồ lớp chỉ chỉ ra các lớp, nhưng bên cạnh đó còn có một biến tấu hơi khác đi một chút chỉ ra các đối tượng thật sự là các thực thể của các lớp này (biểu đồ đối tượng). 12 1. Mô hình khái niệm – mô hình đối tượng 1.3 Biểu đồ lớp Để tạo một biểu đồ lớp, đầu tiên ta phải nhận diện và miêu tả các lớp. Một lớp được biểu diễn bằng hình chữ nhật. Ô trên cùng là tên lớp. Ô tiếp theo là các thuộc tính, ô cuối cùng chỉ các hành vi. Một khi đã có một số lượng các lớp, ta sẽ xét đến quan hệ giữa các lớp đó với nhau. 13 2. Xác định các lớp, đối tượng  Cần phải sử dụng kiến thức của các chuyên gia trong lĩnh vực chuyên môn, với sự hiểu biết của người sử dụng và hệ thống để nắm bắt được hệ thống.  Các lớp phản ánh được vấn đề và có tên gọi, không gây nhầm lẫn.  Mô hình Use Case tốt sẽ giúp rất nhiều trong tìm kiếm lớp.  Dựa trên mô hình Use Case và đặc tả yêu cầu trong việc tìm kiếm cho các lớp. 14 2. Xác định các lớp, đối tượng Thông tin nào cần được lưu trữ hoặc phân tích? Nếu có bất kỳ thông tin cần được lưu trữ, chuyển đổi, phân tích, hoặc xử lý, thì nó là một ứng viên có thể cho một lớp. Các thông tin có thể bao gồm những khái niệm cần phải được đăng ký trong hệ thống, các sự kiện hoặc giao dịch xảy ra tại một thời điểm cụ thể. Có tồn tại hệ thống bên ngoài? Hệ thống bên ngoài có thể được xem như lớp mà hệ thống của bạn có tương tác. Có mô hình tái sử dụng, các thư viện lớp, hoặc các thành phần nào không? Nếu có các mô hình, thư viện lớp, hoặc các thành phần từ các dự án trước đó, từ đồng nghiệp hoặc nhà sản xuất, thì có các ứng viên lớp. 15 2. Xác định các lớp, đối tượng Hệ thống phải xử lý các thiết bị nào mà? Bất kỳ thiết bị kỹ thuật kết nối với hệ thống có thể là ứng viên lớp. Có các bộ phận tổ chức nào? Đại diện cho một tổ chức có thể được thực hiện với các lớp, đặc biệt là trong các mô hình nghiệp vụ. Những vai trò của tác nhân trong nghiệp vụ? Những vai trò này có thể được xem như các lớp, chẳng hạn như người sử dụng, hệ thống điều hành, khách hàng. Tìm các lớp cũng có dẫn đến việc sửa đổi, cải thiện các mô hình Use Case hoặc đặc tả yêu cầu. 16 2. Xác định các lớp, đối tượng 2.1 Tên lớp  Ngăn trên cùng của hình chữ nhật lớp chứa tên của lớp.  Tên gọi nên càng rõ ràng càng tốt, phải là một danh từ ví dụ “hóa đơn”. Tên lớp không nên có một tiền tố hoặc hậu tố. 17 2. Xác định các lớp, đối tượng 2.2 Thuộc tính của lớp  Lớp có các thuộc tính mô tả các đặc tính của các đối tượng.