Professional Documents
Culture Documents
Phân tích thiết kế có 3 mức: Quan niệm, Tổ thức (logic), Vật lý.
Có 9 tài liệu khác nhau để phân tích thiết kế (tài liệu GUI ở mức quan niệm, tài liệu GUI ở mức tổ chức, tài
liệu GUI ở mức vật lý, ......)
Vd :
Quan niệm: Tổng quát các yêu cầu
- GUI mức quan niệm: bản vẽ phối cảnh nhà ở
Vật lý: Chi tiết, cụ thể hóa ( từng cột trong 1 table được tổ chức ra sao )
- GUI mức vậy lý: bản vẽ chi tiết nhà ở
Vậy làm sao để từ bản vẽ quan niệm → bản vẽ vật lý ?
- Thông qua mức trung gian tổ chức (logic)
Giữa một phần mềm nhỏ và một phần mềm lớn khác nhau là gì ?
- Khác nhau ở 3 điểm:
Use case: mô tả sự tương tác giữa người dùng với hệ thống, trong một môi trường cụ thể và vì một mục đích cụ
thể.
- Focus usecase: mô tả chức năng
Ví dụ: Use case mô tả phân biệt đăng nhập giữa học viên và giảng viên
○ Use case dùng để gợi nhớ mình lấy đủ yêu cầu.
- Activity Diagram:
∞ Mô hình hóa dữ liệu ERD
Từ Requirement (~100 trang) sao biết được đâu là thực thể (Entity) ?
- Thực thể là đối tượng dữ liệu sẽ được lưu trữ trong hệ thống
- Thực thể là danh từ nhưng danh từ chưa chắc là thực thể
- Thực thể ký hiệu là
- Trong hệ thống có nhiều thực thể thì giữa các thực thể là quan hệ, kí hiệu
- Số lượng thực thể và số lượng tables không hoàn toàn đồng nhất
- NV — 2 quan hệ — PB
- NV — 1 quan hệ — TN
- NV — 1 quan hệ — ĐA
- TN — 0 quan hệ — ĐA
Dựa vào đâu để xác định 2 đối tượng có mối quan hệ ?
- Một chức năng cần có dữ liệu đầu vào, dữ liệu đó được xác định từ nguồn nào, từ đó ta
kết hợp và rút ra những dữ liệu chung cần thiết → Tạo thành quan hệ giữa 2 thực thể
→ Cho dữ liệu đầu ra chính xác (Quan hệ dẫn xuất)
Ví dụ:
- Khi này E1, E2 có quan hệ (Khi dữ liệu E1, E2 được sử dụng chung hoặc một phần dữ
liệu)
- Quan hệ tham gia là dữ liệu dẫn xuất (lấy 1 phần) từ NV và ĐA
- Vậy còn những quan hệ còn lại ?
Ví dụ:
- Dựa vào đâu để xác định nguồn dữ liệu cho 1 chức năng ?
Dựa vào yêu cầu
Mỗi thực thể sẽ có thuộc tính. Thuộc tính là dựa vào yêu cầu. Trong mỗi thuộc tính sẽ
có thuộc tính khóa để phân biệt các thể hiện trong các thực thể
Thuộc tính có nhiều loại:
Khi ta chọn thuộc tính ta nên xem xét nó thuộc loại thuộc tính gì. Khi nào nên là
đơn ? Đơn trị ? Cơ sở ? Khi nào đơn và khi nào gộp ?
Dựa vào yêu cầu, tìm hiểu yêu cầu kĩ, xem sau này yêu cầu có mở rộng hay không.
Thuộc tính đơn trị: giá trị chỉ có 1
Ví dụ: Mã số nhân viên (đơn trị)
Sở thích (đa trị) (vì sở thích cso thể có nhiều sở thích => Làm sao để nó đa trị)
Thuộc tính cơ sở và thuộc tính dẫn xuất khác nhau như thế nào ?
Ví dụ:
Ngày sinh (cố định) → cơ sở dẫn xuất Tuổi
- Dẫn xuất dựa trên cơ sở đó để dẫn xuất (vd: dựa vào ngày sinh dẫn xuất ra được tuổi)
Kí hiệu:
Khóa: phân biệt giữa các instance, giữa các thiết kế với nhau trong 1 thực thể
Giữa 2 thực thể có bao nhiêu quan hệ ?
- Dựa trên yêu cầu ta sẽ có được các mối quan hệ được rút ra từ các nguồn phù hợp và
đúng với yêu cầu cụ thể, cần thiết và khác nhau.
- Đặt ra câu hỏi cần để làm gì ?
Thể hiện của mối kết hợp: là tập hợp không trùng lặp thể hiện của các thực thể tham
gia vào mối kết hợp đó
- Tại sao chỉ phát sinh 2 thuộc tính mà không phải 3 thuộc tính ? (Số thuộc tính phát
sinh này dựa vào đâu?)
Dựa vào việc lấy thật kĩ yêu cầu
Bản số:
- Ký hiệu: (min, max)
Thực thể yếu:
Ví dụ:
Có 6 chức năng
- Lưu trữ thông tin (E1, E2, E3, E4, E5)
- Sắp xếp lớp (E lớp)
- Lập danh sách môn học (Mở MH)
- Phân công giảng dạy (Phân công)
- Lưu trữ thông tin đăng ký môn học (Đăng ký)
- Lưu trữ kết quả học tập (Đăng ký)
Ta tạo dữ liệu là cho chức năng, mà chức năng thì dựa vào yêu cầu → Là đường đi
đúng
Cấu trúc phân cấp
Ví dụ:
Chuyển đổi từ cấu trúc bình thường thành cấu trúc phân cấp
Luật căn bản trên xuống (để chuyển từ ERD sang ERD chi tiết)
Ví dụ:
- Quản lý con người (đàn ông hay phụ nữ đều dùng chính sách giống nhau thì dùng luật
này) khác thì dùng T2.
-
Thông tin GIAINOBEL và thông tin GIAIOSCAR khác nhau => Phân loại
Cấu trúc thông tin khác nhau tách thành 2 thực thể
- Nếu
mà phát sinh dẫn xuất từ 2 chức năng khác thì ta áp dụng T4
- Nếu quản lý ngắn hạn thì dùng T5
- T6 áp dụng khi ta không thể phân rã được nữa thì chúng ta thêm thông tin thuộc tính
vào (thông tin thuộc tính theo yêu cầu) → T6 không bắt buộc áp dụng.
- Cân nhắc xem dùng dữ liệu gộp hay đơn. Khi gộp thì thực thể này có khi thành thực
thể yếu cũng được
- Gộp khi nào ?
Khi ta không có nhu cầu xử lý từ đơn vị này, địa chỉ chỉ là địa chỉ. Nếu có nhu cầu
thì ta bỏ đi địa chỉ và dùng những thuộc tính đơn.
- Thuộc tính đơn nhưng chuyển thành thực thể yếu
- Lúc nào cần tổng quát lúc nào cần chi tiết ?
Tùy trường hợp mình cần quản lý thông tin gì, quản lý tới đâu, nếu quản lý chi tiết
thì dùng T8.
Để chuyển từ ERD → ERD chi tiết ta dùng 8 luật, dựa vào yêu cầu xử lý thông tin.
Chiến lược trên – xuống (top - down): chiến lược thiết kế tổng quát xuống chi tiết.
- Thông thường làm top – down
- Khi nào làm bottom – up (bottom – up là từ chi tiết lên tổng quát) ?
- Muốn phát triển product cho version mới thì ta thiết kế lại, sắp xếp lại dựa vào cái có
rồi.
Ta dùng bottom – up
- Top – down là ta thấy trước rồi mới triển khai (thiển cận)
Ví dụ: Ứng dụng quản lý băng đĩa
Đặt tên liên quan vì ta biết có liên quan
- Nghiệp vụ khác nhau nên mới tách ra làm 2 cái. Khác nhau về nghiệp vụ => khác
nhau việc xử lý dữ liệu → Có khả năng sinh ra thêm dữ liệu cần lưu trữ => Phải tách
ra làm 2
-
Từ thông tin bán lẻ mình biễu diễn thông tin đó thành hóa đơn
- Có những thông tin mình phải biễu diễn trên nhiều thực thể
- Bán lẻ ≠ bán sỉ: bán sỉ phải đặt hàng, liên quan đến giao hàng (thông tin đặt hàng liên
quan đến giao hàng)
- Quan hệ giữa băng đĩa và đơn hàng là chi tiết đặt hàng, đơn hàng liên quan đến phiếu
giao hàng => bán sỉ phải quản lý khách hàng
- Thông tin và thực thể không đồng nhất với nhau. Một thông tin cso nhiều thực thể, 1
thực thể sinh ra nhiều table.
- Khi đặt hàng sẽ sinh ra đơn hàng (đơn hàng là cái cần lưu trữ)
- Tinh chế lần cuối cùng nên đặt ra tình tiết cần lưu trữ
MỘT SỐ QUY TẮC MÔ HÌNH HÓA
Quy tắc thứ 1:
- Mọi thuộc tính dùng để mô tả đặc trưng cho một thực thể duy nhất và chỉ mô tả đặc
trưng của thực thể
- Mỗi sinh viên sẽ học nhiều môn khác nhau. Mỗi môn học sinh sẽ đạt 1 điểm số
- Nếu xuất hiện thêm Bảng điểm thì nso sẽ liên quan như thế nào trong quan hệ này ?
Quan hệ thứ 4:
- Nếu có một thuộc tính của một thực thể phụ thuộc vào thực thể đó và một thuộc tính
khác của thực thể đó thì tồn tại một thực thể ẩn mà cần phải được định nghĩa bổ sung
- Mỗi xe hơi bao gồm các đặc trưng như số xe, màu sắc, loại xe, công xuất, và trọng
lượng mỗi loại xe có một trọng lượng nhất định. Loại xe → trọng lượng
- Phụ thuộc thì nên tách ra thành một đối tượng khác nhưng không tách là sai (cũng có
những cái để nguyên thì đúng)
CÁC QUY TẮC CHUẨN HÓA MÔ HÌNH ERD
Quy tắc 1:
- Mỗi thuộc tính đều phải có một ý nghĩa và một giá trị duy nhất
Quy tắc 2:
- Mọi thuộc tính phụ thuộc vào khóa bởi một phụ thuộc hàm sơ cấp. Nghĩa là phụ thuộc
vào toàn bộ khóa chứ không phải phụ thuộc vào một bộ phận thực sự của khóa
Quy tắc 3: (hay sai)
- Mọi thuộc tính của một thực thể hay của một mối kết hợp phải phụ thuộc vào khóa
bằng một phụ thuộc hàm sơ cấp trực tiếp
TH1:
Ở mức chuyên biệt hóa, không có thuộc tính riêng:
Số thực thể và số table khác nhau
NHANVIEN (Mã_NV, Họ tên_NV, LOẠI_NV)
Ràng buộc miền giá trị MGT(Loại_NV) ∈ {CN, CV, QL)
Bổ sung ràng buộc miền giá trị cho thuộc tính loại E như TH1.
Bổ sung ràng buộc để đảm bảo ngữ nghĩa.
NHANVIEN (Mã_NV, Họ tên_NV, Chuyên Thngành, bậc thợ, Số lượng NV trực thuộc,
LOẠI_NV)
CONGNHAN CHUYENVIEN
QUANLY
Ở TH3 sẽ không bị dư thừa không gian lưu trữ nhưng sẽ truy xuất dữ liệu chậm hơn
TH2:
Ma_NV TBN_NV C.Ngành Bậc thợ SLượng Loại
✓ ✓ C.Nhân
✓ ✓ C.Viên
Ở TH2 sẽ bị dư thừa không gian lưu trữ nhưng bù lại sẽ cho phép truy xuất dữ liệu rất
nhanh.
Vậy thì phải lựa chọn trường hợp nào là phù hợp và hợp lý
NHƯ THẾ NÀO LÀ HỢP LÝ?
TH3: Khi các thuộc tính riêng lớn hơn 3
TH2: Sử dụng khi các thuộc tính riêng nhỏ hơn 3 vì vậy sẽ truy cập nhanh hơn
Ta được các quan hệ:
XE ĐẠP ĐIỆN (Số xe, Tên xe, Số bình acquy, Thời gian sạc , Thời gian chạy)
XE MÁY (Số xe, Tên xe, Số sườn, số máy, Mode, Số loại linh kiện)
C3
C3(tt) ví dụ:
Ta được các quan hệ:
Tạo một quan hệ mới biểu diễn một mối kết hợp với thuộc tính là các thuộc tính khóa của các
thực thể liên quan và các thuộc tính riêng của mối kết hợp
Chuyển đổi mô hình ER sang danh sách các quan hệ, phải chuẩn hóa các quan hệ này nhằm mục
đích:
Giảm thiểu sự trùng lặp dữ liệu
Tối ưu hóa thời gian cập nhật
Tránh tình trạng không đồng bộ dữ liệu
Khái niệm Ký hiệu (DeMarco Ký hiệu (Gane & Ký hiệu (Gane & Sarson)
& Youdon) Sarson)
Ô xử lý Một trong các hoạt động
bên trong HTTT
Dòng dữ Sự chuyển đổi thông tin
liệu giữa các thành phần
Kho dữ liệu Vùng chứa dữ liệu, thông
tin trong HTTT
Đầu cuối Một tác nhân bên ngoài
HTTT
Ô xử lý (Process):
o Ví dụ:
Dòng dữ liệu (Data flow):
o Định nghĩa:
Dòng dữ liệu biểu diễn sự di chuyển dữ liệu, thông tin từ thành phần này đến thành
phần khác trong mô hình dòng dữ liệu. Các thành phần là xử lý, kho dữ liệu, dòng dữ
liệu
Không bao hàm dòng điều khiển
o Ký hiệu:
o Tên:
o Ví dụ:
Định nghĩa:
Biểu diễn một thực thể bên ngoài giao tiếp với hệ thống.
Dòng dữ liệu và kho dữ liệu:
Dòng dữ liệu đi vào kho dữ liệu: biểu diễn việc cập nhật dữ liệu (dòng d1)
Dòng dữ liệu ra khỏi kho dữ liệu: biểu diễn việc khai thác dữ liệu của kho dữ liệu đó (dòng
d2)
XỬ LÝ ĐẶTMUA BĂNG ĐĨA
o Luật T2: tinh chế một xử lý thành hai xử lý và một kho dữ liệu. Luật này được áp dụng khi
chúng ta muốn tách thành hai xử lý có thời điểm khác nhau. Do đó, dữ liệu chuyển đổi giữa
hai xử lý này phải được lưu lại trong một kho dữ liệu.
o Luật T3: Tinh chế một xử lý thành hai xử lý riêng biệt. Luật này được dùng khi hai xử lý
không được kết nối ngay hoặc không có nhu cầu trao đổi thông tin với nhau
Luật T4: phân chia một dòng dữ liệu thành một tập hợp các dòng dữ liệu. Luật này được áp dụng để
tách một dòng dữ liệu tổng hợp thành các dòng dữ liệu có nội dung thông tin độc lập nhau.
Nếu thông tin từ đầu nguồn và cuối nguồn khác nhau thì phải có một hệ thống ở giữa xử lý
thông tin
o Luật T6: chia một kho dữ liệu thành hai kho độc lập. Luật này được áp dụng khi chúng ta có
thể chia hai tập con của kho dữ liệu mà có thể kết nối với hai xử lý hoặc đầu cuối khác nhau.
Luật T7: tinh chế một kho dữ liệu thành hai kho dữ liệu kết nối bởi một ô xử lý. Luật này được áp
dụng khi chúng ta muốn phân chia dữ liệu thành hai kho dữ liệu tập con mà kho dữ liệu sau được
tạo lập từ kho dữ liệu trước bằng xử lý.
- 7 luật là phân rã Top – Down từ tổng quát xuống chi tiết (Chưa có sản phẩm)
- Không áp dụng được 7 luật này trong trường hợp đã có sản phẩm và cần tối ưu hóa
- Lúc đó thì dùng bottom – up
B1: Xây dựng lược đồ khung hệ thống bằng cách xác định các đầu cuối hệ thống và các dòng
dữ liệu vào ra hệ thống từ các đầu cuối
B2: lặp - Áp dụng các luật phân rã trên xuống phân rã hệ thống
B3: Kiểm tra bổ sung kho dữ liệu và dòng dữ liệu.
Áp dụng 7 luật
Dừng
Câu hỏi: Khi nào dừng?
Dừng khi xử lý không thể phân chia được nữa
3 nhóm chính:
Xử lý đặt mua
Xử lý kế toán
Xử lý bán BD
BOTTOM – UP
Câu hỏi: Khi nào tiếp cận phương án Top – Down và khi nào tiếp cận phương án Bottom –
Up?
- Phương án Top – Down là phương án xây dựng prototype
- Có đầy đủ chức năng - > số lượng ít -> làm phạm vi nhỏ
- Chiến lược Bottom – Up là tối ưu hóa các prototype
- Từ các xử lý chi tiết
- Dữ liệu nào lưu trữ lâu dài
- Xác định xong mới xác định terminal
- Từ những xử lý ban đầu.
- Xác định kho dữ liệu
- Từ đó xác định đầu cuối terminal
Cần số hóa
Hành động nào nằm trong hệ thống ??
- Hành động nào số hóa thì thuộc hệ thống
- Không số hóa thì không liên quan
Phương pháp:
o Cách thức xử lý được thực hiện thủ công (do con người thực hiện) hoặc tự động (do máy
tính, con người sử dụng máy tính để thực hiện)
Thời gian:
o Biểu diễn thời điểm qui định của hệ thống để thực hiện xử lý (cuối ngày, cuối tuần, đầu
tháng, đầu quý, đầu năm…)
Nếu hai hình trên đưa vào tự động thì để trong lược đồ
Tổ chức:
o Biểu diễn vai trò tham gia xử lý một thành phần tổ chức của hệ thống (dựa vào mô hình tổ
chức) có thể là:
Một con người cụ thể
Một chức danh
Nhóm chức danh
Mô tả thêm người tham gia xử lý
Không gian:
o Các địa điểm trong xử lý hệ thống
Biểu diễn xử lý ở mức nội dung, làm rõ bản chất của xử lý thông tin hệ thống
Độc lập với các yếu tố vật lý nhằm đạt một mức độ trừu tượng hoá cao
Chuyển đổi MH vật lý sang quan niệm.
Loại bỏ các yếu tố vật lý
Các yếu tố tường minh xuất hiện trong mô hình theo ngôn từ, ký hiệu:
Phương tiện, phương thức
Hình thức
…
Câu hỏi:
Tại sao lại có những yếu tố này?
Để những chổ khác nhau gia công rồi ghép lại
Chuyển như vậy để đi nói chuyện cụ thể
Verify hệ thống!
Những xử lý 1,2,3,4,5,6,7 đều là những xử lý đã biết cách thực thi (vì nó đã có lược đồ mức vật lý
rồi
Xử lý 8,9 là những xử lý chưa biết cách thực thi và ta làm lại theo các luồng phân rã Top – Down
cho 9 và 9
Xử lý 3 bị ảnh hưởng do nhận thêm thông tin khi mở rộng.
Phiếu xuất 1 có thêm thông tin đầu vào
Muốn đặc tả các bước xử lý ta thực hiện như sau
Phần đầu đề, tên chức năng, các dữ liệu đầu vào/ ra
Phần thân mô tả nội dung xử lý, thương được sử dụng các hình thức đặc tả
Các phương trình toán học
Lưu đồ thật giả
Ngôn ngữ có cấu trúc
Để người phát triển (Developer) biết thông tin cài đặt
VÍ DỤ:
Tên chức năng: Tính kết quả bảo vệ đồ án
Đầu vào: Điểm của người phản biện, điểm của người hướng dẫn, số các ủy viên hội đồng,
điểm của từng ủy viên hội đồng
Đầu ra: kết quả bảo vệ = (điểm của người phản biện + điểm của người hướng dẫn +(Σ điểm
các ủy viên hội đồng / số ủy viên hội đồng)) / 3
Đây là thông tin bắt buộc trong code note
Ghi chú dựa trên phân tích thiết kế
Code theo hướng dẫn
Tester vẫn biết test case dựa trên hướng dẫn
Câu hỏi đặt ra?
Bảng quyết định và cây quyết định dùng để làm gì?
Đối với dev đây là ràng buộc cho xử lý đó
Đối với tester thì đây là đầu vào cho test case
Càng chi tiết thì càng tiết kiệm chi phí sửa sai
Sản phẩm của quá trinh phát triển phần mềm
Phần mềm
Tài liệu pttk
Tài liệu hdsd
Theo từng version
Mỗi version khác nhau thì bộ ba khác nhau
Bảng quyết định và cây quyết định được