Quản lý cấu hình phần mềm
Trang 3Giớ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
Trang 4Đị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.
Trang 5Cá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 beta
Trang 6Cá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
j Working copy
Trang 8Các khái niệm (tt)
Check out (update):
Tạo bản copy từ repository về workspace để chỉnh sửa.
Trang 9Các khái niệm (tt)
Check in (commit):
Đưa thay đổi của tài liệu từ workspace lên repository.
Trang 10Các khái niệm (tt)
Diff (change, delta):
Sự khác nhau giữa 2 phiên bản kề nhau.
Trang 11Cá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.
Trang 12Cá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.
Trang 13“Mở khoá” tài liệu sau khi làm việc xong.
Lock – Modify - Unlock
Trang 14Các khái niệm (tt)
Copy – Modify - Merge
Trang 15Các khái niệm (tt)
Copy – Modify - Merge
Conflict
Trang 16Các khái niệm (tt)
Copy – Modify - Merge
Trang 17Các phương pháp quản lý cấu hình PM
Trang 18Local only
• Phạm vi hẹp.
• Dự án nhỏ.
• Dễ triển khai.
Trang 19Local only
Trang 20Client – server
• Quy mô rộng.
• Dự án lớn.
• Chi phí cao.
Trang 21Client – server
Bảo đảm đường
truyền???
Trang 22• 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.
Trang 23peer – to – peer
Trang 24Patch
Trang 26Team Foundation Server
TFS
Trang 27Nội dung thuyết trình
Trang 28Giớ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
dõi đầ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
Trang 29Chuẩn CMMi && Agile
• CMMi - Capability Maturity Model®
Trang 30Kiến trúc
Trang 31• 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 2003
Data
Trang 34Giảng viên hướng dẫn: Thầy Lâm Quang Vũ
Nhóm thực hiện: C6 – Haughty Guys
Trang 36Giớ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
Trang 37Tính năng
• Directories are versioned
• Copying, deleting, and renaming are versioned
• Free-form versioned metadata ("properties")
Trang 38Kiến trúc
Trang 40Kiến trúc
• Cách thức quản lý phiên bản
Trang 41Cà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/sub version
• Tortoise SVN (GNU General Public
License): http://tortoisesvn.net/downloads
Trang 42Demo
Trang 43Tham khảo
• http://subversion.tigris.org
• http://svnbook.red-bean.com/
Trang 44Các giải pháp quản lý cấu hình
miễn phí trên mạng
Trang 46Giớ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
Trang 48Giới thiệu
1
Trang 50Tạo project mới
URL: http://code.google.com/hosting /
Trang 51Tạo project mới
Trang 52Thà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
Trang 53Source
- 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
Trang 54Source
Trang 55Thêm thành viên
Trang 56Tổ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
Trang 57Giới thiệu
1
Assembla
3
Trang 58Tổ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%
Trang 59Tạ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
Trang 60Tùy biến workspace
Chức năng cần thiết
Team: 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
Trang 61Source/SVN
Xài kèm TortoiseSVN
Trang 63Featured 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
Trang 64Tổ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
Trang 68I Continuous Integration
II CruiseControl.NET
III CruiseControl.NET Integration Process
IV Tools - Configuration Example
Trang 69I Continuous Integration
II CruiseControl.NET
III CruiseControl.NET Integration Process
IV Tools - Configuration Example
V Demo
VI Advantages and Disadvantages
Trang 70Continuous 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.
Trang 71Traditionally, 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 them
Trang 72 Shorten the feedback loop
Automatic compilation
Automatic testing
Improve reporting
Trang 73Solution: continually integrate and test
throughout the project
Trang 74Developers check out code into their private
workspaces
Trang 75When done, they commit changes to the
repository
Trang 76The CI server monitors the repository and checks
out changes when they occur
Trang 77The CI server builds the system and runs unit and
integration tests
Trang 78The CI server releases deployable artefacts for
QA testing
Trang 79The CI server assigns a build label to the version
of the code that it just built
Trang 80The CI server informs the team of the successful
build and generates useful metrics
Trang 81If the build or tests fail, the CI server alerts the
team
Trang 82Continually integrate and test throughout the
project
Trang 83I Continuous Integration
II CruiseControl.NET
III CruiseControl.NET Integration Process
IV Tools - Configuration Example
V Demo
VI Advantages and Disadvantages
Trang 84 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
Trang 85• 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 Studio
Can build multiple projects on one server
Remote management and reporting
Trang 86I Continuous Integration
II CruiseControl.NET
III CruiseControl.NET Integration Process
IV Tools - Configuration Example
Trang 90I Continuous Integration
II CruiseControl.NET
III CruiseControl.NET Integration Process
IV Tools - Configuration Example
Trang 91• Source Control:
– CVS Source Control
– Perforce Source Control
– Visual Source Safe Source Control
• Build tools
– MsBuild
– NAnt
– Visual Studio
Trang 92• Để 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
Trang 94The 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 IDThe 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
Specifies whether the current CCNet label should be applied to all source files under the current project in VSS Note: the specified Specifies whether the current version of the Specifies whether the current version of the
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
Trang 97The 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
Any extra arguments to pass through to
The full path to the assembly containing the
custom logger to use
The full path to the assembly containing the
custom logger to use
Trang 98BUILD – VISUAL STUDIO
Trang 99BUILD - NANT
Trang 100I Continuous Integration
II CruiseControl.NET
III CruiseControl.NET Integration Process
IV Tools - Configuration Example
Trang 101I Continuous Integration
II CruiseControl.NET
III CruiseControl.NET Integration Process
IV Tools - Configuration Example
V Demo
VI Advantages and Disadvantages
Trang 102– 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.
Trang 103– 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
Trang 104– 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
Trang 105Thank You!