Tải bản đầy đủ (.doc) (117 trang)

xây dựng các mô phỏng cho các kỹ thuật khác ngoài critical path - so sánh tập dữ liệu đầu ra của các kỹ thuật trên cùng tập dữ liệu đầu vào

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (823.59 KB, 117 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
─────── * ───────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
XÂY DỰNG CÔNG CỤ HỖ TRỢ LẬP KẾ
HOẠCH DỰ ÁN
Sinh viên thực hiện : Nguyễn Sơn Hải
Lớp CNPM - K45
Giáo viên hướng dẫn: ThS Thạc Bình Cường
Hà nội 5-2005
Lời cảm ơn
Em xin chân thành cảm ơn:
Thầy giáo hướng dẫn đề tài – Thạc sĩ Thạc Bình Cường, Giảng
viên Bộ môn Công nghệ Phần mềm, Khoa Công nghệ Thông
tin, Trường Đại học Bách Khoa Hà Nội – đã hết lòng giúp đỡ,
hướng dẫn, chỉ dạy tận tình để đồ án tốt nghiệp được hoàn
thành.
Các Thầy, Cô đã tận tâm giảng dạy trong suốt thời gian em
học tập tại khoa
Gia đình, bạn học những người đã động viên, giúp đỡ, tạo điều
kiện cho em trong quá trình nghiên cứu và thực hiện đồ án.
Nguyễn Sơn Hải
Sinh viên lớp Công nghệ phần mềm
Khoa Công nghệ Thông tin
Đại học Bách Khoa Hà Nội (Tháng 5-2005)
Lời cảm ơn
Em xin chân thành cảm ơn:
Thầy giáo hướng dẫn đề tài – Thạc sĩ Thạc Bình Cường, Giảng
viên Bộ môn Công nghệ Phần mềm, Khoa Công nghệ Thông


tin, Trường Đại học Bách Khoa Hà Nội – đã hết lòng giúp đỡ,
hướng dẫn, chỉ dạy tận tình để đồ án tốt nghiệp được hoàn
thành.
Các Thầy, Cô đã tận tâm giảng dạy trong suốt thời gian em
học tập tại khoa
Gia đình, bạn học những người đã động viên, giúp đỡ, tạo điều
kiện cho em trong quá trình nghiên cứu và thực hiện đồ án.
Nguyễn Sơn Hải
Sinh viên lớp Công nghệ phần mềm
Khoa Công nghệ Thông tin
Đại học Bách Khoa Hà Nội (Tháng 5-2005)
Nhận xét của giáo viên
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………

………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
Mục lục
Mở đầu 6
PHẦN I 8
CƠ SỞ LÝ THUYẾT 8
Chương I Kỹ thuật Critical Path 9
Chương II Kỹ thuật Pert 26
Chương III Kỹ thuật Critical Chain 32
PHẦN II 41
PHÂN TÍCH HỆ THỐNG 41
Chương IV Phân tích hệ thống về mặt xử lý 41
Hình 30: Biểu đồ luồng dữ liệu mức đỉnh 44

Giải thích: Biểu đồ luồng dữ liệu này tương đối đơn giản. Người quản lý dự án yêu cầu
lập báo cáo vào khoảng thời gian nào đó. Các chức năng báo cáo lấy thông tin tư các kho,
kết xuất và gửi báo cáo đến người quản lý dự án 47
Chương V Phân tích hệ thống về mặt dữ liệu 49
2)MaTN  TenTN,LoaiTN,MaNTN 63
3)MaNTN  NhomTN,MaLich 63
2) MaTN  TenTN, LoaiTN, MaNTN, NhomTN, MaLich, TenLich 66
Phụ thuộc hàm: MaNTN  NhomTN, MaLich. Quan hệ này có khóa là MaNTN,đặt tên
là NhomTaiNguyen 66
Phụ thuộc hàm: MaLich  TenLich. Quan hệ này có khóa là MaLich, đặt tên là
LoaiLich 67
-Đối với phụ thuộc hàm 6. Đây chưa phải là một quan hệ chuẩn 3NF vì có phụ thuộc bắc
cầu: 67
MaLich, Thu  NgayNghi; MaTN, Thu  MaLich, Thu. Do đó ta thay thế bằng phụ
thuộc hàm MaLich, Thu NgayNghi, đây là một quan hệ chuẩn 3NF có khóa là MaLich
và ta đặt tên là NgayNghi 67
-Đối với phụ thuộc hàm 7). Đây chưa phải là một quan hệ chuẩn 3NF vì có phụ thuộc bắc
cầu: 67
MaLich, Ngay  NgayLe ; MaTN, Ngay  MaLich, Ngay. Do đó ta thay thế bằng phụ
thuộc hàm MaLich, Ngay NgayLe, đây là một quan hệ chuẩn 3NF có khóa là MaLich
và ta đặt tên là NgayLe 67
Tóm lại hệ thống được xây dựng trên một mô hình gồm 11 quan hệ 67
68
Hình 36: Mô hình quan hệ 68
THIẾT KẾ HỆ THỐNG 68
Chương VI: Thiết kế tổng thể 69
Chương VII Thiết kế cơ sở dữ liệu 71
*Mục đích của việc thiết kế dữ liệu: Cơ sở dữ liệu là nơi lưu giữ lâu dài các dữ liệu của
hệ thống ở bộ nhớ ngoài. Các dữ liệu này phải được tổ chức theo hai tiêu chí: 71
-Hợp lý, nghĩa là đủ dùng không dư thừa 71

-Truy cập thuận lợi, nghĩa là tìm kiếm, cập nhật, bổ sung và loại bỏ các thông tin sao cho
nhanh chóng và tiện dùng 71
Ở giai đoạn phân tích hệ thống ta đã nghiên cứu dữ liệu theo tiêu chí hợp lý (đủ và
không thừa), kết quả là đã thành lập được một lược đồ dữ liệu theo mô hình thực thể liên
kết và mô hình quan hệ. Hai biểu đồ đó thường được gọi là lược đồ khái niệm về dữ liệu,
vì nó chỉ dừng lại ở yêu cầu đủ và không thừa, mà bỏ qua yêu cầu nhanh và tiện 71
Sang giai đoạn thiết kế hệ thống ta phải biến đổi lược đồ khái niệm nói trên thành lược
đồ vật lý, tức là một cấu trúc lưu trữ thật sự của dữ liệu trong bộ nhớ ngoài. Sau đây là
các bước để xây dựng lược đồ vật lý 71
71
Chương X Thiết kế thuật toán cho 82
chức năng tự động lập lịch dự án 82
PHẦN IV 90
LẬP TRÌNH VÀ 90
HIỆN THỰC HỆ THỐNG 90
Chương XI 90
Thực thi thuật toán lập lịch tự động cho dự án 90
Tài liệu tham khảo 115
1.Giáo trình “Phân tích và thiết kế hệ thống thông tin” – Nguyễn Văn Ba – Nhà xuất bản
Đại học quốc gia Hà Nội 115
2.Giáo trình “Phân tích và thiết kế hệ thống thông tin” – Thạc Bình Cường 115
3.Lập trình ứng dụng SQL Server 2000 – Phạm Hữu Khang (chủ biên) –Nhà xuất bản
giáo dục 115
Mở đầu
Ngày nay khi xã hội đã rất phát triển, hầu hết các lĩnh vực trong cuộc sống
đều có những bước tiến cả về quy mô lẫn trình độ chuyên sâu. Con người phải đối
mặt với những công việc phức tạp và đồ sộ, quy mô các dự án ngày càng được mở
rộng. Do đó công việc quản lý điều hành trở nên khó khăn hơn bao giờ hết, cũng
vì thế mà quản lý dự án đóng một vai trò to lớn trong sự thành công của dự án.
Trong quản lý dự án thì chức năng chủ đạo là lập kế hoạch và theo dõi thực hiện

kế hoạch. Khi dự án có một kế hoạch tốt, hợp lý sẽ là nền tảng vững chắc cho việc
thực thi và điều khiển dự án. Tuy nhiên dự án càng lớn, càng phức tạp thì công
việc này càng trở nên khó khăn gấp bội, bởi nguồn lực của tổ chức thực hiện dự án
là có hạn, hơn nữa họ còn phải song song tiến hành nhiều dự án khác nhau.
Một kế hoạch dự án là xương sống của dự án để dự án luôn được kiểm soát
điều khiển hợp lý, các phương pháp phát triển kế hoạch có một tác động to lớn tới
phương pháp quản lý dự án bởi dự án được quản lý dựa trên ý đồ của kế hoạch đó.
Muốn quản lý được các dự án phức tạp thì không chỉ dựa trên kinh nghiệm mà cần
có những kỹ thuật và phương pháp luận nhất định về quản lý dự án để công việc
quản lý có chủ định và mục đích hơn. Các kỹ thuật phát triển kế hoạch mặc dù đã
được hình thành và phát triển trong một thời gian dài, nhưng cũng có kỹ thuật mới
được đưa ra gần đây chính vì thế có rất nhiều tranh luận nổ ra về việc đánh giá
xem kỹ thuật nào là tốt nhất, tuy nhiên vẫn chưa ngả ngũ. Khi vấn đề này chưa thể
có câu trả lời chính xác thì các tổ chức vẫn áp dụng theo cách riêng của mình mà
họ cho là phù hợp.
Từ những hoàn cảnh khách quan đó em đã quyết định xây dựng đề tài. Đề
tài không có tham vọng chỉ ra được kỹ thuật nào có hiệu quả nhất, tuy nhiên đề
xuất một hướng đi là cầu nối cho vấn đề nói trên và hợp lý trong thời điểm hiện tại
– khi chưa có một lý thuyết tin cậy nào giải quyết được vấn đề đó. Đề tài trình bày
song song các kỹ thuật phát triển kế hoạch, đưa ra mô hình thực thi cho những kỹ
thuật đó để thấy rõ điểm khác biệt trong việc vận dụng chúng. Từ đó cùng với một
dự án các kế hoạch, lịch biểu khác nhau sẽ được tạo ra với các kỹ thuật khác nhau,
mọi người có thể nhận ra sự hữu ích của từng kỹ thuật trong từng trường hợp cụ
thể và tính đúng đắn của kỹ thuật được ghi nhận.
Tóm lại bố cục của đề tài bao gồm các phần sau:
Phần I: Trình bày các phương pháp quản lý dự án trên khía cạnh lập kế hoạch dự
án.
Phần II: Phân tích thiết kế hệ thống tự động hóa lập kế hoạch dự án.
Phần III: Thiết kế hệ thống tự động hóa lập kế hoạch dự án.
Phần IV: Cài đặt hệ thống.

PHẦN I
CƠ SỞ LÝ THUYẾT
Xương sống của quản lý dự án là khả năng lập kế hoạch, lập lịch và điều
khiển. Lập kế hoạch là điểm then chốt của việc điều hành. Nó chỉ ra tập các công
việc cần thực hiện và thứ tự thực hiện chúng. Vấn đề là phải xây dựng một kế
hoạch có thể cân bằng các tài nguyên hiện có để cung cấp các điều kiện tối ưu cho
tất cả những chủ dự án. Quy tắc tổ chức dự án có liên quan mật thiết với vấn đề
quản lý nhân sự, do đó cần tổ chức nhân lực thành từng nhóm và phân chia trách
nhiệm cho các nhóm nhằm đạt được hiệu quả cao, xây dựng lịch biểu làm việc cho
các tài nguyên tham gia dự án một cách hợp lý (tùy theo mục tiêu và tình trạng cụ
thể của tổ chức) dựa trên kế hoạch đã xây dựng.
Cũng cần phải thấy rõ rằng lập lịch và lập kế hoạch là hai khái niệm phân
biệt. Mặc dù hai lĩnh vực này có những nét tương đồng, chúng đều dựa trên một
tập các hành động có ràng buộc được thực hiện nhằm đạt được mục đích đề ra, tuy
nhiên trong khi việc lập lịch cung cấp thông tin về thời gian các tài nguyên cụ thể
thực hiện nhiệm vụ thì lập kế hoạch tập trung chủ yếu vào việc chỉ ra thứ tự thực
hiện các hành động đó. Tuy nhiên trong khuôn khổ đề tài này, hai lĩnh vực cụ thể
lập kế hoạch và lập lịch được xem xét trong một tiến trình xuyên suốt là lập kế
hoạch dự án, bởi việc lập lịch dự án là một tiến trình đi từ đại thể đến chi tiết, mà
mức chi tiết ở đây chính là việc sinh ra lịch biểu.
Quá trình quản lý dự án là một quá trình tiềm ẩn nhiều rủi ro và khó lường,
điều này sẽ tăng lên nhanh chóng đối với các dự án lớn và phức tạp. Có hàng loạt
các dự án đã xác định được tập nhiệm vụ phải thực hiện, nhưng một số dự án vẫn
thường bị trễ hoặc vượt quá chi phí, các dự án khác thì không đạt được mục tiêu
ban đầu đề ra. Chính vì thế các phương pháp quản lý dự án đã ra đời nhằm đáp
ứng các yêu cầu đó. Các phương pháp quản lý dự án này hướng chủ yếu đến vấn
đề quản lý kế hoạch dự án. Như vậy các kỹ thuật lập kế hoạch phục vụ việc quản
lý dự án, còn các phương pháp quản lý dự án coi việc quản lý kế hoạch là nòng
cốt. Có hai kỹ thuật lập kế hoạch chính để quản lý các dự án lớn và phức tạp, đó
là: CPM và PERT. CPM và PERT là đơn giản và dễ dàng thực hiện với các dự án

đơn và nhỏ. Tuy nhiên nó sẽ trở nên khó khăn hơn để quản lý trong một môi
trường nhiều dự án. Vấn đề tổ chức nhiều dự án không phải là mới, các nghiên
cứu về vấn đề này đã được thực hiện từ những năm 1970, nhưng chỉ tới gần đây sự
quan tâm mới được tăng lên một cách rõ rệt.
Vào năm 1997, Goldratt đã áp dụng “Lý thuyết ràng buộc” để quản lý dự
án của mình.Ông đã trình bày việc giải quyết vấn đề dự án bị trễ và vượt quá ngân
sách trong đó có xét đến giải pháp cho vấn đề lập kế hoạch đa dự án.Ông đặt tên
kỹ thuật đó là Critical Chain. Critical Chain có thể được xem là kỹ thuật lập lịch
dự án quan trọng thứ ba. Một số người hoan nghênh nó như là một cải tiến trong
việc quản lý dự án so với năm mươi năm trước đó, trong khi những người khác thì
cho rằng nó chỉ đơn thuần là một tập các ý tưởng đáng tin chưa được chứng minh.
Chi tiết từng kỹ thuật được trình bày dưới đây trước khi đi vào xây dựng mô hình
thực thi cho các kỹ thuật.
Chương I Kỹ thuật Critical Path
Lập kế hoạch nhờ kỹ thuật Critical Path được phát triển vào những năm
1950 bởi DuPont. Kỹ thuật này khá đơn giản. Mục đích của kỹ thuật là chỉ ra được
tập các nhiệm vụ quan trọng nhất có ảnh hưởng tới thời gian thực hiện dự án để
tập trung quản lý. Một dự án sẽ có rất nhiều nhiệm vụ, các nhiệm vụ này có thể
thực hiện song song hay tuần tự, tuy nhiên vẫn có một tập nhiệm vụ xác định chỉ
ra được thời gian thực hiện của dự án, đó là Critical Path. Vậy ta có thể định nghĩa
Critical Path như sau:
Định nghĩa: Critical Path là chuỗi dài nhất các nhiệm vụ phụ thuộc nhau về mặt
thời gian xác định toàn bộ chiều dài dự án.
Bởi vì Critical Path xác định toàn bộ chiều dài của dự án, nên nếu dãy
nhiệm vụ này có chiều dài ngắn hơn, thời gian thực hiện dự án cũng ngắn hơn.
Ngược lại nếu có sự chậm trễ trong việc thực hiện nhiệm vụ thuộc Critical Path sẽ
dẫn đến dự án kéo dài hơn dự định. Chính vì lý do đó mà việc nhận ra và quản lý
Critical Path là một điều hết sức quan trọng trong quản lý dự án. Nhờ sự quản lý
này, người quản lý dự án có thể nhận ra độ trễ của dự án thông qua độ trễ của các
nhiệm vụ thuộc Critical Path. Từ đó họ sẽ nhận ra các nhiệm vụ có mức ưu tiên

cao nhất để tập trung quản lý.
Kỹ thuật Critical Path hướng việc quản lý dự án vào các nhiệm vụ thuộc
Critical Path, và dựa vào phương pháp luận quản lý dự án này để phát triển một kế
hoạch chi tiết phù hợp với ý đồ quản lý. Sau đây là thuật toán chỉ ra các bước tổng
quát nhằm quản lý dự án theo kỹ thuật này.
I-1- Thuật toán CPM (Critical Path Method)
Thuật toán CPM gồm 7 bước:
1. Chia nhỏ dự án thành các nhiệm vụ: Lấy toàn bộ dự án và chia nhỏ thành các
nhiệm vụ riêng biệt. Nếu là dự án lớn, việc chia nhỏ này có thể sẽ dẫn đến khó
quản lý. Vì vậy cần nhóm các nhiệm vụ có liên quan với nhau, sau đó khai triển ra,
hay nói cách khác là phân cấp các nhiệm vụ thành nhiều mức. Đây chính là quá
trình tạo ra cấu trúc phân cấp công việc (Work Breakdown Structure – WBS) của
dự án. Bước này được trình bày chi tiết trong phần I-2.
2. Xác định sự phụ thuộc giữa các nhiệm vụ: Đối với mỗi nhiệm vụ, cần xác định
danh sách các nhiệm vụ tiền nhiệm trực tiếp (nhiệm vụ tiền nhiệm là nhiệm vụ cần
được hoàn thành trước khi một nhiệm vụ khác có thể được bắt đầu). Bước này
được trình bày chi tiết trong phần I-3.
3. Vẽ biểu đồ mạng: Dùng các thông tin ở trên, vẽ biểu đồ mạng dự án.(Mặc dù
việc vẽ một cách đầy đủ là có ích,nhưng không phải tất cả các nhiệm vụ là quan
trọng và hầu hết việc vẽ tất cả là không thể với các dự án lớn). Bước này được
trình bày chi tiết trong phần I-4.
4. Ước lượng thời gian thực hiện mỗi nhiệm vụ: Tìm ra ước lượng về thời gian
thực hiện đối với mỗi nhiệm vụ, và thêm chúng vào biểu đồ mạng. Bước này được
trình bày chi tiết trong phần I-5.
5. Thực hiện việc phân tích mạng: Xác định dãy dài nhất của các nhiệm vụ phụ
thuộc lẫn nhau về mặt thời gian (Critical Path). Việc phân tích này bao gồm các
bước sẽ được nói trong phần I-6.
6. Tính toán lịch tài nguyên cho dự án: Sử dụng một trong các kỹ thuật được trình
bày trong phần I-7, xây dựng lịch biểu cho tất cả các tài nguyên tham gia dự án.
7. Quản lý và cập nhật biểu đồ CPM: Song song với tiến trình dự án, cần cập nhật

và tính toán lại mạng CPM. Dựa vào đó để quản lý dự án.
I-2-Tạo ra cấu trúc phân cấp công việc (WBS)
Định nghĩa: Một cấu trúc phân cấp công việc (WBS) là một công cụ và kỹ thuật
được dùng để phân tích khối lượng công việc dự án thành các thành phần
hay các gói công việc nhỏ hơn và có thể quản lý.
Người quản lý dự án tạo ra WBS với các thành viên đội dự án. WBS có
nhiều lợi ích. Trước tiên, WBS giúp nhận dạng các đầu ra tạm thời chính trong
suốt quá trình thực hiện dự án. Tạo ra một cái nhìn tổng quan về dự án từ các
thành phần nhỏ có thể quản lý và cuối cùng giúp mọi người có một hiểu biết
chung về các đầu ra của dự án.
Một cấu trúc phân cấp công việc bao gồm hai yếu tố. Một là mức của công
việc, bao gồm có ba loại. Mức cao nhất thường được dùng là tên dự án hay nhiệm
vụ chính. Mức trung gian của công việc là các thành phần con hay các nhiệm vụ
mức cao, thường được gọi là các “nhiệm vụ tóm lược”. “Nhiệm vụ tóm lược”
được dùng để dồn các nhiệm vụ cùng dạng phía dưới, giúp ta phân loại các ý
tưởng. Hai ví dụ của các nhiệm vụ mức tóm lược là phòng ban của một tổ chức
hay biên giới địa lý. Cuối cùng, các gói công việc là mức thấp nhất của công việc.
Ngoài ra trong WBS mỗi công việc được đánh một mã số để nhận dạng một cách
duy nhất. Hình 1 chỉ ra ba mức của công việc và mã số nhận dạng chúng.
Hình 1: WBS ba mức
I-2-1- Các bước để tạo ra một cấu trúc phân cấp công việc:
1. Xác địng khuôn dạng được dùng để tạo ra WBS. Có thể dùng hoặc là cấu
trúc cây hay kiểu đề cương.
2. Xác định xem phân tách công việc đến mức bao nhiêu là phù hợp với dự
án.
3. Xác định xem các mức của cấu trúc phân cấp công việc sẽ được tổ chức
như thế nào.
4. Ghi nhãn mức một là tên dự án.
5. Tại mức hai, phân chia dự án thành tập các đầu ra xuất hiện trong suốt
quá trình thực hiện dự án.

6. Đối với mỗi mức sau đó, phân chia mức ở trên thành các thành phần nhỏ
hơn.
7. Tạo ra mức thấp nhất của việc phân chia. Mức này, được gọi là gói công
việc, nên cần đủ nhỏ để dễ dàng phân công công việc cho một người để hoàn
thành và cũng có thể ước lượng chi phí và thời gian cho mức này.
8. Tạo ra một mã số nhận dạng công việc duy nhất đối với mỗi thành phần
thuộc cấu trúc phân cấp công việc. Việc đánh số được bắt đầu từ bên trái WBS và
được thực hiện giống như việc đánh mục lục (ví dụ 1.0, 1.1, 1.1.2…).
I-3- Lập dãy các hành động
Lập dãy các hành động là một tiến trình lập kế hoạch quản lý thời gian
được sử dụng để xác định công việc của dự án sẽ tiến triển như thế nào. Nói cách
khác, từ một tập các nhiệm vụ tách rời, việc lập dãy sẽ tạo ra một dãy các nhiệm
vụ phụ thuộc nhau về mặt thời gian. Trong việc lập dãy các hành động ta lấy danh
sách các hành động được tạo ra bởi cấu trúc phân cấp công việc, sau đó dùng các
công cụ và kỹ thuật để quyết định chuỗi công việc nhằm tạo ra một biểu đồ mạng
ở bước tiếp theo.
I-3-1- Các thành phần của lập dãy các hành động
Để bắt đầu tiến trình lập dãy, trước hết phải hiểu về các yếu tố nhằm thực
hiện nó, bao gồm: danh sách các hành động, sự phụ thuộc, và các phương pháp lập
biểu đồ.
Danh sách các hành động
Như đã nói ở trên, danh sách các hành động chính là các công việc ở mức
thấp nhất của WBS.
Sự phụ thuộc
Thành phần đầu tiên của việc lập dãy các hành động là xác định các sự
phụ thuộc của nhiệm vụ được làm. Một sự phụ thuộc được miêu tả giữa hai nhiệm
vụ. Có ba loại phụ thuộc như sau:
o Các phụ thuộc ủy thác: Là phụ thuộc của một công việc có tính gắn liền với
các công việc khác. Chẳng hạn, ta không thể chạy thử ô tô để kiểm tra lốp
trước khi chiếc lốp đó được sản xuất xong.

o Các phụ thuộc tự do: Được tạo bởi đội dự án. Trên một chiếc lốp mới tạo ra, ta
muốn tạo ra một rãnh rộng
1
/
2
-inch. Ta cần tạo ra một khuôn mới. Đây chính là
một phụ thuộc tự do.
o Các phụ thuộc bên ngoài: Đến từ bên ngoài dự án.
Các phương pháp lập biểu đồ
Có hai thành phần trong biểu đồ CPM:
1. Các nút – được biểu diễn bởi vòng tròn hoặc hình vuông.
2. Các mũi tên.
Có hai phương pháp khác nhau để biểu diễn sự phụ thuộc trong một tập
nhiệm vụ, đó là “Hành động đặt trên mũi tên” (Activity On Arrow - AOA) và
“Hành động đặt trên nút” (Activity On Node - AON).
AOA biểu diễn các hành động giữa các nút và nằm trên mũi tên.
Hình 2: Một ví dụ đơn giản của biểu đồ theo phương pháp AOA
AON biểu diễn các nhiệm vụ trên mỗi nút. Sự phụ thuộc giữa hai hay nhiều
nhiệm vụ được biểu diễn thông qua mũi tên nối giữa hai nút có các hành động. Đối
với đề tài này, ta sử dụng phương pháp AON.
Hình 3: Một ví dụ đơn giản của một biểu đồ theo phương pháp AON.
Trong hình vẽ hai nhiệm vụ có liên hệ với nhau được nối bởi một mũi tên.
Nhiệm vụ đặt ở phía đầu mũi tên là “nhiệm vụ tiền nhiệm” (predecessor). Nhiệm
vụ tiền nhiệm là nhiệm vụ phải được hoàn thành thì một nhiệm vụ khác mới được
phép bắt đầu. Nhiệm vụ đặt phía cuối mũi tên là “nhiệm vụ kế tiếp” (successor).
Nhiệm vụ kế tiếp là nhiệm vụ chỉ được phép thực thi khi các nhiệm vụ khác hoàn
thành (các nhiệm vụ tiền nhiệm của nó). Trong hình 3, nhiệm vụ C chỉ có thể bắt
đầu sau khi A kết thúc và F chỉ có thể bắt đầu khi cả C,D và E kết thúc.
Phương pháp AON sử dụng bốn dạng liên kết logic để xác định các phụ
thuộc giữa các hành động:

o Quan hệ kết thúc để bắt đầu, hành động B không thể bắt đầu cho tới khi hành
động A được hoàn thành.
Hình 4: Quan hệ kết thúc – bắt đầu
o Quan hệ bắt đầu để kết thúc, được minh họa dưới đây, hành động B không thể
kết thúc cho tới khi hành động A được bắt đầu.
Hình 5: Quan hệ bắt đầu – kết thúc
o Quan hệ kết thúc để kết thúc, được vẽ dưới đây, hành động B không thể được
hoàn thành cho tới khi hành động A được hoàn thành.
Hình 6: Quan hệ kết thúc – kết thúc
o Quan hệ bắt đầu để bắt đầu, hành động B không thể bắt đầu tới khi hành động
A bắt đầu.
Hình 7: Quan hệ bắt đầu – bắt đầu
I-4- Biểu đồ mạng
I-4-1- Khái niệm: Biểu đồ mạng là một công cụ quản lý giúp hiển thị một cách
đồ họa các nhiệm vụ, lịch biểu, và xác định tổng thời gian một dự án trước
khi hoàn thành.
I-4-2- Công thức hóa việc xây dựng một biểu đồ mạng
Sau đây là các quy tắc để xây dựng một biểu đồ mạng:
o Mạng dự án nên chỉ có một nút bắt đầu: Mặc dù theo logic là có thể để vẽ một
mạng với nhiều hơn một nút bắt đầu, nhưng điều này là không nên vì nó là
nguyên nhân của sự hỗn độn. Tất cả các hành động có thể bắt đầu từ thời điểm
bắt đầu dự án.
o Mạng dự án nên chỉ có một nút kết thúc: Nút kết thúc chỉ rõ sự hoàn thành của
dự án và một dự án chỉ nên kết thúc một lần! Mặc dù có thể vẽ một mạng với
nhiều hơn một nút kết thúc nhưng điều này cũng sẽ dẫn đến một sự hỗn độn.
o Mỗi nút có thời gian thực hiện: Một nút biểu diễn một hành động và nói chung
các hành động có một thời gian để thực hiện. Tuy nhiên có mạng không chứa
bất kỳ thời gian thực hiện nào, mạng này biểu diễn logic của dự án (biểu diễn
luồng thứ tự của các hành động).
o Các liên kết không có thời gian thực hiện: Các liên kết biểu diễn các liên hệ

giữa các hành động do đó không có thời gian thực hiện.
o Đăt các nhiệm vụ tiền nhiệm lên trước:Các nhiệm vụ tiền nhiệm của một
nhiệm vụ đặt ngay trước nhiệm vụ đó (từ trái qua phải)
o Thời gian di chuyển từ trái sang phải: Thời gian của luồng công việc trong
biểu đồ nên tăng dần từ trái sang phải để dễ theo dõi.
o Mạng không chứa vòng lặp: Một vòng lặp là một lỗi và nó không thể xuất hiện
trong biểu đồ. Việc tiến trình lặp, có thể xuất hiện trong thực tế, tuy nhiên
chúng không thể biểu diễn trực tiếp trong mạng dự án. Nếu chúng ta biết số lần
ta mong đợi để lặp một tập hợp các hành động, ta có thể vẽ một dãy các hành
động. Nếu không biết số lần lặp lại ta không thể tính toán thời gian thực hiện
của dự án trừ phi ta chấp nhận một chiến lược biến đổi như việc định nghĩa lại
dãy như một hành động đơn và ước lượng khi nào thì hoàn thành. Hình 8 biểu
diễn một tiến trình lặp.
Hình 8: Biểu đồ mạng có lặp
o Một mạng không nên chứa các nhiệm vụ lửng lơ: Một nhiệm vụ lửng lơ không
phải nhiệm vụ kết thúc nhưng nó không có nhiệm vụ nào bắt buộc phải diễn ra
sau nó cả. Do đó từ biểu đồ mạng trong hình 9 có xuất hiện nhiệm vụ lửng lơ là
“Viết user guide”, do đó ta biến đổi biểu đồ này thành biểu đồ như hình 10.
Hình 9: Một biểu đồ mạng chứa nhiệm vụ lửng lơ.
Hình 10: Biểu đồ mạng có nhiệm vụ lửng lơ đã biến đổi.
o Biểu diễn các hành động có độ trễ: Việc này ám chỉ đến hai hành động A và B
diễn ra song song tuy nhiên có một độ trễ giữa hai hành động này. Chính vì độ
trễ này mà ta không thể ghép hai nhiệm vụ này làm một.Ở đây ta biểu diễn độ
trễ bằng việc ghi thời gian trễ trên liên kết.
Hình 11: Biểu diễn độ trễ trong biểu đồ mạng.
o Trong mạng có thể có các hành động có thời gian thực hiện bằng không.
Mỗi khi biết về các thành phần của việc lập dãy các hành động, ta có thể tạo ra
một biểu đồ mạng, giống như được chỉ trong hình 12, nhằm biểu diễn sự tiến triển
của công việc trong một dự án. Ta cần tạo ra một nút bắt đầu và kết thúc để tất cả
các nút trên biểu đồ mạng được kết nối.

Hình 12: Biểu đồ mạng
I-4-3- Các bước để tạo một biểu đồ mạng bằng việc lập dãy các hành động
1. Xác định có hay không WBS cần được phân tích thành các hành động
nhỏ hơn, được gọi là một danh sách hành động. Những hành động đó nên đủ nhỏ
để có thể phân công cho một người.
2. Hiểu rõ ràng về các hành động để xác định sự phụ thuộc giữa chúng, quan
hệ của chúng là ủy thác, tự do, hay phụ thuộc ngoài?
3. Xác định phương pháp dùng để lập biểu đồ: AOA (Activity On Arrow) và
AON (Activity On Node).
4. Hiểu rõ ràng các phụ thuộc để nắm được dạng quan hệ logic giữa các
hành động.
5. Tạo ra nút bắt đầu và kết thúc.
6. Lập dãy các hành động hay nhiệm vụ có mức thấp nhất giữa các nút.
Không lập dãy cho các nhiệm vụ mức cao của cấu trúc phân cấp công việc, tức là,
các hành động mức tóm lược.
I-5- Ước lượng thời gian thực hiện nhiệm vụ
Ước lượng thời gian thực hiện nhiệm vụ là một tiến trình lập kế hoạch quản
lý thời gian giúp xác định tổng thời gian để hoàn thành nhiệm vụ. Thời gian ở đây
có ý nghĩa là bao nhiêu đơn vị thời gian (ngày, tuần, giờ…) cần để thực hiện
nhiệm vụ. Để tạo ra ước lượng thời gian thực hiện nhiệm vụ, đầu vào sẽ là cấu trúc
phân cấp công việc, danh sách các hành động và các yêu cầu tài nguyên, sau đó
xác định thời gian đã ước lượng được mong đợi đối với mỗi hành động.
I-5-1- Các kỹ thuật ước lượng thời gian thực hiện
Có một số các kỹ thuật để ước lượng thời gian thực hiện. Kỹ thuật đầu tiên
là sử dụng đánh giá chuyên gia. Trong kỹ thuật này, cần phải hỏi những người
thực hiện các nhiệm vụ để họ cung cấp các ước lượng.
Kỹ thuật thứ hai được gọi là ước lượng tương tự, còn được gọi là ước lượng
từ trên xuống (top-down). Trong kỹ thuật này, ta tìm các nhiệm vụ tương tự khác
được thực hiện trước đó và dùng thông tin lịch sử để ước lượng.
Kỹ thuật tiếp theo là ước lượng thời gian thực hiện nhiệm vụ một cách định

lượng. Nó sử dụng một đơn vị công việc nhân với năng suất của người lao động.
Ví dụ ta có thể ước lượng một dự án lát đường. Ta biết rằng một xe tải có thể lát
100 feet trong 2 giờ. Độ dài của đường là 300 feet vì thế thời gian thực hiện đối
với việc lát con đường này là 6 giờ.
Kỹ thuật cuối cùng được dùng trong việc ước lượng thời gian thực hiện là
dự trữ thời gian. Thời gian dự trữ là một đơn vị đo được thêm vào ước lượng đầu
tiên cho phép đối phó với bất kỳ rủi ro về lịch biểu nào. Đơn vị của độ đo có thể là
giờ hay phần trăm. Trong ví dụ lát đường của ta, xe tải mà ta dùng có thể có một
số vấn đề, bởi vì vậy ta thêm 2 giờ vào 6 giờ ước lượng ban đầu như là thời gian
dự trữ.
I-5-2- Tạo ra ước lượng thời gian thực hiện
Có bảy bước để tạo ra các ước lượng thời gian thực hiện nhiệm vụ
1. Xác định nếu WBS cần phân tích thành các hành động nhỏ hơn, được gọi là
danh sách hành động. Các hành động này nên đủ nhỏ để phân công cho một
người.
2. Hiểu về các yêu cầu tài nguyên đối với mỗi hành động.
3. Xác định dùng phương pháp nào tốt hơn trong: tham khảo chuyên gia, dự trữ
thời gian, hay ước lượng dựa vào định lượng đối với mỗi nhiệm vụ.
4. Xác định ước lượng thích hợp đối với mỗi nhiệm vụ.
5. Phân tích vấn đề rủi ro lịch biểu đối với mỗi nhiệm vụ.
6. Xác định dạng thời gian dự trữ nào nên dùng: đơn vị công việc hay phần trăm.
7. Thêm thời gian dự trữ vào mỗi nhiệm vụ nếu cần thiết.
I-6- Tính toán Critical Path
Như ta đã trình bày ở phần I-1, Critical Path là chuỗi dài nhất các nhiệm vụ
phụ thuộc nhau về mặt thời gian xác định toàn bộ chiều dài dự án, do đó chứa tập
các nhiệm vụ không cho phép trễ của dự án. Bởi vì nếu một nhiệm vụ nào đó của
dãy được phép trễ mà không làm ảnh hưởng đến thời gian hoàn thành dự án, thì có
nghĩa là có thể rút ngắn thời gian hoàn thành dự án bằng cách thực hiện sớm
nhiệm vụ này. Như vậy các nhiệm vụ thuộc Critical Path có độ trễ cho phép bằng
không. Độ trễ cho phép thường được gọi là thời gian thả nổi. Như vậy thời gian

thả nổi là thời gian mà ta có thể trễ so với thời điểm bắt đầu mà không gây ảnh
hưởng ngày kết thúc dự án theo kế hoạch.
Critical path là đường đi dài nhất xuyên suốt qua lịch và nó xác định ngày
phân phối cuối cùng trong dự án. Khi tạo ra một biểu đồ mạng,ta cũng tạo ra một
critical path cho dự án. Việc quản lý critical path là rất quan trọng, bởi vì nếu một
nhiệm vụ thuộc critical path bị trễ, ngày kết thúc dự án sẽ không được đảm bảo.
CPM tính toán một critical path đơn đối với dự án. Để thực hiện tính toán này cần
phải thực hiện một quá trình tiến (xuất phát từ điểm bắt đầu dự án), quá trình lùi
(xuất phát từ điểm kết thúc dự án), và tính thời gian thả nổi trên toàn thể biểu đồ
mạng. Sau đây là cách tính critical path. Biểu đồ mạng trong hình 13 được dùng
để minh họa.
Hình 13: Biểu đồ mạngsử dụng để tính Critical Path
I-6-2- Tính một quá trình tiến
Để tính critical path đối với biểu đồ mạng, trước tiên ta phải tính một quá trình
tiến. Bắt đầu tại điểm sớm nhất của biểu đồ mạng, một quá trình tiến tính
thời điểm bắt đầu và kết thúc sớm nhất đối với mỗi nhiệm vụ. Sau đây là
các bước tính toán một quá trình tiến:
o Bắt đầu tại điểm sớm nhất của biểu đồ mạng từ hình 13, hành động A. Thời
gian sớm nhất hành động A có thể bắt đầu là ngày 0. Vì thế thời điểm bắt đầu
sớm là ngày 0. Cộng thời gian thực hiện với thời điểm bắt đầu sớm nhất, suy ra
thời điểm kết thúc sớm là 3 (0 + 3 = 3).
o Tiếp tục làm như vậy thông qua biểu đồ mạng và tính toán thời điểm bắt đầu
và kết thúc sớm đối với mỗi nhiệm vụ.
o Khi đến hành động D, dùng giá trị lớn hơn trong hai thời điểm kết thúc sớm
của các hành động B và C làm thời điểm bắt đầu sớm của hành động D.
Bảng 1 miêu tả thời điểm bắt đầu sớm nhất và thời điểm kết thúc sớm nhất của các
hành động trên biểu đồ mạng nói trên.
Bảng 1: Thời điểm bắt đầu và kết thúc sớm nhất đối với mỗi hành động
Hành động Điểm bắt đầu sớm nhất Điểm kết thúc sớm nhất
A 0 3

B 3 8
C 3 13
D 13 20
I-6-3- Tính một quá trình lùi
Tính quá trình lùi bắt đầu từ điểm muộn nhất của biểu đồ mạng; một quá trình lùi
xác định thời điểm bắt đầu và kết thúc muộn đối với mỗi nhiệm vụ. Sau
đây là các bước để tính một quá trình lùi:
o Bắt đầu tại điểm muộn nhất của biểu đồ mạng, quan sát hành động cuối cùng,
ở đây là hành động D. Thời gian muộn nhất có thể kết thúc là ngày 20. Ngày
20 là thời điểm kết thúc sớm nhất từ quá trình tiến. Vì thế thời gian kết thúc
muộn là 20. Trừ giá trị này cho thời gian thực hiện ta được thời điểm bắt đầu
muộn là 13 (20 – 7 = 13).
o Tiếp tục làm như thế qua biểu đồ mạng và tính toán thời điểm bắt đầu và kết
thúc muộn của mỗi nhiệm vụ.
o Khi đến hành động A, dùng giá trị nhỏ nhất giữa các thời điểm bắt đầu muộn
của các hành động B và C để suy ra thời điểm kết thúc muộn của hành động A.
Bảng 2 minh họa thời điểm bắt đầu và kết thúc muộn của các hành động.
Bảng 2: Thời điểm bắt đầu và kết thúc muộn của các hành động
Hành động Thời điểm bắt đầu muộn Thời điểm kết thúc muộn
D 13 20
C 3 13
B 8 13
A 0 3
I-6-4- Tính thời gian thả nổi
Cuối cùng, ta có thể tính toán thời gian thả nổi bằng việc trừ thời điểm bắt đầu
muộn cho thời điểm bắt đầu sớm hay thời điểm kết thúc muộn cho thời
điểm kết thúc sớm.
o Bắt đầu tại điểm sớm nhất của biểu đồ mạng, xem hành động A. Thời điểm bắt
đầu muộn là không và thời điểm bắt đầu sớm là không vì thế thời gian thả nổi
là 0 – 0 = 0.

o Tiếp tục tính toán qua biểu đồ mạng và tính thời gian thả nổi đối với mỗi
nhiệm vụ.
Bảng 3 miêu tả thời gian thả nổi đối với mỗi hành động của biểu đồ mạng.
Bảng 3: Thời gian thả nổi đối với mỗi hành động
Hành động Thời gian thả nổi
A 0
B 5
C 0
D 0
I-6-5- Dùng phương pháp Critical Path
Từ biểu đồ mạng tính được quá trình lùi, quá trình tiến, và thời gian thả nổi, có thể
xác định critical path của dự án. Sau đây là các bước để tính critical path:
o Xây dựng biểu đồ mạng từ dự án. Thực hiện một quá trình tiến. Bắt đầu tại
điểm sớm nhất, ngày 0, xác định thời điểm bắt đầu và kết thúc sớm đối với mỗi
nhiệm vụ.
o Thực hiện một quá trình lùi. Bắt đầu tại điểm muộn nhất, xác định thời điểm
bắt đầu và kết thúc muộn đối với mỗi nhiệm vụ.
o Trừ thời điểm bắt đầu muộn cho thời điểm bắt đầu sớm để xác định thời gian
thả nổi.
o Xác định nhiệm vụ nào có thời gian thả nổi bằng không.
Critical path của biểu đồ mạng ở hình trên là tập các hành động A, C, và D, bởi vì
các nhiệm vụ thuộc critical path có thời gian thả nổi bằng không. Hình 14
biểu diễn critical path là đường in nét đậm.
Hình 14: Critical path
I-7- Lập lịch tài nguyên
Vấn đề của lập lịch tài nguyên không được xem xét một cách rõ ràng trong
phân tích mạng. Tuy nhiên vấn đề ràng buộc tài nguyên thường xuyên xuất hiện.
Phần thứ hai của kỹ thuật lập lịch dự án là lập lịch tài nguyên. Khi làm việc với lập
lịch tài nguyên, có hai dạng ràng buộc là: ràng buộc tài nguyên và ràng buộc thời
gian. Trong việc lập lịch có ràng buộc về thời gian, cần thiết lập một thời hạn. Vấn

đề được quan tâm là việc điều khiển tài nguyên lúc nhiều lúc ít sao cho các nhiệm
vụ thỏa mãn được các ràng buộc về các thời hạn đã quy định – việc này còn được
gọi là “làm nhẵn”. Việc lập lịch dựa trên ràng buộc về tài nguyên thì ngược lại.
Các nhiệm vụ được phân mức để nó không vượt quá mức của tài nguyên – việc
này được gọi là “phân mức tài nguyên”. Chú ý là trong loại ràng buộc này ngày kỳ
hạn của dự án phải được tháo bỏ.
Trong hình 16 là lịch tài nguyên ban đầu, hình 17 là lịch được phân mức và hình
18 là lịch đã làm nhẵn.
Hình 16 Lịch tài nguyên ban đầu
Hình 17 Lịch được phân mức
Hình 18 Lịch được làm nhẵn
I-7-2- Các kỹ thuật lập lịch tài nguyên:
Khi các mục tiêu được thiết lập, có 4 kỹ thuật có thể áp dụng:
1. Kết tập: Đây là kỹ thuật so sánh cơ bản. Đầu tiên số các tài nguyên được yêu cầu
mỗi ngày được tính tổng khi tất cả các nhiệm vụ được thiết lập để bắt đầu vào thời
điểm bắt đầu sớm nhất của chúng. Sau đó, tiến trình này được lặp lại với nhiệm vụ
được thiết lập để bắt đầu tại thời điểm bắt đầu muộn nhất của chúng. So sánh giữa
hai giải pháp và chọn cách phù hợp nhất. Tiêu chuẩn để xác định độ phù hợp được
xác định bởi người lập lịch.
2. Tích lũy: Kỹ thuật này được thực hiện trên lịch được tạo ra từ kỹ thuật một. Nó
cung cấp một tổng lũy tích của các tài nguyên được đòi hỏi của toàn bộ dự án qua
từng ngày . Kỹ thuật này có ích chủ yếu đối với việc lập lịch tài nguyên có xét đến
chi phí. Người quản lý dự án sẽ sử dụng lịch mà các tài nguyên được đòi hỏi là
hợp lý và sẵn dùng.
3. Định vị: Lập lịch các nhiệm vụ dựa theo vài quản lý ràng buộc như thời gian, tài
nguyên hoặc chi phí. Vấn đề này sẽ được trình bày kỹ ở phần I-7-3.
4. Tối ưu toán học: Phương thức này nhắm đến việc phân tích một cách toán học
việc lập lịch tài nguyên để có thể tìm thấy một lịch tối ưu. Hầu hết phương pháp
này được phân tích theo các thuật toán Branch và Bound. Hiện tại, chưa có thuật
toán tối ưu nào cho các trường hợp tổng quát, ở từng trường hợp với những yêu

cầu cụ thể sẽ có những cách giải quyết khác nhau.
I-7-3- Kỹ thuật định vị tài nguyên
Định vị tài nguyên là kỹ thuật phổ biến nhất trong bốn kỹ thuật trên, vì thế ta sẽ
giải thích sâu về nó. Việc định vị tài nguyên được chia thành hai loại – tuần tự và
song song.
1. Định vị tuần tự
Gồm hai pha:
i. Sắp xếp các nhiệm vụ có sẵn theo một thứ tự ưu tiên nào đó.
ii. Lập lịch các nhiệm vụ dựa theo thứ tự ưu tiên đó.
Nhiều hệ thống mô phỏng quản lý tài nguyên dựa trên cách này. Người quản lý dự
án sẽ lựa chọn một ràng buộc, lựa chọn một quy tắc ưu tiên và thực hiện việc định
vị tài nguyên.
Trong bước 1, việc sắp xếp thứ tự ưu tiên có thể được làm bằng các heuristic.
Trong lĩnh vực này đã có các nghiên cứu rộng rãi. Một số heuristics được phát
hiện là:
1. Ưu tiên nhiệm vụ ngắn nhất: Các nhiệm vụ được xếp thứ tự theo thời gian thực
hiện nhiệm vụ, các nhiệm vụ ngắn nhất sẽ được ưu tiên.
2. Ưu tiên các nhiệm vụ cần nhiều tài nguyên nhất.
3. Ưu tiên các nhiệm vụ có thời gian thả nổi nhỏ nhất.

×