2
Mục lục
lời mở đầu 3
Ch-ơng 1 ph-ơng pháp h-ớng đối t-ợng 5
1.1. Quy trình chung để phát triển phần mềm h-ớng đối t-ợng 5
1.2 Công cụ hỗ trợ phát triển h-ớng đối t-ợng UML 8
1.3 Đặc tr-ng tiến trình phát triển phần mềm h-ớng đối t-ợng với UML 27
CHNG 2 GII THIU GRASP - CC MU DNG CHO GN TRCH
NHIM 31
2.1. Cỏc khỏi nim c bn 31
2.2. Cỏc mu trongGRASP : 37
Ch-ơng 3 Xây dựng hệ thống quản lý hồ sơ và kết quả
học tập bằng ph-ơng pháp tiếp cận h-ớng đối t-ợng 64
3.1. Mô tả nghiệp vụ 64
3.2. Phân tích ca sử dụng 73
ch-ơng 4 phân tích và cài đặt ch-ơng trình quản lý hồ sơ
và kết quả học tập 114
4.1. Kiến trúc hệ thống quản lý hồ sơ và điểm 114
4.2. Kiến trúc hệ thống 114
4.3. Phân tích cài đặt hệ thống quản lý hồ sơ và điểm 115
Kết luận 143
Tài liệu tham khảo 144 1
LỜI MỞ ĐẦU
2
trường Đại học có quy mô như trường Đại học Công đoàn thì chưa có một
hệ thống quản lý hồ sơ và kết quả học tập hoàn chỉnh để đáp ứng được các
yêu cầu đặt ra do đó việc ứng dụng công nghệ thông tin vào công tác quản lý
trở nên hết sức cấp thiết. Với đề tài “ Phân tích hướng đối tượng hệ thống
quản lý hồ sơ và kết quả học tập” gồm những nội dung sau:
Chương 1 : Phương pháp hướng đối tượng
Chương 2: Grasp – Cỏc mẫu dựng cho gỏn trỏch nhiệm
Chương 3: Xây dựng hệ thống quản lý hồ sơ và kết quả học tập bằng
phương pháp tiếp cận hướng đối tượng.
Chương 4: Phân tích và cài đặt chương trình quản lý hồ sơ và kết quả
học tập
Nội dung của đề tài giới thiệu phương pháp hướng đối tượng, các công
cụ hỗ trợ phát triển hướng đối tượng. Đặc biệt, đề tài đã vận dụng các công
cụ thiết kế hướng đối tượng sử dụng UML – một ngôn ngữ mô hình hoá
thống nhất đang được sử dụng rộng rãi trên thế giới để ứng dụng vào việc
phân tích thiết kế hệ thống quản lý hồ sơ và kết quả học tập tại trường Đại
học Công đoàn.
Hà nội, ngày tháng năm 2006
Dương Chí Thiện
3
CHƢƠNG 1
PHƢƠNG PHÁP HƢỚNG ĐỐI TƢỢNG
1.1. QUY TRÌNH CHUNG ĐỂ PHÁT TRIỂN PHẦN MỀM HƢỚNG ĐỐI TƢỢNG
Nội dung cơ bản của tiến trình phát triển phần mềm hướng đối tượng là
tiến trình thực hiện một bước lặp bao gồm: xác định yêu cầu của hệ thống,
triển phần mềm ta cần tìm các tác nhân và các ca sử dụng để chuẩn bị một
phiên bản đầu tiên của mô hình ca sử dụng. Sau đó ta sẽ xác định các ca sử
dụng có ý nghĩa về mặt kiến trúc và sắp xếp thứ tự ưu tiên các ca sử dụng sẽ
được triển khai trong bước lặp hiện thời.
1.1.3. Phân tích
Nhiệm vụ của pha phân tích là làm mịn các yêu cầu đã nhận được từ
pha trước và tạo cấu trúc cho chúng. Thông qua đó, các yêu cầu được hiểu
chính xác hơn, từ đó đưa ra cấu trúc cho toàn bộ hệ thống.
Nhiệm vụ của pha phân tích là tìm ra cách thức để thực hiện yêu cầu
của hệ thống đã được xác định trong các ca sử dụng. Cụ thể là, cần phân tích
mô hình ca sử dụng bằng cách tìm ra cách tổ chức các thành phần bên trong
của hệ thống để thực hiện mỗi ca sử dụng. Những thành phần cấu trúc bên
trong của hệ thống ở đây là ba loại lớp phân tích. Công việc xác định các lớp
không phải làm tùy tiện mà thực hiện theo từng ca sử dụng, trước hết cho
các ca sử dụng theo thứ tự ưu tiên được sắp. Sau đó, cấu trúc lại cách tổ
chức lại các thành phần này của hệ thống. Để đạt được mục tiêu ấy cần tiến
hành các hoạt động sau:
Phân tích kiến trúc hệ thống.
Phân tích một ca sử dụng.
Phân tích một lớp.
5
Phân tích một gói.
Trong quá trính phân tích ta sẽ liên tục tìm ra các gói, các lớp phân
tích mới và các yêu cầu chung khi tiếp tục làm mịn mô hình bằng cách phân
tích các gói và duy trì các gói đó.
1.1.4. Thiết kế
Trong thiết kế, chúng ta định hình hệ thống và tìm hình thức thể hiện về
Tiếp cận hướng đối tượng cung cấp cho ta công cụ để làm giảm bớt độ
phức tạp của bài toán bằng việc phân rã thành các thực thể độc lập tương đối
với nhau.
Hệ thống hướng đối tượng dễ dàng mở rộng thành các hệ thống có quy
mô lớn hơn nhờ tương tác giữa các đối tượng thông qua việc gửi thông báo.
Việc phát triển và bảo trì hệ thống đơn giản hơn.
Xóa bỏ ngăn cách giữa các bước phát triển, thiết kế và cài đặt trong quá
trình phát triển phần mềm. [2]
1.2 CÔNG CỤ HỖ TRỢ PHÁT TRIỂN HƢỚNG ĐỐI TƢỢNG UML
UML (Unified Modeling Language) là ngôn ngữ mô hình hóa, trước hết
nó là mô tả ký pháp thống nhất, ngữ nghĩa và định nghĩa về mô hình hóa, nó
không mô tả về phương pháp phát triển. UML được sử dụng để hiển thị đặc
tả xây dựng, làm tài liệu các vật phẩm của phân tích hình thức và thiết kế
trong quá trình xây dựng hệ thống phần mềm theo hướng đối tượng. UML
được sử dụng cho mọi tiến trình phát triển phần mềm, xuyên suốt vòng đời
phát triển và độc lập với các công nghệ cài đặt hệ thống.
7
1.2.1. Khái quát về UML
1.2.1.1. UML là một ngôn ngữ chuyên dụng
UML được đưa vào sử dụng từ năm 1997 và nhanh chóng được công
nghiệp phần mềm chấp nhận là ngôn ngữ đồ họa chuẩn để đặc tả, xây dựng
và làm tài liệu cho các hệ thống phần mềm chuyên sâu. UML là ngôn ngữ
mô hình hóa, ngôn ngữ chuẩn thống nhất để viết ra bản kế hoạch chi tiết
phần mềm. Nó mô tả ký pháp thông nhất, ngữ nghĩa và các định nghĩa chính
mô hình hóa. Các khung nhìn ngôn ngữ cho phép nhìn nhận hệ thống phát
triển ở các mức độ khác nhau, dễ sử dụng, dễ hiểu. UML có các ký pháp và
tập các qui tắc sử dụng để mô hình hóa các hệ thống. [1]
1.2.1.5. UML là ngôn ngữ để tạo mã
UML không phải là ngôn ngữ lập trình trực quan, nhưng mô hình của nó
có thể kết nối trực tiếp với các ngôn ngữ lập trình khác. Điều đó có nghĩa là
có thể ánh xạ mô hình trong UML sang một ngôn ngữ lập trình khác như
Java, C++ hay các bảng CSDL quan hệ hoặc CSDL hướng đối tượng. Đồng
thời cho khả năng biến đổi ngược lại từ cài đặt về mô hình UML có nghĩa
rằng nó cho khả năng làm việc với văn bản hay đồ họa một cách nhất quán. [1]
1.2.1.6. UML là ngôn ngữ làm tài liệu
UML hướng tới làm tài liệu kiến trúc hệ thống và các chi tiết nhỏ của nó.
UML cho khả năng biểu diễn yêu cầu, thử nghiệm, mô hình hóa các hoạt
động lập kế hoạch và quản lý sản phẩm.
- UML cho biết giới hạn của hệ thống và các chức năng của nó thông qua
các ca sử dụng và các tác nhân.
- Trong UML các ca sử dụng được mô tả bằng biểu đồ logic.
- Biểu diễn cấu trúc tĩnh của hệ thống nhờ biểu đồ lớp.
9
- Mô hình hóa các hành vi của đối tượng bằng biểu đồ chuyển trạng thái.
- Phản ánh kiến trúc cài đặt vật lý bằng biểu đồ thành phần và biểu đồ
triển khai.
- Mở rộng khả năng mô tả các chức năng và hành vi hệ thống bằng khuôn
mẫu (stereotypes). [5]
1.2.2. Kiến trúc trong UML
Kiến trúc phần mềm cho ta một cái nhìn khái quát nhất về hệ thống phần
mềm ở các góc độ khác nhau. Mỗi khung nhìn phản ánh về một khía cạnh
của tổ chức và cấu trúc của hệ thống, tập trung vào từng mặt cụ thể giúp ta
hiểu và sử dụng hệ thống tốt nhất.
- Khung nhìn UC (Use Case) cho ta cách sử dụng chức năng để mô tả
ngữ. Nó đòi hỏi phải nắm được ba vấn đề chính, bao gồm các phần tử cơ bản
để xây dựng mô hình, quy tắc liên kết các phần tử mô hình và một số cơ chế
chung sử dụng cho ngôn ngữ. Khi nắm vững được các vấn đề này thì ta có
thể đọc được mô hình UML và tạo ra một vài mô hình cơ bản. Các khối để
hình thành mô hình UML gồm 3 loại sau: Phần tử, quan hệ và biểu đồ.
Hình 1.2. Xác định cấu trúc thành phần của UML
Phần
tử
cấu
trúc
Các khối xây dựng
Phần tử
Quan hệ
Biểu đồ
Phần
tử
hành
Tương
tác
Máy
trạng
thái
Gói
Mô hình
Hệ thống
con
Khung
làm việc
Ghi
chú
11
1.2.2.2. Các khối xây dựng
Các phần tử là các trìu tượng hóa, là phần tử lớp đầu tiên để xây dựng
nên các mô hình trong UML. Các quan hệ gắn kết các phần tử này lại với
nhau, các biểu đồ nhóm các phần tử .
a. Các phần tử cấu trúc: Bao gồm:
* Lớp (Class): mô tả một tập hợp các đối tượng cùng chung thuộc
tính thao tác quan hệ và ngữ nghĩa. Lớp được biểu diễn bằng hình chữ
nhật bên trong có tên, thuộc tính và thao tác. Tên lớp là danh từ. Ví dụ
Sinh viên
12
* Sự cộng tác: xác định các hoạt động bên trong hệ thống và là một bộ
các nguyên tắc. Các phần tử khác nhau cùng làm việc để cung cấp một hành
vi hợp tác lớn hơn tổng hành vi của tất cả các phần tử. Sự cộng tác được biểu
diễn bằng một hình elip với đường nét đứt và thường chỉ gồm có tên.
* Ca sử dụng (Use Case): Mô tả một chuỗi các hành động mà hệ thống sẽ
thực hiện để đạt được kết quả có ý nghĩa đối với một tác nhân. Use case
được biểu diễn bằng hình elíp nét liền, tên Use case được đặt bên trong hoặc
bên dưới.
+ Tác nhân (Actor): Thể hiện một tập hợp các vai trò mà các thực thể
ngoài có thể thực hiện khi sử dụng hệ thống. Nó thể hiện một nhóm người
một bộ phận, một tổ chức hoặc các hệ thống khác có tương tác với hệ thống
đó. Tương tác của tác nhân với hệ thống có thể là:
- Cung cấp thông tin cho hệ thống.
- Lấy thông tin từ hệ thống.
- Nhận thông tin từ hệ thống và cung cấp thông tin cho hệ thống.
Một số đặc điểm của tác nhân:
- Tác nhân có tên và tên đó phản ánh vai trò của tác nhân chứ không
phản ánh chức năng của tác nhân.
- Tác nhân tương tác với hệ thống bằng cách gửi và nhận thông báo
với hệ thống như nó thực hiện với các ca sử dụng.
Hình 1.6. Cộng tác
Hình 1.7. Ca sử dụng
13
Nhập()
Xóa()
Hinh 1.9. Lớp hoạt động
Tên tác nhân
14
* Lớp hoạt động (Active class): Là lớp có đối tượng làm chủ một hay
nhiều tiến trình hoặc một dãy các thao tác. Bởi vậy nó có thể khởi động
hoạt động điều khiển. Một lớp chủ động được biểu diễn như một lớp
thông thường nhưng có đường viền đậm.
* Nút (Node): Thể hiện thành phần vật lý, tồn tại khi chương trình
chạy và biểu diễn các tài nguyên tính toán. Có thể đặt tập các thành phần
trên nút và chuyển từ nút này sang nút khác. Nút có thể là máy tính, thiết bị
phần cứng. Nó được biểu diễn bằng một hình hộp thường bao gồm tên của
nó.
b. Các phần tử hành vi (Behavioral thinks)
Là bộ phận động của mô hình UML, mô tả hành vi của hệ thống theo
thời gian và không gian. Có hai loại chính là tương tác và trạng thái.
* Tương tác (Interaction): là hành vi bao gồm tập các thông điệp trao
đổi giữa các đối tượng trong ngữ cảnh cụ thể để thực hiện mục đích cụ thể.
Một thông báo được biểu diễn bằng một đường thẳng có hướng và tên thao
tác của nó.
d. Các phần tử chú thích (Annotational):
Là bộ phận chú giải của mô hình UML. Đó là lời giải thích áp dụng để
mô tả các phần tử khác trong mô hình. Phần tử chú thích được gọi là lời chú
Hình 1.14. Gói
Hình 1.13. Chú thích
16
thích (note). Nó được biểu diễn như một hình chữ nhật với một nếp quăn ở
góc cùng với chú giải bằng văn bản hoặc đồ hoạ bên trong.
1.2.2.3. Các quan hệ trong UML
a. Quan hệ giữa ca sử dụng và tác nhân
Quan hệ này thường gọi là quan hệ tương tác vì nó thể hiện sự tương tác
giữa tác nhân và ca sử dụng. Thông thường đây là quan hệ 1-1 không có
hướng để chỉ ra rằng tác nhân có thể liên lạc với ca sử dụng theo cả hai
hướng. Quan hệ này thể hiện bằng một đường thẳng nối giữa tác nhân và ca
sử dụng.
b. Quan hệ giữa ca sử dụng với ca sử dụng
Các ca sử dụng quan hệ với nhau theo ba kiểu quan hệ là: mở rộng, bao
gồm và tổng quát hoá.
* Quan hệ mở rộng (Extends): Quan hệ này cho phép Use case mở rộng
tuỳ ý chức năng do Use case khác cung cấp. Nó chỉ ra rằng trong một điều
kiện nào đó một Use case được mở rộng bằng Use case khác, nghĩa là khả
năng gộp vài hành vi của Use case tổng quát hơn để sử dụng lại.
- Trong phương thức của một lớp có khai báo một biến cục bộ là
đối tượng của lớp khác.
- Trong phương thức của một lớp có tham số là đối tượng của một
lớp khác.
* Quan hệ kết hợp (Association): Là quan hệ cấu trúc để mô tả tập liên
kết. Khi đối tượng của lớp này gửi / nhận thông điệp đến từ thông điệp đối
tượng của lớp kia. Chúng có thể chứa tên nhiệm vụ và tính nhiều
(multiplicity). Tính nhiều cho biết số lượng các thể hiện của lớp ở đầu bên
kia của kết hợp so với một thể hiện của lớp ở đầu bên này của kết hợp.
Hình 1.16. Quan hệ phụ thuộc
18 + Kết tập (Aggregation): được dùng để cho biết một thể hiện của một
lớp bao gồm hoặc chứa các thể hiện của lớp khác, nó biểu diễn mối quan
hệ toàn thể-bộ phận.
+ Hợp thành (composition): Giống quan hệ kết tập, tuy nhiên quan hệ
hợp thành còn hàm ý cùng gắn kết.
* Quan hệ khái quát hoá (Generalization): Là quan hệ đặc biệt hoá
mà trong đó đối tượng cụ thể sẽ kế thừa các thuộc tính và các phương
thức của đối tượng tổng quát.
đặc biệt quan trọng trong việc tổ chức và mô hình hoá hệ thống. Biểu đồ loại
này chỉ ra tác nhân nào khởi động ca sử dụng và khi nào tác nhân nhận thông
tin từ hệ thống.
Biểu đồ ca sử dụng dùng để:
- Mô hình hoá các chuỗi hành động mà hệ thống sẽ thực hiện, nhằm
cung cấp một kết quả có ý nghĩa cho một người dùng nào đó hoặc một hệ
thống bên ngoài.
- Cung cấp một cái nhìn tổng thể về những gì mà hệ thống sẽ làm và ai
sẽ dùng nó.
- Đưa ra cơ sở để xác định giao tiếp người - máy đối với hệ thống.
- Dùng để mô hình hoá các kịch bản cho một ca sử dụng.
- Để người dùng cuối có thể hiểu được và có thể giao tiếp với hệ thống ở
mức tổng thể.
- Làm cơ sở cho việc phác thảo ra các đặc tả kiểm tra. UC1
UC1
Tác nhân
Tác nhân
Hình 1.22. Biểu đồ ca sử dụng
20 b. Biểu đồ lớp (Class diagram):
Biểu đồ lớp chỉ ra tương tác giữa các lớp trong hệ thống. Người ta sử
dụng biểu đồ lớp để mô hình hoá khung nhìn thiết kế tĩnh của hệ thống. Các
Biểu đồ trình tự chỉ ra sự tương tác giữa các đối tượng và tập trung vào
mô tả trật tự các thông điệp theo thời gian. Mỗi mũi tên trong biểu đồ thể
hiện thông điệp truyền giữa tác nhân và đối tượng hay đối tượng với đối
tượng để thực hiện chức năng cụ thể. Chú ý rằng biểu đồ trình tự hiển thị
phần tử mô hình đối tượng chứ không phải lớp. e. Biểu đồ cộng tác (Collaboration diagram)
Biểu đồ cộng tác chỉ ra các thông tin như biểu đồ trình tự nhưng theo
cách khác, nó tập trung vào tổ chức cấu trúc của các đối tượng gửi và nhận
thông điệp. Trong biểu đồ cộng tác các đối tượng giao tiếp trực tiếp với nhau
được thể hiện bằng đường nối. Đối tượng 1
Đối tượng 2
Thông điệp
Tác nhân
Hình 1.25. Biểu đồ cộng tác
Đối tượng 1
Đối tượng 2
Thông điệp
Thông điệp
Hình 1.24. Biểu đồ trình tự
Trạng thái 2
Hình 1.26. Biểu đồ trạng thái
23
chương trình thi hành, tài liệu, thư viện, bảng dữ liệu. Chúng được liên kết
với nhau bằng các mối quan hệ. Mục đích của biểu đồ thành phần là:
- Mô hình vật lý các phần cứng và các kênh liên lạc giữa chúng.
- Lập kiến trúc của hệ thống.
- Lập tài liệu việc triển khai các thành phần phần mềm trên các nút
phần cứng.
Thành phần1
Thành phần 2
Hình 1.27. Biểu đồ thành phần
24
i. Biểu đồ triển khai ( Deployment diagram):
Biểu đồ triển khai mô hình hóa các khía cạnh vật lý của một hệ thống
hướng đối tượng. Nó biểu diễn cấu hình các nút xử lý đang vận hành và các
thành phần đang hoạt động trên nó. Nó bao gồm các nút và các ràng buộc.
Nó hướng vào mô hình hóa sự phân tán, gửi đi và cài đặt các phần tạo nên
hệ thông vật lý. Sử dụng biểu đồ triển khai để:
- Mô hình hóa các hệ thống nhúng