Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 62 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
62
Dung lượng
1,01 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN VĂN DUY 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 LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN Hà Nội - 2015 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN VĂN DUY 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 Ngành: Công nghệ Thông tin Chuyên ngành: Kỹ Thuật Phần Mềm Mã số: 60.48.01.03 LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN VIỆT HÀ Hà Nội - 2015 LỜI CẢM ƠN Để hồn thành luận văn Thạc sĩ tơi xin gửi lời cảm ơn sâu sắc đến thầy PGS.TS Nguyễn Việt Hà định hướng khoa học, quan tâm tạo điều kiện thuận lợi suốt trình nghiên cứu hồn thành luận văn Tơi xin gửi lời cảm ơn đến thầy, cô Bộ môn Kỹ thuật Phần Mềm Khoa Công nghệ Thông tin truyền đạt cho kiến thức quý giá bổ ích q trình theo học trường Tôi xin chân thành cảm ơn đến gia đình tơi quan tâm, động viên bố - mẹ em giúp tơi có thêm nghị lực, cố gắng để hoàn thành luận văn Cuối cùng, xin gửi lời cảm ơn chân thành đến bạn học K19, K20 giúp đỡ suốt năm học tập Do thời gian kiến thức có hạn nên luận văn khơng tránh khỏi thiếu sót định Tơi mong nhận góp ý q báu thầy bạn Hà Nội, ngày 28 tháng 12 năm 2015 Nguyễn Văn Duy LỜI CAM ĐOAN Tôi xin cam đoan luận văn “Phƣơng pháp phát triển phần mềm nhanh Agile phát triển ứng dụng Smartphone” công trình nghiên cứu cá nhân tơi hướng dẫn PGS TS Nguyễn Việt Hà, trung thực khơng chép tác giả khác Trong tồn nội dung nghiên cứu luận văn, vấn đề trình bày tìm hiểu nghiên cứu cá nhân tơi trích dẫn từ nguồn tài liệu có ghi tham khảo rõ ràng, hợp pháp Tôi xin chịu trách nhiệm hình thức kỷ luật theo quy định cho lời cam đoan Hà Nội, ngày 28 tháng 12 năm 2015 Nguyễn Văn Duy MỤC LỤC Mục Lục Danh mục kí hiệu chữ viết tắt Danh mục hình vẽ đồ thị Chương : Tổng quan đề tài 1.1Tổng quan đề tài 1.2Phương pháp nghiên cứu Chương 2: Tổng quan Agile 2.1Tìm hiểu chung Agile 2.1.1 Giới thiệu v 2.1.2 Vì nên s 2.1.3 Các đặc trưn 2.1.4 Ưu điểm 2.1.5 So sánh mô mềm truyền thống khác 2.1.6 Các quy trìn 2.2.1 Tổng quan v 2.2.2 Đặc trưng củ 2.2.3 Các thành p Chương 3: Quy trình Agile/Scrum dự án SMARTPHONE 3.1Đặc điểm phát triển ứng dụng Smartpho 3.1.3 Các thành p 3.1.4 Vòng đời ph 3.2Một số phương pháp phát triển phần mềm cho S 3.2.1 Mobile-D (A 3.2.2 MASAM 3.3Ứng dụng Agile/Scrum phương pháp Scrum o SmartPhone Chương 4: Ứng dụng Agile/Scrum dự án phát triển ứng dụng smartphone 36 4.1 Giới thiệu tóm tắt dự án phần mềm cho điện thoại di động thô Social SEF 4.2 Một số khó khăn độ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.1Thiết lập kế hoạch thực 4.3.2Thành lập đội dự án 4.3.3Xây dựng print backlog cho iO 4.3.4Quy trình thực 4.3.5Họp scrum hàng ngày 4.3.6Tổng hợp kết biểu đồ 4.4 Đánh giá nhận xét 47 Kết Luận 49 Tài liệu tham khảo 50 Phụ Lục 51 DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT Smartphone Scrum Product Owner (PO) Development Team Scrum Master Daily Scrum Meeting Sprint Planning Sprint Review Sprint Backlog Increment Sprint Event Inspection Adaption Framework Functionality Chat DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ Hình 1.1 Mơ tả q trình phát triển Smartphone từ năm 2010-2014 (Nguồn http://techlomedia.in) Hình 1.2: Danh sách 10 quốc gia sử dụng Smartphone nhiều (Nguồn http://blog.gfk.com) Hình 1.3: Biểu đồ thể phát triển ứng dụng từ năm Hình 2.1 So sánh giá thành phát triển sản phẩm Agile Thác nước Hình 2.2 Ví dụ product backlog sử dụng excel Hình Quy trình phát tr Hình 2.4: Phương pháp ph Hình 2.5: Mơ tả việc chia s Hình 3.1: Các thành phần p Hình 3.2: Quy trình phát tr Hình 3.3: Các giai đoạn ph Hình 3.4: Hình Mơ tả Scrum dự 4.1: Những thay đổi c Hình 4.2: Những thay đổi y Hình 4.3: Kế hoạch thực h Hình 4.4: Chia cơng việc c Hình 4.5: Luồng thực Hình 4.6: Liệt kê cơng Hình 4.7: Chi tiết Sprin Hình 4.8: Biểu đồ mơ tả ho Chƣơng : Tổng quan đề tài Tóm tắt: Chương đưa lý thực đề tài giới thiệu chung phương pháp phát triển phần mềm nhanh Agile Thơng qua việc tìm hiểu thực tế phát triển Smartphone để đưa phương hướng phát triển cho luận văn 1.1 Tổng quan đề tài Trong năm gần ngành công nghiệp di động chứng kiến phát triển nhanh chóng số lượng thiết bị di động sử dụng phát triển mạnh mẽ công nghệ Bảng thống kê bên liệt kê chi tiết tỷ lệ phát triển thị trường Smartphone từ năm 2010 đến năm 2014 Hình 1.1 Mơ tả q trình phát triển Smartphone từ năm 2010-2014 (Nguồn http://techlomedia.in) Cùng với phát triển mạnh mẽ Smartphone tồn giới thị trường Smartphone Việt Nam phát triển Thông qua việc thống kê tổ chức GFT Forecasts năm 2015 Việt Nam đứng thứ giới số lượng Smartphone sử dụng Hình 1.2: Danh sách 10 quốc gia sử dụng Smartphone nhiều (Nguồn http://blog.gfk.com) Cùng với phát triển số lượng công nghệ Smartphone ứng dụng cho Smartphone phát triển không ngừng Cụ thể phát triển ứng dụng cho Smartphone nhìn thấy rõ rệt biểu đồ bên Như nhiều thời gian để phân tích thực chức Hình 4.2: Ví dụ thay đổi u cầu dự án từ khách hàng Hình 4.2 ví dụ thay đổi yêu cầu dự án khách hàng liên tục từ ngày 23/9, 24/9, 25/9, 28/9 Xem thay đổi chi tiết tài liệu “SEF_REQM.xlsx” 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 Sau phân tích yêu cầu phát triển dự án đưa kế hoạch thực dự án tài liệu “SEFSocial_MasterPlan_v1.0.xlsx” Bản tóm tắt mơ tả hình 4.3 Hình 4.3: Kế hoạch thực dự án 38 Dựa vào tài liệu ta thấy kế hoạch dự án ban đầu bắt đầu ngày 17/8 kết thúc ngày 9/11 Effort thực dự án 139 man/days 4.3.2 Thành lập đội dự án No Name Phạm Vũ Dương Phạm Thế Duy Lê Thị Thảo Trinh Phạm Văn Phú Nguyễn Văn Phi Tống Quang Trung Lê Ngọc Thạch Nguyễn Văn Duy Nguyễn Văn Tiến Áp dụng đội dự án vào quy trình Scrum Chia đội dự án thành đội Scrum Team Scrum iOS, Team Scrum API, Team Scrum Website phân rõ vai trò thành viên đội vị trí nhóm Scrum No 10 Name Phạm Vũ Dương Phạm Thế Duy Lê Thị Thảo Trinh Phạm Văn Phú Nguyễn Văn Phi Tống Quang Trung Lê Ngọc Thạch Nguyễn Văn Duy Nguyễn Văn Tiến Dương Thị Hương 4.3.3 Xây dựng print backlog cho iOs Website Product Owner tạo Product backlog chia product backlog thành task nhỏ sprint Mô hình 4.4 diễn tả cơng việc đội phát triển chia công việc phát triển ứng dụng 39 Đầu tiên Product Owner tạo product backlog Đối với n PO Product Backlog Sub-backlog Sub-backlog Sub-backlog Hình 4.4: Chia cơng việc cho Scrum Team 40 Story id Story name 10 11 12 13 14 15 16 Register screen Login screen Settings screen Create post Show Users Show user profile Show followers Capture photo / re Set Post type Share created Pos add text to photo/v apply filter to add lat long, city t add hashtags to Po store Media locall open & edit saved delete share created Post select all (Followe group Users into c list visible Users o show Story length view User's Story show Users view new posts list Users that sha view shared Posts list of Posts Story Posts autopl 17 18 19 20 21 22 23 24 25 26 27 28 Sau chia xong sprint cho mobile Leader bên mobile xác định service cần thiết yêu cầu backend làm service 41 Product Backlog cho API Story id 10 11 12 Story name Register Login edit user upload/change upload media upload Post share Post to S list "active" U get user info follow user download med store latest Po 13 story length, l 14 get story's po private) 15 get post info 16 list "Feed" Us of "new" seco 17 list new Posts 18 list Followers 19 share a new P 20 list "Notificat something to m 21 list shared Pos Estimate thời gian hồn thành cơng việc thành viên Ở đội dự án Trong họp Sprint chia Task cho thành viên nhóm thành viên nhóm ước lượng thời gian phát triển dự kiến Cụ thể công việc đội iOS Sprint sau Story ID Story Name Register screen Login screen Settings screen 42 Story ID Story Name Show Users Show user profile Create Post add photo/video, draw Áp dụng công cụ Trello để quán lý dự án phát triển phần mềm Smartphone Là công cụ để phối hợp công việc hiệu giúp cho người team cần nhìn qua biết có đầu việc nào, làm gì, làm đến giai đoạn Dựa vào task sprint tạo card trello để quản lý công việc thành viên tiến độ thực công việc Trong card detail thêm thành viên làm công việc thêm deadline cho công việc Trello đơn giản việc thao tác việc dễ dàng tạo cột Các cột nơi chứa cơng việc hồn thành mức độ Áp dụng vào quản lý dự án Agile/Scrum, ta xây dựng cột hình… Backlog Task Task 10 Task 11 Hình 4.5: Luồng thực tác nghiệp 43 Backlog để chứa công việc sprint Todo chứa task chuẩn bị làm Review chứa task thời gian test Done chứa task hoàn thành 4.3.4 Quy trình thực Ban đầu tất task sau họp chia sprint để BackLog Trong họp daily meeting phân chia công việc cho thành viên đội Khi bắt đầu công việc kéo task từ cột backlog sang cột Todo Các task làm kéo sang cột Doing, sau hoàn thành xong kéo từ cột doing sang cột review để tester kiểm tra lại Nếu task tester kéo sang Done, chưa kéo lại Todo Hình 4.6: Liệt kê công việc sprint dự án trello Trong card sprint backlog tạo check list để liệt kê cơng việc sprint hình bên Tạo đường dẫn item checklist cho card detail 44 Hình 4.7: Chi tiết Sprint Sau tạo công việc chia công việc cho thành viên, thành viên kéo card sang doing Trong thời gian thực công việc, vào 8h30 buổi sáng hàng ngày trừ thứ chủ nhật nhóm họp scrum hàng ngày Mỗi cơng việc hồn thành, git dev tạo branch tên card pust lên để yêu cầu teamlead pull code vể kiểm tra xem chức hay chưa Trong trello developer kéo card cơng việc sang review Để bên test chưa, card teamlead chuyển sang done 4.3.5 Họp scrum hàng ngày Cuộc họp lúc 8h30 bao gồm thành viên đội mobile backend Nội dung họp bao gồm - Trình bày cơng việc hơm trước làm thành viên nhóm - Mỗi thành viên khó khăn để nhóm giải 45 - Trình bày cơng việc ngày hơm làm - Đội backend cung cấp cho mobile service hoàn thành 4.3.6 Tổng hợp kết biểu đồ Dựa vào biểu đồ tổng hợp kết làm việc Sprint Trello để biết dự án tiến hành đến đâu, lại khoảng thời gian để hồn thành Những chuyển biến cơng việc cịn lại cột mốc hiển thị đường diễn tả cơng việc hồn thành thực tế Ta xem mức chênh lệch đường mơ tả ban đầu theo kế hoạch đường diễn tả thực tế đạt để hiểu tình trạng tiến độ mốc Hình 4.8: Biểu đồ mơ tả hoạt động dự án Như hình diễn tả quán trình thực dự án hình bên trái tóm tắt số liệu thống kê dự án Mô tả biểu đồ gồm: - Đường màu xanh thời gian lại hệ thống - Đường màu da cam đường mô tả thời gian thực lý tưởng cho dự án - Đường màu đỏ đường mô tả thời gian thực thực dự án Qua biểu đồ cho ta thấy đến thời điểm thời gian thực dự án vượt thời gian lý tưởng đặt từ ban đầu Nhìn vào biểu đồ ta thấy hoạt động 46 dự án từ bắt đầu phát triển tháng đến tháng 10 tháng 11 vượt qua mức thời gian lý tưởng đề ban đầu Nhưng so sánh mốc thời gian từ đầu dự án đế tháng 10 từ tháng 10 đến cuối dự án, ta thấy: - Thời gian thực dự án từ đầu đến tháng 10 ước lượng khoảng 270 - Thời gian thực dự án từ tháng 10 đến cuối dự án ước lượng khoảng 500 Sự thay đổi thời gian thực dự án việc sử dụng nguồn nhân lực khác có trình độ thấp thành viên tham gia dự án giai đoạn từ đầu đến tháng 10 Qua bảng tóm tắt số liệu dự án hình bên phải, bao gồm: - Phần trăm thực dự án 65% - Phần trăm thời gian sử dụng để thoàn thành dự án so với thời gian đề 85% Nhìn vào số liệu biểu đồ hoạt động thấy dự án bị chậm nhiều so với thời gian ước lượng ban đầu.Một lý làm ảnh hưởng đến việc việc khách hàng thay đổi yêu cầu thường xuyên hay thêm chức cho dự án 4.4 Đánh giá nhận xét Sau áp dụng Agile Scrum vào quy trình phát triển dự án SEF, dự án phát triển ứng dụng diện thoại iPhone hãng Apple sử dụng hệ điều hành iOS kết hợp với việc sử dụng Backend API đội phát triển độc lập cung cấp.Phương pháp phát triển trước tạo khó khăn việc trao đổi thơng tin tiến độ dự án, khó khăn phối hợp với đội sử dụng tảng phát triển khác Thông qua việc áp dụng phương pháp Scrum of Scrums cầu nối kết hợp đội phát triển phần mềm đội Scrum nhỏ nhóm Scrums Như ví dụ nêu dự án SEF việc liên kết phối hợp đội dự án độc lập quan trọng Chúng ta thấy thay đổi nhỏ từ thay đổi yêu cầu khách hàng làm sản phẩm, hai đội dự án phản ứng nhanh kịp thời cập nhật vào công việc cụ thể dự án Ví dụ, khách hàng có u cầu thay đổi giao diện hình, chức hệ thống… Một số thay đổi khách hàng yêu cầu phải cập nhật phần phải thêm 47 API Như thế, dự án đòi hỏi hai đội phải theo kịp chu kỳ để không chậm tiến độ dự án Trong việc phát triển dự án quy trình Scrum việc linh hoạt quan hệ với khách hàng việc sử dụng nguồn nhân lực cho dự án quan trọng Để áp dụng quy trình dự án địi hỏi nguồn nhân lực phát triển tốt chuyên nghiệp đáp ứng nhanh thay đổi thời gian ngắn Dựa vào số liệu báo cáo biểu đồ quản lý dự án tạo Sprint mốc thời gian đưa, tình trạng phát triển dự án trạng thái để đưa định để giải vấn đề dự án Quản trị dự án thành viên đội dễ dàng hình dung hiểu rõ cơng việc giai đoạn Khi có thay đổi dễ dàng cập nhật bám theo phù hợp với yêu cầu 48 KẾT LUẬN Trong luận văn chủ yếu đưa giải pháp để giải vấn đề phát triển ứng dụng cho Smartphone để đạt sản phẩm chất lượng cao thời gian ngắn Scrum lựa chọn tốt cho công ty phát triển ứng dụng cho Smartphone để đáp ứng yêu cầu Bằng việc áp dụng phương pháp phát triển Scrum of Scrums phương pháp áp dụng cho dự án lớn đưa vào sử dụng dự án cho Smartphone, kiểu dự án không lớn lại có nhiều tảng khác Scrum of Scrums chia đội dự án thành nhiều đội Scrum khác nhằm mục đích dễ dàng việc quản lý chia cơng việc rõ ràng Vì Product Owner hiểu rõ ràng yêu cầu hệ thống hiểu rõ chi tiết công việc tảng người thực tốt công việc Dựa vào đặc điểm dự án cho Smartphone cho thấy quy trình Agile-Scrum phù hợp để thực đặc điểm là: chu kì phát triển ngắn, thường xuyên cập nhập, thường xuyên thay đổi yêu cầu với giao diện tính Việc áp dụng quy trình Agile-Scrum vào dự án SEF không thành công cho ta thấy để đạt dự án thành công sử dụng phương pháp Agile-Scrum cần phải áp dụng quy trình yêu cầu quy trình Trong trình thực đề tài có nhiều điểm cần phải nghiên cứu cải thiện việc áp dụng kiểm thử vào Sprint Do thời gian có hạn nên khơng tránh khỏi nhược điểm sai sót Vì thế, tơi mong góp ý thầy bạn 49 TÀI LIỆU THAM KHẢO Tiếng Việt Ken Swchaber - Jeff Sutherland (2013), Hướng dẫn Scrum Tiếng Anh Anthony I Wasserman (2010), Software Engineering Issues for Mobile 10 Application Development, Carnegie Mellon Silicon Valley, Bldg 23 M/S 23-14 Moffett Field, CA 94035 USA Robert Holler President& CEO, Mobile Application Development: A Natural Fit with Agile Methodologies Andrei Cristian Spataru (2010) , Agile Development Methods for Mobile Applications Alistair Cockburn (2010-2011), Agile Software Development Harleen K Flora1, Dr Swati V Chande, A review and analysis on mobile application development processes using Agile methodologies David Conhen Mikael Lindvall and Patricia Costa (2004), An Introduction to Agile Methods Anthony I Wasserman, Software Engineering Issues for Mobile Application Development Shakira Banu Kalee - Ssowjanya HariShankar (2013), Applying Agile Methodology in Mobile Software Engineering: Android Application Development and its Challenges M Cohn (2006), Agile estimating and planning Abeer M AlMutairi - M Rizwan Jameel Qureshi (2015), The Proposal of Scaling the Roles in Scrum of Scrums for Distributed Large Projects 50 PHỤ LỤC SEFSocial_MasterPlan_v1.0.xlsx SEF_REQM.xlsx SEF_Requirements_Management_old.xlsx ... quy trình phát triển phần mềm truyền thống khác - Tìm hiểu quy trình phát triển phần mềm Agile- Scrum quy trình phát triển phần mềm dựa đặc điểm phương pháp phát triển phần mềm nhanh nhẹn Agile -... quy trình phát triển sản phẩm Agile phương pháp lý tưởng để làm điều 1.2 Phƣơng pháp nghiên cứu - Tìm hiểu phương pháp phát triển phần mềm Agile so sánh phương pháp phát triển phần mềm Agile với... nghi ứng dụng di động Phương pháp phát triển phần mềm truyền thống vào vòng đời phát triển ứng dụng thiết bị di động Hình 3.2: Quy trình phát triển Agile- Scrum cho ứng dụng di động Phương pháp