Professional Documents
Culture Documents
Tiến trình phát triển phần mềm theo hướng đối tượng
1. Giới thiệu Ngôn ngữ mô hình hóa thống nhất UML
3. Mô hình hóa nghiệp vụ
4. Mô hình hóa trường hợp sử dụng
5. Mô hình hóa tương tác đối tượng
6. Biểu đồ lớp và gói
7. Biểu đồ chuyển trạng thái và biểu đồ hoạt động
8. Biểu đồ kiến trúc vật lý và phát sinh mã trình
9. Mô hình hóa dữ liệu
10. Bài học thực nghiệm
1. ðặng Văn ðức, Phân tích thiết kế hướng ñối tượng bằng
UML, Nhà xuất bản Giáo dục, 287 trang. 2002.
2. Zhiming Liu, Object-Oriented Software Development with
UML, UNU/IIST, 169 pp, 2002.
3. Phần mềm: Rational Rose Enterprise Edition 2002, IBM
Rational Software. 2002.
3.5
Project value $M
3
2.5
2
1.5
1
0.5
0
Paid for but Delivered but Abandoned Used after Used as
not received not used or reworked change delivered
(E. Balagurusamy) Projects
n Phát triển phần mềm bị khủng hoảng vì không có phương pháp ñủ tốt
n Kỹ thuật áp dụng cho các hệ thống nhỏ trước ñây không phù hợp cho các
hệ thống lớn
n Các dự án lớn thường bị kéo dài hàng năm do vậy làm tăng kinh phí
n Phần mềm không tin cậy, khó bảo hành
n Thực tế: Giá phần cứng giảm nhanh, giá phần mềm tăng cao
n ðể ñáp ứng ñòi hỏi của phần mềm cần có
n Lý thuyết, kỹ thuật, phương pháp, công cụ mới ñể ñiều khiển tiến trình
phát triển hệ thống phần mềm
n Kỹ nghệ phần mềm: Liên quan tới lý thuyết, phương pháp và công cụ
cần ñể phát triển phần mềm
n Mục tiêu: Sản xuất phần mềm ñộc lập, ñúng hạn, phù hợp kinh phí và
ñáp ứng mọi yêu cầu người sử dụng
Sản phẩm phần mềm ñược xem như mô hình của thế giới thực.
Nó phải ñược duy trì ñể luôn luôn phản ánh chính xác sự thay ñổi
trong thế giới thực
Requirement
Requirement
Developer
Developer Understanding
Understanding Capture
Capture
Client
Client Feasibility
Feasibility
Domain
Domain Expert
Expert Study
Study
User
User Validation Classification
Validation Classification
Specification document
ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 1 - 13/59
Các hoạt ñộng của phân tích yêu cầu
n Hiểu lĩnh vực vấn ñề
n Phân tích viên trình bày hiểu biết về lĩnh vực vấn ñề
n Khám phá các quan niệm
n Suy ra các yêu cầu khách hàng
n Thu thập yêu cầu
n Phân tích viên cần có cách thu thập nhu cầu khách hàng sao cho họ có
thể cùng tham gia vào dự án
n Phân tích viên, khách hàng, chuyên gia lĩnh vực ứng dụng và người sử
dụng hệ thống cùng phát hiện và thu thập yêu cầu
n Kỹ năng trừu tượng là rất quan trọng ñể thu thập những cái chính, bỏ
qua cái không cần thiết
n Phân lớp
n ðánh giá
n Nghiên cứu khả thi
Pha
Pha thu
thu thập
thập và
và phân
phân tích
tích yêu
yêu cầu
cầu rất
rất quan
quan trọng.
trọng.
Nếu
Nếu không
không phát
phát hiện
hiện ra
ra lỗi
lỗi tại
tại pha
pha này
này thì
thì rất
rất khó
khó
và
và tốn
tốn kém
kém ñể
ñể phát
phát hiện
hiện rara nó
nó ởở pha
pha tiếp
tiếp theo.
theo.
Trừu tượng
Thiết ðộc lập cài ñặt
Thiết kế
kế logíc:
logíc: Thiết
Thiết kế
kế chi
chi tiết:
tiết:
Phân Kiến trúc tổng thể
Phân hoạch
hoạch Làm mịn
Làm mịn
Thành
Thành phần
phần làm
làm cái
cái gì?
gì? Thành
Thành phần làm
phần làm như
như thế
thế nào?
nào?
Quan
Quan hệ
hệ các
các thành
thành phần
phần Thiết
Thiết kế
kế các
các quan
quan hệ hệ
Thiết
Thiết kế
kế
Viết
Viết chương
chương trình
trình
Kiểm
Kiểm thử
thử moñun
moñun
Tích
Tích hợp
hợp và
và kiểm
kiểm
thử
thử hệ
hệ thống
thống
Chuyển
Chuyển giao
giao
và
và bảo
bảo trì
trì
% %
56
60 82
100
50
Incomplete requirements 80
40
27 Design 60
30
Coding
20 40
10 Others 13
7 4
10 20 1
0 0
n Vấn ñề của các hoạt ñộng phát triển trong tiến trình này
n Tiến trình không rõ ràng
n Rất khó hình thành tài liệu phản ảnh từng phiên bản của hệ thống
n Hệ thống không có cấu trúc tốt
n Thay ñổi liên tục kéo theo việc phá hỏng cấu trúc hệ thống
n Không luôn luôn khả thi
n Với hệ thống lớn: việc thay ñổi ở phiên bản cuối cùng thường là khó
khăn hoặc không có thể
n Yêu cầu mới, ñòi hỏi mới ñòi hỏi người phát triển bắt ñầu lại toàn bộ
dự án
n Prototyping thường xuyên rất tốn kém
n Tiến hóa phần mềm có thể là khó khăn và ñắt
Các
Các ýý tưởng,
tưởng, nguyên
nguyên tắctắc và
và kỹ
kỹ thuật
thuật của
của tiến
tiến trình
trình phát
phát
triển
triển tiến
tiến hóa
hóa luôn
luôn có
có ích
ích và
và có
có thể
thể áp
áp dụng
dụng trong
trong các
các pha
pha
khác
khác nhau
nhau của
của tiến
tiến trình
trình phát
phát triển
triển rộng
rộng lớn
lớn hơn
hơn như
như hiểu
hiểu
biết
biết và
và ñánh
ñánh giá
giá yêu
yêu cầu
cầu trong
trong mô
mô hình
hình thác
thác nước
nước
Performance Throughput
The challenge over the next 20 years will not be speed or cost or
performance; it will be a question of complexity.
Bill Raduchel, Chief Strategy Officer, Sun Microsystems
Our enemy is complexity, and it’s our goal to kill it.
Jan Baan
ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 1 - 31/59
Phát triển phần mềm theo OO
Higher technical complexity
- Embedded, real-time, distributed, fault-tolerant
- Custom, unprecedented, architecture reengineering
- High performance
An average software project: Defense
- 5-10 people Weapon System
- 10-15 month duration Telecom
- 3-5 external interfaces Commercial Switch National Air Traffic
- Some unknowns & risks Embedded Compiler Control System
Automotive
Software Large-Scale
Lower CASE Tool Organization/Entity Higher
Simulation
management management
complexity complexity
- Small scale Small Scientific - Large scale
- Informal Simulation - Contractual
IS Application
- Single stakeholder Distributed Objects Defense - Many stake holders
Enterprise IS
- “Products” (Order Entry) MIS System - “Projects”
(Family of IS
Applications)
IS Application
GUI/RDB
Business (Order Entry)
Spreadsheet [Grady Booch]
Lower technical complexity
- Mostly 4GL, or component-based
- Application reengineering
- Interactive performance
Multinational
Multinationalcorporations
corporations
Company
Company11 Company
Company22 Company
Company33 ...
Division
Division11 Division
Division22 Division
Division33 ...
Branch
Branch11 Branch
Branch22 Branch
Branch33 ...
ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 1 - 36/59
Năm tính chất của hệ thống phức tạp
Main
Mainfunction
function
F1
F1 F2
F2
Lake Model
Natural Model
1960 Cobol
PL/1
Simula Smalltalk-72
1970 Prolog
Smalltalk-74
Pascal
Smalltalk-76
C
Smalltalk-78 Loops
Smalltalk-80
1980 Objective C
Ada
C++
ObjectPascal CLOS
Eiffel
n Artifacts
What is
n models produced?
n reports, documents
Who does
n Worker: Architect it?
Requirements
An iteration in the
elaboration phase
Analysis
Design
Implementation
Test
Ite ra tio n s
ehamingway@gmail.com Phân tích thiết kế hướng ñối tượng Bài 1 - 48/59
Các pha của vòng ñời
time
Một vòng lặp (iteration) là trình tự các hoạt ñộng với kế hoạch xây
dựng trước và tiêu chí ñánh giá, cho kết quả là các phiên bản chạy
ñược.
“Mini-Waterfall” Process
Iteration Planning
Rqmts Capture
Analysis & Design
Implementation
Test
Prepare Release
Iteration Planning
Requirements Capture
Implementation
Test
Prepare Release
Release description
Updated risk assessment
Controlled libraries
n Kế hoạch lặp
n Trước khi lặp bắt ñầu thực hiện, mục tiêu chính của
lặp cần ñược hình thành trên cơ sở
n Các kết quả của các lặp trước (nếu có)
n Cập nhật ñánh giá rủi ro của dự án
n Xác ñịnh tiêu chí ñánh giá cho lặp này
n Chuẩn bị kế hoạch chi tiết cho lặp
n Bao gồm intermediate milestones ñể ñiều khiển tiến trình
n Bao gồm walkthroughs và reviews
Inception
Waterfall
Elaboration
Risk Construction
Transition
Preliminary Architect. Architect. Devel. Devel. Devel. Transition Transition Post-
Iteration Iteration Iteration Iteration Iteration Iteration Iteration Iteration deployment
Time