Luận Văn Thạc Sĩ Về Phương Pháp Phát Triển Phần Mềm Nhanh Agile Và Ứng Dụng Trên Smartphone

Luận văn thạc sĩ VNU UET nghiên cứu phương pháp phát triển phần mềm nhanh Agile và ứng dụng trên smartphone, mang lại hiệu quả cao trong phát triển.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Luận Văn Thạc Sĩ

2015

59
2
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

LỜI CAM ĐOAN

DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT

DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ

1. CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

1.1. Tổng quan về đề tài

1.2. Phương pháp nghiên cứu

2. CHƯƠNG 2: TỔNG QUAN VỀ AGILE

2.1. Tìm hiểu chung về Agile

2.1.1. Giới thiệu về Agile

2.1.2. Vì sao nên sử dụng Agile?

2.2. Các đặc trưng của Agile

2.3. Ưu điểm và nhược điểm của phương pháp Agile

2.4. So sánh mô hình phát triển của Agile với các mô hình phát triển phần mềm truyền thống khác

2.5. Các quy trình phát triển phần mềm sử dụng phương pháp Agile

2.5.1. Quy trình Extreme programming (XP)

2.5.2. Quy trình phát triển phần mềm thống nhất Rational Unified Process (RUP)

2.5.3. Phương pháp Crystal

2.5.4. Phương pháp Feature-Driven Development (FDD)

2.6. Tổng quan về Agile-Scrum

2.6.1. Tổng quan về Scrum

3. CHƯƠNG 3: QUY TRÌNH AGILE/SCRUM TRONG DỰ ÁN SMARTPHONE

3.1. Đặc điểm của phát triển ứng dụng trên Smartphone

3.2. Một số phương pháp phát triển phần mềm cho Smartphone

3.3. Ứng dụng Agile/Scrum và phương pháp Scrum of Scrums trong dự án SmartPhone

4. CHƯƠNG 4: ỨNG DỤNG AGILE/SCRUM TRONG DỰ ÁN PHÁT TRIỂN ỨNG DỤNG TRÊN SMARTPHONE

4.1. Giới thiệu tóm tắt về dự án phần mềm cho điện thoại di động thông minh Social SEF

4.2. Một số khó khăn khi đội dự án triển khai

4.3. Cách thức đội quản lý dự án theo quy trình Agile/Scrum

4.3.1. Thiết lập kế hoạch thực hiện

4.3.2. Thành lập đội dự án

4.3.3. Xây dựng print backlog cho iOs và Website

4.3.4. Quy trình thực hiện

4.3.5. Họp scrum hàng ngày

4.3.6. Tổng hợp kết quả trên biểu đồ

4.4. Đánh giá và nhận xét

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về Phương Pháp Agile Trong Phát Triển Phần Mềm

Phương pháp Agile đã trở thành một trong những phương pháp phát triển phần mềm phổ biến nhất trong những năm gần đây. Agile không chỉ giúp tăng tốc độ phát triển mà còn cải thiện khả năng thích ứng với các thay đổi trong yêu cầu của khách hàng. Đặc biệt, trong bối cảnh phát triển ứng dụng smartphone, Agile mang lại nhiều lợi ích đáng kể. Bài viết này sẽ khám phá sâu hơn về phương pháp Agile và ứng dụng của nó trong phát triển phần mềm.

1.1. Lịch sử và sự phát triển của phương pháp Agile

Phương pháp Agile ra đời từ những năm 2001, với sự hình thành của Agile Manifesto. Từ đó, Agile đã phát triển mạnh mẽ và trở thành một phần không thể thiếu trong quy trình phát triển phần mềm hiện đại.

1.2. Tại sao Agile lại quan trọng trong phát triển phần mềm

Agile giúp các nhóm phát triển phần mềm có thể phản hồi nhanh chóng với các thay đổi, từ đó nâng cao chất lượng sản phẩm và sự hài lòng của khách hàng.

II. Những Thách Thức Khi Áp Dụng Phương Pháp Agile

Mặc dù phương pháp Agile mang lại nhiều lợi ích, nhưng việc áp dụng nó cũng gặp phải không ít thách thức. Các nhóm phát triển cần phải đối mặt với những vấn đề như quản lý thời gian, sự giao tiếp giữa các thành viên trong nhóm và việc duy trì tính linh hoạt trong quy trình phát triển.

2.1. Khó khăn trong việc quản lý thời gian

Việc xác định thời gian hoàn thành cho từng giai đoạn phát triển là một thách thức lớn. Các nhóm cần phải có kế hoạch rõ ràng để đảm bảo tiến độ.

2.2. Sự giao tiếp giữa các thành viên trong nhóm

Giao tiếp hiệu quả là yếu tố quan trọng trong Agile. Tuy nhiên, sự khác biệt trong phong cách làm việc và giao tiếp có thể gây ra hiểu lầm và ảnh hưởng đến tiến độ dự án.

III. Phương Pháp Agile Scrum và Kanban

Scrum và Kanban là hai phương pháp phổ biến trong Agile. Mỗi phương pháp có những đặc điểm riêng, phù hợp với các loại dự án khác nhau. Việc hiểu rõ về chúng sẽ giúp các nhóm phát triển lựa chọn phương pháp phù hợp nhất.

3.1. Tìm hiểu về Scrum

Scrum là một khung làm việc giúp các nhóm phát triển quản lý quy trình phát triển sản phẩm phức tạp. Nó bao gồm các vai trò, sự kiện và các sản phẩm cụ thể để đảm bảo tiến độ và chất lượng.

3.2. Tìm hiểu về Kanban

Kanban là một phương pháp quản lý công việc giúp tối ưu hóa quy trình làm việc. Nó tập trung vào việc hiển thị công việc và quản lý luồng công việc để tăng hiệu suất.

IV. Ứng Dụng Phương Pháp Agile Trong Phát Triển Ứng Dụng Smartphone

Phát triển ứng dụng smartphone đòi hỏi sự linh hoạt và khả năng thích ứng cao. Phương pháp Agile, đặc biệt là Scrum, đã chứng minh được hiệu quả trong việc phát triển ứng dụng di động. Các nhóm phát triển có thể nhanh chóng điều chỉnh sản phẩm dựa trên phản hồi của người dùng.

4.1. Quy trình phát triển ứng dụng smartphone với Agile

Quy trình phát triển ứng dụng smartphone thường bao gồm các giai đoạn như lập kế hoạch, phát triển, kiểm thử và triển khai. Agile giúp các nhóm dễ dàng điều chỉnh trong từng giai đoạn.

4.2. Lợi ích của việc áp dụng Agile trong phát triển ứng dụng

Việc áp dụng Agile trong phát triển ứng dụng smartphone giúp tăng cường sự hài lòng của khách hàng, giảm thiểu rủi ro và cải thiện chất lượng sản phẩm.

V. Kết Luận Tương Lai Của Phương Pháp Agile Trong Ngành Công Nghiệp Phần Mềm

Phương pháp Agile đã và đang trở thành xu hướng trong ngành công nghiệp phần mềm. Với sự phát triển không ngừng của công nghệ, Agile sẽ tiếp tục đóng vai trò quan trọng trong việc phát triển phần mềm và ứng dụng smartphone. Các nhóm phát triển cần phải nắm vững các nguyên tắc và phương pháp Agile để tối ưu hóa quy trình làm việc.

5.1. Dự đoán xu hướng phát triển của Agile

Trong tương lai, Agile sẽ tiếp tục phát triển và thích ứng với các công nghệ mới, từ đó nâng cao hiệu quả trong phát triển phần mềm.

5.2. Tầm quan trọng của việc đào tạo và phát triển kỹ năng Agile

Đào tạo và phát triển kỹ năng cho các thành viên trong nhóm là rất quan trọng để đảm bảo việc áp dụng Agile hiệu quả và thành công.

22/07/2025
Luận văn thạc sĩ vnu uet phương pháp phát triển phần mềm nhanh agile và phát triển ứng dụng trên smartphone

Trích đoạn nội dung tài liệu

Mở đầu bằng lịch sử phát triển của Agile qua từng giai đoạn sau đó đưa ra ưu nhược điểm của Agile trong phát triển phần mềm. Giới thiệu đơn giản về một số quy trình phát triển phần mềm sử dụng phương pháp Agile và tập trung về quy trình phát triển phần mềm Scrum.1 Tìm hiểu chung về Agile 2.1 Giới thiệu về Agile Phương pháp Agile để phát triển phần mềm đã trở nên lan rộng trong thời gian qua. Cụ thể là vào tháng 2 năm 2015 theo khảo sát của tổ chức Scrum Alliance Những ý tưởng của phương pháp này có nguồn gốc từ phương pháp lặp của Lean Manufacturing (1940) và Agile Manufacturing (1990). Trong đó nhấn mạnh khả năng thích nghi của các công ty đến một môi trường năng động.

Các tính năng độc đáo của phương pháp này được tìm thấy trong “Agile Manifesto” là cá nhân và tương tác quan trọng hơn quy trình nghiệp vụ, sản phẩm tốt hơn tài liệu đầy đủ. Phát triển phần mềm linh hoạt (Agile software development) là một triết lí cùng với nhóm các phương pháp và phương pháp luận phát triển phần mềm dựa trên các nguyên tắc phát triển phân đoạn lặp (iterative) và tăng trưởng (incremental), theo đó nhu cầu và giải pháp tiến hóa thông qua sự hợp tác giữa các nhóm tự quản và liên chức năng. Agile thường sử dụng cách lập kế hoạch thích ứng (adaptive planning), việc phát triển và chuyển giao theo hướng tiến hóa sử dụng các khung thời gian ngắn và linh hoạt để dễ dàng phản hồi lại với các thay đổi trong quá trình phát triển.2 Vì sao nên sử dụng Agile? - Sản phẩm của một dự án phần mềm là khác nhau nên việc áp dụng một quy trình để phát triển hàng loạt là rất khó khăn. - Ngay từ đầu khách hàng khó có thể hình dung đầy đủ các yêu cầu đặt ra cho sản phẩm mà phải qua quá trình hình thành nên việc ứng phó với những thay đổi yêu cầu sẽ giúp giảm thiểu rủi ro cho dự án.

- Đảm bảo sản phẩm đầu ra đúng theo nhu cầu của khách hàng. 5 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.3 Các đặc trƣng của Agile Có rất nhiều cách tiếp cận khác nhau với phương pháp Agile. Bên cạnh các cách thức tổ chức công việc, thiết lập quy trình, các phương pháp Agile còn nghiên cứu và đưa vào sử dụng các công cụ và kĩ thuật đặc thù như công cụ tích hợp liên tục kiểm thử đơn vị, mẫu thiết kế, tái cấu trúc, phát triển hướng kiểm thử, phát triển hướng hành vi, hay lập trình theo cặp … để đảm bảo và gia tăng tính linh hoạt.  Tính lặp (Iterative) Dự án sẽ được thực hiện trong các phân đoạn lặp đi lặp lại.

Trong mỗi phân đoạn này, nhóm phát triển thực hiện đầy đủ các công việc cần thiết như lập kế hoạch, phân tích yêu cầu, thiết kế, triển khai, kiểm thử (với các mức độ khác nhau) để cho ra các phần nhỏ của sản phẩm.  Tính tiến hóa (Evolutionary) Cuối các phân đoạn, nhóm phát triển thường cho ra các phần nhỏ của sản phẩm cuối cùng. Các phần nhỏ này thường là đầy đủ, có khả năng chạy tốt, được kiểm thử cẩn thận và có thể sử dụng ngay. Theo thời gian, phân đoạn này tiếp nối phân đoạn kia, các phần chạy được này sẽ được tích lũy, lớn dần lên cho tới khi toàn bộ yêu cầu của khách hàng được thỏa mãn  Tính thích nghi (Adaptive) Do các phân đoạn chỉ kéo dài trong một khoảng thời gian ngắn, và việc lập kế hoạch cũng được điều chỉnh liên tục, nên các thay đổi trong quá trình phát triển (yêu cầu thay đổi, thay đổi công nghệ, thay đổi định hướng về mục tiêu …) đều có thể được đáp ứng theo cách thích hợp.

 Ràng buộc về thời gian (Time - Bound) Thời gian luôn là vấn đề rất quan trọng trong việc phát triển phần mềm bằng Agile. Nó xác định thời gian hoàn thành dự án và mỗi sprint phát triển dự án để bàn giao sản phẩm cho khách hàng kiểm tra xem đúng yêu cầu và chức năng hay không.  Quản lý thực nghiệm (Empirical Process Control) 6 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Các nhóm Agile ra các quyết định dựa trên các dữ liệu thực tiễn thay vì tính toán lý thuyết hay các giả định. Việc phân nhỏ dự án thành các phân đoạn ngắn góp phần gia tăng các điểm mốc để nhóm phát triển thu thập dữ kiện cho phép điều chỉnh các chiến lược phát triển của mình.

Theo thời gian, các chiến lược này sẽ tiến gần đến trạng thái tối ưu, nhờ đó nhóm có thể kiểm soát được tiến trình, và nâng cao năng suất lao động.  Dựa trên giá trị (value - based) Một trong những nguyên tắc cơ bản của Agile là phần mềm chạy tốt chính là thước đo tiến độ. Nguyên tắc này giúp nhóm dám loại bỏ đi các công việc dư thừa không trực tiếp mang lại giá trị cho sản phẩm. Để vận hành được cơ chế “làm việc dựa trên giá trị”, nhóm Agile thường làm việc trực tiếp và thường xuyên với khách hàng (hay đại diện của khách hàng), cộng tác trực tiếp với họ để biết yêu cầu nào có độ ưu tiên cao hơn, mang lại giá trị hơn cho dự án.

Nhờ đó các dự án Agile thường giúp khách hàng tối ưu hóa được giá trị của dự án. Chính vì thế, Agile làm gia tăng đáng kể độ hài lòng của khách hàng.4 Ƣu điểm và nhƣợc điểm của phƣơng pháp Agile  Ƣu điểm Có một số lý do khiến Agile được sử dụng rộng rãi và bàn giao được một sản phẩm hoàn thiện theo đúng yêu cầu của khách hàng. - Ưu điểm đầu tiên có thể nói đến ở đây đó là sự hài lòng của khách hàng về việc liên tục có những bản release được gửi và sớm có sản phẩm có giá trị để có thể sử dụng thử. - Sự tương tác giữa con người với con người được chú trọng hơn là việc thực hiện theo quy trình và các công cụ.

Điều này được thể hiện bằng quá trình liên tục trao đổi giữa development và tester, giữa development và tech leader, giữa team phát triển và khách hàng qua mail, skype liên tục trong suốt dự án. - Sẵn sàng thích ứng với những thay đổi thường xuyên xảy ra, kể cả khi đó là sự thay đổi rất muộn.  Nhƣợc điểm - Khó khăn hơn để xác định một trường hợp kinh doanh cho dự án và để đàm phán các dự án giá cố định. 7 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Đôi khi sự tương tác giữa con người quá nhiều dẫn đến việc thiếu tập trung vào thiết kế và các tài liệu cần thiết.

- Cần có đội ngũ phát triển có năng lực cao, kinh nghiệm, có sự năng động và linh hoạt để có khả năng đưa ra các quyết định cần thiết trong quá trình phát triển phần mềm khi gặp phải những khó khăn trở ngại.5 So sánh mô hình phát triển của Agile với các mô hình phát triển phần mềm truyền thống khác Đặc điểm Waterfall Spiral Scrum Xác định các giai đoạn Bắt buộc Bắt buộc Chỉ có giai đoạn lập phát triển kế hoạch và kết thúc Sản phẩm cuối cùng Được xác định Được xác định Xác định trong quá trong quá trình trong quá trình lập trình xây dựng dự án lập kế hoạch kế hoạch Chi phí sản phẩm Được xác định Thay đổi cục bộ Xác định trong quá trong quá trình trình xây dựng dự án lập kế hoạch Ngày hoàn thành sản Được xác định Thay đổi cục bộ Xác định trong quá phẩm trong quá trình trình xây dựng dự án lập kế hoạch Đáp ứng với môi Trong kế hoạch Trong kế hoạch Xuyên suốt từ kế trường sử dụng ban đầu ban đầu hoạch đến xây dựng và kết thúc Kinh nghiệm trao đổi Đào tạo trước Đào tạo trước cho Thực hiện trong quá cho đến khi bắt đến khi bắt tay trình làm dự án tay làm dự án làm dự án Khả năng thành công Thấp Trung bình thấp Cao 8 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com So sánh về giá thành phát triển phần mềm Hình 2.1 So sánh giá thành phát triển sản phẩm của Agile và Thác nước Theo “The Money Pit”, tổ chức Standish Group đã nghiên cứu 2 dự án phần mềm lớn giống nhau, thực hiện ở hai công ty có kích thước tương tự nhau. Một dự án thực hiện với mô hình Agile, một với Waterfall. Các kết quả được mô tả như hình trên, các dự án Agile rẻ hơn 4 lần so với chi phí của dự án Waterfall 2.6 Các quy trình phát triển phần mềm sử dụng phƣơng pháp Agile Một số quy trình phát triển phầm mềm sử dụng phương pháp phát triển phần mềm nahnh Agile bao gồm phương quy trình Extreme programming (XP), quy trình Scrum, quy trình Ration Unified Process (RUP) a. Quy trình Extreme programming (XP) XP là một phương pháp linh hoạt dành cho các nhóm phát triển phần mềm nhỏ và trung bình xây dựng các phần mềm có yêu cầu thay đổi một cách nhanh chóng.

Nó đảm bảo công việc phù hợp cho các nhà phát triển và lợi ích tốt nhất sau thời gian làm việc cho khách hàng và người quản. XP sử dụng các nhóm làm việc kết hợp gồm những người lập trình, khách hàng và các nhà quản trị để phát triển phần mềm có chất lượng cao trong thời gian nhanh chóng. Một chương trình chạy được là thước đo đầu tiên của tiến trình theo XP. XP có 9 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com thể phát triển và tồn tại được là do sự hiểu biết ngày một tiến bộ về các vấn đề đang giải quyết và cũng là vì các công cụ sẵn có cho phép ta thay đổi được cái giá của sự thay đổi.

Quy trình phát triển phần mềm thống nhất Rational Unified Process (RUP) RUP là một nền tảng quy trình thích ứng với sự phát triển các tổ chức và các nhóm dự án phần mềm dựa trên quy trình vòng lặp phát triển phần mềm. RUP hỗ trợ các hoạt động giữa các nhóm, phân chia công việc cho từng thành viên trong nhóm, trong từng giai đoạn khác nhau của quá trình phát triển phần mềm. RUP sử dụng hệ thống ký hiệu trực quan của UML và RUP được phát triển song song với UML. Vòng đời của dự án RUP được chia theo thời gian qua bốn giai đoạn nối tiếp nhau.

Bao gồm: Khởi tạo (Inception), Phác thảo (Elaboration), Xây dựng (Construction), Chuyển giao (Transition). Mỗi giai đoạn có một mốc quan trọng, mỗi giai đoạn thực chất là khoảng giữa của 2 điểm mốc. Cuối mỗi giai đoạn, bộ phận kiểm định sẽ thực hiện thẩm định các đối tượng của giai đoạn này c. Phƣơng pháp Crystal Crystal là một trong những cách tiếp cận thích ứng nhẹ nhất để phát triển phần mềm.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ