8 Hoạch định v ớc lợng (PLANNING AND ESTIMATING) Nội dung: Hoạch định tiến trình phần mềm Ước lợng giá thành Ước lợng thời gian Đo kích thớc sản phẩm Các kỹ thuật ớc lợng giá thành Mô hình COCOMO trung gian Mô hình COCOMO II Khung kế hoạch quản lý phần mềm Công cụ CASE cho hoạch định ớc lợng 86 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 8.1 Hoạch định tiến trình phần mềm (planning and the software process) Khoảng tơng đối ớc lợng giá Không thể hoạch định toàn dự án phần mềm nhay từ bắt đầu lúc phân phối sản phầm cho khách hàng Thờng có khác biệt mô tả khách hàng đặc tả nhóm phát triển Yêu cầu Đặc tả Thiết kế Cài đặt Tich hợp Các giai đoạn có ớc lợng giá thành Hình 8.1 Mô hình ớc lợng khoảng giá tơng đối 87 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 8.2 Ước lợng giá thành (estimating cost) Khách hàng cần phảI biết trả tiền Ước lợng: thấp, công ty thua lỗ cao, khách hàng không đặt hàng Giá nội (internal cost): giá thành để phát triển phần mềm lơng đội ngũ phát triển, nhà quản lý, nhân viên hỗ trợ, chi phí phần cứng, phần mềm dùng để phát triển chi phí thuê muớn ,tiện ích, lơng cho nhà quản trị cấp cao Giá ngoại (external cost): giá thành khách hàng phảI trả giá nội lợi nhuận chi phí bảo trì 88 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 8.3 Ước lợng thời gian (estimating duration) Khách hàng cần phảI biết nhận đợc sản phầm, cần cân nhắc yếu tố sau ớc lợng: nhanh, công ty uy tín không hoàn thành chậm, khách hàng không đặt hàng Khó xác trình ớc lợng chịu ảnh h−ëng cđa nhiỊu u tè Nh©n tè ng−êi (human factor) có tác động lớn ớng lợng Thống kê Sackman [Sackman, Erikson Grant, 1968] khác biệt lập trình viên đợc đào tạo nh− - kÝch th−íc s¶n phÈm: 6-1 - thêi gian thùc thi s¶n phÈm : 8-1 - thêi gian ph¸t triĨn: 9-1 - viÕt m· lƯnh: 18-1 - thêi gian gỡ rối: 28-1 khác biệt lập trình viên có 11 năm kinh nghiệm: 5/1 89 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 8.4 Đo kích thớc s¶n phÈm (metrics for the size of a product) Theo số lợng dòng m lệnh - LOC (lines of code) Theo số lợng thị đ phân phối tính theo đơn vị ngàn KDSI (thousand delivered source of codeI [van der Poel Schach, 1983]) Các vấn đề gặp phải với phơng pháp (1) v (2): tính toán kích thớc cho giai đoạn khác: phân tích yêu cầu, càI đặt hai NNLT khác nhau: C, Java, Lisp, cách đếm số dòng mà lệnh: mà lệnh thực thi, định nghĩa liệu, mà lệnh tạo công cụ dùng để hỗ trợ phát triển sinh mà tự động, thiết kế giao diện trực tiếp (GUI), giá thành sản phẩm phụ thuộc vào ớc lợng LOC Theo số lợng toán tử toán hạng (operators and operands) [Halstead, 1977; Shen, Conte Dunsmore, 1983] 90 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn Theo FFP (files-flows-processes) [van de Poel vµ Schach, 1983] áp dụng ứng dụng xử lý liệu có kích thớc trung bình sử dụng từ đến 10 ngời/năm S = Fi + Fl + Pr C=dìS Trong đó: File: tập hợp mẩu tin (vËt lý hay ln lý) cã liªn hƯ víi Flow: giao diện liệu sản phẩm môI trờng nh hình, báo cáo, Process: chức mà nói định nghĩa logic hay toán học dùng để thao tác liệu số d: độ đo hiệu sản phẩm, tuỳ thuộc vào công ty Theo điểm chức năng-FP (function point) [Albrecht, 1979; Albrecht Gaffney, 1983] Các thuật ngữ: - UFP (unadjsuted function points) : điểm không thÝch øng - TCF (technical complexity factor) : nh©n tè độ phức tạp kỹ thuật - DI (degree of influence) : mức độ ảnh hởng [0 70] 91 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn Các công thức thông sè chÝnh: Level of Complexity Component Simple Average Complex Input item (Inp) Output item (Out) Inquiry (Inq) Master file (Maf) 10 15 Interface (inf) 10 Hình 8.2 Bảng giá trị điểm chức Cách tính xác: UFP = tổng điểm chức theo độ phức tạp DI = tổng mức độ ảnh hởng TCF = 0.65 + 0.01 × DI FP = UFP × TCF Ví dụ cách tính đơn giản: FP = 4×Inp + 5×Out + 4×Inq + 10×Maf + 7×Inf Data communications Distributed data processing Performance criteria Heavily utilized hardware High transaction rates Online data entry End-user effciency Online updating Complex computations 10 Reusability 11 Ease of installation 12 Ease of opearation 13 Portability 14 Maintainability (Các giá trị ảnh hởng thay đổi từ đến 5) Hình 8.3 Bảng nh©n tè kü tht 92 Hnh Xu©n HiƯp - CNPM http://www.ebook.edu.vn Theo điểm chức mở rộng-Mk II FPs [Symons, 1987] xác tính toán giá trị UFP phần mềm đợc chia thành giao dịch (transaction), giao dịch bao gồm thành phần sau: - đầu vào (an input) - trình (a process) - đầu (an ouput) giá trị UFP đợc tính toán dựa số lợng thành phần giao dịch đợc sử dụng rộng rÃI giới [Boehm, 1997] Theo điểm đặc điểm (feature points) [Jones, 1991] Sử dụng cho phần mềm chịu ảnh hởng mạnh giảI thuật: - thời gian thùc (real-time software) - nhóng (embedded software) - trun th«ng (communication software) Đang thời gian kiểm chứng độ chinh xác 93 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn Công thức: Feature Points = FP 3ìMaf + 3ìAlg Trong đó: - FP : số lợng điểm chức tính toán theo phơng pháp (5) - Maf : số lợng tập tin - Alg : số lợng giảI thuật sử dơng Theo 3D-FPs (3D function points) [Boehm, 1997] ph¸t triĨn bới công ty chế tạo máy bay Boeing sử dụng phơng pháp tính toán dựa theo FPs dùng cho phần mềm: khoa học(scientific software),thời gian thực Cha đợc công bè chÝnh thøc 94 Hnh Xu©n HiƯp - CNPM http://www.ebook.edu.vn 8.5 So sánh số phơng pháp đo kích thớc phÇn mỊm Assembler version 70 KDSI $1,043,000 0.335 $14.90 Ada version 25 KDSI $590,000 0.211 $23.60 KÝch th−íc m· nguån Giá thành phát triển KDSI ngời-tháng Giá trung bình câu lệnh Số điểm chức ngời1.65 2.92 tháng Giá điểm chức $3,023 $1,170 Hình 8.4 So sánh hai sản phẩm Assembler Ada [Jones, 1987] ( â1987 IEEE) Theo nghiên cøu cđa Jones [Jones, 1987], ®é sai lƯnh sư dụng hai phơng pháp là: KDSI : 800% FP : 200% (tốt nhiều !) 95 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 8.6 Các kỹ thuật ớc lợng giá thành (techniques of cost estimation) Dựa vào đánh giá chuyên gia phần mềm tơng tự (expert judgement by analogy) tổng hợp kết từ việc tham khảo ý kiến nhiều chuyên gia độ xác cao chuyên gia đà làm việc lĩnh vực Tiếp cận dới lên (bottom-up approach) chia sản phẩm thành thành phần nhỏ ớc lợng thời gian giá thành thành phần độc lập u điểm: nhanh xác ớc lợng toàn khuyết điểm: toàn sản phẩm > tổng thành phần 96 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn Các mô hình ớc lợng giá thành theo giải thuật (algorithmic cost estmation models) giá trị FPs hay FFP đợc sử dụng nh trị đầu vào mô hình sản phẩm đợc xử lý giống số mô hình chính: - SLIM [Putnam, 1978] - RCA Price S [Freiman vµ Park, 1979] - COCOMO [Boehm, 1981] [Boehm, 1984b] (COnstructive COst MOdel): bao gồm mô hình ớc lợng từ lớn đến nhỏ (macroestimation -> microestimation) 97 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 8.7 Mô hình COCOMO trung gian (intermediate COCOMO) Mức độ phức tạp chi tiết mức trung bình Dựa hai yếu tố: chiều dàI sản phẩm tính theo KDSI mức độ khó khăn (difficulty) phát triển sản phẩm, có dạng đợc cho theo bảng sau: bb cb Software project ab Dạng (organic) 3.20 1.05 2.50 Dạng trung bình (semi-detached) 3.00 1.12 2.50 D¹ng lín (embedded) 3.60 1.20 2.50 Hình 8.5 Bảng mức độ khó phát triển sản phẩm db 0.38 0.35 0.32 Các công thức: Nominal Effort [NE] = ab × (KDSI) exp(bb) Date [D] = cb × (NE) exp(db) VÝ dơ víi 12 KDSI vµ møc độ khó bản: NE = 3.2 ì (12)1.05 = 43 ngời-tháng 98 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn Tiếp theo NE đợc nhân với 15 hệ số phát triển đợc cho bảng sau: Rating Cost Drivers Very Low Low Nominal High Very High Product Attributes Required software reliability 0.75 0.88 1.00 1.15 1.40 Database size 0.94 1.00 1.08 1.16 Product complexity 0.70 0.85 1.00 1.15 1.30 Computer Attributes Execution time constraint 1.00 1.11 1.30 Main storage constraint 1.00 1.06 1.21 Virtual machine volatility* 0.87 1.00 1.15 1.30 Computer turnaround time 0.87 1.00 1.07 1.15 Personnel Attributes Analyst capabilities 1.46 1.19 1.00 0.86 0.71 Applications experiences 1.29 1.13 1.00 0.91 0.82 Programmer capabilitiy 1.42 1.17 1.00 0.86 0.70 Virtual machine experience* 1.21 1.10 1.00 0.90 Programming language experiences 1.14 1.07 1.00 0.95 Project Attributes Use of modern programming pratices 1.24 1.10 1.00 0.91 0.82 Use of software tools 1.24 1.10 1.00 0.91 0.83 Required development schedule 1.23 1.08 1.00 1.04 1.10 * The underlying virtual machine: độ phức tạp phần cứng phần mềm để hoàn thành công việc Extra High 1.65 1.66 1.56 Hình 8.6 Các hệ số nhân mô hình COCOMO trung gian [Boehm, 1984b] (©1984 IEEE) 99 Hnh Xu©n HiƯp - CNPM http://www.ebook.edu.vn VÝ dụ phần mềm xử lý truyền thông microprocessor với: 10 KDSI dạng dự án lớn: NE = 2.8 ì (10)1.20 = 44 ngời-tháng với hệ số nhân kết có đợc từ Hình 8.7 l 1.35 ta đợc: NE = 1.35 ì 44 = 59 ngời-tháng Cost Drivers Required software reliability Database size Product complexity Execution time constraint Main storage constraint Virtual machine volatility* Computer turnaround time Analyst capabilities Applications experiences Programmer capabilitiy Virtual machine experience* Programming language experiences Use of modern programming pratices Use of software tools Required development schedule Situation Serious financial consequences of software fault 20,000 bytes Communications processing Will use 70% of available time 45K of 64K store (70%) Based on commercial microprocessor hardware Two hour average turnaround time Goo senior analyst Three years Good senior programmers Six months Twelve months Most techniques in use over one year At basic minicomputer tool level Nine months Effort Multiplier High 1.15 Low 0.94 Very high 1.30 High 1.11 High 1.06 Nominal 1.00 Nominal 1.00 High 0.86 Nominal 1.00 High 0.86 Low 1.10 Nominal 1.00 High 0.91 Low 1.10 Nominal 1.00 Rating Hình 8.7 Các hệ số nhân cho phần mềm truyền thông microprocessor [Boehm, 1984b] (©1984 IEEE) 100 Hnh Xu©n HiƯp - CNPM http://www.ebook.edu.vn 8.8 Mô hình COCOMO II (COCOMO II) Bối cảnh lịch sử COCOMO: đời năm 1981 có mô hình thác nớc chu trình sống phần mềm thực thi máy mainframes không nhận biết đợc số công nghệ nh: hớng đối tợng, mô hình khách-chủ COCOMO II [Boehm et al., 1995] đợc xây dựng sở xem xét lại toàn COCOMO phức tạp hơn: nhận biết công nghệ tơng thích với dạng chu trình sống phần mềm đại nhận biết ngôn ngữ lập trình thuộc hệ thứ dựa mô hình chính, thay đổi thông số liên quan đến Hình 8.5 17 hệ số nhân, có hệ số nhân mới, đợc sử dụng 83 dự án nhiều lĩnh vực khác Còn để đánh giá kết ứng dụng 101 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 8.9 Theo dõi ớc lợng thời gian giá thành (tracking duration and cost estimate) PhảI đối chiếu kết có đợc sau hoàn thành với dự đoàn PhảI điều chỉnh dự đoán sai ảnh hởng đến tiến trình dự án VD: dành cho giai đoạn đặc tả tháng ngời nhng đến tháng với 10 ngời mà cha hoàn thành Theo dõi sát mức độ ảnh hởng đến tiến trình chung toàn trình sử dụng việc ớc lợng 102 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 8.10 Các thành phần kế hoạch quản lý dự án phần mềm (components of a software project management plan - SPMP) Rc = víi: t −t / 2k e k (0 t ) Tiêu thụ tài nguyên Một SPMP có thành phần công việc thực nguồn tài nguyên: ngời (giữ vai trò quan trọng nhất), phần cứng phần mềm tiền phải trả cho toàn dự án Mức tiêu thụ tài nguyên theo thêi gian [Norden, 1958] cho c¸c dù ¸n lín víi c«ng thøc tÝnh xÊp xØ theo thêi gian t (phân phối Rayleigh): k Thời gian Hình 8.8 Đờng cong Rayleigh thể tiêu hao tài nguyên theo thời gian 103 Hnh Xu©n HiƯp - CNPM http://www.ebook.edu.vn 8.11 Khung kế hoạch quản lý dự án phần mềm (software project management plan framework) 3.3 Risk Management Introduction 3.4 Monitoring and Controlling 1.1 Project Overview Mechanisms 1.2 Project Deliverables 3.5 Staffing Plan 1.3 Evolution of the Software Project Technical Process Management Plan 4.1 Methods, Tools, and Techniques 1.4 Reference Materials 4.2 Software Documentation 1.5 Definitions and Acronyms 4.3 Project Support Function Project Organization Work Packages, Schedules, and Budget 2.1 Process Model 5.1 Work Packages 2.2 Organizational Structure 5.2 Dependencies 2.3 Organizational Boudaries and Interfaces 5.3 Resources Requirements 2.4 Projects Responsibilities 5.4 Budget and Resource Allocation Managerial Process 5.5 Schedule 3.1 Management Objectives and Priorities Additional Components 3.2 Assumptions, Depedencies, and Constraints Hình 8.9 Các thành phần kế hoạch quản lý dự án phần mềm IEEE [IEEE 1058.1, 1987] (© 1987 IEEE.) 104 Huúnh Xu©n Hiệp - CNPM http://www.ebook.edu.vn 8.12 Kế hoạch quản lý dự ¸n phÇn mỊm theo IEEE (IEEE software project management plan - SPMP) Giới thiệu Cung cấp nhìn tổng quan dự án sản phầm phát triển 1.1 Khái quát dự án: Mô tả tóm tắt mục tiêu dự án, sản phẩm đợc phân phối, hoạt động, sản phẩm kết công việc Liệt kê giai đoạn quan trọng: yêu cầu tài nguyên, lịch làm việc ngân sách chung 1.2 Phân phối sản phẩm: danh sách mục đợc phân phối đến khách hàng ngày phân phối tơng ứng 1.3 Phát triển SPMP: cập nhật thờng xuyên liên quan đến khách hàng công ty phát triển phần mềm vấn đề kinh nghiệm thay đổi Mô tả hình thức thủ tục cách thức ®Ĩ thay ®ỉi kÕ ho¹ch chung 1.4 Tμi liƯu tham khảo: liệt kê tàI liệu tham khảo sử dụng SPMP 1.5 Các định nghĩa v từ viết tắt: chứa đựng thông tin nhằm làm cho ngời hiĨu râ SPMP Tỉ chøc dù ¸n ChØ râ sản phẩm đợc phát triển nh theo quan điểm tiến trình xử lý phần mềm cấu trúc tổ chức nhà phát triển 2.1 Mô hình xử lý: Các hoạt động: thiết kế sản phẩm,kiểm thử sản phẩm Các chức sản phẩm: quản lý dự án quản lý cấu hình 105 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 2.2 2.3 2.4 Đặc tả khía cạnh mấu chốt nh giai đoạn quan trọng, mốc ranh giới, xem xét lại, công việc sản phẩm phân phối Cấu trúc tổ chức: mô tả cấu trúc quản lý để tổ chức phát triển sản phẩm, quan trọng rõ quyền hạn trách nhiệm tổ chức bên Tổ chức ranh giới v giao diện: Các thành viên dự án phải giao tiếp với khách hàng thành viên khác quan khách hàng Trong dự án lớn nên có thêm số hợp đồng Ranh giới quản lý quản trị dự án thực thể khác phải đợc dự kiến Trong dự ¸n cã nhiỊu kiĨu nhãm kh¸c th× ranh giíi quản lý quản trị phải đợc định nghĩa rõ ràng Trách nhiệm dự án: chức hay hoạt động dự án phải có xác định cá nhân chịu trách nhiệm cụ thể Quy trình quản lý 3.1 Quản lý mục đích v quyền u tiên: Mô tả mục đích quyền u tiên dành cho quản lý, chế tần xuất báo cáo, độ u tiên tơng đối yêu cầu Kế hoạch làm việc ngân sách cho dự ¸n, c¸c thđ tơc qu¶n lý rđi ro 3.2 Sù đảm đơng, phụ thuộc v rng buộc: đảm đơng ràng buộc tài liệu đặc tả 3.3 Quản lý rủi ro: liệt kê nhân tố gắn liền với dự án chế lần vết yếu tố rủi ro 3.4 Các chế giám sát v điều khiển: mô tả chi tiết chế báo cáo, xem xét sổ sách kế toán 3.5 Kế hoạch nhân sự: liệt kê số lợng kiểu nhân lực thời gian làm việc 106 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn Quy trình kỹ thuật 4.1 Các phơng thức, công cụ v kỹ thuật: mô tả chi tiết khía cạnh phần cứng, phần mềm, hệ điều hành dùng cho phát triển sản phẩm nh hệ thống đích mà sản phẩm thực thi Một số khía cạnh khác nh kỹ thuật phát triển, kỹ thuật kiểm thử, cấu trúc nhóm làm việc, ngôn ngữ lập trình, công cụ CASE Các chuẩn kỹ thuật tài liệu mà lệnh, tham khảo đến tài liệu khác nh thủ tục để phát triển sửa đổi công việc sản phẩm 4.2 Ti liệu phần mềm: tài liệu phân tích yêu cầu, mốc quan trọng, vạch ranh giới xem xét 4.3 Các chức hỗ trợ dự án: kế hoạch chi tiết hỗ trợ chức nh quản lý cấu hình, đảm bảo chất lợng kế hoạch kiểm thử Các gói công việc, kế hoạch ngân sách 5.1 Các gói công việc: đặc tả gói công việc công việc tơng ứng đà đợc chia thành hoạt động nhiệm vụ 5.2 Các phụ thuộc: phụ thuộc gói công việc kiện bên 5.3 Yêu cầu ti nguyên: mô tả tất yêu cầu tài nguyên 5.4 Ngân sách v việc phân bổ ti nguyên: trình bày ngân sách cho thành phần, tài nguyên, chức năng, hoạt động nhiệm vụ 5.5 Kế hoạch lm việc: kế hoạch làm việc chi tiết cho thành phần, kế hoạch tổng thể để đảm bảo cho dự án đợc thực thời gian Các thành phần bổ sung Cần thiết số dự án Kế hoạch quản lý thầu phụ, kế hoạch an ninh, kế hoạch đào tạo, kế hoạch mua phần cứng, kế hoạch cài đặt kế hoạch bảo trì 107 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 8.13 Công cụ CASE cho hoạch định ớc lợng (CASE tools for planning and estimating) CPM (crotical path management) PERT (program evaluation review techniques) [Moder, Phillips vµ Davis, 1983] ngµy E ngµy B H ngµy ngµy ngµy ngµy A ngµy 11 ngµy J C 16 ngµy ngµy D F G Hoạt động tới hạn Hình 8.10 Mô hình PERT với thời gian hoạt động đờng tới hạn 108 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn ngµy E ngµy B H ngµy ngµy ngµy ngµy A ngµy 11 ngµy J C 16 ngµy 17 ngµy D F G Hoạt động tới hạn Hoạt động đầy đủ Hình 8.10 Mô hình PERT đợc cập nhật với ngày thứ 17 109 Huỳnh Xuân HiÖp - CNPM http://www.ebook.edu.vn ... phÈm: 6 -1 - thêi gian thùc thi s¶n phÈm : 8 -1 - thêi gian ph¸t triĨn: 9 -1 - viÕt m· lƯnh: 1 8 -1 - thêi gian gỡ rối: 2 8 -1 khác biệt lập trình viên có 11 năm kinh nghiệm: 5 /1 89 Huỳnh Xuân Hiệp - CNPM... 0 .88 1. 00 1. 15 1. 40 Database size 0.94 1. 00 1. 08 1. 16 Product complexity 0.70 0 .85 1. 00 1. 15 1. 30 Computer Attributes Execution time constraint 1. 00 1. 11 1.30 Main storage constraint 1. 00 1. 06... pratices 1. 24 1. 10 1. 00 0. 91 0 .82 Use of software tools 1. 24 1. 10 1. 00 0. 91 0 .83 Required development schedule 1. 23 1. 08 1. 00 1. 04 1. 10 * The underlying virtual machine: độ phức tạp phần cứng phần mềm