Tài liệu phụ lục 6 phân tích, thiết kế và lập trình tượng - Pdf 91

phụ lục 6
phân tích, thiết kế và lập trình hướng đối
tượng
§

1. Phân tích hướng đối tượng
1.1. Giới thiệu
Phân tích hệ thống không chỉ có liên quan chặt chẽ với sự xuất
hiện của máy tính, mà thực tế nhu cầu phân tích đã có trước khi máy
tính xuất hiện từ nhiều thế kỷ. Khi các Vua Pharaon của Ai Cập cổ đại
xây dựng các Kim Tự Tháp, thì những người thiết kế Kim Tự Tháp có
thể được coi như những nhà thiết kế hệ thống, những kiến trúc sư đại
tài, còn những người tổ chức vận chuyển nguyên vật liệu, huy động
nhân công xây dựng Kim Tự Tháp, theo một nghĩa nào đó, chính là
những người phân tích hệ thống. Từ giữa thế kỷ trước, các nhà tư bản,
các doanh nghiệp muốn có lợi nhuận cao đã phải tiến hành nghiên cứu
phương pháp, cách tổ chức, phân công lao động hợp lý để cho các hệ
thống sản xuất, kinh doanh hoạt động đạt hiệu quả cao hơn. Chính họ
đã thực hiện phân tích những hệ thống đó để đề ra những phương
pháp quản lý, cách tổ chức mới, tốt hơn.
Cùng với sự phát triển của công nghiệp điện tử, giá thành phần
cứng giảm nhiều, nhưng giá phần mềm lại tăng. Nhất là phí tổn cho
bảo trì để hệ thống đáp ứng được như cầu của người sử dụng lại
chiếm một tỷ trọng rất lớn trong tổng chi phí cho một dự án phát triển
phần mềm. Điều này cho thấy vai trò của công việc phân tích hệ
thống là rất quan trọng và cần thiết phải tìm ra phương pháp tốt hơn
cho việc phát triển hệ thống.
Phân tích làm nhiệm vụ phân tách bài toán thành các thành phần
nhỏ hơn. Trong công nghệ phần mềm thì nó còn có nghĩa là phải hiểu
rõ quá trình xây dựng đặc tả yêu cầu của người sử dụng, nắm được
các chức năng và cách phân rã hệ thống vật lý thành các đơn thể

trả lời được những câu hỏi nêu trên thì người phân tích cũng cần phải
phát hiện, tìm hiểu kỹ những hệ thống đã có hoặc đang hoạt động
trong thực tế. Có thể đó chưa phải là hệ thống tin học hoá. Trên cơ sở
nghiên cứu những hệ thống cũ, xác định rõ yêu cầu của người sử dụng
để quyết định xem hệ thống cần xây dựng sẽ làm cái gì và hoạt động
như thế nào. Quá trình đó được mô tả như ở hình 1-1.
577 578
Tìm hiểu Quyết định
hệ thống cũ hệ thống mới
làm cái gì?
Yêu cầu của
người sử dụng
Phát hiện những Xác định rõ
hệ thống cũ hệ thống cần
phát triển
Hình 1-1. Mức độ bao quát thế giới thực
Trong các phương pháp truyền thống thì mô hình dòng dữ liệu
được mô tả thông qua sơ đồ dòng dữ liệu. Các quá trình trong hệ
thống được xác định thông qua việc phân rã chức năng top-down. Sơ
đồ biến đổi trạng thái được sử dụng để mô tả sự biến đổi thông tin và
dòng điều khiển trong hệ thống. Phương pháp hướng đối tượng kết
hợp hai phương diện dữ liệu với quá trình, gộp chung hành vi cục bộ
với dữ liệu trong một đơn vị cấu trúc. Phương pháp phân tích hướng
đối tượng cung cấp cho chúng ta công cụ đơn giản nhưng đủ mạnh để
xác định các đối tượng và xây dựng các đơn nguyên của hệ thống cần
phát triển. Phân tích hướng đối tượng bao gồm các bước sau:
+ Tìm hiểu bài toán.
+ Xác định rõ các đặc tả yêu cầu của người sử dụng, của hệ thống
phần mềm.
+ Xác định các đối tượng và các thuộc tính của chúng.

hệ thống phần mềm.
1.2.2. Xây dựng các đặc tả yêu cầu
Khi đã định nghĩa rõ bài toán thì bước tiếp theo là phải tìm hiểu
xem hệ thống dự kiến sẽ yêu cầu làm cái gì? Điều quan trọng ở đây là
phải xây dựng được danh sách các yêu cầu của người sử dụng. Rõ
ràng là ở đây cần có sự trao đổi, hiểu biết giữa người sử dụng và
người phát triển hệ thống về những điều mà họ mong muốn. Dựa trên
những yêu cầu của người sử dụng, người phát triển đưa ra các đặc tả
cho hệ thống. Người xây dựng hệ thống phải trả lời được các câu hỏi:
+ Đầu ra (output) của hệ thống là cái gì?
+ Hệ thống sẽ phải làm cái gì để có kết quả mong muốn, nghĩa là
phải xử lý cái gì?
+ Đầu vào (input) của hệ thống là cái gì?
+ Những tài nguyên mà hệ thống yêu cầu là cái gì?
Phải hiểu rõ nguồn gốc, các dạng thông tin cần cung cấp cho hệ
thống hoạt động. Hệ thống sẽ giải quyết vấn đề gì, những kết quả cần
phải có là gì. Xác định được mối quan hệ giữa đầu vào/ra
(input/output), nghĩa là xác định được những khẳng định về mối quan
hệ giữa tiền điều kiện và hậu điều kiện cho các quá trình trong hệ
thống.
Các đặc tả chi tiết phục vụ cho việc xây dựng và trắc nghiệm hệ
thống để kiểm tra xem những nhiệm vụ đặt ra có được hoàn thành hay
không.
1.2.3. Xác định các đối tượng
Thông thường các đối tượng sẽ được xác định thông qua các thực
thể trong thế giới thực và được trừu tượng hoá thành các đối tượng
trừu tượng. Để xác định các đối tượng chúng ta có thể sử dụng một
trong những công cụ sau:
1. Sơ đồ dòng dữ liệu
2. Phân tích văn bản.

đơn hàng
Khách
Kho sách
581 582
Hình 1-3. Sơ đồ dòng dữ liệu
Các quá trình được biểu diễn trong các ô hình tròn hoặc ellipse là
các thủ tục, các hàm. Hình 1-3 mô tả sơ đồ dòng dữ liệu của hệ thống
xử lý đơn hàng và vận chuyển thông tin cho công ty phát hành sách.
Trong sơ đồ dòng dữ liệu của hệ thống thì các thực thể được biểu
diễn trong các hình chữ nhật và các kho dữ liệu được biểu diễn với tên
gọi đặt trong hai đường thẳng song song. Kho dữ liệu biểu diễn cho
một lượng lớn thông tin cần phải lưu trữ trong một thời gian dài,
thường là trong các tệp dữ liệu để cho nhiều người có thể truy nhập
vào. Sơ đồ dòng dữ liệu có thể sử dụng để biểu diễn quá trình xử lý
thông tin trong hệ thống ở nhiều mức độ trừu tượng khác nhau. Quá
trình "Xử lý đơn hàng", "Tập hợp đơn hàng" ở hình 1-4 được làm mịn
từ quá trình "Xử lý đơn hàng" ở hình 1-3 và có thể tiếp tục được làm
mịn thêm, mô tả những quá trình như thanh toán, giao hàng v.v..., ở
mức độ chi tiết hơn.
CSDL về sách
Xử lý
đơn hàng
CSDL về khách hàng
Tập hợp
đơn hàng
Hình 1-4. Sơ đồ dòng dữ liệu trong hệ xử lý đơn đặt hàng
Phương pháp tạo ra sơ đồ dòng dữ liệu
Chúng ta có thể tạo ra sơ đồ dòng dữ liệu theo một trong hai cách
sau:
1. Dùng sơ đồ chức năng: Sơ đồ chức năng chỉ cho chúng ta biết

KHACH_HANG. Hai nút: kho dữ liệu "CSDL về sách" với nút dữ
liệu "Các kho sách" cùng đại diện cho đối tượng SACH vì cùng quản
Đơn đặt
Các kho
583 584
lý những thông tin về sách; đối tượng DON_HANG được xác định từ
nút "Đơn đặt sách" còn KHACH_HANG được xác định từ nút
"CSDL về khách hàng".
Phân tích văn bản:
Cách thực hiện thứ hai là dựa trên mô tả bằng văn bản của bài toán
hoặc lời giải để phân tích. Văn bản mô tả có thể gồm có một hay
nhiều câu, một hay nhiều đoạn, chương, phần, tuỳ thuộc vào mức độ
phức tạp của bài toán. Trong đó các đối tượng thường được mô tả
bằng các danh từ. Danh từ thường được phân loại thành danh từ riêng,
danh từ chung, và các danh từ trừu tượng hoặc danh từ chỉ đại lượng.
Điều quan trọng cần lưu ý khi phân tích là phải dựa vào ngữ nghĩa
và ngữ cảnh để phân loại danh từ. Một từ có thể là danh từ chung
trong ngữ cảnh này song nó cũng có thể là danh từ trừu tượng hoặc
danh từ chỉ đại lượng trong ngữ cảnh khác. Cũng cần lưu ý là không
phải tất cả các danh từ đều được dùng để biểu diễn cho những đối
tượng cần thiết cho hệ thống của chúng ta.
Bảng 1-1. Bảnh phân loại danh từ
Kiểu của danh từ
ý nghĩa Ví dụ
Danh từ chung Xác định một lớp các thực
thể
Ô tô, khách hàng, học sinh
Danh từ riêng Tên của một đối tượng xác
định
Nguyễn An, IBM, BBC

Đối với lớp SACH
Tac_gia : Tên tác giả của cuốn sách
Ten_sach : Tên gọi, tiêu đề của cuốn sách
Nha_XB : Nhà xuất bản
Nam_XB : Năm xuất bản
Đối với lớp DON_HANG
So_hieu : Số hiệu đơn đặt hàng
SH_KH : Số hiệu hoặc tên khách hàng
Ngay_DH : Ngày đặt hàng
Ngay_GH : Ngày giao hàng
Đối với lớp KHACH_HANG
SH_KH : Số hiệu khách hàng
Ten_KH : Tên khách hàng
585 586
Dia_chi : Địa chỉ, nơi giao hàng
TK_KH : Số tài khoản của khách hàng trong ngân hàng
Danh sách các thuộc tính của các lớp sẽ được tiếp tục xem xét, bổ
sung cho đầy đủ trong giai đoạn thiết kế. Cần lưu ý là phải cân nhắc
để đưa ra được những thuộc tính chung nhất, với những tên gọi đặc
trưng cho từng lớp đối tượng.
1.2.4. Xác định các hàm
Để mô tả đầy đủ, chính xác các đối tượng chúng ta cần tiếp tục xác
định các hàm mô tả hành vi của chúng. Chúng ta có thể dựa vào văn
bản mô tả bài toán để xác định các hàm. Thông thường, trong các câu
mô tả thì động từ được dùng để chỉ một hành động, sự xuất hiện, phân
loại hay cấu thành của các đối tượng.
Bảng 1-2. Bảng phân loại động từ
Các kiểu động từ
ý nghĩa Ví dụ
Động từ chỉ hành động

muốn mua sách thì phải ghi vào đơn đặt hàng, nghĩa là đối tượng
KHACH_HANG sẽ phải gửi một thông báo (đơn đặt hàng) cho đối
tượng DON_HANG. Tương tự, DON_HANG lại có quan hệ với
SACH vì những cuốn sách sẽ được bán cho khách hàng khi nhận
được các đơn đặt hàng. Quan hệ giữa các lớp đối tượng có thể có
những kiểu khác nhau và được phân thành ba kiểu sau:
1. Quan hệ một - một
2. Quan hệ một - nhiều
3. Quan hệ nhiều - nhiều
Quan hệ một - một: Hai lớp có quan hệ 1-1 nếu với mỗi đối tượng
của lớp này có liên quan tương ứng một đối tượng ở lớp kia và ngược
lại. Ví dụ: Hai lớp PHIEU_GHI và MAT_HANG có quan hệ 1-1. Mỗi
phiếu ghi trong lớp PHIEU_GHI sẽ mô tả đúng một mặt hàng được
quản lý trong lớp MAT_HANG. Quan hệ này được biểu diễn như sau:
PHIEU_GHI MAT_HANG
Hình 1-5. Quan hệ một - một
Quan hệ một - nhiều: Hai lớp A và B có quan hệ một - nhiều nếu:
- Với mỗi đối tượng trong lớp A có quan hệ với một hay nhiều đối
tượng trong lớp B.
- Mỗi đối tượng trong lớp B có quan hệ với một đối tượng của
lớp A.
Quan hệ một - nhiều được biểu diễn như sau:
A KHACH_HANG
B DON_HANG
Hình 1-6. Quan hệ một - nhiều
587 588
Lớp KHACH_HANG có quan hệ một - nhiều với lớp
DON_HANG vì một khách hàng có thể đặt nhiều đơn hàng khác
nhau.
Quan hệ nhiều - nhiều: Hai lớp A và B có quan hệ nhều - nhiều

trong những hệ quản trị dữ liệu phổ dụng như FoxPro, Access v.v... ở
đây chúng ta muốn thông qua ví dụ này làm rõ hơn những công việc,
các bước cần thực hiện trong quá trình phân tích hướng đối tượng.
1.3.2. Phân tích hệ thống
Bài toán nêu ở trên tương đối rõ ràng. Yêu cầu xây dựng hệ thống
phần mềm để quản lý các cuốn sách. Phân tích hướng đối tượng là
việc lặp lại nhiều lần việc phân tích bài toán để xác định các đối
tượng và xây dựng các đặc tả bài toán. Nhưng phân tích hướng đối
tượng còn có yếu tố tổng hợp. Việc thực hiện trừu tượng hoá những
yêu cầu của người sử dụng và xác định rõ được các đối tượng chính
cho phép tập hợp chúng để tạo ra cấu trúc hệ thống logic hỗ trợ cho
giai đoạn thiết kế tiếp theo.
Nhiệm vụ chính của giai đoạn phân tích là xây dựng mô hình khái
niệm cho thế giới thực. Thế giới thực của chúng ta ở đây gồm những
cuốn sách và bạn đọc. Những cuốn sách sẽ được để ở đâu đó, trong
phòng làm việc hoặc đã cho ai mượn.
Để hiểu rõ hơn về các thực thể và mối quan hệ của chúng trong thế
giới thực mà bài toán đặt ra ở đây là sách và bạn đọc, chúng ta cần tìm
hiểu kỹ về hệ thống có liên quan như hệ thống thư viện. Trên cơ sở
đó, xây dựng các đặc tả yêu cầu cho bài toán.
Phân tích kỹ bài toán, dựa vào văn bản mô tả bài toán chúng ta
thấy có hai lớp đối tượng là: SACH và BAN_DOC. Trong các hệ
thống thư viện, một cuốn sách có thể được xác định thông các thuộc
tính như: mã số thư viện, tên tác giả, tên gọi cuốn sách, nhà xuất bản,
năm xuất bản v.v... Để đơn giản chúng ta có thể dùng tên tác giả để
xác định cuốn sách, hoặc tên gọi cùng tên tác giả nếu như có hai cuốn
cùng tác giả, còn bạn đọc thì sẽ được xác định thông qua họ và tên
của từng người. Ví dụ: Peter Norton là cuốn sách “Cẩm nang lập
trình” do Peter Norton viết, là một đối tượng trong lớp SACH. Lan
589 590

Attribute //Thuộc tính
Tac_gia : Tác giả cuốn sách,
Ten_sach : Tên gọi hoặc tiêu đề của cuốn sách
Xuat_ban : Nhà, năm xuất bản
Noi_giu : Sách đã cho ai mượn hay có tại thư viện
Function //Hàm
Nhap_sach() : Nhập các thông tin về cuốn sách vào
thư viện
Cho_muon() : Xác định là sách đã cho mượn
Hoan_tra() : Sách đã được trả lại thư viện
Display() : Hiện các thông tin về cuốn sách
}
class BAN_DOC
{
Attribute //Thuộc tính
Ho_ten : Họ và tên người mượn sách,
Dia_chi : Địa chỉ, điện thoại của bạn đọc
Ten_sach : Tên những cuốn sách đã mượn
Function //Hàm
Nhan_HT() : Nhập họ tên, địa chỉ của một bạn đọc
Muon() : Nhập thêm những cuốn sách mới mượn
Tra() : Trả sách cho thư viện
Display() : Cho biết những thông tin về bạn đọc
}
Bây giờ chúng ta cần xác định mối quan hệ giữa hai lớp SACH và
BAN_DOC. Ví dụ, Lan Anh mượn cuốn Peter Norton có thể được mô
tả như đồ thị sau:
591 592
BAN_DOC
Lan Anh SACH

những cặp bộ giữa các thành phần là cực tiểu nhưng mức độ cố kết hệ
thống lại cao hơn cách tiếp cận chức năng. Chúng ta sẽ tập trung
nghiên cứu các bước cần thực hiện trong thiết kế hướng đối tượng và
ví dụ mô tả cách thiết kế các lớp, xây dựng cấu trúc hệ thống trong
quá trình phát triển phần mềm.
Che giấu thông tin là chiến thuật thiết kế sao cho có thể giấu được
nhiều nhất lượng thông tin ở bên trong các thành phần cơ sở của một
thiết kế. Điều này có nghĩa là sự trao đổi giữa các thực thể của thiết
kế là cực tiểu và vì vậy thiết kế dễ dàng thay đổi hơn. Thiết kế hướng
đối tượng (TKHĐT) là phương pháp thiết kế được thực hiện theo
nguyên lý che giấu thông tin. Khác với cách tiếp cận truyền thống
(hướng chức năng) là nó xem hệ thống phần mềm (HTPM) là tập hợp
các đối tượng tương tác với nhau. Mỗi đối tượng làm việc với trạng
thái (dữ liệu) riêng của mình. Đối tượng, khái niệm cơ sở đã được đề
cập nhiều ở các phần trước là một thực thể có tập các thuộc tính và
tập các hàm tác động trên các thuộc tính đó.
593 594
Tập giá trị các thuộc tính xác định trạng thái của một đối tượng.
Một đối tượng không được quyền truy nhập trực tiếp hoặc làm thay
đổi trạng thái của đối tượng khác. Điều này dẫn đến là các đối tượng
chỉ có thể trao đổi với nhau bằng các thông báo. Thông báo sẽ kích
hoạt các hàm của đối tượng nhận thông tin tương ứng. Hoạt động của
cơ chế truyền thông báo giữa các đối tượng là dị bộ (không đồng bộ)
vì vậy chương trình được thiết kế theo hướng đối tượng có thể được
thực hiện song song hoặc tuần tự tuỳ theo phương pháp lập trình và
những công cụ mà chúng ta thực hiện cài đặt có cho phép thực hiện
song song hay không.
Thiết kế hướng đối tượng là phương pháp thiết kế hệ thống phần
mềm không phụ thuộc vào ngôn ngữ lập trình. Nhiều đặc tính như
“Che dấu”, “kế thừa” làm cho việc thực hiện thiết kế trở nên dễ dàng

đề cập đến khả năng sử dụng lại trong thiết kế, phân loại các đối
tượng thành những hệ thống con trong cấu trúc phân cấp.
Cách tiếp cận TKHĐT gồm các bước sau:
1. Xác định các lớp và các đối tượng, các thành phần cơ bản của
lời giải.
2. Xây dựng các đặc tả cho các đối tượng, các lớp và mối quan
hệ giữa chúng.
3. Xây dựng cấu trúc phân cấp cho các lớp.
4. Thiết kế các lớp.
5. Thiết kế các hàm thành phần của lớp.
6. Thiết kế chương trình chính.
Xác định các đối tượng trong không gian lời giải
Khi phân tích văn bản mô tả bài toán và các yêu cầu của người sử
dụng, chúng ta xác định được các thực thể, những đối tượng trong
không gian bài toán. Bước tiếp theo là phân tích kỹ các đối tượng, xác
định các thuộc tính và các hàm đặc tả cho từng đối tượng. Đồng thời
xác định thêm những đối tượng mới xuất hiện trong không gian lời
giải. Khi xây dựng các đặc tả cho đối tượng, chúng ta phải xác định
được các thuộc tính, dữ liệu mô tả trạng thái của đối tượng và các
hàm mô tả hành vi của đối tượng. Thuộc tính là miền dữ liệu riêng
của lớp đối tượng, là dữ liệu cục bộ trong một lớp. Thực hiện nguyên
lý che giấu thông tin, trong một lớp dữ liệu có thể tổ chức thành hai
595 596
vùng: vùng sở hữu riêng, chỉ dành riêng cho những đối tượng trong
cùng lớp và vùng dùng chung, cho phép những đối tượng trong các
lớp có quan hệ với nhau được quyền sử dụng. Các hàm (nhiều sách
còn gọi là thủ tục, dịch vụ, phương thức) có thể dùng chung cho một
số đối tượng. Quá trình xác định các hàm mô tả đối tượng (còn được
gọi là hàm thành phần của lớp) được thực hiện như sau:
1. Nếu một hàm chỉ cần thiết cho một đối tượng thì hàm này chỉ

triệt để nguyên lý kế thừa. Quan hệ kế thừa giữa các lớp là sự giống
nhau trong các lớp đối tượng và khả năng sử dụng một số đặc tính kế
thừa từ những lớp trước. Một lớp có thể sử dụng lại một số thuộc tính,
hàm của một hay nhiều lớp đã được định nghĩa trước. Lớp được định
nghĩa trước có những tính chất chung để cho những lớp khác có thể
kế thừa được gọi là lớp cơ sở và lớp kế thừa lớp cơ sở được gọi là lớp
dẫn xuất (hoặc là lớp con).
Lớp dẫn xuất kế thừa một số hoặc tất cả các đặc tính của một hay
nhiều lớp cơ sở. Một lớp có thể kế thừa các tính chất của nhiều lớp ở
nhiều mức khác nhau và được bổ sung thêm một số đặc tính riêng. Có
năm loại kế thừa: kế thừa đơn, kế thừa bội, kế thừa đa mức, kế thừa
phân cấp, kế thừa phức hợp. Trong quan hệ kế thừa, chỉ những thuộc
tính, hàm được khai báo sử dụng chung mới được quyền kế thừa.
Ví dụ: Trong hệ thống quản lý các loài chim, lớp cơ sở đầu tiên
chúng ta có thể xây dựng là lớp CAC_LOAI_CHIM có thuộc tính,
chức năng chung nhất như có lông, đẻ chứng. Trong số các loài chim
thì chúng ta cá thể phân làm hai loại: loại chin không bay được và loại
chim biết bay. Hai lớp CHIM_BIET_BAY và
CHIM_KHONG_BIET_BAY kế thừa từ lớp CAC_LOAI_CHIM
nghĩa là các đặc tính: có lông và đẻ chứng không cần phải mô tả trong
các lớp đó nữa mà chỉ cần bổ sung những đặc tính mô tả thêm về khả
năng biết bay hoặc không biết bay của các loài chim. Tiếp tục phân
tích lớp CHIM_KHONG_BIET_BAY, giả sử gồm hai lớp
CANH_CUT và KIWI còn lớp CHIM_BIET_BAY gồm các lớp
CHIM_CO_DO, CHIM_NHAN v.v... Trên cơ sở xác định quan hệ kế
thừa các loài chim chúng ta có cấu trúc như trong hình 2-1.
CAC_LOAI_CHIM
- Có lông
597 598


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status