II.7.1. Mơ tả bài tốn
Phần mơ tả bài tốn rất quan trọng để bạn có thể có được một bản thiết kế phần mềm tốt,
hãy đặt mình ở vị trí của khách hàng để yêu cầu người thiết kế, mô tả càng chi tiết càng tốt. Sau đây là phần mơ tả bài tốn ví dụ:
Xây dựng phần mềm nhập sơ đồ kết cấu phẳng, nhập tải trọng, kết xuất dữ liệu ra file S2K
(SAP2000 v8.0). Các chức năng
- Tạo lưới: người dùng chọn các bước theo chiều dọc (ví dụ 3:6:6:3m), và theo chiều
ngang (ví dụ 3:3:3m), chương trình tạo ra lưới vng góc theo các kho ảng chia đã
chọn.
- Chương trình ở 1 trong 3 chế độ
o Chọn: Người dùng sử dụng chuột để chọn đối tượng
o Vẽ nút: Người dùng vẽ các nút tại các mắt lưới
o Vẽ thanh: Người dùng vẽ các thanh bằng cách nối 2 nút
o Khi click trái chuột vào các biểu tượng trên toolbar thì chuyển về các chế độ
tương ứng. Khi click ph ải chuột thì chương trình chuyển ngay sang ch ế độ
chọn.
- Vẽ nút trên các đỉnh lưới: Ở chế độ vẽ nút, mỗi khi người dùng di chuyển chuột, vị
trí nút lưới gần con trỏ chuột nhất được sáng lên (giống chế độ snap của AutoCAD).
Khi người dùng click trái chuột thì chương trình sẽ tạo ra nút tại vị trí đó. - Vẽ thanh nối các nút: Ở chế độ vẽ thanh, chương trình chia làm 2 chế độ nhỏ
o Chọn nút đầu: Khi người dùng di chuy ển chuột, nút gần con trỏ chuột nhất được sáng lên. Khi click trái chuột thì chương trình đánh dấu nút tương ứng và
chuyển sang chế độ Chọn nút cuối.
o Chọn nút cuối: Khi người dùng di chuyển chuột, nút gần con trỏ chuột nhất được sáng lên, một đường nối giả định được vẽ giữa nút đầu và nút cuối. Khi
click trái chuột, chương trình tạo thêm 1 thanh nối giữa 2 nút và lại chuyển về
chế độ Chọn nút đầu
o Chọn nút, thanh bằng chuột: Khi người dùng click chuột ở gần nút hoặc thanh
(khoảng cách khoảng 6 pixel), đánh dấu nút hoặc thanh đang được chọn
o Chọn nút, thanh b ằng window: Khi ng ười dùng click vào 1 vùng tr ống trên
màn hình, tạo ra một hình chữ nhật di chuyển theo con chuột. Click chuột lần
nữa để xác định vùng chọn hình chữ nhật, tất cả các đối tượng nằm trong vùng chọn được đánh dấu là đang chọn.
- Xóa thanh, nút: Khi ng ười dùng bấm phím Delete ho ặc click vào bi ểu tượng trên
Toolbar, xóa tất cả các nút và thanh đang được chọn. Nếu một nút bị xóa, tất cả các
thanh nối với nút đó cũng bị xóa theo.
- Nhập tải tập trung cho nút: Khi người dùng chọn menu hoặc click vào Toolbar, hiển
thị hộp thoại cho phép nhập tải tập trung cho tất cả các nút đang được chọn.
- Nhập tải phân bố đều cho thanh: Khi người dùng chọn menu hoặc click vào Toolbar,
hiển thị hộp thoại cho phép nh ập tải phân bố đều cho tất cả các thanh đang được
chọn.
- Lưu dữ liệu ra file S2K
II.7.2. Biểu đồ UseCase
II.7.2.1. Tìm kiếm Actor
Hệ thống chỉ có 1 Actor là người dùng chương trình.
II.7.2.2. Tìm UseCase
Dựa vào các chức năng được liệt kê trong yêu c ầu người dùng, có thể phân chia các ch ức
năng đó thành các UseCase sau - Tạo lưới
- Vẽ nút - Vẽ thanh - Chọn đối tượng - Xóa đối tượng - Nhập liên kết - Nhập tải tập trung - Nhập tải phân bố đều - Lưu dữ liệu ra file S2K
II.7.2.3. Biểu đồ UseCase
II.7.2.4. Mô tả UseCase
UseCase Tạo lưới
Name Tạo lưới
Brief Description Tạo lưới chia vng góc theo các khoảng cách ngang và dọc do người dùng lựa chọn
Preconditions
Actor Input System Response
0 Chọn chức năng Tạo mới
1 Hiển thị hộp thoại (danh sách các khoảng
cách theo phương x và y) 2 Thêm khoảng cách (phương x, y)
3 Bổ sung khoảng cách theo phương x, y
4 Xóa khoảng cách (phương x, y)
5 Xóa kho ảng cách t ại vị trí được chọn
trong danh sách các khoảng cách phương
x, y 6 Nhấn OK để tạo lưới
Main Flow
7 Tạo lưới vng góc v ới các kho ảng các
theo phương x, y đã chọn. Đóng hộp
thoại 0 Nhấn OK để tạo lưới
Alternative Flow
1 Nếu số khoảng cách theo phương x (hoặc
y) là 0, thông báo lỗi
Post-conditions
Name Vẽ nút
Brief Description Vẽ nút trên mắt lưới
Preconditions Đã tạo lưới.
Actor Input System Response
0 Chọn chức năng vẽ nút
1 Chuyển sang chế độ vẽ nút
2 Di chuyển con trỏ chuột
3 Tìm m ắt lưới g ần con tr ỏ chuột nhất,
đánh dấu mắt lưới đó
4 Click trái chuột
Main Flow
5 Tạo nút tại vị trí mắt lưới đang được đánh
dấu 0 Click phải chuột hoặc nhấn phím
ESC hoặc chọn 1 chức năng khác
Chuyển chương trình sang ch ế độ chọn đối tượng Alternative Flow 1 Post-conditions UseCase Vẽ thanh Name Vẽ thanh
Brief Description Vẽ thanh nối 2 nút
Preconditions Có ít nhất 2 nút đã được vẽ
Actor Input System Response
0 Chọn chức năng vẽ thanh
1 Chuyển sang chế độ vẽ thanh – nút đầu
2 Di chuyển con trỏ chuột
3 Tìm nút gần con trỏ chuột nhất, đánh dấu
nút đó 4 Click trái chuột
5 Ghi nh ận nút đang được đánh d ấu,
chuyển sang chế độ vẽ thanh – nút cuối 6 Di chuyển con trỏ chuột
7 Tìm nút gần con trỏ chuột nhất, đánh dấu
nút đó, vẽ đường kết nối giữa 2 nút 8 Click trái chuột
Main Flow
9 Tạo thanh nối giữa nút đầu và nút cu ối,
chuyển sang chế độ vẽ thanh – nút đầu
ESC hoặc chọn 1 chức năng khác
Chuyển chương trình sang ch ế độ chọn đối tượng
1 Chọn nút cuối trùng nút đầu Thông báo l ỗi, chuyển sang ch ế độ vẽ
thanh – nút đầu
Post-conditions
UseCase Chọn đối tượng
Name Chọn đối tượng
Brief Description Chọn đối tượng bằng chuột
Preconditions
Actor Input System Response
0 Chọn chế độ chọn đối tượng
1 Chuyển sang ch ế độ chọn đối tượng –
bình thường 2 Di chuyển chuột
3 Nếu đang ở chế động chọn đối tượng –
cửa sổ, vẽ cửa sổ từ điểm đã lưu đến vị
trí của con trỏ chuột 4 Click chuột trên màn hình chính
5 Nếu con tr ỏ chuột gần nút ho ặc thanh,
đánh dấu đối tượng được chọn
6 Nếu con trỏ chuột không gần đối tượng
nào, lưu lại điểm vừa click, chuyển sang
chế độ chọn đối tượng – cửa sổ
Main Flow
7 Nếu đang ở chế độ chọn đối tượng – cửa
sổ, đánh dấu tất cả các đối nằm trong
cửa sổ 0 Click phải chuột hoặc nhấn phím
ESC hoặc chọn 1 chức năng khác
1 Chuyển chương trình sang ch ế độ chọn
đối tượng
2 Chọn nút cuối trùng nút đầu
Alternative Flow
Thông báo l ỗi, chuyển sang ch ế độ vẽ
thanh – nút đầu
Post-conditions
UseCase Xóa đối tượng
Name Xóa đối tượng
Preconditions Có đối tượng được chọn
Actor Input System Response
0 Nhấn nút Delete hoặc biểu tượng trên Toolbar
1 Xóa tất cả các thanh được đánh dấu chọn
Main Flow
2 Xóa tất cả các nút đang được đánh dấu
chọn. Xóa tất cả các thanh nối với nút đó 0 Khơng có nút nào được chọn
Alternative Flow
1 Thông báo lỗi
Post-conditions
UseCase Nhập liên kết
Name Nhập liên kết
Brief Description Nhập các ràng buộc (chuyển vị theo phương x, y, z, chuyển vị quay theo phương 1,
2, 3)
Preconditions Có đối tượng được chọn
Actor Input System Response
0 Chọn chức năng nhập liên k ết
(menu hoặc toolbar)
2 Hiển thị hộp thoại cho phép đối tượng
chuyển vị theo phương x, y, z ho ặc quay
theo phương 1, 2, 3 (d ưới dạng check
box) 3 Lựa chọn các giá tr ị trên check
box 4 Click OK
Main Flow
Đưa ràng buộc vào các đối tượng
0 Khơng có đối t ượng nào được
chọn
1 Thông báo lỗi
2 Nhấn cancel
Alternative Flow
3 Đóng hộp thoại
Post-conditions
UseCase Nhập tải tập trung
Name Nhập tải tập trung
Brief Description Nhập tải tập trung (các giá trị X, Y, Z) cho tất cả các nút đang được chọn
Preconditions Có đối tượng được chọn
0 Chọn chức năng nhập t ải t ập
trung (menu hoặc toolbar)
1 Bỏ đánh dấu tất cả các thanh đang được
chọn
2 Hiển thị hộp thoại cho phép nhập 3 giá trị
x, y, z của tải 3 Nhập các giá trị x, y, z
4 Click OK
5 Đưa giá tr ị các t ải vào nút, đóng hộp
thoại 0 Khơng có nút nào được chọn
1 Thông báo lỗi
2 Nhập sai giá tr ị x, y, z (không
phải số)
3 Thông báo lỗi
4 Nhấn cancel
Alternative Flow
5 Đóng hộp thoại
Post-conditions
UseCase Nhập tải phân bố đều
Name Nhập tải phân bố đều
Brief Description Nhập tải phân bố đều (các giá trị X, Y, Z loại hệ tọa độ local hay global) cho t ất cả
các thanh đang được chọn.
Preconditions Có đối tượng được chọn
Actor Input System Response
0 Chọn chức năng nhập tải phân
bố (menu hoặc toolbar)
1 Bỏ đánh dấu tất cả các nút đang được
chọn
2 Hiển thị hộp thoại cho phép nhập 3 giá trị
x, y, z c ủa tải phân bố, hệ tọa độ local
hay global 3 Nhập các giá tr ị x, y, z, lo ại hệ
tọa độ 4 Click OK
Main Flow
5 Đưa giá trị các tải vào thanh, đóng hộp
thoại 0 Khơng có thanh nào được chọn
1 Thơng báo lỗi
Alternative Flow
phải số)
3 Thông báo lỗi
4 Nhấn cancel
5 Đóng hộp thoại
Post-conditions
UseCase Lưu dữ liệu ra file S2K
Name Lưu dữ liệu ra file S2K
Brief Description Lưu dữ liệu (nút, thanh, tải tập trung, tải phân bố) ra file S2K
Preconditions Có nút và thanh
Actor Input System Response
0 Chọn ch ức n ăng l ưu d ữ li ệu
(menu, toolbar)
1 Hiển thị hộp thoại chọn tên file
2 Click OK
3 Ghi danh sách các nút (số thứ tự, tọa độ)
ra file
4 Ghi danh sách các thanh (s ố thứ tự, 2
nút, ràng buộc) ra file
5 Ghi các ràng buộc của nút ra file (nếu có)
6 Ghi các tải tập trung của nút ra file
Main Flow
7 Ghi các tải phân bố của thanh ra file
0 Thao tác trên file bị lỗi
1 Thông báo lỗi, hỏi có tiếp tục hay khơng?
2 Chưa vẽ nút, thanh
3 Thông báo lỗi
4 Nhấn cancel
Alternative Flow
5 Đóng hộp thoại
Post-conditions
II.7.3. Biểu đồ tương tác
II.7.3.1. Tìm đối tượng
Dựa vào yêu cầu người dùng và các đặc tả chi tiết của từng Usecase, chúng ta có danh sách
các ứng viên đối tượng (tìm các danh từ có chứa thuộc tính và thao tác)
- MainForm: tất cả các thao tác trên sơ đồ kết cấu đều thực hiện trên form này - Structure: Sơ đồ kết cấu
- Frame: Thanh - Node: Nút
- Grid: lưới vng góc
- GridForm: hộp thoại nhập các khoảng cách của lưới vng góc - RestraintForm: hộp thoại nhập liên kết
- ForceForm: hộp thoại nhập tải tập trung - DistributedForm: hộp thoại nhập tải phân bố - SaveDialog: hộp thoại chọn tên file để lưu
II.7.4. Biểu đồ lớp
II.7.4.1. Tìm kiếm lớp
Từ danh sách các đối tượng đã liệt kê, tập hợp các đối tượng cùng loại được các lớp sau - frmMain - clsStructure - clsFrame - clsNode - clsGrid - frmGrid - frmRestraint - frmForce - frmDistributed
II.7.4.2. Biểu đồ lớp
II.7.5. Cập nhật biểu đồ tương tác
Sau khi đã có biểu đồ lớp, các đối tượng trong biểu đồ tương tác giai đoạn 1 phải được cập
nhật với tên lớp, các thuộc tính và thao tác của lớp đó. Q trình cập nhật biểu đồ tương tác
nên kết hợp với sinh code (bằng Rational Rose) để tạo được sự thống nhất giữa thiết kế và