Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
Trang 1Gv: Vũ Thị Dương Email: duongvt01@gmail.com
KHOA CÔNG NGHỆ THÔNG TIN
Trường Đại học công nghiệp Hà Nội
PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
Trang 2Nội dung chi tiết
1. Các khái niệm hướng đối tượng
2. Tổng quan về ngôn ngữ mô hình hóa UML
3. UML trong tiến trình phát triển phần mềm
4. Mô hình hóa yêu cầu (biểu đồ ca sử dụng)
5. Mô hình hóa lĩnh vực ứng dụng (biểu đồ lớp lĩnh vực)
6. Mô hình hóa hành vi( biểu đồ tương tác, trạng thái)
7. Biểu đồ kiến trúc vật lý và phát sinh mã trình
8. Mô hình hóa dữ liệu
Trang 3Giới thiệu Ngôn ngữ mô hình hóa thống nhất
Bài 2
Trang 4Mô hình là gì?
Mô hình (Model)
Là sự đơn giản hóa của hệ thống thực MHH có thể bức tranh hay mô
tả vấn đề đang cố gắng giải quyết hay mô tả chính giải pháp vấn đề
là ngôn ngữ của người thiết kế (trong nhiều lĩnh vực)
là trình diễn hệ thống sẽ xây dựng
là phương tiện giao tiếp giữa các stakeholders
là kế hoạch chi tiết (blueprints)
Trang 5Khái niệm mô hình hóa
Mô hình hóa (modeling) là quá trình dùng mô hình để diễn
tả hệ thống
Tại sao phải mô hình hóa?
1 Mô hình hóa để hiểu vấn đề (dễ nhận thức)
2 MHH để trao đổi (phương tiện giao tiếp giữa những người phát triển)
3 MHH để hoàn chỉnh( dễ dàng nhận sự phù hợp giữa mô hình và nhu cầu để cải tiến, hoàn thiện)
Ngôn ngữ mô hình hóa là ngôn ngữ mô tả hệ thống hay tác nghiệp
Trang 8Mô hình hóa trực quan?
Computer System Business Process
Order
Item
Ship via
“Modeling captures essential
parts of the system.”
Dr James Rumbaugh
Visual Modeling is modeling
using standard graphical
notations
Trang 9Các nguyên tắc mô hình hóa
Trang 10Một số phương pháp MHH HĐT
OOD- Object Oriented Design
OOSE- object Oriented Software Engineering
OMT- Object Modeling Technique
Trang 11OOD- Object Oriented Design
Phương pháp này được phát triển bởi Booch Nó bao gồm
Trang 12OOSE- object Oriented Software Engineering
Phương pháp được phát triển bởi Jacobson
5 mô hình
Mô hình yêu cầu – kịch bản sủ dụng
Mô hình phân tích- mức khái niện
Mô hình thiết kế - mức logic
Mô hình mã hóa – mức vật lý
Mô hình kiểm thử
Trang 13OMT- Object Modeling Technique
Phương pháp được phát triển bởi Rumbaugh
Trang 14 Cuối năm 1995, Jacobson tham gia nhóm của họ và
6/1996 phiên bản UML v0.9 ra đời
Trang 15Lịch sử phát triển UML
1996: Hội thảo đầu tiên về UML được tổ chức
1997 phiên bản v1.0 được đề xuất như chuẩn đối với tổ chức OMG (Object management Group)
8/1998 UML v1.3 được phát hành bởi OMG
Trang 16Ngôn ngữ mô hình hóa thống nhất
UML stands for Unified Modeling Language
Trang 18Contributions to the UML
Trang 19UML – một ngôn ngữ
Cung cấp từ vựng, cú pháp và ngữ nghĩa để mô
tả sự giao tiếp
Là một ngôn ngữ mà trong đó từ vựng và luật
được sử dụng để mô tả mức khái niện và mức vật
lý của một hệ thống
UML cung cấp từ vựng và luật để mô tả các mô hình khác nhau của một hệ thống
Trang 20Khái quát về UML
UML là ngôn ngữ để
Visualizing – mô hình hóa trực quan
Specifying – đặc tả
Constructing – xây dựng
Documenting – làm tài liệu
Nó có thể sử dụng trong mọi tiến trình, xuyên suốt vòng đời phát triển và trải qua các công nghệ cài đặt khác
nhau
Trang 21UML- ngôn ngữ để mô hình hóa trực quan
UML cung cấp 1 tập các ký hiệu và luật để biểu diễn đồ họa những mô hình của hệ thống
Biểu diễn đồ họa thường đem lại cái nhìn tốt hơn
về hệ thống
Trang 22UML – ngôn ngữ để đặc tả
Một đặc tả là một mô tả chính xác và không nhập nhằng về hệ thốn g
UML cung cấp các công cụ để đặc tả hệ thống ở nhiều mức: Phân tích, thiết kế, cài đặt
Trang 23UML- ngôn ngữ để xây dựng
Các mô hình UML có thể được chuyển sang 1
ngôn ngữ lập trình khá dễ dàng
UML là khá chính xác và không nhập nhằng để cho phép thực hiện các mô phỏng
Trang 24UML- ngôn ngữ để lập tài liệu
UML cho phép mô tả tất cả các bước xây dựng một hệ thống
Các mô hình được xây dựng tạo nên một tài liệu đầy đủ và chính xác về hệ thống
Trang 25Khái quát về UML
Mô hình hóa các phần tử
Các quan hệ
Cơ chế mở rộng
Các biểu đồ
Trang 27Các quan hệ
Dependency – phụ thuộc ( mũi tên đứt nét)
Association – kết hợp (đoạn thẳng với bội, bản số
Trang 28Cơ chế mở rộng
Khuôn dập-Stereotype
Giá trị - Tagged value
Ràng buộc-Constraint
Trang 29Models and Diagrams
Use Case Diagrams
Object Diagrams
Activity Diagrams
Models
Trang 30Các biểu đồ- Diagrams
Biểu đồ là cách diễn tả hệ thống theo một góc nhìn
Thể hiện cách nhìn từ góc độ của người tham gia
Cung cấp 1 trình diễn cụ thể của hệ thống
Về mặt ngữ nghĩa thì mỗi biểu đồ có thể sẽ khác nhau đối với cách nhìn khác nhau
Trong UML có 9 biểu đồ cơ bản
Tĩnh: use case, class, object, component, deployment
Động: sequence, collaboration, statechart, activity
A diagram is a view into a model
Presented from the aspect of a particular stakeholder
Provides a partial representation of the system
Is semantically consistent with other views
In the UML, there are nine standard diagrams
Static views: use case, class, object, component, deployment
Dynamic views: sequence, collaboration, statechart, activity
Trang 31Kiến trúc hệ thống UML
Logical View ( Góc nhìn logic)
System topology Delivery, installation Communication
System engineering
Use Case View
Trang 32Góc nhìn Hệ thống
Góc nhìn người sử dụng (use case).Mô tả hệ thống dưới góc nhìn của người sử dụng đầu cuối và người sở hữu
Mô tả các mục tiêu và mục đích của hệ thống
Mô tả các chức năng của hệ thống
Góc nhìn logic- mô tả mặt tĩnh và cấu trúc của hệ thống
Góc nhìn hành vi- mô tả mặt động của hệ thoongs (tương tác giữa các phần tử của hệ thống)
Góc nhìn cài đặt – mô tả thực hiện giải phấp- mã chương trình
Góc nhìn triển khai- mô tả các phần tử vật lý của giải pháp (bộ xử lý, thiết bị)
Trang 33Cần bao nhiêu khung nhìn?
Mô hình phù hợp với ngữ cảnh phát triển hệ thống
Không phải tất cả các mô hình đòi hỏi đầy đủ khung nhìn
Đơn xử lý: Bỏ qua khung nhìn triển khai
Đơn tiến trình: Bỏ qua khung nhìn tiến trình
Chương trình rất nhỏ: Bỏ qua khung nhìn cài đặt
Bổ sung các khung nhìn
Data view
Security view
Trang 34 Mô hình hóa hành vi đối tượng bằng state transition diagrams
Biểu thị kiến trúc cài đặt vật lý bằng component & deployment diagrams
Mở rộng các chức năng bằng stereotypes
Trang 35 Sinh viên ( Student ) chọn 4 môn học chính và 2 môn dự bị
Khi sinh viên đăng ký học thì hệ thống thanh toán ( billing system )
in hóa đơn học phí cho sinh viên
Sinh viên có thể sử dụng hệ thống để bổ sung/loại bỏ môn học sau khi đã đăng ký (trong khoảng thời gian cố định)
Giáo sư ( Professors ) sử dụng hệ thống để xem bảng phân công dạy học ( course rosters )
Người sử dụng hệ thống đăng ký được cấp passwords để vào máy
Trang 36Biểu đồ ca sử dụng
Biểu đồ use case dùng để mô tả tập hợp các ca sử
dụng, các tác nhân và những mối quan hệ giữa chúng
Các biểu đồ này mô tả cái nhìn tĩnh về hệ thống dưới con mắt của người sử dụng
Các biểu đồ này rất quan trọng để nắm bắt chức năng của hệ thống
Biểu đồ được tạo bởi người phân tích TK hay các
chuyên gia của hệ thống
Trang 37Biểu đồ ca sử dụng
Student
Registrar
Professor Maintain Schedule
Maintain Curriculum Request Course Roster
Billing System
Trang 38Biểu đồ tuần tự- Sequence Diagram
Mô tả sự trao đổi các thông điệp giữa các đối tượng dựa theo thời gian
Trang 39Biểu đồ tuần tự
: Student registration
form
registration manager math 1011: fill in info
2: submit
3: add course(joe, math 01)
4: are you open?
5: are you open?
6: add (joe)
7: add (joe)
math 101 section 1
Trang 40Biểu đồ tương tác- Collaboration Diagram
Mô tả sự trao đổi các thông điệp giữa các đối tượng dựa theo cấu trúc quan hệ giữa chúng
Trang 41Biểu đồ tương tác- Collaboration Diagram
: Registrar
course form : CourseForm
theManager : CurriculumManager aCourse :
Trang 42Biểu đồ lớp
Mô tả tập hợp các lớp và các tương tác giữa chúng
Các biểu đồ lớp mô tả cấu trúc tĩnh của hệ thống
Tạo bởi: analysts, designers, and implementers
Trang 43Biểu đồ lớp- Class Diagram
addStudent(Course, StudentInfo)
name numberCredits
open() addStudent(StudentInfo) major
location
open() addStudent(StudentInfo) tenureStatus
ScheduleAlgorithm
1 0 *
0 4 1
Trang 44Biểu đồ đối tượng- Object Diagram
Mô tả tập hợp các đối tượng và quan hệ giữa chúng
Các biểu đồ này mô tả cùng các thông tin như biểu
đồ lớp nhưng dưới cách nhìn của các thể hiện lớp
Developed by analysts, designers, and implementers
Trang 45Biểu đồ trạng thái: State Transition Diagram
Biểu diễn máy trạng thái- chuyển tiếp sự kiện và
Trang 46Biểu đồ trạng thái: State Transition Diagram
do: Initialize course
do: Finalize course do: Notify registered students
Add Student / Set count = 0
Add student [count < 10]
[count = 10]
Cancel
Cancel
Cancel
Trang 47Biểu đồ hoạt đông -Activity Diagram
Mô tả luồng thông tin
từ 1 hoạt động này đến
1 họat động khác
Mô tả cài nhìn động về
hệ thống
Trang 48Biểu đồ thành phần - Component Diagram
Chỉ ra tổ chức và sự phụ thuộc giữa các thành phần của
Trang 49Biểu đồ thành phần - Component Diagram
Billing System
Trang 50Biểu đồ triển khai - Deployment Diagram
Mô tả các nút và các thành phần của hệ thống tại thời điểm thực thi
Developed by architects, networking engineers, and system engineers
Trang 51Biểu đồ triển khai- Deployment Diagram
Registration Database
Library
Dorm
Main Building
Trang 52Biểu đồ triển khai-Deployment Diagram
Client
Server
Application Server
Fulfillment
System
Financial System
Inventory System
RDBMS Server
Dynamic HTML, JavaScript, Java plug-ins, source code enhancements
Java, C, C++, JavaScript, CGI
Java, C, C++, JavaBeans, CORBA, DCOM
Native languages
Trang 53Góc nhìn và biểu đồ
Logical View ( Góc nhìn logic)
Biểu đồ lớp, bd đối tượng
Implementation View (Góc nhìn cài đặt)
System topology Delivery, installation Communication
BD triển khai
Use Case View
- Biểu đồ ca sử dụng
Trang 54Tóm tắt
Các vấn đề đã nghiên cứu
Khái niệm mô hình, mô hình hóa trực quan
Khái quát về Ngôn ngữ mô hình hóa thống nhất
Thí dụ sử dụng các biểu đồ của UML