Giới thiệu
Giới thiệu
UML
UML
Phân tích thiết kế hệ thống
07/12/14
PTTKHT - UML
2/16
N
N
ội dung
ội dung
•
Các khái niệm về phân tích thiết kế hướng
đối tượng
•
Giới thiệu UML
•
Nhận xét.
07/12/14
PTTKHT - UML
3/16
Một số khái niệm
Một số khái niệm
•
Phân tích hướng đối tượng (Object Oriented
Analysis – OOA)
–
Giai đoạn xây dựng một cách rõ ràng, chính xác mô hình
cho vấn đề theo ý nghĩa của thế giới thực sao cho NSD
có thể hiểu được
•
Thiết kế hướng đối tượng (Object Oriented Design
– OOD)
–
Giai đoạn tổ chức chương trình thành một tập các lớp.
Các lớp có thể nằm trong một cây kế thừa.
•
Lập trình hướng đối tượng (Object Oriented
Programming – OOP)
– Giai đoạn cài đặt các lớp đã được thiết kế bằng một
ngôn ngữ hướng đối tượng (C++, Java, C#, Delphi )
07/12/14
PTTKHT - UML 4/16
Một số khái niệm (tt)
Một số khái niệm (tt)
•
Phân tích hướng đối tượng vấn đề được mô hình
hoá:
–
Theo ngữ nghĩa của thế giới thực
–
Qua các đối tượng sống của thế giới thực
–
Sao cho những người không phải là lập trình viên cũng có thế
dễ dàng hiểu được
•
Thiết kế hướng đối tượng ánh xạ các đối tượng ở
bước phân tích vào bản thiết kế
bản thiết kế gần gũi đến mức tối đa với thế giới thực
ưu điểm của PTTK HĐT
Cho phép mô hình hoá các thực thể của thế giới thực, thể
hiện trung thực cấu trúc, quan hệ và tính chất hoạt động của
chúng.
07/12/14
PTTKHT - UML
5/16
Ví dụ
Ví dụ
• Bài toán bán xe máy, bước phân tích xác định
các kiểu thực thể:
– Khách hàng
–
Người bán hàng
–
Lần mua xe
–
Chiếc xe
• Các tương tác liên quan là:
–
Người bán hàng giới thiệu xe cho khách hàng
–
Khách hàng chọn một chiếc xe
– Khách hàng nêu yêu cầu mua xe
–
Khách hàng trả tiền
–
Chiếc xe được giao cho khách.
07/12/14
PTTKHT - UML
6/16
Ví dụ (2)
Ví dụ (2)
•
Bước thiết kế, các lớp được xác định là:
–
Khách hàng
–
Người bán hàng
–
Chiếc xe
Các phương thức là:
–
Khách hàng
•
Yêu cầu mua xe
• Chọn xe
•
Thanh toán
•
Nhận xe
–
Người bán hàng:
•
Giới thiệu xe
•
Lập phiếu bán hàng
• Giao xe.
07/12/14
PTTKHT - UML
7/16
Ưu điểm của PTTK HĐT
Ưu điểm của PTTK HĐT
•
Tiếp cận các tiến trình phân tích, thiết kế,
cài đặt theo ngữ nghĩa của thế giới thực, sát
với các khái niệm của lĩnh vực áp dụng, gần
gũi với tư duy, nhận thức của con người
•
Ví dụ trong bài toán của bán xe, tất cả các
bước phân tích, thiết kế và cài đặt đều nói
về Khách hàng, Người bán hàng, Chiếc xe,
Mua xe
•
Cho phép dễ sử dụng lại các đối tượng khi
xây dựng ứng dụng mới
Giảm lỗi vì các đối tượng đã được kiểm tra, thử
nghiệm
Tăng tốc độ phát triển ứng dụng.
Lịch sử phát triển
•
Vào những năm 1980s-các bước đầu tiên của lập
trình hướng đối tượng:
– Smalltalk được chính thức chuyển từ phòng thí nghiệm
ra phổ dụng
– C++ được sinh ra
• Chuyển từ phương thức phân tích và thiết kế theo
kiểu chức năng sang phương thức hướng đối
tượng
•
Các phương thức hướng đối tượng được phát triển
vào những năm 1980s và gĩưa 1990s
Lịch sử phát triển
Chuẩn hóa phương thức
•
1994- các phương thức đã gần như hoàn chỉnh,
và tương tự nhau:
– Cùng khái niệm concepts: objects, classes,
relationships, attributes, etc.
– Cùng khái niệm nhưng lại dùng kí hiệu (notation) khác
nhau
– Mỗi phương thức đều có các mặt mạnh và yếu
• Yêu cầu chuẩn hóa:
– Nhóm OMG (Object Management Group) thử và thất bại
Phương thức được hợp nhất
•
Sự kiện lớn vào năm 1994- James Rumbaugh liên
kết với Grady Booch thành lập Rational Software
Corporation
•
Vào thời gian đầu, là một hợp nhất của 2 phương
pháp:
– Booch và OMT (Object Modelling Technique)
•
Phương pháp này được gọi là Unified Method
•
1995- Rational thông báo rằng đã mua Ivar ,
Jacobson’s method Objectory. Jacobson muốn
liên kết với Rational Software Corporation
07/12/14
PTTKHT - UML
Inputs to UML
Fusion
Operation descriptions,
Message numbering
Meyer
Before and after
conditions
Harel
State charts
Wirfs-Brock
Responsibilities
Embley
Singleton classes,
High-level view
Odell
Classification
Shlaer - Mellor
Object Lifecycles
Gamma, et.al
Frameworks, patterns,
notes
Booch
Jacobson
Rumbaugh
3 nhân vật quan trọng
•
Grady Booch
–
Làm việc cho ADA, sau đó là US Air Force Academy
– Giám đốc khoa học của RSC
• Jame Rumbaugh
–
Nhân vật đứng đầu của General Electric
–
Tác giả của cuốn Object Modelling Technique
•
Ivar Jacobson
–
Làm cho Ericson, sau đó sở hữu công ty Objective System ở
Thụy Điển
–
Là “father” của Use Case
Hợp nhất
•
Ba nhân vật nói trên chuyển tên của “Unified
method” thành “Unified Modelling Language”
–
Version 1.0 vào tháng 1 năm 1997
•
Mục đích của UML được phát biểu:
– Mô hình các hệ thống (không chỉ là phần mềm) bằng
cách sử dụng các khái niệm hướng đối tượng
– Thiết lập các hiện thực với khái niệm
–
Hướng tới các kế thừa phức tạp trong các hệ thống
–
Tạo ra một ngôn ngữ mô hình khả dụng cho cả người và
máy
Công bố UML
•
Một cách duy nhất để giành được sự chấp thuận
của các phương pháp khác là đem UML ra cộng
đồng
•
Năm 1996: thiết lập cộng đồng UML
– Dưới sự lãnh đạo của Rational SC
– Một số công ty lớn khác như: I-Logic, Intellicorp, IBM,….
Động cơ thúc đẩy sử dụng UML
•
Microsoft
•
Oracle
• IBM
•
DEC
•
HP
•
TI
•
Unisys
•
I-Logix
•
IntelliCorp
•
Softteam
•
Sterling Software
• ICON Computing
• MCI Systemhouse
•
ObjectTime
•
Platium Technology
• Ptech
• Reich Technologies
Sự chấp nhận UML - Những tập đoàn thành
viên (cộng tác) của UML
Các hoạt động tiến tới chuẩn hóa
•
Mục đích căn nguyên của UML là để trở thành
một chuẩn trên thực tế (không chính thức)
– “chấp thuận” bằng cách được sử dụng rộng rãi
• Nhưng OMG muốn có một chuẩn thực sự:
– Yêu cầu một chuẩn hoá chính thức hơn là chỉ được sử
dụng trên thực tế
– Các định nghĩa rõ ràng của cú pháp và ngữ nghĩa
•
OMG Task force được thiết lập cho vấn đề chuẩn
hóa
UML và các khái niệm
•
UML là một ngôn ngữ mô hình sử dụng các kí hiệu cho việc
tài liệu, phân tích, thiết kế và thực hiện tiến trình phát triển
hệ thống hướng đối tượng.
•
Có 4+1 khung nhìn: Logical, Component, Process,
Deployment và Use case
UML là gì?
•
UML là một cách phân tích và thiết kế mô hình theo hướng
đối tượng
–
Hiểu theo cách thông thường, UML bao gồm các mô hình đặc trưng
cho việc phân tích và thiết kế
•
UML không phải là một phương pháp, đơn thuần nó chỉ là một
ngôn ngữ kí hiệu:
–
Là một tập các kí hiệu
–
Là một tập các luật (cú pháp, ngữ nghĩa, kiểm tra) cho việc sử dụng
các kí hiệu
–
Dùng để hiển thị, đặc tả, xây dựng, làm tài liệu
Là một NN mô hình hướng đối
tượng
•
UML được tạo ra việc mô hình hướng đối tượng
•
Hướng đối tượng sản sinh ra các mô hình thể hiện
một lĩnh vực:
– Một lĩnh vực kinh doanh, ví dụ như banking
– Các thuật ngữ và đối tượng của lĩnh vực (ví dụ: tiền,
séc)
•
UML có thể được sử dụng để mô hình nhiều kiểu
hệ thống khác nhau.
Ngôn ngữ mô hình hoá trực quan
•
Ngôn ngữ mô hình hóa trực quan là một phát
minh lớn của những năm 1990s trong việc thiết
kế phần mềm.
•
Các thể hiện trực quan là cách tốt nhất để giao
thiệp và quản lí độ phức tạp
• Làm cho mô hình hóa ngày càng gần hơn với việc
cài đặt
Ưu điểm của UML
•
UML hợp nhất các mô hình của Booch, OMT, và Jacobson
–
Nó thống nhất hầu hết các khái niệm của 3 phương pháp
trên
–
Nó thêm các ký hiệu và khái niệm chưa có ở trong bất kì 3
phương pháp
Những điểm ngoài phạm vi của
UML
UML không là một phương thức
•
UML không xác định/hướng vào (address) toàn bộ
quá trình
•
UML không quy định cách tiếp cận vào việc xác định
các lớp,các phương thức và phân tích các mô hình
•
UML không bao gồm bất kỳ quy tắc thiết kế hay cách
thức giải quyết vấn đề nào
Mục tiêu của UML
•
Cung cấp cho người sử dụng một ngôn ngữ mô hình
hoá trực quan có sẵn và gợi tả (ready to use,
expressive), để người sử dụng có thể phát triển và
thay đổi các mô hình một cách hiệu quả
•
Cung cấp các kỹ thuật chuyên môn mở rộng để mở
rộng các khái niệm cốt lõi (core concepts)
•
Độc lập với các ngôn ngữ lập trình riêng biệt
(particular) và các tiến trình phát triển
•
Cung cấp kiến thức cơ bản chuẩn để hiểu ngôn ngữ mô
hình hoá
•
Ủng hộ/khuyến khích sự phát triển của môi trường sử
dụng công cụ hướng đối tượng (the OO tools market)
•
Hỗ trợ các khái niệm cho sự phát triển ở mức độ cao hơn
như là sự cộng tác (collaborations), khung (frameworks),
các mẫu (patterns), các thành phần (components)…
•
Tích hợp các bài thực hành tốt nhất
Mục tiêu của UML (tt)