PHƯƠNG PHÁP PHÁT TRIỂN PHẦN MỀM LINH HOẠT AGILE

53 1.1K 3
PHƯƠNG PHÁP PHÁT TRIỂN PHẦN MỀM LINH HOẠT AGILE

Đ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

MỤC LỤC MỤC LỤC 2 MỞ ĐẦU 3 CHƯƠNG I. CƠ SỞ LÍ LUẬN CỦA ĐỀ TÀI 6 7 8 10 11 13 CHƯƠNG II. PHƯƠNG PHÁP PHÁT TRIỂN PHẦN MỀM LINH HOẠT AGILE 16 CHƯƠNG III: LẬP TRÌNH CỰC HẠN – XP 30 Theo mô tả của Beck’s (1999b), hình…, dự án phần mềm phát triển bằng phương pháp XP có những pha cơ bản sau: 33 i.Khảo sát (Exploration phase) 33 XP không dành riêng một khoảng thời gian cố định ban đầu cho việc thu thập yêu cầu. Đại diện khách hàng sẽ ngồi làm việc chung với đội dự án, người đại diện này không nhất thiết phải là khách hàng thật, chỉ cần là người hiểu rõ các yêu cầu của sản phẩm. Người đại diện khách hàng sẽ viết ra các yêu cầu về sản phẩm vào “user stories”. Mỗi “user stories” sẽ mô tả một đặc trưng của chương trình. Trong khi đó, nhóm phát triển sẽ giới thiệu những công cụ, công nghệ, những công việc mà họ sẽ sử dụng trong dự án đó. Đối với những yêu cầu khó hiểu, đại diện khách hàng cùng với các tester tạo ra những ví dụ chi tiết gọi là “customer test”. Đối với các giao diện đồ họa, đại diện khách hàng cùng đội dự án sử dụng các công cụ để tạo ra các bản phác thảo trước khi bắt tay vào lập trình. Một số dự án thuê người thiết kế giao diện riêng 33 ii.Lập kế hoạch 33 34 CHƯƠNG IV. SỬ DỤNG PHƯƠNG PHÁP XP ĐỂ XÂY DỰNG PHẦN MỀM TẠO MÁY RÚT TIỀN TỰ ĐỘNG ATM 41 43 44 45 47 48 49 Phương pháp phát triển phần mềm linh hoạt Agile KẾT LUẬN VÀ KIẾN NGHỊ 51 TÀI LIỆU THAM KHẢO 53 PHỤ LỤC 54 MỞ ĐẦU 1. Tính cấp thiết của vấn đề nghiên cứu Lịch sử phần mềm phát triển từ khoảng cuối thập niên 40 của thế kỷ trước, nhờ công nghệ thông tin con người tạo ra những phần mềm từ dạng bé nhất bằng cách đục lỗ, cho đến những phần mềm xử lý tính toán phức tạp với kích thước hàng triệu dòng code, tạo ra nhiều ứng dụng trong mọi mặt của đời sống kinh tế - xã hội. Cùng với sự phát triển như vũ bão của Công nghệ thông tin nói chung và ngành công nghệ phần mềm nói riêng, việc phát triển phần mềm ngành ngày nay được hỗ trợ bởi nhiều công cụ tiên tiến, giúp cho việc xây dựng phần mềm nhanh chóng và hiệu quả hơn Tuy nhiên, vì độ phức tạp của phần mềm và những giới hạn về thời gian và chi phí, cho dù các quy trình sản xuất phần mềm ngày càng chặt chẽ và khoa học cũng khó có thể đáp ứng yêu cầu ngày càng cao từ phía người sử dụng. Chính vì thế, đặt ra một câu hỏi lớn: Có phương pháp phát triển phần mềm nào giải quyết được những hạn chế trên hay không? Từ trước đến nay đã có nhiều phương pháp phát triển phần mềm được sử dụng. Tuy nhiên, với các phương pháp truyền thống đòi hỏi trong quá trình tạo ra sản phẩm các yêu cầu ít thay đổi hoặc nếu chấp nhận thay đổi thường phải thiết kế lại toàn bộ cấu trúc phần mềm sao cho phù hợp. Sự phát triển không ngừng của nền kinh tế - xã hội làm cho các phương pháp phát triển phần mềm truyền thống không thể đáp ứng được yêu cầu tạo ra phần mềm như khách hàng mong muốn. Vì vậy nó không phù hợp và không còn được sử dụng rộng rãi. Để khắc phục những hạn chế này, hiện nay các nhà phát triển phần mềm đã tìm đến phương pháp phát triển phần mềm mới, cho phép các phần mềm có khả năng biến đổi, sửa chữa ngay cả khi dự án đã bắt đầu. Đó là phương pháp phát triển phần mềm linh hoạt Agile. 3 Phương pháp phát triển phần mềm linh hoạt Agile Tuy nhiên, phương pháp này chưa thật sự được biết đến rộng rãi trên toàn thế giới. Một số nhà lập trình chưa hiểu hết hoặc hiểu sai vì thế chưa vận dụng được phương pháp này trong việc tạo ra các phần mềm. Trước thực tế trên đã thôi thúc tôi chọn đề tài: "Tìm hiểu phương pháp phát triển phần mềm linh hoạt Agile” nhằm giúp mọi người nói chung và các nhà lập trình nói riêng hiểu đúng và vận dụng tốt phương pháp này để tạo ra các phần mềm một cách nhanh chóng và hiệu quả. 2. Mục đích nghiên cứu Trên cơ sở tìm hiểu phương pháp phát triển phần mềm linh hoạt Agile, từ đó đưa ra các giải pháp giúp các nhà lập trình biết cách vận dụng nó để tạo ra các phần mềm có khả năng biến đổi, phát triển và tiến hóa theo thời gian mà không cần phải làm lại từ đầu. Hay nói cách khác tạo ra một phần mềm thật đơn giản đáp ứng đúng yêu cầu của khách hàng hôm nay và sẵn sàng cho những thay đổi vào ngày mai. 3. Khách thể và đối tượng nghiên cứu 3.1. i t ng nghiên c uĐố ượ ứ Phương pháp phát triển phần mềm linh hoạt Agile. 3.2. Khách th nghiên c u.ể ứ Công nghệ phần mềm. 4. Nhiệm vụ nghiên cứu 4.1. Nghiên cứu các vấn đề lý luận làm cơ sở cho đề tài. 4.2. Tìm hiểu phương pháp phát triển phần mềm linh hoạt Agile. 4.3. Đề xuất giải pháp để đưa phương pháp phát triển phần mềm linh hoạt Agile thực sự được áp dụng rộng rãi trong việc tạo ra các phần mềm. 5. Giả thuyết khoa học Sự hiểu biết cũng như cách vận dụng phương pháp phát triển phần mềm linh hoạt Agile trong việc tạo ra các sản phẩm phần mềm hiện nay còn nhiều hạn chế. 4 Phương pháp phát triển phần mềm linh hoạt Agile Chính vì vậy, nếu hiểu đúng và áp dụng tốt thì phương pháp này chính là chìa khóa thành công giúp các nhà lập trình hoàn thành nhiệm vụ một cách nhanh chóng và hiệu quả nhất. 6. Các phương pháp nghiên cứu 6.1. Phương pháp nghiên cứu tài liệu. 6.2. Phương pháp điều tra. 6.3. Phương pháp quan sát. 6.4. Phương pháp phỏng vấn. 6.5. Phương pháp thống kê toán học. 5 Phương pháp phát triển phần mềm linh hoạt Agile CHƯƠNG I. CƠ SỞ LÍ LUẬN CỦA ĐỀ TÀI 1.1. Vài nét về lịch sử vấn đề nghiên cứu. 1.1.1. n c ngoài.Ở ướ Agile không bắt nguồn từ phần mềm – nó bắt đầu sản xuất vào những năm 1950 (đọc lên trên WE Deming). Agile là lý do mà người Nhật làm cho những chiếc xe chất lượng cao giá cả phải chăng. Agile là làm thế nào các công ty Nhật Bản lớn như Honda và Toyota có thể nhanh chóng quy mô xuống và đối phó với khủng hoảng tín dụng hiện hành[1]. Phương pháp phát triển phần mềm linh hoạt được đưa ra vào đầu những năm 90 như là một phần của sự nỗ lực chống lại những phương pháp “nặng nề” - điển hình bởi những quy định khắt khe. Ban đầu chúng được gọi là “phương pháp nhẹ”. Đến năm 2001, 17 thành viên nổi bật của cộng đồng phát triển phần mềm linh hoạt đã gặp gỡ tại Snowbird, Utah để thảo luận về cách thức tạo ra phần mềm linh hoạt hơn, nhanh hơn và hướng con người hơn. Họ đã thông qua tên gọi chính thức “phương pháp linh hoạt - Agile”[2]. 1.1.2. Vi t NamỞ ệ Trước năm 2011, Agile ở Việt Nam chưa được quan tâm nhiều. Các công ty khó tìm kiếm các chuyên gia am hiểu Agile để phát triển các sản phẩm của riêng họ, hoặc đáp ứng yêu cầu của khách hàng về mặt phương pháp luận. Tính đến thời điểm hiện tại, Agile mới chỉ xuất hiện trong một cộng đồng hẹp dân CNTT tại Việt Nam và hiện vẫn còn là một “ẩn số” với đại đa số giới CNTT trong nước. Một số công ty phần mềm sử dụng phương pháp này như công ty Swiss IT bridge, Công ty TNHH Phần mềm FPT (FPT Software), … 6 Phương pháp phát triển phần mềm linh hoạt Agile 1.2. Lịch sử các phương pháp phát triển phần mềm. 1.2.1. Mô hình thác n c (Waterfall) ướ Mô hình thác nước ra đời vào những năm 1970, là một mô hình cổ điển và được áp dụng trong quy trình phát triển phần mềm tại phần lớn các công ty. Mô hình này là một chuỗi quy trình phát triển như một luồng đều đặn từ trên xuống hoạt động như một thác nước, bao gồm các giai đoạn: phân tích yêu cầu khách hàng, thiết kế, cài đặt, kiểm tra, tích hợp và bảo trì. Hình 1: Mô hình thác nước Các hoạt động được tiến hành như các giai đoạn tách biệt, giai đoạn sau sẽ không bắt đầu chừng nào giai đoạn trước chưa hoàn thành. Sản phẩm đầu ra của giai đoạn trước sẽ trở thành đầu vào của giai đoạn sau. Ưu điểm: Các giai đoạn được định nghĩa, với đầu vào và đầu ra rõ ràng. Mô hình này cơ bản dựa trên tài liệu. Sản phẩm phần mềm được hình thành thông qua chuỗi các hoạt động xây dựng phần mềm theo trình tự rõ ràng. Dễ quản lý. Nhược điểm: Đòi hỏi tất cả yêu cầu phần mềm phải được xác định rõ ràng ngay từ đầu dự án. 7 Phương pháp phát triển phần mềm linh hoạt Agile Người sử dụng không có cơ hội tham gia trong suốt thời gian của các giai đoạn trung gian từ thiết kế cho đến kiểm thử. Quá cứng nhắc và thiếu thực tế, bởi việc thay đổi ở bất kỳ phần nào của quy trình cũng là không thể vì việc làm lại các giai đoạn ban đầu thường mất rất nhiều công sức và phá vỡ cấu trúc phần mềm, chi phí để sửa chữa có thể rất cao. Điều kiện áp dụng: Yêu cầu được định nghĩa rất rõ ràng, chi tiết và hầu như không thay đổi, thường xuất phát từ sản phẩm đã đạt mức ổn định. Yêu cầu mới bổ sung (nếu có) cũng sớm được xác định rõ ràng, đầy đủ từ đầu dự án.Dự án được xác định hầu như không có rủi ro. Đội ngũ thực hiện quen thuộc và hiểu rõ tất cả yêu cầu của dự án, và có nhiều kinh nghiệm với các công nghệ được dùng để phát triển sản phẩm. 1.2.2. Mô hình làm b n m uả ẫ Hình 2: Mô hình bản mẫu Mô hình làm bản mẫu thực hiện các bước như sau: B1: Xác định các yêu cầu của người sử dụng 8 Phương pháp phát triển phần mềm linh hoạt Agile Chuyên viên phân tích thiết kế hệ thống làm việc với người sử dụng để nắm được thông tin cơ bản cần cho việc tạo ra bản mẫu. B2: Phát triển bản mẫu đầu tiên Người thiết kế tạo nhanh một bản mẫu bằng cách sử dụng một công cụ phát triển phần mềm thích hợp. B3: Sử dụng bản mẫu làm việc với người sử dụng Bản mẫu được sử dụng để trình diễn hay cho người sử dụng thử nghiệm. Người sử dụng biết được bản mẫu đáp ứng yêu cầu của họ như thế nào và đưa ra đề nghị để bổ sung và cải tiến. B4: Hoàn thiện và tăng cường bản mẫu Người thiết kế phải thay đổi bản mẫu để đáp ứng đòi hỏi của người sử dụng và làm mịn hơn bản mẫu một cách phù hợp trên cơ sở sử dụng các thông tin khác. Tiến trình lặp đi lặp lại xảy ra để cho bản mẫu được "vi chỉnh" thoả mãn nhu cầu của khách hàng trong khi đồng thời lại làm cho người phát triển hiểu được kĩ hơn cần phải thực hiện nhu cầu nào. Ưu điểm: Người sử dụng sớm hình dung ra chức năng và đặc điểm hệ thống. Nhược điểm: Mô hình này thường làm nhanh, thậm chí vội vàng theo kiểu: "thực hiện - sửa" nên có thể thiếu sự phân tích đánh giá một cách cẩn thận. Vẫn chưa cải thiện được khoảng cách giữa yêu cầu và ứng dụng cuối cùng dẫn đến phản ứng không tốt từ phía khách hàng. Điều kiện áp dụng: Hệ thống có rủi ro cao: Yêu cầu chưa chắc chắn, giao diện chưa rõ Khách hàng, nhất là người sử dụng cuối không thể xác định rõ ràng yêu cầu. 9 Phương pháp phát triển phần mềm linh hoạt Agile 1.2.3. Mô hình xo n cắ ố Mô hình xoắn ốc (spiral model) được Berry Boehm đưa ra năm 1988. Nó dựa trên ý tưởng là tối thiểu hóa rủi ro, bằng viêc phân tích yếu tố rủi ro ở mỗi bước lặp và sử dụng phương pháp làm bản mẫu. Quá trình phát triển được chia thành nhiều bước lặp lại, mỗi bước bắt đầu bằng việc lập kế hoạch, phân tích rủi ro, rồi tạo bản mẫu, hoàn thiện và phát triển hệ thống, duyệt lại, và cứ thế tiếp tục. Nội dung gồm 4 hoạt động chính: Lập kế hoạch: xác định mục tiêu, giải pháp và ràng buộc. Phân tích rủi ro: phân tích các phương án, xác định và giải quyết rủi ro. Kỹ nghệ: phát triển sản phẩm “mức tiếp theo”. Đánh giá của khách hàng: khẳng định kết quả của kỹ nghệ. Hình 3: Mô hình xoắn ốc Với mỗi lần lặp vòng xoắn ốc (bắt đầu từ tâm), các phiên bản được hoàn thiện dần. Tại một vòng xoắn ốc, phân tích rủi ro phải đi đến quyết định “tiến hành tiếp hay dừng” . Nếu rủi ro quá lớn, thì có thể đình chỉ dự án hay thay đổi yêu cầu đặt ra cho thích hợp. Ưu điểm: 10 Phương pháp phát triển phần mềm linh hoạt Agile Phân tích đánh giá rủi ro được đẩy lên như một phần thiết yếu trong mỗi “spiral” để tăng mức độ tin cậy của dự án. Cho phép thay đổi tùy theo điều kiện thực tế dự án tại mỗi “spiral”. Nó được ứng dụng không chỉ trong phát triển phần mềm mà còn trong phát triển phần cứng. Thích hợp để phát triển các hệ thống quy mô lớn Nhược điểm: Phức tạp và không phù hợp cho dự án nhỏ với ít rủi ro. Cần có kỹ năng tốt về phân tích rủi ro. Quy mô dự án phải đủ lớn để trả chi phí cho chuyên gia phân tích rủi ro. Điều kiện áp dụng: Dự án lớn có nhiều rủi ro hay sự thành công của dự án không có được sự đảm bảo nhất định; những dự án đòi hỏi nhiều tính toán, xử lý như hệ thống hỗ trợquyết định Đội ngũ thực hiện dự án có khả năng phân tích rủi ro. 1.2.4. Mô hình ch V.ữ Hình 4: Mô hình chữ V 11 [...]... thế phát triển hiện nay, phương pháp Agile là một lực chọn đúng đắn cho các nhà phát triển phần mềm 15 Phương pháp phát triển phần mềm linh hoạt Agile CHƯƠNG II PHƯƠNG PHÁP PHÁT TRIỂN PHẦN MỀM LINH HOẠT AGILE 2.1 Tổng quan về phương pháp Agile 2.1.1 Phương pháp Agile là gì? Agile là một triết lí (philosophy) cho việc phát triển phần mềm Nói cách khác, đó là một cách “tư duy” về các dự án phần mềm Bản... là phương pháp Agile 1.3 Kết luận lịch sử các phương pháp phát triển phần mềm Lịch sử phần mềm đã trải qua nhiều phương pháp phát triển, mỗi phương pháp đều có ưu và nhược điểm nhất định tuy nhiên phương pháp sau bao giờ cũng kế thừa nhiều nhất những ưu điểm và cố gắng khắc phục những hạn chế của phương pháp trước Trong khi đưa ra yêu cầu, có thể khách hàng không thể lường 14 Phương pháp phát triển phần. .. số phương pháp phát triển phần mềm trong phương pháp Agile Các phương pháp phát triển phần mềm linh hoạt hiện nay bao gồm: Extreme programming (XP), Scrum, và một số phương pháp khác… - Lập trình Cực hạn (eXtreme Programming - XP): Phương pháp này đặt nặng về yếu tố thích nghi - tương thích, và thường hữu ích đối với các dự án chưa xác định được mong muốn của sản phẩm cuối cùng - Scrum (Phương pháp phát. .. giữa các thành phần tham gia dự án được coi trong hơn là việc viết tài liệu dự án… Nhất là giao tiếp giữa đội phát triển dự án với khách hàng Vào tháng 12 năm 2001, 17 nhà phát triển phần mềm[ 3] đã gặp gỡ nhau ở Snowbird, Utah Resort để thảo luận về các phương pháp phát triển phần mềm gọn nhẹ và linh hoạt Họ đã cùng nhau công bố "Tuyên ngôn phát triển phần mềm linh hoạt" ("Manifesto for Agile Software... trình theo cặp góp phần làm tăng chất lượng công việc 2.2.5 Bàn giao sản phẩm (release) Hệ thống được tích hợp hàng tuần và được bàn giao cho khách hàng theo kế hoạch đã định trước hoặc theo nhu cầu của khách hàng 2.3 So sánh phương pháp Agile với các phương pháp truyền thống 2.3.1 Giống nhau - Đều là các phương pháp phát triển phần mềm 22 Phương pháp phát triển phần mềm linh hoạt Agile - Đều cho phép... người xây dựng phần mềm Nhược điểm: Có những công cụ 4GT hiện tại khó dùng hơn các ngôn ngữ lập trình Chương trình gốc do các công cụ 4GT tạo ra là "không hiệu quả," và tính bảo trì cho các hệ thống phần mềm lớn được phát triển bằng cách dùng 4GT vẫn còn là vấn đề mở 1.2.6 Phương pháp phát triển phần mềm linh hoạt Agile Được ra đời vào đầu những năm 90 Là phương pháp phát triển phần mềm chú trọng vào... được chuẩn bị tốt thì phương pháp này sẽ không có tác dụng Và nếu bạn không thích bị chỉ trích, hay không thích nhìn người khác chữa mã của bạn, thì bạn không thể dùng được XP 30 Phương pháp phát triển phần mềm linh hoạt Agile 3.2 Mục đích của phương pháp XP Từ đầu năm 2000, một cuộc cách mạng mới về phương pháp luận phát triển phần mềm đã bắt đầu với sự ra đời của các phương pháp luận hạng nhẹ (lightweight... nhân công cũng như giá thành để phát triển từng user stories • Với sự phân công trách nhiệm như vậy, bản kế hoạch sẽ luôn thỏa mãn được yêu cầu của khách hàng cũng như nhóm phát triển 36 Phương pháp phát triển phần mềm linh hoạt Agile a3 Bàn giao từng phần (Small releases) Theo quy cách này, nhóm phát triển sẽ phát triển dần dần phần mềm, từ đơn giản đến phức tạp Từng phần sẽ được chuyển giao cho khách... sẽ chiếm được thị phần có lợi nhất Phương pháp XP sẽ giúp cho các nhà phát triển phần mềm rút ngắn thời gian phát triển sản phẩm - Phát triển sản phẩm đúng theo yêu cầu của khách hàng: Thực tế cho thấy rằng nhiều sản phẩm phần mềm tuy được phát triển một cách công phu nhưng lại không đáp ứng được nhu cầu của người sử dụng Phương pháp XP đã đưa ra các cơ chế cho phép sản phẩm phát triển luôn phù hợp... lại cho công ty Các phương pháp Agile giúp cho dự án phần mềm đạt được ba thành công này Cụ thể: a) Thành công ở mức công ty Agile tạo ra giá trị cho công ty trong khi làm giảm chi phí Đồng thời, Agile giúp sớm xác định các kì vọng đối với sản phẩm đang được phát triển Nhờ đó, 18 Phương pháp phát triển phần mềm linh hoạt Agile những dự án không mang lại giá trị như mong đợi sẽ được phát hiện sớm, tiết . phát triển phần mềm. 15 Phương pháp phát triển phần mềm linh hoạt Agile CHƯƠNG II. PHƯƠNG PHÁP PHÁT TRIỂN PHẦN MỀM LINH HOẠT AGILE 2.1. Tổng quan về phương pháp Agile. 2.1.1. Ph ng pháp Agile. hiểu phương pháp phát triển phần mềm linh hoạt Agile. 4.3. Đề xuất giải pháp để đưa phương pháp phát triển phần mềm linh hoạt Agile thực sự được áp dụng rộng rãi trong việc tạo ra các phần mềm. 5 cách vận dụng phương pháp phát triển phần mềm linh hoạt Agile trong việc tạo ra các sản phẩm phần mềm hiện nay còn nhiều hạn chế. 4 Phương pháp phát triển phần mềm linh hoạt Agile Chính vì

Ngày đăng: 12/04/2015, 14:20

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • MỞ ĐẦU

    • 1. Tính cấp thiết của vấn đề nghiên cứu

    • 2. Mục đích nghiên cứu

    • 3. Khách thể và đối tượng nghiên cứu

      • 3.1. Đối tượng nghiên cứu

      • 3.2. Khách thể nghiên cứu.

      • 4. Nhiệm vụ nghiên cứu

      • 5. Giả thuyết khoa học

      • 6. Các phương pháp nghiên cứu

      • CHƯƠNG I. CƠ SỞ LÍ LUẬN CỦA ĐỀ TÀI

        • 1.1. Vài nét về lịch sử vấn đề nghiên cứu.

          • 1.1.1. Ở nước ngoài.

          • 1.1.2. Ở Việt Nam

          • 1.2. Lịch sử các phương pháp phát triển phần mềm.

            • 1.2.1. Mô hình thác nước (Waterfall)

            • 1.2.2. Mô hình làm bản mẫu

            • 1.2.3. Mô hình xoắn ốc

            • 1.2.4. Mô hình chữ V.

            • 1.2.5. Mô hình hiện đại 4GT

            • 1.2.6. Phương pháp phát triển phần mềm linh hoạt Agile

            • 1.3. Kết luận lịch sử các phương pháp phát triển phần mềm

            • CHƯƠNG II. PHƯƠNG PHÁP PHÁT TRIỂN PHẦN MỀM LINH HOẠT AGILE

              • 2.1. Tổng quan về phương pháp Agile.

                • 2.1.1. Phương pháp Agile là gì?

                • 2.1.2. Tầm quan trọng của phương pháp Agile.

                • 2.1.3. Cách áp dụng phương pháp Agile.

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

Tài liệu liên quan