Công nghệ phần mềm

11 603 2
Công nghệ 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

Công nghệ phần mềm

TRẢ LỜI CÂU 1:NOI DUNG• Công nghệ phần mềm? . Pressman[1995]: CNPM là bộ môn tích hợp các quy trình, các phương pháp, các công cụ để phát triển phần mềm máy tính. • Somerville[1995]: CNPM là lĩnh vực liên quan đến lý thuyết, phương pháp và công cụ dùng cho phát triển phần mềm. 3 mặt cơ bản của CNPM • Quy trình/thủ tục ,Phương pháp , Công cụ. Đây chính là lĩnh vực nghiên cứu của CNPM • Quy trình phát triển : Xác định tập hợp các thao tác, trình tự thực hiện • Các định các kết quả (tài liệu, phần mềm …) của từng thao tác • Xác định các mốc thời gian cần bản giao của kết quả • Các phương pháp • Là cách làm cụ thể để xây dựng phần mềm • Mỗi công đoạn có phương pháp riêng • Phân tích (xác định, đặc tả yêu cầu) • Thiết kế (đặc tả kiến trúc, giao diện, dữ liệu, thủ tục) • Lập trình (cấu trúc, hướng đối tượng) • Kiểm thử (hộp đen, hộp trắng …) • Quản lý dự án … • Các công cụ • Các công cụ trợ giúp trong quá trình phát triển phần mềm (CASE -Computer Aided Software Engineering) • Công cụ thiết kế, quản lý dự án, ngôn ngữ & môi trường lập trình (IDE), công cụ kiểm thử, cài đặt … Quy trình PTPM • Có nhiều mô hình PTPM khác nhau => nhiều quy trình khác nhau. • Các thao tác được xem là nền tảng của mọi quy trình: • Phân tích - Đặc tả • Thiết kế • Lập trình • Kiểm thử • Tiến hoá Nhận diện công cụ PTPM • Trong mỗi giai đoạn sẽ có những công cụ hỗ trợ khác nhau hoặc cùng 1 công cụ hỗ trợ cho nhiều giai đoạn • Phân tích - đặc tả • Thiết kế • Lập trình • Kiểm thử • Tiến hoá • Quản lý dự án Phân loại công cụ PTPM • Có 3 loại công cụ (phân loại theo mức độ hỗ trợ) • Tasks: Hỗ trợ nhưng công việc đặc biệt, 1 giai đoạn trong quy trình PTPM • Workbenches: Hỗ trợ một vài hoạt độngtrong quy trình PTPM • Environments: Hỗ trợ phần lớn các công việc trong quy trình PTPM Tầm quan trọng của công cụ PTPM • Bạn sẽ như thế nào nếu ko có máy tính? • Hãy lập trình một phần mềm Hello word với notepad? • Hiện nay, công cụ chiếm vị trí quan trọng trong việc xác định hiệu suất công việc CÂU 2:Đặt vấn đề • Phát triển phần mềm đơn lẻ: một người làm, trên một máy. • Phát triển phần mềm trong môi trường công nghiệp: Nhiều người cùng làm, trên nhiều máy tính khác nhau => • Nhiều người cùng làm việc trong cùng 1 file • Quản lý các thay đổi của mã nguồn, file tài liệu … • …  Cần phải có công cụ quản lý Khái niệm • Version Control System (VCS) còn gọi là Source Control or Revision Control • VCS là một hệ thống lưu giữ các phiên bản của mã nguồn (files) giúp nhà phát triển phần mềm có thể dễ dàng theo dõi sự thay đổi theo thời gian và lấy lại các phiên bản trước đó. Khái niệm • Tại sao cần phải có một hệ thống VCS? • Phần lớn các dự án phần mềm là lớn • Sự thay đổi là rất nhiều và nhanh chóng • Số lượng người thay đổi là rất nhiều Khái niệm • Một VCS tốt cần có các đặc điểm sau: • Backup and Restore • Synchronization: Cho phép chia sẻ và luôn cập nhật phiên bản mới nhất • Short-term undo: Quay trở lại phiên bản trước đó • Long-term undo: Quay trở lại và kiểm tra sự thay đổi ở phiên bản cách đó rất xa • Track Changes and Track Ownership : Lưu trữ và theo dõi sự thay đổi (thời điểm nào? Ai? Lý do? Ghi chú? …) • Branching and merging: Phân nhánh cho các mục đích khác (thử nghiệm, tạo phiên bản khác …) sau đó trộn với nhánh chính Các thuật ngữ cơ bản • Repository (Repo): • Một nơi lưu trữ files, chứa mọi bản chính của tập tinh khi nó được thêm vào • Thường đặt trên server • Có thể chứa: Mã nguồn, tài liệu, hình ảnh … • Tập tin nào nên đưa vào nơi chứa? • Server: Máy tính lưu Repo • Client: Máy tính kết nối lên Repo • Working Set/Working Copy: • Thư mục thường đặt tại máy client của mỗi thành viên • Là nơi lấy phiên bản của tập tin và sửa chữa • Trunk/Main: Là thư mục chính để lưu trữ mà nguồn • Conflict: • Xung đột xảy ra khi các bên cùng thay đổi một tài liệu, và hệ thống không thể giải quyết. • Một người sẽ phải giải quyết xung đột bằng cách chọn: kết hợp, 1 trong 2, …• Delta compression: • Hầu hết các VCS đều sử dụng phương pháp này để tổ chức lưu trữ tập tin. • Phương pháp này chỉ lưu trữ sự khác nhau của 2 phiên bản • Lock: Khi làm việc nhóm, các thành viên có thể cùng chỉnh sửa một tập tin tại một thời điểm => xung đột. Làm sao để tránh xung đột? Sử dụng cơ chế khoá (locking). Có 2 loại: • Khoá nghiêm ngặt (strict locking): • Đặt thuộc tính read- only cho tập tin trên kho chứa • Hạn chế: Nếu 1 thành viên locking để sửa quá lâu => ảnh hưởng tới thành viên khác • Khoá tự do (optimistic locking): Cho phép nhiều người cùng sửa 1 tập tin. Khi các tập tin được cập nhật, VCS sẽ thực hiện trên nguyên tắc: • Nếu 2 bản cập nhật khác dòng => ghép • Nếu 2 bản cập nhật cùng dòng => cho phép chọn cách cập nhật • Branching: Phân nhánh • Khi làm việc nhóm, mọi thành viên đều có phần mã chung (nhánh chính - mainline). • Khi có yêu cầu tách phần mã chung đó để thử nghiệm, phân phối … => sử dụng branching • Branching là một cơ chế của VCS cho phép tách một phần của dự án ra riêng • Việc đánh số phiên bản tại nhánh cũng thay đổi so với mainline • Branching: Phân nhánh • Merging: Ghép • Nhiều nhánh được tách ra làm việc độc lập, tuy nhiên có thể phát hiện một số lỗi có thể làm ảnh hưởng đến nhánh chính => phải cập nhật vào nhánh chính • Sử dụng merging để làm việc này • Version (phiên bản) • Mỗi tập tin có nhiều phiên bản được đánh số khác nhau • Phiên bản được tạo ra khi tập tin sau khi hiệu chỉnh được cập nhật vào Repo • Tuỳ VCS khác nhau mà có cách đánh số phiên bản khác nhau • Add: Thêm file vàotrong Repo và bắt đầu theo dõi bởi VCS • Revision: Xem phiên bản của file • Head: Phiên bản của Repo • Check out: Download file từ repo về • Changelog/History: Xem danh sách các thay đổi từ khi file được tạo ra • Update/Sync: Cập nhật các file ở local từ các file mới nhật tại Repo Các chức năng cơ bản • Revert: Bỏ qua các thay đổi ở local và lấy phiên bản mới nhất tại repo • Check in: Upload file vào repo • Một Revision mới được tạo ra • Người khác sẽ phải check out về để có phiên bản mới nhất Các chức năng nâng cao • Branch: Tạo nhánh • Merge (or patch): Chấp nhận sự thay đổi từ tập tin, nhánh khác cho file hiện tại • Resolve: Sửa chữa, giải quyết các thay đổi bị confilct và kiểm tra phiên bản chính xác • Locking: Đánh dấu, tạo khoá để kiểm soát tập tinh, thực thi cơ chế locking • Breaking the lock: Ép buộc mở khoá tập tin để chỉnh sửa (do người khoá đi vắng, nghỉ .) • Check out for edit: = Checkout + Locking • Diff/Change/Delta: Tìm sự khác nhau giữa 2 file, 2 phiên bản … Bài 2 Contents • Tổng quan về MS Visual Source Safe • Các thao tác phía server • Các thao tác phía client MS Visual Source Safe • SP của Microsoft • Model: Client-Server • License: Có chủ sở hữu • Tương lai: • Phiên bản cuối là MS VSS 2005 (10/2005) • Sau này là Visual Team System 2008, 2010 Các thao tác phía server • Microsoft Visual Source Safe Administration • Thao tác: • File • New database • Open Database • Tools • Option … • Users• Add • Delete •Edit • Change password Các thao tác phía Client • File • Open Database • Create Project • Set Working Folder • Add files • Versions • Get lastest version • Check out • Undo check out • Check in Các thao tác phía Client • Tools • Show History … • Show Differences… • Set Working Folder • Tích hợp VSS vào Visual Studio.net CÂU 3: SVN LÀ GÌ? Subversion là một phần mềm cung cấp các chức năng quản lý phiên bản mã nguồn và tài liệu. Hiểu đơn giản nó cũng chỉ là một trình quản lý file, thư mục. Tuy nhiên, nó cao cấp hơn ở chỗ nó cho phép quản lý nhiều phiên bản của cùng 1 file, có thể rollback lại khi có sai sót; quản lý lịch sử sửa đổi; quản lý người dùng . Hỗ trợ giải quyết đụng độ, tranh chấp … và nhiều thứ mà nói thật mình cũng chưa tìm hiểu hết.( Hệ thống SVN là một hệ thống quản lý phần tài nguyên của một dự án. Hệ thống có khả năng tự cập nhật, so sánh và kết hợp tài nguyên mới vào phần tài nguyên cũ. ) . Một số khái niệm Subversion dựa trên mô hình quản lí tập trung kiểu client/server. Mô hình này có 2 khái niệm cơ bản: Repository đặt ở server là nơi tập trung quản lí các phiên bản của các tập tin. Working Copies đặt ở client là các phiên bản làm việc của các tập tin trong repository. Repository thì chỉ có một, trong khi working copies có thể có nhiều (tương ứng với repository đó). Một kịch bản thường thấy là các tập tin của project A được lưu ở repository. Sau đó, mỗi thành viên của project A, ví dụ P1, P2 sẽ checkout để lấy 1 phiên bản copy các file của project A này về máy cục bộ của mình (gọi là working copies). Mỗi khi P1 muốn các thay đổi trên các tập tin của project A ở máy cục bộ của mình cập nhật lên repository, anh ta sẽ dùng lệnh commit. Nếu P2 muốn thấy những thay đổi của P1 trên repository cập nhật xuống phiên bản đang dùng của mình, anh ta sẽ dùng lệnh update. Trường hợp P1 và P2 cùng cập nhật một tập tin, đây là vấn đề phức tạp nhất, và thao tác này gọi là merge. Subversion cung cấp các công cụ để nhận biết sự thay đổi của các tập tin ở working copies so với repository, đồng thời cũng cung cấp công cụ để giúp việc merge được dễ dàng. Để quản lí các phiên bản khác nhau, subversion dùng khái niệm revision. Nói một cách đơn giản, để hệ thống có thể quản lí được sự thay đổi của các tập tin, mỗi tập tin sẽ có dạng Name-Revision. Ví dụ foo.c-rev1 và foo.c-rev2 là 2 revision của tập tin foo.c. Cứ mỗi lần commit, toàn bộ repository sẽ có một con số revision mới (mỗi con số này là duy nhất và số của revision sau lớn hơn số của revision trước). Một điểm cần lưu ý là trong subversion, dù chỉ thay đổi một tập tin sau lệnh commit, nhưng toàn bộ các tập tin của repository sẽ có cùng một con số revision. Do đó, ko nhất thiết là foo.c-rev1 và foo.c-rev2 phải có nội dung khác nhau. Thông thường, để có thể nhận biết được những thay đổi qua mỗi lần commit, người ta thường note lại những thay đổi này trước khi commit. Những note này sẽ được lưu vào history để sau này khi view lên có thể nhận biết được hiện trạng của từng revision, để khi muốn quay trở lại trạng thái trước đó cũng rất dễ dàng. Một lưu ý rất căn bản đó là nếu bạn muốn subversion quản lí các phiên bản/thay đổi của một tập tin nào đó, thì mọi thao tác liên quan đến tập tin đó, ví dụ như xóa, sửa, tạo mới, etc đều phải thông qua subversion. Nói một cách khác, bạn nên tránh xóa một tập tin trong working copies bằng chức năng thông thường của file manager, ví dụ như dùng nút Del trong Explorer, thay vào đó nên dùng lệnh xóa của các subversion clients. CÁC LỆNH CƠ BẢN: 1. Lệnh tạo thư mục mkdir - Ý nghĩa: Lệnh này sử dụng để tạo thư mục trong repository của bạn. (giống lệnh MD trong Doc command) - Cấu trúc lệnh: svn mkdir <đường dẫn thư mục mới tạo> -m <Mô tả về dự án> --username <username> --password <password> Trong trường hợp bạn ko gõ tham số -m, chương trình sẽ hiển thị màn hình để các bạn nhập comment vào (chương trình này được thiết lập trong biến SVN_EDITOR ở bài trước) - Ví dụ: + Tạo dự án mới: svn mkdir svn://localhost/as -m “Asia standard, a product of asiasoft” --username admin --password nimda + Tạo thư mục con của dự án mới tạo: Tạo thư mục chứa Source của dự án svn mkdir svn://localhost/as/Src -m “Source code store here” --username admin --password nimda Tạo thư mục chứa tài liệu svn mkdir svn://localhost/as/Docs -m “Documents of project store here” --username admin --password nimda Tạo các thư mục con của thư mục chứa tài liệu svn mkdir svn://localhost/as/Docs/TechDocs -m “Documents for Technical” --username admin --password nimda svn mkdir svn://localhost/as/Docs/UserDocs -m “Documents for End-User” --username admin --password nimda 2. Xóa thư mục delete (del, remove, rm) - Ý nghĩa: Xóa thư mục (cái này thì giống RD trong DOS command) - Cấu trúc lệnh: svn delete <đường dẫn tới thư mục cần xóa> --username <username> --password <password> Có thể thay thế lệnh delete bằng del hoặc remove hoặc rm - Ví dụ: Xóa thư mục Docs svn delete svn://localhost/as/docs --username admin --password nimda 3. Lệnh List (ls) - Ý nghĩa: Dùng để liệt kê danh sách các thư mục và file bên trong thư mục đang được list (giống DIR trong Dos command) - Cấu trúc lệnh: svn list <đường dẫn đến thư mục cần xem danh sách thư mục và file> --username <username> --password <password> - Ví dụ: Trong ví dụ này, tôi đã thử dùng SVN để liệt kê các thư mục và file bên trong dự án của nhóm Quản lý xây dựng trên google code (tại thời điểm 14h41 ngày 05/11/2010) và nhận được kết quả như sau: C:\svn-win32-1.5.6\bin>svn ls https://quanlyxaydung.googlecode.com/svn/trunk/code/ NhanVien/ congtrinh/ khachhang/ main/ quanlykho/ quanlyvattu/ Trong ví dụ trên, các bạn có thể thay lệnh list bằng lệnh ls 4. Lệnh checkout (co) - Ý nghĩa: Lệnh này sử dụng để lấy phiên bản mã nguồn mới nhất từ thư mục dự án trên repository về thư mục trên máy trạm. - Cấu trúc lệnh: svn checkout <đường dẫn thư mục trên máy chủ> <đường dẫn thư mục trên máy trạm> --username <username> --password <password> Các bạn có thể thay thế lệnh checkout ở trên bằng lệnh co. - Ví dụ: Trong ví dụ này, tôi sẽ lấy mã nguồn mới nhất từ thư mục Src của dự án AS đã tạo ở trên về thư mục D:/dev/as/src/ trên máy trạm. svn checkout svn://localhost/as/src d:/dev/as/src --username admin --password nimda Nếu thành công, chương trình sẽ có thông báo: Checked out revision n. //(n là số phiên bản hiện tại mới nhất) Trong trường hợp thư mục d:/dev/as/src chưa có, SVN sẽ tự tạo. - Xong bước tạo Repository, ta tiếp tục cấu hình cho Repository này o Mở file E:\Subversion Repository\conf\ svnserve.conf, ta bỏ đi các comment bên trong [general] anon-access = none auth-access = write password-db = passwd authz-db = authz realm = My First Repository - anon-access = none/read/write : cho phép user chưa thẩm định quyền truy cập có các chức năng không/đọc/ghi - auth-access=none/read/write : cho phép user đã thẩm định quyền có các chức năng không/đọc/ghi - password-db=passwd : chỉ ra file chứa thông tin mật khẩu là file passwd – ngang hàng với file cấu hình này - authz-db = authz : chỉ ra file chứa thông tin phân quyền là file authz – ngang hàng với file cấu hình này o Sau khi cấu hình file svnserve.conf, ta tiếp tục cấu hình thông tin cho 2 file passwd và authz ở trên File paswd [users] phuongnhn = phuong nguyend = nguyen thaint = thai tuanvd = tuan File authz [groups] admin = phuongnhn,nguyend java = phuongnhn,nguyend, tuanvd csharp= phuongnhn,nguyend, thaint php = phuongnhn,nguyend [/] @admin = rw [/javaproject] @java = rw csharp = r [/csharpproject] @csharp = rw Phuongnhn = r [/]: thư mục gốc Chỉ có nhóm admin có quyền đọc và ghi [/javaproject]: thư mục dự án javaproject Nhóm java có thể đọc và ghi Nhóm csharp được phép đọc [/csharpproject]: thư mục dự án csharpproject Nhóm csharp được phép đọc và ghi User phuongnhn được phép đọc - Tới bước này ta đã cấu hình thông tin xong cho Repository, tiếp theo ta sẽ khởi động svnserver, sử dụng command-line để run server svn với câu lệnh như sau svnserve --daemon --listen 3000 --root "E:\Subversion Repository" trong đó, [--daemon] hoặc [-d]: thiết lập chế độ daemon cho svn server [--listen-port] 3000: thiết lập cổng cho svn server Ngoài ra ta có thể dùng tham số --listen-host để xác định hostname hoặc IP --root "E:\Subversion Repository": thư mục gốc của server Để thực hiện việc phân quyền trong SVN, các bạn sử dụng file authz trong thư mục conf của repository. Để chỉ định việc kiểm tra quyền được cấu hình trong file authz, bạn phải mở chỉ thị trong authz-db trong file svnserve.conf ra. Khi đó, bạn có được file svnserve.conf như sau: [general] anon-access = read auth-access = write password-db = passwd authz-db = authz Nào, bây giờ hãy bắt đầu với authz. Để bất đầu hãy mở file authz bằng notepad và xóa trắng nó đi. - Phân nhóm user Trong svn, việc phân nhóm user trong file authz được thực hiện trong 1 session, dòng đầu tiên của session này là [groups]. Các dòng tiếp theo của session này là định nghĩa các nhóm tham gia vào dự án (sẽ được phân quyền để truy cập vào repository). Cấu trúc của 1 dòng như sau: group_name = user_name1, user_name2 Các user name ngăn cách nhau bởi dấu phẩy (,) và hãy chắc chắn rằng các user này đã được tạo trong file passwd. Ví dụ, bạn tạo ra 2 nhóm tham gia dự án, khi đó session groups sẽ như sau: [groups] dev_team = dev1, dev2, dev3 test_team = test1, test2 Phân quyền cho user hoặc nhóm user Trước khi phân quyền, bạn cần biết: Trong SVN, quyền truy cập vào 1 thư mục nào đó có 2 mức: read (r) và write(w). Việc phân quyền cho user được access vào thư mục ở quyền nào được gán bởi các ký tự đại diện r hoặc w Để gán quyền cho các user hoặc group access vào một thư mục nào đó trong repository, bạn hãy tạo ra 1 session với tên session là đường dẫn tớithư mục cần phân quyền [đường dẫn] (trong trường hợp phân quyền truy cập cho repository (thư mục gốc) thì tên session sẽ để trống [/]). Trong 1 file authz có thể có nhiều session phân quyền khác nhau. Ngay phía dưới tên, các dòng tiếp theo trong session sẽ thể hiện quyền của user hay nhóm. Ví dụ, tôi phân quyền cho user admin toàn quyền trên toàn repository này thì sử dụng thì sử dụng session [/] như sau: [/] admin = rw Phân quyền cho user1 có toàn quyền trên dự án AP thì như sau: [/ap] user1=rw Phân quyền cho nhóm dev đã tạo ở trên toàn quyền trên thư mục src của dự án AP và nhóm test chỉ có quyền read trên thư mục src này. (chú ý đặt đấu @ trước tên nhóm) [/ap/src] @dev=rw @test=r Phân quyền cho tất cả mọi người đều được truy cập vào thư mục docs của dự án AP. [/ap/docs] *=rw Kết quả, file authz sẽ như sau: [groups] dev=dev1,dev2,dev3 test=test1,test2 [/] admin=rw [/ap] user1=rw [/ap/src] @dev=rw @test=r [/ap/docs] *=rw Một số thao tác cơ bản với SVN: Đưa một project vào SVN serverMở windows explorer lên, chọn thư mục của dự án thực hiện "right click" và chọn TortoiseSVN → Import . Các bước như sau : Bước 1: Chọn chức năng import Bước 2: Điền các thông tin cần thiết (khi truy cập vào url server thì sẽ có dialog yêu cầu nhập thông tin username + password đã gửi Bước 3 : Ngồi đợi và chời kết thúc .xong Lấy một project từ SVNKhi cần lấy các source code từ server SVN thì thực hiện các bước như sau : Mở windows explorer lên, chọn (hoặc tạo mới) một thư mục để chưa các source code của dự án (có thể là thư mục của webserver) @chú ý : thư mục phải rỗng . Bước 1 : chọn thư mục chứa dự án Bước 2 : chọn thông tin dự án trên server Bước 3 : Ngồi đợi và .ok thế là xong , bạn đã có các thông tin của dự án trên máy của mình Kiểm tra các file bị thay đổi với server SVN Kiểm tra sự thay đổi của source nguồn Nếu chưa có bất kỳ sự thay đổi nào thì icon của thư mục dự án như sau Nếu có một file, hay một thư mục nào có sự thay đổi thì icon cùa thư mục như sau Cho biết file bị thay đổi Xem file đó thay đổi nội dung Thông tin thay đổi Right click . tìm chức năng "Compare with base" Vậy là biết cái file đó đã bị thay đổi như thế nào . Giờ làm sao đưa thông tin thay đổi vào server SVN đây . Dùng chức năng "Commit ." để đưa thông tin vào server Check vào các file cần commit, hoặc…bỏ bớt một số file chưa cầu commit (nếu là nhiều file) Ok và ngồi đợi . . thế là xong .quá đơn giản Vậy là biết cái file đó đã bị thay đổi như thế nào . Giờ làm sao đưa thông tin thay đổi vào server SVN đây . Dùng chức năng "Commit ." để đưa thông tin vào server Check vào các file cần commit, hoặc…bỏ bớt một số file chưa cầu commit (nếu là nhiều fil Ok và ngồi đợi . . thế là xong .quá đơn giản Sau khi commit các thông tin giữa clien và version mới nhất tại server hoàn toàn giống nhau thì icon của thư mục thư mục trở về như cũ. Đưa file mới vào SVNNếu trong quá trình phát triển dự án cần thêmmột số file vào dự án thì sau khi thêm vào các bạn chọn chức năng "add" để đưa các file này vào SVN Bước 1: right click vào file chưa có icon SVN Bước 2: Chọn các file cần đưa nếu trogn bước 1 là một thư mục Bước 3: Ngồi đợi .và xong . Bước 4: sau khi đưa lên thì phải . commit các thông tin đó quá trình commit thì tương tự như các bước trên (cập nhật file có thông tin thay đổi). Lấy lại phiên bản trước đó về client (thư mục thực hiện dự án) Chọn file cần muốn lấy lại các version (phiên bản) trước đây Dialog yêu cầu thông tin version nào Không biết thì click vào "Show log" Chọn được .một version ưng ý (con số 53) Oke thế là xong . file trên thư mục local đã được lấy lại các thông tin của version 53 trước đó Câu hỏi về SVN client: 1, So sánh giữa commit và update? =>commit là đưa những thay đổi của mình lên dự án . => update là cập nhật những phiên bản mới nhất của dự án về máy tính của mình. 2. Khi nào xảy ra đụng độ và cách giải quyết như thế nào ?=> Conflict xảy ra khi 2 client đồng thời thay đổi nội dung của của 1 file.> cách giải quyết: Trước tiên bạn phải update. Click chuột phải, chọn SVN update. File test.java của bạn sẽ được copy qua test.java .mine, c.n file test.java sẽ có nội dung mà cả 2 client được thay đổi. 3. Create patch (Vá lỗi ) như thế nào ?=> khắc phục các lỗi xảy ra trong quá trình commit, update bị sự cố 4. Chức năng different with previous version ?=> so sánh sự khác nhau giữa phiên bản trc và sau khi thay đổi CÂU 4: KHÁI NIỆM: Google code là một Hosting free do Gmail cung cấp, dùng để quản lý project theo nhóm bằng SVN ( subversion) một cách trực tuyến. Bước 1: Đăng nhập tài khoản Gmail Nếu bạn chưa có tài khoản gmail thì vào http://gmail.com để đăng ký tài khoản, sau đó login vào tài khoản của mình Sau khi đăng nhập, chọn thẻ even more:Sau đó chọn menu CodeChọn Project Hosting:Chọn Project Hosting on Google Code:Hoặc cũng có thể vào trực tiếp địa chỉ: http://code.google.com/hosting/ , sau đó đăng nhập vào tài khoản gmail. Bước 3 : Bắt đầu tạo Project+ Tạo project mới: Chọn Create a new project như hình dưới: + Điền thông tin của Project: Trong đó:+ Project Name: tên của project không được viết hoa, không chứa ký tự đặc biệt, không khoảng trắng. + Project summary: mô tả tóm tắt project.+ Project description: mô tả chi tiết project+ Version control system: chọn Subversion.+ Source code liense: chọn giấy phép đối với mã nguồn của dự án. Sau khi tạo xong project, ta sẽ tiến hành quản lý project: Các tab của google code: Tab Project Home:+ Summary: mô tả ngắn gọn về project+ Update: thông tin về những lần project được cập nhật, nhật ký làm việc của thành viên+ People: thành viên của project. Tab Wiki: quản lý cấu hình và từ điển dữ liệu của dự án.Wiki sẽ quản lý tất cả cáccấu hình và thuật ngữ được dùng trong dự án, giúp cho các thành viên mới tham gia dự án có thể tra cứu dễ dàng. Tab Download + Upload 1 file: chọn New download và chỉ đường dẫn đến nơi chứa file cần upload. Chú ý: mỗi một tập tin chỉ được gán 1 nhãn (Labels) duy nhất đã được định nghĩa trước. + Chức năng tìm kiếm:+ Thay đổi thông tin hiển thị: Tab Issues Trong thuật ngữ tin học thì issue được dùng để chỉ khái quát của những mẫu bug. Nó có thể là bug, một đặc trưng được yêu cầu, sự thất lạc tài liệu,… Tab này của google project hosting giúp đưa ra và quản lý việc phân công công việc và các phản hồi trong quá trình xây dựng và sử dụng phần mềm + Tạo 1 issues mới: Trong đó: Template : là những mẫu issue mặc định. Có 3 loại: Defect report form user: là những sai sót do người sử dụng chỉ ra. Nếu bạn đăng nhập bằng tài khoản không liên quan tới quá trình phát triển của dự án thì Template này sẽ được chọn mặc địh. Defect report from developer: là những sai sót phát sinh trong quá trình phát triển của dự án, hoặc do người phát triển dự án chỉ ra. Assigned reviews: là cách mà một nhóm làm việc trên 1 nhánh và kiểm tra lại kết quả trên nhánh đó trước khi merge lại. Issue có thể được phân công cho một thành viên trong dự án bằng cách yêu cầu anh ta bỏ thời gian xem xét, và những thành viên còn lại vẫn có thể bình luận trên nó. Summary : tóm tắt về issue Description : tùy từng template mà có mô tả phù hợp. Status: trạng thái của issue Open statuses: các trạng thái mở New: mới khởi tạo chưa được xem xét trước đó Accepted: vấn đề được phát sinh / cần tiếp nhậ Started: bắt đầu xử lý issue Closed statuses: các trạng thái đóng Fixed: Developer thay đổi code, QA cần thẩm tra lại Verifyed: QA đã thẩm tra Invalid: issue không hợp lệ Duplicate: issue đã tồn tại WontFix: không thể làm gì với issue này Done: yêu cầu hoàn tất. Owner: người được phân công xem xét vấn đề, hoặc người tạo ra issue Cc: Owner dự phòng Labels : Type : Defect: báo cáo thiếu sót của phần mềm Enhancement: yêu cầu nâng cấp Task: các việc không liên quan tới code và docs Review: yêu cầu code review Priority: độ ưu tiên Critical: yêu cầu giải quyết trong đặc tả milestone High: cần giải quyết trong đặc tả milestone Medium: nên giải quyết trong đặc tả milestone Low: có thể dời đến sau milestone + Tìm kiếm và liệt kê Issue:Search: loại issues cần thể hiện. For: chuỗi tìm kiếm. Advanced search: dùng để thực hiện các câu truy vấn phức tạp hơn Search operators: các toán tử hỗ trợ tìm kiếm. Tab Source: Quản lý Source code Google project hosting đòi hỏi phải có một chương trình chạy trên máy client, thùng chứa sẽ được truy cập nhờ vào phần mềm này. Ở đây chúng ta sẽ sử dụng phần mềm TortoiseSVN. Đối với thành viên của dự án: cần chứng thực bằng username và password, áp dụng cho thành viên của project. Username mặc định là tên của tài khoản gmail, password được lấy theo link bên dưới: Nếu không phải là thành viên của dự án: không cần chứng thực nhưng chỉ được phép đọc, không được phép chỉnh sửa.+ Xem cấu trúc của project+ Xem các phiên bản của project+ Gửi thông điệp cho các thành viên khác biết khi vừa commit lên server:Nhập thông tin để thông báo cho các thành viên khác: Tab Administer: quản trị dự án+ Project Summary: tóm tắt sơ lược về project+ Project Members: Quản lý thành viên của dự án Trong đó: Project owners: là người quản trị ( admin) của dự án. Project commiters: các thành viên của dự án, có sự hạn chế về quyền truy cập vào hệ thống. Project contributors: là các thành viên khách, không tham gia vào thực hiện dự án. Ta có thể thêm thành viên dự án bằng cách vào tab Project Home -> People -> Add Members và nhập thành viên mới. Cấp quyền truy cập cho thành viên: Chọn tab Project Home -> People -> chọn thành viên cần thay đổi quyền truy cập. Sau đó cấp quyền lại cho thành viên:+ Wiki: chứa các mẫu cấu hình và từ điển dữ liệu+ Issue Tracking: theo vết các issue+ Source: các thiết lập liên quan đến mã nguồnTrong đó: Default browsing path: cho phép chọn thư mục mặc định ( được hiển thị khi cây tìm kiếm mã nguồn được hiển thị). Checkout path: khi người dùng checkout, nội dung trong thư mục này sẽ được tải về. Code review: xem lai mã nguồn. Branches Path: xác định nơi lưu phân nhánh bên trong thùng chứa. Tiếp theo là:+ Tabs: chỉnh sửa các tab sẽ hiển thị ra ngoàiNếu bạn không muốn cho tab nào xuất hiện ra bên ngoài thì chọn thuộc tính cho nó là Hide, và khi đó thì bạn sẽ không thể thấy được tab này. + Advanced: các quản lý cấu hình nâng cao khác Delete project: xoá project. Storage quota: xem các thông tin về việc lưu trữ dữ liệu [...]... thêm nha ! => không, code google chỉ hổ trợ 3 template Defect report form user, Defect report from developer, Assigned reviews 7 Có thể thay đổi “defect” trong tab issues bằng phần khác được không (trừ những cái đã có sẵn trong phần chọn rùi ) ? =>Được, nhưng khi thay đổi, cần vào wiki định nghĩa khái niệm mới, để các thành viên khác trong nhóm biết . 1:NOI DUNG• Công nghệ phần mềm? . Pressman[1995]: CNPM là bộ môn tích hợp các quy trình, các phương pháp, các công cụ để phát triển phần mềm máy. Quản lý dự án … • Các công cụ • Các công cụ trợ giúp trong quá trình phát triển phần mềm (CASE -Computer Aided Software Engineering) • Công cụ thiết

Ngày đăng: 24/01/2013, 11:40

Từ khóa liên quan

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

Tài liệu liên quan