(Thống kê được cảphần chi phí của các công việc đã bịxóa khỏi kế
hoạch ). Cung cấp một sốbiểu đồ đơn giản thểhiện sựphân loại chi phí. 
- Thống kê chi phí dựán dưới dạng ngày công của nhân viên 
- Tổng hợp toàn bộthông tin phân công của một nhân viên (trong một 
khoảng thời gian) và phát hiện mâu thuẫn nếu có. 
- Thống kê tổng thểdựán theo các công việc tổng thể, cho thấy các chênh 
lệch giữa kếhoạch tổng thểvới kếhoạch chi tiết, đồng thời cũng cung 
cấp một cái nhìn chung vềtiến độthực hiện của dựán. 
- Ngoài ra còn một sốchức năng phụkhác : quản lý thông tin chung của 
dựán, quản lý hồsơnhân viên, tra cứu dựán, tra cứu kếhoạch, xem chi 
tiết kế hoạch
                
              
                                            
                                
            
 
            
                
112 trang | 
Chia sẻ: haianh_nguyen | Lượt xem: 1352 | Lượt tải: 0
              
            Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng công cụ hỗ trợ quản lý quá trình phát triển dự án phần mềm, gắn kết với hệ thống phần mềm microsoft office project, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
_DONG
PLHD_SO
HD_SO
HOP_DONG
HD_SO
DA_MA
KHA_MA
QUAN_LY
CVTT_MA
KHTT_MA
NV_MA
LOAI_VAN_BAN
LVB_MA
BB_THANH_LY_HOP_DONG
BBTL_SO
HD_SO
 Hình 5.1. Mô hình dữ liệu quan hệ của PMA 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 62
 Trên lược đồ, mỗi ô hình chữ nhật tương ứng với một quan hệ , mỗi mũi tên 
nối hai quan hệ sẽ được cài đặt thành một khóa ngoại, trừ một số mũi tên tham 
chiếu đến chính nó sẽ không dùng khóa ngoại mà cài trigger thay thế, vì hệ quản trị 
không hỗ trợ việc chỉ định thao tác xóa hoặc cập nhật dây chuyền (cascade delete, 
cascade update ) cho các tham chiếu loại này. 
5.1.2 Các chỉ mục được cài đặt 
 Để việc khai thác dữ liệu được nhanh hơn, tạo một số chỉ mục cho các con 
đường truy xuất thường xuyên, cụ thể như sau: 
- CONG_VIEC_TONG_THE (KHTT_MA) : Từ một bộ của 
KE_HOACH_TONG_THE, truy xuất tất cả các bộ của CONG_VIEC_TONG_THE 
- CONG_VIEC_CHI_TIET (KHCT_MA) : Từ một bộ của 
KE_HOACH_CHI_TIET, truy xuất tất cả các bộ của CONG_VIEC_CHI_TIET 
- KE_HOACH_CHI_TIET (CVTT_MA, KHTT_MA) : Từ một bộ của 
CONG_VIEC_TONG_THE, truy xuất tất cả các bộ của KE_HOACH_CHI_TIET 
- KE_HOACH_TONG_THE (DA_MA) : Từ một bộ của DU_AN, truy xuất 
tất cả các bộ của KE_HOACH_TONG_THE 
- PHAN_CONG (NV_MA) : Từ một bộ của NHAN_VIEN, truy xuất tất cả 
các bộ của PHAN_CONG 
- PHAN_CONG (CVCT_MA) : Từ một bộ của CONG_VIEC_CHI_TIET, truy 
xuất tất cả các bộ của PHAN_CONG 
- LOAI_CONG_VIEC (GD_MA) : Từ một bộ của GIAI_DOAN, truy xuất 
tất cả các bộ của LOAI_CONG_VIEC 
- NHAN_VIEN(TD_MA) : Từ một bộ của TRINH_DO, truy xuất tất cả các 
bộ của NHAN_VIEN 
Ngoài ra, cài đặt một số chỉ mục khác để phục vụ cho yêu cầu thống kê : 
- CONG_VIEC_TONG_THE ( KHTT_MA, LCV_MA) 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 63
- PHAN_CONG (KHCT_MA, VT_MA) 
- PHAN_CONG (KHCT_MA, NV_MA) 
5.1.3 Một số ràng buộc toàn vẹn : 
STT Ký 
hiệu 
Phát biểu 
1 R1 Đối với các quan hệ có tham chiếu đến chính nó : DU_AN, 
CONG_VIEC_TONG_THE, CONG_VIEC_CHI_TIET, LOAI_CONG_VIEC 
, các cung tham chiếu không được tạo thành chu trình 
2 R2 Số thứ tự phiên bản của kế hoạch tổng thể (KHTT_PHIENBAN) là 
duy nhất đối với mỗi dự án 
3 R3 Các kế hoạch chi tiết phải luôn tham chiếu đến công việc tổng thể 
thuộc về kế hoạch tổng thể có số phiên bản lớn nhất (phiên bản 
hiện hành) 
4 R4 Loại công việc tổng thể thuộc giai đoạn nào thì tất cả các loại công 
việc con cũng phải thuộc về giai đoạn đó 
5 R5 Đối với công việc tổng thể và công việc chi tiết, công việc tóm tắt 
thuộc loại công việc L1 thì các công việc con của nó chỉ có thể 
thuộc về các loại công việc con của L1 hoặc chính L1 
6 R6 Đối với công việc tổng thể và công việc chi tiết , chi phí thực tế, 
chi phí dự kiến, chi phí đã xóa của một công việc tương ứng bằng 
tổng chi phí thực tế, chi phí dự kiến, chi phí đã xóa của các phân 
công và các công việc con của công việc đó 
7 R7 Đối với công việc tổng thể và công việc chi tiết, ngày bắt đầu, 
ngày kết thúc và thời lượng của một công việc là những giá trị 
được tính toán hợp lý từ các phân công và công việc con của công 
việc đó. 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 64
STT Ký hiệu Phát biểu 
8 R8 Một công việc tổng thể, thuộc loại công việc L, được chi tiết bởi kế 
hoạch chi tiết K thì tất cả các công việc chi tiết thuộc kế hoạch K 
đều thuộc loại công việc con của L hoặc chính L. 
9 R9 Một công việc tổng thể thuộc loại công việc L thì tất cả các công 
việc chi tiết chi tiết cho nó đều thuộc loại công việc con của L hoặc 
chính L 
10 R10 Một công việc chi tiết thuộc kế hoạch chi tiết K chi tiết cho công 
việc tổng thể T thì chỉ có thể tham chiếu đến một công việc tổng thể 
là con của công việc T 
11 R11 Một nhân viên được phân công vào một công việc, thuộc loại công 
việc L, với một vai trò cụ thể thì vai trò này phải là một trong số 
những vai trò có thể đảm nhận loại công việc L. 
12 R12 Đối với các quan hệ có tham chiếu đến chính nó : DU_AN, 
CONG_VIEC_TONG_THE, CONG_VIEC_CHI_TIET, LOAI_CONG_VIEC , 
một bộ q2 có tham chiếu đến một bộ q1 thì mức của q2 = mức của 
q1 + 1. 
Ghi chú : một số ràng buộc luôn thỏa khi cập nhật CSDL với dữ liệu được đọc từ 
Project Server , và hệ thống không cần phải kiểm tra lại , đó là ràng buộc R1(trên 
các quan hệ CONG_VIEC_CHI_TIET và CONG_VIEC_TONG_THE, ràng buộc 
R6 (trừ chi phí đã xóa), và ràng buộc R7 
5.2. Thiết kế phần mềm PMA 
5.2.1. Hệ thống các lớp đối tượng 
PMA được thiết kế theo hướng đối tượng, và theo mô hình 3 lớp. 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 65
Có 3 nhóm lớp đối tượng chính : 
? Nhóm giao diện : bao gồm các đối tượng màn hình và user control, chịu 
trách nhiệm giao tiếp với người sử dụng. 
? Nhóm xử lý : bao gồm các đối tượng xử lý chính, chịu trách nhiệm nhận 
và xử lý thông tin được chuyển đến từ các đối tượng truy xuất dữ liệu, 
sau đó cung cấp dữ liệu đã qua xử lý cho các đối tượng giao diện hoặc 
ngược lại. 
? Nhóm truy xuất dữ liệu : bao gồm các đối tượng chịu trách nhiệm truy 
xuất dữ liệu từ CSDL hoặc từ Project Server . 
a) Sơ đồ tổ chức các lớp đối tượng 
Sơ đồ sau thể hiện tổng thể tổ chức các lớp đối tượng bên trong phần mềm: 
Hình 5.2. Tổ chức hệ thống các lớp đối tượng bên trong PMA 
 NSD 
Các lớp đối tượng màn hình và user control 
 Các lớp đối tượng xử lý chính
 CSDL PMA Project Server 
Các lớp đối tượng truy 
xuất dữ liệu từ CSDL 
Các lớp đối tượng truy 
xuất dữ liệu từ Project 
Server
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 66
b) Danh sách một số lớp đối tượng quan trọng : 
- Các lớp đối tượng thuộc nhóm giao tiếp với NSD : (phần này chỉ nêu sơ 
lược một số user control, các màn hình giao diện sẽ được trình bày riêng 
trong phần 5.3) 
1. CtrlReport : Là User control được sử dụng trên các màn hình 
thống kê. Chứa bên trong một lưới để hiển thị thông tin trong 
thống kê.Các đối tượng màn hình sử dụng lớp đối tượng này có 
thể tùy ý định dạng lại cho lưới dữ liệu tùy theo yêu cầu 
2. CtrlTraCuuKeHoach : Là User control dùng để tra cứu kế hoạch. 
Chứa bên trong một lưới để hiển thị danh sách các bản kế hoạch 
chi tiết nhóm theo từng công việc tổng thể 
3. CtrlTraCuuDuAn : Là User control dùng để tra cứu dự án. Chứa 
bên trong một lưới để hiển thị danh sách các dự án theo dạng cây 
với quan hệ dự án – dự án con 
4. CtrlTraCuuNhanVien : Là User control dùng để tra cứu nhân viên 
- Các lớp đối tượng thuộc nhóm xử lý : Bên dưới là một số đối tượng xử lý 
quan trọng nhất 
1. KeHoach : Lớp đối tượng kế hoạch, là lớp cơ sở cho các lớp đối 
tượng KHChiTiet và KHTongThe 
2. KeHoachTongThe: Lớp đối tượng kế hoạch tổng thể, kế thừa lớp 
KeHoach 
3. KeHoachChiTiet : Lớp đối tượng kế hoạch chi tiết, kế thừa lớp 
KeHoach 
4. CongViec : Lớp đối tượng công việc, là lớp cơ sở cho các lớp đối 
tượng CongViecTongThe và CongViecChiTiet 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 67
5. CongViecTongThe : Lớp đối tượng Công việc tổng thể, kế thừa 
lớp CongViec 
6. CongViecChiTiet : Lớp đối tượng Công việc chi tiết, kế thừa lớp 
CongViec 
7. DSCongViec : Lớp đối tượng danh sách công việc. Mỗi đối tượng 
thuộc lớp này sẽ chứa một danh sách các thông tin chung về công 
việc (dạng record) 
8. DSCongViecTongThe : Lớp đối tượng danh sách công việc tổng 
thể, kế thừa từ lớp đối tượng DSCongViec . 
9. DSCongViecChiTiet : Lớp đối tượng danh sách công việc chi tiết, 
kế thừa từ lớp đối tượng DSCongViec . 
10. PhanCong : Lớp đối tượng phân công. Mỗi đối tượng phân công 
chứa một tập (một danh sách) các thông tin phân công dưới dạng 
record 
11. DuAn : Lớp đối tượng dự án. Mỗi đối tượng thuộc lớp này chứa 
thông tin về một dự án 
- Các lớp đối tượng thuộc nhóm truy xuất dữ liệu : trong bảng là các đối 
tượng truy xuất dữ liệu từ Project Server và một số đối tượng truy xuất 
dữ liệu từ CSDL của PMA 
1. PrjSvr_KeHoach : Lớp đối tượng truy xuất dữ liệu chung của các 
project từ Project Server 
2. PrjSvr_CongViec : Lớp đối tượng truy xuất dữ liệu công việc từ 
Project Server 
3. PrjSvr_PhanCong : Lớp đối tượng truy xuất dữ liệu phân công từ 
Project Server 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 68
4. PrjSvr_NhanSu : Lớp đối tượng truy xuất danh sách nhân viên 
được phân công vào các công việc trong kế hoạch, chủ yếu là 
thông tin về mã và tên 
5. PDSUtils : Hỗ trợ giao tiếp với Project Server thông qua PDS 
6. TapDuLieu : Hỗ trợ truy xuất dữ liệu từ CSDL thông qua một kỹ 
thuật nhất định (như ADO.NET) 
7. DLKeHoach : Truy xuất dữ liệu kế hoạch từ CSDL 
8. DLCongViec : Truy xuất dữ liệu công việc từ CSDL 
5.2.2. Một số hàm xử lý quan trọng của các đối tượng: 
Phần này trình bày một số hàm xử lý cơ bản và tương đối phức tạp của một 
số lớp đối tượng, chủ yếu là các đối tượng xử lý chính. 
a) Lớp DSCongViec 
STT Tên hàm/Ý 
nghĩa 
Tham số Kiểu trả 
về 
Thuật giải 
1 DocDSCong 
ViecTuProject 
(đọc danh 
sách công 
việc từ 
Project) 
prjCV: 
PrjSvr_CongVi
ec 
kh : KeHoach 
Data 
Table 
Dscv, temp : DataTable 
Temp = prjCV.DocDSCV( ) 
Sắp xếp các công việc trong temp 
theo thứ tự tăng dần của WBS 
(outline number) để đảm bảo các 
công việc con luôn nằm ngay sau cha 
của nó 
Dùng đệ qui, chuyển lần lượt các 
công việc từ temp vào dscv với những 
thông tin cần thiết và theo cấu trúc 
công việc - công việc con 
Trả về dscv 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 69
STT Tên hàm/Ý 
nghĩa 
Tham số Kiểu trả 
về 
Thuật giải 
2 XuatDSCV 
(xuất danh 
sách công 
việc ra một 
control có thể 
thể hiện dữ 
liệu dạng 
lưới kết hợp 
với cây) 
Ctrl : Control 
DKLoc : String 
DongBD : int 
DongKT : int 
Level : int 
DSThuocTinh: 
string[] 
void Lọc các công việc trong record chứa 
danh sách công việc (m_DSCV) theo 
DKLoc, và sắp xếp theo thứ tự tăng 
dần của STT công việc. 
Dùng đệ qui, gán lần lượt các công 
việc đã lọc vào các node của Ctrl với 
những thuộc tính trong DSThuocTinh 
theo cấu trúc công việc - công việc 
con, bắt đầu từ dòng DongBD, cột 
CotBD, và mức Level của Ctrl. 
3 TinhTong 
ChiPhi 
(Tính tổng 
một thuộc tính 
chi phí của 
một tập công 
việc) 
DKLoc : string 
TenThuocTinh : 
string 
decimal Lọc ra tập các công việc từ m_DSCV 
theo DKLoc. 
TongCP : decimal 
Với mỗi dòng i tương ứng với công 
việc lọc được: 
 TongCP += 
m_DSCV[i][TenThuocTinh] 
Trả về TongCP 
4 TinhNgayBD 
Chung 
(Tính thời 
điểm bắt đầu 
chung cho 
một tập công 
việc) 
Như trên Date 
Time 
Lọc ra tập các công việc từ m_DSCV 
theo DKLoc. 
NgayBD : DateTime 
Với i là dòng tương ứng với công việc 
được lọc đầu tiên : NgayBD = 
m_DSCV[i][TenThuocTinh] 
Với mỗi dòng i tương ứng với công 
việc lọc được: 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 70
Nếu (NgayBD > 
m_DSCV[i][TenThuocTinh] ) 
NgayBD += 
m_DSCV[i][TenThuocTinh] 
Trả về NgayBD 
5 TinhNgayKT 
Chung 
(Tính thời 
điểm kết thúc 
chung cho 
một tập công 
việc) 
Như trên Như trên Tương tự như hàm 
TinhNgayBDChung, chỉ thay đổi điều 
kiện gán NgayKT là NgayKT< 
m_DSCV[i][TenThuocTinh] ) 
6 TinhTyLeTL 
HoanTat 
(tính tỷ lệ thời 
lượng đã làm 
so với thời 
lượng dự kiến 
của một tập 
công việc) 
DKLoc : string 
TenTTTLTT : 
string 
TenTTTLDK : 
string 
decimal Lọc ra tập các công việc từ m_DSCV 
theo DKLoc. 
SumDur, SumActDur : decimal 
Tính tổng thời lượng dự kiến SumDur 
của tập công việc lọc được theo thuộc 
tính TenTTTLTT 
Tính tổng thời lượng thực tế 
SumActDur của tập công việc lọc 
được theo thuộc tính TenTTTLDK 
Trả về SumActDur / SumDur 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 71
b) Lớp DSCongViecTongThe 
STT Tên hàm/Ý 
nghĩa 
Tham số Kiểu 
trả về 
Thuật giải 
1 TongHopTT 
TuKHCT 
(tổng hợp 
thông tin từ 
kế hoạch chi 
tiết) 
void void Với mỗi công việc tổng thể cvtt có cấp cao nhất 
(cấp 1) trong m_DSCV : 
{ dscvCT : DSCongViecChiTiet 
 dscvCT .DocDSCV(cvtt.MaCV) 
 Tính các thuộc tính về thời lượng, chi phí 
…thực tế của cvtt, sử dụng các phương thức của 
đối tượng dscvCT với điều kiện lọc là mức của 
công việc chi tiết = 1 (*) 
 Với mỗi công việc tổng thể cấp 2 cvtt2 là con 
của cvtt : xử lý tính toán tương tự như (*) với 
điều kiện lọc bổ sung là công việc chi tiết thuộc 
về cvtt2. } 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 72
c) Lớp DSCongViecChiTiet 
STT Tên hàm/Ý 
nghĩa 
Tham số Kiểu 
trả về 
Thuật giải 
1 SoSanh 
(So sánh danh 
sách công 
việc với một 
danh sách 
công việc 
khác và xác 
định các khác 
biệt) 
DSCVMoi, 
DSVMoiThem, 
DSCVBiXoa, 
DSCVCapNhatThuong, 
DSCVCapNhatTienDo: 
 DSCongViecChiTiet 
void Với mỗi công việc cv thuộc 
m_DSCV, tìm công việc có 
cùng mã trong DSCVMoi 
 Nếu không tìm được 
 Thêm cv vào DSCVBiXoa 
 Ngược lại 
 Kiểm tra các thuộc tính 
tương ứng giữa 2 công việc: 
 Nếu có thay đổi trên các 
thuộc tính liên quan đến tiến độ : 
 Thêm cv vào 
DSCVCapNhatTienDo 
 Nếu chỉ thay đổi trên các 
thuộc tính khác : 
 Thêm cv vào 
DSCVCapNhatThuong 
Với mỗi công việc cv thuộc 
DSCVMoi, tìm công việc có 
cùng mã trong m_DSCV 
 Nếu không tìm được 
 Thêm cv vào 
DSCVMoiThem 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 73
Màn hình chính 
(chứa user control 
tra cứu kế hoạch) 
Màn hình ghi nhận 
kế hoạch tổng thể 
Màn hình ghi nhận 
kế hoạch chi tiết 
Màn hình cập nhật 
kế hoạch chi tiết 
Màn hình cập nhật 
kế hoạch tổng thể 
Màn hình tra cứu 
nhân viên 
Màn hình tra cứu 
văn bản 
Các màn hình thống 
kê chi phí dự án 
Màn hình tra cứu 
dự án 
Màn hình kiểm tra 
phân công nhân 
viên 
Màn hình xem chi 
tiết kế hoạch 
5.3. Thiết kế giao diện : 
5.3.1. Sơ đồ các màn hình giao diện: 
Hình sau đây là sơ đồ các màn hình giao diện chính của PMA, ngoài ra còn 
có các màn hình khác không có trong sơ đồ: quản lý nhân viên, ghi nhận và 
cập nhật dự án, quản lý văn bản, quản lý các danh mục, … 
Trên sơ đồ, hình chữ nhật chỉ một hoặc một nhóm màn hình, mũi tên hai 
chiều giữa chúng chỉ ra rằng bằng cách nào đó có thể chuyển qua lại trực 
tiếp giữa hai màn hình. 
 Hình 5.3. Sơ đồ các màn hình giao diện của PMA 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 74
 Có thể chia các màn hình giao diện của PMA thành 4 nhóm, dựa vào nội 
dung giao tiếp với người sử dụng và cách thức thể hiện dữ liệu của chúng: 
- Nhóm các màn hình quản lý đối tượng ( thêm, xoá, cập nhật) : gồm các 
màn hình quản lý nhân viên, dự án, danh mục, ... : các màn hình này có 
thể thiết kế theo dạng thông thường : dùng các textbox, combobox, …để 
hiển thị thông tin dạng chi tiết và dùng lưới để thể hiện danh sách các 
đối tượng. 
- Nhóm các màn hình tra cứu : gồm các màn hình tra cứu nhân viên, dự 
án, kế hoạch,văn bản… : có thể hiển thị danh sách các đối tượng tìm 
được theo dạng lưới. Đối với các đối tượng có quan hệ dạng cha - con 
với nhau thì cần kết hợp thể hiện dạng cây. 
- Nhóm các màn hình đồng bộ thông tin với Project Server : gồm các 
màn hình ghi nhận mới và cập nhật kế hoạch (tổng thể hoặc chi tiết). Để 
thực hiện các chức năng này, PMA cần tương tác với người sử dụng qua 
nhiều bước, và các xử lý của bước sau phụ thuộc vào bước trước. Vì vậy, 
đối với các màn hình thuộc nhóm này, thiết kế theo dạng wizard là phù 
hợp nhất. 
- Nhóm các màn hình thống kê : gồm các màn hình để xem chi tiết kế 
hoạch, thống kê chi phí dự án, kiểm tra phân công của nhân viên. Đối với 
các màn hình thuộc nhóm này, có thể sử dụng lưới để hiển thị dữ liệu, và 
thường phải kết hợp với dạng cây để phân nhóm dữ liệu thống kê. Ngoài 
ra trên các màn hình này còn phải có thêm các xử lý cho phép người 
dùng thêm, bớt các cột cần hiển thị, thay đổi đơn vị tính cho các cột thời 
lượng và chi phí; và phải có chức năng in. 
5.3.2. Thiết kế một số màn hình tiêu biểu: 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 75
Đối với PMA, các màn hình của nhóm chức năng đồng bộ thông tin với 
Projec Server và các màn hình nhóm thống kê có một số yêu cầu đặc 
trưng riêng. Do đó trong phần này xin trình bày thiết kế của một màn 
hình đồng bộ thông tin và một màn hình thống kê tiêu biểu. Các màn 
hình khác cùng nhóm có cách thể hiện gần như tương tự nhau. 
a) Màn hình ghi nhận kế hoạch chi tiết – một màn hình đồng bộ 
thông tin 
 Hình 5.4. Màn hình ghi nhận kế hoạch tổng thể- bước 1 
Mô tả : Màn hình ở bước 1 (hình 5.4) dùng để nhập các thông tin cần thiết để 
kết nối với Project Server : URL, tên sử dụng, mật khẩu 
Các sự kiện chính cần xử lý : 
STT Sự kiện Xử lý 
1 Nhấn nút “Tiếp” Kết nối với Project Server. Nếu thành công , 
chuyển qua bước 2 
2 Nhấn nút “Hủy bỏ” Hủy bỏ việc ghi nhận (sau khi đã xác nhận) (tương 
tự cho các bước sau) 
1 2 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 76
Hình 5.5. Màn hình ghi nhận kế hoạch chi tiết- bước 2 
Mô tả : Màn hình ở bước 2 (hình 5.5) cho phép chọn một project hiện có trong 
Project Server tương ứng với kế hoạch chi tiết cần ghi nhận 
Các sự kiện chính cần xử lý : 
STT Sự kiện Xử lý 
1 Nhấn nút “Tiếp” Xác định project cần ghi nhận 
Đọc toàn bộ kế hoạch chi tiết và chuyển qua bước 
3 (nếu đọc thành công) 
2 Nhấn nút “Trở lại” Trở lại bước trước (tương tự cho các bước khác) 
1 
2 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 77
Hình 5.6. Màn hình ghi nhận kế hoạch chi tiết- bước 3 
Mô tả : Màn hình ở bước 3 (hình 5.6) cho phép xác định một công việc chi tiết 
cấp 1 (cao nhất) (và tất cả các công việc con của nó) là chi tiết cho một công 
việc tổng thể cấp 2 nào (cho phép chi tiết kế hoạch tổng thể ở 2 cấp). Việc xác 
định này không bắt buộc 
Các sự kiện chính cần xử lý : 
STT Sự kiện Xử lý 
1 Nhấn nút “…” Hiển thị danh sách các công việc tổng thể cấp 2 là 
con của công việc tổng thể được chi tiết bởi kế 
hoạch chi tiết này để NSD lựa chọn. 
2 Nhấn nút “Tiếp” Gán thông tin được xác định vào các đối tượng liên 
quan và chuyển sang bước 4 
1 
2 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 78
 Hình 5.7. Màn hình ghi nhận kế hoạch chi tiết- bước 4 
Mô tả : Màn hình ở bước 4 (hình 5.7) cho yêu cầu NSD xác định loại công việc 
cho các công việc trong kế hoạch. Đối với công việc chi tiết, việc xác định này 
là không bắt buộc . 
Các sự kiện chính cần xử lý : 
STT Sự kiện Xử lý 
1 Nhấn nút “…” Hiển thị danh sách các loại công việc để NSD lựa 
chọn. Cần lựa chọn các loại công việc để hiển thị 
sao cho không vi phạm ràng buộc R5, R8 và R9 
(phần 5.1.3) 
2 Nhấn nút “Tiếp” Gán thông tin được xác định vào các đối tượng liên 
quan và chuyển sang bước 5 
1 2 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 79
 Hình 5.8. Màn hình ghi nhận kế hoạch chi tiết- bước 5 
Mô tả : Màn hình ở bước 5 (hình 5.8) cho yêu cầu NSD xác định nhân viên 
được phân công vào các công việc trong kế hoạch. Thông tin đọc được về các 
nhân viên này từ Project chỉ là tên (có thể là tên tắt), khi đưa vào PMA NSD cần 
xác nhận lại cụ thể là nhân viên nào, đồng thời chỉ rõ vai trò của nhân viên được 
phân công trong công việc. Việc xác định này là bắt buộc . 
Các sự kiện chính cần xử lý : 
STT Sự kiện Xử lý 
1 Nhấn nút “…” ở 
một dòng thuộc 
cột Mã NV 
Hiển thị danh sách các nhân viên để NSD lựa chọn. Sau 
khi NSD đã chọn, hiển thị tên nhân viên tương ứng vào 
cột “Họ tên NV” 
2 Nhấn nút “…” ở 
một dòng thuộc 
cột vai trò 
Hiển thị danh sách các vai trò có thể đảm nhận loại công 
việc tương ứng với công việc ở dòng này. (hoặc tất cả 
vai trò nếu công việc này chưa được xác định vai trò) 
3 Nhấn nút “Tiếp” Gán thông tin được xác định vào các đối tượng liên quan 
và chuyển sang bước 6 
1
2
3 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 80
Hình 5.9. Màn hình ghi nhận kế hoạch chi tiết- bước 6 
Mô tả : Màn hình ở bước 6 (hình 5.9) cho yêu cầu NSD nhập ngày giờ kế 
hoạch được cập nhật lần cuối. 
Các sự kiện chính cần xử lý : 
STT Sự kiện Xử lý 
1 Nhấn nút “Kết thúc” Ghi nhận toàn bộ thông tin về kế hoạch, công 
việc, phân công (cùng với các thông itn bổ sung 
đã xác định) và CSDL. 
Thông báo kết quả thực hiện (thành công hay bị 
lỗi) 
b) Màn hình thống kê chi phí dự án theo vai trò – một màn hình 
thống kê : 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 81
Hình 5.10. Màn hình thống kê chi phí dự án 
Mô tả : Màn hình thống kê chi phí dự án theo vai trò (hình 5.10) hiển thị các số 
liệu thống kê về chi phí dự án, phân nhóm theo từng vai trò và giai đoạn. 
Các sự kiện chính cần xử lý : 
STT Sự kiện Xử lý 
1 Thay đổi đơn vị tính 
chi phí 
Tính toán và hiển thị lại các cột chi phí theo 
đơn vị mới 
2 Nhấn nút “Thêm bớt 
cột” 
Hiển thị màn hình cho phép NSD thêm bớt các 
cột cần hiển thị. Thêm bớt cột trên thống kê 
theo ý NSD. 
3 Nhấn nút “Xem biểu 
đồ” 
Chuyển sang phần màn hình xem biểu đồ, thể 
hiện tỷ lệ chi phí theo từng loại so với tổng chi 
phí dự án 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 5 : Thiết kế phần mềm 
 82
4 Nhấn nút “Xem trước” Hiển thị màn hình cho phép xem thống kê theo 
khuôn dạng khi in 
5 Nhấn nút “In” In thống kê. 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 6 : Cài đặt và thử nghiệm 
 83
Chương 6 : Cài đặt và thử nghiệm 
 Chương này trình bày một số vấn đề liên quan đến quá trình cài đặt và thử 
nghiệm : một số công thức tính toán, môi trường lập trình, các thư viện, kỹ thuật được 
sử dụng và các trường hợp đã được thử nghiệm. 
6.1. Một số công thức tính toán được sử dụng : 
Các công thức và thuật toán ở phần này đều dựa trên kết quả khảo sát cách tính 
toán của MS Office Project, để đảm bảo rằng cách tính toán của PMA phải 
thống nhất với cách tính của MS Office Project. 
a) Tính tổng thời lượng của một tập công việc: 
V : tập các công việc 
N : tập các ngày nghỉ (nghỉ lễ, các ngày nghỉ trong tuần) 
Ngày bắt đầu = min{v.NgayBD : v ∈ V} 
Ngày kết thúc = max{ v.NgayKT : v ∈ V} 
D = Ngày bắt đầu 
Tổng thời lượng = 0 
Trong khi ( D < Ngày kết thúc) 
 Nếu D ∉ N 
 Tổng thời lượng +=D.Thời gian làm việc trong ngày 
 Cuối nếu 
 D = D+1(ngày) 
Cuối Trong khi 
b) Tính tổng thời lượng thực tế của một tập công việc: 
Tổng thời lượng thực tế = ongDuKienTongthoilu
ukienThoiluongDvi
hucteThoiluongTvi
i
i ×∑
∑
.
.
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 6 : Cài đặt và thử nghiệm 
 84
Với: vi là công việc thứ i trong tập công việc. 
 TongthoiluongDukien : tổng thời lượng dự kiến, có thể tính được bằng 
công thức (a) 
c) Tính tỷ lệ hoàn tất tổng cộng cho một tập công việc: 
Tỷ lệ hoàn tất = ∑
∑ ×
i
i
enChiPhiDuKivi
enChiPhiDukivitTyLeHoanTavi
.
)..(
 Với vi là công việc thứ i trong tập công việc 
6.2. Một số XML request và reply cung cấp bởi PDS : 
Như đã trình bày ở chương 3, để tránh sự phụ thuộc tuyệt đối vào CSDL của 
Project Server, PMA sẽ không đọc kế hoạch trực tiếp từ CSDL của Project 
Server mà thông qua Project Data Service- PDS, một Web Service được Project 
Server cung cấp. 
PMA sẽ sử dụng SOAP (Simple Object Access Protocol), một nghi thức trao đổi 
dữ liệu dựa trên XML, để gọi phương thức SoapXMLRequest của PDS. Thông 
qua phương thức này, PMA sẽ gửi đến PDS các request và nhận về các reply, cả 
hai đều là XML. 
Phần này sẽ trình bày các request và reply được sử dụng cho PMA 
6.2.1. ProjectsStatus 
Request này được PMA sử dụng để đọc danh sách các project hiện có 
trong Project Server 
- Request : 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 6 : Cài đặt và thử nghiệm 
 85
- Tham số: 
? ProjectType : loại project, sử dụng ProjectType = 0 (project thông 
thường) 
? Bỏ qua các tham số khác 
- Reply: 
Trong reply cần quan tâm đến : 
? Kết quả đọc ( thành công hay lỗi) trả về trong tag HRESULT và 
STATUS 
? ProjectID (mã project), ProjectName (tên project), LastModified 
(thời điểm cập nhật cuối) 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 6 : Cài đặt và thử nghiệm 
 86
6.2.2. ProjectData 
Request này được PMA sử dụng để đọc toàn bộ thông tin về một project 
trong Project Server (bao gồm cả thông tin về công việc và phân công) 
- Request : 
- Tham số: 
? ProjectID : Mã project cần đọc 
? ProjectName : Tên project cần đọc (không cần nếu đã có mã) 
? ReturnUIDs : trả về mã của các đối tượng công việc, phân 
công,…) hay không. Sử dụng ReturnUIDs = 1 
- Reply: 
 -- Project Data -- 
 Với “Project Data” là toàn bộ dữ liệu về kế hoạch. 
 Trong reply cần quan tâm : 
? Kết quả đọc ( thành công hay lỗi) trả về trong tag HRESULT và 
STATUS 
? Dữ liệu về kế hoạch, bao gồm dữ liệu nằm trong các tag “Project”, 
“Task”, “Resource” và “Assignment”. Các giá trị cần đọc và chuyển 
đổi như sau : 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 6 : Cài đặt và thử nghiệm 
 87
a. Thông tin chung về kế hoạch (Project) 
STT Giá trị trả về Ý nghĩa 
1 ProjectName Tên project 
2 ProjectID Mã Project 
3 Author Người lập 
b. Công việc (Task) 
STT Giá trị trả về Ý nghĩa 
1 Name Tên công việc 
2 ID Số thứ tự công việc 
3 UID Mã công việc (duy nhất trên một project) 
4 Start Thời điểm bắt đầu (định dạng 
“yyyymmddhhmmss”) 
5 Finish Thời điểm kết thúc (định dạng 
“yyyymmddhhmmss”) 
6 Work Chi phí dự kiến (tính bằng phút) 
7 ActualWork Chi phí thực tế (tính bằng phút) 
8 Duration Thời lượng dự kiến (tính bằng phút) 
9 ActualDuration Thời lượng thực tế (tính bằng phút) 
10 PercentWorkComplete Tỷ lệ hoàn tất dự trên giờ làm (chi phí) 
11 OutlineLevel Mức(cấp) của công việc 
c. Nhân viên (Resource) 
STT Giá trị trả về Ý nghĩa 
1 Name Tên nhân viên 
2 ID Mã nhân viên 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 6 : Cài đặt và thử nghiệm 
 88
d. Phân công (Assignment) 
STT Giá trị trả về Ý nghĩa 
1 UID Mã phân công (duy nhất trên một project) 
2 TaskID Số thứ tự công việc 
3 ResourceID Mã nhân viên 
4 Start Thời điểm bắt đầu (định dạng 
“yyyymmddhhmmss”) 
5 Finish Thời điểm kết thúc (định dạng 
“yyyymmddhhmmss”) 
6 Work Chi phí dự kiến (tính bằng phút) 
7 ActualWork Chi phí thực tế (tính bằng phút) 
8 Units Đơn vị (tỷ lệ phần trăm thời gian làm việc 
của nhân viên) 
9 PercentWorkComplete Tỷ lệ hoàn tất dự trên giờ làm (chi phí) 
6.3. Môi trường thực hiện và các phần mềm liên quan: 
6.3.1. Môi trường thực hiện : 
- PMA là ứng dụng chạy trên Windows, được phát triển trên môi trường 
Visual Studio .NET 2003, dùng ngôn ngữ lập trình C#. NET . 
- Sử dụng hệ quản trị CSDL SQL Server 2000. 
- Sử dụng thư viện ADO.NET để lập trình truy xuất CSDL và quản lý dữ 
liệu truy xuất được. 
6.3.2. Các thư viện khác : 
Bên cạnh sử dụng các thư viện được cung cấp trong bộ Microsoft Visual 
Studio.NET, PMA còn dùng thêm các thư viện control sử dụng cho .NET 
do Component One cung cấp. 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 6 : Cài đặt và thử nghiệm 
 89
Các thư viện đã sử dụng : 
- ComponentOne FlexGrid for .Net : thư viện này cung cấp control 
C1FlexGrid và các lớp đối lượng liên quan, với nhiều tính năng phù 
hợp cho việc hiển thị danh sách công việc theo dạng cây kết hợp vói 
lưới, cũng như phù hợp cho việc trình bày số liệu thống kê. 
- ComponentOne Chart for .Net : cung cấp công cụ hỗ trợ lập các 
dạng biểu đồ. 
6.3.3. Các phần mềm liên quan : 
Để hoạt động được , PMA cần phải giao tiếp với Project Server phiên 
bản 2003. Project Server 2003 có thể nằm trên cùng máy chạy PMA, 
hoặc nằm trên một server mà máy chạy PMA có thể kết nối được. 
6.4. Các trường hợp thử nghiệm: 
Các chức năng chính được cài đặt của PMA đã được kiểm thử theo trình tự sau : 
a) Mở một dự án mới, với chức năng tạo mới dự án (cho phép ghi nhận một số 
thông tin chung ban đầu về dự án : tên, mã , ngày dự kiến bắt đầu, kết thúc, 
trưởng dự án,…) 
b) Lập kế hoạch tổng thể : 
- Lập một kế hoạch tổng thể (một project) bằng MS Office Project 
Professional, với các công việc tổng thể : khảo sát , phân tích, lập trình, 
…, và một số công việc tổng thể con để chi tiết thêm một cấp. Lưu kế 
hoạch vào Project Server 
- Dùng chức năng “Ghi nhận kế hoạch tổng thể” của PMA để ghi nhận kế 
hoạch tổng thể vào PMA 
c) Lập kế hoạch chi tiết : 
- Lập một kế hoạch chi tiết (một project) bằng MS Office Project để chi 
tiết cho một công việc tổng thể đã ghi nhận . Kế hoạch chi tiết này bao 
gồm các công việc chi tiết và một số phân công cho các công việc này 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 6 : Cài đặt và thử nghiệm 
 90
(một công việc có thể có hoặc chưa có thông tin phân công ). Lưu kế 
hoạch vào Project Server 
- Dùng chức năng “Ghi nhận kế hoạch chi tiết ” của PMA để ghi nhận kế 
hoạch chi tiết vào PMA 
d) Cập nhật kế hoạch chi tiết : 
- Thay đổi kế hoạch chi tiết (project) đã lập và lưu trữ trong Project Server 
bằng MS Office Project , bao gồm : 
? Thay đổi tiến độ công việc : cập nhật trên các thông tin về tiến độ 
công việc (hay phân công) :tỷ lệ hoàn tất, chi phí thực tế,… 
? Thay đổi khác : thay đổi một số thông tin khác của công việc và phân 
công ngoài thông tin về tiến độ; thay đổi thứ tự, cấp bậc của công 
việc, xóa công việc và phân công, thêm công việc và phân công 
Lưu kế hoạch trở lại vào Project Server. 
- Dùng chức năng “Cập nhật kế hoạch chi tiết ” của PMA để cập nhật kế 
hoạch chi tiết vào PMA. Trong quá trình cập nhật , khi PMA hỏi về việc 
có cần xóa hoàn toàn công việc, yêu cầu xóa một vài công việc và giữ lại 
thông tin về một vài công việc để kiểm tra. 
- Dùng chức năng “Xem kế hoạch chi tiết “ để kiểm tra lại kế hoạch đã cập 
nhật. Khi đó phần chi phí của các công việc bị xóa nhưng không yêu cầu 
xóa hoàn toàn thể hiện trên màn hình dưới dạng chi phí đã xóa. 
Lập lại bước (c) và (d) vài lần để có thêm dữ liệu kiểm tra phần thống kê. 
e) Thống kê : Lần lượt sử dụng các chức năng thống kê của PMA : thống kê 
tổng thể dự án, thống kê chi phí dự án theo vai trò, theo trình độ, theo nhân 
viên, kiểm tra phân công của nhân viên. Các chức năng này được thử nghiệm 
đầu tiên với dữ liệu nhỏ , để kiểm tra tính đúng đắn về số liệu của thống kê. 
Sau đó tăng số lượng dữ liệu (dữ liệu thống kê được hơn một trang) để kiểm 
tra về sự hợp lý về dàn trang trong trình bày và in ấn. 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 7 : Tổng kết 
 91
Chương 7 : Tổng kết 
7.1. Tổng kết quá trình thực hiện và các kết quả đạt được 
Với yêu cầu đặt ra ban đầu của đề tài : “xây dựng một công cụ hỗ trợ quản lý kế 
hoạch, tiến độ và chi phí của quá trình phát triển phần mềm, gắn kết với hệ 
thống phần mềm MS Office Project”, em đã tiến hành khảo sát hiện trạng, lựa 
chọn phương án, phân tích, thiết kế và cài đặt chương trình thử nghiệm. Kết quả 
cụ thể đạt được như sau : 
a) Về phần khảo sát, lựa chọn phương án và phân tích, thiết kế : 
- Khảo sát và phân tích rõ được các khó khăn của quy trình nghiệp vụ hiện 
tại với MS Office Project và nguyên nhân dẫn đến các khó khăn này. 
- Kết hợp với các yêu cầu đặt ra từ phía người sử dụng, xây dựng một 
phương án thích hợp để phát triển một hệ thống mới. Phương án này, qua 
quá trình phân tích và cài đặt thử nghiệm, đã được chứng minh là khả thi 
và có thể khắc phục được các khuyết điểm của hệ thống hiện tại. 
- Theo phương án đã đề ra, phân tích và thiết kế công cụ PMA, phần cốt lõi 
của hệ thống mới. Phần phân tích, thiết kế khá đầy đủ và bao quát tất cả 
các chức năng chính của PMA. 
- PMA được thiết kế theo hướng đối tượng và theo mô hình 3 lớp. 
b) Về phần cài đặt và thử nghiệm : 
Chương trình đã được cài đặt và thử nghiệm cho các chức năng sau : 
- Ghi nhận kế hoạch tổng thể và kế hoạch chi tiết từ bản kế hoạch tương 
ứng đã được lập bằng MS Project . 
- Cập nhật kế hoạch chi tiết ( từ bản kế hoạch tương ứng đã được cập nhật 
trong MS Project) 
- Thống kê chi phí dự án tính đến thời điểm hiện tại theo từng giai đoạn, 
phân loại chi phí theo vai trò hoặc theo trình độ nhân viên tham gia. 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 7 : Tổng kết 
 92
(Thống kê được cả phần chi phí của các công việc đã bị xóa khỏi kế 
hoạch ). Cung cấp một số biểu đồ đơn giản thể hiện sự phân loại chi phí. 
- Thống kê chi phí dự án dưới dạng ngày công của nhân viên 
- Tổng hợp toàn bộ thông tin phân công của một nhân viên (trong một 
khoảng thời gian) và phát hiện mâu thuẫn nếu có. 
- Thống kê tổng thể dự án theo các công việc tổng thể, cho thấy các chênh 
lệch giữa kế hoạch tổng thể với kế hoạch chi tiết, đồng thời cũng cung 
cấp một cái nhìn chung về tiến độ thực hiện của dự án. 
- Ngoài ra còn một số chức năng phụ khác : quản lý thông tin chung của 
dự án, quản lý hồ sơ nhân viên, tra cứu dự án, tra cứu kế hoạch, xem chi 
tiết kế hoạch. 
7.2. Hướng phát triển : 
a) Trước mắt, PMA còn cần phải được cài đặt bổ sung một số chức năng đế 
có thể đáp ứng tất cả những yêu cầu của hệ thống mới : 
? Cập nhật kế hoạch tổng thể , kèm theo là hỗ trợ lập phiên bản kế hoạch 
tổng thể và quản lý các phiên bản. 
? Quản lý và hỗ trợ tra cứu văn bản 
? Phân quyền; Quản lý các danh mục và tham số. 
b) Với thiết kế hiện tại , PMA còn có thể khai thác nhiều hơn nữa những 
thông tin mà nó đã ghi nhận và lưu giữ được : 
? Các thông tin lưu vết khi cập nhật tiến độ: có thể được dùng để thống kê 
tỷ lệ hoàn tất và chi phí dự án đã phát sinh tính đến bất kỳ thời điểm nào 
trong suốt quá trình thực hiện dự án , không chỉ là tính đến thời điểm 
hiện tại như các chức năng thống kê đã cài đặt; Hoặc có thể dùng để so 
sánh tiến độ thực hiện dự án (mức độ nhanh hay chậm ) giữa các giai 
đoạn. 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Chương 7 : Tổng kết 
 93
? Thông tin về loại công việc : có thể được dùng để thống kê chi phí dự án 
theo từng loại công việc, để có thể thấy rõ chi phí tập trung vào các loại 
công việc nào, tạo tiền đề cho các chiến lược nhằm tối thiểu hoá chi phí. 
? Thống tin về quan hệ dự án tổng thể - dự án con : có thể cung cấp các 
thống kê trên dự án tổng thể ( thống kê bao gồm cả các dự án con) 
b) Trong tương lai, PMA có thể được mở rộng theo hướng: 
? Ghi nhận bổ sung và khai thác thêm các thông tin khác thường có trong 
các kế hoạch: lượng việc phải làm ngoài giờ, công việc liền trước,…, các 
ghi chú. Các thông tin này có thể được ghi nhận trong các kế hoạch lập 
bằng MS Project, nhưng hiện tại PMA chưa hỗ trợ . 
? Bổ sung và cải tiến giao diện để tăng tính tiện dụng cho người sử dụng. 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Tài liệu tham khảo 
 94
Danh mục tài liệu tham khảo : 
1. Microsoft Corporation, Project Data Service reference for Microsoft Office 
Project Server 2003. 
2. Microsoft Corporation, Microsoft Office Project 2003 Data Reference. 
3. Microsoft Corporation, Microsoft Office Project 2003 Overview 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 95
Phụ lục : Danh sách thuộc tính của các quan hệ trong CSDL 
Ghi chú : Các thuộc tính khóa chính được in đậm 
1. BB_THANH_LY_HOP_DONG 
Chứa các thông tin về biên bản ra cứu hợp đồng : 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 BBTL_SO nvarchar(20) Số biên bản 
2 HD_SO nvarchar(20) Số hợp đồng . Tham chiếu đến bảng 
HOP_DONG 
3 DA_MA nvarchar(15) Mã dự án . Tham chiếu đến bảng 
DU_AN 
4 BBTL_NGAYLAP datetime ngày lập 
5 BBTL_DAIDIEN_A nvarchar(255) Tên người đại diện bên A 
6 BBTL_CHUCVU_A nvarchar(255) Chức vụ người đại diện bên A 
7 BBTL_DAIDIEN_B nvarchar(255) Tên người đại diện bên B 
8 BBTL_CHUCVU_B nvarchar(255) Chức vụ người đại diện bên B 
9 BBTL_TONGGIATRI decimal Tổng giá trị cần thanh toán 
10 BBTL_GIATRIDATT decimal Giá trị đã thanh toán 
11 BBTL_NOILUUTRU nvarchar(255) nơi lưu trữ văn bản 
12 BBTL_GHICHU nvarchar(255) Ghi chú 
2. CONG_VIEC_TONG_THE 
Chứa thông tin về công việc tổng thể 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 CVTT_MA int Mã công việc tổng thể 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 96
2 KHTT_MA int Mã kế hoạch tổng thể, tham chiếu 
đến bảng 
KE_HOACH_TONG_THE 
3 CVTT_MACVTOMTAT int Mã công việc tổng thể tóm tắt 
(công việc cha) của công việc này 
4 CVTT_TEN nvarchar(255) tên công việc 
5 CVTT_NGAYBD datetime thời điểm bắt đầu 
6 CVTT_NGAYKT datetime thời điểm kết thúc 
7 CVTT_THOILUONG decimal thời lượng dự kiến 
8 CVTT_CHIPHIDK decimal chi phí dự kiến 
9 CVTT_STT int số thứ tự của công việc 
10 CVTT_MUC int mức (cấp) của công việc. 
11 CVTT_TINHTRANG int tình trạng công việc (có bị xóa hay 
không) 
3. CONG_VIEC_CHI_TIET 
Chứa thông tin về công việc chi tiết 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 CVCT_MA int Mã công việc chi tiết 
2 KHCT_MA int Mã kế hoạch chi tiết, tham chiếu 
đến bảng 
KE_HOACH_CHI_TIET 
3 CVCT_MACVTOMTAT int Mã công việc chi tiết tóm tắt 
(công việc cha) của công việc này
4 CVTT_MA int Mã công việc tổng thể 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 97
5 KHTT_MA int Mã kế hoạch chi tiết, cùng với 
CVTT_MA tham chiếu đến bảng 
CONG_VIEC_TONG_THE 
6 LCV_MA int Mã loại công việc, tham chiếu 
đến bảng LOAI_CONG_VIEC 
7 CVCT_TEN nvarchar(255
) 
Tên công việc 
8 CVCT_NGAYBD datetime Thời điểm bắt đầu 
9 CVCT_NGAYKT datetime Thời điểm kết thúc 
10 CVCT_THOILUONGDK decimal Thời lượng dự kiến 
11 CVCT_THOILUONGTT decimal Thời lượng thực tế 
12 CVCT_CHIPHIDK decimal Chi phí dự kiến 
13 CVCT_CHIPHITT decimal Chi phí thực tế 
14 CVCT_NGAYBDTT datetime Thời điểm bắt đầu thực tế 
15 CVCT_NGAYKTTT datetime Thời điểm kết thúc thực tế 
16 CVCT_CHIPHICVDAXO
A 
decimal Chi phí cho phần việc đã bị xóa 
17 CVCT_STT int Số thứ tự của công việc 
18 CVCT_MUC int Mức của công việc 
19 CVCT_TYLEHOANTAT decimal Tỷ lệ hoàn tất công việc (dựa trên 
tỷ lệ giữa chi phí thực tế với chi 
phí dự kiến) 
20 CVCT_TINHTRANG int tình trạng công việc (có bị xóa 
hay không) 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 98
4. DAM_NHAN 
Quan hệ đảm nhận giữa vai trò và loại công việc, cho biết những vai trò nào có 
thể đảm nhận loại công việc nào 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 VT_MA int Mã vai trò, tham chiếu đến bảng 
VAI_TRO 
2 LCV_MA int Mã loại công việc, tham chiếu đến 
bảng LOAI_CONG_VIEC 
5. DU_AN 
Chứa thông tin về dự án 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 DA_MA nvarchar(15) Mã dự án 
2 DA_MADATONGTHE nvarchar(15) Mã dự án tổng thể (dự án cha), 
tham chiếu đến chính bảng 
DU_AN 
3 NV_TRUONGDA nvarchar(20) Mã nhân viên là trưởng dự án, 
tham chiếu đến bảng 
NHAN_VIEN 
4 DA_TEN nvarchar(255) Tên dự án 
5 DA_NGAYBD datetime Ngày bắt đầu dự án 
6 DA_NGAYKT datetime Ngày kết thúc dự án 
7 DA_MUC int Mức của dự án (dùng để hiển thị 
danh sách dự án theo dạng cây) 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 99
6. DVT_CHIPHI 
Danh mục các đơn vị tính chi phí 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 DVTCP_MA int Mã đơn vị 
2 DVTCP_THEHIEN nvarchar(255) đơn vị 
3 DVTCP_GIATRICHUYENDOI decimal Giá trị để chuyển đổi chi 
phí từ giá trị lưu trong bảng 
dữ liệu (phút) thành giá trị 
theo đơn vị này 
7. DVT_THOILUONG 
Danh mục các đơn vị tính thời lượng 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 DVTTL_MA int Mã đơn vị 
2 DVTTL_THEHIEN nvarchar(20) đơn vị 
3 DVTTL_GIATRICHUYENDOI decimal Giá trị để chuyển đổi thời 
lượng từ giá trị lưu trong 
bảng dữ liệu (phút) thành 
giá trị theo đơn vị này 
8. GIAI_DOAN 
Danh mục các giai đoạn có thể có trong một dự án 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 GD_MA int Mã giai đoạn 
2 GD_TEN nvarchar(255) Tên giai đoạn 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 100
9. HOP_DONG 
Các thông tin liên quan đến một văn bản hợp đồng 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 HD_SO nvarchar(20) Số hợp đồng 
2 KHA_MA nvarchar(20) Mã khách hàng, tham chiếu đến bảng 
KHACH_HANG 
3 DA_MA nvarchar(20) Mã dự án, tham chiếu đến bảng DU_AN
4 HD_NGAYKY datetime Ngày ký hợp đồng 
5 HD_DAIDIEN_A nvarchar(255) Tên người đại diện bên A 
6 HD_DAIDIEN_B nvarchar(255) Tên người đại diện bên B 
7 HD_CHUCVU_A nvarchar(255) Chức vụ người đại diện bên A 
8 HD_CHUCVU_B nvarchar(255) Chức vụ người đại diện bên B 
9 HD_TONGGIATRI decimal Tổng giá trị hợp đồng 
10 HD_NOILUUTRU nvarchar(255) Nơi lưu trữ văn bản 
11 HD_GHICHU nvarchar(255) Ghi chú 
10. KE_HOACH_CHI_TIET 
Chứa thông tin về kế hoạch chi tiết 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 KHCT_MA int Mã kế hoạch chi tiết 
2 CVTT_MA int mã công việc tổng thể mà kế 
hoạch này chi tiết 
3 KHTT_MA int mã kế hoạch tổng thể, cùng với 
CVTT_MA tham chiếu đến bảng 
CONG_VIEC_TONG_THE 
4 KHCT_NGAYLAP datetime Ngày lập 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 101
5 KHCT_NGUOILAP nvarchar(255) Tên người lập kế hoạch 
6 KHCT_PRJID int ID của Project tương ứng với kế 
hoạch 
7 KHCT_PS_NAME nvarchar(255) Tên Server chạy Project Server 
8 KHCT_PS_URL nvarchar(255) Địa chỉ URL của Project Server 
9 KHCT_PS_DBNAME nvarchar(255) Tên CSDL của Project Server 
10 KHCT_PS_LOGINNA
ME 
nvarchar(255) Tên để login vào Project Server 
11 KHCT_TEN nvarchar(255) Tên kế hoạch 
12 KHCT_NGAYCAPNH
ATCUOI 
datetime Thời điểm kế hoạch được cập 
nhật gần đây nhất 
13 KHCT_TINHTRANG int Tình trạng kế hoạch ( có đã bị 
xóa hay không) 
11. KE_HOACH_TONG_THE 
Chứa thông tin về kế hoạch tổng thể 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 KHTT_MA int Mã kế hoạch tổng thể 
2 DA_MA nvarchar(15) Mã dự án, tham chiếu đến bảng 
DU_AN 
3 KHTT_PHIENBAN int Số (thứ tự) phiên bản 
4 KHTT_NGAYLAP datetime Ngày lập 
5 KHTT_NGUOILAP nvarchar(255) Tên người lập kế hoạch 
6 KHTT_PRJID int ID của Project tương ứng với 
kế hoạch 
7 KHTT_PS_NAME nvarchar(255) Tên Server chạy Project Server 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 102
8 KHTT_PS_URL nvarchar(255) Địa chỉ URL của Project Server 
9 KHTT_PS_DBNAME nvarchar(255) Tên CSDL của Project Server 
10 KHTT_PS_LOGINNAME nvarchar(255) Tên để login vào Project Server 
12. KHACH_HANG 
Thông tin về các khách hàng của công ty 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 KHA_MA nvarchar(15) Mã khách hàng 
2 KHA_TEN nvarchar(255) Tên khách hàng 
3 KHA_DIACHI nvarchar(255) Điạ chỉ khách hàng 
4 KHA_DIENTHOAI nvarchar(255) Điện thoại 
5 KHA_FAX nvarchar(255) Số fax 
6 KHA_SOTAIKHOAN nvarchar(255) Số tài khoản 
7 KHA_MASOTHUE nvarchar(255) Mã số thuế 
8 KHA_NGANHANG nvarchar(255) Ngân hàng tương ứng của 
số tài khoản 
13. LOAI_CONG_VIEC 
Danh mục các loại công việc 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 LCV_MA int Mã loại công việc 
2 LCV_TEN nvarchar(255) Tên loại công việc 
3 GD_MA int Mã giai đoạn tương ứng 
với loại công việc , tham 
chiếu đến bảng 
GIAI_DOAN 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 103
4 LCV_MALCVTONGTHE int Mã loại công việc tổng thể 
(loại công việc cha) của 
loại công việc nà, tham 
chiếu đến chính bảng 
LOAI_CONG_VIEC. 
14. LOAI_VAN_BAN 
Danh mục các loại văn bản có thể phát sinh trong quá trình phát triển dự án 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 LVB_MA int Mã loại văn bản 
2 LVB_TEN nvarchar(255) Tên loại văn bản 
15. MOC_THANH_TOAN 
Các mốc thanh toán thoả thuận trong hợp đồng 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 MTT_STT int Số thứ tự 
2 HD_SO nvarchar(20) Số hợp đồng, tham chiếu 
đến bảng HOP_DONG 
3 MTT_NGAYTT_MOTA nvarchar(255) Ngày thanh toán (về ý 
nghĩa) 
4 MTT_NGAYTT datetime Ngày thanh toán 
5 MTT_TYLETHANHTOAN decimal tỷ lệ thanh toán 
6 MTT_DATHANHTOAN bit Đã thanh toán hay chưa 
16. NGAY_NGHI 
Danh sách các ngày nghỉ theo từng năm 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 104
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 NN_MA int Mã ngày nghỉ 
2 NN_TUNGAY datetime Ngày bắt đầu kỳ nghỉ 
3 NN_DENNGAY datetime Ngày kết thúc kỳ nghỉ 
4 NN_GHICHU nvarchar(255) Ghi chú (lý do nghỉ…) 
17. NHAN_VIEN 
Hồ sơ nhân viên 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 NV_MA nvarchar(20) Mã nhân viên 
2 NV_TEN nvarchar(255) Tên nhân viên 
3 NV_NGAYSINH datetime Ngaỳ sinh 
4 NV_DIACHI nvarchar(255) Địa chỉ 
5 NV_EMAIL nvarchar(255) email 
6 NV_DIENTHOAI nvarchar(20) Điện thoại 
7 NV_PHAI int Phái 
8 NV_TINHTRANG int Tình trạng nhân viên (sẵn 
sàng hay không) 
9 TD_MA int Mã trình độ của nhân viên, 
tham chiếu đến bảng 
TRINH_DO 
18. PHAN_CONG 
Thông tin phân công 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 PC_MA int Mã phân công 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 105
2 KHCT_MA int Mã kế hoạch chi tiết 
3 CVCT_MA int Mã công việc chi tiết, cùng 
với KHCT_MA tham chiếu 
đến bảng 
CONG_VIEC_CHI_TIET 
4 NV_MA nvarchar(20) Mã nhân viên, tham chiếu 
đến bảng NHAN_VIEN 
5 VT_MA int Mã vai trò, tham chiếu đến 
bảng VAI_TRO, thể hiện 
vai trò của nhân viên trong 
công việc 
6 PC_NGAYBD datetime Ngaỳ bắt đầu dự kiến 
7 PC_NGAYKT datetime Ngày kết thúc dự kiến 
8 PC_THOILUONGDK decimal Thời lượng dự kiến 
9 PC_CHIPHIDK decimal Chi phí dự kiến 
10 PC_NGAYBDTT datetime Ngày bắt đầu thực tế 
11 PC_NGAYKTTT datetime Ngày kết thúc thực tế 
12 PC_THOILUONGTT decimal Thời lượng thực tế 
13 PC_CHIPHITT decimal Chi phí thực tế 
14 PC_TYLEHOANTAT decimal Tỷ lệ hoàn tất 
15 PC_DONVI decimal Tỷ lệ thời lượng mà nhân 
viên tham gia vào công việc 
so với tổng thời lượng mà 
nhân viên này làm việc, tính 
trong một đơn vị thời gian 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 106
16 PC_PRJRESID int ID của nhân viên, theo kế 
hoạch lưu trong Project 
Server 
17 PC_CHIPHIDAXOA decimal Chi phí thực tế cho phần 
việc đã bị xóa 
18 PC_TINHTRANG int Tình trạng, cho biết phân 
công có bị đánh dấu xóa hay 
không 
19. PHAN_HE 
Các phân hệ của một hợp đồng 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 PH_MA int Mã phân hệ 
2 HD_SO nvarchar(20) Số hợp đồng, tham chiếu 
đến bảng HOP_DONG 
3 PH_TEN nvarchar(255) Tên phân hệ 
4 PH_GIATRI decimal Giá trị phân hệ 
5 PH_GHICHU nvarchar(255) Ghi chú 
20. PHU_LUC_HOP_DONG 
Thông tin về văn bản phụ lục hợp đồng 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 PLHD_SO nvarchar(20) Số (mã văn 
bản) 
2 HD_SO nvarchar(20) Số hợp đồng, 
tham chiếu đến 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 107
bảng 
HOP_DONG 
3 PLHD_NGAYLAP datetime Ngày lập 
4 PLHD_NOILUUTRU nvarchar(255) Nơi lưu trữ 
5 PLHD_GHICHU nvarchar(255) Ghi chú 
21. QUAN_LY 
Quan hệ Quản lý giữa một công việc tổng thể với một nhân viên 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 CVTT_MA int Mã công việc tổng thể 
2 KHTT_MA int Mã kế hoạch tổng thể, cùng với 
CVTT_MA tham chiếu đến bảng 
CONG_VIEC_TONG_THE 
3 NV_MA nvarchar(20) Mã nhân viên, tham chiếu đến 
bảng NHAN_VIEN 
22. sys_KEY_VALUES 
Chứa các giá trị dùng trong việc tạo mã tự động cho các bảng khác 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 KeyName nvarchar(20) Tên mã 
2 CurKeyValue int Giá trị cao nhất của hiện tại của mã 
3 KeyPrefix nvarchar(5) chuỗi ký tự bắt đầu mã 
4 NumOfChars int Số ký tự qui định của mã 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 108
23. THAM_SO 
Bảng chứa các giá trị tham số 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 TS_MA int Mã tham số 
2 TS_GIATRI decimal Giá trị tham số 
3 TS_DIENGIAI decimal ý nghĩa tham số 
24. TRINH_DO 
Danh mục trình độ 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 TD_MA int Mã trình độ 
2 TD_TEN nvarchar(255) Tên trình độ 
3 TD_BAC int Bậc 
4 VT_MA int Mã vai trò tương ứng với trình độ 
này, tham chiếu đến bảng 
VAI_TRO. (chỉ có ý nghĩa tham 
khảo, không phát sinh ràng buộc) 
5 TD_MUCLUONG decimal Mức lương tương ứng với trình độ
25. TTCAPNHAT_CONGVIEC 
Chứa thông tin cũ của công việc khi công việc được cập nhật tiến độ 
STT Tên thuộc tính Kiểu DL Ý nghĩa 
1 TTCNCV_STT int Số thứ tự của lần cập nhật 
2 KHCT_MA int Mã kế hoạch chi tiết, cùng với 
CVCT_MA tham chiếu đến bảng 
CONG_VIEC_CHI_TIET 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 109
3 CVCT_MA int Mã công việc chi tiết 
4 TTCNCV_THOIDIEM datetime Thời điểm cập nhật 
5 TTCNCV_THOILUONGTT decimal Thời lượng thực tế ( trước khi cập 
nhật) 
6 TTCNCV_CHIPHITT decimal Chi phí thực tế (trước khi cập 
nhật) 
7 TTCNCV_TYLEHOANTAT decimal Tỷ lệ hoàn tất (trước khi cập nhật)
8 TTCNCV_NGAYBD datetime Ngày bắt đầu ( trước khi cập 
nhật) 
9 TTCNCV_NGAYKT datetime Ngaỳ kết thúc ( trước khi cập 
nhật) 
10 TTCNCV_THOILUONG decimal Thời lượng dự kiến ( trước khi 
cập nhật) 
11 TTCNCV_CHIPHI decimal Chi phí dự kiến ( trước khi cập 
nhật) 
26. TTCAPNHAT_PHANCONG 
Chứa thông tin cũ của phân công khi phân công được cập nhật tiến độ 
STT Tên thuộc tính Kiểu DL Ý nghĩa 
1 TTCNPC_STT int Số thứ tự của lần cập nhật 
2 KHCT_MA int Mã kế hoạch chi tiết, cùng với 
PC_MA tham chiếu đến bảng 
PHAN_CONG 
3 PC_MA int Mã phân công 
4 TTCNPC_THOIDIEM datetime Thời điểm cập nhật 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 110
5 TTCNPC_THOILUONGTT decimal Thời lượng thực tế (trước khi cập 
nhật) 
6 TTCNPC_CHIPHITT decimal Chi phí thực tế (trước khi cập nhật) 
7 TTCNPC_TYLEHOANTAT decimal Tỷ lệ hoàn tất (trước khi cập nhật) 
8 TTCNPC_NGAYBD datetime Ngày bắt đầu ( trước khi cập nhật) 
9 TTCNPC_NGAYKT datetime Ngaỳ kết thúc ( trước khi cập nhật) 
10 TTCNPC_THOILUONG decimal Thời lượng dự kiến ( trước khi cập 
nhật) 
11 TTCNPC_CHIPHI decimal Chi phí dự kiến ( trước khi cập nhật) 
27. VAI_TRO 
Danh mục các vai trò 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 VT_MA int Mã vai trò 
2 VT_TEN nvarchar(255) Tên vai trò 
28. VAN_BAN 
Thông tin về các văn bản phát sinh trong quá trình phát triển dự án (ngoài hợp 
đồng, phụ lục hợp đồng và biên bản thanh lý hợp đồng) 
STT Tên thuộc tính Kiểu dữ liệu Ý nghĩa 
1 VB_MA nvarchar(15) mã văn bản 
2 LVB_MA int Mã loại văn bản, tham chiếu đến 
bảng LOAI_VAN_BAN 
3 DA_MA nvarchar(15) Mã dự án, tham chiếu đến bảng 
DU_AN 
KH
OA
 C
NT
T –
 Đ
H 
KH
TN
Phụ lục 
 111
4 GD_MA int Mã giai đoạn, tham chiếu đến bảng 
GIAI_DOAN 
5 VB_TEN nvarchar(255) Tên văn bản 
6 VB_NGAYPHATSINH datetime Ngày lập 
7 VB_TTLUUTRU nvarchar(255) Thông tin về nơi lưu trữ văn bản 
8 VB_GHICHU nvarchar(255) Ghi chú 
            Các file đính kèm theo tài liệu này:
CNTT1015.pdf