Bài giảng Phân tích thiết kế hệ thống - Chương 3: Tiếp cận hướng đối tượng - Nguyễn Anh Hào

Tiếp cận hướng Process (diễn tả vấn đề thành các chức năng), hay Entity Relationship (diễn tả vấn đề bằng thực thể và các quan hệ) có 2 đặc điểm chung:

Các thực thể được mô hình hóa từ một khía cạnh (chức năng hoặc dữ liệu), không thể diễn tả trọn vẹn một thực thể trong thế giới thực.

Các thực thể được mô tả tách biệt với môi trường mà chúng hoạt động (môi trường vận hành của hệ thống).

 Trong cách tiếp cập hướng đối tượng, mỗi thực thể được xem là nó đang “sống”; nó có thể phát triển tương đối độc lập trong hệ thống mà không làm phá vỡ hệ thống.

 Quan điểm này là nền tảng để phát triển hệ thống một cách mềm dẻo.

 

ppt42 trang | Chia sẻ: hienduc166 | Lượt xem: 684 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Phân tích thiết kế hệ thống - Chương 3: Tiếp cận hướng đối tượng - Nguyễn Anh Hào, để xem tài liệu hoàn chỉnh bạn click vào nút TẢI VỀ ở trên
g hợp mở rộng xử lý của A (A có thể cần C, có thể không)Open accountA>Request CatalogSupply Account typeSupply Customer dataSupplyInitial balance>>>BC18Use caseTổng quát hóa/chuyên biệt hóa cho actor: Nếu Actor A là một sự tổng quát hóa của actor B và C thì những gì actor A thực hiện được trên hệ thống, các actor B và C cũng làm được.Bank EmployeeBank TellerBank ManagerMonitor AccountsABC19Thiết lập use casesActors và vai trò trên hệ thống (use cases), có thể làUsers của hệ thốngỨng dụng bên ngoài hệ thốngThiết bị bên ngoài có tương tác với hệ thốngSự kiện kích hoạt hệ thống theo thời gianQuan hệ giữa các use cases (include/extend/gen./spec.)Điều kiện để use case được kích hoạtKết quả mong đợi từ use caseCác ngoại lệ (vd: từ chối thực hiện do lổi)Các ràng buộc (vd: miền giá trị hợp lệ, timeout,..)Sự tùy biến trên các use cases20Lược đồ use caseBank EmployeeBank TellerBank ManagerManage AccountOpen AccountClose AccountAdjust ErrorMonitor AccountLược đồ use case cho hệ thống quản lý tài khoản ngân hàng21Liên kết use case với lược đồ tuần tựBank ManagersystemOpen accountRequest customer dataProvide customer dataReqquest account typeProvide account typeRequest intial balanceProvide initial balanceConfirmationLược đồ tuần tự cho “open account” use caseMessagesTrình tự tương tác22Liên kết use case với lược đồ cộng tácLược đồ cộng tác cho “open account use case”:Bank Manager:CustManager1: OpenAccount()2: ReqCustInfo()3: CustomerInfo(data)5: ReqAccountType()6: AccountType(Acctype)7: ReqIntialBalance()8: InitialBalance(InitBalance)10: Confirmation():AccManager4: Activate():AccDatabase9: CreateAcc()23Phương pháp tìm các đối tượngSử dụng vật thể (các khái niệm vật chất quen thuộc)Xác định các vật thể, như con người, vật dụng, tổ chức (truờng học, bệnh viện, công ty,), vị trí địa lý, bản báo cáo, trong phạm vi của vấn đề đang khảo sátXác định các đối tượng và lớp đối tượng tương ứng với vật thểSử dụng cách phân rã đối tượngTìm kết tập hoặc lớp đối tượngPhân rã (chuyên biệt hóa) thành các đối tượng thành phầnSử dụng cách tổng quát hóa đối tượngXác định các đối tượng hoặc lớp đối tượng trong vấn đềTìm các đối tượng có những thuộc tính và dịch vụ tương tự nhau để tổng quát hóa thành lớp đối tượng trừu tượng mà các đối tượng đã biết có thể kế thừa được24Xác định thuộc tính của đối tượngThuộc tính: Dữ liệu gì làm đối tượng có thể nhận biết được trong môi trường hoặc sở hữu như tài sản riêng.Đối tượng được mô tả tổng quát như thế nào ?Phần nào trong mô tả là hữu ích cho bài toán ?Vậy đặc tả tối thiểu cho đối tượng trong phạm vi bài toán đang giải quyết là gì ?	Các loại thuộc tính:Thuộc tính mô tả: là các facts của đối tượng được nhìn từ bên ngoài (môi trường). Vd: Jan nặng thêm 1 kg.Thuộc tính định danh: là các thuộc tính để phân biệt đối tượng; một đối tượng có nhiều tên gọi và khi tên gọi thay đổi, đối tượng vẫn tồn tại như trước25Xác định thuộc tính của đối tượngThuộc tính của đối tượng phải phù hợp với ý nghĩa của đối tượng trong ngữ cảnh mà đối tượng đang tồn tại. Vd: năm kinh nghiệm và tuổi của một lập trình viên.Có giá trị ở mọi thời điểm.Không chứa cấu trúc bên trong.Là đặc tính của cả thực thể chứ không chỉ của thành phần trong thực thể. VD: Computer gồm CPU, bàn phím, màn hình, con chuột. Kích thước màn hình là thuộc tính của màn hình, không phải của computer.Nếu 1 đối tượng trừu tượng có tương tác với đối tượng khác, thuộc tính của nó phải thể hiện ý nghĩa của chính nó. Vd: mô hình hóa đối tượng bơm xăng: số lít được bơm ≠ lượng xăng trong bình chứa, hoặc dung tích của máy bơm.26Xác định dịch vụ của đối tượngDịch vụ: là công việc cần thực hiện cho đối tượng khác, được kích hoạt qua cơ chế truyền thông điệp và được định nghĩa qua giao tiếp, gồm:Tên gọi của dịch vụThông số: là những gì đối tượng cần (nhưng chưa có sẵn) để thực hiện dịch vụGiá trị trả về là giá trị cung cấp cho đối tượng khácNgoại lệ :những trường hợp bị từ chối thực hiện	Trong quá trình phân tích và thiết kế, chỉ có tên gọi của dịch vụ là cần phải cân nhắc kỹ về ý nghĩa của nó trong phạm vi của bài toán; còn các thông số, giá trị trả về và các ngoại lệ sẽ dần dần được tinh chỉnh tùy theo mức độ cài đặt về phương diện kỹ thuật.27Xác định hành vi của đối tượngHành vi: là một tập các hành động mà đối tượng cần thực hiện để cung cấp dịch vụ, được định nghĩa trên 3 yếu tố:Đầu vào (thông số của dịch vụ)Đầu ra (kết quả trả về)Làm thế nào đối tượng thực hiện được dịch vụHành vi tĩnh (static behavior)	Các hành vi của đối tượng không bị ảnh hưởng (không thay đổi tính chất xử lý) đối với các sự kiện kích hoạt. Vd: lấy căn bậc 2.	Hành vi tĩnh của đối tượng có thể được diễn tả bằng lược đồ hoạt động (activity diagram).Hành vi động (dynamic behavior)	Các hành vi của đối tượng bị thay đổi tùy theo trạng thái của đối tượng tại thời điểm phát sinh sự kiện kích hoạt.Vd: trạng thái hoạt động của lò vi ba.	Hành vi động của đối tượng được diễn tả bằng lược đồ trạng thái (state diagram).28Lược đồ hoạt động (activity diagram)Get infoNew memberWait in queueExisting memberIdentify needWait in queuePrepare for nextElicit problemIdentify solutionPrepare for nextHandle purchaseCustomer supportTechnical supportMemberSwimlane29Mô hình trạng tháiMột mô hình trạng thái diễn tả mối quan hệ giữa các trạng thái, các sự kiện kích hoạt đối tượng chuyển trạng thái, và chuyển trạng thái của đối tượng.Trạng thái: là giá trị của các thuộc tính mô tả đối tượng trong từng khoảng thời gian xác định (trước hoặc sau khi phản ứng với sự kiện).Sự kiện: là điều kiện kích hoạt hành vi của đối tượng.Chuyển trạng thái: là sự thay đổi trạng thái của đối tượng do phản ứng với sự kiện kích hoạt.Hành động: là hoạt động bên trong của đối tượng gây ra sự thay đổi trạng thái.30Ví dụ chuyển trạng thái của lò viba:user: Oven: Light: Tube: TimerDoor openedTurn onDoor closedTurn offPut in foodButton pushedSet timer for 1 minuteTurn onButton pushedAdd 1 minuteTime outTurn offTurn offTurn on31Lược đồ trạng thái (state diagram) của lò vibaEntry: turn off tubeEntry: turn off lightCooking completeEntry: turn off tubeEntry: clear timerCooking interruptedEntry: turn on lightIdle with door openEntry: turn off lightIdle with door closedEntry: set timer 1’Entry: turn on lightEntry: turn on tubeInnitial cooking stateV1:door openV2:door closedV1:door openV2:door closedV1:door openV3:button pushedV3:button pushedV1:door openEntry: add 1 minuteExtend cookingV3:button pushedV4:timer timoutV4:timer timout32Xác định quan hệ của đối tượngĐối tượng có 3 loại quan hệ cơ bản sauTổng quát hóa (generalization), ví dụ: cha con.Kết tập (aggregation, composition), ví dụ: xe hơi.Kết hợp (association), ví dụ: hôn nhân.	Xác định các quan hệ giữa các đối tượng là để tìm ra sự hợp tác giữa các đối tượng dựa trên vai trò của chúng trong phạm vi của bài toán đang giải quyết.33Quan hệ tổng quát hóa (generalization)Quan hệ “is_a”: nếu đối tượng A có một quan hệ is_a với đối tượng B thì tất cả các thuộc tính và dịch vụ của B đều có ở A. Ví dụ: Employee “is_a” Person.Quan hệ tổng quát hóa là một quan hệ is_a: đối tượng B là một sự tổng quát hóa (cha) của đối tượng A (con), theo một quan điểm nào đó. Như vậy, một đối tượng có thể có nhiều cách tổng quát hóa (nhiều cha): trường hợp này là một sự đa thừa kế (multiple inheritance). Ví dụ: lập trình viên có 2 tổng quát hóa: con người, và lập trình.Quan hệ tổng quát hóa có thể không tồn tại vĩnh cữu. Nếu 1 nhân viên không còn làm việc nữa thì anh ta không còn thừa kế các thuộc tính của đối tượng “làm công” (lĩnh lương, thăng tiến, nghỉ phép)34Quan hệ tổng quát hóa (generalization)	Các đặc tính của quan hệ tổng quát hóaĐối tượng con thừa hưởng được toàn bộ thuộc tính, quan hệ và dịch vụ của đối tượng cha.Đối tượng con có thể thừa hưởng trọn vẹn hành vi của đối tượng cha, và cũng có thể thay đổi các hành vi này (polymophism).Nếu B là tổng quát hóa của A, thì A không là tổng quát hóa của B (bất đối xứng)Nếu A “is_a” B và B “is_a” C thì A “is_a” C (bắc cầu) 	35UML cho quan hệ tổng quát hóaGen.Spec.Các đặc tính của lược đồ UML cho qh.tổng quát hóaDisjoint: không có đối tượng nào thuộc nhiều lớp, ngược lại là Overlaping.Complete: Subclasses được vẽ đầy đủ trên lược đồ, ngược lại là Incomplete (vẫn còn một số subclass chưa xác định).“Disjoint, Complete”PatientPatientIDAdmitDateOutPatientCheckbackDateResidentPatientDateDischarged36UML cho quan hệ tổng quát hóaHourly-EmpHourlyRateComputeWage()Salary-EmpAnnualSalaryStockOptionComputePensionConsultantContractNumberBilingRateComputeFee()EmployeeEmpNameEmpNumberAddressDateHiredPrintIDCard()“Disjoint, Incomplete”37UML cho quan hệ tổng quát hóaResearchAssistantResearchHrsAssignProject( )TeachingAssistantTeachingHrsAssignCourse()GraduateStudentUndergradMajorDesiredMajor“Overlaping, Complete”Research & teachingAssistant“Multiple Inheritance”38Quan hệ kết tập (aggregation)Là quan hệ diễn tả sự liên kết nhiều đối tuợng có chung một mục đích (chức năng) để “tạo thành” một đối tượng duy nhất, dựa trên một số tính chất:Tích hợp các thành phần (component-integral).Vd: bánh xe, máy, khung  tạo thành xe.Vật liệu làm ra vật thể. Vd: sắt, gỗ, nhựa, làm ra ghế.Nội dung chứa bên trong (container content).Vd: các mục hàng, ngày mua, nơi, trong yêu cầu đặt hàng.	Giống như quan hệ tổng quát hóa, kết tập có tính bất đối xứng, bắc cầu và các đối tượng đều có một vài chức năng chung; nhưng trong kết tập không có tính kế thừa.UML định nghĩa 2 loại kết tập: aggregation và composition.39UML cho quan hệ kết tậpAggregationCompositionSliderHeaderPanelWindowscrollbartitlebody20..111PartWholeContentContainerAdm UnitSchoolUniversity1..*1..*1Faculty1*40UML cho quan hệ kết hợp (association)Class AClass B+Role A+Role BPersonCompanyEmployeeEmployerWork for1..**AccountPersonAccountPersonalOwnerCorporateOwnerCorporationAccount{Xor}Ví dụ:41UML cho quan hệ kết hợpCustomer Order của nhà hàng Hoosie BurgerCustomerPlacesIncludesRequests**OrderProductProduct Line11..*11..*CourseTeachesRegister for0..10*StudentCourseOfferFaculty0..1*1,2*Scheduled for*1AdvisorAdviseeTổ chức dạy học ở trường đại học42

File đính kèm:

  • pptPTTKHT Phan Tich Thiet Ke Huong Doi Tuong.ppt