Phân tích và thiết kế hướng đối tượng Tiến trình phát triển hệ thống Các phương pháp phát triển hệ thống Hướng đối tượng – ObjectOriented Trừu tượng hoá – Abstraction Tính đóng gói – Encapsulation Tính đơn thể Modularity Tính phân cấp – Hierarch Phân chia nhỏ 1 vấn đề phức tạp thành nhiều phần nhỏ, đơn giản hơn để có thể quản lý được độ phức tạp 12 Hệ thống xử lý mua bán hàng hoá Nhận đơn đặt hàng Thực hiện đơn đặt hàng Thanh toán đơn đặt hàng Lập hoá đơn bán hàng Thanh toán hoá đơn Xuất hoá đơn …Các đơn thể quản lý tồn kho 2 – Phân tích thiết kế hướng đối tượng Tính phân cấp – Hierarchy 13 Bất động sản Chứng khoán Tài khoản ngân hàng Tài sản Cổ phiếu Trái phiếu Tài khoản Tiết kiệm Tài khoản Thanh toán Tăng mức độ trừu tượng Giảm mức độ trừu tượng Các phần tử trên cùng một mức phải có cùng mức độ trừu tượng 2 – Phân tích thiết kế hướng đối tượng Các khái niệm cơ bản của HĐT Objects Class Attributes (Properties) Operation (Behavior) Method Message Interface (Polymorphism) Component Package Subsystem Relationship 14 2 – Phân tích thiết kế hướng đối tượng Object Một cách không hình thức, một đối tượng biểu diễn một thực thể, dạng vật lý, khái niệm hoặc phần mềm 15 Thực thể vật lý Thực thể Khái niệm Thực thể Phần mềm Chemical Process Truck Linkedlist 2 – Phân tích thiết kế hướng đối tượng Objects Class Một đối tượng là một đối tượng trừu tượng, hoặc một vật với giới hạn rõ ràng và có ý nghĩa với một ứng dụng cụ thể Lớp (Class) – khuôn mẫu cho các thể hiện của object Đối tượng (Object) – Thể hiện của một class Thuộc tính (Attributes) Hành vi (Behaviors) – chi tiết đối tượng có thể làm gì 16 2 – Phân tích thiết kế hướng đối tượng Biểu diễn đối tượng Một đối tượng được biểu diễn bởi một hình chữ nhật với tên được gạch dưới 17 : Profressor ProfressorJohn ProfressorJohn: Professor A x B = 10 Profressor John Chỉ có tên Object Tên Class và tên Object Chỉ có tên Class 2 – Phân tích thiết kế hướng đối tượng Class Example Class Course 18 A x B = 10 Profressor John Properties Tên Địa điểm Thời gian Số tín chỉ Giờ bắt đầu Giờ kết thúc Behavior Thêm một sinh viên Huỷ một sinh viên Lấy danh sách giáo sư … 2 – Phân tích thiết kế hướng đối tượng Class Object 19 2 – Phân tích thiết kế hướng đối tượng Method Message Phương thức (Methods) implement an object’s behavior Messages are sent to trigger methods Procedure call from one object to the next 20 2 – Phân tích thiết kế hướng đối tượng Phương thức và message 21 2 – Phân tích thiết kế hướng đối tượng Polymorphism Khả năng che dấu nhiều cài đặt khác nhau bên dưới một giao diện (interface) duy nhất Nguyên tắc OO đóng gói 22 Nhà sản xuất A Nhà sản xuất B Nhà sản xuất C 2 – Phân tích thiết kế hướng đối tượng Polymorphism – Interface 23 Interface là hình thức hoá polymorphism Interface hỗ trợ kiến trúc “plug play” Shape Draw Move Scale Rotate Tube Pyramid Cube Quan hệ Realizzation 2 – Phân tích thiết kế hướng đối tượng Component Một phần không tầm thường của hệ thống, gần như độc lập và có thể thay thế được, giữ một chức năng rõ ràng trong hệ thống Một component có thể là Một source code component Một run time components hoặc Một executable component 24 Source File Name Executable name Component name 2 – Phân tích thiết kế hướng đối tượng Package Một package là một cơ chế để tổ chức các phần tử vào thành các nhóm Một phần tử trong mô hình có thể chứa các phần tử khác Dùng để Tổ chức mô hình đang phát triển Một đơn vị trong quản trị cấu hình 25 Package Name Nguyên tắc OO Tính đơn thể 2 – Phân tích thiết kế hướng đối tượng Subsystem Tổ hợp của một package (có thể chứa các phần tử khác trong mô hình) và một class(có hành vi) Hiện thực hoá một hoặc nhiều interface định nghĩa cho hành vi của nó 26 Subsystem Name Subsystem Relization Interface 2 – Phân tích thiết kế hướng đối tượng Subsystem Component Component là thể hiện ở mức vật lý của một khái niệm trừu tượng trong thiết kế Subsystem có thể dùng để biểu diễn các component trong thiết kế 27 Component name Component name Design Model Implementation Model Component Interface Component Interface 2 – Phân tích thiết kế hướng đối tượng Relationships Association (Kết hợp) – Bản số và chiều Aggregation (Thu nạp): toàn thể và bộ phận Composition (Cấu thành) Dependency (Phụ thuộc) Generalization (Tổng quát hóa) ĐơnĐa kế thừa Realization (Hiện thực hoá) 28 2 – Phân tích thiết kế hướng đối tượng Association Mô hình hoá một liên kết ngữ nghĩa giữ các class 29 class Tên role Association Tên association 2 – Phân tích thiết kế hướng đối tượng Aggregation Một dạng đặc biệt của association – mô hình hoá mối quan hệ toàn thể bộ phận giữa một thực thể và các bộ phận của nó 30 Whole Part Aggregation 2 – Phân tích thiết kế hướng đối tượng Composition Một dạng aggregation có tính sở hữu cao và cùng chu kỳ sống Các bộ phận không thể sống lâu hơn thực thể 31 Whole Part Aggregation 2 – Phân tích thiết kế hướng đối tượng Association: Bản số và chiều Bản số xác định số đối tượng tham gia vào một mối quan hệ Số các thể hiện của một class quan hệ với MỘT thể hiện của một class khác Được chỉ ra ở mỗi đầu của quan hệ association Association và aggregation mặc định là hai chiều, nhưng người ta thường giới hạn theo một chiều Mũi tên được thêm vào để chỉ chiều của mối quan hệ 32 2 – Phân tích thiết kế hướng đối tượng Association: Bản số Không xác định Chỉ một Không hoặc nhiều Một hoặc nhiều Không hoặc một Khoảng được chỉ định Các khoảng không liên tục 33 1 0 .. 1.. 0..1 2..4 2,4,6 2 – Phân tích thiết kế hướng đối tượng Bản số và chiều 34 1 0.. Navigation Multiplicity 2 – Phân tích thiết kế hướng đối tượng Mối quan hệ: Dependency Quan hệ giữa hai phần tử trong mô hình mà thay đổi ở phần tử này có thể gây ra thay đổi ở phần tử kia Quan hệ “sử dụng”, không cấu trúc 35 Dependency relationship Dependency relationship Class Component Package 2 – Phân tích thiết kế hướng đối tượng Generalization Quan hệ giữa các class trong đó một lớp chia sẻ cấu trúc vàhoặc hành vi của một hoặc nhiều class khác Xác định một sự phân cấp các mức độ trừu tượng trong đó một subclass kế thừa từ một hoặc nhiều superclass Đơn kế thừa Đa kế thừa Generalization là quan hệ « là một dạng của » 36 2 – Phân tích thiết kế hướng đối tượng Đơn kế thừa Một class kế thừa từ một class khác 37 Tổ tiên Hậu duệ Hậu duệ Generalization Relationship Super Class (cha) Sub Classes 2 – Phân tích thiết kế hướng đối tượng Chỉ sử dụng đa kế thừa khi thật cần, và luôn phải cẩn thận 38 Đa kế thừa Đa kế thừa 2 – Phân tích thiết kế hướng đối tượng Cái gì được kế thừa Một subclass kế thừa các thuộc tính, hành vi và các mối quan hệ từ cha nó Một subclass có thể: Bổ sung thuộc tính, hành vi và các mối quan hệ Định nghĩa lại các hành vi (nên cẩn thận) Các thuộc tính, hành vi và các mối quan hệ chung được đặt ở mức cao nhất có thể trong cấu trúc phân cấp 39 2 – Phân tích thiết kế hướng đối tượng Realization Một lớp thực thi hành vi được đặc tả bởi 1 lớp khác (thường là 1 interface) 40 2 – Phân tích thiết kế hướng đối tượng 41 2 – Phân tích thiết kế hướng đối tượng Giới thiệu về UML UML chỉ đơn thuần là ngôn ngữ đồ hoạ để mô hình hoá chứ không phải là phương pháp để phát triển hệ thống 42 2 – Phân tích thiết kế hướng đối tượng Giới thiệu về UML UML 2.0 cung cấp 14 biểu đồ để mô hình hoá cấu trúc và chức năng của hệ thống, chia làm 2 nhóm: Biểu đồ mô hình cấu trúc Biểu đồ mô hình chức năng 43 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc 6 loại biểu đồ cấu trúc: Biểu đồ lớp (Class) Biểu đồ đối tượng (Object) Biểu đồ gói (package) Biểu đồ triển khai (Deployment) Biểu đồ thành phần (Component) Biểu đồ cấu trúc phức hợp (Composite structure diagrams) 44 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc Biểu đồ lớp (class diagram) Biểu diễn mối quan hệ giữa các lớp 45 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc Biểu đồ đối tượng (object diagram) Biểu diễn mối quan hệ giữa các đối tượng 46 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc Biểu đồ gói (package diagram) Biểu đồ gói gộp các thành phần khác nhau của UML (ví dụ: lớp) để tạo thành thành phần lớn hơn 47 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc Biểu đồ triển khai (deployment diagram) Biểu diễn cấu trúc phần cứng và các thành phần phần mềm của hệ thống 48 Printer 123 Le Loi Str Regional ATM Server Banking Datab... 345 Nguyen Hue Str. Oracle Server ATMServer.exe ATMClient.exe ATMClient.exe 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc Biểu đồ thành phần (component diagram) Biểu diễn quan hệ giữa các thành phần của hệ thống 49 2 – Phân tích thiết kế hướng đối tượng Biểu đồ cấu trúc Biểu đồ cấu trúc phức hợp (composite structure diagram) Minh hoạ chi tiết cấu trúc bên trong của một lớp 50 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng 8 loại biểu đồ chức năng Biểu đồ hoạt động (activity diagram) Biểu đồ tương tác (interaction diagrams) • Biểu đồ chuỗi tuần tự (sequence diagram) • Biểu đồ cộng tác (communicationcollaboration diagram) • Biểu đồ khát quát tương tác (interaction overview diagram) • Biểu đồ thời gian (timing diagram) Biểu đồ máy trạng thái (state machines) • Máy trạng thái chức năng (behavior state machines) • Máy trạng thái giao thức (protocol state machines) Biểu đồ ca sử dụng (use case diagram) 51 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng Biểu đồ hoạt động (activity diagram) Được dùng để mô tả luồng công việc của hệ thống hoặc luồng hoạt động trong một ca sử dụng hoặc mô tả thiết kế chi tiết của một phương thức (method) 52 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng Biểu đồ chuỗi tuần tự (sequence diagram) Mô tả các hoạt động của các đối tượng trong một ca sử dụng dựa vào thứ tự xuất hiện theo thời gian 53 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng Biểu đồ cộng tác (collaboration diagram) Là cách biểu diễn khác của biểu đồ chuỗi tuần tự nhưng tập trung vào mối quan hệ và giao tiếp giữa các đối tượng 54 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng Biểu đồ khát quát tương tác (interaction overview diagram) Được dùng để mô tả tương tác giữa các đối tượng trong các ca sử dụng phức tạp Ít được sử dụng Biểu đồ thời gian (timing diagram) Được dùng để mô tả tương tác giữa các đối tượng theo thời gian. Chủ yếu được dùng để mô tả sự thay đối trạng thái của đối tượng khi có tác động của một sự kiện theo thời gian. Được dùng để phát triển các hệ thống thời gian thực và hệ thống nhúng 55 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng Biểu đồ máy trạng thái chức năng (behavior state machines) Được dùng để mô tả các trạng thái khác nhau mà các đối tượng của một lớp có thể có trong thời gian tồn tại của chúng. 56 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng Biểu đồ máy trạng thái giao thức (protocol state machines) Được dùng để mô tả giao thức giữa các lớp Ví dụ: open database > Query or update 57 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng 58 Biểu đồ ca sử dụng (use case diagram) Được dùng để mô tả tương tác giữa một hệ thống với người sử dụng hoặc với các hệ thống khác có tương tác với nó. Là công cụ để mô tả các yêu cầu của hệ thống Là một trong những công cụ quan trọng nhất trong phân tích và thiết kế hướng đối tượng 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng 59 2 – Phân tích thiết kế hướng đối tượng Biểu đồ chức năng 60 2 – Phân tích thiết kế hướng đối tượng Các Ràng buộc Ràng buộc (constraints) Dùng để biểu diễn ràng buộc và các quan hệ mà không thể biểu diễn được bằng UML Ràng buộc được đặt trong ngoặc { } 61 2 – Phân tích thiết kế hướng đối tượng Các giá trị đính Nhãn:giá trị (tagged values) Là một cặp chuỗi ký tự: nhãn (tag) và giá trị (value) được dùng để bổ sung thông tin cho một phần tử nào đó (lớp, đối tượng, quan hệ …) Nhãn và giá trị được đặt trong ngoặc { } 62 2 – Phân tích thiết kế hướng đối tượng Các khuôn mẫu Khuôn mẫu (stereotype) Cho phép mở rộng UML bằng cách sử dụng các phần tử mô hình hoá đã có sẵn trong UML Khuôn mẫu có thể sử dụng ràng buộc và tagged values Khuôn mẫu được đặt trong dấu > 63 2 – Phân tích thiết kế hướng đối tượng Các ghi chú Note: Có thể đặt ghi chú cho mọi phần tử UML Ghi chú dùng để thêm thông tin cho các lược đồ Nó là hình chữ nhật bị bẻ góc Ghi chú có thể móc nối với một phần tử bằng một đường đứt nét 64 2 – Phân tích thiết kế hướng đối tượng Đặc điểm cơ bản của OOAD Usecase driven Architecture Centric • Cấu trúc phần mềm quyết định việc mô tả, xây dựng và viết tài liệu hệ thống • 3 dạng cấu trúc của một hệ thống: • Chức năng (functional view): chức năng bên ngoài của hệ thống từ góc nhìn của người sử dụng : biểu đồ ca sử dụng, biểu đồ hoạt động • Cấu trúc tĩnh (static view): lớp, thuộc tính, phương thức, quan hệ • Cấu trúc động (dynamic view): chức năng bên trong của hệ thống: biểu đồ máy trạng thái chức năng Iterative and Incremental 65 2 – Phân tích thiết kế hướng đối tượng Ưu điểm của OOAD Việc chia nhỏ một hệ thống lớn thành các module sẽ giúp cho việc giải quyết vấn đề dễ dàng hơn, dễ chia sẻ giữa các thành viên của dự án và dễ dàng trao đổi với người dùng về các yêu cầu của hệ thống Dễ dàng sử dụng lại các module trong các dự án khác Tư duy suy nghĩ về đối tượng gần gũi với thực tế 66 2 – Phân tích thiết kế hướng đối tượng Ưu điểm Một mô hình chung Có tính dễ dùng lại Mô hình phản ánh chính xác thế giơi thực Mô tả chính xác hơn các tập dữ liệu và các xử lý Được phân rã dựa trên các phân chia tự nhiên Dễ hiểu và dễ bảo trì Tính ổn định Một thay đổi nhỏ trong yêu cầu không gây ra sự thay đổi lớn trong hệ thống đang phát triển 67 2 – Phân tích thiết kế hướng đối tượng Ưu điểm của OOAD 68 2 – Phân tích thiết kế hướng đối tượng The Unified process Unified process là một phương pháp phát triển hệ thống trong đó quy định khi nào thì sử dụng các kỹ thuật UML và sử dụng chúng như thế nào trong quá trình phân tích và thiết kế hệ thống. Tác giả: Booch, Jacobsen, Rumbaugh Là phương pháp hướng đối tượng Không phải là một quy trình phát triển phần mềm hoàn thiện • Không xét đến các vấn đề về phân bổ nhân lực, ngân quỹ, quản lý hợp đồng • Không quy định về các hoạt động bảo trì hay hỗ trợ khách hàng • Không xét đến các vấn đề tương tác giữa các dự án 69 2 – Phân tích thiết kế hướng đối tượng The Unified process 70 2 – Phân tích thiết kế hướng đối tượng The Unified process Pha khởi tạo (Inception): giống như pha lập kế hoạch Các bước liên quan: • Mô hình hoá giá trị kinh doanh của hệ thống (business modeling) • Xác định yêu cầu (requirements) • Phân tích (analysis) • Thiết kế (design) • Thực hiện (implementation) • Kiểm tra (test) • Môi trường phát triển (environment) Kết quả: • Phạm vi của dự án • Các yêu cầu và ràng buộc quan trọng • Kế hoạch dự án bước đầu • Miêu tả tính khả thi và rủi ro của dự án • Lựa chọn môi trường cần thiết để phát triển hệ thống 71 2 – Phân tích thiết kế hướng đối tượng The Unified process Pha phát triển (elaboration): hoàn thiện mô hình kinh doanh, đánh giá lại rủi ro và hoàn thiện kế hoạch dự án Các bước liên quan: • Thu thập yêu cầu (requirements) • Phân tích (analysis) • Thiết kế (design) • Thực hiện (implementation) • Kiểm tra (test) • Triển khai (deployment) • Quản lý cấu hình và thay đổi (configuration and change management) Kết quả: • Biểu đồ cấu trúc và chức năng UML • Phiên bản hoạt động đầu tiên của hệ thống 72 2 – Phân tích thiết kế hướng đối tượng The Unified process Pha xây dựng (construction): tập trung chủ yếu vào lập trình Các bước liên quan: • Thu thập yêu cầu (requirements) • Phân tích (analysis) • Thiết kế (design) • Thực hiện (implementation) • Kiểm tra (test) • Triển khai (deployment) • Quản lý cấu hình và thay đổi (configuration and change management) Kết quả: • Phiên bản beta của hệ thống 73 2 – Phân tích thiết kế hướng đối tượng The Unified process Pha chuyển tiếp (transition): tập trung chủ yếu vào kiểm tra và triển khai Các bước liên quan: • Thu thập yêu cầu (requirements) • Phân tích (analysis) • Thiết kế (design) • Thực hiện (implementation) • Kiểm tra (test) • Triển khai (deployment) • Quản lý cấu hình và thay đổi (configuration and change management)
Trang 12 – Phân tích thiết kế hướng đối tượng
GV: Phan Thị Kim Loan
Phân tích thiết kế hướng đối tượng
Đỗ Ngọc Như Loan
Trang 2Nội dung trước
Giới thiệu
Tiến trình phát triển hệ thống
Các phương pháp phát triển hệ thống
Trang 32 – Phân tích thiết kế hướng đối tượng
Nội dung
3
Hệ thống hướng chức năng vs Hệ thống hướng đối tượng
Các đặc điểm cơ bản của hệ thống hướng đối tượng
Giới thiệu UML – UML 2.0
Phân tích thiết kế hướng đối tượng với UML 2.0
Trang 52 – Phân tích thiết kế hướng đối tượng
Lịch sử phát triển OOAD
5
Trang 6OMG Acceptance, Nov ‘97
Final submission to OMG, Sep ’97
First submission to OMG, Jan ‘97
Trang 72 – Phân tích thiết kế hướng đối tượng
Giới thiệu
Thiết kế cấu trúc và thiết kế hướng đối tượng
7
Student Account
Đăng ký học phần
Trang 8Giới thiệu
Thiết kế cấu trúc và thiết kế hướng đối tượng
Student Account
Trang 92 – Phân tích thiết kế hướng đối tượng
Nguyên tắc cơ bản của OO
Hướng đối tượng – Object-Oriented
Trừu tượng hoá – Abstraction
Tính đóng gói – Encapsulation
Tính đơn thể - Modularity
Tính phân cấp – Hierarchy
9
Trang 10Trừu tượng hoá – Abstraction
Quản lý độ phức tạp
Người bán hàng
Sản phẩm
Trang 112 – Phân tích thiết kế hướng đối tượng
Tính đóng gói – Encapsulation
Che dấu cài đặt bên trong với clients
Clients phụ thuộc vào interface
11
Trang 12Tính đơn thể - Modularity
Phân chia nhỏ 1 vấn đề phức tạp thành nhiều
phần nhỏ, đơn giản hơn để có thể quản lý được
Thanh toán hoá đơn
Xuất hoá đơn
…Các đơn thể quản lý tồn kho
Trang 132 – Phân tích thiết kế hướng đối tượng
Tính phân cấp – Hierarchy
13
Bất động sản Chứng khoán
Tài khoản ngân hàng
Tài sản
Cổ phiếu Trái phiếu
Tài khoản Tiết kiệm Tài khoản Thanh toán
Trang 14Các khái niệm cơ bản của HĐT
Objects & Class
Attributes (Properties) & Operation (Behavior)
Method & Message
Trang 152 – Phân tích thiết kế hướng đối tượng
Thực thể
Truck
Linked-list
Trang 16Objects & Class
Một đối tượng là một đối tượng trừu tượng, hoặc một vật với giới hạn rõ ràng và có ý nghĩa với một ứng dụng cụ thể
Lớp (Class) – khuôn mẫu cho các thể hiện của object
Đối tượng (Object) – Thể hiện của một class
Thuộc tính (Attributes)
Hành vi (Behaviors) – chi tiết đối tượng có thể làm gì
Trang 172 – Phân tích thiết kế hướng đối tượng
Biểu diễn đối tượng
nhật với tên được gạch dưới
Trang 18Class - Example
Class Course
…
Trang 192 – Phân tích thiết kế hướng đối tượng
Class & Object
19
Trang 20Method & Message
Phương thức (Methods) implement an object’s behavior
Messages are sent to trigger methods
Procedure call from one object to the next
Trang 212 – Phân tích thiết kế hướng đối tượng
Phương thức và message
21
Trang 232 – Phân tích thiết kế hướng đối tượng
Polymorphism – Interface
23
Interface là hình thức hoá polymorphism
Interface hỗ trợ kiến trúc “plug & play”
<<interface>>
Shape
Draw Move Scale Rotate
Tube
Pyramid
Cube
Quan hệ Realizzation
Trang 24 Một source code component
Một run time components hoặc
Một executable component
Source File <<EXE>> <<DLL>>
Component name
Trang 252 – Phân tích thiết kế hướng đối tượng
Tổ chức mô hình đang phát triển
Một đơn vị trong quản trị cấu hình
25
Package Name
Nguyên tắc OO Tính đơn thể
Trang 272 – Phân tích thiết kế hướng đối tượng
Subsystem & Component
Component là thể hiện ở mức vật lý của một khái niệm
trừu tượng trong thiết kế
Subsystem có thể dùng để biểu diễn các component
Design Model Implementation Model
Component Interface Component Interface
Trang 28 Generalization (Tổng quát hóa) Đơn/Đa kế thừa
Realization (Hiện thực hoá)
Trang 292 – Phân tích thiết kế hướng đối tượng
Trang 30Aggregation
Một dạng đặc biệt của association – mô hình hoá mối quan hệ toàn thể - bộ phận giữa một thực thể và các bộ phận của nó
Aggregation
Trang 312 – Phân tích thiết kế hướng đối tượng
Trang 32 Được chỉ ra ở mỗi đầu của quan hệ association
Association và aggregation mặc định là hai chiều, nhưng người ta thường giới hạn theo một chiều
Mũi tên được thêm vào để chỉ chiều của mối quan hệ
Trang 332 – Phân tích thiết kế hướng đối tượng
Trang 34Bản số và chiều
1 0 *
Navigation
Multiplicity
Trang 352 – Phân tích thiết kế hướng đối tượng
Mối quan hệ: Dependency
Quan hệ giữa hai phần tử trong mô hình mà thay đổi ở phần tử này có thể gây ra thay đổi ở phần tử kia
Quan hệ “sử dụng”, không cấu trúc
Trang 372 – Phân tích thiết kế hướng đối tượng
Trang 38Chỉ sử dụng đa kế thừa khi thật cần, và luôn
phải cẩn thận !
Đa kế thừa
Đa kế thừa
Trang 392 – Phân tích thiết kế hướng đối tượng
Cái gì được kế thừa
Một subclass kế thừa các thuộc tính, hành vi và các mối quan hệ từ cha nó
Một subclass có thể:
Bổ sung thuộc tính, hành vi và các mối quan hệ
Định nghĩa lại các hành vi (nên cẩn thận!)
được đặt ở mức cao nhất có thể trong cấu trúc phân cấp
39
Trang 40Realization
Một lớp thực thi hành vi được đặc tả bởi 1 lớp khác (thường là 1 interface)
Trang 412 – Phân tích thiết kế hướng đối tượng 41
Trang 42Giới thiệu về UML
UML chỉ đơn thuần là ngôn ngữ đồ hoạ để mô hình hoá chứ
không phải là phương pháp để phát triển hệ thống
Trang 432 – Phân tích thiết kế hướng đối tượng
Giới thiệu về UML
UML 2.0 cung cấp 14 biểu đồ để mô hình hoá cấu trúc và chức năng của hệ thống, chia làm 2 nhóm:
Biểu đồ mô hình cấu trúc
43
Trang 44Biểu đồ cấu trúc
6 loại biểu đồ cấu trúc:
Biểu đồ lớp (Class)
Biểu đồ đối tượng (Object)
Biểu đồ gói (package)
Biểu đồ triển khai (Deployment)
diagrams)
Trang 452 – Phân tích thiết kế hướng đối tượng
Biểu đồ cấu trúc
Biểu đồ lớp (class diagram)
Biểu diễn mối quan hệ giữa các lớp
45
Trang 46Biểu đồ cấu trúc
Biểu diễn mối quan hệ giữa các đối tượng
Trang 472 – Phân tích thiết kế hướng đối tượng
47
Trang 48345 Nguyen Hue Str.
Oracle Server
ATMServer.exe
<<Private Network>> <<Private Network>>
<<LAN>>
Trang 492 – Phân tích thiết kế hướng đối tượng
Biểu đồ cấu trúc
Biểu diễn quan hệ giữa các thành phần của hệ thống
49
Trang 512 – Phân tích thiết kế hướng đối tượng
Biểu đồ chức năng
8 loại biểu đồ chức năng
Biểu đồ hoạt động (activity diagram)
Biểu đồ tương tác (interaction diagrams)
• Biểu đồ chuỗi tuần tự (sequence diagram)
• Biểu đồ cộng tác (communication/collaboration diagram)
• Biểu đồ khát quát tương tác (interaction overview diagram)
• Biểu đồ thời gian (timing diagram)
Biểu đồ máy trạng thái (state machines)
• Máy trạng thái chức năng (behavior state machines)
• Máy trạng thái giao thức (protocol state machines)
Biểu đồ ca sử dụng (use case diagram)
51
Trang 532 – Phân tích thiết kế hướng đối tượng
Biểu đồ chức năng
Mô tả các hoạt động của các đối tượng trong một ca sử
dụng dựa vào thứ tự xuất hiện theo thời gian
53
Trang 54Biểu đồ chức năng
Biểu đồ cộng tác (collaboration diagram)
Là cách biểu diễn khác của biểu đồ chuỗi tuần tự
nhưng tập trung vào mối quan hệ và giao tiếp giữa
các đối tượng
Trang 552 – Phân tích thiết kế hướng đối tượng
Biểu đồ chức năng
Biểu đồ khát quát tương tác (interaction overview diagram)
Được dùng để mô tả tương tác giữa các đối tượng trong các
ca sử dụng phức tạp
Ít được sử dụng
Biểu đồ thời gian (timing diagram)
Được dùng để mô tả tương tác giữa các đối tượng theo thời
gian Chủ yếu được dùng để mô tả sự thay đối trạng thái của
đối tượng khi có tác động của một sự kiện theo thời gian
Được dùng để phát triển các hệ thống thời gian thực và hệ
thống nhúng
55
Trang 56Biểu đồ chức năng
state machines)
Được dùng để mô tả các trạng thái khác nhau mà các
đối tượng của một lớp có thể có trong thời gian tồn tại
của chúng
Trang 572 – Phân tích thiết kế hướng đối tượng
Biểu đồ chức năng
Biểu đồ máy trạng thái giao thức (protocol state
machines)
Được dùng để mô tả giao thức giữa các lớp
Ví dụ: open database -> Query or update
57
Trang 58Biểu đồ chức năng
Biểu đồ ca sử dụng (use case diagram)
Được dùng để mô tả tương tác giữa một hệ thống với người sử dụng hoặc với các hệ thống khác có tương tác với nó
Là công cụ để mô tả các yêu cầu của hệ thống
Là một trong những công cụ quan trọng nhất trong phân tích và thiết kế hướng đối tượng
Trang 592 – Phân tích thiết kế hướng đối tượng
Biểu đồ chức năng
59
Trang 60Biểu đồ chức năng
Trang 612 – Phân tích thiết kế hướng đối tượng
Ràng buộc
được đặt trong ngoặc { }
61
Trang 62Các giá trị đính
Nhãn:giá trị (tagged values)
Là một cặp chuỗi ký tự: nhãn (tag) và giá trị (value)
được dùng để bổ sung thông tin cho một phần tử nào
đó (lớp, đối tượng, quan hệ …)
Nhãn và giá trị được đặt trong ngoặc { }
Trang 632 – Phân tích thiết kế hướng đối tượng
Các khuôn mẫu
Cho phép mở rộng UML bằng cách sử dụng các phần tử
mô hình hoá đã có sẵn trong UML
Khuôn mẫu có thể sử dụng ràng buộc và tagged values
Khuôn mẫu được đặt trong dấu << >>
63
Trang 64Các ghi chú
Note: Có thể đặt ghi chú cho mọi phần tử UML
Ghi chú dùng để thêm thông tin cho các lược đồ
Nó là hình chữ nhật bị bẻ góc
Ghi chú có thể móc nối với một phần tử bằng một đường đứt nét
Trang 652 – Phân tích thiết kế hướng đối tượng
Đặc điểm cơ bản của OOAD
• Cấu trúc tĩnh (static view): lớp, thuộc tính, phương thức, quan hệ
• Cấu trúc động (dynamic view): chức năng bên trong của hệ thống: biểu đồ máy trạng thái chức năng
Iterative and Incremental
65
Trang 66Ưu điểm của OOAD
Việc chia nhỏ một hệ thống lớn thành các module sẽ
giúp cho việc giải quyết vấn đề dễ dàng hơn, dễ chia sẻ
giữa các thành viên của dự án và dễ dàng trao đổi với
người dùng về các yêu cầu của hệ thống
Dễ dàng sử dụng lại các module trong các dự án khác
Tư duy suy nghĩ về đối tượng gần gũi với thực tế
Trang 672 – Phân tích thiết kế hướng đối tượng
Ưu điểm
Có tính dễ dùng lại
Mô hình phản ánh chính xác thế giơi thực
Mô tả chính xác hơn các tập dữ liệu và các xử lý
Được phân rã dựa trên các phân chia tự nhiên
Dễ hiểu và dễ bảo trì
Tính ổn định
Một thay đổi nhỏ trong yêu cầu không gây ra sự thay
đổi lớn trong hệ thống đang phát triển
67
Trang 68Ưu điểm của OOAD
Trang 692 – Phân tích thiết kế hướng đối tượng
The Unified process
Unified process là một phương pháp phát triển hệ thống trong đó quy
định khi nào thì sử dụng các kỹ thuật UML và sử dụng chúng như thế
nào trong quá trình phân tích và thiết kế hệ thống
Tác giả: Booch, Jacobsen, Rumbaugh
Là phương pháp hướng đối tượng
Không phải là một quy trình phát triển phần mềm hoàn thiện
• Không xét đến các vấn đề về phân bổ nhân lực, ngân quỹ, quản
lý hợp đồng
• Không quy định về các hoạt động bảo trì hay hỗ trợ khách hàng
• Không xét đến các vấn đề tương tác giữa các dự án
69
Trang 70The Unified process
Trang 712 – Phân tích thiết kế hướng đối tượng
The Unified process
Pha khởi tạo (Inception): giống như pha lập kế hoạch
Các bước liên quan:
• Mô hình hoá giá trị kinh doanh của hệ thống (business modeling) *
• Xác định yêu cầu (requirements)*
• Phân tích (analysis)*
• Thiết kế (design)
• Thực hiện (implementation)
• Kiểm tra (test)
• Môi trường phát triển (environment)*
Kết quả:
• Phạm vi của dự án
• Các yêu cầu và ràng buộc quan trọng
• Kế hoạch dự án bước đầu
• Miêu tả tính khả thi và rủi ro của dự án
• Lựa chọn môi trường cần thiết để phát triển hệ thống
71
Trang 72The Unified process
Pha phát triển (elaboration): hoàn thiện mô hình kinh doanh, đánh
giá lại rủi ro và hoàn thiện kế hoạch dự án
Các bước liên quan:
• Thu thập yêu cầu (requirements)
• Phân tích (analysis)*
• Thiết kế (design)*
• Thực hiện (implementation)
• Kiểm tra (test)
• Triển khai (deployment)
• Quản lý cấu hình và thay đổi (configuration and change management)
Kết quả:
• Biểu đồ cấu trúc và chức năng UML
Trang 732 – Phân tích thiết kế hướng đối tượng
The Unified process
Pha xây dựng (construction): tập trung chủ yếu vào lập trình
Các bước liên quan:
• Thu thập yêu cầu (requirements)
• Phân tích (analysis)
• Thiết kế (design)
• Thực hiện (implementation)*
• Kiểm tra (test)
• Triển khai (deployment)
• Quản lý cấu hình và thay đổi (configuration and change management)*
Kết quả:
• Phiên bản beta của hệ thống
73
Trang 74The Unified process
Pha chuyển tiếp (transition): tập trung chủ yếu vào kiểm tra và triển khai
Các bước liên quan:
• Thu thập yêu cầu (requirements)
• Phân tích (analysis)
• Thiết kế (design)
• Thực hiện (implementation)
• Kiểm tra (test)*
• Triển khai (deployment)*
• Quản lý cấu hình và thay đổi (configuration and change management)*
Kết quả:
• Phiên bản cuối cùng (release) của hệ thống
Trang 752 – Phân tích thiết kế hướng đối tượng
The Unified process
Các bước kỹ thuật (Engineering workflows)
1 Mô hình hoá giá trị kinh doanh (business modeling)
• Diễn ra chủ yếu trong pha khởi tạo
• Phát hiện vấn đề và xác định các dự án tiềm năng
• Xác định giá trị kinh doanh mà dự án đem lại
• Thu thập dữ liệu và mô hình hoá ca sử dụng có thể được sử dụng
2 Xác định yêu cầu (requirements)
• Xác định yêu cầu về chức năng và cả không chức năng
• Yêu cầu được thu thập từ người sử dụng, người quản lý người sử dụng, khách hàng
Trang 76The Unified process
Các bước kỹ thuật (Engineering workflows)
4 Thiết kế
• Chuyển từ mô hình phân tích sang mô hình thiết kế
• Thiết kế giao diện, cơ sở dữ liệu, cấu trúc vật lý của hệ thống, thiết kế chi tiết các lớp
5 Thực hiện (implementation)
• Lập trình: viết các lớp, chương trình và sử dụng các lớp trong thư viện
• Tích hợp các module
6 Kiểm tra (Test)
• Kiểm tra tích hợp hệ thống, chức năng, kiểm tra khả năng chấp nhận của người sử dụng …
• Việc kiểm tra đuợc tiến hành trong suốt quá trình phát triển của HT
7 Triển khai (deployment) Đóng gói phần mềm, phân phối, cài đặt và beta
Trang 772 – Phân tích thiết kế hướng đối tượng
The Unified process
Các bước hỗ trợ (Supporting workflows)
1 Quản lý dự án (project management)
• Diễn ra trong suốt quá trình phát triển hệ thống
• Xác định và quản lý rủi ro
• Quản lý phạm vi dự án
• Quản lý về thời gian, chi phí…
2 Quản lý cấu hình và thay đổi (configuration and change management )
• Theo dõi và quản lý trạng thái và các phiên bản của hệ thống
• Quản lý việc thay đổi các phiên bản (người thay đổi, thời gian thay đổi…)
3 Quản lý môi trường phát triển (environment)
• Quản lý các công cụ và môi trường phát triển cần thiết cho dự án
• Ví du: Rational Rose, Microsoft project, Microsoft Visual C++
77
Trang 78Thực hành
Làm quen với công cụ Rational Rose
Case Study – Quản lý đăng ký học phần
Tìm hiểu về các đề tài OOAD
Đăng ký nhóm và đăng ký đồ án
Đọc sách UML
Trang 792 – Phân tích thiết kế hướng đối tượng