Agile Software Development Chapter 3, SE9

50 332 0
Agile Software Development Chapter 3, SE9

Đ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

Software Engineering Agile Software Development Chapter 3, SE9 Các chủ đề • • • • • Các phương pháp agile Phát triển kiểu agile theo kế hoạch Lập trình cực đoan Quản lý dự án agile Mở rộng quy mô phương pháp agile Rapid software development • Phát triển chuyển giao nhanh ngày thường yêu cầu quan trọng hệ thống phần mềm – doanh nghiệp vận hành u cầu nhanh chóng thay đổi • thực tế tạo yêu cầu phần mềm ổn định – phần mềm phải tiến hóa nhanh chóng để phản ánh nhu cầu thay đổi doanh nghiệp Rapid software development • Rapid software development – Các hoạt động đặc tả, thiết kế cài đặt tiến hành xen kẽ – Hệ thống phát triển theo chuỗi phiên mà khách hàng tham gia đánh giá phiên – Giao diện người dùng thường phát triển cách dùng mơi trường phát triển tích hợp (IDE) công cụ đồ họa Động agile • Sự thất vọng với phụ phí phương pháp thiết kế phần mềm thập kỉ 1990 dẫn đến xuất phương pháp agile Các phương pháp này: – trọng vào mã chương trình thay thiết kế – dựa cách phát triển phần mềm theo kiểu vịng lặp – nhằm nhanh chóng chuyển giao phần mềm hoạt động nhanh chóng tiến hóa để đáp ứng yêu cầu thay đổi Mục đích agile • Giảm phụ phí quy trình phần mềm – ví dụ cách giảm viết tài liệu • Có khả đáp ứng nhanh chóng u cầu thay đổi mà khơng cần phải làm lại q nhiều Tun ngơn agile • Chúng khám phá phương pháp tốt để phát triển phần mềm cách tự tay phát triển giúp người khác làm việc Qua công việc đến chỗ đánh giá cao: – Các cá nhân tương tác quy trình cơng cụ – Phần mềm hoạt động tài liệu đầy đủ – Cộng tác khách hàng thương lượng hợp đồng – Đáp ứng thay đổi làm theo kế hoạch • Nghĩa là, điểm bên phải có giá trị, đánh giá điểm bên trái cao Nguyên http://agilemanifesto.org/ Các nguyên tắc agile Nguyên tắc Miêu tả Khách hàng tham gia Khách hàng nên tham gia chặt chẽ suốt trình phát triển Vai trò họ cung cấp quy định mức độ ưu tiên yêu cầu hệ thống, đánh giá hệ thống lần lặp (iterations of the system) Chuyển giao Phần mềm phát triển cách tăng dần đợt (increment), tăng dần khách hàng yêu cầu cần đưa vào đợt Con người thay quy trình Kĩ đội phát triển cần ghi nhận khai thác Các thành viên đội cần tự phát triển cách làm việc riêng mà khơng cần đến quy trình quy phạm định trước Chấp nhận thay đổi Hiểu yêu cầu hệ thống thay đổi nên thiết kế hệ thống cho chấp nhận thay đổi Gìn giữ tính giản dị dễ hiểu Chú trọng vào tính giản dị dễ hiểu phần mềm phát triển quy trình phát triển Chủ động nỗ lực loại bỏ phức tạp khỏi hệ thống Khả ứng dụng phương pháp agile • Phát triển phần mềm dùng chung, công ty phần mềm phát triển sản phẩm cỡ nhỏ-trung bình để bán • Phát triển phần mềm đặt hàng (custom system development) phạm vi tổ chức, – có cam kết rõ ràng từ khách hàng việc tham gia quy trình phát triển – có khơng nhiều quy tắc quy định từ bên ngồi có ảnh hưởng tới phần mềm • Do trọng vào nhóm nhỏ làm việc cách gắn kết, có vấn đề việc mở rộng quy mô phương pháp agile cho hệ thống lớn Vấn đề với phương pháp agile • Có thể khó giữ quan tâm khách hàng tham gia quy trình • Các thành viên đội khơng phù hợp với cường độ làm việc đặc thù phương pháp agile • Khi có nhiều người có quyền xác định mức độ ưu tiên yêu cầu, khó thay đổi mức độ ưu tiên • Việc gìn giữ tính giản dị dễ hiểu địi hỏi cơng sức • Cũng phương pháp phát triển lặp khác, hợp đồng vấn đề 10 Lập trình đơi • Trong XP, lập trình viên làm việc theo cặp, – Cùng ngồi viết mã – Nhờ làm chủ phần mã lan truyền kiến thức cho đội – Khuyến khích refactoring • Các số liệu đo đạc cho thấy xuất lập trình đơi tương đương với xuất hai người làm việc độc lập 36 Lập trình đơi • Khi lập trình theo cặp, lập trình viên ngồi trước máy tính để phát triển phần mềm • Các cặp xếp cách linh động để tất thành viên có thời gian làm việc suốt trình phát triển • Sự chia sẻ kiến thức xảy trình lập trình theo cặp quan trọng – Nó giảm rủi ro cho dự án số thành viên rời khỏi nhóm 37 Ưu điểm lập trình đơi • Nó hỗ trợ quan niệm sở hữu tập thể trách nhiệm tập thể hệ thống – Các cá nhân không chịu trách nhiệm vấn đề mã chương trình • Thay vào đó, đội có trách nhiệm giải vấn đề • Nó hoạt động quy trình review khơng thức dịng lệnh có hai người xem • Tạo điều kiện cho refactoring – trình việc nâng cấp phần mềm – Khi áp dụng lập trình đơi sở hữu tập thể, người khác có lợi trực tiếp từ việc refactoring nên họ dễ hỗ trợ trình 38 Scrum 39 Scrum • Scrum phương pháp agile tổng quát tập trung vào quản lý phát triển tăng dần (iterative development) • Scrum có ba pha – Pha khởi đầu lập kế hoạch phác thảo (outline planning) • Thiết lập mục tiêu tổng quan cho dự án thiết kế kiến trúc phần mềm – Tiếp theo chuỗi vịng sprint (sprint cycle), • Mỗi vòng phát triển increment (bản tăng dần) hệ thống – Pha kết thúc dự án hoàn chỉnh tài liệu cần thiết • Chẳng hạn trợ giúp hệ thống hướng dẫn sử dụng • Đánh giá học thu từ dự án 40 Quy trình Scrum Assess Select Outline planning and architectural design Project closure Review Develop Sprint cycle 41 Vịng Sprint • Một vịng Sprint có độ dài cố định, thường 2–4 tuần – Tương ứng với việc phát triển release hệ thống theo kiểu XP • Điểm khởi đầu cho lập kế hoạch product backlog, – Là danh sách cơng việc cần thực cho dự án • Pha chọn lựa (select) tồn đội phát triển làm việc với khách hàng – Chọn tính chức cần phát triển vịng sprint 42 Vịng Sprint • Sau thống nhất, đội tự tổ chức để phát triển phần mềm – Tại bước này, đội hoạt động độc lập, không liên quan đến khách hàng tổ chức, • Ở cuối vịng sprint, sản phẩm review trình bày cho bên đặt hàng – Sau vịng sprint bắt đầu 43 Làm việc theo nhóm với Scrum • Tồn đội họp ngắn hàng ngày – Tất thành viên chia sẻ thông tin, – Miêu tả tiến độ làm việc kể từ buổi họp trước, vấn đề nảy sinh kế hoạch cho ngày • Điều có nghĩa nhóm biết tình hình, vấn đề nảy sinh lập lại kế hoạch ngắn hạn để đối phó 44 Ích lợi Scrum • Sản phẩm chia thành phần quản lý hiểu • Các u cầu khơng ổn định khơng làm đình trệ tiến độ • Cả đội "nhìn" thấy việc nhờ tăng tính tương tác liên lạc thành viên • Khách hàng thấy increment giao hạn gửi phản hồi sản phẩm • Thiết lập tin tưởng khách hàng đội phát triển, xây dựng mơi trường văn hóa tích cực tất trơng đợi dự án thành cơng 45 Tổng kết • Các phương pháp Agile phương pháp phát triển tăng dần mà tập trung vào khía cạnh – Phát triển nhanh, – Thường xuyên release phần mềm, – Giảm phụ phí quy trình, – Tạo mã chất lượng cao • Các phương pháp địi hỏi khách hàng trực tiếp tham gia quy trình phát triển 46 Tổng kết (2) • Việc nên chọn agile hay plan-driven tùy thuộc vào – Loại phần mềm phát triển, – Năng lực đội phát triển – Văn hóa cơng ty phát triển phần mềm • Lập trình cực đoan (XP) – Một phương pháp agile tiếng, tích hợp kiểu hoạt động • Thường xuyên release phần mềm, • Liên tục cải tiến phần mềm • Khách hàng tham gia đội phát triển 47 Tổng kết (3) • Một mạnh đặc biệt lập trình cực đoan việc phát triển test tự động trước tạo tính chương trình Tất test phải thành công phần bổ sung (increment) tích hợp vào hệ thống • Phương pháp Scrum phương pháp agile cung cấp framework cho quản lý dự án Nó xoay quanh tập vịng sprint, vịng có độ dài cố định thời gian dành cho việc phát triển increment cho hệ thống • Mở rộng quy mô phương pháp agile cho hệ thống lớn khó khăn Các hệ thống lớn cần thiết kế hoàn thành từ sớm cần tài liệu 48 Câu hỏi & tập Gợi ý loại mơ hình tiến trình tổng qt phù hợp với dự án sau giải thích: – Hệ thống kế toán trường đại học thay cho hệ thống tồn – Hệ thống hỗ trợ hành khách tra cứu lịch trình tàu terminal đặt ga tàu Giải thích phần mềm phát triển theo mơ hình tăng dần lại khó khăn cho bảo trì? Khảo sát mơ tả ngắn vài công cụ hỗ trợ phương pháp Agile 49 Câu hỏi & Bài tập Nếu áp dụng XP vào dự án nhóm hoạt động cần thực gì, mơ tả ngắn gọn? Nếu áp dụng XP vào dự án nhóm có vai trị dự án trách nhiệm/nhiệm vụ vai trò? 50 ... chủ đề • • • • • Các phương pháp agile Phát triển kiểu agile theo kế hoạch Lập trình cực đoan Quản lý dự án agile Mở rộng quy mô phương pháp agile Rapid software development • Phát triển chuyển... mềm phải tiến hóa nhanh chóng để phản ánh nhu cầu thay đổi doanh nghiệp Rapid software development • Rapid software development – Các hoạt động đặc tả, thiết kế cài đặt tiến hành xen kẽ – Hệ thống... implementation Agile development Requirement engineering Design and implementation 13 Lựa chọn: Agile hay theo kế hoạch? • Đa số dự án bao gồm quy trình theo kế hoạch quy trình agile Sự cân định

Ngày đăng: 18/05/2017, 20:20

Mục lục

  • Động cơ của agile

  • Mục đích của agile

  • Các nguyên tắc agile

  • Khả năng ứng dụng phương pháp agile

  • Vấn đề với các phương pháp agile

  • Agile và bảo trì phần mềm

  • Phát triển theo kế hoạch và phát triển agile

  • Lựa chọn: Agile hay theo kế hoạch?

  • Kịch bản yêu cầu

  • A ‘prescribing medication’ story

  • Examples of task cards for prescribing medication

  • XP và sự thay đổi

  • Ví dụ về refactoring

  • Khách hàng tham gia test

  • Mô tả test case cho chức năng kiểm tra liều lượng (dose checking)

  • Tự động hóa test

  • Khó khăn trong XP testing

  • Ưu điểm của lập trình đôi

  • Làm việc theo nhóm với Scrum

  • Ích lợi của Scrum

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

  • Đang cập nhật ...

Tài liệu liên quan