Xác định được các lớp cơ bản, các phương thức và thuộc tính của các lớp cơ bản đó Sử dụng thành thạo phần mềm để biểu diễn biểu đồ lớp của hệ thống.. Xây dựng được biểu đồ lớp[r]
(1)Bài thực hành 02:
THỰC HÀNH XÂY DỰNG BIỂU ĐỒ LỚP, BIỂU ĐỒ TRẠNG THÁI
1 Mục tiêu:
Trình bày thành phần biểu đồ lớp, biểu đồ trạng thái
Xác định lớp bản, phương thức thuộc tính lớp Sử dụng thành thạo phần mềm để biểu diễn biểu đồ lớp hệ thống
Xây dựng biểu đồ lớp thực thể
Xây dựng biểu đồ lớp phân tích cho Use case dựa vào kịch Use case Xây dựng biểu đồ trạng thái lớp ứng dụng, Use case
2 Cơ sở lý thuyết:
2.1 Các thành phần vẽ Class
Trước tiên, xem vẽ Class:
Classes (Các lớp): Class thành phần vẽ Class Diagram Class mơ tả
một nhóm đối tượng có tính chất, hành động hệ thống Ví dụ mơ tả khách hàng “Customer” Class mơ tả gồm tên Class, thuộc tính phương thức
(2)Trong đó:
Class Name: tên lớp
Attributes (thuộc tính): mơ tả tính chất đối tượng Ví dụ khách hàng có Mã khách hàng, Tên khách hàng, Địa chỉ, Ngày sinh v.v…
Method (Phương thức): hành động mà đối tượng thực hệ thống Nó thể hành vi đối tượng lớp tạo
Relationship (Quan hệ): Relationship thể mối quan hệ Class với
các quan hệ thường sử dụng sau: Association
Aggregation Composition Generalization
+ Association:
Association quan hệ hai lớp với nhau, thể chúng có liên quan với Association thể qua quan hệ “has: có”, “Own: sở hữu” v.v…
Ví dụ quan hệ thể Khách hàng nắm giữ Tài khoản Tài khoản sở hữu
bởi Khách hàng
+ Aggregation:
(3)Ví dụ quan hệ thể lớp Window(cửa sổ) lắp Khung cửa hình chữ nhật Nó sinh lúc
+ Composition
Composition loại mạnh Aggregation thể quan hệ class phần class nên dẫn đến tạo chết
Ví dụ class Mailing Address phần class Customer nên có đối
tượng Customer phát sinh đối tượng Mailing Address
+Generalization
Generalization quan hệ thừa kế sử dụng rộng rãi lập trình hướng đối tượng
Các lớp cuối Short Term, Long Term, Curent a/c, Savings a/c gọi lớp cụ thể (concrete Class) Chúng tạo đối tượng đối tượng thừa kế toàn thuộc tính, phương thức lớp
Các lớp Account, Term Based, Transaction Based lớp trừu tượng (Abstract Class), lớp không tạo đối tượng
2.2 Cách xây dựng vẽ Class
(4)Thực theo bước sau để xây dựng Class Diagram
Bước 1: Tìm Classes dự kiến
Entity Classes(các lớp thực thể) thực thể có thật hoạt động hệ thống, bạn dựa vào nguồn sau để xác định chúng
Requirement statement: Các yêu cầu Chúng ta phân tích danh từ yêu cầu để tìm thực thể
Use Cases: Phân tích Use Case cung cấp thêm Classes dự kiến Previous Similar System: cung cấp thêm cho bạn lớp dự kiến Application Experts: chuyên gia ứng dụng giúp bạn
Xem xét, ví dụ ATM thấy đối tượng Entity Class sau: Customers: khách hàng giao dịch thực thể có thật quản lý hệ
thống
Accounts: Tài khoản khách hàng đối tượng thực tế
ATM Cards: Thẻ dùng để truy cập ATM quản lý hệ thống ATM Transactions: Các giao dịch lưu giữ lại, đối tượng có
thật
Banks: Thơng tin ngân hàng bạn giao dịch, có nhiều nhà Bank tham gia
vào hệ thống bạn phải quản lý Lúc Bank trở thành đối tượng bạn phải quản
lý
ATM: Thông tin ATM bạn giao dịch Nó quản lý tương tự
Banks
Lưu ý: Chỉ thực thể bên hệ thống xem xét, thực bên ngồi hệ
thống khơng xem xét Ví dụ Customers người khách hàng quản lý
(5)Bước 2: Tìm thuộc tính phương thức cho lớp
Tìm thuộc tính: phân tích thơng tin từ form mẫu có sẵn, bạn tìm thuộc tính cho đối tượng lớp Ví dụ thuộc tính lớp Customer thể Form đăng ký thơng tin khách hàng
Tìm phương thức: phương thức hoạt động mà đối tượng lớp có thể thực Chúng ta bổ sung phương thức đầy đủ cho lớp phân tích Sequence Diagram sau
Bước 3: Xây dựng quan hệ lớp phát lớp phát sinh
Phân tích quan hệ lớp định nghĩa lớp phát sinh quan hệ sinh Chúng ta phân tích thực thể nhận thấy
Lớp Accounts chia thành nhiều loại tài khoản Current Accounts
Saving Accounts có quan hệ thừa kế với
Lớp ATM Transactions chia thành nhiều loại giao dịch Deposit,
Withdraw, Transfer v.v chúng có quan hệ thừa kế với
Tách vẽ chúng lên vẽ, có Class Diagram cho hệ thống ATM sau:
2.3 Đặc tả Class
Nhìn vào Class Diagram thấy cấu trúc hệ thống gồm lớp để cài đặt chúng, phải đặc tả chi tiết Trong đó, cần mơ tả:
(6)+ Tên + Mô tả
+ Tham số đầu vào: Tên, kiểu liệu, kích thươcs
+ Kết đầu ra: Tên, kiểu liệu, kích thước
+ Luồng xử lý
+ Điều kiện bắt đầu + Điều kiện kết thúc
2.4 Sử dụng vẽ Class
Có thể tóm tắt số ứng dụng vẽ Class Diagram sau: Hiểu cấu trúc hệ thống
Thiết kế hệ thống
Sử dụng để phân tích chi tiết chức (Sequence Diagram, State Diagram v.v…)
Sử dụng để cài đặt (coding)
Bài tập 1:
“Một công ty chuyên kinh doanh thiết bị điện tử công nghệ thông tin
trong nhiều năm có lượng khách hàng định.Để mở rộng hoạt động kinh doanh mình, cơng ty mong muốn xây dựng hệ thống thương mại điện tử nhằm mở rộng phạm vi kinh doanh mạng Internet
Hệ thống phải đảm bảo cho khách hàng viếng thăm Website dễ dàng lựa chọn sản phẩm, xem khuyến mua hàng Việc tốn thực qua mạng toán trực tiếp cửa hàng Khách hàng nhận hàng cửa hàng sử dụng dịch vụ chuyển hàng có phí cơng ty
Ngồi ra, hệ thống cần có phân hệ để đảm bảo cho cơng ty quản lý hoạt động kinh doanh số lượng hàng có kho, quản lý đơn đặt hàng, tình trạng giao hàng, tốn v.v…
Thơng tin chi tiết chức bạn tham khảo thêm Website bán hàng
1 Xây dựng Class Diagram cho hệ thống eCommerce
Bước 1: Tìm Classes dự kiến
Nghiên cứu kỹ yêu cầu, Use Case nghiên cứu kỹ hệ thống tương tự để xác định lớp dự kiến thơng qua việc xác định đối tượng có hệ thống
(7) Phân tích Use Case “Xem sản phẩm” xác định thực thể sản phẩm
(Products) Sản phẩm phân loại theo chủng loại (Product Types) Nhà
sản xuất (Providers) nên lớp có quan hệ với class Products
Xem xét Use Case “Xem khuyến mãi” xác định Class Chương trình khuyến
(Promotions)
Use Case “Quản lý giỏ hàng” -> Class giỏ hàng (Shopping Carts)
Use Case Chat -> Class Chat session Những người dùng tham gia Chat Sales và Guest hai class dự kiến
Use Case “Đăng ký thành viên” -> Khách hàng (Customers)
Use Case “Quản lý đơn hàng” -> Class đơn hàng (Orders), class thu tiền
(Payments) Quản lý chuyển hàng (Shipping Orders) lớp có liên
quan với Class Orders
Tạm thời vẽ xác định quan hệ sơ có vẽ Class dự kiến sau:
Bản vẽ giúp có nhìn cấu trúc hệ thống để tiếp tục phân tích Tất nhiên, phân tích tất Use Case cịn lại tìm hiểu thêm hệ thống để bổ sung đầy đủ Class dự kiến cho hệ thống
Bước 2: Xác định thuộc tính quan hệ cho lớp
Chúng ta bổ sung thuộc tính cho lớp phân tích quan hệ chúng
Products: xem xét tài liệu mô tả sản phẩm hệ thống thấy Class
Products cần thuộc tính sau: Tên sản phẩm, mơ tả, cấu hình, Giá bán, khuyến
mãi, bảo hành (xem mơ tả chi tiết sản phẩm Website)… Trong đó, thuộc tính giá thay đổi theo thời gian nên nên tách thành lớp riêng Giá (Prices) Tương tự thuộc tính khuyến tách thành lớp Promotions
(8) Promotions: tương tự giá cần có lớp riêng với thuộc tính Mã sản phẩm, Mơ tả khuyến mãi, Giá trị khuyến mãi, Ngày bắt đầu, Ngày hết hạn
ProductTypes: chứa loại sản phẩm Providers: chưa tên nhà sản xuất
ShoppingCarts: chứa thông tin như: cartID, ngày, mã sản phẩm, số lượng, đơn giá Chúng ta nhận thấy để nguyên lớp tạo đối tượng chúng lặp thông tin cartID ngày mua nên tách chúng thành ShoppingCarts với thuộc tính CartID, ngày CartDetails với thuộc tính ProductID, số lượng, đơn giá
Tương tự có class Orders với OrderID, ngày, customerID class
Orderdetails với ProductID, số lượng, đơn giá
Payments: chứa thông tin PaymentID, OrderID, ngày trả, số tiền, hình thức tốn
Shippings: chứa ShippingID, OrderID, Ngày chuyển, ngày đến, số tiền, phương thức vận chuyển
Customers: CustomerID, Họ tên, địa chỉ, điện thoại, ngày đăng ký v.v… Guests: chứa sessionID để xác định thông tin chat
Sales: gộp với lớp người dùng (Users) chứa UserID, Name
ChatSessions: ChatsessionID, tên người bán hàng, mã khách, mã tin nhắn, nội dung tin nhắn, ngày
Nhập đầy đủ thuộc tính vẽ, có vẽ sau:
(9)Phương thức hành động mà đối tượng sinh từ lớp thực trong hệ thống Ví dụ đối tượng lớp Customers đăng ký mới, thay đổi mật (password), kích hoạt người dùng (Active) v.v
Bước 4: Thiết kế chi tiết thuộc tính phương thức cho lớp
Khi có Class Diagram, bạn cần thiết kế chi tiết lớp cách đặc tả thuộc tính phương thức
Đặc tả thuộc tính: xác định kiểu liệu kích thước
Đặc tả phương thức: xác định liệu đầu vào, liệu đầu
Việc sử dụng kiểu liệu mô tả phương thức lớp học lập trình hướng đối tượng
Bài tập 2: Mô tả chức yêu cầu HỆ THỐNG QUẢN LÝ THƯ VIỆN
Xây dựng hệ thống quản lý thư viện cho trường Đại học gồm hoạt động quản lý thông tin sách, quản lý thông tin độc giả, quản lý hoạt động mượn trả sách:
Sinh Viên trường muốn mượn sách thư viện trước tiên phải đăng ký làm
(10) Các sách thư viện quản lý thông tin theo đầu sách, đầu sách
trong thư viện có nhiều khác Thơng tin đầu sách gồm (Mã đầu sách, tên đầu sách, nhà xuất bản, số trang, kích thước, tác giả, số lượng sách), thông tin đầu sách gồm (mã đầu, mã sách, tình trạng, ngaynhap) Khi thư viện nhập sách thủ thư có nhiệm vụ nhập thông tin sách vào thư viện, thông tin sách có thay đổi loại bỏ khỏi thư viện, thủ thư thực sửa thông tin sách xóa sách
Thư viện quản lý đầu sách theo chuyên ngành, đầu sách phân thành
các chuyên ngành khác Thông tin chuyên ngành gồm (Mã chuyên ngành, tên
chuyên ngành, mô tả)
Mỗi độc giả lần mượn mượn sách, độc giả muốn
mượn sách vào tìm sách thư viện ghi thông tin vào phiếu mượn gồm mã sách, mã độc giả gửi cho thủ thư Thủ thư tiến hành ghi nhận thông tin phiếu mượn vào hệ thống, giữ lại thẻ độc giả giao sách cho độc giả Thông tin phiếu mượn gồm (Mã sách, mã độc giả, mã thủ thư cho mượn sách, ngày mượn, tình trạng)
Khi độc giả trả sách thủ thư thực chức trả sách để ghi nhận tình trạng trả
sách cho phiếu mượn
Định kỳ thủ thư phải làm báo cáo thống kê gửi lên lãnh đạo thư viện báo cáo
gồm: Thông tin đầu sách cho mượn nhiều nhất, thông tin độc giả chưa trả sách
Để quản lý người dùng hệ thống, thư viện có nhân viên đóng người quản trị
vai trị làm Nhân viên có quyền quản lý thơng tin người dùng hệ thống Khi có nhân viên thư viện người quản trị cập nhật thông tin thủ thư vào hệ thống, tạo tài khoản cấp quyền cho nhân viên thư viện Khi thông tin nhân viên thư viện có sai sót loại bỏ khỏi hệ thống người quản trị sửa xóa thơng tin nhân viên thư viện khỏi hệ thống
Người dùng hệ thống phải đăng nhập trước thực
Yêu cầu:
1 Dựa vào đặc tả trên, xác định lớp thực thể gồm (tên lớp, thuộc
tính bản, phương thức bản)
2 Xác định mối quan hệ lớp, sử dụng Rational Rose để biểu diễn lớp
(11)3 Phân tích Use case dựa vào kịch bản, ví dụ Use case thêm đầu sách xác
định lớp Use case
4 Xây dựng biểu đồ trạng thái lớp DocGia ứng dụng dựa vào đặc tả
phần mềm
5 Xây dựng biểu đồ trạng thái lớp DocGia Use case trả sách
6 Phân tích Use case cịn lại hệ thống xây dựng biểu đồ lớp phân tích cho
các Use case
7 Xem xét lớp cịn lại, xây dựng biểu đồ chuyển trạng thái có Hướng dẫn thực hiện:
1 Dựa vào đặc tả trên, xác định lớp bao gồm (tên lớp, thuộc tính bản, phương thức bản)
Phân tích toán:
- Bước 1: Xem xét kỹ lại đặc tả hệ thống, kịch Use case, sử dụng phương pháp
trích chọn danh từ: Sinh viên, lớp, thẻ thư viện, Mã độc giả, họ tên, lớp, ngày sinh, giới tính, thủ thư, sách, đầu sách, sao, mã đầu, mã sách, tình trạng, chuyên ngành, Mã chuyên ngành, tên chuyên ngành, mô tả, độc giả, phiếu mượn, Mã sách, mã độc giả, mã thủ thư cho mượn sách, ngày mượn, tình trạng, tài khoản, người dùng
- Bước 2: Loại bỏ danh từ trung khơng có giá trị Ví dụ danh từ Sinh
viên, thẻ thư viện, bạn đọc, độc giả đối tượng người tham gia mượn sách thư viện độc giả
- Bước 3: Xác định thuộc tính cho lớp Các danh từ trở thành lớp,
và danh từ khác trở thành thuộc tính lớp Ví dụ danh từ phiếu mượn thành lớp PhieuMuon danh từ Mã sách, mã độc giả, mã thủ thư cho mượn sách, ngày mượn, tình trạng thành thuộc tính lớp PhieuMuon
- Bước 4: Xác định quan hệ lớp
2 Xác định liên kết lớp có
(12)3 Sau xây dựng biểu đồ lớp dựa vào danh từ, phân tích kịch cho Use case để xây dựng biểu đồ lớp cho Use case
Hướng dẫn:
Phân tích: Dựa vào kịch người sử dụng phân tích Use case tìm lớp
- B1 Tìm lớp Bound, theo nguyên tắc Actor Use case có lớp Bound
- B2 Xác định lớp Control, theo ngun tắc Use case có lớp
Control
- B3 Xác định lớp thực thể, Đọc kịch xác định danh từ tham gia Use
case để tìm lớp thực thể
(13)4 Xây dựng biểu đồ trạng thái
Hướng dẫn: Phân tích
B1: Đọc đặc tả phần mềm, đặc tả chi tiết dựa vào nghiệp vụ hệ thống B2: Xác định trạng thái lớp
B2: Xác định chuyển trạng thái, kiện, điều kiện chuyển, hành động để chuyển trạng thái
Minh họa:
Bài tập tự thực hiện:
1 Phân tích Use case lại hệ thống xây dựng biểu đồ lớp phân tích cho
các Use case
2 Xem xét lớp cịn lại, xây dựng biểu đồ chuyển trạng thái có