Đồ án tốt nghiệp
Xây dựng ứng dụng J2EE
với Rational Rose và UML
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 1
PHẦN I
GIỚI THIỆU CÔNG NGHỆ
CHƯƠNG 1
GIỚI THIỆU VỀ PHÂN TÍCH VÀ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG VỚI UML
Mô hình hóa và thiết kế hướng đối tượng là một cách suy nghĩ về vấn đề sử
dụng các mô hình được tổ chức xung quanh các khái niệm thế giới thực. Cấu trúc
nền tảng là đối tượng, nó kết hợp cả cấu trúc dữ liệu và hành vi vào trong một
thự
c thể đơn. Các mô hình hướng đối tượng là có ích cho việc hiểu vấn đề, việc
trao đổi với người dùng, mô hình hoá các tổ chức kinh doanh, chuẩn bị tài liệu và
thiết kế chương trình cùng cơ sở dữ liệu.
1.1. Các nguyên tắc cơ bản của OO-Object Orientation
1.1.1. Trừu tượng hóa (Abstraction)
Trừu tượng hóa bao gồm việc tập trung vào các khía cạnh bản chất cố hữu
của một thực thể và lờ đi các
đặc tính phụ của nó. Trong phát triển hệ thống, điều
này có nghĩa là tập trung vào đối tượng là cái gì và làm cái gì, trước khi quyết định
nó được cài đặt như thế nào. Sử dụng trừu tượng hoá giữa quyền thực hiện các
quyết định lâu dài nhằm tránh các ràng buộc vội vã tới các chi tiết. Việc sử dụng
trừu tượng hóa trong khi phân tích có nghĩa là chỉ giải quyết với các khái niệm lĩnh
vực ứng d
ụng, không thực hiện các quyết định thiết kế và cài đặt trước khi hiểu
vấn đề. Sử dụng chính xác trừu tượng hoá cho phép cùng một mô hình được sử
dụng cho cả phân tích, thiết kế mức cao, cấu trúc chương trình, cấu trúc dữ liệu
và tài liệu.
1.1.2. Bọc kín (Encapsulation)
Bọc kín (che giấu thông tin) bao gồm việc phân tách các khía cạnh bên ngoài
của đối tượng, từ các chi tiết cài đặt bên trong của đối tượng. Bọc kín ngăn ngừ
a
một chương trình trở nên quá phụ thuộc lẫn nhau đến nỗi một thay đổi nhỏ cũng
có các hiệu ứng lớn. Việc cài đặt một đối tượng có thể bị thay đổi mà không ảnh
hưởng đến các ứng dụng có dùng đến nó. Việc bọc kín là không duy nhất đối với
các ngôn ngữ hướng đối tượng, nhưng khả năng kêt hợp cấu trúc dữ liệu và hành
vi trong một thực thể
đơn thực hiện việc bọc kín là kỳ diệu hơn so với các ngôn
ngữ truyền thống.
1.1.3. Kết hợp dữ liệu và hành vi(data - behavior)
Nơi gọi một thao tác không cần xem xét việc thực hiện thao tác đã cho tồn tại
như thế nào. Đa hình đã di chuyển gánh nặng của việc quyết định sử dụng cài đặt
nào từ việc gọi mã tới phân cấp lớp. Trong một hệ thố
ng hướng đối tượng, phân
cấp cấu trúc dữ liệu là đồng nhất với phân cấp kế thừa thao tác.
1.1.4. Phân chia
Kỹ thuật hướng đối tượng đề xướng việc phân chia tại vài mức khác nhau.
Việc kế thừa cả cấu trúc dữ liệu và hành vi cho phép cấu trúc chung được chia sẻ
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 2
trong vài lớp con giống nhau mà không dư thừa. Việc phân chia mã sử dụng kế
thừa là một trong những tiến bộ chính của ngôn ngữ hướng đối tượng.
Phát triển hướng đối tượng không chỉ cho phép chia sẻ thông tin trong ứng
dụng mà còn đưa ra triển vọng của việc sử dụng lại các thiết kế và mã trong các
đề án tượng lai. Phát triển hướng đối tượng cung cấp các công cụ như là trừu
tượng bọc kín, k
ế thừa để xây dựng các thư viện của các thành phần có thể dùng
lại được.
1.2. Các khái niệm cơ bản của hướng đối tượng
Khi nói về hướng đối tượng, các khái niệm cơ bản sau đây cần được hiểu rõ:
• Đối tượng (Object)
• Lớp (Class)
• Thuộc tính (Atribute)
• Thao tác (Operation)
• Giao tiếp – đa hình (Interface - Polymorphism)
• Thành phần (Component)
• Đóng gói (Package)
• Hệ thống con (Subsystem)
• Quan hệ
(Relationship)
Tất cả các khái niệm này được trình bày trong phần “tổng quan về UML” ở
phần sau.
1.3. Phát triển hướng đối tượng là gì?
Phát triển hướng đối tượng là một cách suy nghĩ mới về phần mềm đặt cơ sở
trên những khái niệm trừu tượng đang tồn tại trong thế giới thực. Bản chất của
việc phát triển hướng đối tượng là nhận biết và tổ ch
ức các khái niệm thuộc lĩnh
vực ứng dụng.
1.3.1. Các khái niệm mô hình hoá
Các ngôn ngữ lập trình hướng đối tượng là có ích trong việc loại bỏ các hạn
chế do tính không mềm dẻo của các ngôn ngữ lập trình truyền thống.
Phát triển hướng đối tượng là quá trình nhận thức độc lập với ngôn ngữ lập
trình cho đến các bước cuối cùng. Phát triển hướng đối tượng là hướng suy nghĩ
mới và không là kỹ thu
ật lập trình. Lợi ích của vấn đề này là giúp các chuyên gia,
phát triển viên và khách hàng biểu lộ các khái niệm trừu tượng một cách rõ ràng
và truyền gởi chúng tới nơi khác. Nó có thể phục vụ như là một trung gian cho
việc xác định, phân tích, lập tài liệu và giao tiếp cũng như việc lập trình.
1.3.2. Phương pháp hướng đốI tượng
Chúng ta đưa ra phương pháp phát triển hướng đối tượng và các ký hiệu đồ
họa cho việc biểu diễn các khái niệ
m hướng đối tượng. Phương pháp bao gồm
việc xây dựng một mô hình của lĩnh vực ứng dụng, sau đó thêm các chi tiết vào
nó trong khi thiết kế hệ thống.
Có nhiều phương pháp phân tích và thiết kế hướng đối tượng khác nhau –
tiêu biểu là các phương pháp Booch của Grady Booch, phương pháp OMT
(Object Modeling Technique) của James Rumbaugh, phương pháp OOSE (Object
Oriented Software Engineering) của Ivar Jacobson. Nhìn chung, một cách chắc
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 3
chắn rằng các phương pháp này đều bao gồm các bước: phân tích, thiết kế hệ
thống, thiết kế đối tượng, cài đặt. Mặc dù vậy, mỗi phương pháp có cách thức mô
hình hoá khác nhau.
Trong đồ án này, em sẽ trình bày phương pháp hướng đối tượng với việc sử
dụng ký pháp của UML để mô hình hoá.
1.4. Lợi ích và sức mạnh của OO
• Cách tiếp cận hướng chức năng
Trước kia chúng ta thường hay sử dụng phươ
ng pháp hướng chức năng để
xây dựng hệ thống. Với phương pháp này, dữ liệu và chức năng(hành vi hay xử
lý) được tách ra riêng rẽ. Ở đó, chức năng được coi như là những hành vi có tính
chủ động, còn dữ liệu là bộ phận nắm giữ thông tin một cách bị động và được tác
động bởi các chức năng. Hệ thống được chia thành các chức năng nhỏ dần cho
tới khi nó có thể d
ễ dàng cho việc mã hoá, còn dữ liệu được gửi giữa các chức
năng này. Một hệ thống được phát triển theo cách này thường trở nên khó bảo trì.
Một vấn đề quan trọng với phương pháp hướng chức năng là tất cả các chức
năng phải biết làm thế nào dữ liệu được lưu trữ, cấu trúc dữ liệu của nó. Các kiểu
khác nhau của dữ liệu có những định dạ
ng khác nhau, vì thế việc mã hoá chương
trình trở nên rắc rối. Hơn nữa, khi ta thay đổi cấu trúc dữ liệu, dẫn đến ta phải thay
đổi tất cả các chức năng liên quan đến cấu trúc này. Hệ thống được phát triển
theo phương pháp này trở nên có tính ổn định kém. Một chút thay đổi sẽ gây nên
hậu quả nghiêm trọng.
Một vấn đề khác đối với phương pháp hướng chức năng là chúng ta thường
không có những tư
duy một cách tự nhiên về cấu trúc của vấn đề nó được cấu tạo
như thế nào. Do vậy việc xây dựng hệ thống trở nên khó khăn hơn.
Một nguyên nhân khác đối với phương pháp hướng chức năng là hệ thống rất
khó để sửa đổi, tính khả chuyển kém, nhạy cảm với sự thay đổi, vì dữ liệu và
hành vi bị tách riêng.
• Cách tiếp cận hướng đố
i tượng
Việc phát triển hệ thống theo cách tiếp cận hướng đối tượng sẽ mang lại cho
ta nhiều lợi ích, tiêu biểu là:
- Giảm chi phí bảo trì: bởi vì hầu hết các xử lý trong hệ thống được bọc kín -
dữ liệu và hành vi được gom chung lại, các hành vi có thể được sử dụng lại và kết
hợp thành các hành vi mới.
- Mô hình thế giới thực: hệ thống hướng đối tượng là định hướng
để mô hình
thế giới thực. Các đối tượng được tổ chức thành các lớp đối tượng, và các đối
tượng được kết hợp với các hành vi. Mô hình dựa trên đối tượng hơn là dựa trên
dữ liệu và xử lý. Cách thức này gần gũi với tư duy con người, do vậy việc xây
dựng dễ dàng hơn.
- Tính tin cậy cao: bởi vì các hành vi mới được xây dựng từ các đối tượng đã
có sẵn.
- Kh
ả năng sử dụng lại mã nguồn cao: bởi cơ chế kết hợp dữ liệu với hành vi
vào một đối tượng riêng biệt, cơ chế đóng gói, cơ chế bọc kín. Do vậy, dễ dàng
cho việc kế thừa, hay sử dụng lại.
1.5. Tổng quan về UML
UML được viết tắt của cụm từ Unified Modeling Language, tạm dịch là ngôn
ngữ mô hình hợp nhất.
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 4
UML là thế hệ kế vị của làn sóng phân tích và thiết kế hướng đối tượng (OOA
& D) xuất hiện trong những năm đầu 80 và cuối những năm 90. UML phát triển
trên sự hợp nhất trong các phương pháp của tác giả Booch, Rumbaugh (OMT) và
Jacopson, và đã được chuẩn hóa bởi OGM.
UML được gọi là một ngôn ngữ mô hình hóa dùng để đặc tả, trực quan hóa
dùng
để xây dựng và làm sưu liệu cho các hệ thống phần mềm
• Mô hình hóa : giúp cho chúng ta hiểu được thế giới thực, mô hình hóa thế
giới thực để có thể hiểu được những đặc trưng, tính toán các thông số và dự
đoán kết quả sẽ đạt được.
• Ngôn ngữ : Chức năng của UML như là một phương tiện để bày tỏ và trao
đổi tri thức (giao tiếp)
• Trực quan hóa hệ thống :
được sử dụng để diễn tả hệ thống một cách trực
quan trước khi nó được thực hiện.
• Xây dựng hệ thống : được sử dụng để hiện thực hóa hệ thống.
• Làm sưu liệu : được sử dụng để nắm bắt kiến thức về hệ thống thông qua
vòng đời của nó.
UML không phải là :
• Một ngôn ngữ lập trình trực quan, mà nó là một ngôn ng
ữ mô hình.
• Một công cụ, mà nó là một ngôn ngữ đặc tả mô hình
• Một xử lý, mà nó cho phép xử lý
UML thích hợp với việc giải quyết vấn đề hướng đối tượng. Bất kì ai quan tâm
đến UML đều quen thuộc với nguyên lý cơ bản về việc giải quyết vấn đề hướng
đối tượng, bắt đầu với việc xây dựng mô hình. Mô hình (model ) là sự trừu tượng
hoá vấn đề cơ bả
n. Phạm vi (domain ) là thế giới thực mà vấn đề đó mang đến.
Mô hình chứa các đối tượng (objects) tác động lẫn nhau bằng cách gởi các
thông tin (messages) khác nhau. Nếu một đối tượng đang tồn tại thì đối tượng đó
có thuộc tính (attributes) và có các hành vi (behaviors hoặc operations). Giá trị của
các thuộc tính trong đối tượng được xác định bởi trạng thái của nó (state).
Hình 1.1: sự hợp nhất của UML
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 5
Lớp (Classes) là bảng thiết kế cho các đối tượng. Lớp bao gồm các thuộc tính
(dữ liệu) và các hành vi (phương thức hoặc hàm) trong một thực thể riêng biệt
đơn giản. Các đối tượng là các thể hiện (instance) của các lớp.
1.5.1. Các đặc điểm của UML
Bốn đặc điểm chính của UML để có thể phân biệt với các ngôn ngữ mô hình
khác :
• Đa năng (general-purpose)
• Khả năng ứng dụng rộng rãi (broadly applicable)
• Được hỗ trợ bởi các công cụ (tool- supported)
• Là một chuẩn công nghiệp (industrial standerdized)
1.5.2 Kiến trúc tổng quát của UML
a)Các mô hình .
Xét về đặc điểm tĩnh, các mô hình nắm bắt một số đặc điểm và hành vi của hệ
thống.
Xét về đặc điểm động, nắm bắt các đặc điểm củ
a hệ thống, về cơ bản chúng
lưu trữ các tri thức về mặt ngữ nghĩa.
b) Cấu trúc View
Ngày nay các hệ thống phần mềm càng trở nên phức tạp, khó khăn do vậy ta
không thể mô hình hóa chúng chỉ bằng một lược đồ hay mô hình. Hệ thống phải
được phân tích dưới nhiều góc độ khác nhau. UML đưa ra định nghĩa về cấu trúc
View. Mỗi View là một thể hiện của hệ thống dướ
i một khía cạnh nào đó. Mỗi
View có thể bao gồm nhiều loại lược đồ khác nhau (xem hình 1.2)
• Use Case View hay còn gọi là Use model view thể hiện các vấn đề về
giải pháp liên quan đến chức năng tổng quát của hệ thống.
• Logical View hay còn gọi là Structure Model view hoặc Static view: thể
hiện các vấn đề liên quan đến cấu trúc thiết kế hệ thống.
Hình 1.2 : cấu trúc View trong UML
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 6
• Process View hay còn gọi là bihavioral model view, Dynamic hay
Collaboration View thể hiện các vấn đề liên quan đến xử lý giao tiếp và
đồng bộ trong hệ thống.
• Deployment View hay còn gọi là Environment model View : thể hiện các
vấn đề liên quan đến việc triển khai hệ thống.
• Một số model View khác có thể được sử dụng khi cần thiết.
c) Các lược đồ. Lược đồ miêu tả các tri thức về m
ặt cú pháp được miêu tả quanh
cấu trúc, Hình 1.3
Hình 1.3 : Các lược đồ của UML
♦ Use Case View
Lược đồ người sử dụng (Use Case Diagram) : Mô tả các chức năng của hệ
thống. Lược đồ Use Case diễn tả các Use Case trong hệ thống và các quan hệ
ràng buộc…
♦ Logical View
Lược đồ lớp (Class Diagram) : mô tả cấu trúc tĩnh của hệ thống thể hiện các
phần mà hệ thống có thể xử lý đượ
c.
Lược đồ đối tượng (Object Diagram): mô tả cấu trúc tĩnh của hệ thống tại một
thời điểm, nó có thể xem như một thể hiện của lược đồ lớp.
♦ Process View
Lược đồ tuần tự ( Sequence Diagram ) :Mô tả sự tương tác giữa các thành
phần trong hệ thống theo thời gian.
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 7
Lược đồ cộng tác (Collaboration Diagram) : mô tả sự tương tác giữa các thành
phần trong hệ thống theo thời gian và không gian.
Lược đồ trạng thái (State Diagram) : mô tả trạng thái, sự hồi đáp của một
thành phần trong hệ thống khi có những tác động vào nó.
Lược đồ hoạt động (Activity Diagram) : mô tả sự hoạt động của các thành
phần trong hệ thống.
♦ Implementation View
Lược đồ thành phần (Component) : mô tả tổ chức của các thành phầ
n thực thi
trong hệ thống.
♦ Invironmen View
Lược đồ triển khai (Deployment Diagram) : mô tả cấu hình của các thành phần
môi trường và trình tự của các thành phần thực thi trên đó.
1.5.3. Các lược đồ trong UML
Trọng tâm của việc giải quyết vấn đề hướng đối tượng là xây dựng một mô
hình. Mô hình trừu tượng hóa các chi tiết cần thiết của vấn đề cơ bản về thế giới
thực. Trọng tâm c
ủa UML được thể hiện qua 8 loại lược đồ khác nhau :
• Use case diagrams (Lược đồ Use case)
• Class diagrams (Lược đồ lớp)
• Sequence diagrams (Lược đồ tuần tự)
• Collaboration diagrams (Lược đồ cộng tác)
• Statechart diagrams (Lược đồ trạng thái)
• Activity diagrams (Lược đồ hoạt động)
• Component diagrams (Lược đồ thành phần)
• Deployment diagrams (Lược đồ triển khai)
1.5.3.1. Use case diagrams (Lược đồ use case)
Use case diagrams mô tả hệ thống làm gì từ quan điểm củ
a người quan sát
tổng quan. Điều quan trọng là nhấn mạnh hệ thống làm gì hơn là làm như thế nào.
Lược đồ Use case quan hệ gần gũi đến các sự kiện. Sự kiện (scenario) là
những gì xảy ra khi ai đó tương tác với hệ thống. Đây là sự kiện về một khoa y
học: một bệnh nhân gọi phòng khám để hẹn gặp cho việc kiểm tra hàng năm.
Người tiếp tân tìm thời gian trố
ng gần nhất trong sổ hẹn gặp và lịch hẹn gặp cho
thời qian đó.
Use case là tập hợp các sự kiện về một công việc đơn giản hoặc mục đích
của nó. actor là người tham gia vào các sự kiện trong phiên làm việc. Actor đóng
vai trò là người hoặc đối tượng hoạt động. Hình dưới là mô tả use case là Make
Appointment, actor là Patient. Mối liên hệ giữa use case và actor là mội quan hệ
kết hợp ( communication association
) (gọi tắt là communication ).
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 8
Hình 1.4: actor và use case
Actor có hình que, Use case có hình bầu dục, mối quan hệ là đường thẳng liên
kết giữa actor và use case.
Lược đồ use case là tập hợp các actor, các use case, các mối quan hệ giữa
chúng. Hình vẽ dưới cho ta 4 use case và 4 actor. Chú ý rằng một use case đơn
giản có thể có nhiều actor.
Hình 1.5: lược đồ use case
Lược đồ Use case hổ trợ 3 phạm vi sau :
• Xác định các đặc trưng : Use case mới thường thườ
ng phát sinh các yêu
cầu mới khi hệ thống phân tích và đưa ra các mô hình.
• Giao tiếp với clients : các kí hiệu đơn giản giúp cho lược đồ use case có
thể giao tiếp với client.
• Phát sinh các trường hợp test : tập hợp các sự kiện cho một use case
có thể đề nghị các trường hợp cho các sự kiện này.
Chi tiết lược đồ Use case
Lược đồ Use case phát hoạ tổng quan của hệ thống. Mỗi lược đồ Use case có
các actor, các use case, các quan hệ. Một lược đồ Use case đơn giản được mở
rộng với các đặc trưng thêm vào để hiển thị thông tin hơn (hình 1.6).
Các đặc trưng của lược đồ Use case
• system boundaries (kết hợp hệ thống)
• generalizations (tổng quát hoá)
• includes (bao hàm)
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 9
• extensions (mở rộng)
Hình 1.6: lược đồ use case mở rộng
Lược đồ Use case mở rộng lược đồ với các đặc trưng thêm vào.
Hình chữ nhật kết hợp hệ thống ( system boundary ) phân chia hệ thống từ
các actor mở rộng.
Tổng quát hoá (generalization) use case biểu diễn rằng một use case là một
loại đặc biệt đơ
n giản khác.Pay Bill là use case cha và Bill Insurance là use case
con .Use case con được thay thế bởi use case cha bất cứ khi nào cần thiết. Sự
tổng quát hoá xuất hiện như một dòng với mũi tên hình tam giác ở đầu hướng về
use case cha.
Quan hệ bao hàm ( Include ) quản lý use case thành use case thêm vào.Quan
hệ bao hàm hữu ích khi cùng use case được phân chia thành hai use case khác
nhau. Cả Make Appointment và Request Medication quan hệ bao hàm với như
công việc con. Trong lược đồ, kí hiệu bao hàm là đường gạch đứt, bắt đầu ở use
case cơ sở
và kết thúc với mũi tên đến use case bao hàm. Đường gạch đứt được
gán nhãn <<include>>.
Quan hệ mở rộng (extend) chỉ ra một use case là một biến đổi của use case
khác. Kí hiệu quan hệ mở rộng là đường gạch đứt, có nhãn là <<extend>> và một
mũi tên hướng về use case cơ sở. Điểm mở rộng (extension point) được xác định
khi use case mở rộng là thích hợp và được viết bên trong use case cơ sở.
1.5.3.2. Class diagrams (Lược đồ lớp)
Class diagram đưa ra tổng quan hệ thống bằng cách hiển thị các lớp và quan
hệ giữa chúng.
Lược đồ lớp là lược đồ tĩnh, hiển thị những gì tác động nhưng không xảy ra
những gì khi chúng tác động.
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 10
Lược đồ lớp dưới đây mô tả một khách hàng đặt hàng. Lớp chính là Order, kết
hợp với nó là Customer và Payment. Payment là một trong 3 loại : Cash,
Check, hoặc Credit. Order chứa OrderDetails và kết hợp với Item.
Hình 1.6:lược đồ lớp
Lược đồ lớp có 3 loại quan hệ :
• association (quan hệ kết hợ
p) một quan hệ giữa các thể hiện của 2 lớp.
Đây là một quan hệ kết hợp giữa hai lớp nếu một thể hiện của một lớp phải biết
đến thể hiện khác làm việc với nó. Trong một lược đồ, một quan hệ kết hợp là một
liên kết, kết nối đến hai lớp.
• aggregation (quan hệ thu nạp) mối kết hợp trong một lớ
p thuộc về một
tập hợp. Một quan hệ thu nạp có một hình thoi cuối điểm được xem là toàn thể.
Trong lược đồ này,Order có một tập hợp là OrderDetails.
• generalization (quan hệ tổng quát hoá) mối liên kết kế thừa diển tả một
lớp là một lớp cha (superclass) của lớp khác. Quan hệ tổng quát hoá có một hình
tam giác biểu diễn lớp cha. Payment là lớp cha của Cash,
Check, và Credit.
Một mối kết hợp có hai đầu giới hạn. Một đầu có thể có một tên vai trò (role
name) để lọc ra tính tự nhiên của mối kết hợp. Ví dụ,OrderDetail là một đường
mẫu của Order.
navigability (tính định hướng) : mũi tên trong quan hệ kết hợp hiển thị hướng
quan hệ có thể xem xét và truy vấn. OrderDetail có thể truy vấn về mẫu (Item)
của nó nh
ưng không thông qua cách khác. Trong trường hợp này, OrderDetail có
Item. Quan hệ kết hợp có mũi tên có tính định hướng .
multiplicity (bản số ) của một đầu quan hệ là số thể hiện của lớp kết hợp với
một đầu khác. Bản số là một số hoặc một dãy số. Ví dụ : một Order chỉ có một
Customer, nhưng một Customer có nhiều Orders.
Bản số Giải thích
0 1
0 hoặc 1 thể hiện.
0 * hoặc *
Không giới hạn số thể hiện
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 11
1
Chính xác 1 thể hiện
1 *
Ít nhất 1 thể hiện
Hình 1.7: bản số trong lược đồ lớp
Mỗi lược đồ lớp có các lớp, các quan hệ, và các bản số. Tính định hướng và
các vai trò là các mẫu tuỳ chọn đặt trong lược đồ để làm sáng tỏ.
Chi tiết lược đồ lớp Lược đồ lớp gồm các lớp, các liên kết, các bản số. Lược đồ
lớp có thể biểu diễn nhiều thông tin.
• compositions (thành phần)
• class member visibility and scope (phạm vi và tầm v
ực của lớp thành viên)
• dependencies and constraints (phụ thuộc và ràng buộc)
• interfaces (giao diện)
Composition and aggregation (Thành phần và thu nạp)
Quan hệ kết hợp trong đối tượng là phần mở rộng của quan hệ thu nạp.
Thành phần (Composition ) là quan hệ kết hợp với phần (part) thuộc về toàn bộ
(whole), phần không tồn tại nếu không có toàn bộ. Thành phần được hiển thị bởi
hình thoi đặc ở phía cuối toàn bộ
.
Trong lược đồ này biểu diễn rằng, một BoxOffice thuộc về một
MovieTheater.Nếu bỏ MovieTheater thì sẽ huỷ BoxOffice. T
Hình 1.8:lược đồ thành phần và thu nạp
Lớp thông tin: tầm vực (visibility) và phạm vi (scope)
Chú thích lớp là một hình chữ nhật gồm 3 phần : tên lớp, thuộc tính
(attributes) và phương thức (operations). Thuộc tính và phương thức được gán
theo phương thức truy xuất và phạm vi.
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 12
Hình 1.9 : lớp thông tin tầm vự và phạm vi
Ví dụ minh hoạ cách sử dụng theo qui ước UML.
• Thành viên tĩnh được gạch dưới. Thành viên làm ví dụ thì không.
• Phương thức được trình bày như sau :
<access specifier> <name> ( <parameter list>) : <return type>
• Danh sách thông số (parameter list) hiển thị mỗi kiểu thông số sau dấu hai
chấm
Dependencies and constraints (Phụ thuộc và ràng buộc)
Phụ thuộc (
dependency ) là mối quan hệ giữa hai lớp mà thay đổi lớp này có
thể ảnh hưởng đến lớp khác. Phụ thuộc được vẽ như đường gạch đứt. Trong
lược đồ lớp Co op dưới đây phụ thuộc vào Company. Nếu thay đổi Company thì
phải thay đổi Co op.
Hình 1.10: quan hệ phụ thuộc và ràng buộc trong lược đồ lớp
Ràng buộc ( constraint ) là điều kiện mà m
ỗi thực thi về thiết kế phải hoàn
thành. Ràng buộc được biểu diễn dưới hai dấu ngoặc mốc {}. Ràng buộc trong
lược đồ trên chỉ ra rằng một Section có thể là một phần của CourseSchedule
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 13
Interfaces (Giao diện) và stereotypes (Khuôn mẫu)
Giao diện (interface) là một tập hợp các kí hiệu hoạt động. Trong C++, giao
diện được thực hiện như các lớp trừu tượng với các thành viên ảo. Trong Java
chúng được thực hiện trực tiếp.
Lược đồ lớp dưới đây là một mô hình về hội nghị nghề nghiệp. L
ớp liên quan
đến hội nghị là SessionTalk (một bảng trình bày đơn giản) và Session (tập hợp
liên quan đến SessionTalk). ShuttleSchedule với danh sách các ShuttleStop là
phần quan trọng để đăng kí ở tại khách sạn. Trong lược đồ có một ràng buộc,
ShuttleStop được phân cấp.
Có ba giao diện trong lược đồ : IDated, ILocatable, và ITimed. Tên của giao
diện bắt đầu bằng kí tự I và đi kèm với các phương thứ
c trừu tượng được viết
bằng chữ nghiêng.
Một lớp như lớp ShuttleStop, với các phương thức kết hợp trong giao diện
như ILocatable, là implementation ( hoặc realization ) của giao diện.
Lớp ShuttleStop có kiểu mẫu ( stereotype ) << place>>. Kiểu mẫu qui định
phương pháp mở rộng UML, là thành phần mô hình mới được tạo từ các kiểu tồn
tại. Tên kiểu mẫu được vi
ết trên tên lớp. Giao diện là một loại đặc biệt của kiểu
mẫu.
Có hai cách kí hiệu giao diện trong UML : một là kí hiệu như trên, hai là kí hiệu
hình que hoặc hình tròn.
Trong hình tròn chú thích, giao diện là hình tròn với đường thẳng kết nối đến
lớp thi hành.
Hình 1.11:các lớp giao diện trong lược đồ.
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 14
Hình 1.12: các lớp giao diện và khuôn mẫu
Packages (Gói) và objects (Đối tượng)
Để tổ chức các lược đồ lớp phức tạp, ta có thể nhóm các lớp phức tạp vào
trong các gói (packages). Một gói là một tập hợp các thành phần UML liên quan.
Lược đồ dưới đây là một mô hình nghiệp vụ với các lớp được nhóm vào các gói.
Các gói có dạng hình chữ nhậ
t với các nhãn (tab)ở đầu. Tên gói trong nhãn hoặc
trong hình chữ nhật. Đường gạch nối là quan hệ phụ thuộc (dependencies). Một
gói phụ thuộc vào một gói khác nếu sự thay đổi của gói khác có ảnh hưởng đến
sự thay đổi ngay lúc đầu.
Hình 1.13: lược đồ thành phần
1.5.3.3. Object diagrams (Lược đồ đối tượng) là một loại đặc biệt của lược đồ
lớp, biểu diễn các thể hi
ện thay vì các lớp. Chúng dùng để giải thích các mối quan
hệ phức tạp, đặc biệt là quan hệ đệ qui.
Lược đồ lớp dưới đây hiển thị một Department có thể chứa nhiều
Departments khác.
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 15
Hình 1.14: lược đồ lớp thể hiện quan hệ đệ qui
Lược đồ đối tượng dưới đây giải thích lược đồ lớp.
Hình 1.15: lược đồ đốI tượng
Mỗi hình chữ nhật trong lược đồ tương ứng với một thể hiện. Tên thể hiện
được gạch dướ
i trong lược đồ UML. Tên lớp hoặc tên thể hiện có thể được loại
bỏ từ lược đồ đối tượng nhưng ý nghĩa lược đồ vẫn rõ.
1.5.3.4. Sequence diagrams (Lược đồ tuần tự)
Lược đồ lớp và lược đồ đối tượng là các cấu trúc (view) mô hình tĩnh. Lược đồ
tương tác (Interaction diagrams) là cấu trúc động, mô tả các đối tượng cộng tác
như thế nào.
Lược đồ
tuần tự (sequence diagram ) là lược đồ tương tác diễn tả các
phương thức (operations ) hoạt động như thế nào, thông điệp nào được gởi đến
và khi nào. Lược đồ tuần tự được tổ chức theo thời gian. Các đối tượng liên quan
đến phương thức được liệt kê từ trái sang phải khi chúng tham gia vào thông điệp
tuần tự.
Dưới đây là lược đồ tuần tự cho việ
c đặt chổ khách sạn. Đối tượng bắt đầu
các thông điệp tuần tự là Reservation window.
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 16
Hình 1.16: lược đồ tuần tự
Reservation window gởi một thông điệp makeReservation()đến HotelChain.
Sau đó HotelChain gởi một thông điệp makeReservation() đến Hotel. Nếu Hotel
có phòng, thì nó sẽ đặt chỗ (Reservation) thừa nhận việc đặt chổ này
(Confirmation ).
Đường nét đứt gọi là lifeline, biểu diễn thời gian mà đối t
ượng đang tồn tại.
Mỗi mũi tên là một thông điệp gọi. Mũi tên đi từ người gởi đến đỉnh activation bar
của thông điệp trong lifeline của người nhận. Activation bar biểu diễn khoảng thời
gian thực thi thông điệp.
Trong lược đồ ví dụ, Hotel sử dụng selfcall để quyết định nếu có phòng. Khi
đó Hotel tạo công việc đặt chổ (Reservation
) và thừ nhận việc đặt chổ này
(Confirmation). Dấu hoa thị trong self call có nghĩa lặp lại ( iteration ) để chắc
chắn rằng có phòng để ở mỗi ngày trong khách sạn. Biểu thức trong dấu ngoặc
đơn là điều kiện ( condition ).
Lược đồ có một thông báo (note) để giải thích, đó là đoạn văn bản ở trong
hình chữ nhật có nếp quăn ở góc. Thông báo có thể đặ
t vào trong bất kì lược đồ
UML nào.
1.5.3.5. Collaboration diagrams (Lược đồ cộng tác)
Collaboration diagrams cũng là lược đồ tương tác. Chúng chuyển thông tin
giống nhau như lược đồ tuần tự, nhưng chúng tập trung vào vai trò đối tượng thay
vì thời gian mà thông điệp đó gởi đến. Trong lược đồ tuần tự, vai trò đối tượng là
các đỉnh và thông điệp được kết nối.
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 17
Hình 1.17: lược đồ cộng tác
Hình chữ nhật của vai trò đối tượng được ghi trong lớp hoặc tên đối tượng
hoặc cả hai. Tên lớp được đặt trước dấu hai chấm ( : ).
Mỗi thông điệp trong lược đồ cộng tác có số tuần tự (sequence
number).Thông điệp đầu tiên được đánh số 1.
1.5.3.6. Statechart diagrams (Lược
đồ trạng thái)
Các đối tượng có các hành vi và trạng thái. Trạng thái của đối tượng phụ thuộc
vào hoạt động hoặc điều kiện hiện hành. Lược đồ trạng thái (statechart diagram)
hiển thị các trạng thái của đối tượng và các biến đổi trong trạng thái.
Trong lược đồ ví dụ, mô hình đăng nhập vào hệ thống ngân hàng trên
mạng.Trước hết, đăng nhập vào số mật khẩu và số ID củ
a người đó, sau đó
submit thông tin để xác nhận.
Đăng nhập có thể thực hiện trong 4 trạng thái không trùng lắp sau :Getting
SSN, Getting PIN, Validating (tính hợp lệ), và Rejecting (loại bỏ). Từ mỗi trạng
thái đến một số chuyển tiếp(transitions) hoàn toàn, xác định được trạng thái kế
tiếp.
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 18
Hình 1.18: lược đồ trạng thái
Các trạng thái được khoanh tròn trong hình chữ nhật. Các chuyển tiếp theo
hướng mũi tên từ trạng thái này đến trạng thái khác. Các sự kiện hoặc các điều
kiện được viết bên cạnh mũi tên.
Trạng thái ban đầu (hình tròn đen) là một động tác giả để bắt đầu hoạt động.
Trạng thái cuối cùng cũ
ng là trạng thái giả để kết thúc hoạt động.
Hoạt động diễn ra khi kết quả của một sự kiện hoặc điều kiện được nhấn mạnh
trong phần trình bày hay trong hành động. Trong khi ở trạng thái hợp lệ (), đối
tượng không chờ một sự kiện bên ngoài đến một trigger chuyển đổi thay vì trình
bày một hoạt động. Kết quả của hoạt động được xác định
ở trạng thái kế tiếp.
Tiến trình không đồng bộ hoặc trùng lắp
Lược đồ tuần tự, lược đồ cộng tác, lược đồ hoạt động, lược đồ trạng thái là
các cấu trúc mô hình động. Chúng cho ta thấy được cấu trúc bên trong mô hình.
Lược đồ tuần tự và lược đồ cộng tác tập trung vào các thông điệp liên quan đến
việc hoàn tất một tiến trình đơn lẻ. Lược đồ trạng thái t
ập trung vào một đối tượng
đơn lẻ. Lược đồ hoạt động tập trung vào luồng hoạt động trong công việc đơn lẻ.
Sau đây là phần trình bày về các hoạt động không đồng bộ hoặc trùng lắp của
lược đồ tuần tự và lược đồ trạng thái .
Lược đồ tuần tự với thông điệp không đồng bộ
Thông điệp gọi là không đồng bộ (asynchronous
) nếu nó cho phép gởi thêm
các thông điệp trong khi thông điệp ban đầu vẫn còn đang xử lý. Thời gian của
một thông điệp không đồng bộ độc lập với thời gian các thông điệp xen vào.
Lược đồ tuần tự dưới đây minh hoạ hoạt động của một y tá yêu cầu kiểm tra
chuẩn đoán ở phòng mạch. Có hai thộng diệp không đồng bộ từ Nurse :
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 19
Hình 1.19 : lược đồ tuần tự với thông điệp không đồng bộ
1) yêu cầu phòng mạch (MedicalLab) đăng kí ngày để kiểm tra.
2) yêu cầu công ty bảo hiểm (InsuranceCompany) chấp thuận kiểm tra.
Yêu cầu của các thông điệp này được gởi hoặc được thực hiện không thích
hợp. Nếu InsuranceCompany chấp nhận kiểm tra thì sẽ lên l
ịch kiểm tra trong
ngày được cung cấp bởi MedicalLab.
UML sử dụng các qui ước thông điệp sau :
Biểu tượng Ý nghĩa
Thông điệp có thể đồng bộ hoặc không
đồng bộ
Thông điệp phản hồi (không bắt buộc)
Thông điệp đồng bộ
Thông điệp không đồng bộ
Hình 1.20: các qui ước thông điệp của UML
Trùng lắp và không đồng bộ trong lược đồ trạng thái
Các trạng thái trong lược đồ trạng thái có thể lồng nhau. Quan hệ các trạng
thái có thể nhóm cùng trong một trạng thái hoàn chỉnh (composite state) đơn lẻ.
Các trạng thái lồng nhau thì cần thiết khi một hoạt động liện quan đến các hoạt
động con trùng lắp hoặc không đồng bộ.
Lược đồ trạng thái dưới đây có hai tiểu trình trùng lắ
p dẫn vào hai trạng thái
con của trạng thái hoàn chỉnh Auction: Bidding và Authorizing Credit. Bidding
là trạng thái hoàn chỉnh với ba trạng thái con.Authorizing Credit có hai trạng thái
con.
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 20
Auction yêu cầu phân nhánh ở đầu vào thành hai tiểu trình riêng biệt. Trừ khi
có một tồn tại khác thường (như Cancelled hoặc Rejected), sự tồn tại từ trạng
thái hoàn chỉnh Auction diễn ra khi cả các trạng thái con đang tồn tại.
Hình 1.21: trùng lắp và không đồng bộ trong lược đồ trạng thái
1.5.3.7. Activity diagrams (Lược đồ hoạt động)
activity diagram là một biểu đồ tiến trình (flowchart). Lược đồ hoạt động và
lược đồ trạng thái có quan hệ với nhau. Khi lược đồ trạng thái tập trung vào một
đối tượng thông qua một quá trình, lược đồ hoạt động tập trung vào luồng hoạt
động liên quan đến một tiến trình đơn. Lược đồ hoạt động biểu diễn có nhiều hoạt
động này phụ thuộc vào nhiều hoạt động khác.
Ví dụ chúng ta sử
dụng theo tiến tình:"Rút tiền ra khỏi ngân hàng thông qua
ATM "
Ba lớp liên quan đến hoạt động Customer, ATM, và Bank.Tiến trình bắt đầu ở
hình tròn đen đầu tiên phía trên và kết thúc ở hình tròn trắng trọng tâm là màu đen
phía dưới.
Lược đồ hoạt động có thể phân chia thành đối tượng swimlanes để xác định
đối tượng nào liên quan đến hoạt động này. Một chuyển đổi (transition) đơn giản
ra khỏi hành động để kết n
ối đến hành động khác.
Một chuyển đổi có thể tách ra thành hai hay nhiều chuyển đổi riêng biệt qua
lại. Biểu thức chắn (Guard expressions) bên trong dấu [] chuyển đổi ra khỏi một
nhánh. Một nhánh và nhánh kế tiếp của nó kết hợp để đánh dấu nhánh cuối xuất
hiện trong lược đồ dưới dạng hình thoi rỗng.
Một chuyển đổi có thể phân nhánh thành hai hay nhiều hoạt động song song.
Sự phân nhánh và sự kết hợ
p các tiểu trình tiếp theo ra khỏiphân nhánh xuất hiện
trong lược đồ như thanh rắn.
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 21
Hình 1.22: lược đồ hoạt động
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 22
CHƯƠNG 2
GIỚI THIỆU VỀ J2EE
(Java 2 Platform Enterprise Edition)
2.1. Giới thiệu sơ lược về J2EE System
J2EE là nền để phát triển các ứng dụng phần mềm phân tán của hãng. Từ lúc
bắt đầu của ngôn ngữ java, nó đã thích nghi và phát triển tốt. Ngày càng nhiều
công nghệ đã trở thành một phần của nền Java, các API và các chuẩn mới được
phát triển
đến nhiều địa chỉ cần thiết. Sau cùng, Sun và 1 nhóm nhà lãnh đạo
công nghiệp, dưới sự bảo trợ của open Java Community Process(JCP) hợp nhất
tất cả các chuẩn liên quan đến hãng vào nền J2EE
Một hệ thống J2EE về tổng quát có thể bao gồm 3 máy logic như sau: máy
dùng cho Client, máy J2EE Server, máy dùng cho Database Server. Xét về các
lớp để xây dựng ứng dụng thì bao gồm 4 lớp chính: client tier, web tier, business
tier và EIS tier.(hình 2.1)
Hình 2.1:tổng quát các máy logic của J2EE
Client tier:
Application clients: là ứng dụng client thực thi trên máy client (logic) và
chuẩn bị trước mộ
t số cách thức để cho user có thể giao tiếp hệ thống J2EE để
thực hiện một công việc nào đó. Cách thức giao tiếp có thể là thông qua giao diện
đồ họa hoặc dòng lệnh.
Application client có thể truy xuất trực tiếp đến các EJB của lớp Business hoặc
có thể thể thiết lập một kết nối HTTP đến các servlet của lớp Web.
Web Browsers: là môi trường để thực thi các ứng dụng trên web của máy
logic client
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 23
Applets: cũng là một hình thức của application client nhưng được thiết kế để
được download xuống và thực thi trên Java VM của Web Browser, do đó khả
năng của Applet được khống chế bởi Web Browser.
JavaBeans component: client cũng có thể bao gồm một số JavaBean để
quản lý dòng data giao tiếp giữa các application client hoặc applet để giao tiếp với
các component thực thi trên J2EE server.
Sau đây là sơ đồ giao ti
ếp giữa Client tier và J2EE server:
Hình 2.2: sơ đồ giao tiếp giữa Client tier và J2EE server
Web tier:
Bao gồm các trang JSP và các servlet và có thể có các JavaBean để quản lý
các dòng dữ liệu giữa các web components và business tier của hệ thống J2EE.
Hình2.3:sơ đồ tầng Web tier
Business tier:
Business tier là một lớp logic dùng để thực hiện việc xử lý của hệ thống J2EE
server.
Đồ án tốt nghiệp - Xây dựng ứng dụng J2EE với Rational Rose và UML
Trang 24
Hình2.4: sơ đồ tầng Business tier.
Hình vẽ minh họa cho ta thấy 1 Enterprise Bean có thể nhận dữ liệu từ client,
xử lý nó (nếu cần thiết) và gửi nó đến EIS tier (Enterprise Information System tier)
để lưu trữ. 1 Enterprise Bean cũng có thể nhận dữ liệu từ EIS tier, xử lý dữ liệu
đó (nếu cần thiết) và sau đó là gửi nó trở lại các chương trình client.
Có 3 loại Enterprise Bean: session bean, entity bean, message-driven bean.
Session Bean th
ể hiện cho một phiên dao dịch với client, với 1 client sẽ có 1
instance của session bean tương ứng, và instance này có thể lưu giữ các thông
tin của client đó. Tuy nhiên, khi phiên giao dịch kết thúc (client kết thúc việc thực
thi), các instance này cũng sẽ bị hủy. Ngược lại với session bean, entity bean có
thể lưu giữ lâu dài các thông tin về client. Còn message-driven bean là sự kết hợp
giữa sesssion bean và JMS message listener.
Enterprise Information System tier (EIS tier):
Lớp này thực hiện việc lưu trữ dữ liệu cho hệ thống J2EE, bao gồm cả các
interface để giao tiếp với các Database khác nhau, và giữa các OS khác nhau
trong việc quản lý và lưu trữ file…
Kiến trúc tổng thể của một hệ thống J2EE:
EJB container (Enterprise JavaBean container) quản lý việc thực thi của tất
cả các enterprise bean cho một ứng dụng J2EE. Các enterprise bean và container
của nó đều được chạy trên J2EE server.
Web container quản lý và thực thi của tất cả các trang JSP và các servlet cho
một ứng dụng J2EE. Các web component và container của nó đều được chạy trên
J2EE server.
Application client container quản lý và thực thi của tất c
ả các thành phần
application client cho một ứng dụng J2EE. Các application client và container của
nó đều được thực thi trên máy client.
Applet container chính là web browser (có các Java Plug-in) chạy trên máy
client.