Mô hình linh động agile trong lập trình
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN: NHẬP MÔN CÔNG NGHỆ PHẦN MỀM GIÁO VIÊN: HÀ MẠNH ĐÀO ĐỀ TÀI: TRÌNH BÀY MƠ HÌNH LINH ĐỘNG AGILE VÀ ÁP DỤNG VÀO VÍ DỤ CỤ THỂ Thành viên: Nguyên Lý Agile Model Là phương pháp phát triển phần mềm mà chu trình thể vòng đời liên tiếp Kết vòng đời release với chức hoàn thành Hãy nhìn hình vẽ minh họa Mỗi release vòng đời test đảm bảo mặt chất lượng Step Analysis and Requirements Đây bước tiếp nhận yêu cầu dự án bắt đầu phân tích xem dự án yêu cầu thực phần mềm gì… Step 2: Design Sau đọc phân tích rõ yêu cầu dự án, step cơng đoạn thiết kết phần mềm Phần mềm thiết kế nào, sử dụng ngơn ngữ lập trình nào, thuật tốn gì, cơng cụ thư viện để xây dựng nên sản phẩm Step 3: Coding Thực trình coding với chức vạch thiết kế Trong thực tế coder vừa thực code vừa thực test chức mà thiết kế đưa Sau coding hồn thành, dev phải tự review code giải thuật, style… Sau review thêm lần leader, PM coder có kinh nghiệm nhiều Cho đến mã code đạt tối ưu, tiến hành đưa sản phẩm lên sever chuyển sang cho tester Step 4: Testing Được thực tester sau coder hồn thiện xong bước Qúa trình fixed bug Một vòng tròn tương tác dev QA xuất chức đảm bảo chạy tốt Khi việc test hoàn thành lúc sản phẩm giao cho khách hàng Team phát triển lại tiếp tục quay trở công đoạn với nhiệm vụ 2 ĐẶC TRƯNG CỦA AGILE -Tính lăp Các phương pháp Agile thường phân rã mục tiêu thành phần nhỏ với trình lập kế hoạch đơn giản gọn nhẹ , phân đoạn ( gọi Iteration Sprint ) thường có khung thời gian ngắn ( từ - tuần ) Trong phân đoạn , nhóm phát triển thực đầy đủ cơng việc cần thiết phần nhỏ sản phẩm cuối Mỗi phần nhỏ có khả chạy tốt Theo thời gian , phân đoạn tiếp nối phân đoạn hoàn thiện sản phẩm cuối Điều giúp trình sản xuất có tính linh hoạt thích ứng cao , đáp ứng tốt yêu cầu thay đổi khách hàng -Giao tiếp trực diện ( face - to - face communication ) Giao tiếp mặt đối mặt khuyến khích nhóm sản xuất khách hàng , thành viên nhóm Việc giảm bớt văn , thay vào nói chuyện trực tiếp giúp hiểu rõ u cầu khách hàng thơng tin xác -Nhóm tự tổ chức ( self - organizing ) liên chức ( cross - functionality ) Các nhóm làm việc khơng dựa mơ tả chức danh hay phân cấp rõ ràng mà theo phân công cơng việc Nhóm có khả tự đảm trách công việc định để tổ chức công việc đạt hiệu cao - Vòng phản hồi ngắn ( very feedback life cycle ) Vòng đời phản hồi rút ngắn , gần ngày để dễ dàng thích nghi gia tăng tính linh hoạt Trong phiên họp ngắn , thành viên nhóm báo cáo với họ làm vào ngày hôm trước mục tiêu lặp lại đội , họ dự định làm hôm hướng tới mục tiêu , cản trở họ thấy Nhờ , nhóm kiểm sốt tiến trình , nâng cao suất lao động - Phát triển dựa giá trị ( value - based development ) Một nguyên tắc Agile phần mềm chay tốt thước đo tiến độ " Đế vận hành chế làm việc dựa giá trị nhóm Agile thường làm việc trực tiếp thường xuyên với khách hàng ( hay đại diện khách hàng ) , công tác trực tiếp với họ để biết yêu cầu có độ ưu tiên cao , mang lại giá trị sớm cho dự án Nhờ đổ dự án Agile thường giúp khách hàng tối ưu hóa giá trị dự án Một cách gần trực tiếp , Agile gia tăng đáng kể độ hài lòng khách hàng * tơn cần tuân thủ phương pháp Agile “Cá nhân tương hỗ quan trọng quy trình công cụ”: Trọng tâm đặt lên người, xây dựng tương tác hỗ trợ thành viên nhóm Những thành viên có lực, chịu tương trợ công việc mang đến thành công cho dự án “Sản phẩm dùng tốt tài liệu đầy đủ”: Tập trung thời gian để làm phần mềm hoàn chỉnh đáp ứng hoàn hảo yêu cầu khách hàng “Cộng tác với khách hàng quan trọng đàm phán hợp đồng”: Hiểu khách hàng cần để tư vấn điều chỉnh sản phẩm thay dựa vào điều khoản hợp đồng “Phản hồi thay đổi bám sát kế hoạch”: Agile khuyến khích thích nghi với thay đổi, thay đổi cơng nghệ, nhân sự, deadline, * 12 nguyên tắc quan trọng Agile Đáp ứng toàn diện nhu cầu khách hàng thông qua việc giao hàng sớm sản phẩm có giá trị Thay đổi yêu cầu chào đón, chí muộn q trình phát triển Giao phần mềm chạy cho khách hàng cách thường xuyên Nhà kinh doanh kỹ sư phần mềm cần làm việc suốt dự án Xây dựng dự án xung quanh cá nhân có động lực Cung cấp hỗ trợ cần thiết, môi trường làm việc niềm tin để hồn thành cơng việc 6 Trao đổi trực tiếp mặt đối mặt phương pháp hiệu để truyền đạt thông tin Phần mềm chạy thước đo tiến độ Phát triển bền vững trì nhịp độ phát triển liên tục Liên tục quan tâm đến kĩ thuật thiết kế để cải tiến linh hoạt 10 Sự đơn giản cần thiết – nghệ thuật tối đa hóa lượng cơng việc chưa hồn thành 11 Nhóm tự tổ chức 12 Thích ứng thường xuyên với thay đổi ƯU ĐIỂM • Agile lựa chọn tốt cho dự án nhỏ dự án nhỏ thường có u cầu khơng xác định rõ ràng thay đổi thường xuyên • Với Agile khách hàng xem trước phần dự án suốt trình phát triển Agile phát triển phần mềm theo hướng tăng dần, đưa cho khách hàng xem phần thực hồn thành Từ bám sát dự án sẵn sàng cho thay đổi từ phía khách hàng yêu cầu dự án • Agile chia dự án thành phần nhỏ giao cho người, hàng ngày tất người phải họp với khoảng thời gian ngắn để thảo luận tiến độ giải vấn đề nảy sinh có nhằm đảm bảo quy trình phát triển dự án • Tỉ lệ thành công dự án sử dụng Agile thường cao quy trình khác NHƯỢC ĐIỂM • Thiếu nhấn mạnh thiết kế tài liệu cần thiết • Quy mơ nhân lực thường giới hạn từ đến 10 người, có trở ngại lớn nguồn nhân lực yêu cầu vượt số ví dụ họp trao đổi • Số lượng yêu cầu nhiều khó quản lý bao gồm nhiều khía cạnh khác dự án • Số lượng nhân lực tăng, chất lượng khó kiểm sốt Việc kiểm tra mã thường xuyên thiết lập tiêu đánh giá lực lập trình viên cho phép giảm thiểu nhược điểm ĐIỀU KIỆN ÁP DỤNG MÔ HÌNH AGILE – Khi dự án có thay đổi cần thiết phải thực – Chi phí cho việc thực thay đổi it – Dự án mà yêu cầu không nhiều thời gian – Khi việc phát triển phần mềm có linh động, thoải mái ... thiết kết phần mềm Phần mềm thiết kế nào, sử dụng ngôn ngữ lập trình nào, thuật tốn gì, cơng cụ thư viện để xây dựng nên sản phẩm Step 3: Coding Thực trình coding với chức vạch thiết kế Trong thực... sốt Việc kiểm tra mã thường xuyên thiết lập tiêu đánh giá lực lập trình viên cho phép giảm thiểu nhược điểm ĐIỀU KIỆN ÁP DỤNG MƠ HÌNH AGILE – Khi dự án có thay đổi cần thiết phải thực – Chi phí... thảo luận tiến độ giải vấn đề nảy sinh có nhằm đảm bảo quy trình phát triển dự án • Tỉ lệ thành công dự án sử dụng Agile thường cao quy trình khác NHƯỢC ĐIỂM • Thiếu nhấn mạnh thiết kế tài liệu