Tải bản đầy đủ (.ppt) (23 trang)

Những cách mở rộng phần mềm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (156.71 KB, 23 trang )

Những cách Mở rộng phần mềm

Bùi Th H ng

Ch

ng 12. M r ng ph n m m

Trang 1


Mục tiêu








Giải thích tại sao việc thay đổi là không thể tránh
khỏi khi mà phần mềm vẫn còn hữu ích.
Thảo luận về việc bảo trì phần mềm và các chỉ số về
chi phí bảo trì.
Mô tả các qui trình liên quan đến việc mở rộng phần
mềm.
Bàn về một cách tiếp cận dùng để đánh giá các
chiến lược thay đổi các phần mềm thuộc loại di sản.

Bùi Th H ng


Ch

ng 12. M r ng ph n m m

Trang 2


Thay đổi phần mềm


Thay đổi phần mềm là điều không thể tránh khỏi








Các yêu cầu mới xuất hiện khi phần mềm vẫn đang
được sử dụng;
Môi trường nghiệp vụ thay đổi;
Các sai sót pahỉ được sửa chữa;
Các máy tính và thiết bị mới được thêm vào hệ thống;
Hiệu năng hoặc độ tin cậy của hệ thống có thể phải
được nâng lên.

Vấn đề cơ bản đối với tổ chức là thực hiện và quản
lý việc thay đổi đối với các hệ thống phần mềm
đang tồn tại.


Bùi Th H ng

Ch

ng 12. M r ng ph n m m

Trang 3


Tầm quan trọng của sự mở rộng






Các tổ chức có những đầu tư khổng lồ cho các hệ
thống phần mềm của họ - chúng là những tài sản
thương mại quan trọng.
Để bảo toàn giá trị của những tài sản này, chúng
cần phải được thay đổi và cập nhật.
Một phần rất lớn trong ngân sách phần mềm của
các công ty lớn được giành để nâng cấp các phần
mềm hiện có chứ không phải để phát triển các phần
mềm mới.

Bùi Th H ng

Ch


ng 12. M r ng ph n m m

Trang 4


Mô hình mở rộng xoắn ốc

Specifi cat ion

Im plem en t ion

St art
Release 1
Operat ion

Validation

Release 2
Release 3

Bùi Th H ng

Ch

ng 12. M r ng ph n m m

Trang 5



Cách thức mở rộng chương trình






Cần phải tiến hành các nghiên cứu về các qui trình
thay đổi hệ thống.
Lehman và Belady đã đề nghị một số “luật” cần phải
áp dụng cho tất cả các hệ thống khi cần phải thay
đổi.
Ngoài ra cần phải có những quan sát nhạy cảm chứ
không chỉ dựa vào “luật”. Những quan sát này
thường thích hợp với các hệ thống lớn được phát
triển bởi các tổ chức lớn.

Bùi Th H ng

Ch

ng 12. M r ng ph n m m

Trang 6


Các luật của Lehman
Law

Description


Continuing change

A program that is used in a real-world environment necessarily
must change or become progressively less useful in that
environment.

Increasing complexity

As an evolving program changes, its structure tends to become
more complex. Extra resources must be devoted to preserving
and simplifying the structure.

Large program evolution

Program evolution is a self-regulating process. System
attributes such as size, time between releases and the number of
reported errors is approximately invariant for each system
release.

Organisational stability

Over a program’s lifetime, its rate of development is
approximately constant and independent of the resources
devoted to system development.

Conservation of
familiarity

Over the lifetime of a system, the incremental change in each

release is approximately constant.

Continuing growth

The functionality offered by systems has to continually increase
to maintain user satisfaction.

Declining quality

The quality of systems will appear to be declining unless they
are adapted to changes in their operational environment.

Feedback system

Evolution processes incorporate multi-agent, multi-loop
feedback systems and you have to treat them as feedback
systems to achieve significant product improvement.

Bùi Th H ng

Ch

ng 12. M r ng ph n m m

Trang 7


Bảo trì phần mềm







Sửa lại một chương trình sau khi đã được đưa vào
sử dụng.
Bảo trì thông thường không chỉ bao gồm những thay
đổi chính đối với kiến trúc của hệ thống.
Những thay đổi được thực hiện bằng việc sửa đổi
các thành phần hiện có và thêm những thành phần
mới vào hệ thống.

Bùi Th H ng

Ch

ng 12. M r ng ph n m m

Trang 8


Bảo trì là không thể tránh khỏi






Các yêu cầu hệ thống rất có khả năng sẽ thay đổi
trong khi hệ thống đang được phát triển bởi vì môi

trường luôn nuôn biến động. Do đó những hệ thống
đã được chuyển giao có thể sẽ không đáp ứng
được các yêu cầu của người sử dụng.
Các hệ thống thường gắn kết với môi trường của
chúng. Khi một hệ thống được cài đặt trong một môi
trường nó sẽ thay đổi môi trường này và do vậy sẽ
làm thay đổi các yêu cầu hệ thống.
Do đó, các hệ thống PHẢI được bảo trì nếu chúng
vẫn muốn còn có ích trong môi trường của nó.

Bùi Th H ng

Ch

ng 12. M r ng ph n m m

Trang 9


Các kiểu bảo trì


Bảo trì sửa chữa các lối của phần mềm




Bảo trì làm thích nghi một phần mềm trong một môi
trường vận hành khác





Sửa lỗi trong phần mềm để đáp ứng yêu cầu của hệ thống.

Thay đổi một hệ thống sao cho nó có thể hoạt động trong
một môi trường khác với môi trường ban đầu.

Bảo trì thêm hoặc sửa chức năng của hệ thống


Bùi Th H ng

Sửa lại hệ thống để thoả mãn các yêu cầu mới.

Ch

ng 12. M r ng ph n m m

Trang 10


Phân bổ các nỗ lực bảo trì
Fau lt repair
( 17%)

Soft ware
adapt at ion
( 18 %)


Bùi Th H ng

Ch

Fu n ct ion alit y
addit ion or
m odifi cat ion
( 65 %)

ng 12. M r ng ph n m m

Trang 11


Các chi phí cho bảo trì








Thường lớn hơn chi phí phát triển (từ 2 lần đến 100
lần tuỳ thuộc vào ứng dụng).
Bị ảnh hưởng bởi các yếu tố kỹ thuật và cả các yếu
tố phi kỹ thuật.
Chi phí càng tăng lên khi phải bảo trì lâu dài. Bảo trì
sẽ làm thay đổi cấu trúc phần mềm vì vậy các bảo
trì sau đó sẽ càng ngày càng khó hơn.

Những phần mềm dùng lâu năm có thể đòi hỏi chi
phí bảo hành cao hơn.

Bùi Th H ng

Ch

ng 12. M r ng ph n m m

Trang 12


Các chi phí phát triển/bảo trì

Syst em 1
Syst em 2

0

50

100

Developm en t cost s

Bùi Th H ng

Ch

150


200

250

300

350 400

450

500

M ain t en an ce cost s

ng 12. M r ng ph n m m

Trang 13

$


Các nhân tô ảnh hưởng đến chi phí bảo trì


Tính ổn định của đội bảo trì





Các trách nhiệm trong hợp đồng




Người phát triển một hệ thống có thể không có trách nhiệm
bảo trì qui định trong hợp đồng vì vậy họ không có động cơ
để thiết kế hệ thống sao cho có thể dễ dàng thay đổi sau này.

Kỹ năng của nhân viên bảo trì




Chi phí bảo trì sẽ giảm bớt nếu duy trì ổn định một đội bảo trì
trong một thời gian dài.

Nhân viên bảo trì thường thiếu kinh nghiệm và có kiến thức
hạn chế trong lĩnh vực nghiệp vụ của ứng dụng.

Tuổi và cấu trúc của chương trình


Bùi Th H ng

Khi các chương trình đã cũ, cấu trúc của chúng sẽ bị suy
giảm và chúng trở nên khó hiểu và khó thay đổi.

Ch


ng 12. M r ng ph n m m

Trang 14


Dự đoán trước về bảo trì


Dự đoán cho bảo trì liên quan đến việc đánh
giá những bộ phận của hệ thống có thể gây ra
vấn đề và có chi phí bảo trì cao





Bùi Th H ng

Việc chấp nhận thay đổi tuỳ thuộc vào khả năng có thể
bảo trì được của những thành phần bị ảnh hưởng bởi
sự thay đổi này;
Việc thực hiện các thay đổi sẽ làm cho hệ thống bị suy
biến và giảm sút khả năng bảo trì của nó;
Chi phí bảo trì phụ thuộc vào số lượng các thay đổi và
chi phí của các thay đổi phụ thuộc vào khả năng bảo
trì.

Ch

ng 12. M r ng ph n m m


Trang 15


Dự đoán bảo trì
What par
ts of the system are
most likely to be affected by
change requests?

What par
ts of the system
will be the most expensive
to maintain?
Predicting
maintainability

Predicting system Predicting
maintenance
changes
costs

What will be the costs of
maintaining this system
over the next year?

How many change
requests can be
expected?


Bùi Th H ng

Ch

What will be the lifetime
maintenance costs of this
system?

ng 12. M r ng ph n m m

Trang 16


Qui trình mở rộng hệ thống

Change
requests

Bùi Th H ng

Impact
analysis

Release
planning

Fault repair

Platform
adaptation


Ch

ng 12. M r ng ph n m m

Change
implementa
tion

System
release

System
enhancement

Trang 17


Sửa chữa khẩn cấp

Change
requests

Bùi Th H ng

Analyse
source code

Ch


Modify
source code

ng 12. M r ng ph n m m

Deliver modified
system

Trang 18


Tái cơ cấu hệ thống






Tái cấu trúc hoặc viết lại một phần hoặc tất cả một
hệ thống cũ mà không làm thay đổi chức năng của
nó.
Thích hợp khi một số chứ không phải tất cả các hệ
thống con của một hệ thống lớn đòi hỏi bảo trì
thường xuyên.
Tái cơ cấu qui trình bao gồm những nỗ lực nhằm
làm cho hệ thống dễ bảo trì hơn. Hệ thống có thể
phải cấu trúc lại và viết lại tài liệu mô tả.

Bùi Th H ng


Ch

ng 12. M r ng ph n m m

Trang 19


Ưu điểm của tái cơ cấu qui trình




Giảm bớt rủi ro
• Khi phát triển một phần mềm mới thường có
những rủi ro cao. Có thể có những vân đề về
phát triển, những vấn đề về đội ngũ thực hiện
và những vấn đề về đặc tả.
Giảm bớt chi phí
• Chi phí cho tái cơ cấu qui trình thường ít hơn
rất nhiều so với chi phí phân tích một phần
mềm mới.

Bùi Th H ng

Ch

ng 12. M r ng ph n m m

Trang 20



Qui trình tái cơ cấu
Program
docu m en t at i on

Origin al
program

M odu lari sed
program

Origin al dat a

Reverse
en gin eeri n g
Program
m odu larisat ion

Sou rce code
t ran sl at ion

Dat a
re-en gin eerin g

Prog ram
st ru ct u re
im provem en t
St ru ct u red
program


Bùi Th H ng

Ch

ng 12. M r ng ph n m m

Re-en gi n eered
dat a

Trang 21


Cải tiến hệ thống cũ


Những tổ chức đang sở hữu các hệ thống cũ cần
phải lựa chọn một chiến lược cải tiến các hệ thống
này







Phá bỏ hoàn toàn và sửa lại những qui trình nghiệp vụ
đến nay không còn thích hợp nữa;
Tiếp tục duy trì hệ thống;
Chuyển đổi hệ thống bằng cách tái cơ cấu qui trình để
nâng cao khả năng bảo trì của nó;

Thay thế ht bằng một hệ thống mới.

Chiến lược được lựa chọn phụ thuộc vào chất
lượng của hệ thống và giá trị thương mại của nó.

Bùi Th H ng

Ch

ng 12. M r ng ph n m m

Trang 22


Phân loại các hệ thống cũ


Chất lượng thấp, giá trị thương mại thấp




Chất lượng thấp, giá trị thương mại cao




Những hệ thống này có đóng góp quan trọng về thương
mại nhưng bảo trì lại tốn kém. Nên tái cơ cấu lại qui trình
hoặc thay thế nếu sẵn có một hệ thống thích hợp.


Chất lượng cao, giá trị thương mại thấp




Những hệ thống này nên phá bỏ toàn bộ.

Tuỳ thuộc vào chi phí mà có thể đạp bỏ hoặc vẫn sử
dụng.

Chất lượng cao, giá trị thương mại cao


Bùi Th H ng

Tiếp tục hoạt động với các bảo trì thông thường.

Ch

ng 12. M r ng ph n m m

Trang 23



×