Download - Quan ly cau hinh pm
L/O/G/O
Seminar
QUẢN LÝ CẤU HÌNH PHẦN MỀMSeminar
QUẢN LÝ CẤU HÌNH PHẦN MỀM
GVHD: Thầy Lâm Quang Vũ
Nhóm thực hiện: Nhóm C
04/09/23 1
L/O/G/O
Nội dung làm việcNội dung làm việc
• Lý thuyết.
• Demo giới thiệu tools
04/09/23 2
Giới thiệuGiới thiệu
Các khái niệm
Các phương pháp quản lý cấu hình
Định nghĩa
04/09/23 3
Định nghĩaĐịnh nghĩa
• Thiết lập và bảo đảm tính toàn vẹn của các sản phẩm trung gian cũng như các sản phẩm sau cùng của một dự án phần mềm, xuyên suốt chu kỳ sống của dự án đó.
• Tổ chức, quản lý các thay đổi đối với phần mềm đang được xây dựng bởi một nhóm lập trình viên.
04/09/23 4
Các khái niệmCác khái niệm
Delivery:
Tập hợp các mẩu cấu hình được bàn giao cho khách hàng hoặc những bộ phận khác (developer, teser…)
Baseline / Milestone:
Mốc thời gian mà tại đó đạt được những kết quả nhất định. Vd:
Duyệt đặc tả yêu cầu.
Software Configuration Item:
Đối tượng được quản lý bởi QLCH
Phát hành bản beta04/09/23 5
Các khái niệm (tt)Các khái niệm (tt)
Repository:
Nơi chứa tất cả các tài nguyên (tập tin) được quản lý.
Working copy:
Bản sao (dùng để làm việc) của tập tin trên repository.
jWorking copy
04/09/23 6
Các khái niệm (tt)Các khái niệm (tt)
Revision
Mỗi thay đổi liên quan đến một tập tin nào đó sẽ tạo ra một revision mới.
r20 r21
+delta
04/09/23 7
Các khái niệm (tt)Các khái niệm (tt)
Check out (update):
Tạo bản copy từ repository về workspace để chỉnh sửa.
04/09/23 8
Các khái niệm (tt)Các khái niệm (tt)
Check in (commit):
Đưa thay đổi của tài liệu từ workspace lên repository.
04/09/23 9
Các khái niệm (tt)Các khái niệm (tt)
Diff (change, delta):
Sự khác nhau giữa 2 phiên bản kề nhau.
04/09/23 10
Các khái niệm (tt)Các khái niệm (tt)
Merge:
Kết hợp thay đổi trên các working copy khác nhau của cùng 1 file, tạo thành 1 bản duy nhất.
04/09/23 11
Các khái niệm (tt)Các khái niệm (tt)
Conflict:
Sự đụng độ xảy ra khi nhiều người cùng chỉnh sửa 1 tài liệu.
04/09/23 12
Các khái niệm (tt)Các khái niệm (tt)
Lock:
“Khoá” tài liệu đang làm việc trên repository để ngăn người khác chỉnh sửa.
Unlock:
“Mở khoá” tài liệu sau khi làm việc xong.
Lock – Modify - Unlock
04/09/23 13
Các khái niệm (tt)Các khái niệm (tt)
Copy – Modify - Merge
X Y
04/09/23 14
Các khái niệm (tt)Các khái niệm (tt)
Copy – Modify - Merge
Conflict
X Y
04/09/23 15
Các khái niệm (tt)Các khái niệm (tt)
Copy – Modify - Merge
MergeX Y
04/09/23 16
Các phương pháp quản lý cấu hình PMCác phương pháp quản lý cấu hình PM
• Thùng chứa tập trung– Local only
– Client – server
• Thùng chứa phân tán (Distributed)
04/09/23 17
Local onlyLocal only
• Phạm vi hẹp.
• Dự án nhỏ.
• Dễ triển khai.
04/09/23 18
Local onlyLocal only
04/09/23 19
Client – serverClient – server
• Quy mô rộng.
• Dự án lớn.
• Chi phí cao.
04/09/23 20
Client – serverClient – server
Bảo đảm đường truyền???
04/09/23 21
DistributedDistributed
• Một thùng chứa chính.
• Mỗi cá nhân có một thùng chứa riêng.
• Giao thức peer – to – peer.
04/09/23 22
DistributedDistributed
peer – to – peer
04/09/23 23
DistributedDistributed
Patch
04/09/23 24
Demo Tools QLCHDemo Tools QLCH
• Team Foundation Server 2008
• SVN
• Quản lý cấu hình miễn phí web hosting services.
• Tích hợp liên tục
04/09/23 25
Team Foundation ServerTFS
Team Foundation ServerTFS
04/09/23 26
Nội dung thuyết trìnhNội dung thuyết trình
1. Giới thiệu:• Chuẩn CMMi và Agile.
2. Kiến trúc.
3. Các khái niệm.
4. Demo.
04/09/23 27
Giới thiệuGiới thiệu
• TFS là hệ thống quản lý vòng đời phần mềm:• Lưu trữ, chia xẻ mã nguôn, tích hợp với công cụ
lập dự án Microsoft Project hoặc Excel.• Hướng dẫn quy trình, tạo báo cáo động và theo
doi đầu công viêc và tiến độ chung của dự án.• Chuyên dùng cho các dự án phát triển phần mềm,
đòi hỏi khắt khe chất lượng, tiến độ, ngân sách.
04/09/23 28
Chuẩn CMMi && AgileChuẩn CMMi && Agile
• CMMi - Capability Maturity Model® Integration:– Đòi hỏi rất nhiều loại văn bản khác nhau, luôn
yêu cầu lập kế hoạch dự án, đào tạo, giám sát liên tục .
• Agile:– Yêu cầu vòng đời phiên bản thật ngắn tính
bằng tuần .
04/09/23 29
Kiến trúcKiến trúc
04/09/23 30
•Tạo và quản lý dự án
• chỉ có các web service.
•Quản lý ứng dụng.
Kiến trúcKiến trúc
Client
• web services .
• Team Project Portal .
• kết hợp dữ liệu và tạo báo cáo.
Application
•cung cấp dịch vụ lưu trữ dữ liệu cho thùng chứa tài liệu.
• SQL Server + Window Server 2003Data
04/09/23 31
Các khái niệmCác khái niệm
• WorkItems:
• Team Building.
• Bug.
• Report
04/09/23 32
DemoDemo
• Connect 2TFS.
• Create new Team Project.
• Add project to TFS.
• Convert VSS to TFS
04/09/23 33
Giảng viên hướng dẫn: Thầy Lâm Quang VũNhóm thực hiện: C6 – Haughty Guys
Giảng viên hướng dẫn: Thầy Lâm Quang VũNhóm thực hiện: C6 – Haughty Guys
04/09/23 34
Nội dung:Nội dung:
• Giới thiệu
• Tính năng
• Kiến trúc
• Cài đặt
• Demo
04/09/23 35
Giới thiệuGiới thiệu
• Subversion(SVN) là một hệ thống quản lý version (version control system - VCS) được giới thiệu vào năm 2000 bởi công ty CollabNet (http://subversion.tigris.org).
• Về mặt khái quát, SVN giống như một hệ thống file server mà các client có thể quản lý và thay đổi cùng một tập hợp dữ liệu. Điểm đặc biệt của SVN là nó lưu lại tất cả những gì thay đổi trên hệ thống file.04/09/23 36
Tính năngTính năng• Directories are versioned• Copying, deleting, and renaming are versioned• Free-form versioned metadata ("properties")• Atomic commits• Branching and tagging are cheap (constant
time) operations• Merge tracking• File locking• …
04/09/23 37
Kiến trúcKiến trúc
04/09/23 38
Kiến trúcKiến trúc
• Subversion dựa trên mô hình quản lý tập trung kiểu client/server.
• Hai khái niệm cơ bản: Repository và Working Copies
04/09/23 39
Kiến trúcKiến trúc
• Cách thức quản lý phiên bản
04/09/23 40
Cài đặtCài đặt• Môi trường cài đặt: Microsoft Windows
(Windows XP SP2, Windows Server 2003, Standard Edition)
• CollabNet Subversion Server and Client v1.6.1 (for Windows): http://www.open.collab.net/downloads/subversion
• Tortoise SVN (GNU General Public License): http://tortoisesvn.net/downloads
04/09/23 41
DemoDemo
04/09/23 42
Tham khảoTham khảo
• http://subversion.tigris.org
• http://svnbook.red-bean.com/
04/09/23 43
Các giải pháp quản lý cấu hình miễn phí trên mạng
04/09/23 44
Giới thiệu1
Assembla3
Tồng kết4
Nội DungNội Dung
04/09/23 45
Giới ThiệuGiới Thiệu
Biện pháp quản lý cấu hình trên mạng là gì? Website cung cấp dịch vụ project-hosting
Ưu điểm Bỏ qua giới hạn địa lý Tiện dụng Miễn phí Tiết kiệm tài nguyên
Nhược điểm Tốc độ chậm Dung lượng lưu trữ hạn chế
04/09/23 46
Danh sách websiteDanh sách website
Google Code
Assembla.com
Bounty Source
Source Forge
Collab.net
….04/09/23 47
Giới thiệu1
04/09/23 48
Tổng quan Tổng quan
Google Code là gì? Cung cấp dịch vụ project-hosting. Miễn phí 100%. Nhằm hỗ trợ cho các dự án mã nguôn mở.
FAQ: http://code.google.com/p/support/wiki/FAQ
04/09/23 49
Tạo project mới Tạo project mới
URL: http://code.google.com/hosting/
04/09/23 50
Tạo project mới Tạo project mới
04/09/23 51
Thành phần Thành phần
Project Home: giới thiệu về dự án, các cập nhật gần đây Downloads: nơi public các tài nguyên, source code, sản phẩm cuối (2Gb) Wiki: 1 trang wikimedia thu nhỏ Issues: hệ thống quản lý các bug Source: quản lý cấu hình source code Administer: dành riêng cho owner của project
04/09/23 52
Source Source
- Dung lượng: 1Gb- Sử dụng kèm với tool ở client: TortoiseSVN, …- Cần có tài khoản và mật khẩu
04/09/23 53
Source Source
04/09/23 54
Thêm thành viênThêm thành viên
04/09/23 55
Tổng kết Tổng kết
Ưu điểm Miễn phí hoàn toàn Dung lượng lưu trữ cao Dễ sử dụng Dễ đăng ký Thuận tiện phát triển các dự án vừa và nhỏ
Nhược điểm Chỉ chấp nhận gmail Khả năng tùy biến thấp 1 Gmail chỉ tạo được 10 project
04/09/23 56
Giới thiệu1
Assembla3
04/09/23 57
Tổng quan Tổng quan
Do nhóm của Andy Singleton phát triển
Cung cấp dịch vụ project-hosting Miễn phí: public and open source projects Thu phí: private and professional projects
Các add-on tools miễn phí 100%
Add/remove tools không giới hạn
Thu phí dung lượng lưu trữ04/09/23 58
Tạo workspace Tạo workspace
URL: http://www.assembla.com
B1: đăng ký tài khoản
B2: vào start page
B3: Chọn create new space
B4: Chọn mẫu workspace
B5: Chọn plan
B6: Tùy biến workspace
04/09/23 59
Tùy biến workspace Tùy biến workspace
Chức năng cần thiếtTeam: thêm, xóa, phân quyền cho thành viên
Admin: tùy biến workspace, backup, upgrade…
Chức năng tùy chọn: 24 chức năng
Source/SVN Wiki Scrum
Message Chat File
Image Milestones Tickets
Time Subverion&Trac Mercurial&Trac
… … …
04/09/23 60
Source/SVN Source/SVN
Xài kèm TortoiseSVN
04/09/23 61
Thêm thành viên Thêm thành viên
Mời thành viên Tên đăng nhập Email đăng ký Từ các team khác
Phân quyền
04/09/23 62
Featured Space Configurations Featured Space Configurations
Định nghĩa: Là những mẫu workspace có sẵn
Tổng số mẫu workspace: 12 Subversion Hosting with Integrated Tickets: thông dụng nhất Trac and Subversion Hosting Team Collaboration Branded Portfolios - Project management with your own identity Graphic Designers Assembla Ticketing for Github
…
04/09/23 63
Tổng kết Tổng kết
Ưu điểm Miễn phí Dễ sử dụng Khả năng tùy biến cao Cho phép sử dụng các host bên ngoài kết hợp với assembla Có nhiều mẫu workspace Không giới hạn số workspace
Nhược điểm Dung lượng lưu trữ thấp: 200Mb/Workspace
04/09/23 64
Giới thiệu1
Assembla3
Tồng kết4
04/09/23 65
Tổng kếtTổng kết
Miễn phí tội gì không xài! Google Code
Tốt cho dự án vừa và nhỏ. Thiên về quản lý cấu hình.
Assembla Tốt cho dự án nhỏ (miễn phí) Phục vụ nhiều mục đích khác trong dự án. Tốt cho mọi loại dự án: nhỏ, vừa, lớn nếu có tiền
04/09/23 66
04/09/23 67
I. Continuous IntegrationI. Continuous Integration
II. CruiseControl.NETII. CruiseControl.NET
III. CruiseControl.NET Integration ProcessIII. CruiseControl.NET Integration Process
IV. Tools - Configuration ExampleIV. Tools - Configuration Example
V. DemoV. Demo
VI. Advantages and DisadvantagesVI. Advantages and Disadvantages04/09/23 68
I. Continuous Integration
II. CruiseControl.NETII. CruiseControl.NET
III. CruiseControl.NET Integration ProcessIII. CruiseControl.NET Integration Process
IV. Tools - Configuration ExampleIV. Tools - Configuration Example
V. DemoV. Demo
VI. Advantages and DisadvantagesVI. Advantages and Disadvantages04/09/23 69
Continuous integration is the strategy of making sure that changes to the project’s code base are built, tested and reported on as soon as possible after they are introduced.
04/09/23 70
Traditionally, different modules are developed by different programmers
Divide work to allow parallel development Integrate modules at late state of project Integration problems can easily knock project off
schedule… or cause it to fail altogether Parallel commits can cause semantic
incompatibilities The earlier you can detect problems, the easier it
is to resolve them04/09/23 71
Shorten the feedback loopAutomatic compilationAutomatic testingImprove reporting
04/09/23 72
Solution: continually integrate and test throughout the project
04/09/23 73
Developers check out code into their private workspaces
04/09/23 74
When done, they commit changes to the repository
04/09/23 75
The CI server monitors the repository and checks out changes when they occur
04/09/23 76
The CI server builds the system and runs unit and integration tests
04/09/23 77
The CI server releases deployable artefacts for QA testing
04/09/23 78
The CI server assigns a build label to the version of the code that it just built
04/09/23 79
The CI server informs the team of the successful build and generates useful metrics
04/09/23 80
If the build or tests fail, the CI server alerts the team
04/09/23 81
Continually integrate and test throughout the project
04/09/23 82
I. Continuous IntegrationI. Continuous Integration
II. CruiseControl.NET
III. CruiseControl.NET Integration ProcessIII. CruiseControl.NET Integration Process
IV. Tools - Configuration ExampleIV. Tools - Configuration Example
V. DemoV. Demo
VI. Advantages and DisadvantagesVI. Advantages and Disadvantages04/09/23 83
CruiseControl.NET (CCNet) consists of a suite of applications, but at its core is the CruiseControl.NET Server which is an automated integration server.
The Server automates the integration process by monitoring the team's source control repository directly. Every time a developer commits a new set of modifications, the server will automatically launch an integration build to validate the changes. When the build is complete, the server notifies the developer whether the changes that they committed integrated successfully or not.
04/09/23 84
• The CCNet Server offers several key features: Integration with a variety of Source Control systems Integration with other external tools, such as NAnt and Visual
StudioCan build multiple projects on one serverRemote management and reporting
04/09/23 85
I. Continuous IntegrationI. Continuous Integration
II. CruiseControl.NETII. CruiseControl.NET
III. CruiseControl.NET Integration Process
IV. Tools - Configuration ExampleIV. Tools - Configuration Example
V. DemoV. Demo
VI. Advantages and DisadvantagesVI. Advantages and Disadvantages04/09/23 86
04/09/23 87
04/09/23 88
04/09/23 89
I. Continuous IntegrationI. Continuous Integration
II. CruiseControl.NETII. CruiseControl.NET
III. CruiseControl.NET Integration ProcessIII. CruiseControl.NET Integration Process
IV. Tools - Configuration Example
V. DemoV. Demo
VI. Advantages and DisadvantagesVI. Advantages and Disadvantages04/09/23 90
• Source Control:– CVS Source Control– Perforce Source Control– Visual Source Safe Source Control
• Build tools– MsBuild– NAnt– Visual Studio
04/09/23 91
• Để cấu hình cho CC.Net ta tiến hành theo các bước: Open file ccnet.Config trong thư mục:
C:\Program Files\CruiseControl.NET\server
Thêm các task cấu hình cho ccnet.04/09/23 92
04/09/23 93
The project in the repository to be monitored.The project in the repository to be monitored.
VSS user ID that CCNet should use to authenticate. If the username is unspecified, the VSS client will attempt to authenticate
using the NT user.
VSS user ID that CCNet should use to authenticate. If the username is unspecified, the VSS client will attempt to authenticate
using the NT user.Password for the VSS user IDPassword for the VSS user ID
The directory containing SRCSAFE.INI. If this SSDIR environment variable is already
set then this property may be omitted.
The directory containing SRCSAFE.INI. If this SSDIR environment variable is already
set then this property may be omitted. Specifies whether the current CCNet label
should be applied to all source files under the current project in VSS. Note: the specified
VSS username must have write access to the repository.
Specifies whether the current CCNet label should be applied to all source files under the
current project in VSS. Note: the specified VSS username must have write access to the
repository.
Specifies whether the current version of the source should be retrieved from VSS
Specifies whether the current version of the source should be retrieved from VSS Specifies whether the most recent version of
the source should be retrieved from VSS. If not, CCNet will obtain the source as of the
time the build began.
Specifies whether the most recent version of the source should be retrieved from VSS. If not, CCNet will obtain the source as of the
time the build began.
The folder into which the source should be retrived from VSS. If this folder does not
exist, it will be automatically created
The folder into which the source should be retrived from VSS. If this folder does not
exist, it will be automatically createdThe culture under which VSS is runningThe culture under which VSS is running
Controls whether or not VSS gets a clean copy (overwrites modified files) when getting
the latest source.
Controls whether or not VSS gets a clean copy (overwrites modified files) when getting
the latest source.
Sets the timeout period for the source control operation
Sets the timeout period for the source control operation
04/09/23 94
04/09/23 95
04/09/23 96
The location of the MSBuild.exe executable.The location of the MSBuild.exe executable.The directory to run MSBuild in - this is generally the directory containing your build
project.
The directory to run MSBuild in - this is generally the directory containing your build
project.The name of the build project to run.The name of the build project to run.Any extra arguments to pass through to MSBuild.
Any extra arguments to pass through to MSBuild.A semicolon-separated list of the targets to
run.A semicolon-separated list of the targets to
run.Number of seconds to wait before assuming
that the process has hung and should be killed.
Number of seconds to wait before assuming that the process has hung and should be
killed.The full path to the assembly containing the
custom logger to use.The full path to the assembly containing the
custom logger to use.04/09/23 97
BUILD – VISUAL STUDIOBUILD – VISUAL STUDIO
04/09/23 98
BUILD - NANTBUILD - NANT
04/09/23 99
I. Continuous IntegrationI. Continuous Integration
II. CruiseControl.NETII. CruiseControl.NET
III. CruiseControl.NET Integration ProcessIII. CruiseControl.NET Integration Process
IV. Tools - Configuration ExampleIV. Tools - Configuration Example
V. Demo
VI. Advantages and DisadvantagesVI. Advantages and Disadvantages04/09/23 100
I. Continuous IntegrationI. Continuous Integration
II. CruiseControl.NETII. CruiseControl.NET
III. CruiseControl.NET Integration ProcessIII. CruiseControl.NET Integration Process
IV. Tools - Configuration ExampleIV. Tools - Configuration Example
V. DemoV. Demo
VI. Advantages and Disadvantages04/09/23 101
– You catch build breaks early on. – In a distributed development environment where
developers do not always communicate with one another, continuous integration is a great way to assure the developer that the build he or she is building is the latest one.
– Continuous integration also causes less regression– The feedback loop is smaller.
04/09/23 102
– A developer does not have to wait for the end of the day or week to find out how the check-in affected the build.
– Integration testing moves up in the chain. – Every check-in goes through the integration testing
where problems are caught early.– Continuous integration enforces better development
processes.– Each developer is held accountable.– You always have a latest-and-greatest build to use
in demos, showcases, etc. 04/09/23 103
– Maintenance overhead often increases.
– Some teams find that the level of discipline required for continuous integration causes bottlenecks. This often requires a shift in the developer mindset.
– The immediate impact of a check-in often causes a backup because programmers cannot check in partially completed code.
04/09/23 104
L/O/G/O
Thank You!Thank You!
04/09/23 105