PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG

Slides:



Advertisements
Similar presentations
GV: Nguyễn Thị Thúy Hiền PHÒNG GD&ĐT PHÚ VANG TRƯỜNG THCS PHÚ THƯỢNG.
Advertisements

5.
CHƯƠNG III: NGÂN HÀNG VÀ CÁC NGHIỆP VỤ NGÂN HÀNG.
By Nguyen Minh Quy - UTEHY
Kỹ năng Trích dẫn và Lập danh mục tài liệu tham khảo
Chào mừng quý thầy cô và các em TRƯỜNG THPT TRẦN VĂN KỶ TỔ LÝ – TIN - KTCN.
BÀI 3. ĐƯỜNG THẲNG VÀ MẶT PHẲNG SONG SONG SỞ GD&ĐT ĐIỆN BIÊN TRƯỜNG THCS-THPT TẢ SÌN THÀNG BÀI DỰ THI SOẠN GIẢNG E-LEARNING Chương II ĐƯỜNG THẲNG VÀ MẶT.
Rèn luyện nghiệp vụ sư phạm 3
Orientation Các vấn đề về IT.
Giáo viên: Nguyễn Ngọc Thúy Hằng Đơn vị: Trường THPT Lê Quý Đôn
CƠ CHẾ QUẢN LÝ KINH TẾ TRƯỚC THỜI KÌ ĐỔI MỚI (1975 – 1986)
37 Lê Quốc Hưng, Quận 4, Tp. Hồ Chí Minh ​ (08) ĐỀ XUẤT POC CÁC GIẢI PHÁP GIÁM SÁT HẠ TẦNG TRÊN NỀN TẢNG CÔNG.
NGƯỜI HƯỚNG DẪN: TS. NGUYỄN AN TẾ 1. Giới thiệu về XML Cấu trúc XML Mô hình XML Tuyết và Vân them nội dung vào đ ây NỘI DUNG.
1 BÀI 6 BẤM CÁP VÀ CHIA SẺ DỮ LIỆU MẠNG. 2 Nội Dung  Bấm cáp xoắn đôi đúng chuẩn Phương pháp bấm cáp chuẩn A Phương pháp bấm cáp chuẩn B  Kết nối máy.
TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C/C++
Thị trường mới ThS. Nguyễn Văn Thoan
Chương 1: mạng máy tính và Internet
Kính Chào Cô và Các b ạ n thân m ế n !!!!!. HÌNH THỨC CHÍNH THỂ CỦA NHÀ NƯỚC CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM VÀ MỘT SỐ NƯỚC TRÊN THẾ GIỚI. Thuyết trình.
Tác tử thông minh.
Ngôn ngữ lập trình C/C++
SỬ DỤNG EXCEL ĐỂ TRÍCH KHẤU HAO TSCĐ
Đầu tiên chỉ là 1 giao thức đơn giản
CHƯƠNG 9 PHẦN MỀM POWERPOINT
BÀI 4 CÔNG NGHỆ THÔNG TIN VÀ CHUỖI CUNG ỨNG
Hướng dẫn viết đề cương nghiên cứu
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C++
Công nghệ phần mềm Các quy trình phần mềm.
THIẾT KẾ HỆ THỐNG THÔNG TIN Chương 5.
Chương 4: Thị trường tài chính
NETNAM NETWORK MANAGEMENT
NHẬP MÔN VỀ KỸ THUẬT.
© 2007 Thomson South-Western
OBJECT-ORIENTED ANALYSIS AND DESIGN WITH UML 2.0
Ràng buộc toàn vẹn (Integrity Constraint)
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA VẬT LÝ
Hệ quản trị Cơ sở dữ liệu Giới thiệu
Dược Thảo Lợi Hại Ra Sao Kính thưa quí bạn, slide show nầy nói về những điều cần lưu ý khi tìm đọc các thông tin về các loại thuốc phụ trợ hoặc bổ sung,
Chương 1: Khái quát về dự án đầu tư.
Ra quyết định kinh doanh
Theo mặc định toàn bộ dung lượng dùng lưu trữ, các thư mục hiện có trong các Partition , các dịch vụ hệ thống đã được chia sẽ cho mọi người được phép sử.
Policy Analysis Tools of the Trade NMDUC 2009.
Cấu hình đơn giản cho Router
Bài giảng môn Tin ứng dụng
Ring ? Bus ? ? Mesh ? Start ?. Ring ? Bus ? ? Mesh ? Start ?
Môn: Lập trình Hướng đối tượng (Object Oriented Programming)
TÀI LIỆU GIẢNG DẠY IC3 GS4 SPARK
GIÁO TRÌNH ĐÀO TẠO TRƯỜNG ĐẠI HỌC SÀI GÒN
HỆ ĐIỀU HÀNH MẠNG.
ỨNG DỤNG HIV INFO 3.0 QUẢN LÝ SỐ LIỆU NGƯỜI NHIỄM HIV/AIDS
GVHD: TS Lê Vũ Tuấn Hùng HV: Trịnh Thị Quỳnh Như
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
ÔN TẬP Chuyển các số sau từ hệ thập phân sang nhị phân, bát phân, thập lục phân: Chuyển các số sau từ hệ nhị phân.
ÔN TẬP Chuyển các số sau từ hệ thập phân sang nhị phân, bát phân, thập lục phân: Chuyển các số sau từ hệ nhị phân.
BÀI 29: LỌC DỮ LIỆU TỪ DANH SÁCH DỮ LIỆU
Chương 4 - CÁC MÔ ĐUN ĐiỀU KHIỂN TRONG HỆ THỐNG CƠ ĐiỆN TỬ
ĐÁNH GIÁ TÁC ĐỘNG SỨC KHỎE
Chương 5: Relational mapping
Chương 1: Giới thiệu về Database
Tổng quan về Hệ điều hành
Phương pháp Nghiên cứu khoa học (SCIENTIFIC RESEARCH METHODOLOGY)
Lớp DH05LN GIÁO VIÊN PHỤ TRÁCH ThS. NGUYỄN QUỐC BÌNH
Chương 3. Lập trình trong SQL Server TRIGGER
AUDIO DROPBOX - TUTORIALS
2D Transformations Các phép biến đổi 2D
Module 2 – CSR & Corporate Strategy
SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐIỆN BIÊN TRƯỜNG THPT MÙN CHUNG
Company LOGO CĂN BẢN VỀ MẠNG NGUYEN TAN THANH Xem lại bài học tại
Quản trị rủi ro Những vấn đề căn bản Nguyễn Hưng Quang 07/11/2015 NHẬT HOA IC&T.
TRƯỜNG ĐẠI HỌC NGOẠI THƯƠNG CƠ SỞ II TẠI TP. HỒ CHÍ MINH HỘI NGHỊ KHOA HỌC CƠ SỞ II “BÁO CÁO HOẠT ĐỘNG ĐI THỰC TẾ CỦA GIẢNG VIÊN CSII, NĂM HỌC ”
Nghiên cứuLập kế hoạch Thực thi giao tiếp Đánh giá.
Presentation transcript:

PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG CHƯƠNG 3 Phân tích (tiếp)

Chương 3. Phân tích 3.1. Xác định rõ yêu cầu 3.2. Mô hình hóa chức năng 3.3. Mô hình hóa cấu trúc 3.4. Mô hình hóa hoạt động November 18 OOD - DEI.FET.HUT

3.3. Mô hình hóa cấu trúc Mục đích: Cách mô tả cấu trúc: Sử dụng mô hình cấu trúc hay mô hình khái niệm để mô tả cấu trúc dữ liệu sử dụng trong các quy trình nghiệp vụ của tổ chức Thu hẹp khoảng cách về ngữ nghĩa giữa thế giới thực và thế giới phần mềm Tạo ra vốn từ vựng cho người phân tích và người sử dụng Miêu tả vật thể, ý tưởng và các khái niệm quan trọng của ứng dụng Cách mô tả cấu trúc: CRC cards, class diagrams, and object diagrams. November 18 OOD - DEI.FET.HUT

Các phần tử cơ bản của mô hình cấu trúc Classes (Lớp) Attributes (Thuộc tính) Operations (Hành động/ phương thức) Relationships (Quan hệ) November 18 OOD - DEI.FET.HUT

Classes Các mẫu để tạo ra biểu tượng hoặc đối tượng: Mọi đối tượng của cùng một lớp có cùng cấu trúc và cùng hành động nhưng các thuộc tính co gia tri khác nhau. Concrete (Cụ thể): được dùng để tạo ra các đối tượng thực sự Abstract (Trừu tượng): được dùng để tạo ra các lớp khác November 18 OOD - DEI.FET.HUT

Attributes Đơn vị thông tin dùng để mô tả lớp Chỉ nên đưa vào những thuộc tính quan trọng Thuộc tính nên là các kiểu nguyên tố (integer, string, double, date, time, boolean,…) November 18 OOD - DEI.FET.HUT

Operations (Services) Hành động mà đối tượng có thể thi hành Tập trung vào các hoạt động cụ thể của các vấn đề liên quan November 18 OOD - DEI.FET.HUT

Relationships Tổng quát hóa (Generalization) Kiểu quan hệ “Is-A”, “a-kind-of” Cho phép kế thừa các thuộc tính và phương thức của một lớp 2 loại lớp: Lớp con (Subclasses) và lớp cha (superclasses) Nguyên tắc “thay thế” Các lớp con có thể thay thế các lớp cha Toàn thể-bộ phận/ bao hàm (Aggregation) Kiểu quan hệ “Has-A”, “a-part-of”, “a-member-of” Liên kết bộ phân với toàn thể Là quan hệ 2 chiều Ngược với aggregation là decompsition Các bộ phận có thể được mô hình hóa riêng biệt November 18 OOD - DEI.FET.HUT

Relationships Liên kết (Association) Các quan hệ không thuộc 2 loại trên Thể hiện các mối quan hệ khác nhau giữa các lớp Example: Patient schedules an appointment So the appointment has a patient This is weak November 18 OOD - DEI.FET.HUT

Your Turn What classes, attributes, and operations that would be required to describe the process of your own project? November 18 OOD - DEI.FET.HUT

CLASS-RESPONSIBILITY-COLLABORATION (CRC) CARDS Thẻ này được sử dụng để mô tả: Trách nhiệm của một lớp Sự cộng tác giữa các lớp November 18 OOD - DEI.FET.HUT

Responsibilities and Collaborations Trách nhiệm (Responsibilities) Biết (Knowing) Things an instance must know Normally it knows values of its attributes and its relationships Làm (Doing) Things an instance must be able to do Execute its operations, call other operations November 18 OOD - DEI.FET.HUT

Responsibilities and Collaborations Cộng tác (Collaboration) Các use case liên quan đến nhiều lớp Các đối tượng làm việc với nhau để phục vụ một yêu cầu Cho phép tập trung vào Clients, Server, và Contracts November 18 OOD - DEI.FET.HUT

Clients, Servers, Contracts Là thể hiện của 1 lớp Gửi các yêu cầu tới thể hiện của lớp khác Server Thể hiện của lớp nhận yêu cầu Contract Sự tương tác giữa client và server November 18 OOD - DEI.FET.HUT

Clients, Servers, Contracts Example Patient makes appointment with Doctor Client: Patient object Server: Doctor object Contract: Both agree to be at a specific place and at a specific time November 18 OOD - DEI.FET.HUT

Elements of a CRC Card Class Name – Danh từ (Không được là danh từ riêng) ID – Lưu trữ và tham chiếu với yêu cầu Description – Định nghĩa ngắn gọn Responsibilities – Doing responsibilities Attributes – Knowing responsibilities Relationships Generalization Aggregation Other Associations November 18 OOD - DEI.FET.HUT

A CRC Card November 18 OOD - DEI.FET.HUT

Back of CRC Card November 18 OOD - DEI.FET.HUT

Review CRC Card November 18 OOD - DEI.FET.HUT

Review of CRC Card November 18 OOD - DEI.FET.HUT

CLASS DIAGRAMS

Class Diagrams Mô hình tĩnh (Static model) Bao gồm Các lớp Mối quan hệ giữa các lớp Không đổi theo thời gian November 18 OOD - DEI.FET.HUT

An Example of Class Diagram November 18 OOD - DEI.FET.HUT

Person Doctor Patient Medical History Appointment has makes 1 0..* 1 1 ID Lastname Firstname Address Phone Doctor Specialised Position Start Date makeAppointment() Patient Insurance ID Symptom Entry date RegisterApp() 1 has 0..* Medical History Disease name Treatment process 1 1 Appointment Date Time Location Reason 0..* 0..* makes November 18 OOD - SET.HUST

Class Diagram Syntax CLASS Tên lớp -Thuộc tính +Phương thức () ATTRIBUTE OPERATION ASSOCIATION Tên lớp -Thuộc tính +Phương thức () Tên thuộc tính /Tên thuộc tính dẫn xuất Tên phương thức () 1..* 0..1 ______verb phrase____ November 18 OOD - DEI.FET.HUT

More on Attributes Derived attributes Visibility of attributes Các thuộc tính được tính/ suy ra từ thuộc tính khác Ví dụ: /age, có thể được tính từ thuộc tính birthdate Visibility of attributes + Public # Protected – Private Default is private November 18 OOD - DEI.FET.HUT

More on Operations Constructor Query Update Creates object Makes information about state available Update Changes values of some or all attributes November 18 OOD - DEI.FET.HUT

More on Relationships Ý nghĩa các mối quan hệ giữa lớp với lớp Các quan hệ theo số lượng (multiplicity) exactly one: 1 zero or more: 0..* one or more: 1..* zero or one: 0..1 specified range: m..n multiple disjoint ranges: 1..i,j Định hướng (navigator) Vai trò (role) Lớp liên kết (Association class) m n <Role> <name> Attr(s) November 18 OOD - DEI.FET.HUT

Relationship Multiplicity Exactly one Zero or more One or more Zero or one Specified range Disjoint ranges Dept Boss 1 Employee Child 0..* Boss Employee 1..* Employee Spouse 0..1 Employee Vacation 2..4 Employee Committee 1..3, 5 November 18 OOD - DEI.FET.HUT

Generalization and Aggregation Tổng quát hóa chỉ ra rằng lớp con được thừa kế từ lớp cha. Doctors, nurses, admin personnel are kinds of employees Lớp “bao hàm” bao gồm các lớp khác Health team class comprised of doctor, nurses, admin personnel classes Toàn thể/ bộ phận (aggregation) Hợp thành (composition) November 18 OOD - DEI.FET.HUT

Đơn giản hóa sơ đồ lớp Cơ chế khung nhìn: thể hiện một phần thông tin Khung nhìn dựa vào các use case cụ thể Khung nhìn chỉ dựa vào quan hệ hoặc quan hệ cụ thể Khung nhìn dựa vào một phần thông tin, ví dụ: chỉ thể hiện tên lớp, tên thuộc tính hay tên phương thức. Sử dụng packages Nhóm các lớp (hay bất kỳ phần tử UML nào) lại thành các packages November 18 OOD - DEI.FET.HUT

Object Diagrams Một loại khung nhìn tĩnh khác Một thể hiện của sơ đồ lớp Dùng để xem xét các lớp cụ thể November 18 OOD - DEI.FET.HUT

Object Diagrams November 18 OOD - DEI.FET.HUT

CREATING CRC CARDS AND CLASS DIAGRAMS

Nhận diện đối tượng 3 phương pháp phổ biến: Phân tích nguyên văn Danh sách các đối tượng phổ biến Sử dụng các mẫu November 18 OOD - DEI.FET.HUT

Object Identification Phân tích thông tin về use-case (sử dụng use case description) Nhận diện các lớp thông qua các danh từ Nhận diện phương thức thông qua động từ Quá đơn giản nhưng là bước chỉnh sửa đầu tiên của sơ đồ cấu trúc (Simplistic but good for first rough cut) Danh sách đối tượng phổ biến Vật tự nhiên và hữu hình Biến cố (Incidents) Vai trò (Roles) Các mẫu Dùng để nhóm các lớp xuất hiện ở các tình huống khác nhau November 18 OOD - DEI.FET.HUT

Steps for Object Identification and Structural Modeling 1.Tạo CRC cards bằng việc thực hiện phân tích nguyên văn các use-case 2. Nếu dùng phương pháp danh sách đối tượng phổ biến: Cần tìm và thêm vào các lớp, thuộc tính, phương thức, và quan hệ. 3. Sử dụng CRC cards “Phân vai” cho mỗi use-case. 4. Vẽ sơ đồ lớp dựa trên các CRC cards. 5. Xem lại mô hình cấu trúc để phát hiện các lớp, thuộc tính, phương thức, quan hệ còn thiếu hoặc không cần thiết. 6. Kết hợp các mẫu hữu ích 7. Duyệt lại mô hình cấu trúc November 18 OOD - DEI.FET.HUT

Application Example: CD Selections

Step 1. Create CRC cards by performing textual analysis on the use-cases Textual Analysis: Nouns suggest classes November 18 OOD - DEI.FET.HUT

Step 1. Create CRC cards by performing textual analysis on the use-cases Textual Analysis: Nouns suggest classes Textual Analysis Results: Identified potential classes Customer Search Request CD CD List Review (i.e., CD review information) If further analyse the Maintain Order and Checkout use cases, further potential classes will be identified such as Order Order Item Credit card centre etc November 18 OOD - DEI.FET.HUT

Step 1. Create CRC cards by performing textual analysis on the use-cases Textual Analysis: Verbs suggest operations: For each identified class, check the related verbs to identify the operations as well as the relationships with other classes November 18 OOD - DEI.FET.HUT

This forms the front of “Customer class” CRC Card Step 1. Create CRC cards by performing textual analysis on the use-cases Textual Analysis: Verbs suggest operations: Textual Analysis Result: For Customer Class, the identified operations (i.e., Responsibilities) and the relationship with other classes (i.e., Collaborators) are Make Search request Search request Place Order Order Credit Card Centre Get Credit Card Info Exit Select CD for Info CD List Not include as it can be included in Search request This forms the front of “Customer class” CRC Card November 18 OOD - DEI.FET.HUT

Order; Search request; Credit Card Centre Step 1. Create CRC cards by performing textual analysis on the use-cases Textual Analysis Result: Combine “nouns and verbs” analysis, the back of “Customer class” CRC Card can be Order; Search request; Credit Card Centre November 18 OOD - DEI.FET.HUT

Step 2 and 3. Examine Common Object Lists and Role-play the CRC Cards Brainstorm additional candidate classes, attributes, operations, and relationships by using the common object list approach. Role-play each use-case using the CRC cards. Possible outcomes: Search request class need having 3 sub-classes: Title Search, Artist Search and Category Search November 18 OOD - DEI.FET.HUT

Step 4. Create the Class Diagram based on the CRC Cards Exercise. Suppose the CRC card of Customer class is given as before, create the class diagram based on it. For customer class, assume that all attributes are private type whereas all operations are public type For other associate classes, only the class names and the relationships with the customer class need to be given November 18 OOD - DEI.FET.HUT

Class name: Customer Make Search request Search request Place Order Credit Card Centre Get Credit Card Info Exit Select CD for Info CD List Not include as it can be included in Search request November 18 OOD - DEI.FET.HUT

Step 4. Create the Class Diagram based on the CRC Cards Solution: Credit Card Centre Order Customer 0..* 1 -First name -Middle initial Last name …… 0..* place -> Check -> 0..* +Make search req() +Place order() +Get credit info() +Exit() Search Reg 0..* 0..* Make -> November 18 OOD - DEI.FET.HUT

Step 5, 6 and 7: Review Classes Diagrams, Incorporate Patterns, and Review the Model Review the class diagrams and structural model for any missing and/or redundancy Incorporate useful patterns. One possible pattern Review the structural model. November 18 OOD - DEI.FET.HUT

Summary CRC cards capture the essential elements of a class. Class and object diagrams show the underlying structure of an object-oriented system. Constructing the structural model is an iterative process involving: textual analysis, brainstorming objects, role playing, creating the diagrams, and incorporating useful patterns. November 18 OOD - DEI.FET.HUT