Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 97 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
97
Dung lượng
2,01 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐẶNG THỊ PHƯỚC NGHIÊN CỨU SEMAT VÀ ỨNG DỤNG CÔNG CỤ ESSWORK TRONG PHÁT TRIỂN PHẦN MỀM LUẬN VĂN THẠC SĨ Hà Nội - 2014 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐẶNG THỊ PHƯỚC NGHIÊN CỨ SEMAT VÀ ỨNG DỤNG CÔNG CỤ ESSWORK TRONG PHÁT TRIỂN PHẦN MỀM LUẬN VĂN THẠC SĨ 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 NGƯỜI HƯỚNG DẪN KHOA HỌC : TS. Mẫn Quang Huy ĐỒNG HƯỚNG DẪN : TS. Trương Anh Hoàng Hà Nội - 2014 i LỜI CẢM ƠN Trước tiên tôi xin chân thành cảm ơn TS. Mẫn Quang Huy và TS. Trương Anh Hoàng đã tận tình hướng dẫn, giúp đỡ tôi trong suốt quá trình thực hiện luận văn tốt nghiệp. Tôi xin chân thành cảm ơn các thầy cô giáo khoa Công nghệ Thông tin, trường Đại học Công nghệ, Đại học Quốc gia Hà Nội, những người đã tận tình truyền đạt các kiến thức, quan tâm, động viên trong suốt thời gian tôi học tập và nghiên cứu tại Trường. Nhân đây cho phép tôi gửi lời cảm ơn tới nhóm các bạn học cùng lớp K16CNPM3, lớp chuyên ngành công nghệ phần mềm đã thường xuyên quan tâm, giúp đỡ, chia sẻ kinh nghiệm, cung cấp các tài liệu hữu ích trong suốt thời gian học tập tại trường. Hà Nội, tháng 10 năm 2014 Tác giả luận văn Đặng Thị Phước ii LỜI CAM ĐOAN Tôi xin cam đoan bản luận văn “Nghiên cứu SEMAT và ứng dụng công cụ EssWork trong phát triển phần mềm” là công trình nghiên cứu của tôi dưới sự hướng dẫn khoa học của TS. Mẫn Quang Huy, giáo viên đồng hướng dẫn TS. Trương Anh Hoàng, tham khảo các nguồn tài liệu đã chỉ rõ trong trích dẫn và danh mục tài liệu tham khảo. Các nội dung công bố và kết quả trình bày trong luận văn này là trung thực và chưa từng được ai công bố trong bất cứ công trình nào. Hà Nội, tháng 10 năm 2014 Tác giả luận văn Đặng Thị Phước iii MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii MỤC LỤC iii DANH SÁCH CÁC HÌNH VẼ v MỞ ĐẦU 1 Lý do chọn đề tài 1 Mục đích nghiên cứu 2 Đối tượng và phạm vi nghiên cứu 2 Kết cấu của luận văn 2 CHƯƠNG 1- GIỚI THIỆU SEMAT 4 1.1 Giới thiệu 4 1.2 Kernel 5 1.2.1 Giới thiệu về Kernel 5 1.2.2 Kernel Alpha 7 1.2.3 Một ví dụ áp dụng 19 1.2.4 Activity Space 38 1.2.5 Các kỹ năng cần thiết (competencies) 41 CHƯƠNG 2 – GIỚI THIỆU ESSWORK [2] 46 2.1 Giới thiệu 46 2.2 Sử dụng EssWork 46 2.2.1 Giao diện EssWork 46 2.2.2 Các thành phần sử dụng trong EssWork 47 2.2.3 Work Package 50 CHƯƠNG 3 - ỨNG DỤNG CÔNG CỤ ESSWORK 54 3.1 Mô tả bài toán 54 3.2 Giai đoạn khởi đầu 56 3.2.1 Opportunity 56 3.2.2 Requirement 58 iv 3.2.3 System 63 3.2.4 Team 64 3.2.5 Project 65 3.2.6 Way of Work 65 3.3 Giai đoạn phác thảo 66 3.3.1 Opportunity 66 3.3.2 Requirement 67 3.3.3 System 71 3.3.4 Project 75 3.3.5 Team 75 3.3.6 Way of Working 76 3.4 Giai đoạn hoàn thành 77 3.4.1 Opportunity 77 3.4.2 Requirement 77 3.4.3 System 77 3.4.4 Team 78 3.4.5 Project 78 3.4.6 Way of Working 78 3.5 Giai đoạn chuyển giao 79 3.5.1 Opportunity 79 3.5.2 Requirement 79 3.5.3 System 79 3.5.4 Team 80 3.5.5 Project 80 3.5.6 Way of Working 81 CHƯƠNG 4 - NHẬN XÉT, ĐÁNH GIÁ, THẢO LUẬN 82 4.1 Ưu điểm của SEMAT 82 4.2 Ưu điểm của EssWork 85 4.3 Nhược điểm của SEMAT và EssWork 86 v KẾT QUẢ ĐẠT ĐƯỢC 88 TÀI LIỆU THAM KHẢO 89 DANH SÁCH CÁC HÌNH VẼ Hình 1.1: Mối quan hệ giữa các Alpha. 8 Hình 1.2: Vòng đời Unified Process. 21 Hình 1.3: Các trạng thái cần đạt được ở giai đoạn khởi đầu. 22 Hình 1.4: Các trạng thái cần đạt được ở giai đoạn dự thảo. 27 Hình 1.5: Các trạng thái cần đạt được ở giai đoạn xây dựng. 32 Hình 1.6: Các trạng thái cần đạt được ở giai đoạn triển khai. 35 Hình 1.7: Activity Space. 38 Hình 2.1: Giao diện EssWork. 46 Hình 2.2: Tạo một Process mới. 48 Hình 2.3: Xây dựng một Process từ các Practice. 49 Hình 2.4: Tạo một Work Pack mới. 50 Hình 2.5: Bảng mô tả một Alpha trong Work Package. 51 Hình 2.6: Mô tả môt ví dụ về Work Pad. 52 Hình 3.1: Quy trình Essential Unified Process. 55 Hình 3.2: Alpha Opportunity ở giai đoạn khởi đầu. 56 Hình 3.3: Công việc cần thực hiện với Opportunity ở giai đoạn khởi đầu. 57 Hình 3.4: Danh mục công việc cần thực hiện để Requirement đạt trạng thái Shared. 58 Hình 3.5: Thống kê các Use Case trên EssWork. 59 Hình 3.6: Ca sử dụng quản trị hệ thống. 61 Hình 3.7: Ca sử dụng quản lý thông tin khách hàng. 61 Hình 3.8: Ca sử dụng theo dõi nợ của khách hàng. 62 Hình 3.9 Cập nhật trạng thái Use Case tới Story Structure Understood. 62 Hình 3.10: Các công việc cần thực hiện để đạt được trạng thái Approach Selected của Alpha System. 63 Hình 3.11: Xác định các Modul cần được tạo trong System. 63 vi Hình 3.12: Xác định các thành viên trong nhóm. 65 Hình 3.13: Opportunity Game Board ở trạng thái Viability Establish. 66 Hình 3.14: Requirement với trạng thái đích là Stable. 67 Hình 3.15: Các nhiệm vụ cần thực hiện để Requirement đạt đích là Stable. 67 Hình 3.16: Use Case Slice ở trạng thái Prepared. 68 Hình 3.17: Use Case Slice ở trạng thái Analyzed. 70 Hình 3.18: Bảng Use Case Game Board khi Requirement đạt trạng thái Stable. 71 Hình 3.19: System Game Board với trạng thái đích là Production Quality Achieved 71 Hình 3.20: Các nhiệm vụ cần thực hiện để System đạt được trạng thái Production Quality Achieve. 72 Hình 3.21: Thực hiện phát triển một số modul. 72 Hình 3.22: Kiểm thử một số modul đã hoàn thành. 73 Hình 3.23: Xác nhận lỗi. 73 Hình 3.24: Cập nhật lại những lỗi đã được sửa. 74 Hình 3.25: Cập nhật lại những test case đã hoàn thành 74 Hình 3.26: Project Game Board với mục tiêu là Development Complete. 75 Hình 3.27: Team Game Board với mục tiêu là Collaborating. 75 Hình 3.28: Trạng thái của Team Member khi nhóm cộng tác tốt. 76 Hình 3.29: System với mục tiêu là trạng thái Release Candidate Available. 77 Hình 3.30: Component với trạng thái đích là Reased. 78 Hình 3.31: Opportunity đã đạt được trạng thái Problem Addressed. 79 Hình 3.32: Requirement đã đạt được trạng thái Fulfilled 79 Hình 3.33: System đã đạt được trạng thái Released. 80 Hình3.34: Team đạt trạng thái Disbanded. 80 Hình3.35: Project đã hoàn thành việc chuyển giao. 81 Hình3.36: Way of Work đạt trạng thái Handed Over. 81 Hình 4. 1: Ví dụ về việc dùng chung Kernel trong một dự án. 85 1 MỞ ĐẦU Lý do chọn đề tài Công nghệ phần mềm đã có hơn 40 năm phát triển nhưng đến nay các phương pháp phát triển phần mềm vẫn đang được nghiên cứu, thử nghiệm tích cực. Chúng luôn được cải tiến dựa trên cả nghiên cứu lý thuyết và kinh nghiệm thực tế nhằm giúp các dự án phần mềm ngày càng thành công hơn, giải quyết được những vấn đề thường trực như: Yêu cầu khách hàng thay đổi, thời gian hoàn thành dự án, kinh phí, kỹ năng làm việc. Có rất nhiều phương pháp phát triển phần mềm như: Quy trình thác nước, phương pháp phát triển linh hoạt (XP, Scrum, RUP). Mỗi phương pháp có những ưu nhược điểm riêng phù hợp với từng dự án. Giữa các phương pháp này cũng có nhiều điểm chung nhưng khó nhận ra hoặc không thống nhất về mặt thuật ngữ và đó không phải là cái chung nhất của mọi phần mềm khi phát triển. Các phương pháp phát triển thì luôn thay đổi theo thời gian làm cho ta cảm nhận nó giống như một ngành thời trang chứ không phải là một ngành kỹ thuật ví dụ như 15 năm trước đây thì người ta thường dùng quy trình Rup (Unified Process), rồi sau đó đến CMMI, tiếp theo là đến XP và bây giờ là Scrum, Lean và Kaban. Chúng ta không thể biết ngày mai sẽ là phương thức nào, có quá nhiều quy trình làm cho đôi lúc chúng ta cũng không biết chọn quy trình phát triển nào là tốt nhất cho dự án của mình. SEMAT là một trong những lỗ lực nghiên cứu nhằm tạo ra nền tảng cho việc thống nhất, kết hợp các phương pháp, qui trình phần mềm. Nó chứa những thành phần cơ bản, chung nhất trong quá trình phát triển của bất kỳ phần mềm nào. Khi thực hiện SEMAT sẽ kết hợp với một trong các quy trình phát triển nhờ đó sẽ có những hướng dẫn thực hiện chi tiết hơn, giúp cho người mới làm phần mềm không bỏ qua một bước nào trong khi thực hiện việc phát triển, giúp giải quyết các khó khăn gặp phải khi phát triển. Ví dụ nếu chúng ta chỉ sử dụng quy trình RUP để phát triển chúng ta chỉ biết đầu ra của từng giai đoạn, một số hướng dẫn tổng quát mà không có những hướng dẫn cụ thể từng việc phải làm trong từng giai đoạn một cách thật rõ ràng, như khi xác định yêu cầu khách hàng gặp 2 phải khó khăn về việc không thống nhất giữa yêu cầu khách hàng giữa nhóm phát triển và người sử dụng thì nếu chỉ sử dụng mỗi quy trình RUP thì không có hướng dẫn nào thực hiện điều này, còn khí kết hợp nó với SEMAT thì lại có hướng dẫn thực hiện khi có sự không thống nhất này. SEMAT cũng đang còn khá mới mẻ trên thế giới và đặc biệt ở Việt Nam. Vì vậy việc hiểu rõ và áp dụng được SEMAT để đưa ra một số nhận xét, đánh giá có ý nghĩa rất lớn trong việc giúp các đơn vị làm phần mềm tiếp cận với SEMAT, đồng thời cũng giúp các tổ chức giảng dạy về kỹ thuật phần mềm có những hướng đi mới trong việc giảng dạy về kỹ thuật phần mềm. Mục đích nghiên cứu Mục đích nghiên cứu trong luận văn nhằm tìm hiểu các thành phần của SEMAT, cụ thể ở đây là nghiên cứu về Kernel, một thành phần quan trọng, cơ bản nhất đều có trong quy trình phát triển. Nắm vững các thành phần cơ bản trong quy trình phát triển phần mềm và từ đó ứng dụng nó cho việc theo dõi quy trình phát triển phần mềm. Mục đích thứ hai trong luận văn là nghiên cứu về công cụ EssWork, áp dụng công cụ này vào một dự án cụ thể. Đối tượng và phạm vi nghiên cứu Đối tượng nghiên cứu ở đây là các thành phần của SEMAT như: Practice, Method, Kernel, Language. Trong luận văn này tôi tập trung nghiên cứu sâu về các thành phần của Kernel như: Kernel Alpha, Activity, Competency. Đối tượng nghiên cứu thứ hai trong luận văn là công cụ EssWork, ứng dụng chức năng tạo Work Package trong công cụ này trong việc theo dõi quy trình phát triển phần mềm. Kết cấu của luận văn Luận văn của tôi trình bày ngoài phần mở đầu, mục lục, danh mục tài liệu tham khảo, kết quả đạt được thì nội dung của luận văn gồm bốn chương. Chương 1 sẽ nghiên cứu về SEMAT. Nội dung trong chương sẽ nêu ra những lý thuyết về SEMAT, từng thành phần trong SEMAT như: Method, Practice, Kernel, Language. Đặc biệt sẽ đi sâu trình bày kỹ về thành phần Kernel trong SEMAT đồng thời nêu ra một ví dụ áp dụng khi [...]...sử dụng Kernel Alpha trong quá trình phát triển phần mềm Chương 2 sẽ nghiên cứu về công cụ EssWork, sẽ tìm hiểu những đặc điểm, ứng dụng của công cụ EssWork đồng thời cũng trình bày cách sử dụng EssWork Chương 3 sẽ áp dụng công cụ EssWork vào một ví dụ đơn giản, những áp dụng này giúp người nghiên cứu về SEMAT cũng như công cụ EssWork hiểu rõ hơn về SEMAT và EssWork, hình dung về ứng dụng của SEMAT. .. Giới thiệu về công nghệ phần mềm, những khái niệm cơ bản về hạt nhân trong công nghệ phần mềm, đưa ra những thực hành trong Kernel Language, đánh giá sự tiến bộ và sức mạnh của công nghệ phần mềm khi sử dụng Kernel và Alpha từ đó có thể mang những kiến thức thu được áp dụng vào trong thực hành.[1] Khu vực lý thuyết: Là khu vực nghiên cứu nhằm tìm ra lý thuyết chung cho công nghệ phần mềm. [1] Khu vực... với những khó khăn thường gặp phải trong quá trình phát triển phần mềm Kernel gồm 3 thành phần: - Kernel Alpha: Là những thành phần cơ bản trong quá trình phát triển phần mềm Alpha là một phần rất quan trọng mang lại thành công hay không thành công của phần mềm - Activity space: Những thực hiện cơ bản - Competence: Năng lực cần thiết trong quá trình phát triển phần mềm Kernel được tổ chức thành ba khu... được các nghiên cứu mà khu vực lý thuyết đã nghiên cứu tổng hợp thành Khu vực thực hành giống như khách hàng của khu vực lý thuyết bởi muốn áp dụng được các nghiên cứu vào thực tế thì những nhà phát triển cần hiểu rõ những nghiên cứu đó và khu vực giáo dục sẽ có nhiệm vụ truyền tải 4 những nghiên cứu thông qua tài liệu, qua các buổi đào tạo và giúp cho các nhà phát triển có thể hiểu rõ nghiên cứu và mang... thực hiện công cụ Sau khi sử dụng công cụ EssWork thì luận văn sẽ đưa ra một số nhân xét, đánh giá, thảo luận về những ưu điểm, nhược điểm của SEMAT cũng như công cụ EssWork trong chương 4 Nhờ những đánh giá này mà người phát triển sẽ có những quyết định trong việc có nên dùng SEMAT trong việc phát triển dự án của mình hay không 3 CHƯƠNG 1- GIỚI THIỆU SEMAT 1.1 Giới thiệu SEMAT được thành lập vào tháng... bản trong quá trình phát triển phần mềm, nhờ vào nó người phát triển có thể kiểm soát phần nào những rủi ro, đáp ứng yêu cầu nêu ra, khắc phục những khó khăn phải đối mặt trong quá trình phát triển Chức năng của nó là: - Đưa ra những khái niệm chính liên quan đến công nghệ phần mềm - Cung cấp những nền tảng chung cho quá trình phát triển phần mềm - Đánh giá và theo dõi sự tiến bộ và sức mạnh của bất... cơ Nhóm phát triển quyết định sử dụng practice Establish bản và các ràng buộc là: - Xác định các practice và - Sử dụng phát triển theo quy trình RUP tool - Phát triển theo hướng điều khiển kiểm thử (TDD) - Sử dụng Use Case để mô tả chức năng - Công cụ dùng để phát triển là VS 2013 Prepared -Ước tính chi phí trong Nhóm phát triển lên kế hoạch về ngân sách công việc và nguồn tài nguyên cần thiết trong. .. tập trung vào một khía cạnh của kỹ nghệ phần mềm 6 - Customer: Khu vực này quan tâm đến việc sử dụng và khai thác phần mềm được triển khai trong thực tế - Solution: Khu vực này chứa những đặc tả về hệ thống và phát triển hệ thống phần mềm - Endeavor: Là khu vực quan tâm đến nhóm làm việc và cách làm việc mà họ hướng tới trong công việc của họ 1.2.2 Kernel Alpha Alpha là những thành phần cơ bản trong quá... mục đích của ứng dụng - Có những hiểu biết chung về ứng dụng - Thỏa thuận về các 24 Anh Hải đưa bản viết tay mô tả về ứng dụng cho nhóm phát triển để nhóm có thể hiểu rõ về ứng dụng từ đó cùng thảo luận và đưa ra các chức năng của ứng dụng đồng thời đưa ra Requirement những hạn chế mà ứng dụng chưa thể - Xác định hạn chế đạt được Achitecture - Xác định nền tảng phẩn cứng Hai nhân viên phát triển đã thảo... Needed: Trong cuộc họp anh Hải nêu ra ý tưởng của mình về việc phát triển phần mềm quản lý khách hàng Anh ấy giải thích nguyên nhân cần thiết của việc phát triển phần mềm này và được giám đốc cũng như những người khác đồng ý rằng việc phát triển phần mềm này là một ý tưởng tốt và giải quyết được vấn đề trong quản lý khách hàng cũ và chiến lược kinh doanh với các khách hàng 23 o Value Established: Trong . thành phần cơ bản trong quy trình phát triển phần mềm và từ đó ứng dụng nó cho việc theo dõi quy trình phát triển phần mềm. Mục đích thứ hai trong luận văn là nghiên cứu về công cụ EssWork, áp dụng. LỜI CAM ĐOAN Tôi xin cam đoan bản luận văn Nghiên cứu SEMAT và ứng dụng công cụ EssWork trong phát triển phần mềm là công trình nghiên cứu của tôi dưới sự hướng dẫn khoa học của TS. Mẫn. HỌC CÔNG NGHỆ ĐẶNG THỊ PHƯỚC NGHIÊN CỨ SEMAT VÀ ỨNG DỤNG CÔNG CỤ ESSWORK TRONG PHÁT TRIỂN PHẦN MỀM LUẬN VĂN THẠC SĨ Ngành CÔNG NGHỆ THÔNG TIN Chuyên ngành KỸ THUẬT PHẦN