quan ly cau hinh pm

Post on 04-Dec-2014

1.713 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

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

top related