Nhìn chung phương pháp có những mặt mạnh riêng, đó là khả năng linh động và có thể tùy chỉnh theo mục đích của người dùng và từng dự án cụ thể. Với một dự án bất kỳ, chúng ta không nhất thiết phải thực hiện tính tất cả các yếu tố rồi mới ước lượng, bởi đôi khi một số yếu tố là không thực sự quan trọng hoặc chưa thực sự cần tại thời điểm ước lượng, mà chúng ta có thể thực hiện ước lượng tùy theo mục đích và điều kiện hiện có. Ví dụ, chúng ta có thể thực hiện ước lượng mà chưa cần quan tâm tới yếu tố phức tạp kỹ thuật hoặc yếu tố phức tạp môi trường hoặc cả hai yếu tố này, để có một ước lượng thuần, từ đó cân nhắc tính khả thi của dự án.
Mặc dù vậy, chúng ta có thể tiến hành cải tiến phương pháp này để thu được những ước lượng chính xác hơn và phù hợp hơn với từng điều kiện cụ thể của bài toán.
Hai hướng tiếp cận có thể áp dụng trong cải tiến phương pháp này là: thứ nhất, từ nội dung đặc tả chi tiết ca sử dụng đưa ra cải tiến và thứ hai, cải tiến thông qua chính xác hóa tham số. Trong hai hướng tiếp cận này, thì hướng tiếp cận thứ nhất là chủ yếu và quan trọng hơn.
− Với hướng tiếp cận cải tiến theo nội dung đặc tả chi tiết ca sử dụng có thể được diễn giải như sau: Căn cứ vào biểu đồ ca sử dụng của hệ thống, từ đó chúng ta sẽ đặc tả chi tiết từng ca sử dụng. Trong bản đặc tả này bao gồm các đặc tả về giao diện, phân tích các hồ sơ dữ liệu liên quan và các luồng tương tác cụ thể trong ca sử dụng.
− Từ việc phân tích hồ sơ dữ liệu liên quan, chúng ta có thể xác định được dữ liệu cũng như các thực thể dữ liệu cần dùng. Một điểm nữa, trong đặc tả giao diện chúng ta cũng sẽ phân loại được giao diện (giao diện vào dữ liệu, giao diện hiển thị, giao diện tương tác với hệ thống khác). Và từ đó, chúng ta có thể xác định chính xác hơn độ phức tạp của ca sử dụng.
− Trong hướng tiếp cận này, chúng ta sẽ cải tiến độ chính xác của ước lượng thông qua việc phân loại chính xác hơn độ phức tạp của ca sử dụng nhờ xác định chính xác hơn số lượng thao tác trong từng ca sử dụng. Từ đặc tả chi tiết của từng ca sử dụng, chúng ta xác định được số lượng thao tác, và theo phương pháp của Karner số lượng thao tác của một ca sử dụng bao gồm cả các thao tác thuộc luồng phụ là không chính xác. Bởi vì, trong đó, đôi khi bao gồm cả luồng điều khiển rẽ nhánh, và dẫn đến chỉ xảy ra một trong hai trường hợp. Cho nên, ở đây chúng ta sẽ chia ra thành luồng chính và luồng phụ, đánh giá khả năng xảy ra và gán trọng số từng luồng, sau đó tính tổng số thao tác của từng ca sử dụng. Với luồng thao tác chính, chúng ta gán trọng số là 1, tức là luôn xảy ra. Với luồng phụ, trọng số đánh giá từ 0 đến 1 (hoặc 0 đến 100%), trong trường hợp trọng số là 1 (100%) thì kết quả sẽ giống như phương pháp ban đầu. Việc này sẽ chính xác hơn so với việc tính gộp các thao tác.
− Hướng tiếp cận thứ hai là cải tiến thông qua việc chính xác hóa tham số. Như các tham số đã được đề cập ở trên, việc chính xác hóa tham số chính là chính xác hóa đầu vào của các yếu tố kỹ thuật và môi trường. Các tham số này là các thông số chung cho hầu hết các dự án, và các giá trị tương
ứng với từng yếu tố chỉ mang tính chất tương đối. Do vậy, chúng ta cần chính xác hóa các tham số này. Căn cứ để chính xác hóa các tham số này một phần cũng dựa vào nội dung đặc tả ở trên, nhưng chủ yếu dựa vào loại dự án, từng dự án, đội phát triển và điều kiện cụ thể.
Trong hai cách tiếp cận cải tiến được nêu ra ở trên, thì cải tiến dựa trên nội dung đặc tả ca sử dụng là quan trọng và chủ yếu hơn cả. Và cũng cần được kiểm nghiệm thực tế để kiểm chứng cho phương pháp. Người dùng cũng có thể áp dụng cả hai hướng cải tiến nhằm tận dụng những ưu điểm của chúng để có thể thu được kết quả mong muốn.
CHƢƠNG 4: PHÁT TRIỂN CHƢƠNG TRÌNH ỨNG DỤNG
4.1 Chƣơng trình ứng dụng
4.1.1 Môi trường phát triển
Hệ điều hành: Phần mềm chạy trên máy tính theo mô hình Client – Server, phải cài đặt hệ điều hành Windows 2000/NT/XP/2003 và phần mềm quản trị cơ sở dữ liệu Microsoft SQL 2000/2005.
Cấu hình máy chủ: Tối thiểu PIV 1.4GHz, không nhỏ hơn 1G RAM, dung lượng ổ cứng không nhỏ hơn 20GB.
Cấu hình máy trạm: Tối thiểu PIII 500, không nhỏ hơn 128 MB RAM, có cài đặt IE 4 trở lên.
Hệ quản trị cơ sở dữ liệu: Microsoft SQL. Đây là hệ quản trị cơ sở dữ liệu khá phổ biến của Microsoft, tích hợp những tính năng ưu việt, tính bảo mật cao.
Ngôn ngữ lập trình: Chương trình được xây dựng bằng ngôn ngữ lập trình C#, môi trường .NET Framework 2.0 trở lên.
4.1.2 Các bước tính UCP trong chương trình
Căn cứ vào biểu đồ ca sử dụng hệ thống, chúng ta có được số lượng các tác nhân và các ca sử dụng kèm theo phân loại của chúng.
Từ phân loại các tác nhân, ta tính được trọng số tác nhân chưa điều chỉnh UAW.
Từ phân loại các ca sử dụng, ta tính được trọng số ca sử dụng chưa điều chỉnh UUCW.
Từ đó chúng ta tính được điểm ca sử dụng chưa điều chỉnh UUCP = UAW + UUCW.
Tiếp đó, để ước lượng chính xác hơn, ta thêm hai nhân tố là yếu tố phức tạp kỹ thuật TCF và yếu tố phức môi trường ECF.
Sau khi tính được điểm ca sử dụng, chúng ta sẽ tính ước lượng nỗ lực dựa trên các điểm ca sử dụng này, đơn vị nỗ lực ở đây được đổi ra người-tuần (man- weeks).
Chương trình cho phép nhập vào luồng thao tác của từng ca sử dụng của một dự án, và tự động phân loại các ca sử dụng này, sau đó điền kết quả vào phần dành cho ước lượng.
Chương trình cho phép, tính ước lượng nỗ lực dự án theo hai cách: tính ước lượng nỗ lực theo thông số người dùng nhập vào và tính ước lượng nỗ lực căn cứ vào tác động của yếu tố phức tạp môi trường ECF.
Theo cách tính ước lượng nỗ lực dựa vào thông số người dùng nhập vào, thì rất đơn giản, chỉ việc nhân số điểm ca sử dụng với nỗ lực tương ứng cho mỗi ca sử dụng ta sẽ thu được thời gian cần thiết để hoàn thành dự án.
Theo cách tính ước lượng nỗ lực căn cứ vào tác động của yếu tố phức tạp môi trường ECF thì, tính tổng các yếu tố từ F1 – F6 mà có giá trị đánh giá lớn hơn 3 cộng với các yếu tố F7 – F8, mà có giá trị đánh giá nhỏ hơn 3. Nếu tổng thu được là nhỏ hơn hoặc bằng 2 thì nỗ lực sẽ bằng số điểm ca sử dụng nhân với 20 giờ công cho mỗi điểm ca sử dụng. Nếu tổng nhỏ hơn hoặc bằng 4 và lớn hơn 2 thì nỗ lực bằng số điểm ca sử dụng nhân với 28 giờ công cho mỗi điểm ca sử dụng. Nếu tổng lớn hơn 4 thì nỗ lực bằng số điểm ca sử dụng nhân với 36 giờ công cho mỗi điểm ca sử dụng.
Chương trình cũng trợ giúp tính ước lượng chi phí cho dự án khi người dùng nhập chi phí tương ứng với mỗi ngày công.
Ngoài ra chương trình còn cho phép thống kê và đưa ra giá trị tham khảo cho yếu tố phức tạp kỹ thuật và yếu tố phức tạp môi trường dựa trên các dự án đã được chương trình ước lượng.
4.1.3 Thực đơn chính của chương trình
Chương trình với với 3 thực đơn chính: 1. Quản lý dự án.
2. Quản lý ca sử dụng. 3. Ước lượng dự án.
Thực đơn Quản lý dự án cho phép người dùng thêm mới, xóa, sửa thông tin dự án.
Thực đơn Quản lý ca sử dụng, cho phép người dùng chọn dự án để nhập các ca sử dụng nhằm phục vụ cho việc ước lượng. Với dự án bảo trì, chương trình cho phép xóa ca sử dụng không cần thiết, thêm các ca sử dụng mới. Với ca sử dụng có sự thay đổi về số lượng thao tác, cần xóa ca sử dụng đã có và thêm lại ca sử dụng này.
Thực đơn Ước lượng dự án, cho phép người dùng chọn dự án để ước lượng và khi chọn một dự án, số lượng ca sử dụng của dự án theo phân loại sẽ tự động hiển thị cho người dùng. Chương trình cũng cho phép chọn kiểu dự án ước lượng là mới hay bảo trì và tùy theo kiểu dự án mà các giá trị điều chỉnh (yếu tố kỹ thuật và yếu tố môi trường) sẽ có giá trị mặc định là khác nhau. Và với một dự án, người dùng có thể thực hiện ước lượng nhiều lần với các tham số điều chỉnh khác nhau để so sánh các kết quả ước lượng.
4.1.4 Một số giao diện chương trình
Hình 4.2 diện chương trình ước lượng theo phương pháp UCP (2)
Hình 4.4 Giao diện chương trình ước lượng theo phương pháp UCP (4)
Hình 4.6 Giao diện chương trình ước lượng theo phương pháp UCP (6)
4.2 Áp dụng phƣơng pháp ƣớc lƣợng UCP
Trong phần ví dụ này, sẽ áp dụng phương pháp ước lượng UCP để ước lượng cho dự án iCoot. Dự án iCoot là dự án xây dựng phần mềm quản lý cho Hệ thống quản lý cho thuê xe. Chi tiết về nghiệp vụ hệ thống cũng như tiến trình thực hiện ước lượng được trình bày bên dưới.
4.2.1 Mô tả yêu cầu nghiệp vụ
Phần này mô tả các yêu cầu nghiệp vụ được thực hiện trong pha yêu cầu của dự án iCoot. Những nội dung chính bao gồm mục tiêu của Customer đối với dự án và mô tả các ca sử dụng nghiệp vụ.
a. Mục tiêu khách hàng Nowhere Cars
Dưới đây là những mục tiêu của khách hàng Nowhere Cars với dự án Coot. Từ khi thực hiện tự động hóa quy trình quản lý ô tô tại cửa hàng như sử dụng mã vạch, thiết bị thanh toán đầu cuối và đầu đọc laser, công ty đã thu được nhiều hiệu quả trông thấy: năng suất của bộ phận tư vấn cho thuê tăng lên 20%, rất hiếm khi ô tô bị mất, số lượng khách hàng của công ty tăng lên nhanh chóng.
Bộ phận quản lý nhìn nhận rằng, Internet sẽ đem lại rất nhiều cơ hội để gia tăng hiệu quả cũng như giảm chi phí hoạt động cho công ty. Ví dụ, thay vì phải in các catalogs cho tất cả các loại xe ô tô, công ty có thể đưa chúng lên Internet,
và mọi khách hàng đều có thể duyệt chúng trực tuyến. Với những khách hàng đặc biệt, công ty có thể cung cấp những dịch vụ tiện lợi như đặt chỗ chỉ với một nút bấm. Mục tiêu của công ty là giảm được 15% chi phí hoạt động của mỗi cửa hàng.
Trong vòng 2 năm, sử dụng tất cả các sức mạnh của thương mại điện tử, công ty đặt mục tiêu sẽ cung cấp tất cả các dịch vụ qua trình duyệt Internet, sẽ cung cấp dịch vụ giao và nhận xe tại nhà của khách hàng, hoàn toàn trở thành một công ty dịch vụ cho thuê trên mạng, với chi phí hoạt động hiệu quả hơn hẳn so với các cửa hàng thông thường.
Làm việc với công ty Nowhere Cars, bản tuyên bố trên được đã được nhóm phân tích thiết kế của dự án triển khai thành các ca sử dụng nghiệp vụ, được trình bày cụ thể trong những phần sau của tài liệu này.
b. Danh sách tác nhân
• Assistant: là những nhân viên tại các của hàng của công ty, người sẽ giúp đỡ Customer trong việc thuê xe ô tô và nắm giữ các CarModel.
• Customer: là những người trả tiền cho một trong những dịch vụ tiêu chuẩn của công ty.
• Member: là những Customer đã được chứng thực về danh tính và khả năng thanh toán và do đó họ có thể được cung cấp những dịch vụ đặc biệt (như là Đặt thuê qua điện thoại hoặc qua Internet).
• NonMember: là những Customer mà danh tính của họ và khả năng thanh toán chưa được kiểm chứng, do đó họ phải đặt cọc một số tiền để có thể Đặt thuê và cung cấp một bản sao giấy phép lái xe (GPLX) khi thuê Xe.
• Hệ thống Auk: là hệ thống hiện tại đang quản lý các thông tin Customer, Đặt thuê, Thuê và Catalog của những CarModel hiện tại.
• DebtDepartment: là bộ phận thu hồi nợ, giải quyết những khoản thu chưa được thanh toán.
• LegalDepartment: là bộ phận pháp lý, giải quyết những trường hợp tai nạn liên quan đến những Xe cho thuê.
c. Danh sách ca sử dụng
• B2: Member Đặt Thuê CarModel: Member đặt chỗ trước để được nhận thông báo khi một CarModel sang trạng thái sẵn sàng.
• B3: NonMember Đặt Thuê CarModel: NonMember đặt cọc trước để được nhận thông báo khi một CarModel sang trạng thái sẵn sàng.
• B4:Customer Hủy Đặt Thuê: Customer hủy một Đặt Thuê chưa hoàn thành, qua điện thoại hoặc qua gặp mặt.
• B5: Customer Trả Xe: Customer trả một xe mà họ đã thuê.
• B6:Thông báo một CarModel sẵn sàng cho Customer: Customer được Assistant thông báo khi có một xe đang ở trạng thái sẵn sàng.
• B7:Thông báo Mất xe: Customer hoặc Assistant phát hiện ra xe bị mất.
• B8: Customer gia hạn Đặt Thuê: Customer gia hạn Đặt thuê đối với những Đặt Thuê vượt thời hạn quá một tuần.
• B9: Customer truy cập Catalog: Customer duyệt một Catalog, tại cửa hàng hoặc tại nhà.
• B10: Customer bị phạt vì không nhận Xe Đặt Thuê: Customer không nhận xe họ đã Đặt Thuê.
• B11: Customer nhận Xe Đặt Thuê: Customer nhận xe mà họ đã đặt thuê.
• B12: Customer trở thành Member: Customer cung cấp thông tin CreditCard và chứng minh địa chỉ thật để trở thành một Member.
• B13: Thông báo Xe Thuê quá hạn với Customer: Assistant liên hệ với Customer để nhắc nhở họ đã thuê xe nhiều hơn một tuần.
• B14: Customer Mất Chìa Khóa: Thay thế chìa khóa cho Customer làm mất.
• B15: Thành viênCard được Thay Mới: Assistant liên hệ với các Member để thay mới (tiếp tục) tư cách thành viên khi CreditCard của họ hết hạn.
• B16: Không thể trả Car: Xe bị hủy hoại hoặc bị hỏng.
d. Chi tiết các ca sử dụng
B1:Customer Thuê Xe
1. Customer gọi/gặp Assistant hỏi CarModel mà họ muốn thuê.
2. Nếu Hệ thống Auk chỉ ra không có Xe nào như vậy, thì Customer sẽ được gợi ý một sự lựa chọn khác.
3. Nếu vẫn còn ít nhất một Xe, Assistant sẽ đánh dấu một Xe đã được chọn với Hệ thống Auk.
4. Assistant hỏi GPLX của Customer chứng thực danh tính.
5. Với một Member, Assistant sẽ lấy số Thành viênCard và kiểm tra xem Member còn nợ phí không và xem tư cách thành viên của họ có còn hiệu lực không.
6. Với một NonMember, Assistant kiểm tra liệu họ đã có trong Hệ thống Auk; nếu không có, Assistant scans một bản sao của GPLX vào Hệ thống Auk, và nhập họ tên, số điện thoại và số GPLX vào Hệ thống Auk.
7. Nếu thông tin của Customer hợp lệ và họ đã trả tất cả các nợ phí, họ sẽ trả phí Thuê Xe.
8. Nếu giao dịch thanh toán thất bại, Xe sẽ được trả lại Hệ thống Auk.
9. Nếu giao dịch thanh toán không thất bại, Customer sẽ được giao chìa khóa xe và được dẫn tới khu vực lấy xe.
B2: Member Đặt thuê CarModel
1. Member cung cấp cho Assistant số thẻ thành viên của họ (qua điện thoại hoặc trực