1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo án - bài giảng: Giới thiệu về câu hỏi lý thuyết môn xây dựng phần mềm (có đáp án)

24 1,2K 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 851,7 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Quản lý phiên bản ghi lại tất cả các thay đổi khi người dùng thao tác - Đối với người làm việc độc lập: + Có thể dễ dàng quay trở về phiên bản cũ + Dễ dàng kiểm tra lại code của mình

Trang 1

CÂU HỎI ÔN TẬP MÔN XÂY DỰNG PM

Câu 1: Trình bày các khái niệm của xây dựng pm

Lên kế hoạch xây dựng phát triền dự án tập trung vào code, debug, unit test và thiết kế cụ thể, 1 phần nhỏ nữa là tích hợp và kiểm chứng tích hợp

Xây dựng pm là 1 phần lớn trong quá trình phát triển pm, kết quả của quá trình xây dựng pm là 1 pm

(1 pm bao gồm: bản yêu cầu pm, bản kế hoạch phát triển pm, phân tích thiết kế pm, mã nguồn pm, phân tích kiểm thử pm, tích hợp pm, hướng dẫn sd, hướng dẫn cài đặt.)

Phần quan trọng nhất của xây dựng pm là mã nguồn, và nó cũng là phần quan trọng nhất của 1 pm

Xây dựng pm là phần trọng tâm và bắt buộc trong quá trình phát triển pm

Xây dựng pm như thế nào ?

1 Cách viết code sơ đẳng là viết code thử, nếu sai thì bỏ

2 Cách viết code chương trình được định nghĩa giống như gieo cây, ta viết và thử từng đoạn nhỏ, rồi chạy Nhưng đối với đồ án lớn, các đoạn nhỏ không kết nối được, phát sinh lỗi, thì không hiệu quả

3 Viết code có thể chuẩn hóa dần (viết đoạn nhỏ, đảm bảo tương thích với các đoạn code trước đó)

Để xây dựng pm tốt, thì phải lên bản thiết kế (giống như xây dựng nhà), đồ án càng

phức tạp, bản thiết kế càng chi tiết Đó là điều bắt buộc để xây dựng 1 pm tốt

o Trước khi xdpm cần phải định nghĩa vấn đề cần giải quyết (làm gì, cho ai và cái

gì)

o Thứ 2 phải có yêu cầu

o Tiếp theo cần phải có bản phân tích thiết kế hệ thống cụ thể, phải có từng thành

phần nào, các lớp liên hệ với nhau ra sao, phải có sơ đồ ghi rõ trước khi xây dựng

o Sau đó cần phải chọn được ngôn ngữ lập trình

o Kế tiếp cần phải chọn nền tảng công nghệ, thực ra chỉ là thư viện viết sẵn để

chúng ta tái sử dụng Vì công nghệ giúp ta tiết kiệm thời gian và công sức khi xây dựng pm

o Ta phải cần phải có các chuẩn về coding Chuẩn về coding ta cần quan tâm :

Trang 2

 Định dạng thụt vào của code (indentation), vertical alignment: theo hàng dọc và có thứ tự

 Các vòng lặp, không được quá rắc rối, và nhiều vòng lặp

 Mỗi ngôn ngữ sẽ có 1 loại chuẩn riêng Mỗi nhóm / công ty sẽ tự đặt ra 1 chuẩn

về coding cho mình Nếu chúng ta có chuẩn của code, sẽ giúp chúng ta dễ dàng đọc code của thành viên, ráp code cũng dễ dàng, và giúp làm việc nhóm trôi chảy

o Sau khi có chuẩn code, chúng ta phải xác định được công cụ cần thiết để chúng ta

xây dựng pm

o Cuối cùng chúng ta cần có nơi để lưu trữ mã nguồn, để sử dụng cho tất cả các

thành viên trong nhóm

Cái quan trọng nhất của xây dựng pm là IDE (Môi trường phát triển tích hợp) 1 IDE

thông thường bao gồm công cụ lập trình để biên tập mã nguồn, trình biên dịch / thông dịch, công cụ để build, cuối cùng cần có chương trình để debug Khả năng tra từ điển là phần quan trọng của IDE, IDE tự động viết mã nguồn khi ta phát sinh 1 giao tác xử lý

Câu 2: Trình bày các khái niệm và lợi ích của quản lý phiên bản

Quản lý phiên bản ghi lại tất cả các thay đổi khi người dùng thao tác

- Đối với người làm việc độc lập:

+ Có thể dễ dàng quay trở về phiên bản cũ

+ Dễ dàng kiểm tra lại code của mình trước khi commit lên thùng chứa

+ Đồng bộ nhiều máy tính

- Đối với làm việc tập thể:

+ Dễ dàng tập trung dữ liệu và quản lý cấu hình các tập tin có trong thùng chứa

+ Dễ dàng đồng bộ dữ liệu giữa các máy tính

+ 1 người có thể tự làm phần việc của mình mà ko làm phiền người khác

Trang 3

+ Dễ dàng xem, cập nhật dữ liệu, và so sánh sự khác nhau giữa các phiên bản

+ Có thể tạo patch để làm việc khi không kết nối mạng

+ Tạo nhánh cho dự án dễ dàng hơn từ đó giúp cho các developer dễ dàng làm việc với nhau và quản lý dự án

- Các khái niệm của Quản lý phiên bản:

+ The Repository: thùng chứa đóng vai trò như 1 kho lưu trữ thông tin dưới hình thức 1 cây hệ thống tập tin, cho phép nhiều client kết nối vào lấy dữ liệu về để đọc và ghi Thùng chứa khi mới tạo đc quy định là phiên bản 0

+ Working Copy: Phiên bản làm việc: là bản sao của tập tin dữ liệu mà người dùng làm việc

Có 4 trạng thái: (state)

 Unchanged, and current

 Locally changed, and current

 Unchanged, anh out-of-date

 Locally changed, and out-of-date

+ Workspaces: Môi trường làm việc của developer tách biệt khỏi Thùng Chứa và cô lập với những người sử dụng khác

+ Revision: Phiên bản của Thùng Chứa

 Revision Numbers: số thứ tự được đánh dấu cho từng phiên bản

 Revision Keywords:

 Base: Phiên bản vừa đc lấy về, chưa thay đổi

 Head: Phiên bản mới nhất của thùng chứa

 Committed: Phiên bản của file vừa đc đưa vào thùng chứa

Trang 4

 Mixed Revision: Các file trong thùng chứa có phiên bản khác nhau

 Revision Dates: Ngày mà phiên bản đc đưa vào thùng chứa

+ Deltas: Sự khác nhau giữa 2 phiên bản

+ CheckOut / Update: thực hiện lấy mã nguồn từ Thùng Chứa để thao tác với file dữ liệu

+ Modify / Edit: Thao tác thay đổi mã nguồn ở môi trường làm việc của developer (workspace)

+ Check In / Commit: Thực hiện để lưu lại những thay đổi trên dữ liệu và đưa vào Thùng Chứa

+ Conflict: Là tình trạng mà 2 người dùng cùng commit dữ liệu lên Thùng Chứa cùng 1 thời điểm

+ Lock-Modify-Unlock: Là thao tác dùng để giải quyết tình trạng Conflict Khi 1 người dùng checkout file dữ liệu về thì thực hiện thao tác lock Thùng Chứa lại để ko cho phép người dùng khác check out file dữ liệu đó từ Thùng chứa về Sau đó thì thực hiện chỉnh sửa mã nguồn rồi commit lại lên thùng chứa rồi thực hiện Unclock để người dùng khác có thể check out và sử dụng file dữ liệu đó

+ Copy-Modify-Merge: Là thao tác để kết hợp các sự thay đổi của 2 phiên bản làm việc (working copy) khác nhau thành 1 phiên bản làm việc mới

+ Branch: Là 1 nhánh của quá trình phát triển, tồn tại độc lập với các nhánh phát triển khác

+ Merging Branches: Là sự kết hợp các thay đổi của 1 nhánh này vào 1 nhánh khác

+ Tag/Label: Là điểm ảnh của 1 dự án tại 1 thời điểm nào đó Thường dùng để back up file khi gặp vấn đề

+ Exclusive Development: Hệ thống cho phép chỉ 1 người dùng tại 1 thời điểm được phép làm việc trên bất kỳ file dữ liệu nào

+ Simultaneous Development: Hệ thống cho phép nhiều người cùng làm việc trên các working copy từ 1 file dữ liệu Và hệ thống sẽ merge các phiên bản làm việc lại với nhau

+ Central Repository: Thùng chứa tập trung cho phép mọi người đều có quyền kết nối

và lấy dữ liệu

Trang 5

Thùng chứa tập trung đơn giản và dễ sử dụng, nhưng mọi thao tác đối với dữ liệu trên thùng chứa tập trung đều sẽ ảnh hưởng chung đến tất cả những người sử dụng

+ Distributed Repositories: Là Thùng chứa phân bổ, mỗi người dùng sẽ có Thùng chứa riêng, có thể kết nối với nhau để cập nhật thay đổi Đối với loại Thùng chứa phân bổ, nếu

dữ liệu trên 1 thùng chứa bị mất thì cũng sẽ ko ảnh hưởng đến các thùng chứa khác Tuy nhiên sẽ rất tốn không gian cho loại thùng chứa này

+Proxied Repositories: Thùng chứa trung gian bao gồm 1 thùng chứa tập trung và nhiều thùng chứa phân bổ

Thùng chứa trung gian gây tốn tài nguyên và không gian

+Remote Access To The Repository: Là hình thức truy cập vào thùng chứa bằng Internet

Câu 3: Trình bày các câu lệnh cơ bản để làm việc với Subversion

Các câu lệnh cơ bản để làm việc với Subversion

-svn:

+ add: Lệnh này sẽ đánh dấu việc thêm 1 file hay thư mục vào hệ thống

Subversion trên phiên bản làm việc

File hoặc thư mục được thực sự thêm vào Thùng chứa khi ta thực hiện tiếp lệnh "svn commit"

$ svn add PATH

+ blame: Lệnh này xuất ra nội dung của tập tin mà người dùng muốn xem, cùng

với tên tác giả và số thứ tự của phiên bản được đánh dấu trên từng dòng nội dung của tập tin Tên tác giả là username của người dùng đã thay đổi nổi dung của dòng tập tin sau cùng, và số thứ tự của phiên bản cho biết việc thay đổi nội dung tập tin đã xảy ra trên những dòng nào

$ svn blame PATH or

$ svn blame URL

+ cat: Giống với lệnh svn blame nhưng nội dung xuất ra theo dạng chuẩn, ko có

đánh dấu số thứ tự phiên bản như blame

$ svn cat PATH or

Trang 6

+ delete (del, remove, rm):

+ diff (di): Lệnh này xuất ra những điểm khác nhau giữa 2 phiên bản của 1 file dữ

liệu

$ svn diff revision N:M URL or

$ svn diff URL1@N URL2@M or

$ svn diff revision N:M URL1 URL2

+ import: Lệnh này được dùng để đưa 1 file chưa được đánh dấu phiên bản lên

Thùng chứa

Khác với lệnh svn add, lệnh này đc thực thi ngay lập tức mà ko phải chờ đánh dấu trên phiên bản làm việc rồi sử dụng lệnh svn commit để đưa file lên thùng chứa Lệnh này thường được dùng để đưa những dữ liệu đầu tiên vào thùng chứa

+ lock: lệnh khóa 1 file để ko cho ai khác làm việc trên nó

+ log: Lệnh này xuất ra lịch sử thay đổi nội dung dữ liệu của từng phiên bản

+ merge:

+ mkdir: tạo thư mục

+ resolved: xử lý khi bị confict

+ revert: Lệnh này dùng để quay trở về phiên bản

+ status (stat, st): Lệnh này để xuất ra trạng thái hiện tại của tập tin dữ liệu trên

thùng chứa vừa đc lấy về máy của người dùng,

option -v đi kèm để yêu cầu xuất ra đầy đủ các thông tin bao gồm số thứ tự của phiên bản và tác giả

Trang 7

+ tree: In ra cây thư mục/tập tin tương ứng của 1 phiên bản thùng chứa nhất định

$ svnlook tree -r REViSION REPOSITORY [PATH]

- Tạo Thùng chứa:

+ Dùng lệnh mkdir để tạo thư mục làm thùng chứa

+ Dùng lệnh svnadmin create [PATH của thư mục vừa tạo làm thùng chứa]

- Tạo trunk trong thùng chứa vừa tạo:

+ Dùng lệnh svn mkdir [URL: http://localhost/svn/<Tên của thư mục làm thùng chứa>/trunk] -m "<thông điệp>"//option này dùng để gửi thông điệp kèm theo

- Tạo branches trong thùng chứa vừa tạo:

+ Dùng lệnh svn mkdir [URL: http://localhost/svn/<Tên của thư mục làm thùng chứa>/braches] -m "<thông điệp>"//option này dùng để gửi thông điệp kèm theo

- Tạo tags trong thùng chứa vừa tạo:

+ Dùng lệnh svn mkdir [URL: http://localhost/svn/<Tên của thư mục làm thùng chứa>/tags] -m "<thông điệp>"//option này dùng để gửi thông điệp kèm theo

- Đưa những source code đầu tiên chưa từng được đánh dấu phiên bản lên Thùng chứa

+ Từ máy của người dùng thứ 1, PATH đường dẫn đến thư mục chứa source code

+ Dùng lệnh svn import [URL của thư mục sẽ nhận source code] -m "<thông điệp>"

//Lệnh svn import khác svn add ở chỗ là lệnh này được thực thi ngay lập tức mà ko cần đến phiên bản làm việc (working copy)

Trang 8

//ai ko hiểu 2 lệnh này thì pm Th :D

- Từ máy của người dùng thứ 2 lấy dữ liệu từ thùng chứa về:

+ Từ máy của người dùng thứ 2, PATH đường dẫn đến thư mục sẽ chứa dữ liệu đc lấy về

+ Dùng lệnh: svn checkout [URL của thư mục chứa source code trong localhost] + Hoặc lệnh: svn co [URL của thư mục chứa source code trong localhost]

- Từ máy của người dùng: Commit dữ liệu lên thùng chứa

+ PATH là đường dẫn đến thu mục đang chứa dữ liệu muốn commit

+ Dùng lệnh: svn commit -m "<Thông điệp>" [PATH/URL/tên file]

+ Hoặc dùng lệnh: svn update //lệnh này ko cần option theo sau vì nó sẽ tự động tìm những thay đổi mới trên phiên bản làm việc để update với phiên bản cũ

+ Kiểm tra lại dữ liệu đã update/commit lên thùng chứa:

.Dùng lệnh: svn log [URL/PATH/tên file]

.Hoặc dùng lệnh: svn diff revision BASE:HEAD/PREV:COMMITTED/ [URL/PATH/tên file]

.Hoặc dùng lệnh: svn diff [tên file] //lệnh này sẽ tự so sánh giữa revision của file đang có trên thùng chứa với phiên bản làm việc trên máy của người dùng

.Hoặc dùng lệnh: svn blame [PATH/URL]

.Hoặc dùng lệnh: svn cat [PATH/URL]

.Hoặc dùng lệnh: svn status [PATH]

//Mọi người tự coi định nghĩa các lệnh ở trên để so sánh sự khác nhau giữa các lệnh nha

- Thao tác Lock-Modify-Unlock:

+ PATH là đường dẫn đến thư mục chứa file dữ liệu muốn check out từ thùng chứa về

+ Dùng lệnh: svn co [URL/PATH] username <Tên user> để check out/update dữ

liệu từ thùng chứa về máy // username là option có thể thêm nếu cần

Trang 9

+ Dùng lệnh: svn lock [URL/PATH của file muốn lock]

//Khi đó nếu người dùng khác dùng lệnh: svn commit để gửi file mà người dùng trc đã lock thì sẽ xuất hiện thông báo lỗi

sau đó dùng lệnh: svn commit -m "<Thông điệp>" để thực thi lệnh thêm đó

+ Xóa: dùng lệnh: svn delete [URL/PATH/Tên file muốn xóa] //để đánh dấu file muốn xóa trên phiên bản làm việc của máy người dùng đó

sau đó dùng lệnh: svn commit -m "<Thông điệp>" để thực thi lệnh xóa đó

- Giải quyết tình trạng Conflict: Tình trạng này xảy ra khi 2 người dùng cùng commit dữ liệu lên Thùng chứa trong cùng 1 thời điểm Do đó chỉ có 1 người được phép commit lên

và người còn lại sẽ gặp thông báo lỗi conflict

+ Để giải quyết tình trạng này thì người dùng bị thông báo lỗi conflict đầu tiên phải dùng lệnh: svn update hoặc svn co để lấy phiên bản mới nhất từ thùng chứa về máy mình Sau đó dùng lệnh: svn resolved [PATH/URL/Tên file mà người dùng thứ 2 đã chỉnh sửa]

sau đó dùng tiếp lệnh: svn commit -m "<Thông điệp>" để commit file đó lên Thùng Chứa

Trang 10

+ Xem cây thư mục: svnlook tree [PATH]

+ Từ máy của người dùng thứ nhất: update lên phiên bản làm việc mới nhất: svn

-+ Giải quyết conflict bằng lệnh: svn resolved [Tên file bị conflict]

+ Commit lên thùng chứa: svn commit -m "<Thông điệp>"

Câu 4: Trình bày các tính năng và thao tác cơ bản của Visual SourceSafe

Các tính năng:

- Resource Management: Quản lý mã nguồn tại thùng chứa hoặc cơ sở dữ liệu

- Workspaces: Cung cấp ko gian làm việc riêng cho các thành viên

- Cooperation Support: Quản lý sự ảnh hưởng lẫn nhau của các thành viên

- Build and release Management: Quản lý việc build và release sản phẩm để đảm

bảo cấu hình của sản phẩm đc đánh dấu mỗi khi release để tiện cho việc bảo trì và

sử dụng lại

- Parallel development: Có khả năng phát triển song song nhiều phiên bản của 1

project

- Resource Versioning: Bảo trì những version khác nhau của Resource

- History Management: Quản lý, đánh dấu những phiên bản trong dự án

Các thao tác cơ bản:

- Tạo 1 CSDL mới

o Trong cửa sổ của VSS Administrator -> New Database -> chọn nơi chứa CSDL và đặt tên cho CSDL đó -> chọn chế độ quản lý: Lock-Modify-Unlock/ Copy-Modify-Merge

- Thêm 1 User vào hệ thống

o Trong cửa sổ của VSS Administrator -> Menu User -> Add User

- Quản lý dự án

Trang 11

o Dùng Username và password Log on vào hệ thống -> Ở màn hình VSS Explorer -> right click vào folder muốn lưu trữ Project -> chọn Set working folder -> Lấy dữ liệu về từ thùng chứa -> Get <Tên folder>

- Kết hợp với Visual Studio.Net

o Trong cửa sổ Solution Explorer của VS -> right click vào Project chọn Add Solution to Source Control -> right click vào file muốn check out/check in -

> chọn Check out/Check in

o Trong cửa sổ Solution Explorer của VS -> right click vào file muốn view History -> chọn View History để xem các version

Câu 5: Trình bày các khái niệm của NAnt Nêu cách build dự án bằng NAnt

Câu 6: Trình bày các thành phần của NAnt Build Script

Câu 7: Trình bày các tác vụ cơ bản của NAnt

Câu 8: Trình bày các khái niệm của MSBuild Nêu cách build dự án bằng

//Bạn nào biết viết thêm giùm mình

Câu 9: Trình bày các thành phần của MSBuild Build Script

1) Properties: là khái niệm gồm 1 cặp khóa và giá trị xen giữa

//Còn nhiều bạn nào viết thêm giùm mình

2) Items: là thẻ định ra các phần kèm theo khi build

Trang 12

a Thẻ ItemGroup: nhóm nhiều thẻ Item lại với nhau

b Thành phần của Item:

 Type: xác định kiểu của tập tin

 Include: dưa ra đường dẫn tập tin

 Exclude: liệt kê những gì ko muốn kèm theo khi build

 Condition: các yêu cầu đưa ra khi build

3) Targets: được xe như là 1 thùng chứa các Task sẽ được thực thi

a Thuộc tính Name: thuộc tính bắt buộc Thuộc tính này sẽ cần đến khi ta gọi

1 Target thực thi

b Một số thuộc tính khác: Inputs, Outputs, DependsOnTargets, Condition

c Predefined Target: là những target đã được định nghĩa sẵn và chúng ta chỉ

sử dụng chúng

d DefaultTargets: target được chỉ định sẽ được build đầu tiên Nếu ko có thì target đầu tiên sẽ được thực thi

4) Tasks: là 1 đoạn code, 1 lớp để thực thi 1 hành động nào đó khi build chương

trình, nó kế thừa các phương thức do MSBuild cung cấp

5) MSBuild Logging: nhật kí ghi lại trong quá trình Build

MSBuild Logger: chương trình cho phép ghi nhận lại các sự kiện, các thông điệp, các lỗi xảy ra hay các cảnh báo xảy ra trong quá trình build

6) MSBuild Batching: MSBuild có khả năng chia tập hợp các items thành các mục

khác nhau dựa trên các item metadata – gọi là các batch, và thực hiện các task hay target cho mỗi batch

a Task batching: cho phép bạn làm đơn giản file project của bạn bằng cách chia tập hợp các item thành các batches và truyền mỗi batch đó vào task một các riêng biệt

b Target batching: Msbuild kiểm tra các input và output của target trước khi thực hiện target đó

Câu 10: Trình bày các tác vụ cơ bản của MSBuild (cùng các tham số)

1) Copy: thực hiện copy các file vào 1 thư mục

 SourceFiles: các file cần copy (nguồn)

 DestinationFolder: thư mục đích

 FilesCopied: tập chứa các file copy thành công

Ngày đăng: 22/04/2014, 14:51

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w