Mức Độ Áp Dụng Mẫu Trong Quá Trình Phát Triển Phần Mềm


- Các công cụ này có liên quan nhiều tới môi trường lập trình hướng đối tượng, ngôn ngữ thế hệ bốn, sản sinh chương trình.

- Các công cụ lập trình:

+ Các công cụ mã hoá truyền thống: Bộ dịch (Complier), bộ soạn thảo (Editor), bộ gỡ rối (Debugger)

+ Các công cụ mã hoá thế hệ 4: Bộ sinh ứng dụng, bộ sinh mã, ngôn ngữ thế hệ 4

+ Các công cụ lập trình hướng đối tượng: C++, Eiffel, Smalltalk, Objective-C, C#.

6) Tích hợp và kiểm tra

- Các công cụ kiểm tra tĩnh: Giúp các kỹ sư phần mềm trong việc rút ra các trường hợp kiểm tra. Ba kiểu khác nhau của các công cụ kiểm tra tĩnh được dùng trong công nghiệp: các công cụ kiểm tra dựa trên mã, các ngôn ngữ kiểm tra đặc tả và các công cụ kiểm tra dựa trên yêu cầu.

- Các công cụ kiểm tra động: Tương tác với quá trình thực hiện chương trình, kiểm tra đường thử, kiểm tra xác nhận về giá trị các biến, các công cụ động có thể là loại can thiệp hoặc không can thiệp. Công cụ can thiệp (intrusive) thay đổi phần mềm để kiểm tra. Công cụ không can thiệp (nointrusive) sử dụng một xử lý phần cứng tách rời chạy song song với xử lý chưa có chương trình đang kiểm tra.

- Công cụ quản lý Test: Dùng để điều khiển và phối hợp các kiểm tra phần mềm cho mỗi bước kiểm tra chính. Một bộ điều khiển test đọc một hoặc nhiều trường hợp test từ file test, định dạng các dữ liệu test để phù hợp nhu cầu phần mềm, sau đó gọi phần mềm để test. Cuối cùng, nhà quản lý test đôi khi làm việc với công cụ theo dòi yêu cầu để cung cấp các phân tích coverage yêu cầu cho kiểm tra.

7) Tạo mẫu

Hỗ trợ quá trình tạo ra các mẫu chương trình. Tạo mẫu được dùng rộng rãi như là sự tiến hoá của công nghệ phần mềm. Các công cụ tạo mẫu được phân bổ theo hình sau:

Hình 6 3 Mức độ áp dụng mẫu trong quá trình phát triển phần mềm Mức thấp 1

Hình 6.3. Mức độ áp dụng mẫu trong quá trình phát triển phần mềm


Mức thấp nhất, các công cụ tạo "mẫu trên giấy". Công cụ chạy trên máy có thể tạo các hình ảnh thực dùng để minh hoạ các chức năng, dáng điệu hệ thống. Các hình ảnh này không thể thực hiện được. Trong một số trường hợp, bộ vẽ màn hình có thể sinh ra các mã để tạo màn hình. Các công cụ CASE phức tạp hơn cho phép tạo các thiết kế dữ liệu, cả màn hình hiển thị và báo biểu.

8) Bảo trì

- Các công cụ thiết kế ngược: Tiến hành tạo lại các phân tích ban đầu trên cơ sở các chương trình đã tồn tại. Các công cụ này cũng có thể phân ra loại tĩnh và động. Một công cụ thiết kế ngược dùng mã nguồn như đầu vào và phân tích lấy ra kiến trúc chương trình, cấu trúc điều khiển, luồng logic, cấu trúc dữ liệu, luồng dữ liệu. Các công cụ thiết kế phụ thuộc tiến hành phần lớn các chức năng trên, ngoài ra nó còn xây dựng sơ đồ graphic biểu diễn sự phụ thuộc chỉ sự liên kết giữa các cấu trúc dữ liệu, khối chương trình, và các đặc tính khác của chương trình.

- Các công cụ cấu trúc mã lại: Nhận mã nguồn phi cấu trúc như là đầu vào, tạo thiết kế ngược, sau đó cấu trúc lại mã mới. Mặc dù các công cụ như vậy có thể hữu ích, chúng chỉ tập trung trong việc thiết kế thủ tục của chương trình.

- Các công cụ thiết kế lại dữ liệu: Truy nhập định nghĩa dữ liệu hoặc cơ sở dữ liệu được mô tả trong ngôn ngữ lập trình hoặc ngôn ngữ mô tả cơ sở dữ liệu. Sau đó nó chuyển sang dạng biểu diễn graphic có thể phân tích được bởi kỹ sư phần mềm.

Tương tác với các công cụ thiết kế lại, kỹ sư phần mềm có thể thay đổi cấu trúc của cơ sở dữ liệu, chuẩn hoá dữ liệu, sau đó tự động sinh mã mới. Các công cụ có thể sử dụng hệ chuyên gia.

6.5.3. Một số công cụ được cung cấp tự động cho việc sinh mã

Các tiện ích CASE được xây dựng trên việc sinh mã hay các giao diện phục vụ cho sinh mã, cho phép trộn lẫn các mã khác nhau để phù hợp với môi trường phát triển và ngôn ngữ sinh ra.

Những tiện ích trên cung cấp một cách tự động bao gồm các tiện ích sinh mã, chương trình biên dịch lớn dần và môi trường tạo ra chương trình. Toàn bộ chúng chính là tiện ích Lower CASE hay Back-End CASE.

Một số CASE thông dụng hiện nay như:

Bảng 6.2. Một số CASE thông dụng


Sản phẩm

Kỹ thuật

ADW-Construction Workbench của Knowledgeware Inc.,

Atlanta, CA

Xây dựng các mã giả bằng các modul, nó dùng cho việc sinh mã cho MsDOS,

MVS

Cdevelopment Environment,

OOSD/C++ của S/Cubed Inc. Stamford, CT

Sinh mã Cobol cho các Mainframe,

AS/400, OS/2. Sinh mã C cho MsDOS, OS/2

Có thể bạn quan tâm!

Xem toàn bộ 305 trang tài liệu này.


Sản phẩm

Kỹ thuật


IEW của Texas Instruments Dallas, TX

Sinh mã Cobol gắn với SQL, sinh mã C Cho MVS, MsDOS, OS/2.

Giao diện cho Telon và sinh ra các mã khác.

NeXTStep 3.0 của NeXT Computer

Redwood City, CA

Môi trường cơ sở dữ liệu hướng đối tượng

ObjectMaker của Mark V Systems

Sinh mã C hay C++ cho MsDOS, VMS, Unix, AIX

Software Through Pictures của Intergrated Development

Sinh mã C hay C++ cho Unix, AIX

Systems Architect của Popkin Software & System Inc. New York, NY


Sinh mã C cho MsDOS, OS/2

Teamwork,Ensemble của Cadre Technologies Providence, RI.

Sinh mã C hay C++ cho Unix, OS/2, AIX

Visible Analyst Workbench của Visible Systems Corp. Newton,

MA.


Sinh mã C cho MsDOS

6.6. Các công việc của cán bộ lập trình

Bảng 6.3. Các công việc của cán bộ lập trình


STT

Nhiệm vụ/Công việc

1.

Lập kế hoạch lập trình

2.

Chuẩn bị các công cụ cần thiết cho việc lập trình

3.

Thiết kế module chi tiết

4.

Lập trình và tích hợp

5.

Xem xét code và thử nghiệm

6.

Xây dựng công cụ cài đặt

7.

Viết tài liệu mô tả chức năng phần mềm

8.

Hỗ trợ các vấn đề liên quan đến lập trình

9.

Báo cáo và tổng hợp kết quả lập trình

10.

Lập và lưu trữ các hồ sơ liên quan đến lập trình

11.

Thu thập và kiểm soát các dữ liệu liên quan đến các hoạt động lập trình

12.

Tính toán và phân tích các chỉ tiêu liên quan đến các hoạt động lập trình


CÂU HỎI VÀ BÀI TẬP CHƯƠNG 6


1. Nêu khái niệm cài đặt phần mềm.

2. Nêu các kỹ năng lập trình.

3. Các yếu tố của kỹ năng lập trình.

4. Nêu các yêu cầu khi xây dựng câu lệnh.

5. Nêu các tiêu chí của kỹ thuật vào ra.

6. Nêu các phương pháp lập trình.

7. Nêu các nền tảng của ngôn ngữ lập trình

8. Nêu các lớp ngôn ngữ dùng để cài đặt phần mềm? Mỗi loại cho một ví dụ.

9. Công cụ CASE là gì ? Nêu các loại Case.

10. Nêu tóm tắt các loại công cụ CASE. Tại sao phải sử dụng công cụ CASE? Cho ví dụ về công cụ CASE.

11. Chỉ ra một số công cụ Case trong phần mềm SQL Server 2008.

12. Dùng ngôn ngữ VB.Net để viết một đoạn lệnh giải một phương trình bậc nhất sao cho đoạn lệnh đó thỏa mãn các yêu cầu khi xây dựng câu lệnh. Giải thích cách viết.

13. Giải thích vì sao SQL lại được gọi là lớp ngôn ngữ thế hệ thứ 4

14. Chọn một phương án tốt nhất cho các câu hỏi sau:

1) Các yếu tố nào sau đây thuộc kỹ thuật lập trình ?

a. Tài liệu chương trình, các kỹ thuật vào/ra

b. Phương pháp khai báo dữ liệu

c. Cách tiếp cận đến việc xây dựng câu lệnh

d. Cả a, b, c

2) PASCAL, C, ADA, MODULA-2, C++ thuộc lớp ngôn ngữ thế hệ thứ mấy? a. 2 b. 3 c. 4 d. 1

3). Lớp ngôn ngữ thế hệ nào sau đây được viết theo mã máy hoặc hợp ngữ ? a. 1 b. 2 c. 3 d. 4

4) Loại Case nào sau đây được dùng để thiết kế Logic ?

a. ICASE b. Upper CASE c. Lower CASE d. Cả a và b

5) Loại Case nào sau đây được dùng để công cụ chỉ hỗ trợ lập trình ?

a. ICASE b. Upper CASE

c. Lower CASE d. Cả a và c

6) Công cụ nào sau đây thuộc loại công cụ lập trình ?

a. Các công cụ mã hoá truyền thống b. Công cụ SA/SD

c. Công cụ PRO/SIM d. Các công cụ kiểm tra tĩnh

7) Công cụ nào sau đây thuộc loại công cụ phân tích và thiết kế ?


a. Các công cụ mã hoá thế hệ 4 b. Công cụ SA/SD

c. Công cụ quản lý test d. Các công cụ kiểm tra tĩnh

8) Công cụ nào sau đây thuộc loại công cụ tích hợp và kiểm tra ?

a. Các công cụ lập trình hướng đối tượng

b. Công cụ SA/SD

c. Các công cụ thiết kế lại

d. Công cụ quản lý test

9) Công cụ nào sau đây thuộc loại công cụ các công cụ bảo trì ?

a. Các công cụ kiểm tra tĩnh

b. Các công cụ kiểm tra động

c. Các công cụ thiết kế lại

d. Các công cụ phát triển và thiết kế giao diện


Chương 7

KIỂM TRA CHẤT LƯỢNG PHẦN MỀM


7.1. Chất lượng phần mềm

Thông thường thì phần mềm không hoạt động như mong muốn. Do đó, gây lãng phí tiền bạc, thời gian, uy tín của doanh nghiệp, thậm chí có thể gây nên thương tích hay cái chết. Ví dụ khi Website công ty có nhiều lỗi chính tả trong câu chữ, khách hàng có thể lảng tránh công ty với lý do công ty trông có vẻ không chuyên nghiệp.

Kiểm tra chất lượng phần mềm là một hoạt động khó khăn để chấp nhận về mặt ý thức vì chúng ta đang cân nhắc công việc của chúng ta hoặc của đồng nghiệp để tìm lỗi. Sau quá trình làm việc trong nhóm và trở thành thành viên, chúng ta ngại tìm ra lỗi và không phát hiện được ra chúng thông qua kiểm tra. Khi một người nào đó tiến hành kiểm tra lại không phải là thành viên của dự án, ví dụ một chuyên gia kiểm tra, họ được nhìn nhận như là một kẻ thù.

Kiểm tra chất lượng phần mềm lại là một hoạt động khó được chấp nhận đối với việc quản lý vì nó tốn kém, mất thời gian và hiếm khi phát hiện được lỗi. Kết quả là phần lớn các ứng dụng không được kiểm tra đầy đủ và được phát hành với lỗi tiềm ẩn.

Kiểm tra phần mềm giúp làm cho chất lượng phần mềm được nâng cao. Chúng ta có thể đánh giá chất lượng phần mềm dựa vào số lượng lỗi tìm thấy và các đặc tính như: tính đúng đắn, tính dễ sử dụng, tính dễ bảo trì,…Kiểm thử có thể đem lại sự tin tưởng đối với chất lượng phần mềm nếu có ít lỗi hoặc không có lỗi nào được tìm thấy. Nếu lỗi tìm thấy và được sửa thì chất lượng phần mềm càng được tăng. Do đó, giảm chi phí trong quá trình phát triển, nâng cấp, bảo trì phần mềm. Chi phí cho việc tìm thấy và sửa lỗi tăng dần trong suốt chu kỳ sống của phần mềm. Lỗi tìm thấy càng sớm thì chi phí để sửa càng thấp và ngược lại.

Tuy vậy, chất lượng phần mềm cao là một mục tiêu quan trọng của nhóm phát triển phần mềm. Do vậy, cần và phải đảm bảo được các tiêu chuẩn của phần mềm. Đảm bảo chất lượng phần mềm là một hoạt động có hệ thống và kế hoạch.

Các hoạt động của kiểm thử:

- Lập kế hoạch test (test plan)

- Chọn các điều kiện test (test conditions)

- Thiết kế các trường hợp test (test cases)

- Kiểm tra kết quả, ước lượng khi nào thì dừng test.

- Báo cáo kết quả test.

Theo chuẩn ANSI/IEEE, kế hoạch đảm bảo chất lượng phần mềm như sau:

I. Mục đích của kế hoạch


II. Tham khảo

III. Quản lý

A. Tổ chức

B. Nhiệm vụ

C. Trách nhiệm

IV. Tài liệu

A. Mục đích

B. Tài liệu công nghệ phần mềm cần thiết

C. Các tài liệu khác

V. Chuẩn, thực hành và quy ước

A. Mục đích

B. Quy ước

VI. Xét duyệt và kiểm toán

A. Mục đích

B. Các yêu cầu xét duyệt

1. Xét duyệt yêu cầu phần mềm

2. Xét duyệt thiết kế

3. Kiểm chứng phần mềm và xét duyệt hợp lệ

4. Kiểm toán chức năng

5. Kiểm toán vật lý

6. Kiểm toán trong tiến trình

7. Xét duyệt quản lý

VII. Quản lý cấu hình phần mềm

VIII. Báo cáo vấn đề và cách sửa chữa

IX. Công cụ, kỹ thuật và phương pháp luận

X. Kiểm soát mã

XI. Kiểm soát phương tiện

XII. Kiểm soát người cung cấp

XIII. Thu thập bảo trì và ghi nhớ báo cáo

Việc đảm bảo chất lượng phần mềm là một hoạt động bản chất cho bất kỳ nhóm phát triển phần mềm nào sản xuất ra phần mềm cho người sử dụng.

7.2. Độ tin cậy của phần mềm

7.2.1. Các lỗi thường gặp

Khi phân tích chất lượng, phần mềm thường gặp một số lỗi như:

- Lỗi chiến lược: Ý đồ thiết kế sai

- Phân tích các yêu cầu không đầy đủ hoặc lệch lạc

- Hiểu sai về các chức năng


- Vi phạm nguyên lý đối tượng

- Lỗi tại các thủ tục chịu tải, đây là những lỗi nặng.

- Lỗi lây lan: Lỗi được truyền từ chương trình này sang chương trình khác

- Lỗi cú pháp: Viết sai quy định của ngôn ngữ.

- Hiệu ứng phụ: Lỗi xảy ra khi một đơn vị chương trình làm thay đổi giá trị của một biến ngoài ý kiến của lập trình viên.

Các lỗi của phần mềm tuân theo nguyên lý mức độ lỗi:

- Mức chịu tải tăng theo chiều đi xuống: lỗi phát ra ở mức dưới được xem là nặng hơn ở mức trên.

- Lỗi nặng nhất nằm ở mức cao nhất (ý đồ thiết kế ) và ở mức thấp nhất (thủ tục chịu tải lớn nhất)

7.2.2. Khái niệm độ tin cậy của phần mềm

Độ tin cậy của một hệ phần mềm là độ đo về mức độ tốt của các dịch vụ mà hệ cung cấp cho máy tính. Cần chú ý là người dùng không xét rằng các dịch vụ là quan trọng như nhau. Chẳng hạn một hệ điều khiển máy bay có thể rất, rất hiếm khi thất bại, nhưng nếu chúng có thất bại gây ra tai nạn máy bay thì các người bị nạn và thân nhân người bị nạn không thể xem hệ đó là đáng tin.

Độ tin cậy là một đặc trưng động của hệ thống, nó là một hàm của số các thất bại phần mềm. Một thất bại phần mềm là một sự kiện thi hành mà khi đó phần mềm hành xử không như người ta mong đợi. Chú ý rằng một thất bại phần mềm khác một hư hỏng phần mềm. Hư hỏng phần mềm là một đặc trưng tĩnh, và nó sẽ gây ra thất bại phần mềm khi mà mã lỗi được thi hành với một tập hợp đặc biệt các thông tin vào. Các hư hỏng không phải luôn luôn xuất đầu lộ diện, vì vậy độ tin cậy phụ thuộc vào việc sử dụng hệ thống như thế nào. Không thể đưa ra một phát biểu đơn giản và khái quát về độ tin cậy phần mềm.

Các hư hỏng phần mềm không phải là các khuyết tật của chương trình. Một hành xử bất ngờ có thể xảy ra khi mà phần mềm phù hợp với các yêu cầu của nó, nhưng mà chính các yếu tố đó lại không đầy đủ. Các sai sót trong các tư liệu phần mềm cũng có thể dẫn đến các hành vi bất ngờ mặc dầu rằng phần mềm không có khiếm khuyết.

Có công trình nghiên cứu đã chỉ ra rằng có thể rút bỏ 60% các khiếm khuyết mà chỉ có thể cải tạo được 3% độ tin cậy. Cũng có người đã chú ý rằng nhiều khiếm khuyết trong sản phẩm chỉ là kết quả của hàng trăm hoặc hàng nghìn tháng sử dụng.

7.2.3. Một số đánh giá về độ tin cậy

1) Đặc tả độ tin cậy phần mềm

- Phân tích hệ quả của các thất bại.

- Chia các thất bại thành các nhóm khác nhau.

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 28/06/2022