42
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG --------------- BÁO CÁO BTL KỸ THUẬT PHẦN MỀM ĐỀ TÀI : Các kỹ thuật bảo trì phần mềm Giảng viên hướng dẫn: Cô Vũ Thị Hương Giang Nhóm sinh viên thực hiện: Nguyễn Hoàng Linh 20081536 CNPM-K53 Đoàn Thành Lâm 20081482 CNPM-K53 Phạm Văn Hùng 20081237 CNPM-K53 Nguyễn Hữu Vụ 20083211 CNPM-K53 Hà Nội 10/2011

Các kỹ thuật bảo trì phần mềm

Embed Size (px)

Citation preview

Page 1: Các kỹ thuật bảo trì phần mềm

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

---------------

BÁO CÁO BTL KỸ THUẬT PHẦN MỀMĐỀ TÀI:

Các kỹ thuật bảo trì phần mềm

Giảng viên hướng dẫn: Cô Vũ Thị Hương Giang

Nhóm sinh viên thực hiện:

Nguyễn Hoàng Linh 20081536 CNPM-K53

Đoàn Thành Lâm 20081482 CNPM-K53

Phạm Văn Hùng 20081237 CNPM-K53

Nguyễn Hữu Vụ 20083211 CNPM-K53

Hà Nội 10/2011

Page 2: Các kỹ thuật bảo trì phần mềm

M c l c:ụ ụLỜI MỞ ĐẦU...............................................................................................................................................2

I.KHÁI NIỆM, Ý NGHĨA VÀ CÁC HÌNH THÁI BẢO TRÌ PHẦN MỀM:........................................3

1.Định nghĩa bảo trì:................................................................................................................................3

2.Ý nghĩa của quá trình bảo trì phần mềm:..............................................................................................3

3.Các hình thái của bảo trì:Bảo trì để:.....................................................................................................3

a.Bảo trì để tu sửa:..............................................................................................................................4

b.Bảo trì để thích hợp:.........................................................................................................................4

c.Bảo trì để cải tiến:............................................................................................................................4

d.Bảo trì để phòng ngừa:.....................................................................................................................5

II.TRÌNH TỰ NGHIỆP VỤ BẢO TRÌ:.....................................................................................................6

1.Hiểu phần mềm đã có:..........................................................................................................................6

2.Tu sửa phần mềm đã có:.......................................................................................................................6

3.Phát triển phần mềm mới:.....................................................................................................................7

4. Kiểm chứng tính nhất quán bằng kiểm thử kết hợp:............................................................................7

5. Kiểm tra khi hoàn thành bảo trì:..........................................................................................................7

6. Lập biểu quản lý bảo trì:......................................................................................................................7

III.NHỮNG VẤN ĐỀ TRONG BẢO TRÌ HIỆN NAY:...........................................................................7

IV.CÁC MÔ HÌNH VÀ KỸ THUẬT BẢO TRÌ PHẦN MỀM:..............................................................8

1.Các mô hình bảo trì phần mềm:............................................................................................................8

a.Mô hình Quick-Fix:..........................................................................................................................8

b.Mô hình lặp nâng cao :.....................................................................................................................9

c.Mô hình hướng tái sử dụng:............................................................................................................10

d.Mô hình của Boehm:.......................................................................................................................11

Page 3: Các kỹ thuật bảo trì phần mềm

2. Kĩ thuật đảo ngược (Reverse Engineering):.......................................................................................12

V.CÁC CÔNG CỤ BẢO TRÌ PHẦN MỀM:...........................................................................................16

1.Khái niệm:.........................................................................................................................................16

2. Tiêu chuẩn lựa chọn công cụ...........................................................................................................16

3. Phân loại công cụ:............................................................................................................................18

4.Những sản phẩm thương mại:.........................................................................................................19

VI.CÁC KỊCH BẢN BẢO TRÌ TRONG QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM:......................20

1.Phát triển lặp đi lặp lại.....................................................................................................................20

a.Rational Unified Process (RUP)...................................................................................................20

b.Áp dụng RUP trong Công ty railconsult (tư vấn đường sắt ) Hà Lan......................................21

c.Áp dụng RUP trong Công ty Micron Facibilities Is Team( FIST)............................................22

2.Vấn đề bảo trì của Mozilla firefox.Bảo trì mã nguồn mở..............................................................22

VII.ỨNG DỤNG CỦA BẢO TRÌ CHO WEBSITE SPIP:.....................................................................23

1. Giới thiệu về SPIP.............................................................................................................................23

2. Vấn đề bảo trì cho một website SPIP.................................................................................................26

VIII.KẾT LUẬN:.......................................................................................................................................27

IX.TÀI LIỆU THAM KHẢO:..................................................................................................................28

X.PHÂN CHIA CÔNG VIỆC:..................................................................................................................29

Page 4: Các kỹ thuật bảo trì phần mềm

LỜI MỞ ĐẦUNhư chúng ta đã biết, bảo trì phần mềm đóng vai trò vô cùng quan trọng trong vòng

đời của một sản phẩm phần mềm. Người ta đã ước tính rằng có hơn 100 tỉ dòng lệnh trong các sản phẩm phần mềm trên toàn thế giới. Tuy nhiên, có đến 80% trong số đó không được cấu trúc hoặc cấu trúc chưa tốt và bảo trì phần mềm có thể giảm thiểu tối đa những thiếu sót này. Tài liệu này sẽ phân tích bản chất của quá trình bảo trì phần mềm ,những vấn đề trong bảo trì hiện nay, và ứng dụng bảo trì vào website.

I.KHÁI NIỆM, Ý NGHĨA VÀ CÁC HÌNH THÁI BẢO TRÌ PHẦN MỀM:

1.Định nghĩa bảo trì: Bảo trì là công việc tu sửa , thay đổi phần mềm đã được phát triển (chươngtrình , dữ liệu , JCL, các loại tư liệu đặc tả, . . .) theo những lý do nào đó.

2.Ý nghĩa của quá trình bảo trì phần mềm:

Cũng như tuổi thọ phần mềm, ngày càng khó khăn để giúp phần mềm hoạt ổn định và hoạt động tốt mà không cần bảo trì. Những câu chuyện sau sẽ minh họa cho ý nghĩa quan trọng của bảo trì phần mềm trong vòng đời của sản phẩm phần mềm.

a.Phí tìm vật nuôi thất lạc tại Torronto là 700.000$“Thành phố Torronto mất gần 700.000$ trong năm 2000 cho phí vật nuôi vì hơn 1 nửa chủ chó mèo không trả tiền hóa đơn ( do hệ thống tính toán hóa đơn bị hỏng). Đội ngũ nhân viên có khả năng điều khiển hệ thống tính toán này đều bị đuổi việc. Chỉ có duy nhất một nhân viên có thể hiểu rõ hệ thống để debug khi hệ thống xảy ra lỗi. Nhân viên này bị đuổi do tinh giảm biên chế và không còn ai có khả năng xử lí khi hệ thống gặp vấn đề.”

b.Nước Anh và sự cố Y2K: 50 tỉ $“Theo tờ Associated Press today, Robin Guenier, người đứng đầu UK’s TaskForce 2000, ước tính quá trình xử lí sự cố Y2K đã tiêu tốn của nước Anh 50 tỉ $ đồng thời cần tới 300.000 người để giải quyết. Thật trùng hợp, con số này xấp xỉ số lượng các giáo sư về máy tính ở Anh.”

Câu chuyện thứ nhất ám chỉ tầm quan trọng của bảo trì khắc phục. Theo thống kê, có hơn 100 tỉ dòng lệnh trên toàn thế giới và 80% có cấu trúc không tốt, chắp vá và tài liệu đi kèm thiếu hiệu quả. Các lỗi và khuyết điểm thiết kế cần phải sửa lại cho đúng. Bên

Page 5: Các kỹ thuật bảo trì phần mềm

cạnh đó, câu chuyện thứ hai là một ví dụ về bảo trì thích nghi đối với môi trường Y2K. Hệ thống cần thích nghi với thay đổi môi trường và yêu cầu người dùng.

Nhiều nghiên cứu đã đánh giá chí phí cho bảo trì phần mềm so với toàn bộ chi phí tạo ra sản phẩm mới. Toàn bộ chi phí để bảo trì chiếm ít nhất 50% tổng chi phí vòng đời sản phẩm. Phần công sức bỏ ra cho bảo trì phần mềm được phân phối cho mỗi loại bảo trì. Bảo trì khắc phục chiếm khoảng 20%, bảo trì thích nghi chiếm dưới 25%. Bảo trì hoàn thiện chiếm tới 50% và chỉ 5% dành cho bảo trì phòng ngừa.

3.Các hình thái của bảo trì:Bảo trì để:-Tu chỉnh.

-Thích hợp.

-Cải tiến.

-Phòng ngừa.

a.Bảo trì để tu sửa: -Là bảo trì khắc phục những khiếm khuyết có trong phần mềm.-Một số nguyên nhân điển hình

o Kỹ sư phần mềm và khách hiểu nhầm nhau.o Lỗi tiềm ẩn của phần mềm do sơ ý của lập trình hoặc khi kiểm thử chưa bao quát

hết.o Vấn đề tính năng của phần mềm : không đáp ứng được yêu cầu về bộ nhớ , tệp , . .

. Thiết kế sai , biên tập sai. . .o Thiếu chuẩn hóa trong phát triển phần mềm (trước đó).

-Những lưu ý:

o Mức trừu tượng.

o Tính đầy đủ.

o Tính tương tác.

o Tính định hướng.

b.Bảo trì để thích hợp:-Còn gọi là tái kỹ nghệ (re-engineering).

Page 6: Các kỹ thuật bảo trì phần mềm

-Là tu chỉnh phần mềm theo thay đổi của môi trường bên ngoài nhằm duy trì và quản lý phần mềm theo vòng đời của nó.

-Thay đổi phần mềm thích nghi với môi trường : công nghệ phần cứng , môi trường phần mềm.

-Những nguyên nhân chính:

o Thay đổi về phần cứng (ngoại vi, máy chủ,. . .)

o Thay đổi về phần mềm (môi trường): đổi OS.

o Thay đổi cấu trúc tệp hoặc mở rộng CSDL.

c.Bảo trì để cải tiến: -Là việc tu chỉnh hệ phần mềm theo các yêu cầu ngày càng hoàn thiện hơn , đầy đủ hơn , hợp lý hơn.

-Những nguyên nhân chính:

o Do muốn nâng cao hiệu suất nên thường hay cải tiến phương thức truy cập tệp.

o Mở rộng thêm chức năng mới cho hệ thống.

o Cải tiến quản lý kéo theo cải tiến tư liệu vận hành và trình tự công việc.

o Thay đổi người dùng hoặc thay đổi thao tác.

-Mục đích :

Đưa ra một thiết kế cùng chức năng nhưng có chất lượng cao hơn.

-Các bước thực hiện:

o Xây dựng lưu đồ phần mềm.

o Suy dẫn ra biểu thức Bun cho từng dãy xử lý.

o Biên dịch bảng chân lí.

o Tái cấu trúc phần mềm.

Page 7: Các kỹ thuật bảo trì phần mềm

d.Bảo trì để phòng ngừa: -Là công việc tu chỉnh chương trình có tính đến tương lai của phần mềm đó sẽ mở rộng và thay đổi như thế nào.

-Thực ra trong khi thiết kế phần mềm đã phải tính đến tính mở rộng của nó , nên thực tế ít khi ta gặp bảo trì phòng ngừa nếu như phần mềm được thiết kế tốt.

-Mục đích : sửa đổi để thích hợp với yêu cầu thay đổi sẽ có của người dùng.

-Thực hiện những thay đổi trên thiết kế không tường minh.

-Hiểu hoạt động bên trong chương trình.

-Thiết kế / lập trình lại.

-Sử dụng công cụ CASE

II.TRÌNH TỰ NGHIỆP VỤ BẢO TRÌ:-Quy trình bảo trì là gì?

Đó là quá trình trong vòng đời của phần mềm , cũng tuân theo các pha phân tích , thiết kế, phát triển và kiểm thử từ khi phát sinh vấn đề cho đến khi giải quyết xong.

-Thao tác bảo trì: Gồm 2 loại:

o Tu chỉnh cái đã có (loại1).

o Thêm cái mới (loại2).

-Sơ đồ bảo trì:

Page 8: Các kỹ thuật bảo trì phần mềm

1.Hiểu phần mềm đã có:-Theo tài liệu nắm chắc các chức năng.

-Theo tài liệu chi tiết hãy nắm vững đặc tả chi tiết , điều kiện kiểm thử, . . .

-Dò đọc chương trình nguồn , hiểu trình tự xử lý chi tiết của hệ thống.

Ba việc trên đều là công việc thực thi trên bàn.

2.Tu sửa phần m ề m đã có: -Bảo trì chương trình nguồn , tạo các môđun mới và dịch lại.

-Thực hiện kiểm thử unit và tu chỉnh những mục liên quan có trong tư liệu đặc tả.

-Chú ý theo sát tác động của môđun được sửa đến các thành phần khác trong hệ thống.

3.Phát triển phần mềm mới:-Khi thêm chức năng mới phải phát triển chương trình cho phù hợp với yêu cầu.

-Cần tiến hành từ thiết kế, lập trình , gỡ lỗi và kiểm thử unit.

-Phản ánh vào giao diện của phần mềm (thông báo, phiên bản, . . .).

4. Kiểm chứng tính nhất quán bằng kiểm thử k ế t hợp: -Đưa đơn vị (unit) đã được kiểm thử vào hoạt động trong hệ thống.

Page 9: Các kỹ thuật bảo trì phần mềm

-Điều chỉnh sự tương tích giữa các môđun.

-Dùng các dữ liệu trước đây khi kiểm thử để kiểm thử lại tính nhất quán.

-Chú ý hiệu ứng làn sóng trong chỉnh sửa.

5. Kiểm tra khi hoàn thành bảo trì:-Kiểm tra nội dung mô tả có trong tư liệu đặc tả.

-Cách ghi tư liệu có phù hợp với mô tả môi trường phần mềm mới hay không?

6. Lập biểu quản lý bảo trì:-Cần quản lý tình trạng bảo trì.

-Lập biểu quản lý tình trạng bảo trì:

o Ngày tháng , giờ.

o Nguyên nhân.

o Tóm tắt cách khắc phục.

o Chi tiết khắc phục , hiệu ứng làn sóng.

o Người làm bảo trì.

o Số công.

III.NHỮNG VẤN ĐỀ TRONG BẢO TRÌ HIỆN NAY:

Phương pháp cải tiến thao tác bảo trì:

-Sáng kiến trong quy trình phát triển phần mềm.o Chuẩn hóa mọi khâu trong phát triển phần mềm.o Người bảo trì chủ chốt tham gia vào giai đoạn phân tích và thiết kế.o Thiết kế để dễ bảo trì.

-Sáng kiến trong quy trình bảo trì phần mềm.o Sử dụng các công cụ hỗ trợ phát triển phần mềm.o Chuẩn hóa thao tác bảo trì và thiết bị môi trường bảo trì.o Lưu lại những thông tin lịch sử bảo trì.o Dự án nên cử một người chủ chốt của mình làm công việc bảo trì sau khi dự

án kết thúc giai đoạn phát triển.

Page 10: Các kỹ thuật bảo trì phần mềm

-Phát triển những kỹ thuật mới cho bảo trì.o Công cụ phần mềm hỗ trợ bảo trì.o Cơ sở dữ liệu cho bảo trì.o Quản lý tài liệu, quản lý dữ liệu, quản lý chương trình nguồn, quản lý dữ

liệu thử, quản lý sử bảo trì.

Trạm bảo trì tính năng cao trong hệ thống mạng lưới bảo trì với máy chủ thông minh.

IV.CÁC MÔ HÌNH VÀ KỸ THUẬT BẢO TRÌ PHẦN MỀM:

1.Các mô hình bảo trì phần mềm:

a.Mô hình Quick-Fix: là một giải pháp đặc biệt khi nào có lỗi thì cố gắng sửa nó nhanh nhất có thể, do ràng buộc về thời gian nên mô hình này không quá tập trung vào ảnh hưởng lâu dài của việc sửa lỗi.

Ưu điểm:

Vd nếu 1 hệ thống được phát triển và bảo trì từ 1 người, thì người đó hiểu được hệ thống đủ để quản hệ thống mà không cần đến các tài liệu chi tiết liên quan, có thể tự giải quyết được các vấn đề liên quan đến hệ thống, điều này tiết kiệm thời gian cũng như chi phí cho hệ thống

Page 11: Các kỹ thuật bảo trì phần mềm

b.Mô hình lặp nâng cao :Mô hình lặp nâng cao sẽ đánh giá những sự thay đổi trong suốt thời gian sống của phần mềm để thực hiện vòng lặp. Mô hình này thích hợp đối với cả phát triển lẫn bảo trì. Mô hình gồm 3 giai đoạn. Giai đoạn môt là phân tích hệ thống. Tiếp theo là phân loại các thay đổi đã đề xuất. Cuối cùng là thực hiện những thay đổi đó. Mô hình này sẽ không đạt hiệu quả cao khi các tài liệu đi kèm không thực sự đầy đủ. Mô hình này mặc định coi luôn tồn tại một bộ đầy đủ các tài liệu đi kèm của hệ thống.

c.Mô hình hướng tái sử dụng:Giả định là mô hình này có tồn tại các thành phần có thể sử dụng lại được.Các bước để tái sử dụng mô hình đựơc xác định như một phần của hệ thống cũ mà có tiềm năng tái sử dụng, có thể tuỳ chỉnh hệ thống cũ để thích nghi với những yêu cầu mới, và tích hợp các thành phần đó vào hệ thống mới

Mô hình này gồm 4 bước.

+xác định các phần trong hệ thống cũ và chỉ ra các phần có thể tái sử dụng.

+Hiểu rõ về các phần trong hệ thống.

+Phần chỉnh sửa các phần trong hệ thống cũ để phù hợp với các yêu cầu mới.

+Tích hợp các phần đã được chỉnh sửa vào trong hệ thống mới.

Page 12: Các kỹ thuật bảo trì phần mềm

d.Mô hình của Boehm:

-Mô hình Boelm dựa trên mô hình và các nguyên tắc kinh tế, quá trình bảo trì phần mềm được biểu thị như là một vòng tròn khép kín. Việc sử dụng mô hình kinh tế giúp chúng ta hiểu các vấn đề gặp phải và cải thiện chương trình khi bảo trì

-Trong giai đoạn này tập các thay đổi sẽ được quyết định bởi việc áp dụng các chiến lược cụ thể và việc ước tính chi phí, lợi nhuận đối với tập các thay đổi. các thay đổi chỉnh sửa

Page 13: Các kỹ thuật bảo trì phần mềm

này đều có chi phí dự trù cho riêng nó để quyết định phạm vi và loại tài nguyên mà phải chi tiêu vào.

2. Kĩ thuật đảo ngược (Reverse Engineering):a. giới thiệu

Cần phải hiểu về hệ thống phần mềm trược khi thực hiện bất kì thay đổi nào đối với hệ thống Quá trình nhận thức cần phải phân bổ thời gian một cách hợp lý cho việc thực hiện các thay đổi

Các lý do cho điều này bao gồm không chính xác, vượt quá thời gian dự định không có tài liệu, sự phức tạp của hệ thống, thiếu hiểu biết về lĩnh vực. một cách có thể làm giảm đi các khó khăn kể trên là trừu tượng hóa thông tin thích hợp, xác đáng từ mã nguồn về hệ thống vd như đặc tả, thiết kế.

Phương pháp Reverse Engineering là kĩ thuật có thể sử dụng làm điều này.các thay đổi được thực hiện nhờ sử dụng các phương pháp vd như forward engineering, restructuring, and reengineering

b. định nghĩa:

Trừu tượng hóa: là mô hình chứa đựng chi tiết về 1 đối tượng

Kỹ thuật chuyển tiếp: kĩ thuật phần mềm truyền thống thăm dò bắt đầu với phân tích yêu cầu phần mềm, phát triển đối với thực thi hệ thống

Reengineering: quá trình kiểm tra và thay đổi bằng cách chỉnh sửa hệ thống bằng kĩ thuật đảo ngược đầu , và sau đó là kỹ thuật chuyển tiếp.

Tái cấu trúc: việc chuyển đổi hệ thống từ kiểu này sang kiểu khác.

Kỹ thuật đảo ngược: quá trình phân tích hệ thống :

- Xác định các thành phần hệ thống và các mối quan hệ.- Tạo các kiểu của hệ thống trong các mẫu khác nhau hoặc ở mức độ trừu tượng cao

hơn.

c. trừu tượng:

Trừu tượng là việc chọn các tính năng quan trọng của hệ thống mà bỏ qua các tính năng không quan trọng .có 3 kiểu của trừu tượng có thể biểu diễn trong hệ thống: trừu tượng chức năng, trừu tượng dữ liệu, trừu tượng quá trình.

Page 14: Các kỹ thuật bảo trì phần mềm

d. mục đích và các mục tiêu của kỹ thuật đảo ngược:

Mục đích của kĩ thuật này là tạo thuận lợi thay đổi bằng cách cho phép hiểu được hệ thống phần mềm làm gì, làm thế nào cấu trúc của nó ra sao.

Các mục tiêu của mục đích này là phục hồi dữ liệu đã mất thuận tiên luân chuyển giữa các nền tảng khác nhau, phát triển và cung cấp tài liệu mới lấy ra các thành phần tái sử dụng, giảm các nỗ lực bảo trì phần mềm, xử lý các vấn đề phức tạp, phát hiện ra các ảnh hưởng ….

e. các mức độ của kĩ thuật đảo ngược:

Page 15: Các kỹ thuật bảo trì phần mềm

redocumentation:

Là tái tạo lại 1 biểu diễn tương đương trong một mức độ trừu tượng có liên quan .

Tạo các cách nhìn khác nhau về hệ thống để mà nâng cao khả năng hiểu biết. phát triển tài liệu hiện có. Tài liệu nên được tạo ra trong quá trình phát triển hệ thống và chỉnh sửa chúng mỗi khi hệ thống có thay đổi. tạo tài liệu cho chương trình được điều chỉnh mới.

design recovery:

Đòi việc xác nhận trích rút các trừu tượng mức độ cao hơn, có ý nghĩa mà không thể trực tiếp lấy được từ việc kiểm tra mã nguồn. Điều này có thể đạt được từ việc kết hợp mã nguồn, các tài liệu thiết kế tồn tại, kinh nghiệm cá nhân, sự hiểu biết về vấn đề, lĩnh vực ứng dụng. thiết kế được phục hồi có thể không cần thiết với bản thiết kế ban đầu có thể sau đó sử dụng cho phát triển hệ thống, hay nói cách khác là nền tảng cho việc chỉnh sửa hệ thống trong tương lai. Việc thiết kế này có thể được sử dụng để phát triển tương tự nhưng không đồng nhất các ứng dụng.

Vd: sau khi phục hồi thiết kế ứng dụng kiểm tra phát âm, nó có thể được sử dụng thiết kế các module kiểm tra phát âm gói xử lý các từ mới.

specification recovery

Page 16: Các kỹ thuật bảo trì phần mềm

Vd: khi thay đổi biểu mẫu ta có rất ít hoặc gần như không có thông tin về biểu mẫu ban đầu.

Vd: chuyển từ lập trình cấu trúc sang lập trình hướng đối tượng

Trong trường hợp này cách tiếp cận thích hợp là lấy các thông tin đặc tả ban đầu về hệ thống thông qua specification recovery. Điều này liên quan đến việc xác định, trừu tượng hóa, biểu diễn các mức trừu tượng cao hơn, có ý nghĩa, khó có thể thu được từ bằng cách kiểm tra thiết kế hoặc mã nguồn của hệ thống phần mềm. trong suốt quá trình này việc đặc tả này có thể lấy trực tiếp mã nguồn hoặc từ bản thiết kế đang tồn tại. các thông tin lấy được như: tài liệu về thiết kế, hệ thống, kinh nghiệm trước các vấn đề, các lĩnh vực ứng dụng tạo điều kiện thuận lợi cho quá trình phục hồi.

Các đặc tả về hệ thống có thể được sử dụng để hỗ trợ bảo trì phần mềm mà không nhất thiết truy nhập vào mã nguồn

Các đặc tả này hỗ trợ cho hiểu biết về kiến thức để tác động đến việc thay đổi hệ thống.

Nếu các đặc tả này mà phù hợp có thể sử dụng để phát triển, bảo trì các hệ thống tương tự.việc sử dụng các đặc tả đôi lúc có lợi hơn là việc sử dụng mã nguồn tương tự.

f.kỹ thuật hỗ trợ

Hiểu biết được rút ra thông qua phương pháp đảo ngược có thể hỗ trợ việc thay đổi thông qua các kĩ thuật như forward engineering, restructuring, and reengineering

forward engineering

Đối lập với kĩ thuật reserve engineering , nó ám chỉ cách tiếp cận phát triển truyền thống thực hiện từ yêu cầu đến thực thi chi tiết thông qua thiết kế hệ thống .

Restructuring

Kĩ thuật này dùng để chuyển đổi từ dạng này sang dạng khác ở mức độ trừu tượng có liên quan mà bỏ qua bất kì sự thay đổi chức năng trong nó, điều này tạo ra định dạng mà ta mong muốn

Ngày nay các chương trình ngày càng khó hiểu hơn và phức tạp hơn để có thể kiểm soát được điều này mã nguồn cần phải cấu trúc lại. Restructuring là 1 loại của bảo trì phòng ngừa làm tăng trạng thái vật lý của hệ thống đích với cấu tạo phù hợp với tiêu chuẩn

Reengineering

Page 17: Các kỹ thuật bảo trì phần mềm

Là quá trình kiểm tra, thay đổi hệ thống đích để thực thi các thay đổi mong muốn.

Phương pháp này có 2 bước

- Áp dụng đối với hệ thống đích để hiểu và biểu diễn hệ thống ở dạng mới- Kĩ thuật Forward engineering được áp dụng thực thi, tích hợp bất kì yêu cầu mới

nào do đó có thể đưa ra , nâng cấp hệ thống mới.g. Lợi ích Lợi ích từ mục đích trên được ứng dụng trong bảo trì phần mềm và đảm bảo chất lượng phần mềm Kết quả khi ứng dụng kĩ thuật đảo ngược này hữu dụng đối với ứng dụng và tái sử dụng phần mềm từ những bản thiết kế và mã nguồn đã có trước đó.

Việc sử dụng các công cụ kĩ thuật đảo ngược cung cấp tài liệu cho việc hiểu hệ thống. thời gian dành cho hiểu được tổng thể phần mềm là rất lớn, công cụ kĩ thuật đảo ngược sẽ giới hạn phạn vi và từ đó ta có thể giảm được giá thành cho việc bảo trì phần mềm.Vd: nghiên cứu phương pháp reengineering trong bảo trì phần mềm chỉ ra rằng phương pháp này có thể giảm độ phức tạp nhưng lại tăng tính bảo trì. Kĩ thuật Reverse Engineering mang lại lợi ích cho các hoạt đôngh bảo trì phần mềm theo các cách sau:+ Chỉnh sửa chính xác: Dễ dàng phát hiện dễ dàng các thiếu sót trong các component và các lỗi trong phần mềm.+ Chỉnh sửa cho phù hợp:Việc sử dụng kĩ thuật trên giảm thời gian để dành cho tìm hiều về hệ thống, các thành phần chính trong hệ thống mối quan hệ giữa chúng, do đó có thể thấy được nơi các yêu cầu mới được đặt cho thích hợp và chúng quan hệ với các thành phần đã có như thế nào.việc đúc rút đặc tả và thông tin thiết kết có thể được sử dụng trong suốt quá trình phát triển hệ thống hoặc phát triển hệ thống cho sản phẩm khác

V.CÁC CÔNG CỤ BẢO TRÌ PHẦN MỀM:1.Khái niệm:

Công cụ bảo trì phần mềm là 1 sản phẩm trợ giúp cho người bảo trì phầm mềm trong việc thực hiện nhiệm vụ . Việc sử dụng các công cụ cho việc bảo trì phần mềm làm cho các nhiệm vụ trở nên đơn giản hơn , đồng thời làm tăng hiệu quả và năng suất.

2. Tiêu chuẩn lựa chọn công cụ.a.Khả năng đáp ứng:

Đây là một trong những tiêu chí quan trọng nhất để xem xét khi đánh giá công cụ. Các công cụ phải có phải có khả năng hỗ trợ nhiệm vụ được thực hiện. Khi một kĩ

Page 18: Các kỹ thuật bảo trì phần mềm

thuật hay phương pháp là để hỗ trợ một công cụ, nó là cần thiết để đảm bảo rằng nó hoạt động mà không cần công cụ có nghĩa là bằng tay.

b.Tính năng:

Sau khicóquyếtđịnhrằng kỹ thuậthay phương phápcóthểđược lợi từhỗ trợtự động, các tính năngdựkiếncủa bất kì công cụ có khả năng nàocũng cần phảiđược xem xét.Như một ví dụ đơngiản, một word processor hữu íchsẽ cần phảicung cấpkhôngchỉ là mộteditor, ngoài ra cần có những tính năngkhác nhưkiểm tra chính tả, bản vẽ, từ điển và các phương tiệntìmkiếm.Tương tự như vậy trong việc bảo trì, các tính năng cụ thể có thểđược yêu cầucủamột công cụ.Tầm quan trọng của các tính năng nàynênđược đánh giávà lựa chọncông cụcho phù hợp.

c.Chi phí và lợi ích:

Chi phí giới thiệu một công cụ cần phải được cần nhắc so với lợi ích của nó.Những lợi ích mà công cụ này mang lại cần phải được đánh giá về các chỉ số như chất lượng sản phẩm, năng suất, tính đáp ứng, giảm chi phí, và mức độ chồng chéo lên nhau.

d.Nền tảng:

Nền tảng liên quan đến phần cứng cụ thể và môi trường phần mềm mà công cụ này chạy trên đó.Các ví dụ bao gồm: máy tính lớn của IBM và các nền tảng nhỏ như MVS và AS/400AS tương ứng, dựa trên hệ điều hành máy tính chẳng hạn như hệ điều hành Macintosh, MS-DOS và Windowsvà các biến thể Linux và UNIX. Nền tảng mà công cụ được trang bị cần phải được xem xét.

e.Ngôn ngữ chương trình:

Là ngôn ngữđược đề cập đếnsẽsử dụng để viếtmã nguồn.Ví dụ như Java, Ada,C, C+ +, Cobol, Fortran, Modula-2, Lisp vàProlog. Bên cạnh tính an toàn,điều quan trọng mà một công cụ bảo trì cần đạt được làhỗ trợ một ngôn ngữ theo một chuẩn công nghiệp.Điều này đặc biệt quantrọngtrong các tình huốngchuyển đổiđến mộtmô hình mới.

f.Tính dễ sử dụng:

Dễ dàng cho người dùng có thể nắm bắt được với công cụ xác định, đến mức độ nào đó, sự chấp nhận của nó.Thông thường, một công cụ có một "feel" tương tự như các công cụ mà người dùng đã quen thuộc với xu hướng được chấp nhận dễ

Page 19: Các kỹ thuật bảo trì phần mềm

dàng hơn.Ví dụ, giới thiệu một công cụ dòng lệnh điều khiển vào trong một môi trường menu-drivensẽ gây ra nhiều vấn đề hơn cho người sử dụng hơn một công cụ menu-driven.

g.Kiến trúc mở:

Là khả năng để tích hợp một công cụ với những công cụ khác từ các nhà cung cấp khác nhau đóng một vai trò quan trọng trong sự mở rộng và tính linh hoạt của nó. Điều này đặc biệt quan trọng trong các tình huống nơi mà các công cụ mong muốn cần phải chạy kết hợp với các công cụ hiện có. Một lý do khác để lựa chọn một công cụ với một kiến trúc mở trong vấn đề bảo trì rất phức tạp là một sản phẩm duy nhất từ một nhà cung cấp có thể không có khả năng thực hiện tất cả các nhiệm vụ cần thiết. Ví dụ, nhiều công cụ CASE cung cấp hỗ trợ cho việc phân tích mã, nhưng thiếu khả năng chiết xuất các quy tắc kinh doanh từ mã. Trong trường hợp này cần thiết phải mua các công cụ bổ sung từ các nhà cung cấp khác để bổ sung những cái hiện có và điều quan trọng là nó có thể được tích hợp. Trong trường hợp có thể chúng ta nên tránh các công cụ độc quyền.

h.Sự ổn định của nhà cung cấp:

Điều quan trọng là xem xét danh tiếng của các nhà cung cấp trước khi chấp nhận một công cụ. Do tính cạnh tranh cao trong ngành công nghiệp máy tính, một công ty mà không thể theo kịp sự cạnh tranh này thì có thể sẽ biến mất khỏi thị trường và người sử dụng không được sự hỗ trợ nữa. Như vậy, điều này là cần thiết để nhìn vào nền tảng của bất kỳ công ty được coi là một nhà cung cấp của một công cụ. Nếu công cụ này là một trong nhữngkiến trúc mở, yếu tố này có thể không quan trọng như vậy.

3. Phân loại công cụ:

Về nguyên tắc, ta có thể phân biệt giữa các lớp của các công cụ bảo trì phần mềm, thường là dựa trên các nhiệm vụ mà công cụ hỗ trợ. Ví dụ, các công cụ trực quan hỗ trợ hiểu chương trình.Tuy nhiên, trong thực tế thì khó có thể phân biệt được, chủ yếu là do tính chất đa dạng và mối liên hệ giữa các hoạt động bảo trì phần mềm.Ví dụ, một số trình gỡ rối sử dụng để sửa lỗichương trình này cũng cung cấp phương tiện trực quan.

Trong phần này, một nỗ lực được thực hiện để phân loại các công cụ bảo trì dựa trên các nhiệm vụ cụ thể mà công cụ hỗ trợ. Trong trường hợp một công cụ hỗ trợ nhiều hơn một nhiệm vụ, điều này sẽ được chỉ ra trong cuộc thảo luận. Các loại nhiệm vụ mà công cụ này sẽ được thảo luận là:- Chương trình hiểu biết và kỹ thuật đảo ngược (Program understanding and reverse engineering)- Kiểm tra (Testing)

Page 20: Các kỹ thuật bảo trì phần mềm

- Cấu hình quản lý (Configuration management)- Tài liệu và đo lường (Documentation and measurement)

4.Những sản phẩm thương mại: Đó là : Bugzilla của Mozilla Foundation . Những công cụ theo dõi lỗi như : Test Director của  Mercury Interactive , Silk Radar của Segue Software, SQA Manager của Rational software, và QA director của Compuware . Ngoài ra còn có ProTeus III Expert CMMS của  Eagle Technology, Inc là một gói phần mềm bảo trì . Dưới đây chúng em xin giới thiệu 3 công cụ khá mạnh là : Bugzilla , HP Quality Center , IBM Rational Quality Manager , Micro Focus SilkPerformer

a.Bugzilla:

- Chương trình được hàng nghìn công ty sử dụng giống như một “ hệ thống dò tìm khuyết điểm “ . Chương trình theo dõi những lỗi phát sinh trong một sản phẩm phần mềm cho phép cá nhân hoặc một nhóm người phát triển có thể liên lạc và giải quyết các vấn đề . Bugzilla cho phép các kỹ sư phần mềm quản lý việc đảm bảo chất lượng sản phẩm , tìm lỗi , và đưa ra các đường dẫn khắc phục lỗi để xem xét lại .Chương trình này miễn phí về mặt kỹ thuật , mặc dù họ có tính phí cho các vấn đề hỗ trợ rộng hơn . Bugzilla là một chương trình an toàn có khả năng quét và sửa chữa việc không nhất quán cơ sở dữ liệu.

b. HP Quality Center :

- Ứng dụng này dựa trên nền Web giúp cho các kỹ sư phần mềm đưa các chương trình của họ thông qua các ringer bằng việc kiểm tra chúng cùng với các lỗi khác nhau . HP Quality Center có khả năng lập kế hoạch và chiến lược test , phân tích kết quả và quản lý các vấn đề và khuyết điểm của phần mềm . Có 3 phiên bản của chương trình , nổi bật nhất trong cả 3 phiên bản đó là khả năng giải quyết hàng trăm ứng dụng cùng một lúc với một đội ngũ quản lý được có mặt trên toàn thế giới.

c. IBM Rational Quality Manager:

- IBM Rational Quality Manager cũng giống như HP Quality Center ở chỗ nó thực hiện việc kiểm tra bằng cách sử dụng một ứng dụng dựa trên nền tảng Internet . Chương trình cho phép người dùng tủy chỉnh những thông tin được trình bày thông qua bảng điều khiển tùy chỉnh , nó còn cho phép người dùng lên lịch cho các bài test phần mềm cùng với rất nhiều các thành viên của họ . Những bài test này có thể được tự động hoặc được làm 1 cách thủ công nếu có một phân vùng cụ thể của phần mềm nơi mà các kỹ sư mong muốn được tiếp cận gần hơn . Việc mô tả chương trình sẽ chỉ ra nó sẽ đẩy nhanh tiến độ của dự án và đảm bảo rằng các ứng dụng đáp ứng được các mục tiêu của công ty .

d. Micro Focus SilkPerformer:

Page 21: Các kỹ thuật bảo trì phần mềm

- Micro Focus SilkPerformer là một chương trình có thể được sử dụng bởi các công ty tầm cỡ doanh nghiệp để phát triển các ứng dụng phần mềm thông qua thử nghiệm rộng rãi. Các trang Micro Focus chỉ ra rằng chương trình có thể đẩy nhanh phân tích các vấn đề bằng các tìm chúng trong các chu trình phát triển một cách nhanh chóng . SilkPerformer hỗ trợ đầy đủ cho các ứng dụng Web 2.0 và chu trình test hiệu quả , đồng thời tạo ra các test . Chương trình thực hiện các bài test - có thể được thể xem trên nhiều môi trường trong khả năng để nhanh chóng xác định nếu có điều kiện nào đó gây ra hỏng hóc .

VI.CÁC KỊCH BẢN BẢO TRÌ TRONG QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM:1.Phát triển lặp đi lặp lại

Phát triển lặp lại là một phương pháp phát triển phần mềm mà quá trình xử lý được tách ra trong những phần lặp nhỏ. Một sự lặp lại được thực hiện cho mỗi đặc điểm mới được thêm vào sản phẩm. Khi bắt đầu mỗi lần lặp, có sự gặp nhau giữa các bước được thực hiện trong suốt quá trnh lặp. Trong các lần gặp nhau này, người phát triển và khách hàng cần trao đổi các yêu cầu sử dụng, các bước kế hoạch đươc thực hiện, và ước lượng giá thành. Hình dưới cho thấy công việc lặp được thực hiện như thế nào trong giai đoạn bảo trì. Có những phương pháp dùng phương pháp lặp này. Hai phương pháp tốt nhất trong số này là Rational Unified Process (RUP) và Scrum.

a.Rational Unified Process (RUP).

Page 22: Các kỹ thuật bảo trì phần mềm

Với RUP, người thiết kế có thể làm giảm rủi ro một cách dễ dàng. Họ càng đăng nhập nhiều chương trình thì chi phí tránh được rủi ro càng tăng. Vì thế nó thật sự quan trọng trong việc giảm bớt rủi ro một cách dễ dàng. RUP cũng nhấn mạnh quy định cho những người sử dụng tài liệu về tầm quan trọng của việc thực hiện từng bước một chu kỳ đời sống như hình vẽ trên. Điều này sẽ đảm bảo cho người sử dụng không làm mất đi các tính năng hay mục đích ban đầu của nhà sản xuất. Một vai trò quan trọng khác của RUP là tạo ra một hệ thống có thể thích nghi với sự thay đổi. Khi một yêu cầu của người sử dụng thay đổi hay có bất cứ vấn đề gì thì chương trình sẽ tạo ra sự thích nghi một cách dễ dàng . Phương pháp RUP cũng yêu cầu xây dựng với các bộ phận cấu thành. Tạo lập các bộ phận là các hệ thống cơ bản giúp gia tăng sự tái sử dụng và làm cho việc sửa chữa các lỗi máy tính dễ dàng hơn. Các bộ phận của hệ thống cơ bản sẽ được nói nhiều hơn ở phía dưới. điều quan trọng nhất của RUP là các nhóm có thể làm việc với nhau để tạo ra một sản phẩm có chất lượng.Với RUP, tính lặp lại sớm hơn được quan tâm hơn đối với nhu cầu, phân tích, và thiết kế, trong khi đó việc lặp lại muộn hơn được tập trung nhiều hơn ở giai đoạn hoàn thiện và kiểm tra. RUP sẽ chia quá trnh khai triển của mình ra làm 4 giai đoạn mà trong mỗi giai đoạn có thể có một hay nhiều sự lắp lại. • Giai đoạn thứ nhất là giai đoạn mở đầu. Nhà thiết kế đưa ra các yêu cầu của

người sử dụng và tính toán làm giảm càng nhiều rủi ro càng tốt, sau đó nhận tiền đặt cọc từ khách hang rồi tính toán sao cho có thể chấp nhận yêu cầu của họ trước khi bắt đầu dự án.

• Giai đoạn thứ 2 là giai đoạn chuẩn bị cho dự án, bao gồm triển khai thiết kế, bổ

sung hoàn thiện, kiểm tra bản thảo. • Giai đoạn thứ 3 là giai đoạn xây dựng bản thảo từ được triển khai từ bước

đầu tiên trên thực tế. Đây là bước quan trọng để hoàn thành sản phẩm.• Giai đoạn cuối cùng là chuyển đổi. Các nhà thiết kế cần chắc chắn rằng sản

phẩm của họ hoàn toàn đáp ứng nhu cầu của khách hàng và nó phải được kiểm tra trước khi giao cho khách hàng sử dụng. Bởi vì RUP có thể tạo ra sự thích nghi tốt với các thay đổi nên chúng làm cho giai đoạn bảo quản dễ dàng hơn cũng như thêm các đặc điểm nổi bật nói một cách dễ dàng để thích nghi với sự thay đôi. Các thành phần dựa vào bản chất của RUP cho phép hệ thống được sửa lỗi và bị (được ) thay đổi một phần nào đó.

b.Áp dụng RUP trong Công ty railconsult (tư vấn đường sắt ) Hà Lan

Có 3 phương pháp cho sự phát triển lặp lại nhưng có lẽ RUP là phương pháp phát triển phần mềm được nhiều người biết đến nhất. Chúng ta có một là bài học thú vị từ công ty tư vấn đường sắt Hà lan. Họ thường sử dụng model thác nước để tạo ra sản phẩm. khi dùng phần mềm này họ không có dữ liệu nào về hệ thống làm việc vì thế bất kỳ ai tạo ra một công cụ nào từ hệ thống đều phải bảo trì và trả lời các câu hỏi của hệ thống đặt ra. Công ty phải có một đội ngũ bảo trì và

Page 23: Các kỹ thuật bảo trì phần mềm

thiết kế riêng cho mình.Vấn đề đặt ra ở đây là khi một hệ thống thay đổi kéo theo sự thay đổi cả mã nguồn mà không ai có thể biết truớc nó sẽ thay đổi ra sao.Sau khi chuyển sang RUP, công ty đă có những sự thay đổi rất nhiều trong cả phương pháp và các sản phẩm. Một trong những tiến bộ vượt bậc hơn cả là việc dung phương pháp lặp lại. Đó là họ thông qua sản phẩm tới khách hàng trong suốt quá trnh phát triển sản phẩm thay vì chỉ tập trung vào trình cuối cùng như trước đây.

Điều này làm cho dễ dàng xác định sản phẩm cuối cùng sẽ gần với nhu cầu của khách hàng hơn. Nó cũng giúp cho công ty tiết kiệm thới gian và tiền bạc hơn khi mà sản phẩm chỉ được gửi đi sau khi nó đă hoàn thành và thoả măn được nhu cầu của khách hàng. Một lợi ích nữa đó là khi họ làm thay đổi hệ thống họ sẽ làm thay đổi model và có thể thêm vào mă nguồn. Bản chất của phương pháp lặp lại đó là đăng nhập các thành viên vào trong nhóm một cách dế dàng vì có rất nhiều tài liệu đào tạo một cá nhân. Thêm vào đó một người có thể học các kiến thức về hệ thống bằng cách thực hiện từng bước quá trình lặp lại. Điều này cũng giúp cho công ty tiết kiệm thới gian và tiền bạc vì họ có thể gửi các chương trnh đạo tạo tới các cá nhân. RUP cũng cho phép các nhà thiết kế và các khách hàng cũng như các nhà trung gian giao tiếp dễ dàng với nhau hơn. Tóm lại RUP làm giảm chi phí, tiết kiệm thời gian, tăng sự linh động, năng suất và chất lượng của công ty.

c.Áp dụng RUP trong Công ty Micron Facibilities Is Team( FIST)

Một công ty khác mà sử dụng Rup là FIST. Công ty này đă dùng Rup vào việc đăng nhập vào hệ thống Capability manulity model (CMM) cấp 5. RUP được dùng vào việc giao tiếp thông thường với khách hàng và thiết lập các cách thức dữ liệu về thiết kế bao gồm các tài liệu cho các khách hàng là doanh nhân hoặc các tài liệu về phân tích thiết kế. Họ thực hiện trong 6 tuần một chu kỳ lặp lại trước khi đưa sản phẩm tới khách hàng. Tuần đầu tiên họ tính toán chi phí vàlên kế hoạnh, tuần thứ 2 họ thiết kế, tới tuần thứ 3 và 4 họ phát triển các thành phần cấu thành. Tuần thứ 5 họ hoàn thiện và kiểm tra. Cuối cùng tuần 6 họ đưa sản phẩm tới người tiêu dùng. Và sau đó họ chuẩn bị cho các chu kỳ tiếp theo.

2.Vấn đề bảo trì của Mozilla firefox.Bảo trì mã nguồn mở

Vào 22 tháng 1 năm 1998 tập đoàn truyền thông Netscape tạo ra một cuộcrung chuyển chưa từng thấy khi họ công bố kế hoạch tung mă nguồn mở của của trình duyệt web Communicator 5.0 .Tại thời điểm đó không có “phần mềm đăng ký độ quyền nào lại đưa ra miễn phí”. Điều này dẫn tới sự phát triển sau này với tên Mozilla dưới sự điều khiển của tập đoàn Mozilla. Từ một cuộc khảo sát dự án đưa ra những nhận định bao gồm bảo trì phần mềm mă nguồn mở. Dự án này có một đội phát triển core trong đó bao gồm bảo trì cả hai nguồn mă do chính họ viết và quyết định những cái gì mà gợi ý mă đưa ra được chấp nhận. Vì Mozilla có một cơ sở mă nguồn với các modul mức cao,

Page 24: Các kỹ thuật bảo trì phần mềm

các modul chính như thư viện ảnh hay bộ phân tích XML,có một người thiết kế chung có thể cho là giỏi nhất để quyết “phải làm những gì với module vào và những gì không nên làm” (Hamerly [1999]). Một số công cụ có khả năng làm nhiệm vụ này. Một kỳ sát hạch các công cụ này để đưa ra một ý tưởng để tìm ra cái gì tiêu biểu trong một dự án bảo trì nguồn mở . Có 3 chương trnh chính được sử dụng bởi nhóm Mozilla đó là Bonsai, Tinderbox và Bgzilla . Bonsai hoạt động giống như một bộ kiểm soát hệ thống cho phép người phát triển kiểm tra các mă check in hay check out .Ngoài ra, nó kiểm tra liên tục các mă nền tảng. Nếu có bất cứ một lỗi lớn nào được tìm thấy , nhóm phát triển được thông báo và xa hơn nữa đó là check in được ngăn cấm cho đến khi lỗi đó đă được nhận dạng (Hamerly [1999]). Tinderbox hoạt động có giao diện giống Bonsai . Nó cho phép nhà phát triển nhìn thấy tât cả những gì đang diễn ra trong mă nguồn bằng cách chỉ ra người đă chỉnh sửa nhưng đoạn mă đó khi một phiên bản của một ứng dụng đặc biệt được phát hành.Công cụ thứ ba đó là Bugzilla giống như tên của nó , đây là một hệ thống theo dõi những thiếu sót được tạo ra khi sử dụng Mozilla. Trong khi nó có cuộc sống của riêng mình nghĩa là một dự án nguồn mở riêng rẽ.Nó vẫn được sử dụng trong việc bảo trì Mozilla. Nó cho phép thông báo các lỗi và bình luận trên đó. Ngoài ra, một người đặc biệt có thể sửa được lỗi, và những phần phụ thuộc cũng như những phần tương tác với những lỗi có thể được lưu trữ. Thông qua việc sử dụng những công cụ này , lỗi có thể được tìm thấy và đem ra thảo luận , vá lỗi cũng như chịu phụ thuộc vào quần chúng, những lỗi này được kết hợp để trở thành mă . Trạng thái hiện thời của mă nguồn có thể được thay đổi trước khi quyết định đưa ra phiên bản mới.

VII.ỨNG DỤNG CỦA BẢO TRÌ CHO WEBSITE SPIP:

1. Giới thiệu về SPIPa.Thông tin về SPIP

SPIP là một hệ thống phát hành trang web. Thay vì bạn phải soạn từng trang một bằng ngôn ngữ HTML rồi đem lên (upload) web thì SPIP sẽ giúp bạn làm những việc đó một cách dễ dàng hơn.

Page 25: Các kỹ thuật bảo trì phần mềm

SPIP là một nhu liệu thiết trí trên trương mục Internet của bạn. SPIP giúp tự động hóa một số công việc như: quản trị nhiều người sử dụng, trình bày bản văn mà không cần dùng HTML, thay đổi cấu trúc trang web dễ dàng, .... Bạn chỉ cần sử dụng web browser như Netscape, Internet Explorer, Mozilla, Opera, v.v... để sử dụng SPIP làm trang web, qua một giao diện sử dụng đơn giản.

Bên ngoài có nhiều hệ thống phát hành trang web với những đặc tính khác nhau. Một hệ thống được biết đến nhiều nhất là phpNuke. phpNuke áp đặt một cấu trúc nghiêm nhặt theo thể thức của một portal chứa đựng nhiều bài ngắn. Trong khi đó SPIP linh động hơn và nghiêng về việc thiết lập một trang web có cấu trúc của một nguyệt san, tập san, tức là có một số đề mục, đề mục phụ (và xuống sâu nữa nếu cần) và mỗi đề mục có những bài vở hay tin ngắn. Và mỗi bài này có thể có một diễn đàn để thảo luận tiếp đó.

b. Tại sao dùng SPIP ?

SPIP là một nhu liệu miễn phí phổ biến theo giấy phép GPL (General Public License). SPIP đòi hỏi về phương diện nhu liệu, cương liệu rất khiêm tốn. Có ngay cả một số máy chủ miễn phí cũng cung cấp SPIP (xem FAQ và tài liệu Hướng Dẫn Thiết Trí để biết thêm chi tiết).

SPIP được phổ biến miễn phí qua trang http://www.spip.net/spip-dev/

c. Lợi điểm của SPIP

Page 26: Các kỹ thuật bảo trì phần mềm

-  Quản trị trang web kiểu nguyệt san, tức là có nhiều bài vở, tin ngắn nằm theo các đề mục (hay đề mục phụ). Xem tài liệu Danh sách toàn bộ đặc điểm của SPIP để biết thêm chi tiết.

-  Quản trị các bài vở nộp vào, quản trị việc làm của Ban Biên Tập (gồm sắp xếp các đề mục, chấp thuận các bài vở nộp vào ...)

-  Giúp người webmaster và các tác giả, chủ bút, quản lý tránh được những chi li tẻ nhạt của vấn đề thực hiện trang web, cũng như không cần đòi hỏi kỹ thuật làm web dài dòng. Khâu thiết trí nhu liệu SPIP được thực hiện từng bước qua một giao diện đơn giản và khi thiết trí xong, bạn có thể thiết lập trang web và soạn bài vở ngay lập tức.

d. Những đặc điểm của SPIP

Cho chủ bút và quản lý

-  Một giao diện dễ sử dụng giúp tạo sự dễ dàng trong việc soạn bài, nộp bài, chấp thuận bài, phát hành bài vở. Ngoài ra trong khi soạn bài có sẵn một số ký hiệu tắt để giúp trình bày văn bản dễ dàng mà không cần phải biết các ký hiệu HTML.

Cho người webmaster

-  Khía cạnh đồ thị và di chuyển trong trang được ấn định bằng một bản mẫu HTML (hay còn gọi là trang chủ / master pages. Mỗi trang mẫu như vậy ấn định một diện mạo (thí dụ như diện mạo của trang chính, diện mạo của một trang đề mục và tóm tắt nội dung, diện mạo của trang chi tiết về bài vở, v.v...) Trang mẫu này dùng một số ký hiệu-giả HTML tương đối không rắc rối.

-  SPIP không giới hạn khía cạnh đồ thị và di chuyển của trang web. Bản mẫu HTML do người webmaster ấn định. Webmaster có thể kiểm soát một số phần của trang web dùng SPIP và kiểm soát phần còn lại bằng tay hoặc bằng các hệ thống phát hành trang web khác (nếu các hệ thống này cũng linh động như SPIP).

Cho khách viếng thăm

-  SPIP dùng một hệ thống cache để việc xem trang web lẹ hơn, tránh việc truy tìm database quá nhiều và bảo vệ cho database không bị nghẽn (việc này xảy ra rất thường cho các server quá tải). Và vì nhờ hệ thống cache cho nên trong trường hợp database bị quá tải, trang web vẫn còn xem được.

-  SPIP có sẵn cơ phận tìm kiếm (nếu webmaser chọn mở lên đặc điểm này) để tìm trong toàn bộ nội dung trang web.

Page 27: Các kỹ thuật bảo trì phần mềm

e. Hạn chế

Hiện nay, cái giá phải trả cho sự linh động của SPIP là người webmaster phải có một nỗ lực nhỏ để học cách soạn/sửa đổi trang mẫu HTML. Tuy những hệ thống như phpNuke cho phép bạn đổi màu dễ dàng, nhưng bạn chỉ làm được đến thế thôi. Trong khi đó với SPIP, tuy đòi hỏi webmaster phải nắm vững một số ký hiệu-giả HTML, khi nắm vững rồi thì người webmaster có thể sửa đổi bất cứ việc gì trong trang web.

SPIP có sẵn một giao diện di chuyển; khi bạn đã có một số bài vở trong trang web, bạn có thể vào thăm trang web ngay dùng giao diện di chuyển có sẵn. Người webmaster vẫn có thể chế ra một bộ giao diện di chuyển khác.

Trong tương lai, chúng tôi dự tính kèm sẵn nhiều bộ mẫu HTML trong SPIP để tạo sự dễ dàng cho người webmaster tái sử dụng và giảm thiểu thời gian chuẩn bị cho một trang web mới.

f. Những trang web dùng SPIP

Thí dụ hay nhất (và xưa nhất) của việc dùng SPIP là báo điện tử uZine2 (chính coding của trang web này là bước khởi đầu để soạn nhu liệu SPIP). Một số trang web khác dùng SPIP như Le Monde Diplomatique in English, Vacarme.

2. Vấn đề bảo trì cho một website SPIPHiểu , Lập kế hoạch và lập lịch bảo trì cho website

a. Công việc bảo trì cho website SPIPHai hoạt động chính mà bạn phải xử lý giống như 1 webmaster liên quan đến việc bảo trì website là : - Sao lưu các thông tin liên quan đến website của bạn

Cơ sở dữ liệu Các mẫu mà bạn tùy chỉnh IMG / thư mục Thư mục Plugin nếu bạn sử dụng những plugin

- Nâng cấp các phiên bản SPIP hỗ trợ website của bạn Nâng cấp chức năng : bạn có thể nâng cấp SPIP để hưởng lợi từ những

chức năng mới , khắc phục lỗi , khả năng sử dụng , cải tiến Nâng cấp bảo mật : bạn có thể nâng cấp website của bạn để hưởng lợi

từ việc khắc phục các lỗ hổng bảo mật được phát hiện trên phiên bản mà bạng đang sử dụng .

- Thực hiện việc sao lưu dữ liệu trước khi thực hiện bất kỳ 1 hành động nào

Page 28: Các kỹ thuật bảo trì phần mềm

- Một bản sao lưu của 'IMG / các thư mục,' squelettes / 'và' plugins / 'cũng nên được thực hiện trước khi thực hiện bảo trì

- Một số lỗi nên tránh : Patching: thiếu kinh nghiệm quản trị web có thể bị thu hút để sửa đổi

các mẫu nằm trong thư mục 'dist /' hoặc sửa đổi mã nguồn mà không cần sử dụng các plugin. Nâng cấp SPIP sau đó sẽ trở thành không thể quản lý như tập tin sửa đổi phải được xác định để đảm bảo họ không phải để ghi đè bởi các nâng cấp.

Phiên bản nhảy: nâng cấp lên một phiên bản của SPIP mà không phải là ngay lập tức một trong những tiếp theo có thể dẫn đến các vấn đề như vậy như các vấn đề nâng cấp cơ sở dữ liệu hoặc các lỗi mẫu.

Nâng cấp SPIP trước khi sao lưu cơ sở dữ liệu: điều này có thể dẫn đến các vấn đề như các phiên bản SPIP mới sẽ sửa đổi cấu trúc cơ sở dữ liệu khi khởi động lại. Nếu nâng cấp SPIP không tốt, bạn có thể không có khả năng quay trở lại trạng thái trước khi cơ sở dữ liệu nâng cấp 

- Khi 'IMG / thư mục và cơ sở dữ liệu trở nên rất lớn, một máy chủ sao lưu có thể trở nên cần thiết .

- Để lưu các bản sao lưu trước tiên bạn nên tạo một kho lưu trữ sao lưu của bạn trong máy chủ và sau đó sao chép từ máy chủ đến máy chủ bởi vì chuyển giao dữ liệu giữa các máy chủ nhanh hơn nhiều hơn so với tải.

- Một khi việc chuyển giao các kho lưu trữ thành công, bạn nên xóa nó trên các máy chủ sản xuất để tránh việc đĩa tràn

- Đối với một trang web với ít nhất một đóng góp mỗi tuần và với các diễn đàn hoạt động, dưới đây là kế hoạch:

Hàng năm: kiểm tra nếu một phiên bản ổn định mới của SPIP đã được phát hành và nếu như vậy, phiên bản SPIP của bạn đã được nâng cấp .

Mỗi ba tháng: lưu trữ và sao lưu các thư mục 'squelettes /' và 'plugins Hàng tháng: sao lưu và lưu trữ IMG / thư mục. Hàng tuần: sao lưu và lưu trữ cơ sở dữ liệu

VIII.KẾT LUẬN:

Bảo trì rõ ràng đóng một vai trò quan trọng trong vòng đời của một sản phẩm phần mềm.Như lưu ý trước đó, chi phí bảo trì tại Hoa Kỳ đã được ước tính nhiều hơn 70 tỷ dolar hàng năm cho hơn 10 tỷ dòng mã hiện tại (Sutherland [1995]). Trong khi "bảo trì truyền thống" chỉ áp dụng cho bảo trì sửa chữa - sửa chữa các lỗi trong code, giai đoạn

Page 29: Các kỹ thuật bảo trì phần mềm

bảo trì cũng kết hợp ba khía cạnh chính khác mà được coi là các yếu tố của sự tiến triển phần mềm. việc bảo trì phải thích ứng với cả khi phần mềm được sửa đổi để sử dụng trong môi trường mới, chẳng hạn như một nền tảng phần cứng mới hoặc giao tiếp với một hệ thống cơ sở dữ liệu khác nhau. Sự hoàn thiện bảo trì liên quan tới việc thêm chức năng mới cho sản phẩn, điển hình như một kết quả của một yêu cầu của khách hàng. Cuối cùng,bảo trì phòng ngừa tăng khả năng bảo trì của một hệ thống, thông qua cập nhật tài liệu hoặc thay đổi cấu trúc của phần mềm.

Có một số mô hình bảo trì phục vụ tổ chức nămnhiệm vụ chính của giai đoạn: cô lập và phân tích vấn đề, thiết kế sửa chữa, thực hiệnsửa chữa, kiểm tra kết quả hệ thống , và cập nhật tài liệu để phản ánh những thay đổi được thực hiện. Một số công cụ, chẳng hạn như phân tích tự động và quản lý cấu hình,trợ giúp trong việc hoàn thành các nhiệm vụ này.

Bảo trì là ảnh hưởng rất nhiều bởi các phương pháp được sử dụng để phát triển một sản phẩm. Vì vậy, các phương pháp phát triển khác nhau kết quả trong quy trình bảo dưỡng khác nhau. Lặp đi lặp lại kết quả phát triển trong việc tạo ra một sản phẩm làm việc sau mỗi lần lặp. Do đó,nhiệm vụ bảo trì được thực hiện trên mỗi sản phẩm làm việc được tạo ra. Điều này để đảm bảo rằng vấn đề sẽ được chẩn đoán và sửa lỗi. Việc phát triển Agile , một phương pháp tương tự như phương pháp để lặp đi lặp lại,xem xét việc tạo ra các tài liệu hướng dẫn mục tiêu, do đó phòng ngừa bảo trì có thể trở thành vấn đề. Tuy nhiên, do tính chất lặp đi lặp lại của phát triển nhanh, sửa chữa và bảo trì mở rộng chu kỳ phát triển. CBSD thay đổi trọng tâm của giai đoạn để duy trì sự tương tác giữa các thành phần chứ không phải là ở cấp mã nguồn, như việc bảo trì các thành phần cụ thể rơi vào những nhà phát triển. Phát triểnmã nguồn mở làm mờ ranh giới giữa bảo trì và giai đoạn trước đó của vòng đời phần mềm do thiếu một ngày phát hành nhất định. Tuy nhiên, nó cung cấp các lợi thế của việc cho phép người dùng tham gia vào việc phát triển, kết quả như một nhóm gỡ lỗi lớn

Khi chi phí bảo trì đã được ước tính ở mức 50% của tổng chi phí chu kỳ một phần mềm (Van Vliet [2000]), rõ ràng là việc tiếp tục nghiên cứu vào lĩnh vực này sẽ là cần thiết.Việc tiết kiệm trong lĩnh vực này có thể có ảnh hưởng lớn đến cuộc sống tổng thể của một dự án phần mềm. Điều này giấy đã trình bày tổng quan về các giai đoạncủa vòng đời dự án và vai trò của nó trong cácphương tiện khác nhau của phát triển với hy vọng giúp đỡ này nghiên cứu thêm. Tài liệu này đã trình bày tổng quan về các giai đoạn trong vòng đời của dự án và vai trò của nó trong các phương tiện khác nhau.

IX.TÀI LIỆU THAM KHẢO:1. Bài giảng Công Nghệ Học Phần Mềm. Tác giả: Lương Mạnh Bá.

Page 30: Các kỹ thuật bảo trì phần mềm

2. Software Maintenance As Part of the Software Life Cycle - Prof. Stafford 3. Roger S.Pressman, Ph.D: Software engineering A practitioner ‘s approach fifth

edition – MCGraw – Hill series in computer science 4. Gerardo Canfora and Aniello Cimitile (University of Sannio, Faculty of

Engineering at Benevento Palazzo Bosco Lucarelli, Piazza Roma 82100, Benevento Italy): Software Maintenance - 29 November, 2000

X.PHÂN CHIA CÔNG VIỆC:

1.Khái niệm,mục đích,hình thái,trình tự của bảo trì phần mềm.<Linh>.

2.Những vấn đề bảo trì hiện nay+Sáng kiến.<Vụ>

3.Các mô hình bảo trì.<Hùng>

4.Các phương pháp bảo trì hiện nay.<Hùng>

5.Các công cụ bảo trì.<Vụ>

6.Các kịch bản bảo trì trong quá trình phát triển phần mềm.<Linh>

7.Ví dụ cụ thể.<Lâm>

Tổng hợp và chỉnh sửa báo cáo:LinhĐánh giá công việc của các thành viên trong nhóm:

Nguyễn Hoàng Linh: 25% Đoàn Thành Lâm: 25% Phạm Văn Hùng: 25% Nguyễn Hữu Vụ: 25%