Tải bản đầy đủ (.pdf) (30 trang)

tiểu luận cntt tìm hiểu quy trình phát triển phần mềm hướng đối tượng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (578.65 KB, 30 trang )

1
Luận văn báo cáo
Đề tài:
Tìm hiểu quy trình phát triển
phần mềm hướng đối tượng
Mở đầu
Phần mềm hiện nay có mặt ở mọi lĩnh vực, trong mọi hoạt động của cuộc sống như công
nghiệp, viện nghiên cứu, trường học, bệnh viện, tài chính ngân hàng, chính phủ Hầu hết các
2
thiết bị điện tử hiện nay và trong tương lai đều được cài đặt các phần mềm điều khiển. Việc
đặc tả các yêu cầu, phát triển, quản lí, bảo trì phần mềm tạo nên các nguyên tắc của công
nghệ phần mềm (software engineering).
Trong các loại phần mềm hiện nay thì phần mềm hướng đối tượng đang phát triển vô cùng
mạnh mẽ. Do nó đáp ứng được hầu hết các yêu cầu người dùng, và do sự phát triển mạnh mẽ
của các ngôn ngữ hướng đối tượng như C++, Java, C#
Ph ng pháp phát tri n ph n m m h ng đ i t ng tuy là m t ph ng pháp m i trongươ ể ầ ề ướ ố ượ ộ ươ ớ
nh ng năm g n đây nh ng đã ch ng t đ c u th khi l p trình các h th ng ph c t p,ữ ầ ư ứ ỏ ượ ư ế ậ ệ ố ứ ạ
đem l i nh ng thành qu to l n. Các nhà phát tri n ph n m m nh n th y r ng phát tri nạ ữ ả ớ ể ầ ề ậ ấ ằ ể
ph n m m h ng đ i t ng mang l i m t ph n m m th ng m i có ch t l ng cao v iầ ề ướ ố ượ ạ ộ ầ ề ươ ạ ấ ượ ớ
đ tin c y cao, d m r ng và d s d ng l i, ch y tr n tru, phù h p v i yêu c u c aộ ậ ễ ở ộ ễ ử ụ ạ ạ ơ ợ ớ ầ ủ
ng i dùng và đ c bi t là kh năng phát tri n cao.ườ ặ ệ ả ể
Trong bài báo cáo này chúng em sẽ trình bầy đến các vấn đề liên quan đến phát triển phần
mềm hướng đối tượng như: phần mềm hướng đối tượng là gì, quy trình phát triển một phần
mềm, các quy trình để phát triển một phần mềm hướng đối tượng, Trong báo cáo bày còn
nhiều thiếu sót mong được thầy cô và các bạn góp ý, đánh giá giúp chúng em hoàn thành đề
tài này.
Chúng em cũng xin được cảm ơn sự giúp đỡ tận tình của TS: LƯƠNG MẠNH BÁ trong quá
trình chúng em hoàn thành báo cáo này.
Nhóm sinh viên thực hiện
Hà nội ngày 7 tháng 10 năm 2012
3


Mục lục
Chương I: Giới thiệu chung về công nghệ phần mềm và phần mềm hướng đối tượng
I.1: Phần mềm là gì ?
I.2: Công nghệ phần mềm là gì?
I.3: Vòng đời của phần mềm
I.4: Phần mềm hướng đối tượng
Chương II: Quy trình phát triển phần mềm
I: Khung quy trình phát triển phần mềm chung
II: Một số mô hình phát triển phần mềm
III: Các giai đoạn trong quy trình phát triển phần mềm
Chương III: Quy trình phát triển phần mềm hướng đối tượng
III.1: Xác định yêu cầu
III.2: Phân tích yêu cầu hướng đối tượng (OOA)
III.3: Thiết kế hướng đối tượng
III.4: Cài đặt
III.5: Kiểm thử
3
3
3
3
4
5
5
5
6
7
7
9
14
16

18
4
Chương I: Giới thiệu chung về công nghệ phần mềm và
phần mềm hướng đối tượng
I.1: Phần mềm là gì?
- Là các lệnh ( chương trình máy tính ) khi được thực hiện thì cung cấp những chức
năng và kết quả mong muốn
- Các cấu trúc dữ liệu làm cho chương trình thao tác thông tin thích hợp
- Các tư liệu mô tả thao tác và cách sử dụng chương trình
Phần mềm bao gồm:
I.2: Công nghệ phần mềm là gì?
 Công nghệ học phần mềm là lĩnh vực khoa học về các phương pháp luận, kĩ thuật
và công cụ tích hợp trong quy trình sản xuất và vận hành phần mềm nhằm tạo ra
phần mềm với chất lượng mong muốn.
 Lịch sử phát triển của công nghệ phần mềm
1. Giai đoạn 1 (1950 – giữa 1960):
- Xử lý theo lô, xử lý tập trung, ít xử lý phân tán, ít sửa đổi phần mềm.
2. Giai đoạn 2 (từ giữa 1960 đến giữa 1970) :
- Hệ thống đa chương trình và đa nguời dùng.
- Bắt đầu cuộc “khủng hoảng” phần mềm.
3. Giai đoạn 3 (từ giữa 1970 đến giữa 1980)
- Sự phát triển và sử dụng rộng rãi máy tính cá nhân
- Sự phát triển của các công ty phần mềm
4. Giai đoạn 4 (từ giữa 1980 đến nay)
- Phần cứng ngày càng phát triển
- Hệ thống phần mềm ngày càng đa dạng, phong phú, xử lý ngày càng phức
tạp, công nghệ ngày càng phát triển…
I.3: Vòng đời của phần mềm
5
 Vòng đời phần mềm là thời kỳ tính từ khi phần mềm được sinh ra cho đến khi

chết đi ( từ lúc hình thành đáp ứng yêu cầu, vận hành, bảo dưỡng cho đến khi
loại bỏ không dùng nữa )
 Quy trình phầnmềm(vòng đờiphầnmềm) được phân chia thành các pha
chính:phân tích, thiết kế, chế tạo, kiểm thử, bảo trì. Biểudiễn các pha có khác
nhau theo từng người
 Mô hình vòng đời phần mền của Boehm
Insert picture
I.4: Phần mềm hướng đối tượng
 Là phần mềm được viết trên các ngôn ngữ hướng đối tượng như C#, Java, C++
 Ngày càng phát triển mạnh mẽ do sự phát triển của xã hội đặc biệt là sự phát triển của
công nghệ thông tin.
 Lớp và đối tượng
- Lớp là một kiểu dữ liệu mà người ( do người dùng định nghĩa ) dùng để tạo ra
các đối tượng.
- Lớp là một khuân mẫu, định nghĩa các đặc điểm tính chất, hành vi, trạng thái
chung của một số đối tượng.
- Lớp là khái niệm mang tính chất trừu tượng hóa.
- Đối tượng là một thực thể cụ thể của lớp.
- Lớp là “ảo”, đối tượng là “thật”.
- Đối tượng là đối tượng trong thế giới thực, thực thể cụ thể mà ta có thể sờ,
nhìn thấy và cảm nhận được. VD: ô tô, cái bàn,
- Đối tượng phần mềm: Dùng để biểu diễn các đối tượng trong thế giới thực.
6
Chương II: Quy trình phát triển phần mềm
I: Khung quy trình phát triển phần mềm chung
• Một khung quy trình chung được thiết lập bằng cách xác định một số hoạt động
khung có khả năng áp dụng cho mọi dự án phần mềm.
• Tập nhiệm vụ công việc cho phép các hoạt động khung thích ứng với các đặc tính và
yêu cầu của dự án.
• Các hoạt động bao trùm (umbrella activities) đảm bảo chất lượng của phần mềm, và

độc lập với bất cứ hoạt động khung nào diễn ra trong suốt quy trình.
II: Một số mô hình phát triển phần mềm
1. Mô hình tuyến tính
• Đây là mô hình lâu đời nhất và được ứng dụng rộng rãi nhất trong công nghệ
phần mềm nhưng mô hình này vẫn còn bộc lộ nhiều nhược điểm
2. Mô hình thuần thục khả năng
• Mô hình này do Soft Engineering Institute (SEI) phát triển bao gồm 5 mức:
Khởi đầu, lặp lại, xác định, quản trị, tối ưu.
3. Mô hình chế thử
• Là một tiến trình giúp người phát triển phần mềm có khả năng tạo ra một mô
hình cho phần mềm cần phải xây dựng. Nó gồm 3 dạng: Bản vẽ trên giấy hay
mô hình trên PC, bản mẫu làm việc và cài đặt một tập con các chức năng phần
mềm mong muốn, một chương chình đã có cần cải tiến.
7
4. Mô hình phát triển ứng dụng nhanh (RAD)
• Là quy trình phát triển phầm mềm gia tăng từng bước với chu chình phát triển
ngắn. Mô hình này xây dựng dựa trên hướng thành phần với khả năng tái sử
dụng cao.
5. Mô hình xoắn ốc
• Được phát triển bao gồm các tính năng tốt nhất của mô hình tuyến tính lẫn mô
hình chế thử trong khi vẫn bổ sung thêm các yếu tố mới – phân tích rủi ro.
6. Mô hình theo thành phần
• Gắn với những công nghệ hướng đối tượng thông qua việc tạo các lớp có chứa
dữ liệu và các giải thuật xử lí dữ liệu
7. Mô hình hình thức
• Còn được gọi là mô hình phòng sạch, tập hợp các công cụ đặc tả toán học
phần mềm máy tính từ khâu định nghĩa phát triển đến kiểm soát.
8. Các công nghệ thứ 4
Bao gồm một phạm vi rộng các công nghệ phần mềm có một điểm chung: mỗi
công việc đều cho phép người phát triển phần mềm xác định một số đặc trưng

phần mềm ở mức cao. Sau đó chương trình tự động sinh ra mã chương trình
gốc theo nhu cầu của người phát triển.
9. Mô hình chữ V
Mô tả dãy các hoạt động phát triển và kiểm thử cơ bản. Nó nêu bật sự tồn tại
của các mức kiểm thử và mô tả cách mỗi mức kiểm thử này liên quan đến một
pha phát triển khác nhau.
III: Các giai đoạn trong quy trình phát triển phần mềm
1. Giai đoạn khảo sát hiện trạng.
• Đây là giai đoạn đầu tiên trong quá trình phát triển phần mềm, nó cho biết
hiện trạng bài toán như thế nào. Ví như hiện trạng về mô hình tổ chức, hiện
trạng về các nghiệp vụ, hiện trạng về quá trình tin học của khách hàng mà
phần mềm chúng ta nhắm tới. Trong đó hiện trạng về nghiệp vụ là quan trọng
nhất mục tiêu của giai đoạn này là phải hiểu rõ được quy trình nghiệp vụ của
khách hàng như là có bao nhiêu quá trình nghiệp vụ, những nghiệp vụ đó họ
làm như thế nào?….
2. Giai đoạn xác định yêu cầu.
• Có 2 loại yêu cầu là yêu cầu chức năng và yêu cầu phi chức năng.
+ Yêu cầu chức năng: Đây là yêu cầu bất khả kháng mà khách hàng đưa
ra cho bạn.
+ Yêu cầu phi chức năng là yêu cầu của hệ thống mà mình đưa ra,ví dụ
như chức năng bảo mật thông tin, chức năng phân quyền người dùng,
chức năng có thể đáp ứng yêu cầu của dữ liệu trong khoảng thời gian
bao nhiêu….
3. Giai đoạn phân tích.
8
• Trong giai đoạn này chúng ta sẽ phân tích các yêu cầu, và mô hình hóa chúng
kết quả của quá trình này là cho ra một sơ đồ lớp đối tượng trong chương trình
chúng ta.
4. Thiết kế
• Giai đoạn này chúng ta sẽ thiết kế các thuật toán, và thiết kế mô hình dữ liệu

nó cho ra một mô hình lớp và dữ liệu ở mức chi tiết.
5. Cài đặt
• Phần này chúng ta sẽ chính thức bắt tay vào “code” chương trình.
6. Kiểm chứng
• Phần này có nhiệm vụ kiểm tra chương trình có lỗi hay không, có đáp ứng
được nhu cầu người dùng hay không?,
7. Triển khai
• Bạn sẽ mang chương trình của mình đi triển khai.
9
Chương III: Quy trình phát triển phần mềm hướng đối
tượng
Để phát triển được một phần mềm hướng đối tượng ta cần qua các bước: Xác định yêu cầu
người sử dụng, mô hình hóa yêu cầu, phân tích, thiết kế dữ liệu, kiến trúc chương trình, kiểm
thử đánh giá.
III.1: Xác định yêu cầu
1. Yêu cầu người dùng là gì?
• Yêu cầu phần mềm là tất cả các yêu cầu về phần mềm do khách hàng, người
sử dụng phần mềm – nêu ra, bao gồm: các chứ năng của phần mềm, hiệu năng
của phần mềm, các yêu cầu về thiết kế và giao diện, các yêu cầu đặc biệt khác.
• Yêu cầu phần mềm được phân loại theo 4 thành phần của phần mềm:
- Các yêu cầu về phần mềm (Software).
- Các yêu cầu về phần cứng (Hardware).
- Các yêu cầu về dữ liệu (Data).
- Các yêu cầu về con người (People, Users).
2. Tại sao phải xác định yêu cầu ?
• Mục đích cơ bản của nắm bắt yêu cầu là hướng sự phát triển đến một hệ thống
đúng.
• Trả lời các câu hỏi sau: Cái người dùng yêu cầu mình làm là cái gì? Các yêu
cầu đó ra sao? Các yêu cầu đó như thế nào? Các nghiệp vụ của người đó ra
sao? Trong họ trình độ tin học hóa tới đâu?(về trình độ sử dụng máy tính và

phần cứng của họ). Các thói quen nghiệp vụ của họ ra sao? …
• Một thách thức lớn là khách hàng là người không có kinh nghiệm về máy tính
nhưng lại có khả năng đọc và hiểu các kết quả của nắm bắt yêu cầu. Do đó ta
phải sử dụng ngôn ngữ của khách hàng để nắm bắt yêu cầu này.
• Kết quả của nắm bắt yêu cầu đồng thời cũng giúp người quản lí dự án lập kế
hoạch các bước lặp và các xuất phẩm cho khách hàng.
3. Phân loại yêu cầu
• Yêu cầu chức năng
− Lưu trữ
− Tra cứu
10
− Tính toán
− Kết xuất
• Yêu cầu phi chức năng
4. Quy trình xác định yêu cầu phần mềm
a) Phát hiện các yêu cầu phần mềm.
• Xác định các phương pháp sử dụng phát hiện các yêu cầu phần mềm
như phỏng vấn, làm việc nhóm,
• Tìm kiếm nhân sự (chuyên gia, người sử dụng) có hiểu biết sâu sắc
nhất, chi tiết nhất về hệ thống giúp chúng ta xác định yêu cầu phần
mềm.
• Xác định môi trường kĩ thuật.
• Xác định các ràng buộc lĩnh vực.
• Thu hút sự tham gia của nhiều chuyên gia, khách hàng để có các quan
điểm xem xét phần mềm từ nhiều phía khác nhau
b) Phân tích các yêu cầu phần mềm và thương lượng với khách hàng.
• Phân loại yêu cầu phần mềm và sắp xếp chúng theo các nhóm liên
quan
• Khảo sát tỉ mỉ từng yêu cầu phần mềm.
11

• Thẩm định từng yêu cầu phần mềm theo các tính chất: phù hợp, đầy đủ
rõ ràng, không trùng lặp.
• Phân tích yêu cầu dựa trên nhu cầu và đòi hỏi của khách hàng
• Thẩm định từng yêu cầu của phần mềm.
• Thẩm định rủi ro có thể xảy ra với từng yêu cầu phần mềm.
• Đánh giá thô về giá thành và thời gian thực hiện của từng yêu cầu phần
mềm trong giá thành sản phẩm phần mềm và thời gian thực hiện phần
mềm.
• Giải quyết bất đồng với yêu cầu phần mềm với khách hàng trên cơ sở
thảo luận và thương lượng với yêu cầu đặt ra.
c) Đặc tả yêu cầu phần mềm
• Đây là công việc xây dựng các tài liệu trong đó có thể sử dụng các
công cụ như: mô hình hóa, mô hình toán học hình thức, tập hợp các
kịch bản sử dụng, các nguyên mẫu.
• Yêu cầu của đặc tả tốt
− Dễ hiểu với người dùng, ít rắc rối
− Có ít quy ước khi mô tả
− Theo phong cách từ trên xuống
− Dễ triển khai
5. Các kĩ thuật thu thập yêu cầu
• Phỏng vấn cá nhân/phỏng vấn nhóm?
− Phỏng vấn cá nhân
− Phỏng vấn nhóm
• Phỏng vấn tự do/phỏng vấn có định hướng?
− Phỏng vấn tự do
+ Người được hỏi có cảm giác thoải mái, cung cấp nhiều thông tin sâu sắc.
+ Nguy cơ: không có được những thông tin cần thiết, thông tin khó hệ
thống được.
− Phỏng vấn có định hướng
12

+ Người được hỏi có thể cảm thấy không thoải mái, ít có khả năng ghi
nhận được nhận xét, ý kiến, suy nghĩ riêng của người được phỏng vấn, ít
cảm nhận được thái độ của họ đối với hiện trạng.
+ Có thể định hướng nội dung cần tìm hiểu, có thể hệ thống hóa các vấn đề
ghi nhận được
• Làm việc với cấp lãnh đạo để nắm mục tiêu của hệ thống phần mềm cần xây
dựng, những đối tượng cần phỏng vấn.
• Yêu cầu cấp lãnh đạo thông báo xuống các phòng ban, đơn vị để hợp tác.
• Phân tích để xác định đúng và đủ những đối tượng cần phỏng vấn.
• Hẹn lịch làm việc.
• Xác định trước vị trí, trách nhiệm của người sắp phỏng vấn.
III.2: Phân tích yêu cầu hướng đối tượng (OOA)
Phân tích được xem như là cây cầu giữa kĩ nghệ hệ thống với thiết kế phần mềm.
1. Mục đích của OOA:
• Định nghĩa các lớp (và các mối quan hệ hành vi liên kết với chúng) phù hợp với
vấn đề cần giải quyết.
• Phát triển một tập các mô hình mô tả hệ thống phần mềm máy tính như nó hoạt
động để thỏa mãn các yêu cầu của người dùng đã được xác định.
2. Các phương pháp phân tích hướng đối tượng
1: Phương pháp Booch: Gồm 2 quy trình phát triển vi mô và vĩ mô. Quy trình phân
tích vi mô bằng phương pháp Booch được mô tả như sau:
• Xác định các lớp đối tượng
• Xác định ngữ nghĩa của các lớp và đối tượng
• Xác định mối quan hệ giữa các lớp và đối tượng
• Quản lí các hoạt động điểu chỉnh thích hợp
• Thực thi các lớp và đối tượng (hoàn thành mô hình phân tích)
2: Phương pháp Coad và Yourdon: Phác thảo của quy trình phân tích do Coad và
Yourdon đề nghị như sau:
13
• Xác định đối tượng sử dụng tiêu chuẩn “tìm kiếm cái gì”.

• Xác định cấu trúc tổng quát – đặc tả.
• Xác định cấu trúc toàn thê – bộ phận.
• Xác định chủ đề ( mô tả các thành phần hệ thống con).
• Xác định các thuộc tính.
• Xác định các dịch vụ.
3: Phương pháp Jacobson: Nhấn mạnh vào các trường hợp sử dụng – mô tả cách
người dùng tương tác với sản phẩm hay hệ thống. Phác thảo của quy trình phân tích
như sau:
• Xác định người sử dụng hệ thống và toàn bộ nhiệm vụ của họ.
• Xây dựng mô hình yêu cầu.
• Xây dựng mô hình phân tích.
4: Phương pháp Rambaugh: Các hoạt động phân tích tạo ra 3 mô hình: mô hình đối
tượng, mô hình động, mô hình chức năng. Phác thảo của quy trình phân tích:
• Phát triển một bản kê phạm vi vấn đề
• Xây dựng một mô hình hướng đối tượng
• Phát triển mô hình động
• Xây dựng một mô hình chức năng cho hệ thống
5: Phương pháp Wirfs – Brock: Không tạo sự khác biệt rõ ràng giữa phân tích và thiết
kế. Thay vào đó một quá trình bắt đầu khi xác định đặc tả khách hàng và kết thúc khi
thiết kế được đề xuất. Phác thảo của quy trình phân tích do Wirfs – Brock phát triển
như sau:
• Ước lượng đặc tả khách hàng.
• Sử dụng phân tích ngữ pháp để rút ra các lớp ứng viên từ đặc tả.
• Nhóm các lớp để xác định các lớp Cha.
• Định nghĩa trách nhiệm cho mỗi lớp.
• Phân công trách nhiệm cho mỗi lớp.
• Xác định cộng tác giữa các lớp dựa trên trách nhiệm.
• Xây dựng mô tả cây của lớp để chỉ ra mối quan hệ kế thừa.
• Xây dựng biểu đồ cộng tác cho hệ thống
14

• Thu nhận các yêu cầu của khách hàng cho hệ thống hướng đối tượng (Object
Oriented – OO ).
• Chọn các lớp các đối tượng sử dụng các yêu cầu cơ bản như là hướng dẫn.
• Xác định các thuộc tính và các phương thức cho mỗi đối tượng hệ thống
• Xác định cấu trúc và cây cho mỗi lớp tổ chức
• Xây dựng mô hình quan hệ đối tượng
• Xây dựng mô hình hành vi đối tượng
• Xem lại phân tích OO.
3. Quy trình OOA
Quy trình bắt đầu với việc hiểu cách thức hệ thống mà con người sử dụng. Khi các kịch
bản sử dụng được xác định, ta bắt đầu mô hình hóa hệ thống.
1. Trường hợp sử dụng
• Dựa trên yêu cầu người dùng, người kĩ sư phần mềm tạo ra một tập các kịch
bản xác định một luồng sử dụng cho hệ thống.
• Đầu tiên xác định các kiểu đối tượng (thiết bị) khác nhau sử dụng hệ thống.
Các tác nhân mô tả vai trò mà con người hay thiết bị đảm nhận trong hệ thống
• Khi xác định xong các tác nhân, ta phát triển trường hợp sử dụng mô tả các tác
nhân tương tác với hệ thống.
2. Mô hình class – responsibility – collaborator (CRC)
Mô hình CRC (mô hình cộng tác ) cung cấp một phương tiện đơn giản để xác định và
tổ chức các lớp thích hợp với yêu cầu hệ thống hay sản phẩm.
a) Lớp
• Các đối tượng được biểu diễn thông qua rất nhiều hình thức trong đó có
một cách biểu diễn đối tượng thông qua lớp.
• Firesmith đã mở rộng sự phân loại các kiểu lớp bằng cách gợi ý ra các loại
sau
+ Lớp thiết bị: Mô hình các thực thể ngoài như cảm biến, moto, bàn
phím.
+ Lớp thuộc tính: Mô tả một số thuộc tính quan trọng của môi trường
+ Lớp tương tác: Mô hình các tương tác xảy ra giữa các đối tượng.

• Thêm vào đó, lớp và đối tượng có thể được phân loại bằng tập các đặc
tính sau: Tính hiện thực, tính bao gồm, tính tuần tự, sự tồn tại, tính toàn
vẹn.
b) Responsibility
15
• Bao gồm thuộc tính và phương thức. Thuộc tính mô tả đặc tính của lớp,
thông tin mà lớp cần phải có để hoàn thành mục tiêu của phần mềm mà
khách hàng yêu cầu. Phương thức được rút ra từ việc thực hiện các phân
tích ngữ pháp dựa trên các xử lí của hệ thống.
• 5 nguyên tắc để phân phối responsibility cho các lớp
+ Sự thông minh của hệ thống được phân phối công bằng
+ Mỗi responsibility phải bắt đầu từ tổng quan
+ Thông tin và hành vi liên quan đến responsibility phải được đặt
trong cùng một lớp
+ Mỗi thông tin cụ thể phải nằm trong một lớp đơn, không phân bố
nhiều lớp
+ Chia sẻ các responsibility giữa các lớp liên quan khi thích hợp
c) Cộng tác (collaborator)
Là hoàn thành responsibility theo 2 cách:
+ Một lớp có thể sử dụng các phương pháp của lớp để thao tác trên các
thuộc tính của nó, do đó hoàn thành responsibility cụ thể
+ Một lớp có thể cộng tác với các lớp khác.
3. Xác định cấu trúc và cây
• Khi lớp và đối tượng được xác định sử dụng mô hình CRC, người phân
tích bắt đầu tập trung vào cấu trúc của mô hình lớp và cây tổng hợp.
• Cấu trúc toàn thể - bộ phận mô tả các đối tượng liên kết:
4. Xác định chủ đề và các lớp con
• Một mô hình phân tích hệ thống phức tạp thường có hàng trăm lớp và
hàng chục các cấu trúc. Do đó cần phải mô tả ngắn gọn cho các cấu trúc.
• Khi các lớp con cộng tác với nhau để hoàn thành một nhiệm vụ, yêu cầu

nào đó của người sử dụng nào đó ta gộp chúng lại thành các chủ đề
(subject) hay hệ thống con.
• Một chương chình sẽ bao gồm nhiều các hệ thống con.
4. Mô hình hóa phân tích hướng đối tượng
1. Mô hình hóa là gì?
• Giúp đơn giản hóa thế giới thực bằng các mô hình.
• Giúp hiểu rõ hơn về hệ thống dưới một góc nhìn nào đó.
2. Tại sao phải mô hình hóa đối tượng
• Các mô tả về yêu cầu trong giai đoạn xác định yêu cầu:
16
+ Chỉ mô tả chủ yếu các thông tin liên quan đến việc thực hiện các
nghiệp vụ trong thế giới thực, chưa thể hiện rõ nét việc thực hiện các
nghiệp vụ trên máy tính.
+ Mô tả thông quá các văn bản dễ gây ra nhầm lẫn và không trực quan.
 Cần phải mô hình hóa yêu cầu.
3. Mô hình đối tượng – quan hệ
Mô tả các thành phần tĩnh của một mô hình phân tích yêu cầu khách hàng.
+ Thực hiện qua 3 bước:
+ Một mạng đối tượng cộng tác được mô tả mà không có các đường có
nhãn miêu tả mối quan hệ giữa các đối tượng.
+ Đặt tên cho các nhãn, để tránh mơ hồ dùng một mũi tên chỉ ra hướng
của quan hệ.
+ Khi các mối quan hệ được thiết lập, nó được ước lượng để quyết định
kiểu liên kết: 0:1, 1:1
4. Mô hình đối tượng - hành vi
+ Mô hình đối tượng - hành vi chỉ ra cách thức một hệ thống phân tích yêu cầu
khách hàng đáp ứng các sự kiện bên ngoài. Tạo ra mô hình này cần thực hiện
qua 5 bước:
+ Định giá các trường hợp sử dụng để hiểu đầy đủ về dãy các tương tác
trong hệ thống.

+ Xác định các sự kiện dẫn đến dãy tương tác và hiểu cách thức các sự
kiện liên quan đến các đối tượng.
+ Tạo ra event trace cho mỗi trường hợp sử dụng.
+ Xây dựng một biểu đồ chuyển trạng thái cho hệ thống.
+ Xem lại mô hình đối tượng – hành vi để kiểm tra tính chính xác nhất
quán.
5. UML
a) Định nghĩa.
+ UML là ngôn ngữ thống nhất trực quan giúp công việc được xử lý nhất
quán, giảm thiểu lỗi xảy ra.
+ UML xây dựng các mô hình chính xác, rõ ràng và đầy đủ.
+ Các mô hình UML có thể kết nối trực tiếp với rất nhiều ngôn ngữ lập
trình.
+ UML giúp tài liệu hóa về kiến trúc, yêu cầu, kiểm thử, lập kế hoạch dự
án, và quản lý việc bàn giao phần mềm.
17
b) Các biểu đồ UML
+ Biểu đồ use case (Use Case Diagram)
+ Biểu đồ hoạt động (Activity Diagram)
+ Biểu đồ tương tác (Interaction Diagrams)
▫ Biểu đồ trình tự (Sequence Diagram)
▫ Biểu đồ giao tiếp/cộng tác (Communication/Collaboration Diagram)
+ Biểu đồ trạng thái (Statechart Diagram)
+ Biểu đồ cấu trúc tĩnh (Static Structure Diagrams)
▫ Biểu đồ lớp (Class Diagram)
▫ Biểu đồ đối tượng (Object Diagram)
+ Biểu đồ thực thi (Implementation Diagrams)
▫ Biểu đồ thành phần (Component Diagram)
▫ Biểu đồ triển khai (Deployment Diagram)
c) Ví dụ biểu đồ use care ( Use Case Diagram )

Bài toán đặt ra:
Trong công ty thời trang A phòng nhân sự có nhu cầu quản lý nhân viên của
công ty sao cho dễ dàng hơn nên họ quyết định đặt bạn xây dựng cho họ một
phần mềm là phần mềm quản lý Nhân viên của công ty.
Hàng ngày thì nhân viên đi làm và chấm công bằng cách quét thẻ nhân viên
qua một máy chấm công, hàng ngày nhân viên phòng nhân sự phải đưa cho
các trưởng phòng là trong ngày này ai đi làm và ai vắng mặt của từng phòng
tương ứng, ai tới muộn. Cuối tháng phải đưa bảng thống kê xuống phòng kế
toán để tính lương cho các nhân viên trong công ty. Mỗi khi có nhu cầu tuyển
thêm nhân viên mới thì phòng nhân sự phải thông báo lên các phương tiện, các
trang web, sau đó nhân viên phòng nhân sự sẽ tiếp nhận đơn đăng ký của các
ứng viên đã đăng ký và lên lịch phỏng vấn cho các ứng viên. Khi ứng viên đi
phỏng vấn thì hệ thống sẽ phải đưa ra câu hỏi cho ứng viên từ ngân hàng câu
hỏi sẵn có của công ty và ứng viên phải trả lời câu hỏi đó. Nếu có ứng viên
nào được nhận thì tổ chức tiếp nhận họ vào công ty.(quá trình tiếp nhận chỉ là
việc thêm nhân viên vào danh sách nhân viên vào phân vào phòng nào đó).
Với trưởng phòng nhân sự thì được quyền sửa đổi thông tin của các nhân viên
trong công ty.
Thỉnh thoảng các nhân viên phòng nhân sự cần tìm kiếm thông tin của một
nhân viên để làm một công việc gì đó.
Khi thêm một nhân viên mới thì kiểm tra xem nhân viên đó đã có trong công
ty hay chưa(có trường hợp nhân viên nghĩ việc rồi sau đó một khoảng thời
gian họ quay lại công ty làm).
Biểu đồ Use Care như sau:
18
III.3: Thiết kế hướng đối tượng
Với các hệ thống hướng đối tượng chúng ta có thể xác định ra 4 tầng thiết kế như sau
• Tầng hệ thống con: Chứa mô tả của mỗi hệ thống con cho phép hệ thống đạt được
các yêu cầu của khách hàng và thực hiện các hạ tầng kĩ thuật hỗ trợ yêu cầu khách
hàng.

• Tầng lớp và đối tượng: Chứa phân lớp cho phép hệ thống được tạo ra bằng cách
sử dụng tổng quát hóa và tính tăng dần đặc tả đích
• Tầng thông điệp: Chứa các chi tiết cho phép các đối tượng giao tiếp.
• Tầng trách nhiệm: Chứa các cấu trúc dữ liệu và các thuật toán thiết kế cho mọi
thuộc tính và phương thức của lớp.
19
Các hoạt động trong pha thiết kế
• Định nghĩa hình thức về các kiểu dữ liệu và các dịch vụ. Các dịch vụ có thể
chuyển thành chức năng trong pha thiết kế.
• Thiết kế giao diện người dùng.
• Thiết kế cơ sở dữ liệu.
1. Ưu điểm của thiết kế hướng đối tượng
• Dễ dàng bảo trì. Các đối tượng được hiểu như là các thực thể đứng một mình.
• Đối tượng là các thành phần tái sử dụng.
• Với một số HT, có thể ánh xạ ngay từ thực thể thực sang thực thể của hệ
thống.
2. Các phương pháp thiết kế
• Phương pháp Booch: Quy trình gồm các bước:
− Lập kế hoạch kiến trúc.
− Chiến lược thiết kế.
− Lập kế hoạch phát hành.
• Phương pháp Coad and Yourdon
• Phương pháp Jacobson: Quy trình phát triển so Jacobson đề nghị:
− Xem xét sự thích nghi để mô hình phân tích lí tưởng phù hợp với môi
trường thế giới thực.
− Tạo ra các khối như các đối tượng thiết kế cơ bản.
− Tạo ra một biểu đồ tương tác cho biết cách các kích thích được chuyển đổi
giữa các khối.
− Tổ chức các khối trong hệ thống con.
− Xem xét lại công việc thiết kế.

• Phương pháp Rambaugh: Quy trình phát triển so Jacobson đề nghị:
− Thực hiện thiết kế hệ thống.
− Thiết kế đối tượng quản lí.
− Thực hiện các kĩ thuật điều khiển đã xác định trong thiết kế hệ thống.
− Điều chỉnh các cấu trúc lớp để tăng sức mạnh kế thừa.
− Thiết kế thông điệp để thực hiện các mối quan hệ đối tượng.
− Đóng gói các lớp và các liên kết trong một module.
20
• Phương pháp Wirfs – Brock: Quy trình phát triển do Wirfs – Brock đề xuất:
− Xây dựng giao thức cho mỗi lớp.
− Tạo ra đặc tả thiết kế cho mỗi hệ thống con.
− Mô tả mỗi hệ thống con theo cách mà nó thực hiện.
− Thiết kế đối tượng.
− Thiết kế thông điệp.
3. Quy trình thiết kế hướng đối tượng
• Thiết kế hệ thống
+ Đặt tên cho các hệ thống con và các thành phần cơ bản
+ Định danh các hệ thống con cho bộ xử lí.
+ Lựa chọn chiến lược quản trị cơ sử dữ liệu.
+ Xác định chuẩn cho phát triển.
+ Xác định các yêu cầu cài đặt.
• Xác định đối tượng
− Một mô tả của đối tượng có thể là một trong 2 dạng sau:
+ Mô tả giao thức: Thiết lập giao diện của đối tượng bằng cách xác định
mỗi thông điệp mà đối tượng có thể nhận và các phương thức liên quan
đối tượng thực hiện khi nhận được thông điệp.
+ Mô tả thực hiện: Chỉ ra chi tiết thực hiện cho mỗi phương thức bằng
cách chuyển thông điệp giữa các đối tượng. Chi tiết thực hiện bao gồm
thông tin về các phần riêng của đối tượng.
− Giao thức mô tả là một tập các thông điệp và các chú thích tương ứng với

mỗi thông điệp.
− Một mô tả thực hiện của một đối tượng cung cấp các chi tiết bên trong
được yêu cầu để thực hiện nhưng không cần thiết cho viện dẫn. Người
thiết kế đối tượng phải cung cấp mô tả thực hiện và do đó phải tạo ra chi
tiết bên trong của đối tượng.
• Thiết kế thuật toán và cấu trúc dữ liệu
Một thuật toán được tạo ra để thực hiện một đặc tả cho mỗi phương thức.
Trong nhiều trường hợp, thuật toán chỉ là tính toán đơn giản hoặc dãy các thủ
tục được thực hiện như một module phần mềm tự chứa.
− Cấu trúc dữ liệu được thiết kế đồng thời với thuật toán. Do các phương
thức thao tác các thuộc tính của lớp, thiết kế cấu trúc dữ liệu phản ánh
tốt nhất thuộc tính sinh ra trong thiết kế thuật toán của các phương thức
tương ứng.
21
− Các kiểu phương thức chia làm 3 loại chính:
+ Phương thức thao tác dữ liệu.
+ Phương thức thực hiện tính toán.
+ Phương thức điều khiển đối tượng cho sự kiện điều khiển.
− Để tối ưu hóa thiết kế hướng đối tượng. Rambaugh đã đưa ra các gợi ý
sau:
+ Xem lại mô hình đối tượng – quan hệ để đảm bảo rằng các thiết kế
được thực hiện sử dụng tài nguyên hiệu quả và nới lỏng các ràng buộc
thực hiện thêm vào các dư thừa nếu thấy cần thiết.
+ Xem lại thuộc tính cấu trúc dữ liệu và các thuật toán tương ứng để tăng
cường hiệu quả xử lí.
+ Tạo ra thuộc tính mới để giữ thông tin thừa kế, do đó tránh được việc
tính toán lại.
• Thiết kế lớp đối tượng
+ Quá trình thiết kế lớp bao gồm các công đoạn sau: Xác định tên lớp đối
tượng, xác định các quan hệ, xác định các thuộc tính, xác định các

phương thức, xác định lớp cha của nó ( nếu có ).
+ Tên lớp tuân theo một số quy tắc:
- Tên lớp phải là danh từ.
- Tên lớp phải có chu trình sống của mình, phải có thời điểm sinh ra,
chết đi của đối tượng đó.
- Nó độc lập tương đối với các đối tượng khác (tức là nó sẽ độc lập
hơn đối tượng khác một cách tương đối, về các mặt khác nó có thể phụ
thuộc lẫn nhau giữa các đối tượng, nhưng nó là một thể thức ngoài đời
có.).
+ Phần xác định các quan hệ . Việc xác định các quan hệ giữa các lớp là
việc phải lập ra một từ điển quan hệ giữa các lớp ví như: lớp A là con
lớp B chẳng hạn. Nó cũng có một số qui tắc sau để qui ước là: tên quan
hệ phải là động từ, Nó nói lên sự phụ thuộc lẫn nhau của các đối
tượng.
+ Việc xác định các thuộc tính nó có một số qui định như sau: tên thuộc
tính phải là danh từ, nó phải có sự lệ thuộc duy nhất vào đối tựng đang
xét. Trong khi xác định thuộc tính cần chú ý: nếu thuộc tính đó phụ
thuộc một đối tượng thì thuộc tính đó là thuộc tính của đối tượng,
thuộc tính phụ thuộc vào nhiều đối tượng thì thuộc tính đó là thuộc
tính quan hệ.
+ Việc xác định phương thức thực chất đó là các hành động, công việc,
của các phương thức đó, nên tên phương thức có nhiều loại phương
thức trong xây dựng một lớp đối tượng:
- Các phương thức thuộc nhóm khởi tạo: gồm phương thức khởi tạo
mặc định, phương thức khởi tạo khi biêt một số thuộc tính của nó,
phương thức phá hủy.
- Phương thức thuộc nhóm cung cấp (phương thức get)
- Các phương thức thuộc nhóm thiết lập (phương thức set)
22
- Các phương thức xử lý tính toán: các phương thức này sẽ đóng vai

trò là nơi thực thi các tính toán của từng class tương ứng trước khi
thêm, hay làm gì đó với hệ thống dữ liệu.
- Các phương thức thuôc nhóm kiểm tra. Đây là nơi kiểm tra các ràng
buộc về dữ liệu cho class tương ứng của bạn.
• Một số quy ước để thiết kế một class.
+ Để thiết kế một class trước tiên bạn phải đưa ra tên của nó là gì.
+ Xác định các phương thức, thuộc tính cho class đó như đã nói ở trên
+ Nếu các thuộc tính có cấu trúc phức tạp hoặc có các thuộc tính liên hệ
với nhau và nó có ngữ nghĩa cụ thể (ngoài đời có nó) thì nên tách nó ra
thành một lớp độc lập với nhau.
+ Khi 2 hay nhiều lớp có các thuộc tính chung thì nên tách thành một lớp
cha của các lớp đó và các lớp đó được kế thừa từ lớp cha của nó.
+ Khi gặp các thuộc tính có khả năng phân loại trong một số trường hợp
thì ta tách các thuôc tính con của nó thành thuộc tính con tương ứng.
• Thiết kế một mô hình class.
+ B1: Thiết kế các class như các cách ở trên đã nêu.
+ B2: Xác định quan hệ giữa các class.
+ B3: Xác định các quan hệ và bảng số của nó.
Bảng số của 2 lớp là phần mô tả dữ liệu giữa 2 lớp đó. Có các quan hệ
giữa các bảng số như sau:
I- Một nhiều
1 A thì tương ứng với nhiều B
1B tương ứng với 1A
II- Một - Một 1A thì tương ứng với 1B
1B tưng ứng với 1A.
1A tương ứng với 1B
III - nhiều nhiều.
1 A tương ứng với nhiều B.
1B tương ứng với nhiều A


• Thiết kế thành phần chương trình và giao diện
− Đây là khía cạnh quan trọng của chất lượng thiết kế phần mềm.
23
− Cách tiếp cận hướng đối tượng xác định đối tượng như một thành phần
chương trình, bản thân nó liên kết với các thành phần khác. Chúng ta
phải xác định được giao diện tồn tại giữa các đối tượng và toàn bộ cấu
trúc của đối tượng.
− Giao diện yêu cầu phải dễ sử dụng.
III.4: Cài đặt
Thực hiện các việc xây dựng chương trình bằng ngôn ngữ lập trình. Mục đích của luồng công
việc này là:
- Xác định cách thức viết mã cài đặt
- Cài đặt các lớp và đối tượng như là các thành phần
- Tích hợp vào trong một hệ thống có thể thực thi được
24
a) Vai trò của cài đặt trong vòng đời phần mềm
Cài đặt là trọng tâm của các bước lặp trong giai đoạn Xây dựng. Nó cũng được tiến
hành trong giai đoạn Chi tiết để tạo ra khung kiến trúc khả thi. Cài đặt cũng được tiến
hành trong giai đoạn chuyển giao để xử lí các lỗi được tìm thấy khi phát hành phiên
bản beta.
b) Quy trình cài đặt
• Cài đặt kiến trúc.
− Xác định các thành phần quan trọng về mặt kiến trúc, chẳng hạn như
các thành phần có thể thi hành được.
− Kiến trúc sư bảo trì, tinh chế và cập nhật mô tả kiến trúc và các khung
nhìn kiến trúc của mô hình cài đặt và triển khai.
• Xác định các thành phần quan trọng về mặt kiến trúc.
• Xác định các thành phần chạy được và ánh xạ chúng lên các nút.
• Tích hợp hệ thống.
Mục tiêu:

25

×