Bài giảng Phân tích thiết kế hệ thống thông tin - Chương 2+3: Các khái niệm cơ bản trong hướng đối tượng

17 15 0
Bài giảng Phân tích thiết kế hệ thống thông tin - Chương 2+3: Các khái niệm cơ bản trong hướng đối tượng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Phân tích thiết kế hệ thống thông tin - Chương 2+3: Các khái niệm cơ bản trong hướng đối tượng + Giới thiệu về UML với mục tiêu nghiên cứu nhằm giúp các bạn nắm được mô tả các khái niệm trừu tượng hóa, đóng gói, mô-đun hóa và phân cấp; Mô tả cấu trúc vật lý của một lớp; Mô tả mối quan hệ giữa lớp và đối tượng. Hiểu về đa hình và tổng quát hóa.

25/02/2016 Mục tiêu • Mơ tả khái niệm trừu tượng hóa, đóng gói, mơ-đun PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƠNG TIN hóa phân cấp • Mơ tả cấu trúc vật lý lớp • Mô tả mối quan hệ lớp đối tượng • Hiểu đa hình tổng qt hóa Chương 2: Các khái niệm hướng đối tượng Đối tượng gì? Nội dung • Một đối tượng biểu diễn thực thể, thực thể Đối tượng gì? Bốn nguyên lý OO Lớp gì? Đa hình Tổng qt hóa Tổ chức phần tử mơ hình vật lý, thực thể trừu tượng thực thể phần mềm • Thực thể vật lý • Thực thể trừu tượng • Thực thể phần mềm Xe tải Phản ứng hóa học Danh sách liên kết Page 1 25/02/2016 Một đối tượng có trạng thái Định nghĩa Thuộc tính • Trạng thái điều kiện hay tình • Một đối tượng thực thể suốt trình sống đối tượng • Trạng thái đối tượng thường thay đổi theo thời gian có biên định danh xác định rõ ràng để đóng gói trạng thái hành vi • Trạng thái biểu diễn thuộc tính mối quan hệ Name: J Clark Employee ID: 567138 HireDate: 07/25/1991 Status: Tenured Discipline: Finance MaxLoad: • Hành vi thao tác, phương thức chế chuyển trạng thái Name: J Clark Employee ID: 567138 Date Hired: July 25, 1991 Status: Tenured Discipline: Finance Maximum Course Load: classes Đối tượng Các phép xử lý Giáo sư Clark Một đối tượng có hành vi Một đối tượng có định danh • Hành vi xác định cách mà đối tượng hành động phản ứng • Mỗi đối tượng có tên riêng để phân biệt đối tượng với đối tượng khác trạng thái chúng giống hệt • Một hành vi thấy đối tượng mơ hình hóa tập thơng điệp mà đáp ứng (các thao tác mà đối tượng thực hiện) Các hành vi giáo sư Clark Submit Final Grades Accept Course Offering Take Sabbatical Set Max Load TakeSabbatical() Giáo sư “J Clark” dạy Sinh học Giáo sư Clark Giáo sư “J Clark” dạy Sinh học Page 2 25/02/2016 10 Các nguyên lý OO Nội dung? Đối tượng gì? Hướng đối tượng Bốn nguyên lý OO Lớp gì? Phân cấp Mơ-đun hóa Trừu tượng hóa Tổ chức phần tử mơ hình Đóng gói Đa hình Tổng qt hóa 11 12 Ví dụ: Trừu tượng hóa 2.1 Trừu tượng hóa (Abstraction)  Những đặc điểm thực thể phân biệt với loại thực thể khác  Xác định biên giới liên quan đến góc độ người quan sát  Nó khơng phải biểu cụ thể, Sinh viên biểu thị chất thực thể Giáo viên Khóa học diễn lúc 9:00 sáng ngày thứ 3, 5, Khóa học (ví dụ đại số) Page 3 25/02/2016 13 14 2.2 Đóng gói (Encapsulation) Minh họa việc đóng gói  Che giấu thực thi bên • Giáo sư Clark yêu Giáo sư Clark cầu dạy lớp tháng tới  Client sử dụng giao diện cung cấp Name: J Clark Employee ID: 567138 HireDate: 07/25/1991 Status: Tenured SetMaxLoad(4) Discipline: Finance MaxLoad:4 TakeSabbatical() Tăng cường tính mềm dẻo 15 16 2.3 Mơ đun hóa (Modularity) Ví dụ: Mơ đun hóa • Ví dụ, chia nhỏ hệ thống phức • Chia nhỏ hệ thống phức tạp thành tạp thành mơ đun nhỏ thành phần nhỏ quản lý • Cho phép người dùng hiểu biết hệ thống Hệ thống quản lý xuất nhập sách Hệ thống quản lý thông tin sách Hệ thống quản lý siêu thị sách Hệ thống quản lý nhân viên Page 4 25/02/2016 17 18 2.4 Phân cấp (Hierarchy) Gia tăng mức độ trừu tượng hóa Nội dung? Tài sản Đối tượng gì? Bốn nguyên lý OO Tài khoản ngân hàng Chứng khoán Lớp gì? Bất động sản Đa hình Tổng qt hóa Tổ chức phần tử mơ hình Giảm mức độ trừu tượng hóa Tiết kiệm Tiên gửi Cổ phiếu Các loại giấy tờ có giá trị Các phần tử cấp sơ đồ phân cấp có mức trừu tượng hóa 19 20 Lớp gì? Ví dụ lớp Lớp • Lớp đại diện cho tập đối tượng Các đối Khóa học tượng chung thuộc tính, hành vi, mối quan hệ ngữ nghĩa • Một đối tượng thể lớp • Một lớp trừu tượng hóa, nó: • Tập trung vào đặc tính chung • Bỏ đặc tính khác Thuộc tính Hành vi Tên Địa điểm diễn Số ngày dự kiến Số đơn vị học trình Thời gian bắt đầu Thời gian kết thúc Thêm sinh viên Xóa sinh viên Xem lịch học Kiểm tra số thành viên Page 5 25/02/2016 21 22 Biểu diễn lớp UML Biểu diễn đối tượng UML • Trong UML, lớp biểu diễn hình chữ • Trong UML, đối tượng biểu diễn nhật, chia làm phần hình chữ nhật, với tên đối tượng gạch chân • Tên lớp Professor • Cấu trúc (Các thuộc tính) J Clark : Professor - name - employeeID : UniqueId - hireDate - status - discipline - maxLoad • Hành vi (các phương thức) Đối tượng J Clark thuộc lớp Professor + submitFinalGrade() + acceptCourseOffering() + setMaxLoad() + takeSabbatical() + teachClass() : Professor Giáo sư J Clark Đối tượng nặc danh 23 24 Mối quan hệ gữa lớp đối tượng Thuộc tính (attribute) gì? • Lớp trừu tượng hóa đối tượng • Một thuộc tính đặc tính (property) có tên • Một lớp định nghĩa cấu trúc hành vi cho tất đối lớp mô tả phạm vi giá trị mà thể đặc tính giữ tượng thuộc lớp • Nó có chức khuôn mẫu cho việc tạo đối tượng • Một lớp có số thuộc tính khơng có thuộc tính • Lớp khơng phải tập hợp đối tượng Professor Attributes Professor Torpie Professor Meijer Student - name - address - studentID - dateOfBirth Professor Allen Page 6 25/02/2016 25 26 Thao tác gì? Thuộc tính lớp đối tượng • Một dịch vụ u cầu từ đối tượng để thực Lớp hành vi Một thao tác có chữ ký, giới hạn tham số thực tế :Student Student - name - address - studentID - dateOfBirth - name = “M Modano” - address = “123 Main St.” - studentID = - dateOfBirth = “03/10/1967” • Một lớp có nhiều thao tác khơng có thao tác Đối tượng Student :Student - name = “D Hatcher” - address = “456 Oak Ln.” - studentID = - dateOfBirth = “12/11/1969” Operations + get tuition() + add schedule() + get schedule() + delete schedule() + has prerequisites() 27 28 Nội dung? 4.1 Đa hình gì?  Khả che giấu nhiều thực thi thông qua giao diện Đối tượng gì? Bốn nguyên lý OO Lớp gì? Đa hình Tổng qt hóa Tổ chức phần tử mơ hình Nhà sản xuất A Nhà sản xuất B Nhà sản xuất C Nguyên lý OO: Đóng gói Điều khiển từ xa Page 7 25/02/2016 29 30 4.2 Tổng qt hóa gì? Ví dụ: Đa hình • Mối quan hệ lớp lớp chia sẻ cấu financialInstrument.getCurrentValue() trúc hành vi cho lớp khác • Định nghĩa cấu trúc phân cấp mức trừu tượng đó, lớp kế thừa từ lớp cha • Đơn kế thừa • Đa kế thừa • Tổng qt hóa loại quan hệ Cổ phiếu Trái phiếu Quỹ cố định 31 32 Ví dụ: Đơn kế thừa Ví dụ: Đa kế thừa • Một lớp kế thừa từ lớp khác • Một lớp kế thừa từ nhiều lớp khác Tổ tiên Account - balance - name - number Lớp cha FlyingThing Animal Multiple Inheritance + withdraw() + createStatement() Mối quan hệ tổng quát hóa Lớp Savings Airplane Helicopter Bird Wolf Horse Sử dụng đa kế thừa thực cần phải cảnh giác! Checking Hậu duệ Page 8 25/02/2016 33 34 Kế thừa gì? Nội dung? • Một lớp kế thừa từ lớp cha thuộc tính, Đối tượng gì? phương thức mối quan hệ • Một lớp : Bốn ngun lý OO Lớp gì? • Thêm thuộc tính , phương thức mối quan hệ Đa hình Tổng qt hóa • Định nghĩa lại phương thức (cẩn thận) Tổ chức phần tử mơ hình • Các thuộc tính, phương thức mối quan hệ chung mức cao phân cấp Inheritance leverages the similarities among classes 35 36 Package gì? Một package chứa đựng lớp • Là công cụ để tổ chức phần tử mơ • Trong package University Artifacts, chứa package hình vào thành nhóm • Các phần tử mơ hình chứa đựng phần tử khác • Một package sử dụng để: lớp • Tổ chức mơ hình phát triển University Artifacts • Tạo khối để quản lý cấu hình University Artifacts Student Artifacts Professor Course Schedule Student CourseOffering Page 9 25/02/2016 37 38 Vẽ biểu đồ Thảo luận • Mỗi biểu đồ có khung (frame), ngăn tiêu đề • Đối tượng gì? phía góc bên trái vùng nội dung • nguyên lý hướng đối tượng? • Nếu khung khơng cung cấp thêm giá trị bỏ qua Giải thích • Lớp gì? Lớp đối tượng liên quan đến nào? • Thuộc tính gì? Phương thức? • Định nghĩa đa hình.Cung cấp ví dụ đa hình • Tổng qt hóa gì? • Tại phải sử dụng package? 40 Mục tiêu • Hiểu cơng nghệ đối tượng ưu PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƠNG TIN • • Chương 3: Giới thiệu về UML • Unified Modeling Laguage • • cơng nghệ Nắm lịch sử công nghệ đối tượng xu sử dụng hế công nghệ đối tượng Mơ tả tầm quan trọng mơ hình hóa trực quan vai trị Kiến trúc hướng mơ hình (Model Driven Architecture) Xác định nguyên tắc mơ hình hóa trực quan Nắm vai trị UML Xác định loại quy trình phù hợp với UML 39 Page 10 10 25/02/2016 41 42 3.1 UML gì? Nội dung Unified Modeling Laguage • 3.1 UML gì? • UML ngơn ngữ để: • 3.2 Sơ lược lịch sử phát triển UML • Trực quan hóa (Visualizing) • 3.3 Các khung nhìn UML • Xây dựng (Constructing) • Xác định rõ (Đặc tả - Specifying) • Tài liệu hóa (Documenting) • 3.4 Lược đồ UML 2.0 cấu phần (artifact) hệ thống phần mềm 43 44 UML ngôn ngữ trực quan UML ngôn ngữ để đặc tả  UML ngơn ngữ thống trực • UML xây dựng mơ hình xác, rõ ràng đầy đủ quan giúp công việc xử lý quán, giảm thiểu lỗi xảy ◦ Có thứ mà khơng mơ hình hóa khơng khó hiểu ◦ Mơ hình trợ giúp hiệu việc liên lạc, trao đổi  Trong tổ chức  Bên tổ chức Page 11 11 25/02/2016 45 46 UML ngôn ngữ để xây dựng HT UML ngơn ngữ để tài liệu hóa • Các mơ hình UML kết nối trực tiếp với nhiều UML giúp tài liệu hóa kiến trúc, yêu cầu, kiểm thử, lập kế hoạch dự án, quản lý việc bàn giao phần mềm Use Case Deployment Diagram ngơn ngữ lập trình • Ánh xạ sang Java, C++, Visual Basic… • Các bảng RDBMS kho lưu trữ OODBMS Các biểu đồ khác nhau, ghi chú, ràng buộc đặc tả tài liệu • Cho phép kỹ nghệ xuôi (chuyển UML thành mã nguồn) • Cho phép kỹ nghệ ngược (xây dựng mơ hình hệ thống từ mã nguồn) Diagram ºÐ» ê ȯ ổ ầ ầẽàồ ỵ ắ ợạì ìặđ áÃẻầ Ô ẵ ẵ ơỏ àă - âààỡ : ơả ú èắ ặđ - âààỡ NT: ẳ ạử - éẵ áểẵ : ẳ ạử ạì àƠ èá ẳ ạử , ẵ ẳ ạử - IBM áịẻầÃạể: àƠ èá ẳ ạử , ẵ ẳ ạử Wi n d o ws Wi n d o w9 Wi n d o ws Use Case ạđẳ ỹ áđ ơả ú èắ ặđ.EXE ạđẳ ỹ áđ ắ ệầá Wi n d o ws NT Actor A Actor B Use Case So l a ri s ạđẳ ỹ áđ Ê ứ.EXE Al p h a UNIX ¼ ¹ư EXE Wi n d o ws NT IBM Use Case M a i n fra m e àƠ èáÊ èẵ ẳ ạử Do c u m e n tL i s t mainWnd fileMgr : document : gFile repository Do c u m e n t Fi l e M g r FileMgr user Document add( ) nam e : int d e l e te ( ) fe tc h Do c ( ) doc id : int s o rtBy Na m e ( ) n u m Fi e l d : i n t ặ Ô ạđẳ Ă ầẹ õ áƯ g e t( ) : Do c v i e w re q u e st ( ) » ç ¿ë ÀÚ°¡ ¿ä û ÇĐ´Ù open( ) c los e( ) : fe tc h Do c ( ) re a d () fi l l th e c o d e re a d ( ) Fi l e L i s t s o rtFi l e L i s t( ) fL i s t c re a te ( ) : c re a te ( ) fi l l Do c u m e n t( ) add( ) d e l e te ( ) : c re a te ( ) : re a d Do c ( ) ẩẽỹ áđ éắ ợ : fi l l Do c u m e n t ( ) ạđẳ ầ Ô ááƯ ầỉỗ ạđẳ ẳ Ă ẳ Ô À» ¿ä û ÇĐ´Ù re p : re a d Fi l e ( ) Fi l e Re p o s i to ry : fi l l Fi l e ( ) (fro m Pe rs i s te n c e ) re a d ( ) ẩáộ ẳ éắ ợàộ ẻ : s o rtBy Na m e ( ) Grp Fi l e nam e : c har * = ẳ àộ Ă ầỉ èáĐ Ãẻ Ô Ãằ ẵ ẹ ẩáộ Ă áâỉ re a d ( ) re a d Do c ( ) open( ) re a d Fi l e ( ) c re a te ( ) fi l l Fi l e ( ) Sequence Diagram 47 Class Diagram 48 3.2 Lịch sử phát triển UML 3.2 Lịch sử phát triển UML (2) • UML chuyên gia hướng đối  Vào 1994, có 50 phương pháp mơ hình hóa tượng hợp kỹ thuật họ vào năm 1994: hướng đối tượng: ◦ Fusion, Shlaer-Mellor, ROOM, Class-Relation,Wirfs- • Booch91 (Grady Booch): Conception, Brock, Coad-Yourdon, MOSES, Syntropy, BOOM, OOSD, OSA, BON, Catalysis, COMMA, HOOD, Ooram, DOORS … Architecture • OOSE (Ivar Jacobson): Use cases • OMT (Jim Rumbaugh): Analysis  “Meta-models” tương đồng với • Thiết lập phương thức thống để xây dựng “vẽ” yêu cầu thiết kế hướng đối tượng q trình PTTK phần mềm  UML cơng nhận chuẩn chung vào năm 1997  Các ký pháp đồ họa khác  Quy trình khác khơng rõ ràng  Cần chuẩn hóa thống phương pháp Page 12 12 25/02/2016 49 50 UML ngôn ngữ hợp Rumbaugh Booch UML ngôn ngữ thống Jacobson Meyer Fusion Before and after conditions Operation descriptions, message numbering Harel Embley Singleton classes, High-level view State charts Gamma, et.al Wirfs-Brock Responsibilities Frameworks, patterns, notes Shlaer- Mellor Selic, Gullekson, Ward Odell Object lifecycles ROOM (Real-Time Object-Oriented Modeling) Classification 51 3.2 Lịch sử phát triển UML (2) 3.3 Khung nhìn UML UML 2.0 Khung nhìn mơ hình có ý nghĩa với người tham gia + Architectural View (2004) UML 1.5 (March, „03) UML 1.1 UML Partners‟ Expertise (Sept „97) UML 1.0 (Jan „97) Implementation View Logical View UML 0.9 and UML 0.91 (June „96) Analysts/Designers (Oct „96) Unified Method 0.8 (OOPSLA ‟95) Booch ‟93 Structure Public Feedback Programmers Use-Case View Software management End-user Functionality Process View OMT - Deployment View System engineering System integrators OOSE Other Methods Booch „91 Performance, scalability, throughput OMT - System topology, delivery, installation, communication Page 13 13 25/02/2016 53 54 Khung nhìn Logic Khung nhìn Use case  Cấu phần mơ hình thiết kế ◦ Cung cấp mơ tả cụ thể hành vi chức hệ thống ◦ Xuất phát từ mơ hình phân tích • Nắm bắt chức hệ thống • Cần thiết cho hoạt động phân tích, thiết kế kiểm thử • Hợp đồng khách hàng người phát triển • Hành vi hệ thống – chức mà hệ thống cần cung cấp – lưu mơ hình use case  Mơ tả vắn tắt hành vi hệ thống dựa mơ hình use case ◦ Tập hợp lớp, tổ chức vào hệ thống • Biểu đồ use case ◦ Bao gồm:  Biểu đồ lớp, biểu đồ tương tác, biểu đồ trạng thái  Hệ thống giao diện chúng • Luồng kiện use case • Biểu đồ hoạt động • Các tài liệu phụ trợ 55 56 Khung nhìn tiến trình (process) Khung nhìn thực thi (implementation)  Bao gồm thread process tạo nên  Tổ chức mô-đun phần mềm tĩnh (mã nguồn, chế đồng thời đồng hệ thống  Giải vấn đề: tệp liệu, thành phần thực thi, tài liệu…) môi trường dạng: ◦ Đồng thời song song (đồng bộ, deadlock…) ◦ Chia thành package phân lớp (layer) ◦ Dung thứ lỗi (cô lập chức lỗi, độ tin cậy) ◦ Quản lý cấu hình (quyền sở hữu, kế hoạch bàn ◦ Khởi động tắt hệ thống giao…) ◦ Phân phối đối tượng liệu ◦ Hiệu (thời gian đáp ứng, thơng lượng) tính co dãn  Khơng cần thiết môi trường xử lý đơn lẻ  Được mơ hình hóa biểu đồ thành phần  Mơ hình hóa biểu đồ lớp, biểu đồ tương tác biểu đồ trạng thái Page 14 14 25/02/2016 57 58 Khung nhìn triển khai (deployment) Biểu đồ UML  Biểu đồ use case sử dụng (Use Case Diagram) • Mơ tả nút vật lý khác kết nối lẫn  Biểu đồ tương tác (Interaction Diagrams) ◦ Biểu đồ trình tự (Sequence Diagram) ◦ Biểu đồ giao tiếp/cộng tác (Communication/Collaboration Diagram) chúng cho cấu hình tảng điển hình • Giải vấn đề: • Triển khai • Cài đặt  Biểu đồ trạng thái (Statechart Diagram) • Bảo trì  Biểu đồ cấu trúc tĩnh (Static Structure Diagrams) ◦ Class Diagram ◦ Object Diagram • Được mơ hình hóa biểu đồ triển khai  Biểu đồ hoạt động (Activity Diagram)  Biểu đồ thực thi (Implementation Diagrams) ◦ Biểu đồ thành phần (Component Diagram) ◦ Biểu đồ triển khai (Deployment Diagram) 59 60 Biểu đồ trình tự Biểu đồ use case • Mơ tả tương tác hệ thống với giới bên ngồi • Chỉ bước cần thực để đạt chức hệ thống Page 15 15 25/02/2016 61 62 Biểu đồ giao tiếp/cộng tác Biểu đồ hoạt động • Chỉ luồng kiện bên hệ thống • Mơ tả tương tác đối tượng tổ chức xung quanh đối tượng liên kết chúng 63 64 Biểu đồ lớp Biểu đồ đối tượng • Mơ tả cấu trúc phần mềm Page 16 16 25/02/2016 65 66 Biểu đồ trạng thái Biểu đồ thành phần • Mơ tả vịng đời lớp • Mơ tả cách tổ chức phụ thuộc thành phần phần mềm 67 68 Biểu đồ triển khai Quy trình UML • Mơ tả phân phối thành phần doanh nghiệp • UML ký pháp khơng phải phương pháp • UML áp dụng cho tất pha quy trình phát triển phần mềm • "Rational Unified Process" - quy trình phát triển cho UML Page 17 17 ... nghệ đối tượng ưu PHÂN TÍCH THIẾT KẾ HỆ THỐNG THƠNG TIN • • Chương 3: Giới thiệu về UML • Unified Modeling Laguage • • cơng nghệ Nắm lịch sử công nghệ đối tượng xu sử dụng hế công nghệ đối tượng. .. classes Đối tượng Các phép xử lý Giáo sư Clark Một đối tượng có hành vi Một đối tượng có định danh • Hành vi xác định cách mà đối tượng hành động phản ứng • Mỗi đối tượng có tên riêng để phân biệt đối. .. phát từ mơ hình phân tích • Nắm bắt chức hệ thống • Cần thiết cho hoạt động phân tích, thiết kế kiểm thử • Hợp đồng khách hàng người phát triển • Hành vi hệ thống – chức mà hệ thống cần cung cấp

Ngày đăng: 19/08/2021, 14:53

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan