Trường Đại học công nghiệp Hà Nội
KHOA CÔNG NGHỆ THÔNG TIN
PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG
Gv: Vũ Thị Dương Email: duongvt01@gmail.com
Nộ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
2010 Phân tích thiết kế hướng đối tượng Bài 1 - 2
Bài 2 Giới thiệu Ngôn ngữ mô hình hóa thống nhất
Mô 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)
Phân tích thiết kế hướng đối tượng Bài 2 - 4/43
Khá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
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
Tại sao phải mô hình hóa?
Phân tích thiết kế hướng đối tượng Bài 2 - 5/43
Thí dụ mô hình
Mô hình: Quả địa cầu học sinh
Thế giới thực
Thế giới thực
Làm chủ
Đọc
Sách
Con người
Ôtô
Mô hình
Phân tích thiết kế hướng đối tượng Bài 2 - 6/43
Thí dụ mô hình
A model is a complete description of a system from a particular perspective
Phân tích thiết kế hướng đối tượng Bài 2 - 7/43
Mô hình hóa trực quan?
Order
“Modeling captures essential parts of the system.” Dr. James Rumbaugh
Item
Ship via
Business Process
Computer System
Visual Modeling is modeling using standard graphical notations
Phân tích thiết kế hướng đối tượng Bài 2 - 8/43
Các nguyên tắc mô hình hóa
Chọn mô hình thích hợp
Góc nhìn csdl: mô hình thực thể liên kết
Góc nhìn cấu trúc: thuật toán
Góc nhìn hđt: lớp và các mối quan hệ
Các mô hình được thể hiện nhiều mức chính xác khác
nhau
Hệ thống được diễn tả ở các mức chi tiết khác nhau tùy theo
nhu cầu người sử dụng
Các mô hình phải liên hệ với thế giới thực
Phân tích thiết kế hướng đối tượng
Một số phương pháp MHH HĐT
OOD- Object Oriented Design OOSE- object Oriented Software Engineering OMT- Object Modeling Technique
Phân tích thiết kế hướng đối tượng Bài 2 - 10/43
OOD- Object Oriented Design
Phương pháp này được phát triển bởi Booch. Nó bao gồm
2 loại chính Mô hình tĩnh Biểu đồ lớp Biểu đồ đối tượng
Mô hình động
Biểu đồ trạng thái Biểu đồ thời gian
Phân tích thiết kế hướng đối tượng
OOSE- 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ử
Phân tích thiết kế hướng đối tượng Bài 2 - 12/43
OMT- Object Modeling Technique
Phương pháp được phát triển bởi Rumbaugh Ba mô hình
Mô hình tĩnh
Mô hình thực thể quan hệ
Mô hình động
Biểu đồ trạng thái và chuyển tiếp
Mô hình chức năng
Dựa trên biểu đồ luồng dữ liệu
Phân tích thiết kế hướng đối tượng Bài 2 - 13/43
Lịch sử phát triển UML
1975-1990
Nhiều ngôn ngữ mô hình hóa HĐT được phát triển
1990-1994
Hơn 50 phương pháp phát triển HĐT trong đó có 3 phương pháp
kể trên
10/1994 Rumbaugh và Booch tiến hàn hành dự án UML ở
Rational
10/1995 phiên bản đầu tiên của phương pháp hợp nhất ra
đời
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
Phân tích thiết kế hướng đối tượng Bài 2 - 14/43
Lị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
Phân tích thiết kế hướng đối tượng Bài 2 - 15/43
Ngôn ngữ mô hình hóa thống nhất
UML 1.3
OMG Acceptance, Nov 1997
Final submission to OMG, Sep ‘97
UML 1.1
First submission to OMG, Jan ´97
public feedback
UML partners
UML 1.0
June ´96
UML 0.9
June 12, 2003 UML 2.0
OOPSLA ´95
Unified Method 0.8
Booch method
OMT
OOSE
Other methods
UML stands for Unified Modeling Language
Phân tích thiết kế hướng đối tượng Bài 2 - 16/43
UML Partners
Rational Software Corporation Hewlett-Packard
I-Logix IBM ICON Computing Intellicorp
MCI Systemhouse Microsoft ObjecTime Oracle Platinum Technology Taskon Texas Instruments/Sterling Software Unisys
Phân tích thiết kế hướng đối tượng Bài 2 - 17/43
Contributions to the UML
Gamma, et al
Harel Statecharts
Frameworks and patterns,
Meyer Before and after conditions
HP Fusion Operation descriptions and message numbering
Booch Booch method
Embley
Singleton classes and high-level view
Rumbaugh Object Modeling Technique
Wirfs-Brock Responsibilities
Jacobson Object-Oriented Software Engineering
Odell Classification
Shlaer - Mellor Object lifecycles
Phân tích thiết kế hướng đối tượng Bài 2 - 18/43
UML – 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
Phân tích thiết kế hướng đối tượng Bài 2 - 19/43
Khá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.
Phân tích thiết kế hướng đối tượng Bài 2 - 20/43
UML- 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
Phân tích thiết kế hướng đối tượng Bài 2 - 21/43
UML – 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ống
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
Phân tích thiết kế hướng đối tượng Bài 2 - 22/43
UML- 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
Phân tích thiết kế hướng đối tượng Bài 2 - 23/43
UML- 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
Phân tích thiết kế hướng đối tượng Bài 2 - 24/43
Khá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 đồ
Phân tích thiết kế hướng đối tượng Bài 2 - 25/43
Mô hình hóa các phần tử
Các phần tử cấu trúc
class, interface, collaboration, use case, active class, component, node
interaction, state machine
Nhóm các phần tủ
package, subsystem
Các phần tử khác
note
Các phần tử hành vi
Phân tích thiết kế hướng đối tượng Bài 2 - 26/43
Cá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ố
và vai trò)
Generalization – khái quát hóa- thừa kế (mũi tên
rỗng liền nét
Realization – cài đặt – mũi tên rỗng nét đứt
Phân tích thiết kế hướng đối tượng Bài 2 - 27/43
Cơ chế mở rộng
Khuôn dập-Stereotype Giá trị - Tagged value Ràng buộc-Constraint
Phân tích thiết kế hướng đối tượng Bài 2 - 28/43
Models and Diagrams
Class Diagrams
Use Case Diagrams
Object Diagrams
Sequence Diagrams
Component Diagrams
Scenario Scenario Diagrams Collaboration Diagrams Diagrams
Models
Deployment Diagrams
Scenario Scenario Diagrams Statechart Diagrams Diagrams
Activity Diagrams
Phân tích thiết kế hướng đối tượng Bài 2 - 29/43
Cá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
Phân tích thiết kế hướng đối tượng Bài 2 - 30/43
Kiến trúc hệ thống UML
Implementation View (Góc nhìn cài đặt)
Logical View (Góc nhìn logic)
End-user
Functionality
Programmers Software management
Use Case View
Process View (Góc nhìn quá trình)
System integrators Performance Scalability Throughput
Deployment View (Góc nhìn triển khai) System engineering System topology Delivery, installation Communication
Conceptual
Physical
Phân tích thiết kế hướng đối tượng Bài 2 - 31/43
Gó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ị)
Phân tích thiết kế hướng đối tượng Bài 2 - 32/43
Cầ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
Phân tích thiết kế hướng đối tượng Bài 2 - 33/43
UML Concepts
UML được sử dụng để:
Hiển thị biên hệ thống và các chức năng chính của nó bằng ca sử
dụng -use cases và các tác nhân- actors
Mô tả hiện thực use case bằng biểu đồ tương tác- interaction
diagrams
Biểu diễn các cấu trúc tĩnh của hệ thống bằng biểu đồ lớp- class
diagrams
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
Phân tích thiết kế hướng đối tượng Bài 2 - 34/43
Thí dụ ứng dụng UML
Một trường đại học thực hiện tin học hóa hệ thống đăng
ký học và dạy học: Giáo vụ (Registrar) lập chương trình giảng dạy (curriculum) cho
một học kỳ
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
Phân tích thiết kế hướng đối tượng Bài 2 - 35/43
Biể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
Phân tích thiết kế hướng đối tượng Bài 2 - 36/43
Biểu đồ ca sử dụng
Request Course Roster
Student
Professor
Maintain Schedule
Billing System
Maintain Curriculum
Registrar
Phân tích thiết kế hướng đối tượng Bài 2 - 37/43
Biể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
Phân tích thiết kế hướng đối tượng Bài 2 - 38/43
Biểu đồ tuần tự
math 101
: Student
registration form
registration manager
math 101 section 1
1: 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)
Phân tích thiết kế hướng đối tượng Bài 2 - 39/43
Biể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
Phân tích thiết kế hướng đối tượng Bài 2 - 40/43
Biểu đồ tương tác- Collaboration Diagram
course form : CourseForm
1: set course info 2: process
3: add course
: Registrar
theManager : CurriculumManager
aCourse : Course
4: new course
Phân tích thiết kế hướng đối tượng Bài 2 - 41/43
Biể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
Phân tích thiết kế hướng đối tượng Bài 2 - 42/43
Biểu đồ lớp- Class Diagram
ScheduleAlgorithm
RegistrationForm
0..*
RegistrationManager
1
addStudent(Course, StudentInfo)
Course
1
name numberCredits
0..*
Student
open() addStudent(StudentInfo)
major
1
3..10
Professor
4
1..* CourseOffering
tenureStatus
location
1
0..4
open() addStudent(StudentInfo)
Phân tích thiết kế hướng đối tượng Bài 2 - 43/43
Biể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
Phân tích thiết kế hướng đối tượng Bài 2 - 44/43
Biể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à
hoạt động
Những biểu đồ này mô tả cái nhìn động về hệ
thống
Các biểu đồ này dùng để hiểu rõ hành vi của hệ
thống
Phân tích thiết kế hướng đối tượng Bài 2 - 45/43
Biểu đồ trạng thái: State Transition Diagram
Add student [count < 10]
Add Student / Set count = 0
Initialization do: Initialize course
Open entry: Register student exit: Increment count
Cancel
Cancel
[count = 10]
Canceled do: Notify registered students
Cancel
Closed do: Finalize course
Phân tích thiết kế hướng đối tượng Bài 2 - 46/43
Biể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
Phân tích thiết kế hướng đối tượng Bài 2 - 47
Biể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
hệ thống
Các biểu đồ Thành phần mô tả cái nhìn tĩnh về sự cài
đặt của hệ thống
Developed by architects and programmers
Phân tích thiết kế hướng đối tượng Bài 2 - 48
Biểu đồ thành phần - Component Diagram
Register.exe
Billing.exe
Billing System
People.dll
User
Course.dll
Course
Professor
Student
Course
Course Offering
Phân tích thiết kế hướng đối tượng Bài 2 - 49
Biể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
Phân tích thiết kế hướng đối tượng Bài 2 - 50
Biểu đồ triển khai- Deployment Diagram
Registration
Database
Library
Main Building
Dorm
Phân tích thiết kế hướng đối tượng Bài 2 - 51
Biểu đồ triển khai-Deployment Diagram
Client
Dynamic HTML, JavaScript, Java plug-ins, source code enhancements
Java, C, C++, JavaScript, CGI
Server
Application Server
Java, C, C++, JavaBeans, CORBA, DCOM
Native languages
Fulfillment System
Financial System
Inventory System
RDBMS Server
Phân tích thiết kế hướng đối tượng Bài 2 - 52
Góc nhìn và biểu đồ
Logical View (Góc nhìn logic)
Implementation View (Góc nhìn cài đặt)
BD gói, thành phần
Biểu đồ lớp, bd đối tượng
Use Case View - Biểu đồ ca sử dụng
Deployment View (Góc nhìn triển khai)
Process View (Góc nhìn hành vi)
BD trạng thái, hoạt động, tuần tự, cộng tác Performance Scalability Throughput
BD triển khai System topology Delivery, installation Communication
Phân tích thiết kế hướng đối tượng Bài 2 - 53
Tó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
Phân tích thiết kế hướng đối tượng Bài 2 - 54/43