DSpace at VNU: Sử dụng tri thức trong việc phát triển các dự án công nghệ thông tin tài liệu, giáo án, bài giảng , luận...
Trang 1SỬ DỤNG TRI THỨC TRONG VIỆC PHÁT TRIỂN
CÁC DỰ ÁN CÔNG NGHỆ THÔNG TIN
Trang 2LỜI CẢM ƠN
Em xin cảm ơn các thầy cô trường Đại học công nghệ, Đại học quốc gia Hà nội, thày Đỗ Trung Tuấn, đã tận tình chỉ bảo, giúp đỡ em hoàn thành tốt luận văn này
Xin bày tỏ sự cám ơn đến gia đình và người thân,đã giúp đỡ, tạo điều kiện để có được kết quả ngày hôm nay
Nhân dịp này, xin bày tỏ lời cám ơn đến bè bạn và đồng nghiệp, đã có động viên, hỗ trợ
Thạch Hoàng Việt
Trang 3MỤC LỤC
BẢNG CÁC KÝ HIỆU VIẾT TẮT 6
MỞ ĐẦU 8
CHƯƠNG 1 QUẢN LÝ QUÁ TRÌNH PHÁT TRIỂN DỰ ÁN 9
1.1 Lập kế hoạch dự án 9
1.1.1 Lập kế hoạch dự án 9
1.1.2 Tính toán lợi nhuận của dự án 9
1.2 Lập kế hoạch, quản lý và đánh giá chất lượng 10
1.2.1 Triển khai chức năng chất lượng 10
1.2.2 Chất lượng phần mềm 10
1.2.3 Đặc trưng chất lượng phần mềmError! Bookmark not defined 1.3 Quản lý tiến trình Error! Bookmark not defined 1.3.1 Tổng quan về lập kế hoạch tiến trình và quản lý tiến độ Error! Bookmark not defined
1.3.2 Lập kế hoạch tiến trình Error! Bookmark not defined 1.3.3 Quản lý tiến trình Error! Bookmark not defined 1.4 Năng suất phần mềm Error! Bookmark not defined 1.4.1 Về ước lượng Error! Bookmark not defined 1.4.2 Các phương pháp ước lượng Error! Bookmark not defined 1.5 Tổ chức phát triển Error! Bookmark not defined 1.5.1 Các phong cách tổ chức Error! Bookmark not defined 1.5.2 Tổ chức phát triển Error! Bookmark not defined 1.6 Kết luận Error! Bookmark not defined CHƯƠNG 2 LÝ THUYẾT CHẮC CHẮNERROR! BOOKMARK NOT DEFINED 2.1 Tổng quan về lý thuyết chắc chắn Error! Bookmark not defined 2.1.1 Lập luận không chính xác trong MYCIN Error! Bookmark not defined
2.1.2 Thể hiện dấu hiệu không chắc chắnError! Bookmark not defined 2.1.3 Thể hiện các luật không chắc chắnError! Bookmark not defined 2.1.4 Suy luận không chắc chắn Error! Bookmark not defined
Trang 42.1.5 Tổ hợp dấu hiệu từ nhiều nguồn Error! Bookmark not defined 2.1.6 Độ tin cậy thực Error! Bookmark not defined 2.1.7 Cơ sở của lý thuyết chắc chắn Error! Bookmark not defined 2.2 Nhân tố chắc chắn dưới khía cạnh xác suất Error! Bookmark not
defined
2.2.1 Dấu hiệu không chắc chắn Error! Bookmark not defined 2.2.2 Lan truyền chắc chắn đối với các luật có giả thiết đơn Error! Bookmark not defined
2.2.3 Lan truyền chắc chắn đối với các luật nhiều giả thiết Error! Bookmark not defined
2.2.4 Lan truyền chắc chắn đối với các luật có cùng kết luận Error! Bookmark not defined
2.2.5 Lan truyền chắc chắn đối với các luật phức hợpError! Bookmark not defined
2.3 Ví dụ về nhân tố chắc chắn Error! Bookmark not defined 2.4 Kết luận Error! Bookmark not defined CHƯƠNG 3 ƯỚC LƯỢNG DỰ ÁN PHẦN MỀMERROR! BOOKMARK NOT
DEFINED
3.1 Quy trình ước lượng dự án phần mềmError! Bookmark not defined 3.1.1 Ước lượng cỡ dự án phần mềm Error! Bookmark not defined 3.1.2 Ước lượng khối lượng công việcError! Bookmark not defined 3.1.3 Ước lượng thời hạn Error! Bookmark not defined 3.1.4 Ước lượng dự toán Error! Bookmark not defined 3.2 Quy trình ước lượng dự án dựa trên cấu trúc phân rã công việc
Error! Bookmark not defined
3.2.1 Tổng quan quy trình ước lượng Error! Bookmark not defined 3.2.2 Thiết kế hệ thống Error! Bookmark not defined 3.2.3 Ước lượng mỗi một hệ thống conError! Bookmark not defined 3.2.4 Kế hoạch công việc Error! Bookmark not defined 3.3 Ước lượng sử dụng mô hình điểm trường hợp sử dụng Error!
Bookmark not defined
3.3.1 Ước lượng sử dụng mô hình UCPsError! Bookmark not defined 3.3.2 Áp dụng mô hình UCPs trong thực tếError! Bookmark not defined
Trang 53.4 Biến đổi quy trình ước lượng dự án phần mềmError! Bookmark not
defined
3.4.1 Phân loại các loại dự án phần mềm cần ước lượngError! Bookmark not defined
3.4.2 Quy trình ước lượng dự án phần mềm thực tếError! Bookmark not defined
3.5 Kết luận Error! Bookmark not defined CHƯƠNG 4 ƯỚC LƯỢNG DỰ ÁN DÙNG LÝ THUYẾT CHẮC CHẮN
ERROR! BOOKMARK NOT DEFINED
4.1 Ước lượng cỡ dự án Error! Bookmark not defined 4.1.1 Phân loại dự án theo IBM RationalError! Bookmark not defined 4.1.2 Phân loại dự án theo quy định của Đề án 112Error! Bookmark not defined
4.1.3 Phân loại dự án theo SLOC Error! Bookmark not defined 4.1.4 Xây dựng bảng nhân tố chắc chắnError! Bookmark not defined 4.2 Ước lượng khối lượng công việc Error! Bookmark not defined 4.2.1 Phân loại rủi ro Error! Bookmark not defined 4.2.2 Khả năng kết hợp giữa quản lý rủi ro và lý thuyết chắc chắnError! Bookmark not defined
4.2.3 Áp dụng các luật chắc chắn vào trong ước lượngError! Bookmark not defined
4.2.4 Dùng các luật để nâng cao khả năng chắc chắn của dự ánError! Bookmark not defined
4.3 Ước lượng lịch biểu Error! Bookmark not defined 4.4 Ước lượng dự toán Error! Bookmark not defined 4.5 Kết luận Error! Bookmark not defined KẾT LUẬN ERROR! BOOKMARK NOT DEFINED TÀI LIỆU THAM KHẢO 11
Trang 6BẢNG CÁC KÝ HIỆU VIẾT TẮT
Số thứ tự Từ viết tắt Ý nghĩa
1 A&D Phân tích và thiết kế
3 COCOMO Mô hình xây dựng dự toán Cost
Constructive Model
ECF Nhân tố phức tạp môi trường
5 Effort Tổng thời gian nỗ lực để hoàn thành một
công việc
9 PDCA Kế hoạch, thực hiện, kiểm tra, hành động
10 PMI Viện Nghiên cứu quản lý dự án
12 QFD Triển khai chức năng phát triển
15 SLOC Số nguồn dòng lệnh (Source Line Of Code)
Trang 716 TCF Nhân tố phức tạp kỹ thuật
17 UCP Điểm trường hợp sử dụng ( Use case Point)
18 UCPM Mô hình điểm trường hợp sử dụng
19 UCPs Điểm những trường hợp sử dụng
20 UUCPs Điểm trường hợp sử dụng không thích ứng
21 WBS Cấu trúc phân rã công việc (Work
break-down Structure)
Trang 8MỞ ĐẦU
Với việc ngày càng có nhiều công ty nước ngoài lựa chọn Việt Nam để đầu tư vào lĩnh vực gia công phần mềm, và chính phủ cũng đang đầu tư mạnh mẽ cho công nghệ thông tin, các công ty tin học, và công nghệ thông tin luôn phải đối mặt với những thách thức trong việc ước lượng dự án phần mềm, và quản lý phát triển dự án phần mềm Là ngành mũi nhọn, tin học, và công nghệ thông tin ngày càng phải đổi mới và phát triển để có được các biện pháp tân tiến và hiệu quả nhất cho việc ước lượng dự
án, và quản lý phát triển dự án phần mềm, nhằm theo kịp và đáp ứng được nhu cầu phát triển của xã hội
Là một phương pháp quản lý có những đặc thù riêng biệt, ước lượng và quản lý
dự án phần mềm là một lĩnh vực không quá mới với nhiều thành phần và kỹ thuật khác nhau Luận văn sẽ trình bày một số vấn đề cơ bản về quá trình quản lý phát triển dự án phần mềm, đặc biệt là ước lượng dự án phần mềm, với một số phương pháp, kỹ thuật ước lượng như: Ước lượng dựa trên COCOMO, ước lượng dựa trên Cấu trúc phân rã công việc, Ước lượng dựa trên Điểm chức năng, Ước lượng dựa trên Điểm trường hợp
sử dụng v.v
Để triển khai thử nghiệm nhằm đánh giá các phương pháp đã trình bày, luận văn tiến hành xây dựng quy trình “Ước lượng dự án phần mềm” Trong quy trình này, có vận dụng phương pháp ước lượng dựa trên Mô hình Cấu trúc phân rã công việc và dựa trên thực tế áp dụng quy trình phát triển dự án tại công ty Vietsoftware International Quy trình này nhằm đưa ra phương pháp để ước lượng một cách nhanh nhất, đơn giản nhất, và gần với thực tế nhất Trên cơ sở quy trình đó, luận văn sẽ tiếp tục trình bày việc áp dụng tri thức vào việc phát triển dự án
Nội dung nghiên cứu của đề tài tập trung chủ yếu vào các vấn đề:
Chương 1: Tập trung vào một số lý lý thuyết liên quan đến quản lý quá trình phát triển dự án phần mềm
Chương 2: Trình bầy về các khái niệm, luật của lý thuyết chắc chắn
Chương 3: Phân tích đánh giá một số quy trình ước lượng dự án phần mềm để từ đó đưa ra quy trình ước lượng dự án phần mềm
Chương 4: Sử dụng tri thức trong việc ước lượng dự án phần mềm
Trang 9CHƯƠNG 1 QUẢN LÝ QUÁ TRÌNH PHÁT TRIỂN DỰ ÁN
1.1 Lập kế hoạch dự án
Để hoàn thành thành công một dự án phát triển, việc lập kế hoạch và quản lý dựa trên các kế hoạch là quan trọng Việc chuẩn bị kế hoạch cho phép nhìn toàn cảnh
về dự án Dự án cần được phát triển rõ ràng, có khả năng kiểm tra và nghiên cứu trước các vấn đề rủi ro của dự án
Ngoài ra còn cần xem xét mục đích, chức năng và nhìn bao quát về hệ thống, cũng như khối lượng công việc và số nhân công cần cho dự án
1.1.1 Lập kế hoạch dự án
Việc lập kế hoạch dự án được thực hiện, nhằm tạo ra những kết quả :
Những đầu ra (mã lệnh, chương trình, tài liệu), công việc, lịch biểu, quản lý chất lượng, quản lý rủi ro và những vấn đề khác
Cơ cấu tổ chức của dự án Cơ cấu gồm những thành viên tham gia dự án và đóng vai trò nào đó trong dự án Những người có vai trò quản trị dự án, quản trị chất lượng, sẽ đảm nhận cụ thể những công việc gì trong quá trình phát triển
và quản lý dự án
Quy định môi trường phát triển bao gồm phần cứng và phần mềm và các điều kiện khác về an toàn bảo mật trong dự án kèm theo, nếu có
Chi phí phát triển, bao gồm chi phí cho nhân sự, trang thiết bị, chi tiêu và các chi phí có liên quan khác
Người ta xây dựng kế hoạch chi tiết theo những kết quả trên Những kế hoạch này cung cấp cơ sở để đánh giá tính khả thi triển khai dự án Ngoài ra, kế hoạch được dùng làm mục đích cho việc quản lý dự án, sau khi dự án được phê duyệt
1.1.2 Tính toán lợi nhuận của dự án
Việc phát triển hệ thống được thực hiện như một phần của hoạt động kinh doanh, nên các yêu tố sinh lợi cần được thăm dò sau khi phát triển dự án, một cách tự nhiên Điều này có nghĩa là việc đánh giá chi phí- hiệu quả là cần thiết Nếu việc phát triển hệ thống cho thấy nó không sinh lợi từ giai đoạn lập kế hoạch, thì dự án sẽ không
Trang 10được chấp thuận Chẳng hạn như, hệ thống là cần thiết để đáp ứng các yêu cầu của luật pháp hay quy chế
Nếu việc tính toán lợi nhuận được đưa ra tại giai đoạn lập kế hoạch, thì điều thường xảy ra là vào lúc hoàn thành người ta thấy dự án này hoàn toàn chẳng lợi lộc
gì Chẳng hạn, ta có thể xét kịch bản sau đây : Khách hàng thay đổi yêu cầu vào giai đoạn thiết kế, làm tăng khối lượng công việc cần thiết Các chức năng được đưa ra trước đây thực tế không được hỗ trợ thỏa đáng Những thứ mua từ bên ngoài lại kém
về chất lượng, làm phát sinh nhiều việc phải làm lại và ảnh hưởng tới thời hạn giao hàng Một số kịch bản chỉ được đưa ra khi nào các dự án được tiến hành Có thể nói rằng dự án đó có thể là không được thực hiện như đã lập kế hoạch
Do đó việc xem xét lại các kế hoạch trong từng giai đoạn trở thành cần thiết, để duy trì tính sinh lợi Những sửa đổi về các đặc tả phải được phản ánh đúng Cho nên,
để an toàn chất lượng, cần phải tiến hành việc quản lý những thay đổi diễn ra trong dự
án
1.2 Lập kế hoạch, quản lý và đánh giá chất lượng
1.2.1 Triển khai chức năng chất lượng
Mục đích chính của kiểm thử phần mềm là loại bỏ các lỗi và duy trì chất lượng
đã được thiết kế, QFD là một công nghệ giúp cho phần mềm đạt chất lượng cao hơn QFD được giới thiệu để tăng chất lượng của thiết kế phần cứng Đại cương về QFD là :
Với QFD, chất lượng của phần mềm bao gồm các hệ con và các phân hệ, được biểu diễn như đặc trưng chất lượng Nó cho phép đánh giá và sử dụng cho việc kiểm soát chất lượng của các hệ thống con và các phân hệ bên trong nó
1.2.2 Chất lượng phần mềm
Nói rằng „‟Máy tính thông minh lắm‟‟ là không đúng Đúng hơn phải nói là, „‟ Phần mềm (chương trình) này thông minh lắm‟‟ Trong thực tế, việc đưa dữ liệu ký tự vào thay vì các số làm cho máy tính bị kết thúc bất thường Để tránh điều này, với một chương trình có thể kiểm tra dữ liệu được đưa vào và yêu cầu chương trình phải đưa
ra yêu cầu thông báo người dùng phải nhập lại số liệu- nếu dữ liệu không hợp lệ (không phải là số, hoặc ngày tháng chẳng hạn) Nói cách khác, việc
Trang 11TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Ban Điều Hành Đề Án 112 Chính phủ(2003), Quản lý và tổ chức thực hiện
các dự án công nghệ thông tin
[2] Đỗ Trung Tuấn (1999), Hệ Chuyên Gia, NXB Giáo Dục
[3] Jody Zall Kusek và Ray C Rist (2005), Mười bước tiến tới Hệ Thống Giám Sát và Đánh giá dựa trên Kết quả, NXB Văn Hóa-Thông Tin
Tiếng Anh
[4] A function point FAQ:
http://ourworld.compuserve.com/homepages/softcomp/fpfaq.htm
[5] Alan Green (2006), How to estimate a software project,
http://www.bright-green.com/docs/howto_estimate.html
[6] COCOMOII web site:
http://sunset.usc.edu/COCOMOII/cocomo.html
[7] DeMarco (1982), Tom, Controlling Software Projects, Prentice-Hall
[8] Goether, Wolfhart B., Elizabeth K Bailey, Mary B Busby,
CMU/SEI-92-TR-021 (2006), Software Effort and Schedule Measurement: A framework for counting
Staff-hours and reporting Schedule Information,
http://www.sei.cmu.edu/publications/documents/92.reports/92.tr.021.html
[9] IBM Rational (2004), Rational Unified Process
[10] International Function Point Users Group (IFPUG) web site:
http://www.ifpug.org
[11] Jones, Capers (2006), What are Function Points,
http://www.spr.com/library/0funcmet.htm
[12] Kathleen Peters (1999), Software Project Estimation
[13] Peter J Merrick (2006), Use Case Points Method,
Trang 12http://www.uea.ac.uk/~a168955/effort_estimation/use_case_points.html
[14] R Park, CMU/SEI-92-TR-20 (2006), Software Size Measurement: A
framework for counting source statements
http://www.sei.cmu.edu/publications/documents/92.reports/92.tr.020.html
[15] Schneider, G and J Winters (1998), Applying Use Cases - A Practical
Guide, Addison Wesley Longman, Inc
[16] Vigder, M.R & A.W Kark (2006), Software Cost Estimation and Control,
http://wwwsel.iit.nrc.ca/abstracts/NRC37116.abs (full text available)
[17] William R Ducan (2004), A guide to the Project management body of
knowledge (PMBOK Guide) Thrid Edition, Project Management Institute Standard
Committee