Object Oriented Analysis & Design with UMLHiện trạng Ớ Sinh viên khi ra trường Ớ Nhìn nhận việc lập trình là một công việc chắnh Ớ đã tiếp cận một số ngôn ngữ, thư viện, công cụ lập trìn
Trang 1Nhập môn Phân tích & Thiết kế hướng ñối tượng với UML
Mai Thúy Nga, ngamt@thanglong.edu.vn
ðại học Thăng Long
Nội dung
• Phương hướng tiếp cận
• Giới thiệu về môn học PT&TK sử dụng UML
• Lịch sử phát triển UML
• Nội dung môn học
Trang 2Object Oriented Analysis & Design with UML
Hiện trạng
Ớ Sinh viên khi ra trường
Ớ Nhìn nhận việc lập trình là một công việc chắnh
Ớ đã tiếp cận một số ngôn ngữ, thư viện,
công cụ lập trình nhưng ở mức cơ bản
Ớ Cho rằng có thể giải quyết ựược mọi chuyện thông qua lập trình
Ớ Sự phản ánh của các công ty
Ớ Quá tập trung vào ngôn ngữ lập trình hơn là kỹ thuật lập trình
Ớ Chưa có tư duy làm việc nhóm
Ớ Chưa chú trọng tới vấn ựề giao tiếp khi làm việc với các ựối tượng khác nhau như K/H, QLDA, ựồng nghiệp hay nhóm kiểm thửẦ
Ớ Chưa có tư duy về lập kế hoạch, phân tắch hay thiết kế về một yêu cầu nào ựó khi ựược giao
Ớ Chưa có tư duy về quy trình phát triển phần mềm
Mục tiêu trang bị cho sinh viên
Ớ Có tư duy phân tắch một vấn ựề trước khi phát triển, cùng với ựề xuất thiết kế ựể giải quyết vấn ựề ựó
Ớ Nắm bắt nguyên lý phân tắch và thiết kế phần mềm theo UML
Ớ Tìm hiểu một số tư tưởng thiết kế sẵn có (design patterns)
Ớ Nâng cao khả năng làm việc nhóm
Ớ Xây dựng tài liệu, mô hình Ầ cho phù hợp với từng ựối tượng tham gia dự án
Ớ Có khả năng ựọc và hiểu ựược các tài liệu kỹ thuật của dự án
Ớ Tiếp cận tư duy làm dự án theo quy trình phát triển phần mềm (tiếp tục với môn Công nghệ phần mềm)
Ớ Các vấn ựề khi làm việc với khách hàng
Ớ Các vấn ựề về quản lý chất lượng dự án
Ớ Các vấn ựề về quản lý dự án
Trang 3Object Oriented Analysis & Design with UML
Nội dung
• Phương hướng tiếp cận
• Giới thiệu về môn học PT&TK sử dụng UML
• Lịch sử phát triển UML
• Nội dung môn học
Vai trò của phân tích và thiết kế
• Mục tiêu dự án
• Tìm hiểu yêu cầu
• Kiến thức chuyên môn
• Trừu tượng hóa
• Mô hình hóa
• Kiến trúc hệ thống
• Cấu trúc thành phần
• Thuật toán
• Cấu trúc dữ liệu
Trang 4Object Oriented Analysis & Design with UML
Phân tích và Thiết kế phần mềm
• Cần xây dựng một quy trình phát triển phần mềm hiệu quả
• Quản lý yêu cầu dự án
• Lập kế hoạch và kiểm soát công việc
• ðảm bảo chất lượng sản phẩm…
• Thiết lập một cơ chế ñể nắm bắt yêu cầu, xây dựng thiết kế
là ñiều rất quan trọng
• Sử dụng các mẫu, các kỹ thuật ñể có thể ñặc tả và minh họa quá trình phân tích và thiết kế
• Sử dụng các chương trình hỗ trợ phân tích và thiết kế (tools)
• Cơ chế này phải như là một “ngôn ngữ thống nhất” giúp cho quá trình hợp tác hiệu quả giữa các thành viên và khách háng trong nhóm phát triển phần mềm
Phương hướng tiếp cận
Phân tích và thiết kế
hướng cấu trúc
Phân tích hướng
cấu trúc
Thiết kế hướng
cấu trúc (ERD, DFD)
Lập trình cấu trúc
(C, Pascal…)
Phân tích và thiết kế hướng ñối tượng
Phân tích hướng ñối tượng (UML)
Thiết kế hướng ñối tượng (UML)
Lập trình ñối tượng (C++, Java, NET …)
Những năm 60-90 Những năm 2000-nay
Trang 5Object Oriented Analysis & Design with UML
Hướng tiếp cận sử dụng UML
• Về cơ bản UML chỉ là một ngôn ngữ dùng ñể mô hình hóa các thành phần cần thiết trong quá trình phát triển dự án
• Tuy nhiên nếu vận dụng hợp lý, UML có thể ñược sử dụng như là một phương pháp (quy trình) phân tích và thiết kế
dự án
• Mặc dù vậy, UML vẫn chưa làm ñược các vấn ñề khác của Công nghệ phần mềm như lập kế hoạch, quản lý chất lượng…
• UML sử dụng các biểu tượng ñể mô hình hóa các thực thể theo từng chiều khác nhau, ñể phục vụ các ñối tượng khác nhau, cho từng giai ñoạn khác nhau của dự án
• Ví dụ: mô hình hóa Use-case cho K/H, QLDA
• Mô hình hóa lớp và trình tự cho LTV
• …
Tại sao cần mô hình hóa
• Khó khăn
• Phần mềm ngày càng trở nên phức tạp
• Windows XP > 40M LoC
• Tìm hiểu mã nguồn luôn là một vấn ñề khó ñối với LTV
• Cần một cách thể hiện các bài toán phức tạp một cách ñơn giản hơn
• Mô hình hóa là một phương tiện giúp chúng ta ñơn giản hóa bài toán
• Mô hình chính là một phương tiện ñể giao tiếp giữa các thành viên tham gia phát triển dự án
Trang 6Object Oriented Analysis & Design with UML
ðịnh nghĩa về mô hình hóa, (Modeling)
• Mô hình hóa là quá trình trừu tượng hóa các ñối tượng (thực thể) trong thế giới thực
• Trừu tượng hóa ñảm bảo ñơn giản hóa những gì phức tạp trong thế giới thực:
• Bỏ qua những thông tin không cần thiết
• Chỉ thể hiện những thông tin cần thiết mang tính ñặc thù của thực thể ñó trong một ngữ cảnh cụ thể
• Phù hợp với từng ñối tượng trong dự án
• Khái niệm thế nào là cần thiết và không cần thiết phụ thuộc vào mục ñích của mô hình ñó, người quan tâm ñến mô hình ñó và một số nhân tố khác
Ngôn ngữ trong quá trình phát triển
C++
Java
Mô hình phát triển
Kỹ sư
phát
triển
HTML CGI XML JavaScript Quản trị
nội dung
Yêu cầu và
Mô hình nghiệp vụ
Phân tích
nghiệp vụ
SQL
Mô hình quan hệ (ER) Quản trịCSDL
Nhiều ngôn ngữ = Rào cản giao tiếp
Trang 7Object Oriented Analysis & Design with UML
Ngôn ngữ mô hình hóa thống nhất (UML)
Kiến trúc
hệ thống
Sơ ñồ trình tự
Giao diện
Mô hình
Use Case
Quản lý dự án
Kiến trúc sư
Lập trình viên
Kiểm thử
Khách hàng
UML
Một số khái niệm trong UML
• Hệ thống (System)
• Là một hệ thống thực tế cần phải mô tả hoặc xây dựng
• Mô hình (Model)
• Là kết quả của quá trình trừu tượng hóa của hệ thống thực
• Khung nhìn (View)
• Phản ánh một khía cạnh nào ñó của mô hình
• Mỗi một Model có thể có nhiều View khác nhau tùy thuộc vào mục ñích của View ñó
• Mỗi View sẽ phù hợp cho một nhóm ñối tượng nào ñó trong dự án
• Ký hiệu (Notation)
• Là một ký hiệu ñồ họa hoặc văn bản cho phép mô tả khung nhìn
Trang 8Object Oriented Analysis & Design with UML
UML - Các sơ ñồ chuẩn (Diagram)
Deployment Diagram
Use Case DiagramsUse Case DiagramsUse Case Diagrams
Scenario
DiagramsScenario
DiagramsSequence
Diagrams
State DiagramsState DiagramsState Diagrams
Component DiagramsComponent Diagrams Component Diagrams
Model
State DiagramsState DiagramsObject Diagrams
Scenario
DiagramsScenario
Diagrams
Collaboration
Diagrams
Use Case
DiagramsUse Case
DiagramsActivity
Diagrams
State DiagramsState DiagramsClass Diagrams
Một số sơ ñồ quan trọng (View)
Sản phẩm
Mô hình của
Hệ thống
Sơ ñồ Use Case
Sơ ñồ trình tự
Sơ ñồ lớp
Kiến trúc
Sơ ñồ hành ñộng
Sơ ñồ thành phần
Sơ ñồ triển khai
Trang 9Object Oriented Analysis & Design with UML
Khảo sát và phân tích dự án
• Xây dựng mô hình Use Case (Use case diagram)
Phân tích & Thiết kế
• Xây dựng sơ ñồ lớp và gói (Class & Package diagrams)
Trang 10Object Oriented Analysis & Design with UML
Thiết kế
• Xây dựng sơ ñồ trình tự và các kịch bản (Sequence & Interaction diagrams)
Thiết kế
• Xây dựng sơ ñồ hành ñộng (Activity diagram)
Trang 11Object Oriented Analysis & Design with UML
Thiết kế
• Xây dựng sơ ñồ trạng thái (State diagram)
Phát triển
• Lập trình mã nguồn
Trang 12Object Oriented Analysis & Design with UML
Bàn giao
• Xây dựng sơ ñồ triển khai (Deployment diagram)
Nội dung
• Phương hướng tiếp cận
• Giới thiệu về môn học PT&TK sử dụng UML
• Lịch sử phát triển UML
• Nội dung môn học
Trang 13Object Oriented Analysis & Design with UML
UML (1)
• UML ñược xây dựng bởi 3 chuyên gia phân tích hướng ñối tượng
• Grady Booch: Booch91
• Ivar Jacobson: Object-Oriented Software Enginering (OOSE)
• Jim Rumbaugh: Object Modeling Technique (OMT)
• Thiết lập một phương thức thống nhất ñể xây dựng và “mô hình hóa” các yêu cầu & thiết kế theo hướng ñối tượng trong quá trình phân tích và thiết kế phần mềm
• UML có thể ñược áp dụng trong nhiều quy trình phát triển phần mềm khác nhau
• UML có thể áp dụng ñược với phần lớn các ngôn ngữ OOP như Java, NET…
UML (2)
• Ba chuyên gia hợp nhất các
kỹ thuật của họ vào năm
1994
• UML ñược công nhận là
chuẩn chung vào năm 1997
Trang 14Object Oriented Analysis & Design with UML
UML (3)
• UML cũng sử dụng một số kỹ thuật của các chuyên gia khác
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
Lịch sử phát triển của UML
OMT
(Rumbaugh)
Booch
OOSE
(Jacobson)
UML 0.9
1996
UML 1.1
11/1997
UML 1.4
5/2000
UML 2.0
2005
Trang 15Object Oriented Analysis & Design with UML
Nội dung
• Phương hướng tiếp cận
• Giới thiệu về môn học PT&TK sử dụng UML
• Lịch sử phát triển UML
• Nội dung môn học
Tổng quan về môn học
• Phân tích các chức năng của bài toán theo mô hình Use-case, phát triển phần mềm theo hướng tiếp cận mới
• Sử dụng UML ñể biểu diễn các mô hình phân tích và thiết kế
• Áp dụng các khái niệm hướng ñối tượng: trừu tượng hoá, ñóng gói, phân cấp, module hoá, ña hình ñể phát triển mô hình thiết kế
• ðặc tả tài liệu khi phân tích và thiết kế các module
• Song song với việc học lý thuyết,
sinh viên sẽ chia nhóm thực hành
theo bài tập lớn
Trang 16Object Oriented Analysis & Design with UML
Phạm vi môn học (1)
• Tập trung vào giai ñoạn phân tích & thiết kế bài toán
• Không ñặt nặng vấn ñề làm việc với khách hàng, thay vào ñó tập trung vào vấn ñề làm việc nhóm (nhóm kỹ thuật) ñể phân tích và thiết kế các yêu cầu của dự án
• Không bao gồm toàn bộ quy trình phát triển phần mềm ở mức cao, giai ñoạn lập kế hoạch hoặc kiểm thử phần mềm
• Không bao gồm các vấn ñề quản lý dự án như quản lý rủi ro, ước lượng ñộ lớn phần mềm hay quản lý thay ñổi yêu cầu
• Các vấn ñề trên ñược giải quyết ở các môn học: Công nghệ phần mềm, Quản lý dự án, Quản lý chất lượng phần mềm
Phạm vi môn học (2)
Trang 17Object Oriented Analysis & Design with UML
Nội dung môn học
Giới thiệu về PTTK
hướng ñối tượng với
UML
Khái niệm về Hướng ñối tượng trong UML
ðặc tả Yêu cầu với
mô hình Use Case I
ðặc tả Yêu cầu với
mô hình Use Case II
Tổng quan về Phân tích và Thiết kế
Phân tích Use
Case II
Thiet ke CSDL
Mô hình hóa Thiết kế
Phân tích Use Case I
1
5 4
2
6 3
Nội dung thực hành
Tìm hiểu mục ñích
của bài tập lớn
Thực hành UML với Rational Rose
Phân tích yêu cầu bài tập lớn
Xây dựng ðặc tả
Yêu cầu I
Báo cáo bài tập lớn
Xây dựng các sơ
ñồ phân tích Use Case I
Xây dựng ðặc tả Yêu cầu II
Xây dựng sơ ñồ Kiến trúc và Triển khai
Xây dựng các sơ
ñồ nhân tích Use
Case I
1
5 4
2
6 3
Trang 18Object Oriented Analysis & Design with UML
đánh giá môn học
Ớ Bài tập lớn
Ớ Mỗi nhóm khoảng 4-6 sv cho 1 bài tập lớn
Ớ Tài liệu (Tuần 1-9)
Ớ Tài liệu yêu cầu, thiết kế (theo mẫu cung cấp)
Ớ Báo cáo công việc thực hiện hàng tuần
Ớ Bảo vệ dự án (sử dụng PowerPoint) vào Tuần 9
Ớ Thi cuối môn
Ớ Thi viết trong 2 tiết
Ớ được sử dụng tài liệu
Ớ điểm môn học
Ớ (Dự án * 2 + Bảo vệ + Thi) / 4
Ớ Dự án = (điểm giữa kỳ + Tài liệu)/2
Ớ Nếu 1 trong các ựiểm dưới 5 thì ựiểm cuối cùng là 4 ựiểm
Tài liệu tham khảo
Ớ DEV485 Ờ Object Oriented Analysis and Design with UML
Ớ IBM
Ớ Master UML with Rational Rose
Ớ Wendy Boggs, Michael Boggs
Ớ The Unified Modeling Language User Guide
Ớ Grady Booch, Ivar Jacobson, James Rumbaugh
Ớ UML Distilled
Ớ Martin Fowler
Ớ Writing Effective Use Cases
Ớ Alistair Cockburn
Ớ Design Patterns
Ớ Nhà xuất bản Minh Khai
Ớ Elements of Reusable Object Oriented Software
Ớ GoF
Ớ Rational Web Site
Ớ http://www.rational.com