Phát triển phần mềm áp dụng các phương pháp Scrum và Extreme Programming

46 462 0
Phát triển phần mềm áp dụng các phương pháp Scrum và Extreme Programming

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

−1− BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - LUẬN VĂN THẠC SĨ KHOA HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN PHÁT TRIỂN PHẦN MỀM ÁP DỤNG CÁC PHƯƠNG PHÁP SCRUM VÀ EXTREME PROGRAMMING PHẠM QUANG HOÀ HÀ NỘI 2006 MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG - TỔNG QUAN 1.1 Giới thiệu đánh giá số dự án triển khai 1.1.1 Giới thiệu dự án triển khai 1.1.2 Đánh giá dự án triển khai 1.1.3 Một số kinh nghiệm rút 1.2 Tổng quan quản lý dự án phát triển phần mềm 1.2.1 Định nghĩa dự án quản lý dự án 10 1.2.2 Các lĩnh vực quản lý dự án 13 1.2.3 Vòng đời dự án trình phát triển dự án 14 1.3 Các phương pháp phát triển phần mềm 17 1.3.1 Các phương pháp truyền thống 18 1.3.2 Các phương pháp phát triển nhanh 19 1.4 Kết chương 22 CHƯƠNG - MỘT SỐ PHƯƠNG PHÁP PHÁT TRIỂN NHANH TIÊU BIỂU 23 2.1 Extreme Programming 23 2.1.1 Giới thiệu 23 2.1.2 Bốn đại lượng dự án 24 2.1.3 Các giá trị XP 27 2.1.4 Các nguyên tắc 29 2.1.5 Quy trình XP 32 2.1.6 Hướng dẫn thực 35 2.1.7 Nhận xét 39 2.2 Scrum 41 2.2.1 Giới thiệu 41 2.2.2 Quy trình 42 2.2.3 Nhóm dự án Scrum 45 2.2.4 Một số nét đặc trưng Scrum 46 2.2.5 Một số ưu điểm Scrum 47 2.2.6 Nhận xét 47 2.3 Phương pháp phát triển phần mềm thích nghi 48 2.3.1 Giới thiệu 48 2.3.2 Quy trình 48 2.3.3 Nhận xét 52 2.4 Đánh giá so sánh phương pháp 52 2.4.1 Những đặc điểm 53 2.4.2 Khả phạm vi áp dụng 54 Luận văn thạc sĩ khoa học Phạm Quang Hoà −2− −3− CHƯƠNG - PHÁT TRIỂN PHẦN MỀM ÁP DỤNG SCRUM VÀ EXTREME PROGRAMMING 56 3.1 Quy trình phát triển phần mềm 56 3.1.1 Xác định mục tiêu dự án 57 3.1.2 Khảo sát lấy yêu cầu khách hàng 57 3.1.3 Phân tích yêu cầu 59 3.1.4 Cài đặt chức 60 3.1.5 Trình bày kết 60 3.1.6 Đưa sản phẩm thử nghiệm 61 3.1.7 Kết thúc 61 3.2 Một số biện pháp tăng cường quản lý 62 3.2.1 Làm việc tập trung 62 3.2.2 Giảm chu kỳ phát hành 63 3.2.3 Thảo luận hàng ngày 64 3.2.4 Khách hàng tham gia phát triển 65 3.3 Một số biện pháp tăng cường phát triển phần mềm 66 3.3.1 Lập trình theo cặp 66 3.3.2 Áp dụng phương pháp kiểm thử 68 3.3.3 Thiết kế đơn giản 72 3.3.4 Tích hợp liên tục 73 3.3.5 Đưa chuẩn lập trình 73 3.4 Kết chương 74 CHƯƠNG - ÁP DỤNG THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ NGHIÊN CỨU 76 4.1 Môi trường áp dụng 76 4.1.1 Về tổ chức 76 4.1.2 Về nhân lực 77 4.1.3 Về công nghệ 77 4.1.4 Đánh giá 78 4.2 Giới thiệu số dự án thử nghiệm 78 4.2.1 Dự án phần mềm lập thời khoá biểu 78 4.2.2 Dự án Phần mềm quản lý bán hàng 81 4.2.3 Dự án Phần mềm quản lý nhà hàng phiên 84 4.3 Đánh giá chung 85 KẾT LUẬN 87 TÀI LIỆU THAM KHẢO 89 Luận văn thạc sĩ khoa học Phạm Quang Hoà DANH MỤC CÁC BẢNG Bảng 4.1 – Đánh giá kết dự án 81 Bảng 4.2 – Đánh giá kết dự án 83 DANH MỤC CÁC HÌNH VẼ Hình 1.1 - Quá trình thực dự án 15 Hình 2.1 - Quy trình XP 33 Hình 2.2 - Tỉ lệ thành công tăng đáp ứng tốt thay đổi 42 Hình 2.3 - Quy trình Scrum 42 Hình 2.4 - Quy trình ASD 49 Hình 3.1 – Quy trình phát triển phần mềm đề xuất 62 Hình 3.2 – Quy trình kiểm thử TDD 70 Hình 4.1 – Cơ cấu tổ chức công ty 77 Luận văn thạc sĩ khoa học Phạm Quang Hoà −4− −5− LỜI NÓI ĐẦU CHƯƠNG - TỔNG QUAN Trong trình làm việc, tham gia vào nhiều dự án tin học công ty Một điều thấy rõ dự án, tỉ lệ thành công thường không cao Rất nhiều dự án bị chậm tiến độ, không thoả mãn yêu cầu người sử dụng trầm trọng không nghiệp vụ Có thể kể số nguyên nhân khiến cho dự án không thành công là: Quy trình quản lý dự án không tốt, công nghệ áp dụng lỗi thời, khả người phát triển có giới hạn cộng tác với khách hàng 1.1 Giới thiệu đánh giá số dự án triển khai Phần giới thiệu số dự án triển khai đánh giá mức độ thành công dự án, đồng thời phân tích nguyên nhân hạn chế thành công dự án 1.1.1 Giới thiệu dự án triển khai Trong trình làm việc công ty Giải pháp kỹ thuật quốc tế (ITS) tham gia phát triển số dự án phần mềm với quy mô từ nhỏ tới trung không đảm bảo bình với vai trò người phát triển Xuất phát từ lý nên chọn nghiên cứu lĩnh vực quản lý dự án phương pháp phát triển phần mềm, với mục đích giảm rủi ro thực dự án, đưa sản phẩm có chất lượng cao Dự án mà tham gia dự án Hệ thống quản lý công ty xe đạp ViHa Khách hàng công ty xe đạp ViHa Đây dự án triển khai, không áp dụng thực tế thay đổi cấu tổ chức mà đảm bảo thực tiến độ đơn vị khách hàng Nhiều quy trình quản lý quy trình nghiệp vụ Trong luận văn này, tập trung nghiên cứu số phương pháp phát triển phần mềm tiên tiến ý nhà phát triển phần phòng ban thay đổi, chức phần mềm không phù hợp mềm giới, lựa chọn cách áp dụng phù hợp với điều kiện thực tế Dự án thứ hai Hệ thống quản lý đường sắt Thanh Hoá Khách hàng công ty Xí nghiệp quản lý đường sắt Thanh Hoá Dự án có quy mô trung bình, Tôi xin gửi lời cảm ơn chân thành đến thầy giáo TS Huỳnh với mục tiêu xây dựng hệ thống phần mềm quản lý nghiệp vụ phần Quyết Thắng tận tình hướng dẫn, cảm ơn công ty Giải pháp kỹ thuật quốc mềm hỗ trợ kỹ thuật cho phòng ban Dự án năm 2001 kết tế tạo điều kiện để áp dụng thử nghiệm kiến thức thúc năm 2004 nghiên cứu Dự án thứ ba Hệ thống quản lý nâng cao lực điều hành Trung tâm điều độ hệ thống điện quốc gia Khách hàng Trung tâm điều độ hệ thống điện quốc gia Đây dự án mức độ trung bình, với mục tiêu xây dựng phân hệ phần mềm phục vụ cho phòng ban trung tâm, Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà −6− −7− phân hệ có liên hệ chặt chẽ với tuân thủ quy trình làm việc chi phí nhân công chi phí thiết bị cho dự án lớn Thứ hai, thời thời đơn vị khách hàng Dự án năm 2003 kết thúc vào năm gian kéo dài nên nhiều quy trình nghiệp vụ văn pháp quy 2006 thay đổi, điều làm cho số phân hệ phần mềm không phục vụ tốt cho Dự án thứ tư dự án phần mềm Quản lý nhà hàng thông minh, xây dựng với mục đích quản lý toàn hoạt động nhà hàng Phần mềm xây dựng cho tuỳ biến cách nhanh chóng theo yêu công việc khách hàng Thứ ba, quy trình phát triển phần mềm yếu kém, tài liệu không đầy đủ nên việc bảo hành bảo trì khó khăn, gây nhiều phiền hà cho khách hàng cầu khách hàng, với đầy đủ mảng chức liên quan như: Bán hàng, quản lý kho hàng, quản lý khách hàng Dự án bắt đầu năm 2004 kết Có thể đưa số nguyên nhân dẫn đến việc không thành công dự án sau: thúc phiên 1.0 vào năm 2006, áp dụng số nhà hàng Phiên trình phát triển Trước tiên, việc trao đổi với khách hàng không tiến hành thường xuyên Việc tìm hiểu quy trình chủ yếu thông qua số buổi lấy yêu 1.1.2 Đánh giá dự án triển khai cầu khách hàng, với thời gian có hạn Chính lý nên nhiều quy trình Qua số dự án triển khai, theo dự án chưa hẳn nghiệp vụ người phát triển không nắm đầy đủ thành công Còn có nhiều vấn đề tồn việc phát triển phần mềm việc phân phối phần mềm tới người sử dụng Tiếp đến, thủ tục hành liên quan đến dự án khiến dự án phải kéo dài khó kết thúc Các dự án đánh giá không thành công mong đợi dự án Hệ thống quản lý đường sắt Thanh Hoá dự án Hệ thống quản lý nâng cao lực điều hành trung tâm điều độ hệ thống điện Quốc gia Dự án Hệ thống quản lý đường sắt Thanh Hoá triển khai áp Và nguyên nhân dẫn đến dự án không thành công nằm phía người quản lý phát triển dự án Người quản lý không đưa quy trình hợp lý nên dẫn đến việc phát triển phân hệ hệ thống hoàn toàn phụ thuộc vào người phát triển phân hệ Điều gây dụng Tuy nhiên đặc thù đơn vị khách hàng quy trình nghiệp vụ nhiều khó khăn đội ngũ phát triển thay đổi nhân sự, người tiếp quản mang tính kỹ thuật cao, có nhiều phần mềm chuyên dụng cho công công việc thiếu nhiều tài liệu nên phải khoảng thời gian để việc cụ thể nên việc áp dụng phần mềm thuộc dự án hạn chế hiểu công việc người trước Thêm vào đó, trình độ người phát triển không đồng đều, nên việc xảy lỗi phần mềm Đối với dự án Hệ thống quản lý nâng cao lực điều hành trung tâm điều độ hệ thống điện quốc gia, nói dự án thành công thường xuyên Các lỗi làm giảm đáng kể chất lượng phần mềm đưa mức vừa phải Thứ nhất, thời gian thực dự án kéo dài tới ba năm nên Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà −8− −9− Dự án đánh giá tương đối thành công, dự án Phần Trong chương luận văn, trình bầy số mềm quản lý nhà hàng Tuy không thực đáp ứng đầy đủ yêu cầu phương pháp phát triển phần mềm ý Các phương khách hàng nói chung phần mềm đáp ứng công việc pháp áp dụng tốt cho dự án có phạm vi vừa nhỏ, phù hợp với thực quản lý mà nhà hàng cần, khách hàng đánh giá tốt tế nhiều công ty phần mềm Có thể đưa số nguyên nhân thành công dự án này, sau: Thứ nhất, triển khai dự án người phát triển nhận hợp tác đầy đủ từ phía khách hàng Thứ hai, trình phát triển chức tiến hành song song với trình khai thác phần mềm, lỗi phần mềm nhanh chóng cập nhật xử lý 1.2 Tổng quan quản lý dự án phát triển phần mềm Việc phát triển sản phẩm cần phải giải nhiều vấn đề nảy sinh Đặc biệt với dự án công nghệ thông tin, liệt kê số vấn đề sau: Khi bắt đầu dự án, người quản lý phải xác định chi phí nhân lực, 1.1.3 Một số kinh nghiệm rút vật tư chi phí khác cần thiết để tiến hành dự án Việc xác định Qua việc phân tích đánh giá phần mềm triển khai, rút số kinh nghiệm sau: tương đối khó khăn, đặc thù sản phẩm phần mềm sản phẩm trí tuệ, mang nhiều yếu tố ngẫu nhiên khó định hình trước Thứ nhất, việc liên hệ thường xuyên với khách hàng điều quan trọng, khách hàng người am hiểu nghiệp vụ, đồng thời họ biết mà phần mềm phải đáp ứng Ngoài ra, khách hàng đóng vai Trong trình phát triển phần mềm, yêu cầu khách hàng thường xuyên thay đổi Các thay đổi chủ quan khách hàng, khách quan Khi vấn đề đáp ứng thay đổi cần thiết trò quan trọng việc kiểm thử phần mềm, phát lỗi Thêm vào đó, đội ngũ phát triển phần mềm bị thay đổi chức không phù hợp Đây làm vấn đề tất yếu tránh khỏi, cần phải có biện Thứ hai, việc quản lý dự án cần phải trọng Để làm điều pháp nhằm giảm thiểu rủi ro gặp phải vấn đề này, cần người quản lý có kinh nghiệm, khả lập kế hoạch tốt nhanh Ngoài ra, sản phẩm hoàn thành khâu phát triển, khâu phát hành nhạy việc xử lý tình bảo trì quan trọng Với số dự án phần mềm, khâu phát hành Thứ ba, cần phải có quy trình phát triển phần mềm hiệu Quy trình tốt làm tăng khả làm việc thành viên, chuẩn hoá tài liệu, từ giảm bớt tác động tiêu cực đội ngũ phát triển thay đổi Luận văn thạc sĩ khoa học Phạm Quang Hoà yếu tố định thành công toàn dự án Khi phát hành, cần phải ý đến yếu tố thời điểm phát hành, mạng lưới phân phối, sách bảo hành bảo trì phần mềm vấn đề nâng cấp phiên Luận văn thạc sĩ khoa học Phạm Quang Hoà − 10 − − 11 − Từ lý trên, nên cần phải quản lý dự án áp dụng kỹ tiêu dự án phải định nghĩa cách rõ ràng để lên kế hoạch thuật lập trình phát triển phần mềm Tuy việc áp dụng phương công việc phải làm, đồng thời giúp cho nhóm phát triển thực công pháp giải toàn vấn đề nảy sinh, góp việc hướng có hiệu Thông thường, dự án là kết hợp đồng phần hạn chế rủi ro, nâng cao chất lượng phần mềm giảm chi phí khách hàng đơn vị phát triển, nên mục tiêu dự án cần đồng ý hai bên Mục tiêu phải đáp ứng điều mà khách hàng 1.2.1 Định nghĩa dự án quản lý dự án cần mong đợi, để đạt thoả mãn khách hàng cần phải Theo định nghĩa chấp nhận rộng rãi cung cấp đạt mục tiêu đề tổ chức Project Management Institute (PMI) – tổ chức thành lập vào năm 1969 chuyên lĩnh vực quản lý dự án – dự án quản lý dự án định Quyền sở hữu: kết dự án phải đem lại lợi ích cho người tổ chức đó, cần phải xác định cách rõ ràng người sở nghĩa sau [3]: hữu sản phẩm dự án kết thúc Ngoài ra, cần xác định rõ người phải Dự án nỗ lực tạm thời, đảm bảo hoàn thành mục đích Quản lý dự án việc áp dụng kiến thức, kỹ năng, công cụ trả khoản chi phí phát triển bảo trì hệ thống sau đưa vào sử dụng kỹ thuật vào hoạt động dự án với mục đích đạt vượt Tài nguyên: Để thực dự án CNTT, cần phải có thời gian, tiền yêu cầu mong đợi nhà đầu tư bạc, nhân lực công nghệ Những tài nguyên thiếu để Dự án xem xét góc độ thuộc tính dự án, thuộc tính bao gồm: đạt mục tiêu Mục tiêu dự án xác định trực tiếp phạm vi dự án, cần phải đạt được, dựa vào để tính toán Khung thời gian: Bởi dự án mang tính chất tạm thời nên thời gian tài nguyên cần thiết cho dự án bắt đầu kết thúc dự án phải định nghĩa Thông thường, dự án Vai trò người tham gia dự án: Một dự án công nghệ bắt đầu vào ngày định trước ngày kết thúc ước lượng, thông tin, thành viên có vai trò khác chịu trách nhiệm lên kế hoạch Đôi khi, dự án mà ngày kết thúc thay đổi được, lĩnh vực khác Mặc dù dự án khác, người ta thực ngược lại, tức phải tính toán thời gian bắt đầu dự án tiêu biểu thường có: dự án cho đảm bảo kết thúc thời hạn ƒ Quản lý dự án: người đứng đầu nhóm phát triển, chịu trách Mục tiêu: Một dự án đảm bảo phải hoàn thành mục đích nhiệm quản lý dự án, việc thực dự án Trong dự án công nghệ thông tin, kết hệ thống, theo quy trình kỹ thuật theo yêu cầu chuẩn sản phẩm phần mềm kết mang tính nghiên cứu Do đó, mục đưa Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 12 − − 13 − ƒ Chủ đầu tư: chủ đầu tư khách hàng, người quản Sự phụ thuộc lẫn công việc: dự án, có nhiều công lý trường hợp công ty sản xuất sản phẩm bán rộng rãi, việc phụ thuộc vào công việc khác Nếu công việc không hoàn người cung cấp tài nguyên để thực dự án thành hạn, thất bại kéo theo nhiều công việc khác bị trễ ƒ Các nhà chuyên môn: nhà chuyên môn khách hàng, người dùng cuối, người có kiến thức chuyên môn lĩnh vực mình, cung cấp kinh nghiệm, kiến thức phục vụ cho việc phát triển hệ thống Ví dụ, thực hệ thống phục vụ công việc kế toán, đội phát triển có thêm người am hiểu nghiệp vụ kế toán chia sẻ kiến thức họ việc phát triển hệ thống không thực được, làm ảnh hưởng chung đến toàn dự án Việc xem xét thuộc tính dự án cho ta nhìn toàn diện dự án, để từ đưa định đắn thực dự án 1.2.2 Các lĩnh vực quản lý dự án Nội dung quản lý dự án bao gồm lĩnh vực sau: hiệu việc người phát triển phải học toàn ƒ Quản lý tính thống – Tập trung vào việc thực kế kiến thức kế toán ƒ Chuyên gia kỹ thuật: cần phải có chuyên gia kỹ thuật việc cung cấp giải pháp kỹ thuật hiệu để giải hoạch xử lý thay đổi trình thực ƒ Quản lý phạm vi – Là việc đảm bảo công việc dự án vấn đề Có nhiều chuyên gia kỹ thuật lĩnh vực khác định nghĩa cách xác hoàn thành theo kế nhau, phân tích hệ thống, giải pháp mạng, thiết kế đồ hoạ, hoạch lập trình viên Các chuyên gia chịu trách nhiệm thiết kế, cài đặt giải vấn đề lĩnh vực ƒ Quản lý thời gian – Cần phải xác định giai đoạn công việc dự án, sau lịch, ước lượng thời gian, gán tài nguyên cho công việc quản lý trình thực Rủi ro: dự án tiềm ẩn rủi ro Rủi ro nảy sinh từ nguyên nhân bên nhóm thực dự án, ví dụ việc thành viên quan trọng rời khỏi nhóm phát triển dự án trình thực Những nguyên nhân rủi ro từ bên việc phải lệ thuộc vào nhà cung cấp, khách hàng thị trường Như cần phải coi rủi ro yếu tố hoàn toàn xảy phải chuẩn bị để đáp ứng với rủi ro cho dự án thực tiến độ ƒ Quản lý chi phí – Đảm bảo ngân sách cho việc thực hoàn thành dự án ƒ Quản lý chất lượng – Tập trung vào việc quản lý việc lập kế hoạch, thực kế hoạch cho kết đạt vượt yêu cầu mong đợi nhà đầu tư ƒ Quản lý nhân lực – Con người tài nguyên quan trọng dự án Quản lý nhân lực tập trung việc tạo lập phát Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 14 − − 15 − triển đội ngũ phát triển việc sử dụng hiệu nguồn nhân lực có ƒ Quản lý việc liên lạc – Giữ liên lạc thường xuyên Nhân lực tài nguyên cần thiết người phát triển dự án nhà đầu tư ƒ Quản lý rủi ro – Các dự án phải đối mặt với rủi ro Quản lý rủi ro việc dự tính đưa biện pháp xử lý rủi ro xảy đến với dự án ƒ Quản lý nguồn cung cấp – Rất nhiều tài nguyên cần thiết cho dự án phải đưa vào từ bên Quản lý nguồn cung cấp đảm bảo cho việc cung cấp tài nguyên ổn định 1.2.3 Vòng đời dự án trình phát triển dự án Định nghĩa mục tiêu dự án Lập kế hoạch Thực kế hoạch Đóng dự án Bắt đầu Đánh giá dự án Kết thúc Hình 1.1 - Quá trình thực dự án 1.2.3.1 Định nghĩa mục tiêu dự án Định nghĩa mục tiêu toàn dự án bước dự án Vòng đời dự án tập giai đoạn toàn khoảng thời gian Các mục tiêu định nghĩa tốt giúp cho nhóm phát triển tập trung thực từ dự án bắt đầu đến kết thúc để định nghĩa, xây dựng đưa sản công việc theo mục đích rõ ràng Ngoài ra, hầu hết dự án có phẩm dự án [3] Mỗi giai đoạn cần phải đưa kết công việc đặc điểm sau bắt đầu dự án: giai đoạn đó, kế hoạch dự án, tài liệu đặc tả, sản phẩm cuối Một dự án cần phải chia thành giai đoạn để quản lý dễ giảm rủi ro Ở cuối giai đoạn cần đưa kết ƒ Tại thời điểm bắt đầu dự án, nhân lực vật lực cần thiết thường thấp, tăng dần trình thực dự án, sau lại giảm dần tới dự án kết thúc thực giai đoạn Việc xem xét kết cho phép xác ƒ Rủi ro thời điểm bắt đầu cao nhất, xác định định hiệu dự án nhanh chóng đưa biện pháp điều chỉnh mục tiêu dự án dự án đưa vào thực khả thành công tăng dần hay giải vấn đề xuất giai đoạn ƒ Việc thay đổi phạm vi dự án dễ thực dự án bắt Mặc dù phương pháp phát triển phần mềm khác định nghĩa giai đoạn dự án khác nhau, phần sau đưa giai đoạn chung dự án Luận văn thạc sĩ khoa học đầu Càng sau, chi phí để thay đổi phạm vi dự án khắc phục lỗi cao 1.2.3.2 Lập kế hoạch dự án Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 16 − − 17 − Một mục tiêu dự án xác định, cần phải đưa kế hoạch thực dự án Kế hoạch dự án cần phải [3]: mục tiêu dự án Cuối giai đoạn này, nhóm phát triển cần đưa kết sản phẩm dự án 1.2.3.4 Đóng dự án ƒ Những công việc cần thực hiện? Đây việc chi tiết hoá mục tiêu dự án thành công việc cụ thể cần phải thực ƒ Thực công việc nào? Cần phải đưa giải pháp khả thi để thực công việc đề ƒ Ai thực công việc đó? Cần phải xác định nhân lực Như đề cập trên, thời điểm kết thúc dự án phải có có hạn định Việc đóng dự án đảm bảo toàn công việc hoàn thành theo kế hoạch xác nhận nhóm phát triển nhà đầu tư Kết dự án trình bầy với khách hàng thấy toàn yêu cầu hoàn thành phù hợp để thực công việc ƒ Thực thời gian bao lâu? Việc ước lượng thời gian thực dự án cần phải tiến hành ƒ Chi phí thực bao nhiêu? Cần phải dự toán chi phí thực dự án ƒ Có không ổn không, có phải xử lý nào? Đây dự đoán rủi ro xảy đến dự phòng phương án giải trường hợp có rủi ro ƒ Kế hoạch thực phải dự trù ngân sách sao? Các công việc cần phải lập lịch, ngân sách dự án hoạt động phải tính đến 1.2.3.5 Đánh giá dự án Sau dự án đóng, cần đánh giá dự án Những người quản lý người phát triển cần phải đánh giá độ thành công dự án, kinh nghiệm rút trình thực dự án Thêm vào đó, cần phải đánh giá xem dự án có quản lý tốt, tuân thủ quy trình, đáp ứng chuẩn đưa đầy đủ chức yêu cầu 1.3 Các phương pháp phát triển phần mềm Trong thời gian gần đây, nhiều phương pháp phát triển phần mềm đề xuất Nhiều phương pháp lý thuyết hoá thành Ngoài ra, cần công việc phải làm, tài nguyên cần phương pháp luận Trong dự án công nghệ thông tin, phương pháp luận thiết, thời gian thực kết cần đạt cho giai hiểu tập hoạt động thực tiễn hệ thống hoá đoạn dự án Tuỳ theo phạm vi dự án, điều kiện thời gian nhiều yếu tố khác mà lựa chọn áp dụng phương pháp khác nhau, kết hợp phương pháp 1.2.3.3 Thực dự án Sau kế hoạch dự án lập, bắt đầu tiến hành thực kế cho phù hợp hoạch dự án Trong trình thực dự án, phạm vi, nhân lực, lịch Các phương pháp phát triển phần mềm phân chia thành hai trình thực cần phải quản lý cách tích cực để đạt lớp chính: phương pháp truyền thống phương pháp phát triển Luận văn thạc sĩ khoa học Luận văn thạc sĩ khoa học Phạm Quang Hoà Phạm Quang Hoà − 18 − − 19 − nhanh Phần cung cấp nhìn tổng quan hai lớp phương Các phương pháp thường áp dụng cho dự án lớn Một số pháp Các phương pháp phát triển nhanh, nội dung luận văn, phương pháp tiêu biểu thuộc lớp như: Waterfall Model, Capability đề cập kỹ phần sau Maturity Model Sơ lược phương pháp sau: 1.3.1 Các phương pháp truyền thống Waterfall Model: Waterfall Model mô hình phát triển phần Các phương pháp truyền thống phương pháp thiên kế hoạch, mềm trình phát triển xem trình trôi trình phát triển phần mềm phải tuân thủ quy trình cách nghiêm ngặt đặn (giống thác nước) thông qua giai đoạn: phân tích yêu Trong trình phát triển phần mềm, nhiều tài liệu tạo ra, xét cầu, thiết kế, cài đặt, kiểm thử, tích hợp bảo trì Thuật ngữ Waterfall duyệt yếu tố quan trọng quản lý rủi ro đề cập viết xuất vào năm 1970 W W Royce [9] Với phương pháp này, toàn trình phát triển lên kế Capability Maturity Model (CMM): CMM thường hiểu hoạch chi tiết tài liệu trước phát triển chuẩn cách tiếp cận nhằm cải tiến quy trình dựa quy trình có bị đầy đủ Quá trình phát triển thực theo quy trình định CMM phát triển Software Engineering Institute (SEI) trường trước, việc tuân thủ quy trình làm tăng chất lượng phần mềm giảm Carnegie Mellon Pittsburgh, Pennsylvania, Mỹ [7] rủi ro 1.3.2 Các phương pháp phát triển nhanh Theo phương pháp này, trình phát triển phần mềm giống Các phương pháp phát triển nhanh gọi với tên Agile, theo sản xuất mặt hàng công nghiệp khác Những người phát triển thực nghĩa nhanh nhẹn, khéo léo hành động, phương pháp dựa công việc cách nghiêm ngặt theo chuẩn quy trình, không yêu quy trình phát triển nhanh Điều đặc biệt cần thiết lĩnh vực cầu sáng tạo nhiều Những người quản lý quan tâm đến việc tăng Internet truyền thông di động phát triển nhanh chóng lực sản xuất đạt số mục tiêu [10]: Các dự án phát triển theo phương pháp Agile dựa giá trị ƒ Giảm thiểu lỗi cho công việc diễn trơn tru thương mại, trình thực dự án điều khiển theo hướng đáp ứng ƒ Cố gắng giữ ổn định (về tổ chức, sản lượng ) thực theo kế hoạch Việc quản lý rủi ro đạt cộng ƒ Chuẩn hoá thao tác bắt buộc người thực phải tuân theo cách nghiêm ngặt tác chặt chẽ với khách hàng, giảm chu kỳ phát hành tập trung thực chức quan trọng trước ƒ Không cho phép sai sót Các phương pháp phát triển nhanh đời cách không lâu Nó bắt đầu Tuyên ngôn phương pháp phát triển phần mềm Agile Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 62 − − 63 − Trong trường hợp sản phẩm phần mềm đóng gói, phát hành Người ta làm việc hiệu tập trung vào công việc, để rộng rãi công việc vận hành, hỗ trợ kỹ thuật, giới thiệu sản tập trung vào công việc cần khoảng thời gian Thực tế cho thấy, để phẩm bán hàng, chuyển giao cho nhóm chuyên trách khác tập trung vào công việc người ta phải khoảng 15 phút nhiều hơn, Đồng thời, kế hoạch phiên chuẩn bị điều có nghĩa bị ngắt quãng phút cho công việc khác, thời gian làm việc tới 20 phút Do đó, cần giảm tối đa việc ngắt quãng trình làm việc Có nhiều nguyên nhân khiến người phát triển bị ngắt quãng Có thể kể số nguyên nhân việc gọi, nhận điện thoại, chat, hay việc phải chuyển sang xử lý vấn đề Có nhiều công việc bắt buộc, có nguyên nhân hạn chế được, việc tập trung làm việc có thực tốt hay không phụ thuộc nhiều vào ý thức người quy định cụ thể tổ chức Ngoài ra, để tăng khả tập trung, người không nên làm song song nhiều công việc lúc Điều nghe đơn giản, thực tế khó thực Đôi khi, người phát triển thực cài đặt chức năng, phải chuyển sang sửa chức khác, hay Hình 3.1 – Quy trình phát triển phần mềm đề xuất chí phải chuyển sang khắc phụ lỗi dự án khác điều kiện nhân lực thiếu Do đó, người quản lý cần phải có kế hoạch cụ thể, lịch phù hợp cho 3.2 Một số biện pháp tăng cường quản lý Trong phần đưa số biện pháp nhằm nâng cao khả quản lý dự án phần mềm Làm việc tập trung cần thiết cho công việc gì, biện pháp áp dụng cho tất giai đoạn quy trình 3.2.1 Làm việc tập trung 3.2.2 Giảm chu kỳ phát hành Cần cung cấp cho người phát triển khoảng thời gian làm việc liên tục mà không bị ngắt quãng Khái niệm khoảng thời gian làm việc tập trung gọi tên Jam Session [10] Luận văn thạc sĩ khoa học công việc cần phải làm để giảm tối đa việc chuyển đổi công việc Giảm chu kỳ phát hành có nghĩa nhanh chóng đưa sản phẩm với chức quan trọng nhất, nhất, liên tục cập nhật phiên cho khách hàng khoảng thời gian ngắn Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 64 − − 65 − Nếu phần mềm mà chuyển giao cho khách hàng hầu hết Cuộc họp thực theo nhóm công việc mang chức hoàn thành thường chất lượng thấp, đồng thời tốn tính độc lập, họp chung công việc nhóm phụ thuộc phải thay đổi Người quản lý tham gia họp chủ yếu lắng nghe Mặt khác, sản phẩm nhanh chóng chuyển giao cho khách hàng làm cho khách hàng hiểu phần mềm, từ đưa đóng góp hay yêu cầu xác Thêm vào đó, không phù hợp nhanh chóng nhận khắc phục, điều có nghĩa khả đáp ứng thay đổi tăng lên người phát triển trình bầy Để tránh thời gian, họp nên kéo dài không 15 phút, thực vào cuối buổi làm việc Việc thảo luận hàng ngày áp dụng cho hầu hết giai đoạn quy trình, tập trung chủ yếu giai đoạn cài đặt chức 3.2.4 Khách hàng tham gia phát triển Hầu hết phương pháp phát triển nhanh đưa chu kỳ phát Đây biện pháp thực đề xuất XP, hành ngắn, XP khoảng từ đến tuần hay Scrum 30 ngày Các khách hàng tham gia phát triển với thành viên dự án Nhiệm phiên cập nhật chuyển giao cho khách hàng cuối vòng lặp vụ khách hàng hỗ trợ người phát triển mặt chuyên môn, nghiệp vụ Biện pháp áp dụng giai đoạn cài đặt chức đưa kết ý kiến đánh giá góc độ người sử dụng Tuy nhiên, việc có khách hàng thường trực công ty suốt thời gian phát triển dự án điều tương đối khó khăn Điều có nghĩa 3.2.3 Thảo luận hàng ngày Các họp tiến hành hàng ngày, thành viên trình bày công việc hoàn thành, dự định công việc thực tới, nêu khó khăn vướng mắc đề xuất ý kiến cải tiến Những kết thu qua buổi họp đánh dấu vào lịch trình thực dự án, để từ đánh giá xác tiến độ thực dự án Ngoài ra, qua hop, thành viên nắm rõ tiến trình thực chức thành viên khác, để từ có điều chỉnh phù hợp, tránh việc phải đợi chờ phụ thuộc công việc phải có giải pháp để vừa đảm bảo tính cộng tác khách hàng, vừa đảm bảo không làm ảnh hưởng nhiều đến công việc khách hàng Một số giải pháp áp dụng như: ƒ Liên lạc thường xuyên với khách hàng – Bất điều chưa rõ ràng, muốn lấy ý kiến khách hàng gửi cho khách hàng thông qua thư điện tử gọi điện trực tiếp ƒ Phát triển nơi khách hàng làm việc – Đối với số công việc mang tính đặc thù cao, người phát triển tạo điều kiện để làm việc nơi khách hàng làm việc Điều đảm bảo khách hàng có sẵn mà không ảnh hưởng tới công việc khách hàng Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 66 − − 67 − ƒ Tạo điều kiện làm việc cho khách hàng – Tạo điều kiện để Lập trình theo cặp kỹ thuật hai người làm việc khách hàng làm công việc nơi máy tính Các công việc bao gồm thiết kế, cài đặt, kiểm thử phát triển phần mềm Tuỳ công việc cụ thể mà áp Theo hướng dẫn XP, người trực tiếp thiết kế, cài đặt mã, dụng phương án hay không người lại nghĩ chiến lược áp dụng, tích hợp ƒ Khách hàng cộng tác định kỳ – Khách hàng tham gia cách định kỳ số ngày tuần, thời gian khách hàng làm công việc bình thường Việc lịch tuỳ điều kiện cụ thể, cần phải đảm bảo đặn Như vậy, biện pháp mang lại nhiều lợi ích việc thực tương đối khó, cần phải có phối hợp tốt đặc biệt cần phải quan tâm tạo điều kiện người có thẩm quyền Giai đoạn lấy yêu cầu tất nhiên cần phải có tham gia khách hàng Khách hàng phát triển biện pháp chủ yếu tập trung vào giai đoạn cài đặt chức đưa kết 3.3 Một số biện pháp tăng cường phát triển phần mềm Phần đưa số phương pháp nhằm tăng cường chất lượng công việc phát triển phần mềm Những biện pháp giúp tăng suất lao động, giảm thiểu lỗi tăng chất lượng sản phẩm tạo cho phù hợp Kỹ thuật đòi hỏi hai người phải tăng cường trao đổi với nhau, đồng thời phải có lực chuyên môn tốt, khả phân tích tổng quát hoá Một số ưu điểm lập trình theo cặp kể sau: ƒ Tăng cường trao đổi trình giải vấn đề ƒ Tăng cường tập trung công việc ƒ Chất lượng công việc nâng cao thường xuyên theo dõi, xem lại Mặc dù kỹ thuật đưa nhằm mục làm tăng chất lượng phần mềm giảm thời gian phát triển, kỹ thuật tương đối xa lạ so với thực tế nay, áp dụng cách máy móc, rập khuôn dẫn đến việc gượng ép, không hiệu Việc áp dụng phải theo bước, từ bước đầu làm quen mà việc lập trình theo cặp làm cho người lập trình cảm thấy hứng thú Hầu hết biện pháp xuất phát từ hướng dẫn XP nêu phần 2.1.6 Nội dung phần nhằm mục đích cụ thể hoá việc Mục đề xuất số giải pháp áp dụng dựa điều kiện thực tế, là: thực biện pháp Người học hỏi người có kinh nghiệm, kỹ – Người có kinh 3.3.1 Lập trình theo cặp nghiệm, kỹ làm công việc máy đồng thời hướng dẫn kỹ thuật cho người mới, kinh nghiệm Theo cách người học Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 68 − − 69 − kỹ thuật, chuẩn tiếp thu kinh nghiệm từ người có kinh Như vậy, việc kiểm thử công việc tương đối tốn thời gian Nhiều nghiệm Ngoài ra, người theo dõi suy nghĩ tạo liệu người phát triển cho họ người có trách nhiệm thực kiểm thử cho phản ánh tốt hoạt động chức việc kiểm thử, hầu hết ngại công việc thực Dể việc kiểm thử hiệu quả, việc kiểm thử phải thực Người có kinh nghiệm giúp đỡ cho người – Đây cách áp dụng ngược với biện pháp Người thực công việc máy người có kinh nghiệm, kỹ theo dõi, đóng góp ý kiến, giúp đỡ cho người cách có phương pháp Đã có nhiều phương pháp nghiên cứu, phần đề cập số cách tiếp cận phù hợp chấp nhận rộng rãi 3.3.2.1 Tạo kiểm thử trước cài đặt Cách tiêp cận biết đến với tên Test Driven Development Áp dụng tuỳ theo tính chất công việc – Áp dụng lập trình theo cặp (TDD) Trước tiên tạo kiểm thử mời cài đặt chức Điều công việc quan trọng, cần phải trao đổi nhiều Điều nghe vẻ ngược với cách kiểm thử mà thường sử dụng: đặc biệt quan trọng ghép tính với nhau, để tích kiểm thử viết dựa chức cài đặt hợp tốt cần phải hai người thực Quá trình thực qua bước sau [8]: Lập trình theo cặp áp dụng bước phân tích, chủ yếu áp dụng giai đoạn cài đặt chức 3.3.2 Áp dụng phương pháp kiểm thử Chúng ta phải công nhận việc kiểm thử quan trọng Một chức đưa đảm bảo hoạt động kiểm thử Thông thường việc kiểm thử giao cho người kiểm thử, người kiểm thử kiểm thử chức sản phẩm đưa thông qua giao diện người dùng Với cách này, người kiểm thử thường kiểm tra không kỹ, bị trọng vào vài mảng chức mà bỏ qua chức khác Do đó, lỗi tiềm ẩn không phát Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 70 − − 71 − ƒ Bước 4: Chạy tất thử Chạy lại tất thử, không qua nghĩa chức Bắt đầu cần phải chỉnh sửa lại (quay lại bước 3) Nếu qua toàn Thêm thử bộ, công việc hoàn thành kết thúc, ngược lại quay lại bước để bắt đầu việc cài đặt chức qua Thực thử Với cách tiếp cận này, để viết kiểm thử cho thất bại chức phải suy nghĩ chức phải xác định Cài đặt chức cách sử dụng chức Nếu kiểm thử cho chức năng, Cài đặt tiếp thất bại Thực thử có nghĩa chức không cần thiết 3.3.2.2 Kiểm thử đơn vị Dừng cài đặt Kiểm thử đơn vị kiểm thử đơn vị nhỏ mà kiểm thử Kết thúc Các đơn vị phương thức, hay chức nhỏ Kiểm thử đơn vị kiểm tra xem đơn vị có thực thiết kế Hình 3.2 – Quy trình kiểm thử TDD không Kiểm thử đơn vị áp dụng cho phương thức, thành phần khác mang tính chất phụ trợ cần thiết ƒ Bước 1: Viết thử Dựa vào yêu cầu hệ thống dự định chức cần cài đặt, viết Kiểm thử đơn vị thực dựa kiểm thử Bộ kiểm thử danh sách kiểm thử, có cột: chức cần kiểm thử cho chức cài đặt thử, liệu đưa vào thao tác, kết đầu mong đợi đáp ứng ƒ Bước 2: Chạy tất thử Chạy thử thử Kết phải thất bại chức chưa hệ thống Và người kiểm thử tiến hành thực ghi kết kiểm thử cài đặt, kiểm thử qua có nghĩa kiểm vào cột kết kiểm thử thử thêm vào không xác, phải sửa lại đưa kiểm thử khác 3.3.2.3 Kiểm thử chức Kiểm thử chức việc kiểm tra chức lớn hơn, kiểm tra ƒ Bước 3: Cài đặt chức hoạt động toàn hệ thống Ở mức này, việc kiểm thử nhằm kiểm tra xem Cài đặt chức mà viết kiểm thử, chức hệ thống hoạt động có yêu cầu, mong muốn khách hàng hay mà Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 72 − − 73 − không Việc định kết có đạt hay đánh giá khách hàng, người dùng cuối Kent Beck đưa cách thực hành, xoá tất thứ mà mục đích cả, tất nhiên phải đảm bảo vượt qua toàn Để đánh giá xác, toàn diện, kiểm thử chức phải thực khoảng thời gian dài, với liệu thực tế kiểm thử Khi lại thiết kế đơn giản thực 3.3.4 Tích hợp liên tục thực điều kiện thực tế Các phương pháp kiểm thử đơn vị áp dụng giai đoạn cài đặt chức năng, chức tạo Kiểm thử chức áp dụng chủ yếu giai đoạn đưa kết quả, Đây hướng dẫn thực XP Tích hợp liên tục có nghĩa đưa vừa làm vào trở thành phần toàn hệ thống sau tạo ra, kiểm thử hệ thống hoạt động chức tương tác với ƒ Việc thực theo bước sau: ƒ Sao lưu toàn dự án thời ƒ Tích hợp vừa hoàn thành 3.3.3 Thiết kế đơn giản Đây khuyến cáo đề xuất XP dựa giá trị phương pháp này, tính đơn giản Thiết kế đơn giản có nghĩa chọn phương án đơn giản thực được, thiết kế thời cần, có sau Nhưng gọi đơn giản nhất, Kent Beck đưa số tiêu chí đánh sau [2]: ƒ Hệ thống phải truyền tải tất bạn muốn truyền tải ƒ Giải tất xung đột có ƒ Chạy tất kiểm thử để đảm bảo thứ hoạt động mong đợi Việc tích hợp liên tục có lợi ích chức tích hợp cách nhanh vào hệ thống, điều hạn chế tình trạng phải chờ đợi tượng phụ thuộc chức Ngoài ra, việc tích hợp liên tục có ưu điểm nữa, giúp cho người phát triển tập trung vào chức nhất, chức phát triển Một chức hoàn thành, tích hợp ƒ Hệ thống không chứa mã bị lặp lại kiểm thử đầy đủ, người phát triển bận tâm đến ƒ Hệ thống phải có lớp ƒ Hệ thống phải có phương thức 3.3.5 Đưa chuẩn lập trình Chuẩn hoá viết mã cần thiết Viết mã theo chuẩn giúp cho việc trao đổi mã dễ Ngay người viết mã, chuẩn viết mã Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 74 − − 75 − giúp cho họ theo dõi mã nguồn, kiểm tra lại mã nguồn nhanh xác Cơ sở lý thuyết sử dụng để đưa mô hình phương pháp phát triển nhanh nghiên cứu áp dụng giới Trong Thực tế cho thấy, không đưa chuẩn người viết theo cách mà theo họ tốt nhất, việc tiếp nhận hiểu mã nguồn một công việc khó khăn mô hình đề xuất, ưu điểm phương pháp trích chọn áp dụng Thêm vào đó, số kỹ thuật tiêu biểu khác đưa vào Trong mục chương này, đề xuất biện pháp áp dụng cụ Từ cho thấy, cần phải tạo chuẩn mang tính hướng dẫn cao, phải đồng thuận người phát triển cách tự nguyện Bộ chuẩn phải cố gắng đơn giản nhất, có tính thống cao phù hợp với thể dựa điều kiện thực tế, có biện pháp cụ thể, áp dụng ngay, có biện pháp mang tính hướng dẫn, việc áp dụng tuỳ biến theo người sử dụng Theo đánh giá tôi, mô hình đưa phù hợp Tuy nhiên, công nghệ sử dụng để khẳng định hiệu mô hình, cần phải thử nghiệm Các chuẩn đưa bao gồm lĩnh vực: thời gian dài, phải cải tiến, sửa đổi cho phù hợp phải ƒ Giao diện – Các quy tắc, hướng dẫn kích cỡ, màu sắc, bố đánh giá đầy đủ cục giao diện ƒ Viết mã – Các quy tắc, hướng dẫn đặt tên, bố cục, giải thích mã nguồn Để áp dụng chuẩn dễ hơn, in đặt vị trí cho người phát triển nhìn thấy họ cần, ví dụ dán lên tường phía trước người phát triển Để in tờ giấy, chuẩn phải cố gắng nhỏ gọn tổng quát 3.4 Kết chương Trong chương này, đưa mô hình áp dụng phương pháp phát triển nhanh phát triển dự án có phạm vi nhỏ, yêu cầu thường xuyên thay đổi Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 76 − − 77 − CHƯƠNG - ÁP DỤNG THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ NGHIÊN CỨU Giám đốc Để đánh giá mô hình đề xuất chương 3, cần phải đánh giá kết dự án triển khai thử nghiệm Trong Nhóm kinh doanh Nhóm phát triển Hỗ trợ kỹ thuật chương này, số dự án áp dụng thử nghiệm giới thiệu đánh giá Marketing Trưởng nhóm Triển khai Hỗ trợ khách hàng Thiết kế Sửa lỗi Lập trình viên Nhập liệu Kiểm thử Bảo trì Các kết thu dùng để đánh giá phần phương pháp nghiên cứu 4.1 Môi trường áp dụng Các thử nghiệm tiến hành số dự án thuộc công ty TNHH Giải pháp kỹ thuật quốc tế (ITS) Đây công ty phát triển phần mềm lĩnh vực Web ứng dụng quản lý Phần giới thiệu sơ Hình 4.1 – Cơ cấu tổ chức công ty lược số đặc điểm công ty 4.1.2 Về nhân lực 4.1.1 Về tổ chức Đối với người lãnh đạo, người động, nhanh Vì công ty nhỏ nên tổ chức gọn nhẹ Đứng đầu giám đốc, người đóng vai trò đưa định, đồng thời người trực nhạy công việc ủng hộ việc đưa áp dụng cải tiến Đây điều kiện tốt để áp dụng mô hình thử nghiệm tiếp quản lý dự án Ngoài có phó giám đốc phụ trách kỹ thuật, Việc áp dụng không thành công không hợp tác phó giám đốc kinh doanh người trực tiếp phát triển phần mềm Tuy người có Đội ngũ phát triển chia thành nhóm nhỏ, nhóm gồm từ đến 10 người, đứng đầu trưởng nhóm Việc phân chia nhóm linh động, phụ thuộc vào quy mô tính chất dự án phương pháp điều cần thiết phải đưa mô hình đơn giản, dễ áp dụng áp dụng Ngoài ra, đội ngũ kinh doanh, bán hàng thường xuyên điều động vào làm việc với nhóm phát triển, để hiểu rõ hệ thống việc cung cấp phản hồi từ phía khách hàng Luận văn thạc sĩ khoa học kiến thức, lực chuyên môn để đưa vào áp dụng Phạm Quang Hoà 4.1.3 Về công nghệ Do tính chất nhỏ gọn, linh hoạt đội ngũ phát triển nên việc áp dụng công nghệ, kỹ thuật phát triển phần mềm thực Luận văn thạc sĩ khoa học Phạm Quang Hoà − 78 − − 79 − thường xuyên hiệu Kỹ thuật, công nghệ tốt làm tăng suất lao động, giảm thiểu lỗi tăng khả đáp ứng thay đổi ƒ Quản lý thông tin tất trung tâm đào tạo liên kết với khoa ƒ Quản lý thông tin giáo viên, môn 4.1.4 Đánh giá ƒ Lập thời khoá biểu trực quan lịch Từ đặc điểm vừa nêu, kết luận việc đưa phương ƒ In phiếu báo giảng, thời khoá biểu báo cáo khác pháp phát triển nhanh vào áp dụng môi trường công ty phù hợp có Vì tính chất công việc, khách hàng yêu cầu thời gian thực dự án thể đem lại hiệu cao yêu cầu không tuần, 4/2006 Ngoài ra, mô hình đề xuất áp dụng tốt công ty khác, có quy mô, tổ chức đặc điểm khác tương tự 4.2.1.2 Giải pháp thực Lựa chọn công nghệ: 4.2 Giới thiệu số dự án thử nghiệm Công nghệ sử dụng dự án công nghệ NET Vì cách tiếp cận phương pháp phát triển nhanh tương đối lạ, việc áp dụng bước đầu Các dự án áp dụng thử Microsoft, sử dụng môi trường Microsoft Visual Studio 2003 sở liệu SQL Server 2000 nghiệm có quy mô tương đối nhỏ, thời gian phát triển ngắn nhân lực sử Nhân lực: dụng không nhiều Do dự án nhỏ, nên đội phát triển gồm nhóm có thành viên, 4.2.1 Dự án phần mềm lập thời khoá biểu có thành viên phát triển 4.2.1.1 Mô tả dự án Dự án Phần mềm lập thời khoá biểu dự án nhằm xây dựng Một số đặc điểm áp dụng: phần mềm cho phép tạo lịch giảng cho giáo viên, môn học cho trạm đào tạo xa Phần mềm xây dựng theo yêu cầu khoa Đại học Tại Quy trình quản lý phát triển sử dụng dựa mô hình đề xuất, khung thời gian xác định cụ thể Với thời gian phát chức, trường đại học Giao thông Vận tải triển ngắn, nên khung thời gian giảm xuống tối đa Đây dự án nhỏ, phần mềm yêu cầu với chức Giai đoạn khảo sát lấy yêu cầu thực vòng tuần, sau: yêu cầu khác bổ sung trình thực dự án ƒ Quản lý chương trình học tất ngành học Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 80 − − 81 − Khung thời gian cho vòng lặp tính theo tuần Phiên thử Độ thoả mãn yêu cầu khách hàng nghiệm đưa chức cài đặt Các phiên Bảng 4.1 – Đánh giá kết dự án đưa hàng tuần Do dự án nhỏ, nên kết thực dự án chưa thể đánh Các kỹ thuật sử dụng giá nhiều mô hình đề xuất Tuy nhiên, dự án cho thấy bước đầu Trong dự án này, số kỹ thuật áp dụng giảm chu kỳ phát hành, áp dụng kỹ thuật kiểm thử, thiết kế đơn giản sử dụng chuẩn thiết kế lập trình áp dụng phương pháp phát triển mới, mức đơn giản 4.2.2 Dự án Phần mềm quản lý bán hàng 4.2.1.3 Đánh giá kết thực 4.2.2.1 Mô tả dự án Dự án kết thúc khoảng thời gian yêu cầu, khai thác người sử dụng đánh giá cao Phần mềm Quản lý bán hàng phần mềm bán hàng dành cho cửa hàng vừa nhỏ Đây phần mềm đóng gói, với mục tiêu phục vụ Trong trình thực dự án, số kết thu sau: ƒ Thời gian khảo sát lấy yêu cầu: khoảng tuần ƒ Thời gian đưa phiên đầu tiên: tuần ƒ Thời gian đưa phiên cập nhật: tuần ƒ Số phiên cập nhật: cho nhiều cửa hàng khác nhau, với quy mô từ nhỏ tới trung bình áp dụng cho nhiều loại mặt hàng khác Dự án thực từ 6/2006 Phần mềm xây dựng với số nội dung sau: ƒ Quản lý danh mục mặt hàng, phân loại theo tiêu chí khác Dự án đánh giá thành công, thời gian thực đảm bảo thoả mãn yêu cầu khách hàng mong muốn người sử dụng Bảng 4.1 đánh giá cách tương đối kết thực dự án số tiêu chí STT Tiêu chí đánh giá Đánh giá Tiến độ thực dự án Đúng hạn Chất lượng giai đoạn Hoàn thành tiến độ Lỗi phát sinh Thấp Các thay đổi Trung bình Luận văn thạc sĩ khoa học Cao Phạm Quang Hoà ƒ Quản lý nhập kho, tồn kho ƒ Quản lý bán hàng ƒ Đưa cảnh báo mặt hàng thừa, thiếu, hết hạn ƒ Đưa báo cáo thống kê Với đặc điểm phần mềm đóng gói, nên phần mềm phải xây dựng với tính mở cao, dễ tuỳ biến 4.2.2.2 Giải pháp thực Lựa chọn công nghệ: Luận văn thạc sĩ khoa học Phạm Quang Hoà − 82 − − 83 − Phần mềm xây dựng sử dụng công nghệ NET Microsoft, Trong dự án này, số kỹ thuật áp dụng như: áp dụng kỹ phát triển môi trường Microsoft Visual Studio 2005 sở thuật kiểm thử, thiết kế đơn giản sử dụng chuẩn thiết kế liệu SQL Server 2005 Đây công nghệ lần áp dụng lập trình công ty, đánh giá mạnh để khai thác tốt công nghệ 4.2.2.3 Đánh giá kết thực cần phải có thời gian học khai thác bước Hiện phiên beta sản phẩm số khách hàng sử dụng phản hồi Các phiên cập nhật phần mềm tiếp tục Nhân lực: đưa Đội phát triển dự án gồm nhóm thành viên, gồm Trong trình phát triển, thu số kết sau: nhóm trưởng ƒ Thời gian đưa phiên đầu tiên: tuần Một số đặc điểm áp dụng: ƒ Thời gian đưa phiên cập nhật: từ đến tuần Quy trình áp dụng theo mô hình đề xuất, có ƒ Số phiên cập nhật: số điểm khác biệt tính chất dự án Một số đánh giá đưa bảng 4.2 Do đặc thù phần mềm đóng gói, nên giai đoạn khảo sát lấy yêu cầu cần phải thực lâu hơn, phải thu thập nhiều ý kiến khác tham khảo chương trình thương mại có Trong giai đoạn phát triển, việc kiểm thử đơn vị kiểm thử chức thực người phát triển Phiên đưa hầu hết chức cài đặt Phiên cung cấp cho số khách hàng mời sử dụng Dựa vào phản hồi khách hàng để tiến hành cải tiến phần mềm STT Tiêu chí đánh giá Đánh giá Tiến độ thực dự án Đúng hạn Chất lượng giai đoạn Hoàn thành tiến độ Lỗi phát sinh Trung bình Các thay đổi Cao Độ thoả mãn yêu cầu khách hàng Trung bình Bảng 4.2 – Đánh giá kết dự án Dự án trình khai thác thử nghiệm Các khách hàng tham gia sử dụng đánh giá tốt, cần phải có thêm thời gian Các kỹ thuật sử dụng đánh giá chính xác hiệu dự án Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 84 − − 85 − Đây dự án mà yêu cầu không rõ ràng, thường xuyên thay đổi Phần mềm làm phải tuỳ biến theo mong muốn người dùng cụ thể, việc áp dụng quy trình, kỹ thuật giới thiệu phương pháp phát triển nhanh góp phần vào thành công dự án 4.2.3 Dự án Phần mềm quản lý nhà hàng phiên 4.2.3.1 Mô tả dự án Đội phát triển dự án gồm nhóm thành viên Một số đặc điểm áp dụng: Do phần mềm đóng gói, nên quy trình áp dụng có điểm tương tự đưa 4.1.2.2 Vì phiên nâng cấp, nên hầu hết chức thực Phần mềm quản lý nhà hàng phiên phần mềm phát triển dựa phần mềm Quản lý nhà hàng thực trước Dự án dựa phiên có Ngoài ra, yêu cầu thu trình khai thác tập hợp lại để đưa vào sản phẩm 10/2006 4.2.3.3 Đánh giá kết thực Phần mềm xây dựng với số chức sau: thấy với việc áp dụng quy trình, kỹ thuật phương pháp phát triển ƒ Quản lý thực đơn nhanh đem lại hiệu tốc độ làm việc, tỷ lệ lỗi giảm, giai đoạn ƒ Quản lý nguyên vật liệu hoàn thành hạn ƒ Quản lý nhập, xuất kho ƒ Quản lý đặt bàn, chế biến ăn 4.3 ƒ Đưa báo cáo thống kê Đánh giá chung Qua việc áp dụng thử nghiệm số dự án, đưa số Tuy phiên 2, thiết kế lại hoàn toàn, sử dụng công nghệ đưa vào nhiều cải tiến so với phiên trước 4.2.3.2 Giải pháp thực đánh giá chung khả năng, hiệu việc áp dụng phương pháp phát triển nhanh Thứ nhất, việc áp dụng quy trình quản lý điều Lựa chọn công nghệ: đơn giản Việc cần phải có hỗ trợ người lãnh đạo, Phần mềm xây dựng NET Microsoft, phát triển môi trường Microsoft Visual Studio 2005 sở liệu SQL Server 2005 người phát triển Thực tế cho thấy, việc áp dụng thường không ngay, mà phải thực qua bước Thứ hai, áp dụng mô hình mới, nên đưa vào thử Nhân lực: Luận văn thạc sĩ khoa học Dự án triển khai thực Các kết bước đầu cho nghiệm số dự án nhỏ, với thời gian phát triển ngắn Kết dự Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 86 − − 87 − án phần đánh giá hiệu việc áp dụng Tuy nhiên, KẾT LUẬN kết chứng minh tính khả thi phương pháp Qua luận văn này, giới thiệu điểm lĩnh vực Từ cho thấy, để đánh giá đầy đủ lợi ích mà quản lý dự án phương pháp triển phần mềm, giới thiệu chi tiết phương pháp đem lại, cần phải có thời gian áp dụng tương đối dài, đồng số phương pháp phát triển phần mềm tiêu biểu thuộc lớp phương thời cần phải cải tiến mô hình áp dụng cho phù hợp pháp phát triển nhanh Từ đề xuất mô hình áp dụng phương pháp nghiên cứu dựa hoàn cảnh cụ thể môi trường áp dụng Luận văn trình bầy bốn chương Chương trình bầy tổng quan nội dung lĩnh vực quản lý dự án nói chung dự án công nghệ thông tin nói riêng Các phương pháp phát triển phần mềm đề cập sơ lược chương Trong chương 2, số phương pháp phát triển phần mềm tiêu biểu thuộc lớp phương pháp phát triển nhanh đề cập chi tiết Các phương pháp giới thiệu bao gồm: Extreme Programming, Scrum Adaptive Software Development Ngoài ra, phần đánh giá so sánh phương pháp cho thấy đặc điểm phương pháp để áp dụng hiệu Dựa kiến thức nghiên cứu chương 2, mô hình áp dụng đề xuất chương Mô hình áp dụng kết hợp điểm mạnh phương pháp Extreme Programming Scrum, đưa vào số kỹ thuật phụ trợ làm việc tập trung, kỹ thuật kiểm thử Mô hình đề xuất áp dụng thử nghiệm số dự án Chương giới thiệu sơ lược dự án thử nghiệm kết đánh giá dự án Những kết cho thấy việc áp dụng phương pháp phát triển nhanh đem lại hiệu bước đầu phát triển phần mềm, đồng thời Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 88 − − 89 − cho thấy việc áp dụng nhiều khó khăn, cần phải có thêm nhiều TÀI LIỆU THAM KHẢO ủng hộ từ phía người lãnh đạo người phát Abrahamsson P., Salo O., Ronkainen J., Warsta J (2002), Agile software development methods Review and analysis, VTT Publications 478, Finland triển Những đóng góp khoa học luận văn: Luận văn đề cập đến lĩnh vực nghiên cứu mẻ có nhiều áp dụng thực tiễn, phương pháp phát triển nhanh Một số phương pháp tiêu biểu giới thiệu đánh giá ưu điểm, hạn chế khả áp dụng phương pháp Beck K (2000), Extreme Programming Explained: Embrace Change, Addison Wesley, Boston Marchewka J T (2003), Information Technology Project Management, John Wiley & Son, United State Multiple authors (2001), Manifesto for Agile Software Development, http://agilemanifesto.org Schwaber K (1996), SCRUM Development Process Trong luận văn, người làm luận văn đưa quy trình phát triển phần mềm kỹ thuật phát triển dựa việc kết hợp phương pháp Scrum Extreme Programming Các bước quy trình, hướng dẫn thực chi tiết hoá thông qua biện pháp cụ thể Những nghiên cứu áp dụng số dự án phần mềm Các kết bước đầu cho thấy hiệu việc áp dụng tính khả Theunissen W H M (2003), A case-study based assessment of Agile software development, University of Pretoria, South Africa Wikipedia (2006), Capability Maturity Model, http://en.wikipedia.org/wiki/Capability_Maturity_Model Wikipedia (2006), Test Driven Development, http://en.wikipedia.org/wiki/Test_driven_development Wikipedia (2006), Waterfall Model, http://en.wikipedia.org/wiki/Waterfall_model 10 Zagrodnick C (2005), Agile Development in Small and Medium Sized Projects, Netherlands thi phương pháp Hướng phát triển đề tài: Tiếp tục nghiên cứu phương pháp phát triển nhanh, bao gồm phương pháp đánh giá tương đối đầy đủ, phương pháp đề xuất Tăng cường việc áp dụng nghiên cứu vào thực tiễn, để từ cải tiến mô hình đề xuất dựa kết thu được, đồng thời nghiên cứu, áp dụng ưu điểm phương pháp Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà PHỤ LỤC PRINCIPLES BEHIND THE AGILE MANIFESTO MANIFESTO FOR AGILE SOFTWARE DEVELOPMENT We follow these principles: We are uncovering better ways of developing software by doing it and helping others it Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas Our highest priority is to satisfy the customer through early and continuous deliveryof valuable software Welcome changing requirements, even late in development Agile processes harness change for the customer's competitive advantage Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale Business people and developers must work together daily throughout the project Build projects around motivated individuals Give them the environment and support they need, and trust them to get the job done The most efficient and effective method of conveying information to and within a development team is face-to-face conversation Working software is the primary measure of progress Agile processes promote sustainable development The sponsors, developers, and users should be able to maintain a constant pace indefinitely Continuous attention to technical excellence and good design enhances agility Simplicity the art of maximizing the amount of work not done is essential The best architectures, requirements, and designs emerge from self-organizing teams At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly [...]... một số phương pháp phát triển phần mềm tiêu biểu thuộc lớp các phương pháp phát triển nhanh, bao gồm Extreme Từ đó cho thấy, cần phải nghiên cứu, áp dụng các phương pháp phát Programming (XP), Scrum và Adaptive Software Development (ASD) triển phần mềm phù hợp, có khả năng áp ứng thay đổi nhanh để có thể đưa Trong các phương pháp này, Scrum và ASD là các phương pháp thiên ra được sản phẩm phần mềm có... thuẫn giữa các phương pháp truyền thống và các phương pháp phát triển nhanh Vấn đề là ở chỗ những điều mà các Luận văn thạc sĩ khoa học Phạm Quang Hoà Luận văn thạc sĩ khoa học Phạm Quang Hoà − 22 − − 23 − phương pháp phát triển nhanh và các phương pháp truyền thống chú trọng vào là khác nhau Điểm chính của các phương phát phát triển nhanh là việc áp ứng thay đổi trong khi các phương pháp truyền thống... pháp truyền thống tập trung vào kế hoạch Các phương pháp phát triển nhanh được đề cập kỹ hơn trong chương 2 CHƯƠNG 2 - MỘT SỐ PHƯƠNG PHÁP PHÁT TRIỂN NHANH TIÊU BIỂU Hiện nay, đã có nhiều phương pháp phát triển nhanh được đề xuất và áp dụng Mỗi phương pháp có một cách tiếp cận khác nhau, đưa ra những quy trình, các hướng dẫn thực hiện riêng Nhưng chung nhất, các phương pháp 1.4 này đều có những tính... với các phương pháp khác để có thể thu được hiệu quả cao nhất Từ đó dẫn đến ý tưởng kết hợp Scrum và XP để có thể tận dụng những 2.4.2 Khả năng và phạm vi áp dụng Trong phần này, chúng ta sẽ đánh giá khả năng áp dụng, phạm vi áp dụng cũng như việc áp dụng các phương pháp ưu điểm của hai phương pháp này Chương 3 sẽ đưa ra một mô hình áp dụng kết hợp Scrum và XP dựa trên những điều kiện thực tế áp dụng. .. tiên của các chức năng đó Đặc biệt, trong XP, khách hàng còn tham gia vào đội phát triển 2.4 Đánh giá và so sánh các phương pháp Trong phần này, chúng ta sẽ đánh giá và so sánh các phương pháp được đề cập trong phần 2.3 Việc đánh so sánh các phương pháp là tương đối khó khăn, không thể nói đơn giản là phương pháp này hay hơn phương pháp kia, Luận văn thạc sĩ khoa học Phạm Quang Hoà dự án với tư cách là... hoạch 2.3.1 Giới thiệu Phát triển các tính năng Đánh giá chất lượng Phát hành Phương pháp phát triển phần mềm thích nghi (Adaptive Software Development – ASD) được phát triển bởi James A Highsmith, là một trong Suy đoán Cộng tác Học những phương pháp thuộc lớp các phương pháp phát triển nhanh Phương pháp này tập trung chủ yếu trong việc giải quyết các vấn đề xuất hiện trong các hệ thống phức tạp, nhiều... và các Mô hình đưa ra áp dụng tốt nhất cho các dự án với phạm vi vừa, thời gian phát triển ngắn, yêu cầu khách hàng thường xuyên thay đổi Ngoài ra, do tính linh hoạt của các phương pháp, nên việc áp dụng phù hợp với những công ty có số lượng thành viên không lớn, tổ chức gọn nhẹ linh hoạt Phần này sẽ đưa ra một cách chi tiết mô hình áp dụng các phương pháp Scrum và Extreme Programming trong phát triển. .. tiết các mục tiêu của dự án là một việc tương đối khó khăn, vì thế khi dự phát triển phần mềm thuộc lớp các phương pháp phát triển nhanh Mỗi án bắt đầu, chỉ những mục tiêu chung nhất, mang tính định hướng được xác phương pháp đều có những ưu điểm riêng, và phù hợp trong các điều kiện định khác nhau Để có thể tận dụng thế mạnh của các phương pháp, cần phải xác định những điểm mạnh của từng phương pháp và. .. tham gia của khách hàng Khách hàng cùng phát triển là biện pháp chủ yếu tập trung vào giai đoạn cài đặt các chức năng và đưa ra các kết quả 3.3 Một số biện pháp tăng cường trong phát triển phần mềm Phần này sẽ đưa ra một số phương pháp nhằm tăng cường chất lượng công việc phát triển phần mềm Những biện pháp này sẽ giúp tăng năng suất lao động, giảm thiểu lỗi và tăng chất lượng sản phẩm được tạo ra sao... thể áp dụng kết hợp với một phương pháp phát triển phần mềm khác Và cuối cùng là XP, như chúng ta đã thấy XP đưa ra nhiều ý tưởng khá hay và hiệu quả, như khách hàng cùng làm việc hay lập trình theo cặp XP không cứng nhắc việc áp dụng, mà chỉ mang tính chất chỉ đạo, nên việc áp dụng XP dễ hơn Chúng ta có thể áp dụng XP đầy đủ, nhưng cũng có thể sử dụng những gợi ý của phương pháp này và kết hợp với các

Ngày đăng: 06/08/2016, 22:58

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan