Ứng dụng lập trình linh hoạt trong quy trình cộng tác phần mềm

53 365 0
Ứng dụng lập trình linh hoạt trong quy trình cộng tác phần mềm

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LỜI CAM ĐOAN Em xin cam đoan luận văn tốt nghiệp kết nghiên cứu thân, hướng dẫn thầy giáo, TS.Huỳnh Quyết Thắng Nếu có sai phạm em xin hoàn toàn chịu trách nhiệm LUẬN VĂN THẠC SỸ KHOA HỌC Người làm cam đoan ỨNG DỤNG LẬP TRÌNH LINH HOẠT TRONG QUY TRÌNH CỘNG TÁC PHẦN MỀM An Văn Minh NGÀNH: CÔNG NGHỆ THÔNG TIN MÃ SỐ: AN VĂN MINH Người hướng dẫn khoa học: TS HUỲNH QUYẾT THẮNG HÀ NỘI - 2006 MỤC LỤC DANH SÁCH BẢNG DANH SÁCH CÁC HÌNH VẼ LỜI CẢM ƠN LỜI NÓI ĐẦU Chương TỔNG QUAN VỀ LẬP TRÌNH “LINH HOẠT” VÀ “QUY TRÌNH CỘNG TÁC PHẦN MỀM” 10 1.1 PHƯƠNG PHÁP LẬP TRÌNH LINH HOẠT 10 1.1.1 Lập trình “linh hoạt” gì? 10 1.1.2 Tại sử dụng XP? 11 1.1.3 Lịch sử phát triển XP 11 1.1.4 Các mục tiêu XP 12 1.1.5 Các giá trị XP 13 1.1.6 Các quy tắc XP 15 1.1.7 Các hoạt động theo XP 16 1.2 QUY TRÌNH CỘNG TÁC PHẦN MỀM 19 1.2.1 Giới thiệu trình cộng tác phần mềm 20 1.2.2 Các yếu tố liên quan đến CSP 23 1.2.3 Các yếu tố 27 1.2.4 Định nghĩa trình cộng tác phần mềm 29 1.3 KẾT HỢP XP TRONG CSP ĐỂ PHÁT TRIỂN PHẦN MỀM 38 Chương CÁC “THÔNG LỆ” TRONG XP 40 2.1 TỔNG QUAN VỀ CÁC THÔNG LỆ TRONG XP 40 2.2 CÁC THÔNG LỆ TRONG XP 41 2.2.1 Tiêu chuẩn mã hoá 41 2.2.2 Sở hữu chung mã lệnh 41 2.2.3 Sự kết hợp thường xuyên 41 2.2.4 Cải tiến thiết kế 42 2.2.5 Thiết kế đơn giản 42 2.2.6 Các bước hoàn thiện nhỏ 42 2.2.7 Tốc độ làm việc vừa phải 43 2.2.8 Hệ thống suốt 43 2.2.9 Lập trình theo cặp 43 2.2.10 Lập kế hoạch dự án 44 2.2.11 Phát triển hướng vào việc kiểm tra 49 2.2.12 Làm việc theo nhóm 49 2.3 CẢI TIẾN MÃ LỆNH 50 2.3.1 Giới thiệu “cải tiến mã lệnh” 50 2.3.2 Làm tài liệu cải tiến mã lệnh 51 2.3.3 Các đoạn mã lệnh tồi 52 2.3.4 Các kỹ thuật sử dụng để cải tiến mã lệnh 53 2.3.5 Cải tiến mã lệnh trình phát triển phần mềm 54 2.3.6 Lợi ích cải tiến mã lệnh 55 2.3.7 Các vấn đề cần lưu ý cải tiến mã lệnh 57 KẾT LUẬN 58 Chương ỨNG DỤNG LẬP TRÌNH LINH HOẠT TRONG QUY TRÌNH CỘNG TÁC PHẦN MỀM 59 3.1 Ý TƯỞNG LẬP TRÌNH LINH HOẠT TRONG QUY TRÌNH CỘNG TÁC PHẦN MỀM 59 3.2 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM ỨNG DỤNG XP TRONG CSP 59 3.2.1 Mức 0: Điểm xuất phát 59 3.2.2 Mức 1: Quản lý chất lượng cộng tác 63 3.3 ĐÁNH GIÁ SO SÁNH 72 3.3.1 So sánh với quy trình cộng tác phần mềm 72 DANH SÁCH BẢNG 3.3.2 So sánh với phương pháp lập trình linh hoạt 72 Tên bảng 3.4 KẾT LUẬN 72 Trang Chương THỬ NGHIỆM QUY TRÌNH TRONG ĐÀO TẠO VÀ TRONG Bảng 3.1: So sánh quy trình ứng dụng XP CSP với CSP 70 PHÁT TRIỂN PHẦN MỀM 73 Bảng 3.2: So sánh quy trình ứng dụng XP CSP với XP 70 Bảng 4.1: So sánh tỷ lệ sinh viên hoàn thành tập thời gian quy định buổi học 78 4.1.1 Giới thiệu nội dung mục đích môn học 73 Bảng 4.2: So sánh kết học tập phần lý thuyết 78 4.1.2 Phương pháp giảng dạy truyền thống 74 Bảng 4.3: So sánh kết thực tập lớn 78 Bảng 4.4: Tóm tắt kết thực kết ứng dụng 90 Bảng 4.5 So sánh thời gian thực 91 Bảng 4.6 So sánh chất lượng chương trình 91 4.1 THỬ NGHIỆM LẬP TRÌNH LINH HOẠT TRONG GIẢNG DẠY MÔN HỌC “LẬP TRÌNH TRÊN WINDOWS” 73 4.1.3 Áp dụng phương pháp XP vào việc giảng dạy môn học “Lập trình windows” 76 4.2 THỬ NGHIỆM QUY TRÌNH ĐỂ PHÁT TRIỂN ỨNG DỤNG “QUẢN LÝ NHÂN SỰ” CHO CÔNG TY HỒNG HÀ 81 4.2.1 Giới thiệu hệ thống 81 DANH SÁCH CÁC HÌNH VẼ 4.2.2 Phương pháp phát triển hệ thống 82 4.2.3 Xây dựng hệ thống 83 4.2.4 Đánh giá hiệu việc ứng dụng “Lập trình linh hoạt” “Quy trình cộng tác phần mềm” 92 4.3 KẾT LUẬN 93 TỔNG KẾT 95 PHỤ LỤC 98 TÀI LIỆU THAM KHẢO 103 Tên hình vẽ Trang Hình 1.1: Mô hình mức tăng trưởng CSP 26 Hình 1.2: Thẻ CRC 31 Hình 3.1 Mô tả bước quy trình ứng dụng XP CSP 69 LỜI CẢM ƠN LỜI NÓI ĐẦU Xử lý thông tin nhu cầu tất yếu người, hoạt động diễn Em xin gửi lời cảm ơn sâu sắc tới thầy giáo, TS.Huỳnh Quyết Thắng, ngày, tất lĩnh vực đời sống xã hội Với hướng dẫn, bảo giúp đỡ em tận tình, để em hoàn thành tốt luận đời máy tính điện tử, máy, xử lý thông tin cách tự văn Em xin gửi lời cảm ơn chân thành đến thầy cô giáo khoa động nhanh chóng Nó giúp người tiết kiệm nhiều thời Công nghệ thông tin, trường Đại học Bách khoa Hà Nội giảng dạy, tạo gian công sức việc xử lý thông tin Nhưng ta biết rằng, để máy điều kiện giúp đỡ em suốt trình học tập trường tính thực xử lý thông tin, người sử dụng phải đưa vào chương Chân thành cảm ơn anh, chị bạn học viên lớp CNTT-2004, động viên giúp đỡ em nhiều thời gian học tập làm luận văn tốt nghiệp, để em có kết tốt Em xin chân thành cảm ơn! trình để điều khiển, gọi phần mềm Với phát triển mạnh mẽ công nghiệp nói chung, công nghệ máy tính nói riêng, ngày có nhiều tổ chức sử dụng máy tính vào việc xử lý thông tin, nhằm giảm bớt nhân lực, nhàm chán công việc Nhưng ta biết rằng, khối lượng thông tin ngày lớn, thao tác xử lý ngày phức tạp Do vậy, việc xây dựng phần mềm máy tính trở nên khó khăn đòi hỏi phải tuân theo quy trình làm việc thích hợp Công nghệ phần mềm đời, đưa quy trình, giúp cho việc xây dựng phần mềm thuận lợi, chẳng hạn, quy trình phần mềm dựa cá nhân (PSP) Tuy nhiên, với hiểu biết ngày sâu sắc công nghệ thông tin Con người, mà cụ thể khách hàng phần mềm, không dừng lại nhu cầu cần có phần mềm máy tính, mà họ muốn có cách nhanh chóng Hơn nữa, phần mềm phải có kích thước vừa phải, thao tác xử lý nhanh, xác, đáp ứng yêu cầu toán, đồng thời phải dễ sửa đổi nâng cấp Ngoài ra, họ muốn dõi theo trình xây dựng phần mềm, để chắn rằng, phần mềm họ xây dựng tiến độ, đạt hiệu mong muốn Việc xây dựng phần mềm theo PSP xa rời khách hàng Tổ chức phần mềm nhận yêu cầu xây dựng phần mềm, sau thời gian, giao phần mềm cho khách hàng Khách hàng chẳng biết trình xây dựng - Chương 3: Ứng dụng “Lập trình linh hoạt” “Quy trình cộng tác phần mềm họ tin rằng, phần mềm xây dựng phần mềm”, đề xuất quy trình ứng dụng “Lập trình linh hoạt” “Quy thành công hay không? Hơn nữa, việc sử dụng PSP, tổ chức xây dựng trình cộng tác phần mềm”, bước cần thực để xây dựng phần mềm phần mềm giao nhiệm vụ cần thực cho cá nhân Vì vậy, phần theo quy trình mềm thường có nhiều lỗi, thao tác xử lý chậm, thiều xác… Để khắc phục nhược điểm nói trên, cần có quy trình làm phần - Chương 4: Ứng dụng “Lập trình linh hoạt” đào tạo phát triển phần mềm, trình bày thử nghiệm áp dụng phương pháp XP vào giảng dạy mềm mới, phương pháp XP đời Với mục tiêu giao nhanh phần mềm môn học lập trình, ứng dụng “Lập trình linh hoạt” “Quy trình cộng đến tay khách hàng, đồng thời khách hàng dõi theo trình xây dựng tác phần mềm” để phát triển phần mềm “Quản lý nhân sự” phần mềm, tin tưởng vào khả phần mềm hoàn thiện có hiệu tốt Với mong muốn đóng góp phần nhỏ bé vào xu phát triển ngành công nghệ thông tin, đặc biệt giáo dục-đào tạo, Với khoảng thời gian nghiên cứu đề tài không nhiều trình độ kiến thức công nghệ phần mềm hạn chế, nên luận văn tránh khỏi sai sót Em mong đánh giá góp ý bổ sung thầy giáo, cô giáo bạn để luận văn hoàn thiện việc xây dựng phần mềm ứng dụng, đáp ứng yêu cầu xử lý thông tin ngày cao người Luận văn tốt nghiệp nghiên cứu đề tài: “ỨNG DỤNG LẬP TRÌNH LINH HOẠT TRONG QUY TRÌNH CỘNG TÁC Hà nội, ngày tháng Học viên thực PHẦN MỀM” NVLV mong góp phần vào việc nâng cao chất lượng đào tạo sinh viên ngành công nghệ thông tin, giúp tổ chức phần mềm biết thêm quy trình xây dựng phần mềm, khắc phục nhược điểm quy trình cũ Đáp ứng đòi hỏi ngày khắt khe khách hàng phần mềm Luận văn gồm chương: - Chương 1:Tổng quan “Lập trình linh hoạt” “Quy trình cộng tác phần mềm”, nghiên cứu khái niệm phương pháp XP quy trình CSP - Chương 2: Các “thông lệ” Lập trình linh hoạt, nghiên cứu “thông lệ” XP, quy tắc bước thực mà người lập trình cần tuân thủ xây dựng phần mềm dựa XP năm 2006 An Văn Minh 10 Chương TỔNG QUAN VỀ LẬP TRÌNH “LINH HOẠT” VÀ “QUY TRÌNH CỘNG TÁC PHẦN MỀM” 1.1 PHƯƠNG PHÁP LẬP TRÌNH LINH HOẠT 1.1.1 Lập trình “linh hoạt” gì? Lập trình “linh hoạt” (XP) tập giá trị, quy tắc bước thực hiện, để phát triển nhanh phần mềm chất lượng cao Đây phương pháp phát triển phần mềm linh hoạt, phù hợp để phát triển ứng dụng có kích thước vừa phải [5] Một điểm đặc biệt XP trình phát triển phần mềm, khách hàng tham gia với nhà phát triển Nhờ đó, nhà phát triển nắm bắt thay đổi, yêu cầu mới, làm giảm chi phí để sửa đổi hệ thống XP đạt thành công làm cho khách hàng thoả mãn tâm lý Các tổ chức phần mềm sử dụng XP, để phát triển nhanh phần mềm giao cho khách hàng họ yêu cầu XP giúp nhà phát triển đáp ứng việc thay đổi yêu cầu khách hàng, chí đến cuối chu kỳ phát triển hệ thống XP cải tiến dự án phần mềm phương pháp [1]: trao đổi thông tin, tính đơn giản, phản hồi thông tin, sẵn sàng đón nhận thay đổi yêu cầu Các lập trình viên XP trao đổi thông tin với khách hàng với lập trình viên nhóm Họ tạo thiết kế mức đơn giản rõ ràng Họ nhận thông tin phản hồi cách kiểm tra phần mềm họ vào thời gian ngày làm việc Họ giao phần mềm cho khách hàng thời gian ngắn thực thay đổi đề nghị Như vậy, lập trình viên XP đáp ứng việc thay đổi yêu cầu từ phía khách hàng thay đổi công nghệ 11 XP khác với phương pháp khác Nó gồm nhiều thành phần nhỏ, thành phần riêng biệt không tạo kịch bản, kết hợp chúng lại với ta nhìn thấy “bức tranh hoàn thiện” Đây đặc điểm khác với phương pháp phát triển phần mềm truyền thống dẫn đến thay đổi cách lập trình [1] 1.1.2 Tại sử dụng XP? Như biết, hầu hết phương pháp phát triển phần mềm truyền thống bao gồm bước: Nắm bắt yêu cầu, phân tích, thiết kế, viết mã lệnh, kiểm thử bảo trì Cách tiếp cận có thuận lợi xác định sản phẩm cuối trước tiến trình xây dựng phần mềm thực Tuy nhiên, điều không phù hợp với dự án phần mềm đại với yêu cầu luôn thay đổi Khách hàng đưa nhiều yêu cầu cần thông tin phản hồi liên tục để điều chỉnh lại lựa chọn họ Người lập trình cần phải có phương pháp thực đó, để sẵn sàng đón nhận thay đổi từ người dùng để họ tiếp nhận thông tin phản hồi Nếu bạn làm việc môi trường mà hệ thống cần phải đáp ứng yêu cầu thay đổi khách hàng có lợi việc bàn giao phần mềm sớm thường xuyên nên xem xét việc sử dụng XP để phát triển hệ thống Các nhóm lập trình sử dụng XP nhận thấy rằng, họ bàn giao sản phẩm phần mềm chất lượng cao với số lượng lớn nhanh trước nhiều [1] 1.1.3 Lịch sử phát triển XP XP tạo Kent Beck, Ward Cunningham Ron Jeffries họ làm việc cho dự án phát triển hệ thống Chrysler Comprehensive Compensation (C3) [34] Kent Beck trở thành chủ dự án C3 vào tháng năm 1996 bắt đầu lựa chọn phương pháp phát triển để sử dụng vào việc 12 13 phát triển dự án Kent Beck viết sách phương pháp sử dụng - Xác định bước cần thực để phát triển phần mềm vào tháng 10 năm 1999, sách Extreme Programming Explained [34] Ưu điểm XP làm giảm chi phí cho việc thay đổi yêu xuất Chrysler huỷ bỏ dự án C3 vào năm 2000, phương pháp cầu Trong phương pháp truyền thống, yêu cầu hệ thống xác thực dự án ghi nhận lĩnh vực công nghệ phần mềm Đến năm định từ bắt đầu phát triển dự án thường cố định từ thời điểm 2006, số dự án phát triển phần mềm tiếp tục sử dụng XP đó, làm cho việc bảo trì hệ thống khó khăn chí phí lớn * Nguồn gốc XP Việc sử dụng XP giảm chi phí cho việc thay đổi nhờ vào Việc phát triển phần mềm năm 1990 có hai ảnh hưởng giá trị, quy tắc bước thực Bằng cách áp dụng XP, dự chính: thứ nhất, lập trình hướng đối tượng (OOP) thay lập trình thủ tục án phát triển hệ thống mềm dẻo việc sửa đổi bổ sung yêu OOP quan tâm ủng hộ ngành công nghiệp; thứ hai xuất cầu [34] Internet công ty COM nhấn mạnh thời gian đưa sản phẩm thị 1.1.5 Các giá trị XP trường lớn mạnh công ty yếu tố cạnh tranh thương mại Các XP gồm có giá trị: yêu cầu thay đổi nhanh chóng làm ngắn lại vòng đời sản phẩm thường - Trao đổi thông tin không phù hợp với phương pháp phát triển phần mềm truyền thống - Tính đơn giản Dự án C3 thực nhằm xác định cách thức tốt để sử dụng công nghệ đối tượng Dựa việc nghiên cứu hệ thống toán Chrysler, sử dụng ngôn ngữ Smalltalk Dự án Kent Beck thực với lập trình viên giỏi Smalltalk, để điều khiển trình thực hệ thống ông phát nhiều vấn đề nảy sinh trình phát triển Từ đó, đề xuất thực số thay đổi cách thực mình, với cộng tác viên Ward Cunningham 1.1.4 Các mục tiêu XP XP phương pháp phát triển phần mềm, giúp tổ chức phần mềm đạt mục tiêu [1]: - Làm thoả mãn nhu cầu người dùng - Đáp ứng thay đổi mang tính xã hội - Đưa cách thức cải tiến phần mềm - Xác định kiểu phát triển phần mềm - Phản hồi thông tin - Phát triển phần mềm theo quan điểm người dùng - Sự quan tâm (respect) Để phát triển hệ thống phần mềm, lập trình viên phải hiểu yêu cầu hệ thống Trong phương pháp truyền thống, việc thực cách làm tài liệu Tuy nhiên, XP lại sử dụng giá trị để phổ biến cách nhanh chóng kiến thức đến thành viên nhóm phát triển Mục đích tạo cho tất người phát triển quan điểm chung hệ thống, để phù hợp với quan điểm người sử dụng hệ thống XP ủng hộ việc tạo thiết kế đơn giản, thông suốt, cộng tác người sử dụng với lập trình viên, việc trao đổi thông tin lời, việc phản hồi thông tin XP khuyến khích bắt đầu với giải pháp đơn giản lập trình viên hiểu toán Sự khác quan điểm với 14 15 phương pháp truyền thống tập trung vào việc thiết kế viết mã lệnh cho lệnh Người dùng kiểm tra hệ thống định kỳ theo yêu cầu yêu cầu hôm thay làm việc cho mai, tuần sau tháng chức Kent Beck nói: “Sự lạc quan nguy gây lỗi lập sau Những người đề xuất XP chấp nhận điều không thuận lợi việc trình thông tin phản hồi giúp xử lý việc này” cố gắng thay đổi hệ thống thừa; có hệ thống không cần thay đổi “Sự quan tâm” biểu thị theo nhiều cách Thứ nhất, XP, sau xây dựng Từ không cần phải tính đến chi phí cho việc sửa đổi thành viên nhóm nên quan tâm lẫn nhau, lập trình viên không hệ thống Nếu tính đến giá trị trao đổi thông tin, đơn giản thiết kế nên uỷ thác thay đổi dẫn đển làm hỏng việc biên dịch, kiểm tra mã lệnh cải thiện “chất lượng” việc trao đổi Một thiết kế đơn tồn bị hỏng, làm trễ việc người nhóm Thứ hai, giản với mã lệnh đơn giản, làm cho lập trình viên nhóm dễ thành viên quan tâm đến công việc họ cách phấn đấu chất hiểu lượng cao tìm thiết kế tốt cho giải pháp cải tiến mã Trong XP, thông tin phản hồi có liên quan đến nhiều vấn đề khác việc phát triển hệ thống: lệnh 1.1.6 Các quy tắc XP - Thông tin phản hồi từ hệ thống: cách viết kiểm tra, Các quy tắc XP định dạng sở XP dựa giá trị vừa chạy kiểm tra để kiểm tra việc kết hợp theo định kỳ, lập trình viên mô tả dự kiến để thúc đẩy việc đưa định dự án có thông tin phản hồi trực tiếp từ trạng thái hệ thống, sau phát triển hệ thống Các quy tắc dự kiến cụ thể so với giá trị thực thay đổi dễ dàng biên dịch để đưa hướng dẫn tình đặc biệt - Thông tin phản hồi từ người dùng: Các kiểm thử chức 1.1.6.1 Phản hồi thông tin viết người dùng người thực kiểm thử Họ nhận Sự phản hồi thông tin có tác dụng thực cách thông tin cụ thể trạng thái hệ thống Việc kiểm thử cần nhanh chóng Thời gian kích hoạt thông tin phản hồi nhận chuẩn bị lần cho hai hay ba tuần, vậy, người dùng dễ dàng vấn đề then chốt để nghiên cứu thực thay đổi Trong XP, ngoại hướng theo việc phát triển trừ phương pháp phát triển hệ thống cũ, việc tiếp xúc với người dùng - Thông tin phản hồi từ nhóm: người dùng đưa yêu cầu mới, khoảng thời gian ngắn Người dùng hiểu biết rõ ràng hệ thống nhóm phát triển tiếp nhận yêu cầu đưa đánh giá trực tiếp thời phát triển đưa thông tin phản hồi hướng theo gian cần thiết để thực yêu cầu phát triển cần thiết Thông tin phản hồi có liên quan mật thiết với việc trao đổi thông tin Các kiểm tra (Unit tests) làm cho phản hồi thông tin tính đơn giản Các lỗi hệ thống dễ dàng phát cách thực nhanh Khi viết mã lệnh, kiểm tra cung cấp thông tin phản viết kiểm tra, để tìm đoạn mã lệnh có lỗi Thông tin phản hồi trực hồi trực tiếp để cho hệ thống tác động trở lại thay đổi Nếu tiếp từ hệ thống cho phép lập trình viên biết, để ghi nhận lỗi đoạn mã trường hợp khẩn cấp, thay đổi ảnh hưởng đến phần hệ thống mà 16 17 không nằm phạm vị lập trình viên tạo thành phần đó, lập trình Việc viết mã lệnh việc vẽ sơ đồ từ phát sinh mã lệnh, viên không cần ý đến điều Khả xuất lỗi lớn việc viết kịch cho hệ thống dựa web viết lệnh cho chương trình hệ thống thời gian xây dựng cần thiết phải biên dịch 1.1.6.2 Tính đơn giản Việc viết mã lệnh dùng để giải pháp phù hợp Tính đơn giản việc xem xét vấn đề giải pháp cho toán Trong trường hợp này, XP tán thành việc đối mặt với nhiều “hết sức đơn giản” Các phương pháp phát triển hệ thống cũ nói đến việc lập lựa chọn cho vấn đề lập trình, lựa chọn đơn giản cho việc viết mã kế hoạch cho tương lai mã hoá cho khả sử dụng lại XP không thực lệnh cho tất giải pháp xác định với kiểm tra tự động cho giải theo ý tưởng pháp phù hợp Những người ủng hộ XP nói rằng, việc tạo tất thay đổi lớn Việc viết mã lệnh giúp trao đổi suy nghĩ vấn đề lập lần thực XP áp dụng thay đổi mang trình Một lập trình viên thực toán lập trình phức tạp thấy tính cải tiến: chằng hạn, sau tuần hệ thống có bước khó giải thích giải pháp cho lập trình viên khác, viết mã hoàn thiện nhỏ Bằng cách tạo nhiều bước hoàn thiện nhỏ, người sử dụng lệnh cho sử dụng mã lệnh để giải thích ý định Các lập trình thể tác động nhiểu trình phát triển hệ thống viên khác giải thích vấn đề cách viết mã lệnh theo suy nghĩ phát triển họ 1.1.6.3 Đón nhận thay đổi 1.1.7.2 Kiểm thử Quy tắc đón nhận thay đổi không chống lại thay đổi phải Một lập trình viên chắn điều trừ nắm bắt chúng Trong trường hợp cần thiết, có yêu cầu thay đổi kiểm tra Việc kiểm thử để nhận biết vấn đề mà đến từ phía người dùng, lập trình viên sẵn sàng đón nhận yêu cầu yêu cầu tính xác người dùng Trong phát triển phần mềm, XP đồng thời lập kế hoạch cho yêu cầu tới cho điều có nghĩa người chắn chức 1.1.7 Các hoạt động theo XP hoạt động trừ kiểm tra Từ đó, đặt câu hỏi cần XP mô tả hoạt động chủ yếu thực trình phát triển phần mềm [34] gồm: Viết mã lệnh, kiểm thử, nhận định tác nhân hệ thống phải xác định điều mà chưa chắn - Các lập trình viên không chắn mã lệnh mà họ viết so thiết kế với mã lệnh mà họ nên viết Để kiểm tra điều này, XP sử dụng kiểm 1.1.7.1 Viết mã lệnh tra (Unit Tests) Có kiểm tra, thực việc kiểm tra mã lệnh cách Những người ủng hộ XP cho rằng, sản phẩm thực quan trọng trình phát triển hệ thống mã lệnh Không có mã lệnh bạn chẳng có hết tự động Các lập trình viên cố gắng viết mã lệnh, họ nghĩ kiểm tra làm hỏng mã lệnh mà họ viết; nhiên, tất 18 kiểm tra thực thành công việc viết mã lệnh hoàn thiện - Các lập trình viên không chắn điều mà họ làm so với 19 Có thể tránh điều cách tạo cấu trúc thiết kế tổ chức cách logic bên hệ thống Một thiết kế tốt tránh nhiều phục thuộc hệ thống; điều có nghĩa việc thay đổi phần hệ thống điều mà đáng họ nên làm Để kiểm tra việc này, XP sử dụng kiểm không ảnh hưởng đến phần khác hệ thống tra chuyên biệt (acceptance tests) dựa yêu cầu đưa khách 1.2 QUY TRÌNH CỘNG TÁC PHẦN MỀM hàng giai đoạn tìm hiểu việc lập kế hoạch theo bước (release Trong công nghiệp người ta chứng minh hai lập trình viên làm planning) việc bên cạnh nhau, máy tính, thiết kế thuật toán, 1.1.7.3 Nhận định tác nhân hệ thống viết mã lệnh, hay kiểm tra chương trình, bản, hiệu so với Các lập trình viên không cần biết điều mặt nghiệp vụ hệ hai người làm việc độc lập[35] Điều cho thấy rằng, lập trình viên thống trình phát triển Nhưng chức hệ thống lại xác làm việc tốt thực trình xác định, người định từ nghiệp vụ hệ thống Để lập trình viên tìm xem xét lại công việc người Từ việc đưa hai ý tưởng đến nên thuộc chức hệ thống, họ cần phải tìm hiểu nghiệp vụ hệ giải công việc, người ta tạo quy trình cộng tác phần mềm (CSP) thống CSP quy trình phát triển phần mềm xác định, có tính chất lặp lại, Các lập trình viên phải tìm hiểu phạm vi rộng: họ phải tìm hiểu mà người dùng yêu cầu Họ phải cố hiểu vấn đề nghiệp vụ hệ thống, gửi thông tin phản hồi cho người dùng vấn đề anh ta, để cải thiện hiểu biết toán Việc trao đổi khách hàng lập trình viên trình bày với hai lập trình viên cộng tác làm việc CSP mở rộng trình phần mềm độc lập (PSP) dựa tảng PSP Để chứng minh hiệu CSP, thí nghiệm tiến hành năm 1999, với gần 40 sinh viên cuối khoá, ngành khoa học máy tính đại học Utah Tất sinh viên học CSP PSP [35] Có nhóm, phần “Planning game” nhóm hai sinh viên làm việc máy tính để phát triển nhiệm 1.1.7.4 Thiết kế vụ lập trình giao Các sinh viên khác làm việc độc lập thực Từ quan điểm tính đơn giản, người nói việc phát triển nhiệm vụ tương tự Nghiên cứu đóng góp vào việc tạo hệ thống không cần thêm điều việc viết mã lệnh, kiểm tra tìm hiểu trình làm phần mềm xác định, có tính chất lặp lại, quy trình cộng tác phần yếu tố tác động đến hệ thống Nếu hoạt động thực tốt, mềm, với cặp lập trình viên cộng tác Thí nghiệm đưa số nhận kết hệ thống làm việc Trong thực tế, hệ thống định sau nhóm lập trình cộng tác, sử dụng CSP [35]: không làm việc Một người thực công việc theo cách mà không cần thiết kế, cuối bị mắc kẹt hệ thống trở nên phức tạp, ràng buộc hệ thống ngày rõ ràng Các cặp lập trình cộng tác thời gian nhiều so với lập trình độc lập 15% Tuy nhiên, thời gian không đáng kể 76 77 Nhiều giải pháp để giải nhiệm vụ chưa tối ưu, thiết kế đặt chưa + Một sinh viên thực cài đặt, sinh viên lại ngồi quan sát kết tốt, dẫn đến chương trình chạy chậm, không giải triệt để yêu người tạo Nếu có vướng mắc cài đặt, họ thảo luận để giải cầu toán mắc nhiều lỗi quyết, không giải nhờ trợ giúp giáo viên Tỷ lệ sinh viên hoàn thành nhiệm vụ thời hạn cao + Sau cài đặt xong, hai xem xét để cải tiến, tìm sửa lỗi Cá biệt có sinh viên hoàn thành nhiệm vụ, làm ảnh Khi kết thúc phần lý thuyết bản, giáo viên thực kiểm tra hưởng đến kết nhóm kiến thức sinh viên, để đánh giá kết học tập Kiến thức kỹ đạt sau thực xong tập lớn không đồng sinh viên - Hình thức kiểm tra: thực hành, sinh viên thực máy tính 4.1.3 Áp dụng phương pháp XP vào việc giảng dạy môn học “Lập trình windows” - Thời gian: 90 phút 4.1.3.2 Phần 2: Đồ án môn học Thí nghiệm tiến hành với lớp học gồm 40 sinh viên, học phòng máy tính Phương pháp giảng dạy tiến hành sau: Kết thúc phần lý thuyết, sinh viên giao thực tập lớn, cài đặt mô ứng dụng quản lý, thời gian tuần 4.1.3.1 Phần 1: Lý thuyết Bài tập lớn thực hướng dẫn giáo viên sau: - Giáo viên chia lớp thành nhóm, nhóm nhóm sinh viên - Giáo viên giới thiệu mục đích việc làm đồ án môn học (cặp), ngồi chung máy tính (các thành viên nhóm luân chuyển - Chia lớp thành nhóm, nhóm sinh viên buổi học) - Giáo viên giới thiệu kiến thức lý thuyết học - Mỗi nhóm nhận đề tài (các đề tài cho nhóm giống khác độ phức tạp tuỳ thuộc vào số lượng sinh viên nhóm) - Hướng dẫn sinh viên cách thức làm việc theo cặp (chỉ phải làm - Giáo viên hướng dẫn cách thực đề tài buổi học đầu tiên) - Giao tập cho sinh viên, nêu mục đích tập dự kiến thời - Các nhóm sinh viên thảo luận để xác định mục đích đề tài đưa kế hoạch thực đề tài gian hoàn thành - Hướng dẫn sinh viên phân tích, thiết kế yêu cầu toán cài đặt máy tính - Phân tích để xác định yêu cầu toán, chuyển yêu cầu thành nhiệm vụ dự kiến thời gian cần thiết để hoàn thành nhiệm vụ - Sinh viên giải tập theo hướng dẫn giáo viên - Phân chia nhóm thành cặp (2 cặp) + Hai sinh viên phân tích đưa giải pháp để giải toán - Giao nhiệm vụ cho cặp (dựa vào thời gian dự kiến) + Cùng thảo luận để thiết kế thuật toán - Mỗi cặp nhận nhiệm vụ, thảo luận thiết kế nhiệm vụ 78 - Các cặp kết hợp kết thiết kế thảo luận để có thiết kế tổng thể ứng dụng Dự kiến thời gian cài đặt cho nhiệm vụ - Phân chia nhiệm vụ cài đặt cho cặp (thường nhiệm vụ cặp thiết kế) - Các cặp thực cài đặt: Hai người làm máy tính, người cài đặt, người quan sát Hoặc người thực cài đặt nhiệm vụ máy, nhiệm vụ đơn giản, để tiết kiệm thời 79 - Số sinh viên không hoàn thành tập theo thời gian dự kiến b Phần 2: Đồ án môn học - Các sinh viên nhóm thảo luận với kết hợp kết thường xuyên, nên tất hiểu toàn chương trình họ tạo - Các nhóm cần trợ giúp giáo viên - Có thảo luận thống thiết kế cài đặt, nên việc kết hợp kết đơn giản không cần nhiều thời gian để điều chỉnh - Các giải pháp để giải nhiệm vụ tối ưu hơn, thiết kế đặt tốt hơn, gian - Các cặp xem xét lại kết cài đặt, tìm sửa lỗi mã lệnh, cải tiến giao diện, mã lệnh để có chương trình chất lượng cao - Nhóm sinh viên thảo luận để kết hợp nhiệm vụ thành ứng dụng hoàn thiện - Báo cáo kết chương trình với giáo viên 4.1.3.3 Nhận xét Việc áp dụng phương pháp XP vào giảng dạy môn học “Lập trình windows” có ưu điểm sau, so với phương pháp truyền thống: a Phần 1: Lý thuyết - Thời gian để hoàn thành tập hơn, đồng nhóm Nên số lượng tập giải nhiều - Nhiều vướng mắc sinh viên thảo luận tự giải quyết, nên cần trợ giúp giáo viên - Giải pháp nhóm sinh viên đưa tốt hơn, chương trình lỗi - Do có thảo luận bổ sung kiến thức sinh viên, nên lượng kiến thức kỹ mà sinh viên đạt nhiều đồng sinh viên (một phần luân chuyển sinh viên nhóm buổi học) chương trình lỗi - Tỷ lệ sinh viên hoàn thành nhiệm vụ thời hạn thấp, phát huy tính tích cực sinh viên c So sánh số kết định lượng phương pháp * Phương pháp truyền thống, giảng dạy cho lớp CĐTin1-K5 - Số sinh viên: 36 - Thời gian: học kỳ 2, năm học 2004-2005 - Lớp chia thành nhóm làm đồ án môn học sau: + Nhóm sinh viên: nhóm + Nhóm sinh viên: nhóm + Nhóm sinh viên: nhóm * Phương pháp áp dụng XP, giảng dạy cho CĐTin1-K6 - Số sinh viên: 40 - Thời gian: học kỳ 2, năm học 2005-2006 - Lớp chia thành nhóm làm đồ án môn học sau: + Nhóm sinh viên: nhóm + Nhóm sinh viên: nhóm 80 81 Bảng 4.1: So sánh tỷ lệ sinh viên hoàn thành tập thời gian quy định buổi học (tính trung bình buổi học) Tỷ lệ sinh viên P.P truyền thống Áp dụng XP 64% 80% Hoàn thành tập thời gian quy định Không hoàn thành tập thời gian quy định Qua kết đánh giá trên, ta thấy số ưu điểm áp dụng XP vào việc giảng dạy sau: Số tập thực buổi học nhiều hơn, kiến thức kỹ đạt nhiều Bởi vì: + Hai người làm nhanh người + Việc thảo luận giúp sinh viên bổ sung kiến thức cho 36% 20% Giáo viên cần thời gian hướng dẫn hơn, sinh viên tự thảo luận để giải vướng mắc Bảng 4.2: So sánh kết học tập phần lý thuyết Tỷ lệ sinh viên Phát huy tính tích cực sinh viên, làm theo cặp, sinh viên buộc phải thực để bắt kịp với cộng P.P Truyền thống Áp dụng XP Xuất sắc 7,5% 7,5% Các kiến thức kỹ đạt đồng sinh Giỏi 12,5% 20% viên, có bổ sung kiến thức sinh viên trình thảo luận Khá 35% 35% để giải toán Trung bình 25% 22,5% Trung bình 15% 12,5% Yếu 5% 2,5% Khi làm việc theo cặp, sinh viên tin tưởng vào công việc mình, có hứng thú với việc học tập Kết luận: Áp dụng XP vào việc giảng dạy môn học “Lập trình Bảng 4.3: So sánh kết đánh giá thực tập lớn windows” chứng tỏ tính hiệu XP lĩnh vực đào tạo kỹ Tỷ lệ sinh viên 4.2 THỬ NGHIỆM QUY TRÌNH ĐỂ PHÁT TRIỂN ỨNG DỤNG “QUẢN LÝ lập trình Truyền thống Áp dụng XP Xuất sắc 15% 20% Giỏi 30% 40% Khá 35% 20% Trung bình 12,5% 10% Trung bình 7,5% 10% 0% 0% Yếu NHÂN SỰ” CHO CÔNG TY HỒNG HÀ 4.2.1 Giới thiệu hệ thống Công ty Hồng Hà doanh nghiệp nhà nước Trụ sở công ty số 15, Phường Quan Hoa - Cầu Giấy – Hà Nội Công ty Hồng Hà công ty sản xuất phân phối thiết bị văn phòng đồ dùng học tập Ngành kinh doanh công ty gồm: - Sản xuất kinh doanh vật liệu, trang thiết bị nghiên cứu, văn phòng 82 83 - Kinh doanh sách thiết bị học tập v.v 4.2.3 Xây dựng hệ thống Mặc dù quy trình nghiệp vụ, công ty sử dụng trang thiết bị 4.2.3.1 Xây dựng phần mềm mức đơn giản đại Xong việc quản lý nhân lương nhân viên thực a Bước 1: Lập kế hoạch bước theo phương pháp thủ công trợ giúp phần mềm có sẵn * Tìm hiểu toán Word Excel Điều làm nhiều thời gian nhân viên phòng tổ Bước thực phối hợp thành viên nhóm chức Nay công ty muốn xây dựng phần mềm thực để thực việc người dùng, nhằm tìm hiểu cấu tổ chức công ty yêu cầu mà hệ quản lý nhân lương nhân viên Việc xây dựng phần mềm giao cho thống phải thực nhóm làm phần mềm gồm có người Thông thường, việc xây dựng Sau nhận yêu cầu việc xây dựng hệ thống quản lý, nhóm lập hệ thống tương tự nhóm lập trình khoảng thời gian tháng, nên nhóm trình tiến hành trao đổi với người dùng để nhận định yêu cầu hệ dự kiến xây dựng phần mềm với khoảng thời gian tháng, từ 25 tháng thống Và họ xác định cấu tổ chức công ty, yêu cầu mà hệ đến 25 tháng năm 2006 Đây nhóm lập trình chuyên nghiệp Trước thống cần phải thực sau: đây, nhận yêu cầu xây dựng phần mềm, họ thường áp dụng phương Cơ cấu tổ chức công ty gồm: pháp lập trình truyền thống, nghĩa sau chuyển yêu cầu hệ thống - Ban giám đốc thành nhiệm vụ, (hoặc số) nhiệm vụ giao cho người - Các phòng chức thực Sau người thực xong nhiệm vụ mình, họ kết hợp - Các xí nghiệp sản xuất, trung tâm kết lại với nhau, để có chương trình thống 4.2.2 Phương pháp phát triển hệ thống Nhóm phát triển phần mềm, nhận yêu cầu xây dựng hệ thống phần mềm này, họ chọn phương án “ứng dụng XP CSP” Việc phân tích thiết kế thực theo phương pháp hướng đối tượng (sử dụng mô hình UML), ngôn ngữ lập trình Java, sở liệu Access Trong bước thực hiện, lập trình viên đánh giá ban đầu, chẳng hạn, thời gian dự kiến, kích thước chương trình…, ghi lại thời gian mà họ thực mà họ sử dụng để hoàn thiện, ghi lại kích thước chương trình thực sự, lỗi mà họ tìm thấy loại bỏ Trên sở họ đánh giá hiệu trình xây dựng hệ thống Với cách làm vậy, họ đạt hiệu thiết thực Họ áp dụng quy trình thực xây dựng hệ thống sau: Các yêu cầu hệ thống: - Quản lý hồ sơ đầu vào + Các nguồn đăng ký nhân vào công ty + Tiếp nhận hồ sơ nhân - Quản lý thông tin nhân phân công công tác + Điều động công tác + Chuyển công tác + Xét chế độ nghỉ việc - Quản lý lương + Chấm công + Tính lương 84 85 - Ban giám đốc truy nhập hệ thống để xem xét tình hình quản lý * Chuyển giao yêu cầu Tìm hiểu quy trình nghiệp vụ hệ thống nhân lương nhân viên - Cán quản lý nhân trì thông tin nhân sự, điều động công tác Quy trình nghiệp vụ quản lý nhân lương nhân viên sau: - Khi người nhận vào làm việc công ty, thông tin nhân lập báo cáo - Phòng tài vụ truy nhập hệ thống để chấm công, tính lương cho nhân viên lưu vào máy tính - Nhân viên nhận định phân công công việc (làm viên, lập báo cáo - Các nhân viên phép truy nhập hệ thống để xem lịch công tác phòng ban nào) - Nhân viên phải qua giai đoạn thử việc, thể hợp đồng ngắn hạn công ty với nhân viên - Sau giai đoạn thử việc, chấp nhận, công ty ký hợp thông tin (thông tin cá nhân, thông tin lương tháng…) Chuyển yêu cầu thành chức - Chức quản lý hồ sơ nhân điều động công tác đồng dài hạn với nhân viên + Duy trì thông tin nhân (cán quản lý nhân sự) - Phòng quản lý nhân cần phải làm công việc sau: + Điều động công tác + Quản lý thông tin nhân + Lập báo tình hình biến đổi nhân + Điều động công tác + Xét khen thưởng, kỷ luật, nâng, hạ lương nhân viên + Báo cáo tình hình biến đổi nhân hàng tháng lên ban giám đốc + Xét chế độ nghỉ việc cho nhân viên (nghỉ hưu, chuyển công tác, + Xét khen thưởng, kỷ luật, nâng, hạ lương nhân viên hết hợp đồng) - Chức quản lý lương (cán quản lý lý lương) + Xét chế độ nghỉ việc cho nhân viên (nghỉ hưu, chuyển công tác, + Lập bảng chấm công hết hợp đồng) + Tính lương cho nhân viên hàng tháng - Phòng tài vụ quản lý lương nhân viên làm công việc sau + Chấm công làm việc hàng ngày nhân viên, theo tháng + Lập báo cáo tình hình chi trả lương hàng tháng, hàng quý, hàng năm + Tính lương cho nhân viên hàng tháng - Xem thông tin hệ thống (Ban giám đốc) + Báo cáo tình hình chi trả lương hàng tháng, hàng quý, hàng năm - Xem lịch công tác, thông tin cá nhân (nhân viên) Hệ thống phải đáp ứng nhu cầu sau: - Hệ thống chạy mạng nội công ty b Bước2: Lặp lại kế hoạch Bước chuẩn bị hoạt động nhiệm vụ cho lập trình viên gồm giai đoạn: 86 * Giai đoạn tìm hiểu Chuyển chức thành nhiệm vụ, ghi nhiệm vụ vào phiếu * Giai đoạn chuyển giao Hình thành cặp lập trình, phân công nhiệm vụ cho cặp, đồng thời dự kiến thời gian để hoàn thành nhiệm vụ Nhóm lập trình chia thành cặp giao nhiệm vụ: - Cặp thứ nhất: ‘Duy trì thông tin nhân sự’ - Cặp thứ hai: ‘Điều động công tác’ - Cặp thứ ba: ‘Lập bảng chấm công’ ‘Tính lương’ - Cặp thứ tư: ‘Xem thông tin hệ thống’ ‘Xem lịch công tác thông tin nhân viên’ * Giai đoạn điều chỉnh - Các cặp thực nhiệm vụ giao: thiết kế, viết mã lệnh, cải tiến mã lệnh - Biên dịch chương trình - Giao chương trình cho người dùng nhận thông tin phản hồi 4.2.3.2 Đánh giá chương trình - Đánh giá hiệu chương trình: khả đáp ứng yêu cầu hệ thống - Đánh giá hiệu thực hiện: thời gian thực so với dự kiến Nhóm lập trình đánh giá hiệu chương trình ban đầu, đánh giá thời gian mà họ sử dụng để hoàn thành nhiệm vụ Các lập trình viên thấy họ thực nhiệm vụ nhanh so với thời gian dự kiến ngày, nghĩa họ hoàn thành nhiệm vụ ngày Nhóm lập trình đánh giá việc làm chưa làm Cụ thể, chương trình chạy máy đơn, chưa phải ứng dụng mạng, 87 nhóm lập trình chưa tính đến cấu hình hệ thống máy tính công ty Trong chương trình này, việc quản lý nhân viên điều động công tác thực Tuy nhiên, việc tính lương nhân viên chưa hoàn chỉnh Chương trình chưa thực việc tính bảo hiểm cho nhân viên 4.2.3.3 Cải tiến chương trình Sau có đánh giá ban đầu chương trình, cặp lập trình bắt đầu thực cải tiến nhiệm vụ họ, đề phù hợp với yêu cầu hệ thống Sau đó, chuyển giao chương trình cho công ty, trao đổi với người quản lý hệ thống để kiểm tra đánh giá chương trình 4.2.3.4 Xây dựng chương trình thực đáp ứng yêu cầu hệ thống a Cải tiến chương trình Bước 1: Phân tích hệ thống (Sử dụng mô hình ca sử dụng UML) * Phát tác nhân hệ thống Giai đoạn nhóm lập trình làm việc kết hợp Dựa vào yêu cầu xác định phần 2.2.1, nhóm lập trình xác nhận tác nhân hệ thống - Cán quản lý nhân sự, sử dụng hệ thống để quản thông tin nhân viên, quản lý trình công tác nhân viên làm báo cáo tình hình biến đổi nhân sự, trình công tác nhân viên - Cán tài vụ sử dụng hệ thống để chấm công tính lương cho nhân viên, vào thông tin nhân viên, tính bảo hiểm cho nhân viên, làm báo cáo - Ban giám đốc truy nhập hệ để xem thông tin hệ thống: kế hoạch thay đổi nhân sự, thông tin nhân viên, việc tính lương nhân viên, khen thưởng, kỷ luật nhân viên - Các nhân viên truy nhập hệ thống để xem lịch công tác, xem thông tin bảng tính lương cá nhân 88 89 + Thời gian dành cho việc phân tích nhiều so với cách thức trước * Nhận định ca sử dụng Dựa vào tác nhân yêu cầu hệ thống, nhóm lập trình nhận + Hiệu đạt tốt hơn, cụ thể, họ nắm bắt hầu hết yêu định ca sử dụng gồm - Duy trì thông tin nhân (phòng nhân sự) cầu hệ thống, nhờ họ phát triệt để ca sử dụng, mô tả - Điều động công tác (phòng nhân sự) ca sử dụng kịch chúng thể yêu cầu hệ thống - Chấm công (phòng tài vụ) Nhờ hiệu việc phân tích, nên kết hợp kết phân tích - Tính lương (phòng tài vụ) cặp, nhóm lập trình cần điều chỉnh lại chút cho phù hợp - Xem thông tin hệ thống (ban giám đốc) - Xem thông tin nhân viên (nhân viên) * Đặc tả ca sử dụng Bước nhóm lập trình viên chia thành cặp, cặp nhận hai ca sử dụng để đặc tả - Cặp thứ nhất: ca sử dụng, ‘Nhập thông tin nhân sự’ - Cặp thứ hai: ca sử dụng, ‘Điều động công tác’ - Cặp thứ ba: ca sử dụng, ‘Chấm công’ ‘Tính lương’ - Cặp thứ tư: ca sử dụng, ‘Xem thông tin hệ thống’ ‘Xem thông tin nhân viên’ Các cặp tiến hành mô tả tóm tắt ca sử dụng, sau mô tả kịch ca sử dụng lập biểu đồ ca sử dụng * Phát lớp/đối tượng tham gia ca sử dụng + Phát đầy đủ lớp/đối tượng cần thiết nhiệm vụ lớp Bước 2: Thiết kế hệ thống Cuối bước phân tích, nhóm lập trình phát lớp/đối tượng, tên lớp nhiệm vụ chúng ghi thẻ Chuyển sang bước thiết kế: + Thiết kế lớp, cặp nhận thẻ có ghi tên lớp nhiệm vụ nó, thực thiết kế + Thiết kế liên kết, nhóm làm việc kết hợp, để xác định mối quan hệ lớp + Thiết kế thuộc tính thao tác lớp Nhóm lập trình làm việc theo cặp Mỗi cặp thực việc thiết kế cho số lớp Sau việc thiết kế hoàn thành, cặp lập trình kiểm tra lại thiết Cả lập trình viên cặp xem xét ca sử dụng kịch kế, sửa lỗi thiết kế họ, cải tiến thiết kế chưa phù ca sử dụng để xác định lớp/đối tượng Tên nhiệm vụ lớp hợp với yêu cầu, phức tạp, gây khó khăn cho việc cài đặt sau ghi vào thẻ, gọi thẻ CRC Khi hoàn thành việc phân tích, cặp lập trình kết hợp kết lại với nhau, xem xét lại toàn trình phân tích để điều chỉnh lại cho phù hợp, chuyển sang bước thiết kế Đánh giá hiệu bước phân tích: Tiếp cặp lập trình lại kết hợp sản phẩm thiết kế họ với nhau, để có thiết kế hoàn chỉnh hệ thống 90 91 Bước 3: Cài đặt + Dự kiến: ngày Mã lệnh chương trình viết ngôn ngữ lập trình Java, + Thực hiện: ngày (chậm ngày) ngôn ngữ lập trình hướng đối tượng, phù hợp với phương pháp phân tích thiết kế mà nhóm thực Việc viết mã lệnh thực theo cặp, cặp thực việc cài đặt cho số lớp Các cặp lập trình không cần phải viết mã lệnh mới, mà cần sửa đổi bổ sung mã lệnh sở mã lệnh có từ trước Đó chương trình đơn giản mà họ viết để giao cho người sử dụng giai đoạn Bước 4: Cải tiến mã lệnh Các cặp lập trình tiến hành xem xét lại toàn thiết kế mã lệnh họ tạo Sử dụng kỹ thuật refatoring để sửa lỗi phát hiện, cải tiến thiết kế mã lệnh chưa tốt, để có thiết kế mã lệnh có chất lượng tốt b Kiểm tra chương trình - Kiểm tra tính hoàn thiện bước - Kiểm tra liệu đầu vào, đầu chức cần thiết hệ thống - Kiểm tra thành phần liệu lớp, liên kết liệu - Kiểm tra ràng buộc hệ thống 4.2.3.5 Các kết đánh giá thời gian thực a Khi xây dựng chương trình đơn giản - Tìm hiểu toán lập kế hoạch + Dự kiến: ngày + Thực hiện: ngày - Thiết kế - Viết mã lệnh kiểm tra + Dự kiến: ngày + Thực hiện: ngày (nhanh ngày) b Khi xây dựng ứng dụng thực - Phân tích hệ thống + Dự kiến: 12 ngày + Thực hiện: 10 ngày (nhanh ngày) - Thiết kế hệ thống + Dự kiến: 19 ngày + Thực hiện: 16 ngày: (nhanh ngày) - Viết mã lệnh + Dự kiến: 14 ngày + Thực hiện: 12 ngày (nhanh ngày) - Kiểm thử + Dự kiến: ngày + Thực hiện: ngày (nhanh ngày) Qua đánh giá trên, nhóm phần mềm thấy rằng, tổng thời gian thực nhanh so với thời gian dự kiến 12%, thời gian không nhiều Nguyên nhân nhóm lập trình áp dụng phương pháp lần đầu tiên, nên trình làm việc theo cặp họ cần thời gian để điều chỉnh cho phù hợp Ngoài làm việc theo cặp, hai người thực nhiệm vụ, làm cho lập trình viên nhiều thời gian Thời gian viết mã lệnh kiểm tra so với dự kiến, thiết kế làm tốt hơn, lập trình sử dụng kỹ người, nên mã lệnh lỗi (vì người viết người quan sát) có chất lượng tốt 92 93 Bảng 4.5: So sánh thời gian thực 4.2.4 Đánh giá hiệu việc ứng dụng “Lập trình linh hoạt” “Quy trình cộng tác phần mềm” Phần so sánh thời gian thực chất lượng chương trình hai TT Các bước thực Quản lý nhân Quản lý kho Viết chương trình mẫu 15 ngày Không có Phân tích 10 ngày 17 ngày Ứng dụng “Quản lý kho hàng” xây dựng Công ty phân phối thiết bị Thiết kế 16 ngày 25 ngày máy tính máy văn phòng Mạnh Trung, giúp công ty quản lý việc nhập Mã hoá 12 ngày 18 ngày Kiểm thử Tổng cộng 58 ngày 66 ngày ứng dụng: “Quản lý nhân sự” “Quản lý kho hàng” phát triển nhóm phần mềm phân phối thiết bị cho khách hàng Trụ sở Công ty: Số 20, Văn Cao - Hà Nội Các yêu cầu hệ thống gồm: Quản lý việc nhập thiết bị từ nơi cung ứng Bảng 4.6: So sánh chất lượng chương trình Quản lý việc phân phối thiết bị cho khách hàng Thống kê lượng thiết bị phân phối lượng thiết bị tồn kho theo định kỳ Thống kê lập báo cáo tài theo định kỳ Thời gian xây dựng ứng dụng: từ 07/01/2006 đến 15/04/2006 Phương pháp: Áp dụng phương pháp truyền thống Bảng 4.4: Tóm tắt phương pháp thực kết ứng dụng TT TT Tiêu chí Quản lý nhân Quản lý kho Đáp ứng yêu cầu hệ thống Tốt Đạt yêu cầu Bảo trì Dễ Khó Thiết kế mã lệnh Chất lượng tốt Đạt tiêu chuẩn Lỗi chương trình Ít Nhiều Quản lý nhân Quản lý kho hàng Thời gian thực 25/05 đến 25/08/2006 07/01 đến 15/04/2006 Phương pháp Ứng dụng XP CSP Lập trình truyền thống Phân tích thiết kế Hướng đối tượng Hướng chức Về thời gian thực hiện: Nhanh so với phương pháp truyền thống Cơ sở liệu Access Access Về chất lượng chương trình Số bảng 17 14 - Chương trình xây dựng có cấu trúc hợp lý dễ sửa đổi Số form 20 21 - Thiết kế mã lệnh chương trình có chất lượng tốt 4.3 KẾT LUẬN Qua việc so sánh kết thực nghiệm hai ứng dụng, đưa nhận định sau hiệu việc ứng dụng XP CSP: 94 95 - Phần mềm đáp ứng tốt yêu cầu đặt - Chương trình lỗi Đối với lập trình viên: - Họ tin tưởng vào công việc có hứng thú công việc - Các kỹ lập trình viên tăng đáng kể - Việc trao đổi với người dùng thực thường xuyên Vì vậy, lập trình viên nắm bắt hầu hết yêu cầu hệ thống, kể yêu cầu nảy sinh trình thực - Người dùng hướng theo trình xây dựng hệ thống, nên họ tin tưởng vào tính khả thi hệ thống xây dựng TỔNG KẾT Nội dung luận văn gồm chương, nghiên cứu việc ứng dụng XP CSP để phát triển phần mềm Đây vấn đề công nghệ phần mềm Tóm tắt luận văn: ¾ Tính cấp thiết đề tài: Giải thích cần ứng dụng XP CSP để phát triển phần mềm ¾ Chương 1: Nghiên cứu trình bày khái niệm, quy tắc hoạt động XP Tiếp trình bày tổng quan CSP, vấn đề liên quan đến CSP mô hình mức tăng trưởng CSP áp dụng phát triển phần mềm ¾ Chương 2: Trình bày “thông lệ” XP, nguyên tắc, bước thực phát triển phần mềm theo XP Xác định khả kết hợp XP CSP ¾ Chương Đề xuất quy trình phát triển phần mềm theo CSP với việc ứng dụng thông lệ XP mô hình mức tăng trưởng CSP Quy trình giúp phát triển nhanh dự án phần mềm có quy mô lớn, với chất lượng cao yêu cầu thay đổi thường xuyên Luận văn trình bày bước trình phát triển phần mềm, theo mức CSP việc áp dụng thông lệ XP mức nhằm giảm bớt thời gian thực mà đạt chất lượng cao ¾ Chương 4: Trình bày việc áp dụng XP quy trình ứng dụng XP CSP, đồng thời chứng tỏ hiệu chúng hai thử nghiệm: 96 97 Áp dụng XP giảng dạy môn học “Lập trình windows” Trình ¾ Thử nghiệm phát triển dự án phần mềm: Mô tả ứng dụng “Lập bày cách áp dụng XP giảng dạy, đánh giá kết đạt trình linh hoạt” “Quy trình cộng tác phần mềm” để phát triển được, so sánh với phương pháp truyền thống để chứng tỏ hiệu ứng dụng “Quản lý nhân sự” Luận văn cho thấy cách áp dụng XP hiệu việc áp dụng quy trình dự án phần mềm Phát triển phần mềm “Quản lý nhân sự”: Mô tả hệ thống, trình bày bước phát triển hệ thống theo mô hình ứng dụng XP CSP Ghi nhận, đánh giá kết So sánh với kết đạt ứng dụng “Quản lý kho”, phát triển theo phương pháp truyền thống Từ đánh giá hiệu quy trình đề xuất Đóng góp khoa học luận văn: ¾ Luận văn nghiên cứu quy trình cộng tác phần mềm phương pháp lập trình linh hoạt Xác định khả ứng dụng lập trình linh hoạt đào tạo ứng dụng lập trình linh hoạt quy trình cộng tác phần mềm ¾ Đề xuất quy trình: Ứng dụng “Lập trình linh hoạt” “Quy trình cộng tác phần mềm” Định hướng trình phát triển phần mềm theo mô hình mức tăng trưởng “Quy trình cộng tác phần mềm” Cách kết hợp thông lệ “Lập trình linh hoạt” mức ¾ Ứng dụng thử nghiệm “Lập trình linh hoạt” đào tạo: Luận văn đưa phương pháp giảng dạy áp dụng “Lập trình linh hoạt” cho môn học “Lập trình windows” Đánh giá kết thực nghiệm, thấy hiệu phương pháp Từ áp dụng phương pháp với môn học khác, nhằm nâng cao chất lượng đào tạo lĩnh vực công nghệ thông tin nói chung Nhờ vậy, tổ chức áp dụng quy trình để phát triển ứng dụng Hướng phát triển đề tài: ¾ Hoàn thiện việc ứng dụng XP đào tạo quy trình ứng dụng XP CSP ¾ Thử nghiệm quy trình nhiều dự án phần mềm khác để khẳng định hiệu Từ ứng dụng quy trình vào thực tiến ¾ Xây dựng mô hình phương pháp kiểm tra chất lượng phần mềm phát triển theo quy trình 98 99 CHƯƠNG II: ĐỐI TƯỢNG TRONG VISUAL BASIC PHỤ LỤC I CHƯƠNG TRÌNH MÔN HỌC Đặc điểm đốí tượng chương trình LẬP TRÌNH TRÊN WINDOWS Các đối tượng ToolBox I NỘI DUNG TỔNG QUÁT VÀ PHÂN PHỐI THỜI GIAN Cách truy xuất đến đối tượng Cách đặt tên cho đối tượng Thời gian TT Tên chương Chương I: Giới thiệu chung Visual Basic Giới thiệu chung đối tượng Tổng số Lý thuyết Thực hành (tiết) (tiết) (tiết) II Thuộc tính đối tượng - Sử dụng Properties Windows Khái niệm thuộc tính (Property) Dùng Properties Windows để thay đổi thuộc tính đối tượng 1.5 3 Một số thuộc tính III Phương thức đối tượng Chương II: Đối tượng Visual Basic Khái niệm phương thức (Method) Chương III: Các kiểu liệu - hằng, biến 10.5 Một số phương thức Chương IV: Các cấu trúc điều khiển - 12 7.5 6 IV liệu kiểu mảng Chương V: Menu - thủ tục hàm Chương VI: Dùng form dạng MDI – Các CommonDialog Sự kiện đối tượng Khái niệm kiện thủ tục đáp ứng kiện Một số kiện đối tượng V Tìm hiểu số đối tượng Form Label Chương VII: Lập trình với sở liệu Tổng số 14.5 15 60 30 60 TextBox Command Button Frame II NỘI DUNG CHI TIẾT CheckBox CHƯƠNG I: GIỚI THIỆU CHUNG VỀ VISUAL BASIC OptionButton I Giới thiệu Visual Basic ScrollBar II Các thành phần Visual Basic Shape III Các bước xây dựng đề án Visual Basic 10 Line 100 101 11 PictureBox and Image VI Vòng lặp Do… Looputil 12 ComboBox and ListBox III Lệnh nhảy goto Viết lệnh cho đối tượng IV Bẫy lỗi, xử lý lỗi Cách viết lệnh cửa sổ Code Lệnh bẫy lỗi on error Một số lệnh đơn giản CHƯƠNG III: CÁC KIỂU DỮ LIỆU - HẰNG, BIẾN I Đối tượng Err V Các kiểu liệu Khái niệm Các kiểu liệu chuẩn Cách khai báo sử dụng mảng Kiểu liệu tự định nghĩa Các toán tử Một số lệnh hàm II III Mảng đối tượng CHƯƠNG V: MENU - THỦ TỤC HÀM I Các lệnh Menu Bar 4.2 Các hàm Menu Popup Hằng (Constant) II Thủ tục Khái niệm Khái niệm Cách khai báo Phân loại thủ tục Biến Cấu trúc thủ tục III Cấu trúc hàm Phân loại biến phạm vi hoạt động biến CHƯƠNG IV: CÁC CẤU TRÚC ĐIỀU KHIỂN - DỮ LIỆU KIỂU MẢNG Hàm Khái niệm Khai báo biến IV Xây dựng thủ tục, hàm Cấu trúc rẽ nhánh Thủ tục, hàm dùng chung cấp Form Câu lệnh If Thủ tục, hàm dùng chung cấp Module Câu lệnh Select Case II Menu 4.1 Khái niệm I Mảng V Tham số thủ tục hàm Cấu trúc lặp Tham số truyền theo tham chiếu Vòng lặp For… Next Tham số truyền theo giá trị Vòng lặp Do While… loop CHƯƠNG VI: DÙNG FORM DẠNG MDI – CÁC COMMONDIALOG 102 I Khái niệm MDI Windows II Tạo Form dạng MDI III Tạo Form dạng cửa sổ MDI IV Tạo Form chạy chương trình V Xét kiểu Form VI Một số kiện Form Gotfocus, Lostfocus Activate, Deactivate, Resize VII Hộp thoại chung CommonDialog Hộp thoại dùng chọn Font Hộp thoại dùng chọn File Hộp thoại dùng chọn màu CHƯƠNG VII: LẬP TRÌNH VỚI CƠ SỞ DỮ LIỆU I Các khái niệm II Dùng Visual Data Manager để tạo sở liệu Tạo sở liệu Tạo mục khoá III Tạo giao diện làm việc với sở liệu 103 TÀI LIỆU THAM KHẢO [1] ExtremeProgramming.org home [2] C Ghezzi, M Jazayeri, and D Mandrioli, Fundamentals of Software Engineering Englewood Cliffs, NJ: Prentice Hall, 1991 [3] W W Gibbs, “Software's Chronic Crisis,” Scientific American, pp 86-95, Sept.1994 [4] S L Pfleeger, Software Engineering: Theory and “thông lệ” Upper Saddle River, J:Prentice Hall, 1998 [5] K Beck, Extreme Programming Explained: Embrace Change Reading, Massachusetts: Addison-Wesley, 2000 [6] Wiki, “Programming In Pairs,” in Portland Pattern Repository, http://c2.com/cgi/wiki?ProgrammingInPairs., 1999 [7] J T Nosek, “The Case for Collaborative Programming,” in Communications of the ACM, pp 105-108, March 1998 [8] W S Humphrey, A Discipline for Software Engineering: Addison Wesley Longman, Inc, 1995 [9] P Ferguson, W S Humphrey, S Khajenoori, S Macke, and A Matvya, Dùng Visual Data Manager để tạo giao diện “Results of Applying the Personal Software Process,” in Computer, pp 24-31, Dùng điều khiển Data kết nối với CSDL May 2.1 Thiết lập thuộc tính cho điều khiển Data 1997 2.2 Thiết lập thuộc tính cho đối tượng hiển thị liệu [10] A Anderson, Beattie, Ralph, Beck, Kent et al., “Chrysler Goes to "Extremes",” 2.3 Các phương thức điều khiển Data IV Truy vấn liệu dùng SQL V ADODC VI Data Report in Distributed Computing, pp 24-28, Oct 1998 [11] Wiki, “Extreme Programming Roadmap,” in Portland Pattern Repository, http://c2.com/cgi/wiki?ExtremeProgramming, 1999 [12] I Jacobson, G Booch, and J Rumbaugh, The Unified Software Development Process Reading, Massachusetts: Addison-Wesley, 1999 104 [13] G Salomon, Distributed Cognitions: Psychological and educational onsiderations Cambridge: Cambridge University Press, 1993 [14] N V Flor and E L Hutchins, “Analyzing Distributed Cognition in Software Teams: A Case Study of Team Programming During Perfective Software Maintenance,” presented at Empirical Studies of Programmers: Fourth Workshop, 1991 [15] M C Paulk, B Curtis, and M B Chrisis, “Capability Maturity Model for Software Version 1.1,” Software Engineering Institute CMU/SEI-93-TR, February 24,1993 [16] W Hayes and J W Over, “The Personal Software Process: An Empirical Study of the Impact of PSP on Individual Engineers,” Software Engineering Institute, Pittsburgh, PA CMU/SEI-97-TR-001, December 1997 [17] B Meyer, Object-Oriented Software Construction, Second Edition ed Upper Saddle River, New Jersey: Prentice Hall, 1997 [18] I Jacobson, M Christerson, P Jonsson, and G Overgaard, Object-Oriented Software Engineering: A Use Case Driven Approach Wokingham, England: Addison-Wesley, 1992 [19] D Rosenberg and K Scott, Use Case Driven Object Modeling with UML: A Practical Approach Reading, Massachusetts: Addison-Wesley, 1999 [20] B Bruegge and A H Dutoit, Object-Oriented Software Engineering: Conquering Complex and Changing Systems Upper Saddle River, NJ: Prentice Hall, 2000 [21] T Quatrani, Visual Modeling with Rational Rose and UML Reading, assachusetts: Addison Wesley, 1998 [22] D Bellin and S S Simone, The CRC Card Book Reading, Massachusetts: Addison-Wesley, 1997 105 [23] A Cockburn, “Using CRC Cards,” Humans and Technology TR.99.01, Salt Lake City, UT , March 11, 1999 [24] Beck K., Extreme Programming Explained: Embrace Change AddisonWesley, 1999 [25] Binder R., Testing Object-Oriented Systems: Models, Patterns, and Tools Addison-Wesley, 1999 [26] Martin Fowler’s home page: patterns, refactoringg, extreme programming, unit testing, and UML material and links http://www.martinfowler.com, 2000 [27] Fowler M et al., Cải tiến mã lệnh: Improving the Design of Existing Code Addison-Wesley, 1999 [28] Gamma E., Helm R., Johnson R., Vlissides J., Design Patterns: Elements of Reusable Object-Oriented Software Addison-Wesley, 1995 [29] Java SDK, Standard Edition Documentation http://java.sun.com/j2se/1.3/docs/,2000 [30] Junit-Testing Resources for Extreme Programming http://www.junit.org, 2000 [31] Opdyke W., Refactoring Object-Oriented Frameworks Ph.D diss., University of Illinois at Urbana-Champaign, http://st.cs.uiuc.edu/pub/papers/refactoring/opdykethesis ps.Z, 1992 [32] Refactoring Home Page http://www.refactoring.com, 2000 [33] V h ho M., Refactoring II To be represented in seminar on Programming Paradigms, University of Helsinki, Department of Computer Science, 2000 [34] XProgramming.com (extreme programming home page), http://www.XProgramming.com, 2000 [35] L.A Williams, The Collaborative Software Process, 2000 [...]... ta áp dụng các giá trị, các quy tắc, các “thông lệ” trong XP nhằm giảm thời gian cần thiết để hoàn thiện mỗi mức này 3.1 Ý TƯỞNG LẬP TRÌNH LINH HOẠT TRONG QUY TRÌNH CỘNG TÁC PHẦN MỀM Hiện nay, việc phát triển nhanh một phần mềm và tạo được niềm tin cho khách hàng là vấn đề được các tổ chức phần mềm rất quan tâm, vì đây là một trong những lợi thế cạnh tranh để nhận được các dự án phần mềm Để giải quy t... cao chức năng hiện tại 1.2.1.2 Lập trình cặp (Pair-Programming) hoặc thêm đặc trưng mới Với các ứng dụng phần mềm lớn hơn và phức tạp hơn; các ứng dụng này được sử dụng trong rất nhiều tổ chức với các mục đích khác nhau Có lẽ, tốt hơn hết các ứng dụng phức tạp nên được giải quy t bởi hai người tại một thời 22 23 điểm Ý tưởng cặp lập trình, hai người lập trình làm việc cộng tác, cùng thiết một thí nghiệm... này, các tổ chức phần mềm có thể sử dụng phương pháp XP Tuy nhiên, XP chỉ phù hợp với các dự án vừa và nhỏ, không thể áp dụng vào việc phát triển các dự án phần mềm lớn Để khắc phục nhược điểm này, các tổ chức phần mềm có thể lựa chọn CSP, và áp dụng các kỹ thuật của XP vào quy trình thực hiện, nhằm thúc đẩy nhanh quá trình phát triển 3.2 QUY TRÌNH PHÁT TRIỂN PHẦN MỀM ỨNG DỤNG XP TRONG CSP 3.2.1 Mức... thông lệ trong XP cũng là việc rất cần thiết Trong chương 3, người viết luận văn xin trình bày quá trình phát triển phần mềm theo CSP kết hợp với XP Chương này trình bày việc ứng dụng XP trong CSP, mục đích là để đưa ra một quá trình phần mềm nhằm phát triển các ứng dụng chất lượng cao, trong một thời gian vừa phải Quá trình phát triển được thực hiện theo mô hình mức tăng trưởng của CSP, trong mỗi... kế phần mềm mức cao Trong thí nghiệm này, các cặp cộng tác và đưa ra nhiều lần từ cách đây khoảng 10 năm Thói quen lập trình cặp có nhiều các sinh viên độc lập đã hoàn thành cùng một nhiệm vụ Thước đo trên được lợi ích, trước hết với sự ra đời của phương pháp lập trình linh hoạt [5] sử dụng để so sánh quá trình thực hiện của tất cả các sinh viên Hai người cộng tác ngồi cạnh nhau, tại một máy tính trong. .. chương trình làm thiện việc cho cặp cộng tác để giúp tổ chức của họ đạt được một mức hoàn thiện cao hơn Mức Quá trình cộng tác phần mềm 0.0 Điểm xuất phát Chuẩn mã lệnh 0.1 1.2.4 Định nghĩa quá trình cộng tác phần mềm Điểm xuất phát a CSP mức 0.0 Đánh giá kích thước CSP mức 0.0 không áp đặt và giới thiệu thêm bất kỳ một bước tiến trình Lập kế hoạch cho quá trìnhcải tiến Phân tích (mô hình ca sử dụng) ... hiện cải tiến mã bản mới và phiên bản cũ và phiên bản cũ nên gắn với phần đã được sửa đổi lệnh, hệ thống của họ sẽ sụp đổ ngay từ đầu Đó là điều tại sao nó không 58 Những rắc rối này cho thấy, không nên đưa ra sử dụng những giao diện quá 59 Chương 3 ỨNG DỤNG LẬP TRÌNH LINH HOẠT TRONG sớm QUY TRÌNH CỘNG TÁC PHẦN MỀM Đôi khi các lập trình viên không nên cải tiến mã lệnh một hệ thống ngay từ đầu Lý do... tiêu giao phần mềm trong thời gian ngắn, và tạo sự tin tưởng cho khách hàng Ban đầu, các nhà phát triển sẽ nhanh chóng tạo ra một phần mềm để đáp ứng mục tiêu này Tuy nhiên, phần mềm mới chỉ ở mức đơn giản, và trong quá trình này các nhà phát triển tập trung vào việc đánh giá quá trình thực hiện, và căn cứ vào đó để cải tiến phần mềm trong các bước tiếp 60 theo để có được phần mềm chất lượng cao Trong. .. quả của cặp cộng tác Cặp cộng tác sử dụng các thông tin này phải để tránh việc lặp lại lỗi đó Thêm vào đó, họ có thể kiểm tra các xu nhằm cải thiện hiệu quả của quá trình cộng tác của chính họ hướng mà họ mắc lỗi trong một nghìn dòng lệnh và có thể nhận thấy khi tạo Nghiên cứu cho thấy, các cặp cộng tác sử dụng CSP làm việc tốt hơn các ra cải tiến thực sự kỹ sư phần mềm làm việc độc lập, sử dụng PSP [8]... phẩm do các cặp lập trình cộng tác tạo ra có chất lượng tốt hơn đáng kể Đồng thời tiết kiệm được 15% thời gian mã hoá 3 Nếu tính đến việc trợ giúp trong thời gian lâu dài, để có các sản phẩm lập trình chất lượng cao hơn thì lập trình cộng tác chi phí ít hơn lập trình độc lập 21 Theo thời gian, máy tính trở nên rẻ hơn và phổ biến hơn Ngày càng có nhiều người sử dụng máy tính để giải quy t các bài toán

Ngày đăng: 06/08/2016, 23:02

Từ khóa liên quan

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

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

Tài liệu liên quan