Chương 1 MỞ ĐẤU
1.1. Các hệ thống thông tin
Hệ thống thông tin là tập hợp các thành phần được tổ chức thống nhất, có
chức năng thu thập, xử lý, phân tích, tổng hợp thông tin giúp các nhà quản lý quản
lý tốt cơ sở của mình, trợ giúp ra quyết định hoạt động kinh doanh (mang lại lợi ích
cho tổ chức)
* Các thành phần của hệ thống thông tin:
- Dữ liệu: chứa trong các tập tin và cơ sở dữ liệu, là thành phần quan trọng
của mọi hệ thống thông tin (HTTT)
- Quá trình: Các công việc mà người sử dụng, người quản lý và nhân viên
phải thực hiện HTTT
- Phần cứng: Là lớp vật lý của HTTT (máy tính, mạng, cơ sở hạ tầng và công
nghệ)
- Phần mềm:
+ Phần mềm hệ thống: điều khiển phần cứng và các phầm mềm khác (hệ
điều hành, phầm mềm điều khiển thiết bị)
+ Phần mềm ứng dụng: các chương trình xử lý dữ liệu để tạo ra thông tin
(ứng dụng do công ty/đơn vị thực hiện, các sản phẩm mua từ nhà cung cấp…)
- Con người: người sử dụng hệ thống là người cho/ nhận thông tin đối với hệ
thống.
+ Người sử dụng bên trong: người quản lý, kỹ thuật viên
+ Người sử dụng bên ngoài: Khách hàng, nhà cung cấp
Xét về mặt ứng dụng Hệ thống thông tin có thể được phân chia thành một số
dạng như sau:
Hệ thống thông tin quản lý: Bao gồm các hệ thống thông tin hỗ trợ các hoạt
động nghiệp vụ và quản lý của các doanh nghiệp, các tổ chức. Ví dụ các hệ thống
quản lý nhân sự, hệ thống kế toán, hệ thống tính cước và chăm sóc khách hàng, hệ
thống quản lý thư viện, hệ thống đào tạo trực tuyến ...
Các hệ thống Website: là các hệ thống có nhiệm vụ cung cấp thông tin cho
người dùng trên môi trường mạng Internet. Các hệ thống Website có đặc điểm là
1
thông tin cung cấp cho người dùng có tính đa dạng (có thể là tin tức hoặc các dạng
file đa phương tiện) và được cập nhật thường xuyên.
Hệ thống thương mại điện tử: Là các hệ thống website đặc biệt phục vụ việc
trao đổi mua bán hàng hoá, dich vụ trên môi trường Internet. Hệ thống thương mại
điện tử bao gồm cả các nền tảng hỗ trợ các giao thức mua bán, các hình thức thanh
toán, chuyển giao hàng hoá ...
Hệ thống điều khiển: là các hệ thống phần mềm gắn với các thiết bị phần
cứng hoặc các hệ thống khác nhằm mục đích điều khiển và giám sát hoạt động của
thiết bị hay hệ thống đó.
Mỗi loại hệ thống thông tin có những đặc trưng riêng và cũng đặt ra những
yêu cầu riêng cho việc phát triển hệ thống.
Ví dụ: các hệ thống điều khiển đòi hỏi những yêu cầu về môi trường phát
triển, hệ điều hành và ngôn ngữ lập trình riêng; các hệ website thực thi các chức
năng trên môi trường mạng phân tán đòi hỏi cách phát triển riêng...Do vậy, không
có một phương pháp luận chung cho tất cả các dạng hệ thống thông tin.
Phạm vi của tài liệu này nhằm giới thiệu một số khái niệm cơ bản của UML
cho phát phiển các hệ thống và để dễ dàng minh hoạ chúng ta sẽ xem xét vấn đề
phát triển dạng hệ thống thông tin phổ biến nhất là hệ thống thông tin quản lý.
1.2. Khái quát vòng đời phát triển hệ thống thông tin
Vòng đời phát triển hệ thống – SDLC (System Development life Cycle): bao
gồm nhiều giai đoạn từ khi bắt đầu xây dựng hệ thống thông tin đến khi kết thúc
khai thác hệ thống thông tin.
Việc phát triển hệ thống thông tin không chỉ đơn giản là lập trình mà luôn
được xem như một tiến trình hoàn chỉnh.
Ví dụ: Tiến trình phần mềm là phương cách sản xuất ra phần mềm với các
thành phần chủ yếu bao gồm: mô hình vòng đời phát triển phần mềm, các công cụ
hỗ trợ cho phát triển phần mềm và những người trong nhóm phát triển phần mềm.
Như vậy, tiến trình phát triển phần mềm nói chung là sự kết hợp cả hai khía
cạnh kỹ thuật và quản lý
+ Kỹ thuật: vòng đời phát triển, phương pháp phát triển, các công cụ và ngôn
ngữ sử dụng…
2
+ Quản lý: quản lý các phần mềm
Mô hình vòng đời phần mềm là các bước phát triển một sản phẩm phần
mềm cụ thể. Một vòng đời phát triển phẩn mềm thường có các pha cơ bản sau:
Pha xác định yêu cầu: khám phá các khái niệm liên quan đến việc phát
triển phần mềm, xác định chính xác yêu cầu và các ràng buộc của khách
hàng với sản phẩm phần mềm đó.
Pha phân tích: mô tả chức năng của sản phẩm, các input của sản phẩm và
các output được yêu cầu; khám phá các khái niệm trong miền quan tâm của
sản phẩm và bước đầu đưa ra giải pháp xây dựng hệ thống.
Pha thiết kế: xác định cụ thể phần mềm sẽ được xây dựng như thế nào. Pha
thiết kế bao gồm hai mức là thiết kế kiến trúc và thiết kế chi tiết.
Pha cài đặt tích hợp: cài đặt chi tiết và tích hợp hệ thống phần mềm dựa
trên kết quả của pha thiết kế.
Pha bảo trì: tiến hành sửa chữa phần mềm khi có các thay đổi. Đây là pha
rất quan trọng, tiêu tốn nhiều thời gian và chi phí nhất trong tiến trình phát
triển phần mềm.
Pha loại bỏ: thực hiện loại bỏ phần mềm hoặc thay thế phần mềm bởi một
phần mềm hoàn toàn mới.
Ngoài ra có hai quá trình luôn thực hiện trong quá trình trong vòng đời phát
triển phần mềm là viết tài liệu và kiểm thử, hai quá trình này không hình thành pha
riêng mà thực hiện song song với các pha trong tiến trình phần mềm, nghĩa là các
pha đều tiến hành viết tài liệu và kiểm thử ở mức độ khác nhau.
1.2.1. Mô hình thác nước
Mô hình thác nước được thực hiện theo phương pháp sau:
Sau khi yêu cầu của hệ thống đã được xác định và kiểm tra, pha phân tích sẽ
được tiến hành để xây dựng tài liệu. Sau khi tài liệu phân tích được khách hàng
chấp nhận, nhóm phát triển sẽ tiến hành lập kế hoạch và lịch biểu cho các quá trình
phát triển tiếp theo. Sau đó, các pha thiết kế, cài đặt và tích hợp sẽ lần lượt được
tiến hành; mỗi pha này đều có phần kiểm tra để khi cần có thể quay lại sửa đổi tài
liệu của pha trước đó. Khi phần mềm đã được triển khai và chuyển sang pha bảo
trì; nếu có lỗi hoặc thay đổi xảy ra, nhóm thiết kế sẽ phải quay trở lại sửa đổi tài
3
Pha yêu cầu
Kiểm tra
Pha đặc tả
Kiểm tra
Pha thiết kế
Kiểm tra
Pha cài đặt
Kiểm tra
Pha tích hợp
Kiểm tra
Pha bảo trì
Pha bảo trì
Thay đổi yêu cầu
Kiểm tra
liệu cho một trong các pha trước đó và nếu cần có thể quay trở lại thay đổi một số
yêu cầu ban đầu của hệ thống.
Phát
Bảo trì
Hình 1. Tiến trình phần mềm theo mô hình thác nước
1.2.2. Mô hình làm bản mẫu nhanh
Trong mô hình làm bản mẫu nhanh, nhóm phát triển sẽ xây dựng một bản
mẫu cho khách hàng sử dụng dùng thử. Khi khách hàng đồng ý chấp nhận bản mẫu
thì nhóm phát triển mới thực hiện các pha khác của vòng đời phần mềm. Trong các
pha tiếp theo do đã có bản mẫu nên các phe sẽ được tiến hành liên tục mà không có
bước quay về pha trước đó. Chỉ khi hệ thống đã triển khai và chuyển sang pha bảo
trì, nếu có thay đổi hay phát hiện lỗi thì nhóm phát triển mới quay lại một trong
4
Bảng mẫu nhanh
Kiểm tra
Pha đặc tả
Kiểm tra
Pha thiết kế
Kiểm tra
Pha cài đặt
Kiểm tra
Pha tích hợp
Kiểm tra
Pha bảo trì
Pha bảo trì
Thay đổi yêu cầu
Kiểm tra
những pha trước đó, nhưng không quay lại pha làm bản mẫu vì bản mẫu đã được
chấp nhận.
* Ưu điểm: Nhanh và có tính khả thi cao do được tạo ra từ mô hình làm
bảng mẫu nên đảm bảo yêu cầu của thực khách.
* Nhược điểm: do các pha được tiến hành liên tục mà không được viết tài
liệu nên khó viết chương trình
1.3. Các cách tiếp cận trong phân tích và thiết kế hệ thống
Trong những năm 70 - 80, phương pháp hướng cấu trúc được coi là phương
pháp chuẩn để phát triển phần mềm. Tuy nhiên, phương pháp này tỏ ra không phù
hợp trong phát triển các hệ phần mềm lớn và đặc biệt là kém hiệu quả trong sử
dụng lại - một yêu cầu quan trọng trong công nghiệp phần mềm. Thập niên 90
chứng kiến sự nở rộ trong nghiên cứu và xây dựng phương pháp luận phát triển
5
phần mềm hướng đối tượng và nhanh chóng trở thành phổ biến trong công nghiệp
phần mềm ngày nay. Để hiểu rõ phần nào sự khác biệt này phần này dành so sánh
một số khác biệt giữa hai phương pháp này
1.3.1. Phương pháp hướng cấu trúc
Đặc trưng của phương pháp hướng cấu trúc là phân chia chương trình chính
thành nhiều chương trình con, mỗi chương trình con nhằm đến thực hiện một công
việc xác định.
Trong phương pháp hướng cấu trúc được thiết kế dựa trên hai hướng :
hướng dữ liệu và hướng hành động.
+ Cách tiếp cận hướng dữ liệu xây dựng phần mềm dựa trên việc phân rã
phần mềm theo các chức năng cần đáp ứng và dữ liệu cho các chức năng đó. Cách
tiếp cận hướng dữ liệu sẽ giúp cho những người phát triển hệ thống dễ dàng xây
dựng ngân hàng dữ liệu.
+ Cách tiếp cận hướng hành động lại tập trung phân tích hệ phần mềm dựa
trên các hoạt động thực thi các chức năng của phần mềm đó.
Phương pháp hường cấu trúc là phương pháp thiết kế từ trên xuống(Top-
down). Phương pháp này tiến hành phân rã bài toán thành các bài toán nhỏ hơn, rồi
tiếp tục phân rã các bài toán con cho đến khi nhận được các bài toán có thể cài đặt
được ngay sử dụng các hàm của ngôn ngữ lập trình hướng cấu trúc.
Ưu điểm: tư duy phân tích thiết kế rõ ràng, chương trình sáng sủa dễ hiểu.
Nhược điểm:
+ Chương trình hướng cấu trúc phụ thuộc chặt chẽ vào cấu trúc dữ liệu
và bài toán cụ thể, do đó không thể dùng lại một modul nào đó trong phần
mềm này cho phần mềm mới với các yêu cầu về dữ liệu khác. Không hổ trợ
việc sử dụng lại.
+ Không phù hợp cho phát triển các phần mềm lớn. Nếu hệ thống thông
tin lớn, việc phân ra thành các bài toán con cũng như phân các bài toán con
thành các modul và quản lý mối quan hệ giữa các modul đó sẽ là không phải
là dễ dàng và dễ gây ra các lỗi trong phân tích và thiết kế hệ thống, cũng như
khó kiểm thử và bảo trì.
1.3.2. Phương pháp hướng đối tượng
6
Cách tiếp cận hướng đối tượng là một lối tư duy theo cách ánh xạ các thành
phần trong bài toán vào các đối tượng trong đời thực.
Với cách tiếp cận này, một hệ thống được chia tương ứng thành các thành
phần nhỏ gọi là các đối tượng, mỗi đối tượng bao gồm đầy đủ cả dữ liệu và hành
động liên quan đến đối tượng đó. Các đối tượng trong một hệ thống tương đối độc
lập với nhau và phần mềm sẽ được xây dựng bằng cách kết hợp các đối tượng đó
lại với nhau thông qua các mối quan hệ và tương tác giữa chúng. Các nguyên tắc
cơ bản của phương pháp hướng đối tượng bao gồm :
Trừu tượng hóa (abstraction): nguyên tắc cơ bản để xây dựng các khái
niệm trong hướng đối tượng là sự trừu tượng hóa theo các mức độ khác nhau. Có
nghĩa là: trong phương pháp hướng đối tượng, các thực thể phần mềm được mô
hình hóa dưới dạng các đối tượng. Các đối tượng này được trừu tượng hóa ở mức
cao hơn dựa trên thuộc tính và phương thức mô tả đối tượng để tạo thành các lớp.
Các lớp cũng sẽ được trừu tượng hóa ở mức cao hơn nữa để tạo thành một sơ đồ
các lớp được kế thừa lẫn nhau. Trong phương pháp hướng đối tượng có thể tồn tại
những lớp không có đối tượng tương ứng, gọi là lớp trừu tượng.
Tính đóng gói (encapsulation) và ẩn dấu thông tin: các đối tượng có thể
có những phương thức hoặc thuộc tính riêng (kiểu private) mà các đối tượng khác
không thể sử dụng được. Dựa trên nguyên tắc ẩn giấu thông tin này, cài đặt của các
đối tượng sẽ hoàn toàn độc lập với các đối tượng khác, các lớp độc lập với nhau và
cao hơn nữa là cài đặt của hệ thống hoàn toàn độc lập với người sử dụng cũng như
các hệ thống khác sử dụng kết quả của nó.
Tính modul hóa (modularity): các bài toán sẽ được phân chia thành những
vấn đề nhỏ hơn, đơn giản và quản lý được.
Tính phân cấp (hierarchy): cấu trúc chung của một hệ thống hướng đối
tượng là dạng phân cấp theo các mức độ trừu tượng từ cao đến thấp.
Ưu điểm nổi bật của phương pháp hướng đối tượng là đã giải quyết được
các vấn đề nảy sinh với phương pháp hướng cấu trúc:
+ Hỗ trợ sử dụng lại mã nguồn : Chương trình lập trình theo phương pháp
hướng đối tượng thường được chia thành các gói là các nhóm của các lớp đối
tượng khác nhau. Các gói này hoạt động tương đối độc lập và hoàn toàn có thể
sử dụng lại trong các hệ thống thông tin tương tự.
7
+ Phù hợp với các hệ thống lớn: Phương pháp hướng đối tượng không chia
bài toán thành các bài toán nhỏ mà tập trung vào việc xác định các đối tượng, dữ
liệu và hành động gắn với đối tượng và mối quan hệ giữa các đối tượng. Các đối
tượng hoạt động độc lập và chỉ thực hiện hành động khi nhận được yêu cầu từ
các đối tượng khác.
Phương pháp hướng đối tượng hỗ trợ phân tích, thiết kế và quản lý một hệ
thống lớn, có thể mô tả các hoạt động nghiệp vụ phức tạp bởi quá trình phân tích
thiết kế không phụ thuộc vào số biến dữ liệu hay số lượng thao tác cần thực hiện
mà chỉ quan tâm đến các đối tượng tồn tại trong hệ thống đó.
1.4. Các khái niệm của hướng đối tượng
Một số khái niệm cơ bản của hướng đối tượng bao gồm:
Đối tượng (object): một đối tượng biểu diễn một thực thể vật lý, một thực
thể khái niệm hoặc một thực thể phần mềm. Có thể định nghĩa một đối tượng là
một khái niệm, sự trừu tượng hoặc một vật với giới hạn rõ ràng và có ý nghĩa với
một ứng dụng cụ thể.
Lớp (Class): là mô tả của một nhóm đối tượng có chung các thuộc tính,
hành vi và các mối quan hệ. Như vậy, một đối tượng là thể hiện của một lớp và
một lớp là một định nghĩa trừu tượng của đối tượng.
Thành phần (component): là một phần của hệ thống hoạt động độc lập và
giữ một chức năng nhất định trong hệ thống.
Gói (package): là một cách tổ chức các thành phần, phần tử trong hệ thống
thành các nhóm. Nhiều gói có thể được kết hợp với nhau để trở thành một hệ
thống con (subsystem).
Kế thừa: Trong phương pháp hướng đối tượng, một lớp có thể có sử dụng
lại các thuộc tính và phương thức của một hoặc nhiều lớp khác. Kiểu quan hệ
này gọi là quan hệ kế thừa, được xây dự
ng dựa trên mối quan hệ kế thừa trong bài toán thực tế. Ví dụ, giải sử ta có lớp
Người gồm các thuộc tính : tên, ngày sinh, quê quán, giới tính ; Lớp Nhân Viên
có quan hệ kế thừa từ lớp Người sẽ có tất cả các thuộc tính trên và bổ sung thêm
các thuộc tính mới gồm : chức vụ, lương.; Lớp Sinh viên có quan hệ kế thừa từ
lớp Người và bổ sung thêm các thuộc tính mới gồm mã sinh viên, Lớp.
Vòng đời phát triển phần mềm hướng đối tượng cũng có các pha tương tự
8
Biểu đồ Use Case
Biểu đồ lớp
Biểu đồ trạng thái
Biểu đồ tuần tự Biểu đồ cộng tác
PHA
PHÂN
TÍCH
như các vòng đời phát triển phần mềm nói chung. Các pha cơ bản đặt trưng trong
phát triển phần mềm hướng đối tượng bao gồm:
a. Phân tích hương đối tượng: xây dựng một mô hình chính xác để mô tả
hệ thống cần xây dựng là gì. Thành phần của mô hình này là các đối
tượng gắn với hệ thống thực.
b. Thiết kế hướng đối tượng: Là giai đoạn tổ chức chương trình thành các
tập hợp đối tượng cộng tác, mỗi đối tượng trong đó là thực thể của một
lớp. Kết quả của pha thiết kế cho biết hệ thống sẽ được xây dựng như
thế nào qua các bản thiết kế kiến trúc và thiết kế chi tiết.
c. Lập trình và tích hợp: Thực hiện bản thiết kế hướng đối tượng bằng
cách sử dụng các ngôn ngữ lập trình hướng đối tượng (C++, Java, …).
1.5. Các bước phân tích thiết kế hướng đối tượng
UML : Unified Modeling Language
Các bước phân tích thiết kế hướng đối tượng được xây dựng dựa trên biểu
đồ các ký hiệu UML. Đó là ngôn ngữ mô hình hoá thống nhất được xây dựng để
mô hình hoá quá trình phát triển hệ thống phần mềm hướng đối tượng. Các bước
phân tích thiết kế hướng đối tượng được khái quát theo các biểu đồ:
Pha phân tích
Xây dựng biểu đồ Use Case: Dựa trên tập yêu cầu ban đầu, người phân tích
tiến hành xác định các tác nhân, use case và các quan hệ giữa các use case để mô tả
lại các chức năng của hệ thống. Một thành phần quan trọng trong biểu đồ use case
là các kịch bản mô tả hoạt động của hệ thống trong mỗi use case cụ thể.
Xây dựng Biểu đồ lớp: Xác định tên các lớp, các thuộc tính của lớp, một số
phương thức và mối quan hệ cơ bản trong sơ đồ lớp.
Xây dựng biểu đồ trạng thái: Mô tả các trạng thái và chuyển tiếp trạng thái
trong hoạt động của một đối tượng thuộc một lớp nào đó.
9
Pha thiết kế:
Xây dựng các biểu đồ tương tác: (gồm biểu đồ cộng tác và biểu đồ tuần
tự): mô tả chi tiết hoạt động của các use case đã có và các lớp đã xác định trong
pha phân tích.
Xây dựng biểu đồ lớp chi tiết: tiếp tục hoàn thiện biểu đồ lớp bao gồm bổ
sung các lớp còn thiếu, dựa trên biểu đồ trạng thái để bổ sung các thuộc tính, dựa
trên biểu đồ tương tác để xác định các phương thức và mối quan hệ giữa các lớp.
Xây dựng biểu đồ hoạt động: mô tả hoạt động của các phương thức phức
tạp trong mỗi lớp hoặc các hoạt động hệ thống có sự liên quan của nhiều lớp. Biểu
đồ hoạt động là cơ sở để cài đặt các phương thức trong các lớp.
Xây dựng biểu đồ thành phần: xác định các gói, các thành phần và tổ chức
phần mềm theo các thành phần đó.
Xây dựng biểu đồ triển khai hệ thống: xác định các thành phần và các
thiết bị cần thiết để triển khai hệ thống, các giao thức và dịch vụ hỗ trợ.
TỔNG KẾT CHƯƠNG 1
Các nội dung mở đầu cho phân tích thiết kế hệ thống hướng đối tượng. Các
nội dung cơ bản cần nhớ gồm:
10
Có nhiều loại hệ thống thông tin khác nhau như : hệ thống thông tin quản lý,
các Website, các hệ thống thương mại, các hệ thống điều khiển ... Mỗi loại hệ
thống thông tin sẽ tương ứng với một phương pháp phát triển riêng.
Việc phát triển các hệ thống thông tin nói chung được xem như một vòng
đời với các pha : Xác định yêu cầu, đặc tả, thiết kế, cài đặt tích hợp, bảo trì và loại
bỏ. Có hai mô hình vòng đời đơn giản và hay dùng nhất là mô hình thác nước và
mô hình làm bản mẫu nhanh.
Phương pháp phát triển phần mềm hướng đối tượng tỏ ra có nhiều ưu điểm
hơn so với phương pháp hướng cấu trúc. Các pha đặc trưng trong vòng đời phát
triển phần mềm hướng đối tượng là phân tích hướng đối tượng, thiết kế hướng đối
tượng và lập trình hướng đối tượng.
Các bước phát triển phần mềm hướng đối tượng được xây dựng dựa trên các
biểu đồ trong ngôn ngữ mô hình hoá thống nhất UML. Chương 2 sẽ trình bày chi
tiết về UML và tập ký hiệu cho các bước phát triển hệ thống.
Câu hỏi ôn tập:
Câu 1. Kể tên một số ví dụ cho các loại hệ thống thông tin: hệ thống thông tin
quản lý, hệ thống website thương mại điện tử, hệ thống điều khiển ...
Câu 2. Vì sao nói tiến trình phần mềm là sự kết hợp khía cạnh kỹ thuật và khía
cạnh quản lý.
Câu 3. So sánh ưu, nhược điểm của phương pháp phát triển phần mềm hướng cấu
trúc và hướng đối tượng.
Câu 4. Trình bày các khái niệm trong hướng đối tượng : lớp, đối tượng, gói, thành
phần, kế thừa. Cho ví dụ.
11

bai giảng PTTKHT1111111111 - chuong 1.docx

  • 1.
    Chương 1 MỞĐẤU 1.1. Các hệ thống thông tin Hệ thống thông tin là tập hợp các thành phần được tổ chức thống nhất, có chức năng thu thập, xử lý, phân tích, tổng hợp thông tin giúp các nhà quản lý quản lý tốt cơ sở của mình, trợ giúp ra quyết định hoạt động kinh doanh (mang lại lợi ích cho tổ chức) * Các thành phần của hệ thống thông tin: - Dữ liệu: chứa trong các tập tin và cơ sở dữ liệu, là thành phần quan trọng của mọi hệ thống thông tin (HTTT) - Quá trình: Các công việc mà người sử dụng, người quản lý và nhân viên phải thực hiện HTTT - Phần cứng: Là lớp vật lý của HTTT (máy tính, mạng, cơ sở hạ tầng và công nghệ) - Phần mềm: + Phần mềm hệ thống: điều khiển phần cứng và các phầm mềm khác (hệ điều hành, phầm mềm điều khiển thiết bị) + Phần mềm ứng dụng: các chương trình xử lý dữ liệu để tạo ra thông tin (ứng dụng do công ty/đơn vị thực hiện, các sản phẩm mua từ nhà cung cấp…) - Con người: người sử dụng hệ thống là người cho/ nhận thông tin đối với hệ thống. + Người sử dụng bên trong: người quản lý, kỹ thuật viên + Người sử dụng bên ngoài: Khách hàng, nhà cung cấp Xét về mặt ứng dụng Hệ thống thông tin có thể được phân chia thành một số dạng như sau: Hệ thống thông tin quản lý: Bao gồm các hệ thống thông tin hỗ trợ các hoạt động nghiệp vụ và quản lý của các doanh nghiệp, các tổ chức. Ví dụ các hệ thống quản lý nhân sự, hệ thống kế toán, hệ thống tính cước và chăm sóc khách hàng, hệ thống quản lý thư viện, hệ thống đào tạo trực tuyến ... Các hệ thống Website: là các hệ thống có nhiệm vụ cung cấp thông tin cho người dùng trên môi trường mạng Internet. Các hệ thống Website có đặc điểm là 1
  • 2.
    thông tin cungcấp cho người dùng có tính đa dạng (có thể là tin tức hoặc các dạng file đa phương tiện) và được cập nhật thường xuyên. Hệ thống thương mại điện tử: Là các hệ thống website đặc biệt phục vụ việc trao đổi mua bán hàng hoá, dich vụ trên môi trường Internet. Hệ thống thương mại điện tử bao gồm cả các nền tảng hỗ trợ các giao thức mua bán, các hình thức thanh toán, chuyển giao hàng hoá ... Hệ thống điều khiển: là các hệ thống phần mềm gắn với các thiết bị phần cứng hoặc các hệ thống khác nhằm mục đích điều khiển và giám sát hoạt động của thiết bị hay hệ thống đó. Mỗi loại hệ thống thông tin có những đặc trưng riêng và cũng đặt ra những yêu cầu riêng cho việc phát triển hệ thống. Ví dụ: các hệ thống điều khiển đòi hỏi những yêu cầu về môi trường phát triển, hệ điều hành và ngôn ngữ lập trình riêng; các hệ website thực thi các chức năng trên môi trường mạng phân tán đòi hỏi cách phát triển riêng...Do vậy, không có một phương pháp luận chung cho tất cả các dạng hệ thống thông tin. Phạm vi của tài liệu này nhằm giới thiệu một số khái niệm cơ bản của UML cho phát phiển các hệ thống và để dễ dàng minh hoạ chúng ta sẽ xem xét vấn đề phát triển dạng hệ thống thông tin phổ biến nhất là hệ thống thông tin quản lý. 1.2. Khái quát vòng đời phát triển hệ thống thông tin Vòng đời phát triển hệ thống – SDLC (System Development life Cycle): bao gồm nhiều giai đoạn từ khi bắt đầu xây dựng hệ thống thông tin đến khi kết thúc khai thác hệ thống thông tin. Việc phát triển hệ thống thông tin không chỉ đơn giản là lập trình mà luôn được xem như một tiến trình hoàn chỉnh. Ví dụ: Tiến trình phần mềm là phương cách sản xuất ra phần mềm với các thành phần chủ yếu bao gồm: mô hình vòng đời phát triển phần mềm, các công cụ hỗ trợ cho phát triển phần mềm và những người trong nhóm phát triển phần mềm. Như vậy, tiến trình phát triển phần mềm nói chung là sự kết hợp cả hai khía cạnh kỹ thuật và quản lý + Kỹ thuật: vòng đời phát triển, phương pháp phát triển, các công cụ và ngôn ngữ sử dụng… 2
  • 3.
    + Quản lý:quản lý các phần mềm Mô hình vòng đời phần mềm là các bước phát triển một sản phẩm phần mềm cụ thể. Một vòng đời phát triển phẩn mềm thường có các pha cơ bản sau: Pha xác định yêu cầu: khám phá các khái niệm liên quan đến việc phát triển phần mềm, xác định chính xác yêu cầu và các ràng buộc của khách hàng với sản phẩm phần mềm đó. Pha phân tích: mô tả chức năng của sản phẩm, các input của sản phẩm và các output được yêu cầu; khám phá các khái niệm trong miền quan tâm của sản phẩm và bước đầu đưa ra giải pháp xây dựng hệ thống. Pha thiết kế: xác định cụ thể phần mềm sẽ được xây dựng như thế nào. Pha thiết kế bao gồm hai mức là thiết kế kiến trúc và thiết kế chi tiết. Pha cài đặt tích hợp: cài đặt chi tiết và tích hợp hệ thống phần mềm dựa trên kết quả của pha thiết kế. Pha bảo trì: tiến hành sửa chữa phần mềm khi có các thay đổi. Đây là pha rất quan trọng, tiêu tốn nhiều thời gian và chi phí nhất trong tiến trình phát triển phần mềm. Pha loại bỏ: thực hiện loại bỏ phần mềm hoặc thay thế phần mềm bởi một phần mềm hoàn toàn mới. Ngoài ra có hai quá trình luôn thực hiện trong quá trình trong vòng đời phát triển phần mềm là viết tài liệu và kiểm thử, hai quá trình này không hình thành pha riêng mà thực hiện song song với các pha trong tiến trình phần mềm, nghĩa là các pha đều tiến hành viết tài liệu và kiểm thử ở mức độ khác nhau. 1.2.1. Mô hình thác nước Mô hình thác nước được thực hiện theo phương pháp sau: Sau khi yêu cầu của hệ thống đã được xác định và kiểm tra, pha phân tích sẽ được tiến hành để xây dựng tài liệu. Sau khi tài liệu phân tích được khách hàng chấp nhận, nhóm phát triển sẽ tiến hành lập kế hoạch và lịch biểu cho các quá trình phát triển tiếp theo. Sau đó, các pha thiết kế, cài đặt và tích hợp sẽ lần lượt được tiến hành; mỗi pha này đều có phần kiểm tra để khi cần có thể quay lại sửa đổi tài liệu của pha trước đó. Khi phần mềm đã được triển khai và chuyển sang pha bảo trì; nếu có lỗi hoặc thay đổi xảy ra, nhóm thiết kế sẽ phải quay trở lại sửa đổi tài 3
  • 4.
    Pha yêu cầu Kiểmtra Pha đặc tả Kiểm tra Pha thiết kế Kiểm tra Pha cài đặt Kiểm tra Pha tích hợp Kiểm tra Pha bảo trì Pha bảo trì Thay đổi yêu cầu Kiểm tra liệu cho một trong các pha trước đó và nếu cần có thể quay trở lại thay đổi một số yêu cầu ban đầu của hệ thống. Phát Bảo trì Hình 1. Tiến trình phần mềm theo mô hình thác nước 1.2.2. Mô hình làm bản mẫu nhanh Trong mô hình làm bản mẫu nhanh, nhóm phát triển sẽ xây dựng một bản mẫu cho khách hàng sử dụng dùng thử. Khi khách hàng đồng ý chấp nhận bản mẫu thì nhóm phát triển mới thực hiện các pha khác của vòng đời phần mềm. Trong các pha tiếp theo do đã có bản mẫu nên các phe sẽ được tiến hành liên tục mà không có bước quay về pha trước đó. Chỉ khi hệ thống đã triển khai và chuyển sang pha bảo trì, nếu có thay đổi hay phát hiện lỗi thì nhóm phát triển mới quay lại một trong 4
  • 5.
    Bảng mẫu nhanh Kiểmtra Pha đặc tả Kiểm tra Pha thiết kế Kiểm tra Pha cài đặt Kiểm tra Pha tích hợp Kiểm tra Pha bảo trì Pha bảo trì Thay đổi yêu cầu Kiểm tra những pha trước đó, nhưng không quay lại pha làm bản mẫu vì bản mẫu đã được chấp nhận. * Ưu điểm: Nhanh và có tính khả thi cao do được tạo ra từ mô hình làm bảng mẫu nên đảm bảo yêu cầu của thực khách. * Nhược điểm: do các pha được tiến hành liên tục mà không được viết tài liệu nên khó viết chương trình 1.3. Các cách tiếp cận trong phân tích và thiết kế hệ thống Trong những năm 70 - 80, phương pháp hướng cấu trúc được coi là phương pháp chuẩn để phát triển phần mềm. Tuy nhiên, phương pháp này tỏ ra không phù hợp trong phát triển các hệ phần mềm lớn và đặc biệt là kém hiệu quả trong sử dụng lại - một yêu cầu quan trọng trong công nghiệp phần mềm. Thập niên 90 chứng kiến sự nở rộ trong nghiên cứu và xây dựng phương pháp luận phát triển 5
  • 6.
    phần mềm hướngđối tượng và nhanh chóng trở thành phổ biến trong công nghiệp phần mềm ngày nay. Để hiểu rõ phần nào sự khác biệt này phần này dành so sánh một số khác biệt giữa hai phương pháp này 1.3.1. Phương pháp hướng cấu trúc Đặc trưng của phương pháp hướng cấu trúc là phân chia chương trình chính thành nhiều chương trình con, mỗi chương trình con nhằm đến thực hiện một công việc xác định. Trong phương pháp hướng cấu trúc được thiết kế dựa trên hai hướng : hướng dữ liệu và hướng hành động. + Cách tiếp cận hướng dữ liệu xây dựng phần mềm dựa trên việc phân rã phần mềm theo các chức năng cần đáp ứng và dữ liệu cho các chức năng đó. Cách tiếp cận hướng dữ liệu sẽ giúp cho những người phát triển hệ thống dễ dàng xây dựng ngân hàng dữ liệu. + Cách tiếp cận hướng hành động lại tập trung phân tích hệ phần mềm dựa trên các hoạt động thực thi các chức năng của phần mềm đó. Phương pháp hường cấu trúc là phương pháp thiết kế từ trên xuống(Top- down). Phương pháp này tiến hành phân rã bài toán thành các bài toán nhỏ hơn, rồi tiếp tục phân rã các bài toán con cho đến khi nhận được các bài toán có thể cài đặt được ngay sử dụng các hàm của ngôn ngữ lập trình hướng cấu trúc. Ưu điểm: tư duy phân tích thiết kế rõ ràng, chương trình sáng sủa dễ hiểu. Nhược điểm: + Chương trình hướng cấu trúc phụ thuộc chặt chẽ vào cấu trúc dữ liệu và bài toán cụ thể, do đó không thể dùng lại một modul nào đó trong phần mềm này cho phần mềm mới với các yêu cầu về dữ liệu khác. Không hổ trợ việc sử dụng lại. + Không phù hợp cho phát triển các phần mềm lớn. Nếu hệ thống thông tin lớn, việc phân ra thành các bài toán con cũng như phân các bài toán con thành các modul và quản lý mối quan hệ giữa các modul đó sẽ là không phải là dễ dàng và dễ gây ra các lỗi trong phân tích và thiết kế hệ thống, cũng như khó kiểm thử và bảo trì. 1.3.2. Phương pháp hướng đối tượng 6
  • 7.
    Cách tiếp cậnhướng đối tượng là một lối tư duy theo cách ánh xạ các thành phần trong bài toán vào các đối tượng trong đời thực. Với cách tiếp cận này, một hệ thống được chia tương ứng thành các thành phần nhỏ gọi là các đối tượng, mỗi đối tượng bao gồm đầy đủ cả dữ liệu và hành động liên quan đến đối tượng đó. Các đối tượng trong một hệ thống tương đối độc lập với nhau và phần mềm sẽ được xây dựng bằng cách kết hợp các đối tượng đó lại với nhau thông qua các mối quan hệ và tương tác giữa chúng. Các nguyên tắc cơ bản của phương pháp hướng đối tượng bao gồm : Trừu tượng hóa (abstraction): nguyên tắc cơ bản để xây dựng các khái niệm trong hướng đối tượng là sự trừu tượng hóa theo các mức độ khác nhau. Có nghĩa là: trong phương pháp hướng đối tượng, các thực thể phần mềm được mô hình hóa dưới dạng các đối tượng. Các đối tượng này được trừu tượng hóa ở mức cao hơn dựa trên thuộc tính và phương thức mô tả đối tượng để tạo thành các lớp. Các lớp cũng sẽ được trừu tượng hóa ở mức cao hơn nữa để tạo thành một sơ đồ các lớp được kế thừa lẫn nhau. Trong phương pháp hướng đối tượng có thể tồn tại những lớp không có đối tượng tương ứng, gọi là lớp trừu tượng. Tính đóng gói (encapsulation) và ẩn dấu thông tin: các đối tượng có thể có những phương thức hoặc thuộc tính riêng (kiểu private) mà các đối tượng khác không thể sử dụng được. Dựa trên nguyên tắc ẩn giấu thông tin này, cài đặt của các đối tượng sẽ hoàn toàn độc lập với các đối tượng khác, các lớp độc lập với nhau và cao hơn nữa là cài đặt của hệ thống hoàn toàn độc lập với người sử dụng cũng như các hệ thống khác sử dụng kết quả của nó. Tính modul hóa (modularity): các bài toán sẽ được phân chia thành những vấn đề nhỏ hơn, đơn giản và quản lý được. Tính phân cấp (hierarchy): cấu trúc chung của một hệ thống hướng đối tượng là dạng phân cấp theo các mức độ trừu tượng từ cao đến thấp. Ưu điểm nổi bật của phương pháp hướng đối tượng là đã giải quyết được các vấn đề nảy sinh với phương pháp hướng cấu trúc: + Hỗ trợ sử dụng lại mã nguồn : Chương trình lập trình theo phương pháp hướng đối tượng thường được chia thành các gói là các nhóm của các lớp đối tượng khác nhau. Các gói này hoạt động tương đối độc lập và hoàn toàn có thể sử dụng lại trong các hệ thống thông tin tương tự. 7
  • 8.
    + Phù hợpvới các hệ thống lớn: Phương pháp hướng đối tượng không chia bài toán thành các bài toán nhỏ mà tập trung vào việc xác định các đối tượng, dữ liệu và hành động gắn với đối tượng và mối quan hệ giữa các đối tượng. Các đối tượng hoạt động độc lập và chỉ thực hiện hành động khi nhận được yêu cầu từ các đối tượng khác. Phương pháp hướng đối tượng hỗ trợ phân tích, thiết kế và quản lý một hệ thống lớn, có thể mô tả các hoạt động nghiệp vụ phức tạp bởi quá trình phân tích thiết kế không phụ thuộc vào số biến dữ liệu hay số lượng thao tác cần thực hiện mà chỉ quan tâm đến các đối tượng tồn tại trong hệ thống đó. 1.4. Các khái niệm của hướng đối tượng Một số khái niệm cơ bản của hướng đối tượng bao gồm: Đối tượng (object): một đối tượng biểu diễn một thực thể vật lý, một thực thể khái niệm hoặc một thực thể phần mềm. Có thể định nghĩa một đối tượng là một khái niệm, sự trừu tượng hoặc một vật với giới hạn rõ ràng và có ý nghĩa với một ứng dụng cụ thể. Lớp (Class): là mô tả của một nhóm đối tượng có chung các thuộc tính, hành vi và các mối quan hệ. Như vậy, một đối tượng là thể hiện của một lớp và một lớp là một định nghĩa trừu tượng của đối tượng. Thành phần (component): là một phần của hệ thống hoạt động độc lập và giữ một chức năng nhất định trong hệ thống. Gói (package): là một cách tổ chức các thành phần, phần tử trong hệ thống thành các nhóm. Nhiều gói có thể được kết hợp với nhau để trở thành một hệ thống con (subsystem). Kế thừa: Trong phương pháp hướng đối tượng, một lớp có thể có sử dụng lại các thuộc tính và phương thức của một hoặc nhiều lớp khác. Kiểu quan hệ này gọi là quan hệ kế thừa, được xây dự ng dựa trên mối quan hệ kế thừa trong bài toán thực tế. Ví dụ, giải sử ta có lớp Người gồm các thuộc tính : tên, ngày sinh, quê quán, giới tính ; Lớp Nhân Viên có quan hệ kế thừa từ lớp Người sẽ có tất cả các thuộc tính trên và bổ sung thêm các thuộc tính mới gồm : chức vụ, lương.; Lớp Sinh viên có quan hệ kế thừa từ lớp Người và bổ sung thêm các thuộc tính mới gồm mã sinh viên, Lớp. Vòng đời phát triển phần mềm hướng đối tượng cũng có các pha tương tự 8
  • 9.
    Biểu đồ UseCase Biểu đồ lớp Biểu đồ trạng thái Biểu đồ tuần tự Biểu đồ cộng tác PHA PHÂN TÍCH như các vòng đời phát triển phần mềm nói chung. Các pha cơ bản đặt trưng trong phát triển phần mềm hướng đối tượng bao gồm: a. Phân tích hương đối tượng: xây dựng một mô hình chính xác để mô tả hệ thống cần xây dựng là gì. Thành phần của mô hình này là các đối tượng gắn với hệ thống thực. b. Thiết kế hướng đối tượng: Là giai đoạn tổ chức chương trình thành các tập hợp đối tượng cộng tác, mỗi đối tượng trong đó là thực thể của một lớp. Kết quả của pha thiết kế cho biết hệ thống sẽ được xây dựng như thế nào qua các bản thiết kế kiến trúc và thiết kế chi tiết. c. Lập trình và tích hợp: Thực hiện bản thiết kế hướng đối tượng bằng cách sử dụng các ngôn ngữ lập trình hướng đối tượng (C++, Java, …). 1.5. Các bước phân tích thiết kế hướng đối tượng UML : Unified Modeling Language Các bước phân tích thiết kế hướng đối tượng được xây dựng dựa trên biểu đồ các ký hiệu UML. Đó là ngôn ngữ mô hình hoá thống nhất được xây dựng để mô hình hoá quá trình phát triển hệ thống phần mềm hướng đối tượng. Các bước phân tích thiết kế hướng đối tượng được khái quát theo các biểu đồ: Pha phân tích Xây dựng biểu đồ Use Case: Dựa trên tập yêu cầu ban đầu, người phân tích tiến hành xác định các tác nhân, use case và các quan hệ giữa các use case để mô tả lại các chức năng của hệ thống. Một thành phần quan trọng trong biểu đồ use case là các kịch bản mô tả hoạt động của hệ thống trong mỗi use case cụ thể. Xây dựng Biểu đồ lớp: Xác định tên các lớp, các thuộc tính của lớp, một số phương thức và mối quan hệ cơ bản trong sơ đồ lớp. Xây dựng biểu đồ trạng thái: Mô tả các trạng thái và chuyển tiếp trạng thái trong hoạt động của một đối tượng thuộc một lớp nào đó. 9
  • 10.
    Pha thiết kế: Xâydựng các biểu đồ tương tác: (gồm biểu đồ cộng tác và biểu đồ tuần tự): mô tả chi tiết hoạt động của các use case đã có và các lớp đã xác định trong pha phân tích. Xây dựng biểu đồ lớp chi tiết: tiếp tục hoàn thiện biểu đồ lớp bao gồm bổ sung các lớp còn thiếu, dựa trên biểu đồ trạng thái để bổ sung các thuộc tính, dựa trên biểu đồ tương tác để xác định các phương thức và mối quan hệ giữa các lớp. Xây dựng biểu đồ hoạt động: mô tả hoạt động của các phương thức phức tạp trong mỗi lớp hoặc các hoạt động hệ thống có sự liên quan của nhiều lớp. Biểu đồ hoạt động là cơ sở để cài đặt các phương thức trong các lớp. Xây dựng biểu đồ thành phần: xác định các gói, các thành phần và tổ chức phần mềm theo các thành phần đó. Xây dựng biểu đồ triển khai hệ thống: xác định các thành phần và các thiết bị cần thiết để triển khai hệ thống, các giao thức và dịch vụ hỗ trợ. TỔNG KẾT CHƯƠNG 1 Các nội dung mở đầu cho phân tích thiết kế hệ thống hướng đối tượng. Các nội dung cơ bản cần nhớ gồm: 10
  • 11.
    Có nhiều loạihệ thống thông tin khác nhau như : hệ thống thông tin quản lý, các Website, các hệ thống thương mại, các hệ thống điều khiển ... Mỗi loại hệ thống thông tin sẽ tương ứng với một phương pháp phát triển riêng. Việc phát triển các hệ thống thông tin nói chung được xem như một vòng đời với các pha : Xác định yêu cầu, đặc tả, thiết kế, cài đặt tích hợp, bảo trì và loại bỏ. Có hai mô hình vòng đời đơn giản và hay dùng nhất là mô hình thác nước và mô hình làm bản mẫu nhanh. Phương pháp phát triển phần mềm hướng đối tượng tỏ ra có nhiều ưu điểm hơn so với phương pháp hướng cấu trúc. Các pha đặc trưng trong vòng đời phát triển phần mềm hướng đối tượng là phân tích hướng đối tượng, thiết kế hướng đối tượng và lập trình hướng đối tượng. Các bước phát triển phần mềm hướng đối tượng được xây dựng dựa trên các biểu đồ trong ngôn ngữ mô hình hoá thống nhất UML. Chương 2 sẽ trình bày chi tiết về UML và tập ký hiệu cho các bước phát triển hệ thống. Câu hỏi ôn tập: Câu 1. Kể tên một số ví dụ cho các loại hệ thống thông tin: hệ thống thông tin quản lý, hệ thống website thương mại điện tử, hệ thống điều khiển ... Câu 2. Vì sao nói tiến trình phần mềm là sự kết hợp khía cạnh kỹ thuật và khía cạnh quản lý. Câu 3. So sánh ưu, nhược điểm của phương pháp phát triển phần mềm hướng cấu trúc và hướng đối tượng. Câu 4. Trình bày các khái niệm trong hướng đối tượng : lớp, đối tượng, gói, thành phần, kế thừa. Cho ví dụ. 11