Tải bản đầy đủ (.docx) (40 trang)

Báo cáo bài tập lớn : Đảm bảo chất lượ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 (442.16 KB, 40 trang )


TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO BÀI TẬP LỚN
Bộ môn: Đảm bảo chất lượng phần mềm.
Đề tài: Case tools for SW Development and SQA.

Giảng viên hướng dẫn: Th.S Nguyễn Thái Cường
Nhóm thực hiện:

Nhóm 8

Lớp:

KTPM2 - K8

Nhóm sinh viên thực hiện:
1. Lê Tuấn Anh
2. Đào Sỹ Nam Anh
3. Phạm Gia Khánh

Hà Nội, 12/2016


NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................


.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
Hà Nội, ngày … tháng … năm 2016
Giáo viên hướng dẫn


Thạc Sĩ: Nguyễn Thái Cường

LỜI CẢM ƠN
Bài tập lớn là môn học đánh khả năng làm việc theo nhóm của sinh viên,
cũng như tạo cho sinh viên tạo cho sinh viên tính tự lập đánh dấu sự trưởng thành
của một sinh viên, và khả năng làm việc dựa vào hướng dẫn của giáo viên, tạo điều
kiện cho sinh viên nghiên cứu Khóa luận tốt nghiệp Kỹ sư sau này và là sự chuyển
tiếp trong quá trình phấn đấu, học tập và rèn luyện của một sinh viên để trở thành
một Kỹ sư Công nghệ thông tin. Quá trình làm bài tập lớn, quá trình học tập, tích
lũy và kiểm tra lại kiến thức đã học và đem những kiến thức đó áp dụng vào thực
tế.
Nhóm em xin chân thành cảm ơn thầy NGUYỄN THÁI CƯỜNG. Thầy đã
trực tiếp hướng dẫn nhóm em làm Bài Tập Lớn này. Trong quá trình thực hiện Bài
Tập Lớn, thầy đã tận tình định hướng, hướng dẫn và giúp đỡ nhóm em giải quyết
các khó khăn trong quá trình thực hiện bài tập lớn này.

Lời cuối cùng, nhóm em xin chân thành cảm ơn thầy. Chúc thầy và toàn thể
gia đình sức khỏe và thành đạt.

Hà Nội, tháng 12 năm 2016.


LỜI MỞ ĐẦU
Ngày nay, Công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả
chiều rộng và chiều sâu. Máy tính điện tử không còn là một thứ phương tiện quý hiếm mà
đang ngày càng trở thành một công cụ làm việc và giải trí thông dụng của con người,
không chỉ ở công sở mà còn ngay cả trong gia đình.
Đứng trước vai trò của thông tin hoạt động cạnh tranh gay gắt, các tổ chức và các
doanh nghiệp đều tìm mọi biện pháp để xây dựng hoàn thiện hệ thống thông tin của mình
nhằm tin học hóa các hoạt động tác nghiệp của đơn vị.
Tự động hóa ngày càng có vai trò quan trọng trong nền kinh tế toàn cầu và trong kinh
nghiệm hàng ngày. Các kỹ sư đang cố gắng làm cho các thiết bị tự động hoá kết hợp với
các công cụ toán học và tổ chức để tạo ra các hệ thống phức tạp cho một phạm vi đang
nhanh chóng phát triển rộng lớn của các ứng dụng và hoạt động của con người. Hiện nay
các công ty tin học hàng đầu thế giới không ngừng đầu tư và cải thiện các giải pháp cũng
như các sản phẩm nhằm cho phép tiến hành thương mại hóa trên Internet. Thông qua các
sản phẩm và công nghệ này, chúng ta dễ dàng nhận ra tầm quan trọng và tính tất yếu
của thương mại điện tử. Với những thao tác đơn giản trên máy có nối mạng Internet bạn
sẽ có tận tay những gì mình cần mà không phải mất nhiều thời gian. Bạn chỉ cần vào các
trang dịch vụ thương mại điện tử, làm theo hướng dẫn và click vào những gì bạn cần. Các
nhà dịch vụ sẽ mang đến tận nhà cho bạn.
Để tiếp cận và góp phần trong quá trình xây dựng, phát triển và đảm bảo chất lượng
cho phần mềm nhóm chúng em đã tìm hiểu và đưa ra được những đánh giá cho quá trình
phân tích thiết kế tự động khi nghiên cứu tới các công cụ phần mềm hỗ trợ phân tích thiết
kế tự động.
Với sự hướng dân tận tình của thầy Nguyễn Thái Cường chúng em đã hoàn thành bài

tập lớn này. Tuy đã cố gắng hết sức để tìm hiểu, phân tích, cài đặt và sử dụng nhưng chắc
rằng cũng không thể tránh khỏi những thiếu sót. Chúng em rất mong nhận được sự thông
cảm và góp ý của Thầy. Chúng em xin chân thành cảm ơn.


MỤC LỤC


CHƯƠNG I: MỞ ĐẦU
I.

Tổng quan về đảm bảo chất lượng phần mềm
1. Chất lượng phần mềm và đảm bảo chất lượng phần mềm
a. Định nghĩa chất lượng phần mềm
Có rất nhiều định nghĩa về chất lượng phần mềm được đưa ra bởi các tổ chức,
cá nhân khác nhau. Trong phạm vi của bài viết này trình bày một số định nghĩa
tiêu biểu.
*Định nghĩa theo IEEE(1991):


Định nghĩa 1: Chất lượng phần mềm là một mức độ mà một hệ thống, thành phần
hệ thống hay tiến trình đáp ứng được yêu cầu đã được đặc tả.



Định nghĩa 2: Chất lượng phần mềm là mức độ mà một hệ thống, thành phần hệ
thống hay tiến trình đáp ứng được yêu cầu và sự mong đợi của khách hàng hay
người sử dụng.

*Phân tích hai quan điểm của IEEE:



Theo quan điểm thứ nhất của IEEE: chúng ta sẽ bị phụ thuộc quá nhiều vào tài
liệu đặc tả của yêu cầu, dẫn đến nếu việc xấc định yêu cầu bị sai, thiếu thì một
phần mềm được làm đúng với đặc tả chưa chắc đã là một phần mềm có chất
lượng.



Theo quan điểm thứ hai của IEEE: khách hàng đôi khi không có kiến thức về công
nghệ, họ có thể đưa ra những mong muốn hết sức vô lý và có thể thay đổi yêu cầu
với phần mềm nhiều lần, thậm chí thay đổi ngay trong giai đoạn cuối. Điều này
gây nhiều khó khăn cho việc phát triển phần mềm.



*Định nghĩa theo Pressman: Chất lượng phần mềm là sự phù hợp của các yêu cầu
cụ thể về hiệu năng và chức năng, các tiêu chuẩn phát triển phần mềm được ghi lại
rõ ràng bằng tài liệu với các đặc tính ngầm định của tất cả các phần mềm được
phát triển chuyên nghiệp.

7


Định nghĩa của Pressman đề xuất ba yêu cầu với chất lượng phần mềm phải được
đáp ứng khi phát triển phần mềm:
o

Các yêu cầu chức năng rõ ràng là nhân tố chính quyết định chất lượng đầu
ra của phần mềm.


o

Các tiêu chuẩn chất lượng phần mềm sẽ được nói đến trong hợp đồng.

o

Các đặc tính ngầm định cần được đáp ứng trong quá trình phát triển cho dù
không được nói đến rõ ràng trong hợp đồng.

2. Định nghĩa đảm bảo chất lượng phần mềm

Định nghĩa theo Daniel Galin: Đảm bảo chất lượng phần mềm (Software Quality
Assure) là một tập hợp các hành động cần thiết được lên kế hoạch một cách hệ thống
để cung cấp đầy đủ niềm tin rằng quá trình phát triển phần mềm phù hợp để thành lập
các yêu cầu chức năng kỹ thuật cũng như các yêu cầu quản lý theo lịch trình và hoạt
động trong giới hạn ngân sách.
3. Đặc trưng ảnh hưởng tới chất lượng phần mềm


Tính đúng đắn: mức độ mà dự án hoàn thành các đặc tả của nó.



Tính hiệu quả: dùng tài nguyên trong thực hiện và lưu giữ.



Tính linh hoạt: dễ làm thay đổi được yêu cầu do thay đổi trong môi trường
vận hành.




Tính toàn vẹn: bảo vệ dự án khỏi truy nhập không được phép.



Tính liên tác: nỗ lực được yêu cầu để tích hợp hệ thống vào hệ thống khác.



Tính bảo trì: nỗ lực được yêu cầu để định vị và sửa lỗi trong dự án trong
môi trường vận hành của nó.

8




Tính khả chuyển: nỗ lực được yêu cầu để truyền dự án từ môi trường này
sang môi trường khác.



Tính tin cậy: khả năng không hỏng.



Tính tái dụng: dễ dùng lại phần mềm trong hoàn cảnh khác.




Tính kiểm thử được: dễ dàng kiểm thử dự án để đảm bảo rằng nó không lỗi
và đáp ứng đặc tả.



Tính khả dụng: dễ dùng phần mềm.

Tất nhiên, trong một thế giới hoàn hảo tất cả những tiêu chí này sẽ được đáp ứng,
nhưng trong thực tế việc bù trừ là một phần của mọi dự án phát triển. Thường phần mềm
hiệu quả nhất lại không khả chuyển, vì tính khả chuyển sẽ yêu cầu mã phụ thêm, làm
giảm tính hiệu quả. Tính khả dụng là chủ quan và thay đổi tuỳ theo kinh nghiệm của
người dùng. Khi dùng các tiêu chí này để xác định mục tiêu đảm bảo của hệ thống phần
mềm, mục đích và việc dùng hệ thống phải được tính tới. Trong thế giới thực của phát
triển phần mềm, tiêu chí về chất lượng được nhận diện và áp dụng cho mức độ khác biệt
xem như kết quả của các quyết định bù trừ.

II.

Tổng quan về đề tài
1. Tên đề tài
CASE Tools for Software Development and Software Quality Assurance
2.

Lý do chọn đề tài
Ngày nay, dưới sự phát triển của khoa học kỹ thuật nó đã hỗ trợ rất nhiều trong

cuộc sống, công việc và đặc biệt là trong nghiên cứu của nhân loại. Sự phát triển
của khoa học công nghệ không chỉ đem lại những thuận lợi tính toán, giải đáp các

bài toán riêng lẻ, nhanh và độ chính xác cao mà giờ đây các ứng dụng của nó còn
được áp dụng vào nhiều ngành nghề khác như trong lĩnh vực công nghệ thông tin.
Trong những năm trở lại đây thì với sự phát triển mạnh mẽ của ngành khoa học
công nghệ thông tin, nước ta đã và đang trở thành một quốc gia phát triển, và nó

9


đã trở thành một lĩnh vực trọng điểm đối với hầu hết các nước phát triển trên thế
giới. Ngoài ra với sự phát triển của nó còn kéo theo một số các ngành khác phát
triển theo chẳng hạn như: Y tế, giáo dục, kinh tế, nghiên cứu khoa học,… đời sống
của người dân cũng được cải thiện, sự đáp ứng nhu cầu ngày càng hoàn thiện hơn.
Một hệ thống thông tin hóa sẽ giúp làm giảm thiểu rất nhiều các công việc lưu trữ
bằng tay, tiết kiệm thời gian, công đoạn đi lại, chi phí, nó rất có hiệu quả trong
việc quản lý. Để sảm phẩm phần mềm có khả năng cạnh tranh thì chất lượng phầm
mềm phải cao hơn, chi phí có thể cao cũng được, nhưng tiền nào của nấy và tùy
từng nhu cầu của phần mềm khác nhau. Phần mềm lớn thì cần đảm bảo chất lượng
một cách thủ công với chi phí và công sức, thời gian bỏ ra lớn.
Tuy nhiên, với phần mềm có quy mô nhỏ, việc phát triển và đảm bảo chất
lượng phần mềm làm theo cách thủ công thì chi phí quá đắt, những web giới thiệu
sản phẩm hay báo chí có khi không cần những chức năng cao như bảo mật… vậy
nên, để giảm chi phí cũng như thời gian, người ta đã phát triển công cụ phần mềm
hỗ trợ phát triển phần mềm Computer-Aided Software Engineering gọi tắt là
CASE Tools.
3. Mục đích

của đề tài

Đề tài “CASE Tools for Software Development and Software Quality
Assurance” nhằm tìm hiểu công cụ phát triển và đảm bảo chất lượng phần mềm.


10


CHƯƠNG II: QUY TRÌNH TỰ ĐỘNG HÓA
I. Quy trình là gì?
Quy trình là một trình tự có tổ chức các hoạt động để hoàn thành cái gì đó. Chẳng
hạn: Dự án phần mềm. Trong trường hợp này, dự án là việc áp dụng tài nguyên vào quy
trình đó. Tài nguyên là con người, công cụ và kĩ thuật mà bạn áp dụng khi tuân theo quy
trình. Thuật ngữ “con người” cũng chỉ ra kĩ năng và kinh nghiệm của thành viên tổ. Trình
tự là trật tự theo đó mọi sự được hoàn thành. Thuật ngữ “trật tự” nghĩa là bạn phải tuân
theo nó "từng bước một" tương ứng theo quy tắc. Chẳng hạn, bạn phải hiểu yêu cầu trước
khi bắt đầu thiết kế; chỉ khi thiết kế được hoàn thành thì bạn mới có thể bắt đầu viết mã
v.v.
Quy trình được đại diện bởi ba yếu tố: Hiệu quả: Mối quan hệ giữa việc dùng tài
nguyên và kết quả được hoàn thành. Thời gian chu kì: "Tốc độ" của quy trình, tức là, thời
gian cần để hoàn thành một quy trình. Và Chất lượng: Chất lượng của quy trình như được
xác định bởi người dùng như đáp ứng yêu cầu, không có lỗi v.v. Tổ hợp của ba yếu tố
này xác định ra năng lực của tổ hay tổ chức. Cải tiến liên tục là việc thay đổi hay nâng
cấp từ năng lực mức thấp hơn lên năng lực mức cao hơn.
Không có đào tạo đúng, người phát triển phần mềm sẽ làm bất kì cái gì họ muốn
chỉ để làm cho công việc của họ được thực hiện. Vì phát triển phần mềm là hoạt động
"làm việc theo tổ", không phải là hoạt động cá nhân, điều quan trọng là mọi thành viên tổ
đều tuân theo những qui tắc nào đó như tuân theo "Quy trình được xác định" cho dự án
đó. Người quản lí dự án phải nhận diện "Quy trình được xác định" trong bản kế hoạch dự

11


án và giám sát các hoạt động để đảm bảo rằng các thành viên tổ tuân theo nó để có được

kết quả mong muốn như hiệu quả, chất lượng và tốc độ.
Một trong những vấn đề chính trong đào tạo khoa học máy tính là sinh viên có xu
hướng làm việc cô lập. Điển hình, từng người được trao cho một vấn đề để giải quyết,
một chương trình để viết mã, và từng người được cho điểm tương ứng theo thành tích cá
nhân. Khi sinh viên đi làm, từng người sẽ tiếp tục làm bất kì cái gì có thể để làm cho việc
làm của họ được thực hiện, giống như khi họ còn trong trường. Không có hiểu biết về
làm việc tổ bằng việc tuân theo qui trình, nhiều dự án sẽ không chuyển giao được phần
mềm cho khách hàng trong lịch biểu và có chất lượng. Nhiều dự án thường chậm và có
chất lượng kém. Chúng thất bại vì thiếu sự phối hợp và làm việc tổ điều cho phép các
thành viên tổ làm việc cùng nhau. Chúng thất bại vì một số thành viên vội vàng viết mã
mà không thực sự hiểu các yêu cầu. Chúng thất bại vì có quá nhiều thay đổi trong dự án
điều thường tới trễ và không có qui trình giải quyết thay đổi. Chúng thất bại vì người
quản lí dự án không biết cách lập kế hoạch, tổ chức hay ước lượng thời gian, lịch biểu và
nỗ lực được cần để hoàn thành dự án.
Quy trình được xác định là bản lộ trình cho dự án. Nó yêu cầu các thành viên tổ tuân
theo "con đường" từng bước một. Từng bước phải có vai trò và trách nhiệm được xác
định rõ ràng cho từng thành viên tổ. Khi thay đổi xảy ra, bản lộ trình nhận diện rõ ràng ai
làm cái gì để cho tổ có thể làm cho công việc của họ được thực hiện có hiệu quả, chất
lượng và đáp ứng lịch biểu dự án (tốc độ).

II. Tự động hóa là gì?
Tự động hóa là việc sử dụng các hệ thống kiểm soát như máy tính để kiểm soát máy
móc thiết bị công nghiệp và quy trình sản xuất, giảm bớt sự cần thiết phải can thiệp của
con người. Trong phạm vi điều chỉnh của công nghiệp hóa, tự động hóa là một bước kế
tiếp của cơ giới hoá. Trong khi cơ giới hoá mang lại cho con người khả năng vận hành
máy móc thiết bị để giúp cho các cơ cấu vật lý hoạt động theo yêu cầu công việc, thì tự
động hóa lại làm giảm thiểu rất nhiều nhu cầu về sự giám sát cần thiết cũng như trí tuệ
của con người. Các quy trình và hệ thống đều có thể được tự động hoá.

12



Tự động hóa ngày càng có vai trò quan trọng trong nền kinh tế toàn cầu và trong kinh
nghiệm hàng ngày. Các kỹ sư đang cố gắng làm cho các thiết bị tự động hoá kết hợp với
các công cụ toán học và tổ chức để tạo ra các hệ thống phức tạp cho một phạm vi đang
nhanh chóng phát triển rộng lớn của các ứng dụng và hoạt động của con người.
Nhiều vai trò của con người trong các quá trình sản xuất công nghiệp hiện nay vẫn
nằm ngoài phạm vi điều chỉnh của tự động hóa. Khả năng nhận dạng, nhận giọng và tạo
ngôn ngữ vẫn nằm ngoài năng lực của cơ học hiện đại và các hệ thống máy tính. Những
công việc đòi hỏi phải có sự đánh giá chủ quan hoặc tổng hợp dữ liệu bằng cảm tính phức
tạp, chẳng hạn như hình ảnh và âm thanh, cũng như các nhiệm vụ cao cấp như lập kế
hoạch chiến lược hoặc trước mắt vẫn yêu cầu chuyên môn của con người. Trong nhiều
trường hợp, việc sử dụng con người vẫn có hiệu quả hơn phương pháp tiếp cận cơ khí, cả
những nơi thậm chí tự động hóa các tác vụ của công nghiệp có thể đã thực hiện được.
Các phần cứng máy tính đặc biệt, gọi tắt là các bộ điều khiển logic lập trình (PLC),
thường được sử dụng để đồng bộ hóa tín hiệu đầu vào của các cảm biến và đầu ra để tới
các cơ cấu chấp hành. Điều này dẫn đến sự kiểm soát chính xác những hoạt động, vốn
cho phép kiểm soát chặt chẽ hầu hết mọi quá trình sản xuất công nghiệp.
Các giao diện người - máy (HMI) hoặc giao diện máy tính - người (CHI), trước đây
được coi như là giao diện người - máy, thường được sử dụng để liên lạc với PLC và các
máy vi tính, chẳng hạn như nhập và giám sát nhiệt độ hoặc áp lực để có thêm kiểm soát
tự động hoặc phản ứng khẩn cấp. Dịch vụ nhân sự gồm những người theo dõi và kiểm
soát các giao diện thường được gọi tắt các kỹ sư tĩnh (có vẻ chưa đúng thuật ngữ này).

III. Quy trình tự động hóa là gì?
Là thực hiện một quá trình, hoạt động, dự án với theo một quy trình với sự hỗ trợ
của thiết bị công nghệ và máy tính điện tử.

13



CHƯƠNG III: CASE TOOL
I. GIỚI THIỆU VỀ CASE
CASE (Computer Aided Software Engineering) là những phương pháp trợ giúp
cho nhà phát triển phần mềm. Mục tiêu của việc giới thiệu CASE là giảm thời gian, chi
phí phát triển phần mềm và cho việc nâng cao chất lượng của các việc phát triển các hệ
thống. CASE liên quan đến việc sử dụng các gói phần mềm được gọi là CASE Tool để
thực hiện và tự động hóa nhiều hoạt động của chu kỳ cuộc sống phát triển hệ thống.
CASE là một sự thay đổi cách mạng đang xảy ra trong quá trình phát triển hệ
thống phần mềm truyền thống. Quá trình SDLC (Software Development Life Cycle –
Vòng đời phần mềm) bình thường thường được xem là không linh hoạt, tốn thời gian và
tốn kém. Trước những hạn chế của quá trình SDLC, CASE đã nổi lên để giúp các tổ chức
phát triển hệ thống và phần mềm. Các CASE Tool là hữu ích trong việc lập kế hoạch
kinh doanh, quản lý dự án, thiết kế giao diện người dùng, thiết kế cơ sở dữ liệu và lập
trình. Sử dụng các CASE Tool làm cho máy tính hỗ trợ phát triển phần mềm có thể.
Trong bối cảnh của ngày nay, nhanh chóng phân phối sản phẩm có thể được thử thách
nhiệm vụ cho các nhà cung cấp phần mềm, CASE Tool như là cánh tay giúp việc để hỗ
trợ tổ chức quản lý quá trình phát triển phần mềm và tự động hoá các quy trình nhất định
của các hoạt động này. Đáng chú ý là một số khả năng của CASE được tìm thấy trong
hầu hết các công cụ phát triển phần mềm hiện đại. Một số tự động thiết kế giao diện

14


người dùng, một vài có thể tự động sinh code chương trình; CASE Tools hỗ trợ đặc biệt
trong phân tích & thiết kế, bảo trì và quy hoạch hệ thống, cung cấp các hỗ trợ trong toàn
bộ vòng đời phát triển của phần mềm v.v… Thật khó để tưởng tượng cuộc sống của một
lập trình viên mà không cần các CASE Tool.
Ngày nay, hầu hết các tổ chức phần mềm không cần bận tâm về việc dùng CASE
Tool trong quá trình phát triển phần mềm của họ. Cuối cùng, rào cản trong việc thúc đẩy

các CASE Tool đã trở thành một tiêu chuẩn.

II. Sự ra đời và phát triển
1 Lịch sử
Ngay từ những ngày đầu phát triển phần mềm, kỹ sư phần mềm đã tìm kiếm các
công cụ có ích cho họ trong mô hình của hệ thống, sự hiểu biết của hệ thống là cách dễ
dàng trong nhiều cách khác với những người liên quan đến khoa học máy tính. Từ 1968
đến 1971 đã có rất nhiều cải tiến được thực hiện về vấn đề này như thiết kế cơ cấu từ trên
xuống, lợi ích của mô đun, từng bước sàng lọc mã được thực hiện; đến năm 1975, chất
lượng, độ tin cậy của phần mềm là những vấn đề lớn và các thủ tục kiểm tra được áp
dụng cho sự phụ thuộc phần mềm.
CASE Tool chính thức giới thiệu vào năm 1980, khi tài liệu hướng dẫn, sơ đồ và
các công cụ thiết kế được giới thiệu trong lĩnh vực này. Trong cùng thập kỷ, tự động
kiểm tra phân tích thiết kế, tạo mã tự động và các tiện ích thiết kế liên kết được giới
thiệu. Tầm quan trọng của CASE Tool được coi là hệ thống quy mô lớn và CASE chính
thức được coi như như là một ngành công nghiệp. Ngày nay có rất nhiều CASE Tool,
thậm chí nhiều hơn số trường hợp cho cùng một vấn đề. Giờ đây, công cụ này giúp các
nhà phát triển phân tích, thiết kế và tạo các tài liệu hướng dẫn của phần mềm. Ngay cả
các CASE Tool có sẵn cho việc triển khai và bảo trì của phần mềm. Các công cụ như
Erwin, Rational Rose có tạo ra có tầm quan trọng trong thị trường do chất lượng và độ tin

15


cậy của họ. Trong vòng mười năm qua, các CASE Tool đã nổi lên như một công nghệ
tương tác và đã đạt được vị trí cao trong các lĩnh vực phát triển phần mềm. Chúng vẫn
đang trong quá trình cải tiến như các lĩnh vực khác của thế giới, bởi vì tất cả những gì
con người tạo ra trong thế giới này luôn luôn có chỗ cho cải tiến.

2. Sự cần thiết của CASE

Các nhà phát triển phần mềm luôn luôn tìm kiếm các CASE Tool có thể giúp họ
trong nhiều cách khác nhau trong các giai đoạn phát triển khác nhau của phần mềm, để
họ có thể hiểu được phần mềm và chuẩn bị một sản phẩm cuối cùng có hiệu quả thực
hiện các yêu cầu của người dùng. CASE Tool cung cấp những cách có thể đáp ứng yêu
cầu này của các nhà phát triển phần mềm. Những công cụ này cung cấp các thiết lập trên
máy vi tính cho các nhà phát triển phần mềm để phân tích một vấn đề và sau đó thiết kế
mô hình hệ thống của nó.

 Những ưu điểm của CASE Tool
 Chúng cung cấp sự nhận thức sâu sắc hơn về hệ thống.
 Tạo điều kiện liên lạc giữa các thành viên trong nhóm.
 Các công cụ có hiệu quả hơn cho các hệ thống và các dự án quy mô lớn.
 CASE Tool cung cấp khả năng hiển thị của các quá trình và sự logic.
 CASE Tool cải thiện chất lượng và năng suất của phần mềm.
 CASE Tool giảm thời gian cho việc sửa lỗi và bảo trì.
 CASE Tool cung cấp khả năng đọc rõ ràng và bảo trì của hệ thống.

3. Vị trí của CASE Tool trong những năm 90.
Mục đích của CASE là để giảm chi phí và thời gian cần thiết cho sự phát triển hệ
thống và tập trung vào chất lượng của sản phẩm cuối cùng. CASE đã không được sử
dụng như nó đã tưng được hy vọng. Hầu hết các công ty không muốn áp dụng các CASE
Tool. Quan sát cho thấy rằng CASE đang được sử dụng nhưng không phải ở nhiều công
ty. “Những lý do để từ bỏ bao gồm chi phí, thiếu lợi nhuận đo lường được, và kỳ vọng

16


không thực tế. Các tổ chức sử dụng các CASE Tool và phát hiện ra rằng một số lượng
lớn của các hệ thống phát triển của họ không được sử dụng các CASE Tool. Ông báo cáo
rằng 57% các tổ chức được khảo sát đã được sử dụng các CASE Tool, ít hơn 25 % các

nhà phát triển hệ thống sử dụng các công cụ” (Diane Lending 1998). Và trong những
công ty đã thông qua việc sử dụng CASE, cũng chỉ có vài người đang sử dụng các CASE
Tool. Trong một cuộc khảo sát của 67 công ty, nó đã được quan sát thấy rằng 69% các
công ty chưa bao giờ được sử dụng các CASE Tool. Và những người đang sử dụng các
CASE Tool thừa nhận rằng việc sử dụng các CASE Tool cải thiện các tiêu chuẩn tài liệu
và kết quả hệ thống dễ dàng hơn để kiểm tra và duy trì. Tuy nhiên, những người sử dụng
các CASE Tool cũng thừa nhận rằng việc sử dụng các CASE Tool đòi hỏi nhiều thời gian
và nỗ lực và cũng cho biết thêm trong thời gian phát triển tổng thể.
Dưới 30% những người sử dụng tiềm năng và các nhà phát triển sử dụng CASE và
những người sử dụng nó, sử dụng các chức năng đơn giản và cơ bản của các CASE Tool.
Điều này cho thấy rằng ngay cả sau khi nhận được rất nhiều phổ biến các CASE Tool
không được chấp nhận và sử dụng rất nhiều trong ngành công nghiệp phát triển phần
mềm như chúng mong đợi hoặc là chúng nên được sử dụng. Chỉ sau một năm giới thiệu
70 % các CASE Tool không bao giờ được sử dụng, 25% được sử dụng bởi một nhóm và
5% của CASE Tool được sử dụng hoàn toàn [ Juhani Iivar, 1996].

4. Tại sao CASE Tool chưa phổ biến
 Chi phí
Rất nhiều công cụ tốn kém và hầu hết các công ty không sẵn sàng để thực hiện các
CASE Tool bởi thực tế là nó làm tăng chi phí tổng thể của dự án. Và điều thứ hai nếu một
công ty không nhận được bất kỳ thêm lợi nhuận bằng cách sử dụng các CASE Tool, tại
sao họ phải sử dụng các CASE Tool, cuối cùng lại mất thêm chi phí.

 Thời gian giới hạn
Luôn luôn có một giới hạn thời gian cho tất cả các dự án phần mềm để phát triển.
Hầu hết các công ty không chấp nhận CASE vì nó đòi hỏi rất nhiều thời gian để đào tạo
các nhà phát triển và thực hiện tất cả các hoạt động Case và luôn có những thời hạn để

17



hoàn thành dự án. Bạn đã quá đáp ứng thời hạn của công ty, nhưng nếu bạn sử dụng các
CASE Tool bạn không thể hoàn thành dự án đúng thời hạn, đó cũng là một yếu tố được
sử dụng ít hơn của CASE Tool.

 Đào tạo
Đào tạo là một mối quan tâm lớn trong khi bất kỳ công ty sẽ sử dụng một công cụ
mới, đó là thủ tục khá tốn kém. Họ có để đào tạo phát triển cho việc sử dụng hiệu quả của
công cụ đó cụ thể. Hầu hết các công ty tránh sử dụng các CASE Tool vì thực tế này rằng
họ sẽ phải để đào tạo một số lượng lớn các nhân viên và gây tốn kém chi phí cũng như
tốn thời gian.

 Thiếu quan tâm
Hầu hết các nhà phát triển sử dụng các CASE Tool không hoàn toàn hài lòng từ
các CASE Tool, đó là lý do tại sao họ là khá trung lập về tính hữu ích của CASE Tool.
Các nhà phát triển không được hưởng đầy đủ bằng cách sử dụng các CASE Tool và nếu
một số người trong số họ làm như vậy, họ chỉ sử dụng chức năng hạn chế của CASE
Tool. Nhiều nhà phát triển sử dụng các CASE Tool như là một yêu cầu của tổ chức duy
nhất. Các nhà phát triển dường như không có động cơ để sử dụng các CASE Tool và
thiếu sự quan tâm là yếu tố lớn trong việc sử dụng ít hơn của CASE Tool.

 Kỹ thuật hạn chế
Mọi CASE Tool theo một phương pháp cho các mô hình hệ thống. Những người
sử dụng bất kỳ công cụ trường hợp cụ thể trong một thời gian dài hơn thời gian quen với
phương pháp của công cụ đó và họ cố gắng để áp dụng các phương pháp tương tự đối với
các dự án khác. Hầu hết các công cụ phần cứng của họ và yêu cầu phần mềm. Những yêu
cầu cần đáp ứng để sử dụng công cụ đó. Đây là một trở ngại trong việc áp dụng CASE
Tool cho những công ty không đáp ứng được yêu cầu phần cứng hoặc phần mềm để sử
dụng các CASE Tool. Công cụ không nên là tấm hình thức phụ thuộc hoặc phần mềm
hoặc phần cứng.


18


 Chuyển giao công nghệ
Một trong những thách thức chính trong việc áp dụng CASE là thay đổi công
nghệ. CASE phụ thuộc vào quản lý, quy hoạch và kinh nghiệm đầu và nó không thể được
đảm bảo ngay cả những người có kinh nghiệm trường hợp đó có thể dễ dàng được kết
hợp.

 Môi trường
Môi trường là một yếu tố đóng vai trò quan trọng trong sự thất bại của các CASE
Tool. Là có bất kỳ thực hành tồn tại trong tổ chức để áp dụng công nghệ mới và hiệu quả
tìm hiểu nó, phe đối lập luôn luôn là có công nghệ mới và công chúng không muốn thay
đổi công nghệ hiện có, bởi vì họ phải tìm hiểu nó trước khi sử dụng nó. Hành vi của
người dân đối với sự thay đổi trong tổ chức cũng rất quan trọng, nếu các nhà phát triển và
những người khác có liên quan trong một tổ chức sẵn sàng để thực hiện và áp dụng công
nghệ mới, sau đó có ít vấn đề hơn.

 Lựa chọn các CASE Tool
Đó cũng là một mối quan tâm lớn mà một tổ chức phải chọn trường hợp một công
cụ thích hợp mà bộ có tổ chức, nhưng không may thay hầu hết của các nhà phát triển thời
gian không được tư vấn và quản lý sử dụng để chọn công cụ trường hợp đó là một trở
ngại lớn trong cách thâm nhập CASE Tool. Trước khi lựa chọn bất kỳ công nghệ mới,
những người sử dụng chúng phải được tư vấn bởi vì họ tốt hơn có thể lập luận rằng làm
thế nào họ có thể sử dụng hiệu quả các CASE Tool. Vì có nhiều công cụ cho cùng một
vấn đề nên việc lựa chọn công cụ thị trường là một mối quan tâm lớn.

III. Mục tiêu
Phần này cung cấp kiến thức để:

• Biết các vai trò của các CASE Tool và sự sử dụng bởi các tổ chức ;
• Biết các thành phần của CASE Tools ;
• Giải thích các CASE Tool trực quan và biết về một số công cụ thương mại;

19


• Mô tả các CASE Tool tinh vi ;
• Mô tả các CASE Tools hướng đối tượng với tiện ích của chúng trong phát triển
phần mềm.

1. Đôi nét về CASE Tool
CASE (Computer Aided Software Engineering) là việc sử dụng máy tính hỗ trợ
quá trình phát triển công nghệ phần mềm. Sự hỗ trợ có thể là của bất kỳ loại như quản lý,
kỹ thuật hoặc hành chính trên bất kỳ một phần của quá trình phát triển phần mềm. Tất cả
các phần mềm tham gia giúp đỡ trong quá trình phát triển công nghệ phần mềm có thể
được gọi là CASE Tool.
Khi hoạt động phát triển phần mềm trở nên phức tạp và không thể quản lý được,
đã có một nhận thức về sự cần thiết cho các công cụ tự động để giúp các nhà phát triển
phần mềm để thực hiện nhiệm vụ này. Ban đầu, đã được tập trung chủ yếu vào chương
trình công cụ hỗ trợ như thiết kế của phiên dịch, biên dịch, lắp ráp, các bộ vi xử lý vĩ mô,
và các công cụ khác. Khi máy tính trở nên mạnh mẽ hơn và các phần mềm chạy trên
chúng đã phát triển lớn hơn và phức tạp hơn, các công cụ hỗ trợ đã bắt đầu mở rộng hơn
nữa. Một số khả năng của CASE Tool cũng được tìm thấy trong các phần mềm ứng dụng
phát triển chung.
Quy mô lớn sử dụng máy tính đã đòi hỏi phải sử dụng tối đa và hiệu quả và phát
triển phần mềm cho các hoạt động khác nhau của bất kỳ tổ chức nào. Một nỗ lực phát
triển phần mềm có thể được xem như là một nỗ lực đáng kể để thiết kế các giải pháp
thích hợp, kiểm tra và thực hiện các giải pháp và cuối cùng là tài liệu các giải pháp.
Trong quan điểm này, một loạt các công cụ hỗ trợ bắt đầu xuất hiện để giúp các nhóm

phát triển.

2. Vai trò của các CASE Tool
CASE Tool đóng một vai trò quan trọng trong các hoạt động sau đây:
• Quản lý dự án
• Từ điển dữ liệu

20


• Sinh mã (sinh code)
• Thiết kế giao diện người dùng
• Sinh giản đồ
• Tạo ra các siêu dữ liệu cho kho dữ liệu
• Kỹ thuật đảo ngược
• Tái lập
• Sinh tài liệu
• Kiểm soát phiên bản
• Phân tích thiết kế hướng đối tượng
• Kiểm thử phần mềm
• Mô hình hóa dữ liệu
• Lập kế hoạch dự án
• Dự toán
Công nghệ CASE đã dẫn đến những cải tiến đáng kể về chất lượng và năng suất.
CASE - một công cụ lý tưởng nên hỗ trợ tất cả các khía cạnh của sự phát triển hệ thống
như phân tích, thiết kế, thử nghiệm, thực hiện và bảo trì. Tất cả các khía cạnh của quá
trình công nghệ phần mềm không được hỗ trợ bởi công cụ CASE của ngày hôm nay. Hầu
hết các CASE Tool cung cấp hỗ trợ tốt cho mô hình hóa dữ liệu, thiết kế và lập trình
hướng đối tượng. Ngoài ra, họ vừa phải hỗ trợ kiểm tra và bảo trì.


3. Ưu điểm của CASE Tool
 Sau đây là một số lợi thế của CASE Tool:
• Môi trường phát triển tích hợp: CASE Tool cung cấp giao diện người
dùng duy nhất cho các nhà phát triển và nhà phân tích, tự động hóa các hoạt động
tốn thời gian và tẻ nhạt như sinh mã.

21


• Hướng dẫn phát triển: Nó cung cấp nền tảng chung cho tất cả các nhà phát
triển và giúp phát triển hệ thống phương pháp.
• Tính nhất quán giữa các mô hình và tài liệu: Tài liệu được tạo ra của mô
hình tự động dẫn đến sự nhất quán giữa các mô hình và tài liệu hướng dẫn.

 Nhược điểm của CASE Tool
Sau đây là một số trong những nhược điểm của các CASE Tool:
• Chức năng phức tạp
• Nhiều vấn đề quản lý dự án đó không phù hợp để tự động hóa. Do đó, các
CASE Tool không thể được sử dụng trong những hoạt động như vậy.
Các hoạt động có thể được tự động hóa, cho dù một phần hoặc hoàn toàn, phụ
thuộc vào các CASE Tool được sử dụng. Hầu hết các CASE Tool tạo ra một mô hình làm
việc hoặc mẫu thử nghiệm, mà làm cho quá trình phát triển nhanh hơn và dễ dàng hơn.

4. Các loại CASE Tool
Sau đây là các loại khác nhau của các CASE Tool:
• Kế hoạch và quản lý công cụ: Bắt đầu quá trình phát triển với thông tin quy
hoạch và quản lý dự án.
• Công cụ phân tích: Những công cụ này đảm bảo rằng các yêu cầu kinh doanh
một cách chính xác bắt trong giai đoạn phân tích sớm trong quá trình phát triển. Công cụ
phân tích được sử dụng để kiểm tra các thông số kỹ thuật không đầy đủ, không phù hợp

hoặc không chính xác.
• Thiết kế bộ công cụ: Nó cung cấp đặc điểm kỹ thuật chi tiết của hệ thống.
• Thông tin tích hợp: Nó tích hợp kỹ thuật hệ thống và kiểm tra chúng cho phù hợp
và đầy đủ . Nó cũng ghi lại trong kho CASE .
• Sinh mã: Nó sẽ tự động tạo ra mã cụ thể cho một ngôn ngữ dựa trên các đặc
điểm kỹ thuật của hệ thống.

22


• Cơ sở dữ liệu thiết kế bộ công cụ: Nó gợi ý thiết kế cơ sở dữ liệu và tạo ra hệ
thống thông tin điều khiển.
• Giao diện người dùng máy phát điện: Nó tạo ra giao diện người sử dụng dựa trên
đặc điểm kỹ thuật của hệ thống.
• Kết xuất bảo cáo: Nó tạo ra các báo cáo dựa trên đặc điểm kỹ thuật

Hình 2.1: Các thành phần của một CASE Tool điển hình
Tất cả các công cụ CASE được dựa trên nguyên mẫu là đặc biệt hữu ích khi yêu
cầu người sử dụng rất khó để xác định. Các hệ thống lớn sử dụng phương pháp tiếp cận
SDLC truyền thống nhưng một phần của hệ thống có thể là nguyên mẫu. Các mẫu thử
nghiệm sau đó liên tục tinh chế cho đến khi nó trở thành chấp nhận được.

23


5. Phân loại CASE Tool

Hình 2.2: Các loại Case Tool.
Mặc dù các CASE Tool có thể được phân loại tùy thuộc vào các chức năng, chúng
có thể được phân loại thành năm danh mục chung chung:

• Phát triển các công cụ: Những công cụ này tương tác trong tự nhiên. Chúng được
sử dụng để hỗ trợ thiết kế và thế hệ mã.
• Công cụ front-end: Chúng hỗ trợ hoạt động earlyin vòng đời của một quá trình
phát triển phần mềm (lập kế hoạch, phân tích và thiết kế). Ví dụ như lưu lượng dữ liệu sơ
đồ, sơ đồ cấu trúc dữ liệu, sơ đồ ER, các công cụ tạo mẫu, vv

24


• Công cụ back-end: Chúng hỗ trợ các hoạt động sau này trong vòng đời của một
quá trình phát triển phần mềm ( Thực hiện và bảo trì). Ví dụ Sare chương trình biểu đồ
lưu lượng, chương trình soạn thảo, trình sửa lỗi, mã máy phát điện...
• Các công cụ ngang: công cụ này là không cụ thể cho một bước chu kỳ cuộc sống
cụ thể nhưng phổ biến trên một số ví dụ như bước chu kỳ cuộc sống, Tài liệu công cụ.
• Công cụ dọc: Những công cụ này là cụ thể cho một chu kỳ sống.

6. Kỹ thuật đảo ngược và chuyển tiếp
Chúng tôi sẽ thảo luận về hai khái niệm quan trọng liên quan đến các CASE Tool
cụ thể là, kỹ thuật chuyển tiếp và đảo ngược. Hình 2.3 mô tả cả hai kỹ thuật về chuyển
tiếp và đảo ngược.
Kỹ thuật đảo ngược là quá trình vui chơi giải trí của mô hình dựa trên mã hiện tại.
Trước tiên, các mã hiện tại được quét để tạo ra các mô hình. Sau đó, các mô hình có thể
được điều chỉnh phù hợp với yêu cầu. Kỹ thuật đảo ngược cho phép các nhà phát triển để
tạo ra mô hình cho các hệ thống cũ, mà chưa bao giờ được mô hình. Nó phân tích phần
mềm hiện có với mục đích của sự hiểu biết thiết kế và đặc điểm kỹ thuật của nó. đảo
ngược công cụ kỹ thuật đọc mã nguồn của chương trình và tạo ra đại diện đồ họa và văn
bản của thiết kế.
Kỹ thuật chuyển tiếp là quá trình thế hệ mã khung của các mô hình. Bước đầu tiên
là để tạo ra các mô hình cho một hệ thống, sau đó tạo ra các mã có liên quan cho mô hình
và sau đó cho phép sửa đổi của mã này trong điều chỉnh với các yêu cầu. Kỹ thuật lại có

nghĩa là “tái cơ cấu và viết lại hệ thống di sản hoặc một phần của nó mà không cần thay
đổi chức năng ban đầu của nó”. Nỗ lực tái cơ làm cho phần mềm được cập nhật công
nghệ hiện tại và do đó dễ duy trì. Hệ thống mới này sẽ trở thành cơ cấu lại và các tài liệu
lại. Kỹ thuật tái lập công cụ đọc mã nguồn của chương trình và tương tác thay đổi và hệ
thống hiện có để cải thiện hiệu suất chất lượng hoặc bảo trì.

25


×