Computer-Aided Software Engineering

Computer-Aided Software Engineering (CASE) là hệ thống các công cụ được sử dụng để thiết kế và phát triển các phần mềm với sự trợ giúp của máy tính. Các công cụ CASE được lấy cảm hứng từ các công cụ CAD được sử dụng để thiết kế các sản phẩm phần cứng. Các công cụ CASE được sử dụng để phát triển phần mềm có chất lượng cao, không có khiếm khuyết và có khả năng duy trì được. Phần mềm CASE thường được kết hợp với các phương pháp phát triển hệ thống thông tin cùng với các công cụ tự động có thể được sử dụng trong quá trình phát triển phần mềm.

Lịch sử
Dự án Thiết kế hệ thống thông tin và Tối ưu hệ thống (ISDOS) được bắt đầu vào năm 1968 tại Đại học Michigan đã thu hút nhiều sự quan tâm về các khái niệm liên quan tới việc sử dụng các hệ thống máy tính để giúp các nhà phân tích trong quá trình phân tích các yêu cầu và phát triển hệ thống. Một số bài viết của Daniel Teichroew đã thổi bùng lên ngọn lửa trong những người mang đầy nhiệt huyết với tiềm năng phát triển hệ thống tự động. Công cụ Ngôn ngữ phát biểu vấn đề/Bộ phân tích phát biểu vấn đề (PSL/PSA) do ông phát triển là một công cụ CASE mặc dù nó ra đời và tồn tại trước khi có thuật ngữ về CASE.

Thuật ngữ này được đặt ra lần đầu tiên bởi công ty phần mềm Nastec (Southfield, Michigan) vào năm 1982 với trình đồ họa tích hợp và soạn thảo văn bản đầu tiên GraphiText. Đây cũng là hệ thống dựa trên máy vi tính đầu tiên sử dụng các siêu liên kết tới chuỗi văn bản tham chiếu chéo trong các tài liệu – tiền thân của liên kết trang web ngày nay. Sản phẩm kế nhiệm của GraphiText là DesignAid - công cụ đầu tiên dựa trên bộ vi xử lý để đánh giá một cách logic, ngữ nghĩa những biểu đồ thiết kế phần mềm, hệ thống và xây dựng một từ điển dữ liệu.

Dưới sự hướng dẫn của Albert F. Case, Jr. - phó chủ tịch quản lý và tư vấn sản phẩm của công ty Nastec và Vaughn Frick -  giám đốc quản lý sản phẩm, bộ sản phẩm DesignAid được phát triển mở rộng để hỗ trợ phân tích trên phạm vi rộng các phương pháp phân tích và thiết kế có cấu trúc, bao gồm cả các phương pháp phân tích và thiết kế có cấu trúc của Ed Yourdon và Tom DeMarco, Chris Gane và Trish Sarson, Ward-Mellor (thời gian thực) SA/SD và Warnier-Orr.

Công cụ tiếp theo gia nhập vào thị trường là Excelerator của Công ty Index Technology (Cambridge, Massachusetts). Công ty đã giới thiệu công cụ Excelerator trên nền tảng PC/AT của IBM. Mặc dù vào thời điểm giới thiệu công cụ và trong nhiều năm sau, nền tảng IBM không hỗ trợ mạng hoặc cơ sở dữ liệu tập trung như các công nghệ Convergent Technologies hoặc Burroughs nhưng với sự hấp dẫn mạnh mẽ vốn có của IBM, Excelerator đã trở nên nổi bật. Theo sau Excelerator là sự bùng nổ của các công cụ từ các công ty như Knowledgeware (James Martin, Fran Tarkenton và Don Addington), công cụ IEF của Texas Instrument và Bộ công cụ FOUNDATION của Andersen Consulting (gồm DESIGN/1, INSTALL/1, FCP).

Các công cụ CASE đã đạt tới đỉnh cao vào đầu những năm 1990. Tại thời điểm đó, IBM đã đề xuất AD/Cycle - liên minh các nhà cung cấp phần mềm tập trung vào Kho phần mềm của IBM, sử dụng DB2 dành cho máy tính lớn và hệ điều hành OS/2.

Tuy nhiên, với sự suy giảm của máy tính lớn, AD/Cycle và các công cụ Big CASE đã không thể tiếp tục tồn tại, điều đó mở ra thị trường cho các công cụ CASE hiện nay. Nhiều công cụ CASE hàng đầu trên thị trường vào đầu những năm 1990 đã được mua lại bởi Computer Associates bao gồm: IEW, IEF, ADW, Cayenne và Learms & Burchett Management Systems (LBMS). Một xu hướng khác dẫn đến sự phát triển của các công cụ CASE là sự gia tăng của các phương pháp và công cụ hướng đối tượng. Hầu hết các nhà cung cấp công cụ đều cung cấp thêm một số hỗ trợ cho các phương pháp và các công cụ hướng đối tượng. Ngoài ra, các sản phẩm mới cũng được thiết kế theo phương pháp thiết kế từ dưới lên (Bottom – Up Design) để hỗ trợ phương pháp tiếp cận hướng đối tượng. Ví dụ như Andersen đã phát triển dự án Eagle như một giải pháp thay thế cho bộ công cụ Foundation. Một số nhà lãnh đạo tư tưởng trong phát triển hướng đối tượng cũng phát triển phương pháp và bộ công cụ CASE của riêng họ như: Jacobsen, Rumbaugh, Booch,... Cuối cùng, những bộ công cụ và phương pháp này đã được hợp nhất thông qua các tiêu chuẩn do Nhóm quản lý đối tượng (OMG) dẫn đầu. Ngôn ngữ mô hình hóa thống nhất của OMG hiện đang được chấp nhận rộng rãi như một tiêu chuẩn của ngành mô hình hướng đối tượng.

Mục đích
Về cơ bản, phần mềm CASE được sử dụng nhằm phát triển tốt các hệ thống:
Đảm bảo (tăng cường sử dụng) tiêu chuẩn về các công cụ và giải pháp phát triển.
Đảm bảo việc hỗ trợ quản lý dự án cho chuyên viên thiết kế cũng như các nhà quản lý.
Cải thiện việc tái sử dụng các phần mềm đã được phát triển.
Giảm thiểu chi phí duy trì phần mềm trong tương lai.

Phân loại phần mềm CASE
Alfonso Fuggetta đã phân loại phần mềm CASE thành ba loại:
Các công cụ (Tools) hỗ trợ các tác vụ cụ thể trong vòng đời của phần mềm.
Các bàn làm việc (Workbenches) phối hợp hai hoặc nhiều công cụ tập trung vào một phần cụ thể của vòng đời phần mềm.
Các môi trường (Environments) phối hợp hai hoặc nhiều công cụ hoặc nhiều bàn làm việc và hỗ trợ vòng đời phần mềm hoàn chỉnh.

Các công cụ (Tools)
Các công cụ CASE hỗ trợ các công việc cụ thể trong chu trình phát triển phần mềm. Chúng có thể được chia thành các loại sau:
Mô hình kinh doanh và phân tích. Các công cụ mô hình đồ họa. Ví dụ: mô hình E/R, mô hình đối tượng,...
Phát triển. Các giai đoạn thiết kế và xây dựng của vòng đời. Gỡ lỗi môi trường. Ví dụ: Trình gỡ lỗi GNU (GNU Debugger).
Xác minh và xác nhận. Phân tích mã và các thông số kỹ thuật về tính chính xác, hiệu suất,...
Quản lý cấu hình. Kiểm soát việc đăng ký, kiểm tra các đối tượng lưu trữ và các tệp tin. Ví dụ: SCCS, CMS.
Chỉ số và đo lường. Phân tích mã cho tính phức tạp, mô đun, hiệu suất,...
Quản lý dự án. Quản lý kế hoạch dự án, phân công nhiệm vụ, lên kế hoạch.
Một cách phổ biến khác để phân biệt các công cụ CASE là sự khác biệt giữa Upper CASE (công cụ ý tưởng) và Lower CASE (công cụ chỉ hỗ trợ lập trình). Các công cụ Upper CASE hỗ trợ mô hình kinh doanh và phân tích. Các công cụ Lower CASE hỗ trợ các hoạt động phát triển, như thiết kế vật lý, gỡ lỗi, xây dựng, thử nghiệm, tích hợp thành phần, bảo trì và công nghệ đảo ngược.

Các bàn làm việc (Workbenches)
Các bàn làm việc tích hợp hai hoặc nhiều công cụ CASE và hỗ trợ các hoạt động xử lý phần mềm cụ thể. Do đó nó đạt được:
Một giao diện thống nhất, nhất quán (tích hợp giao diện).
Tích hợp liền mạch các công cụ và chuỗi công cụ (kiểm soát và tích hợp dữ liệu).
Một ví dụ về bàn làm việc là môi trường lập trình Visual Basic của Microsoft. Nó kết hợp nhiều công cụ phát triển: trình tạo giao diện đồ họa người dùng, trình biên tập mã thông minh, trình gỡ lỗi,... Hầu hết các sản phẩm CASE thương mại có xu hướng là những bàn làm việc tích hợp liền mạch hai hoặc nhiều công cụ. Các bàn làm việc cũng có thể được phân loại theo cách thức phân loại các công cụ như: tập trung vào phân tích, phát triển, xác minh... hay tập trung vào Upper CASE, Lower CASE hoặc các quy trình như quản lý cấu hình kéo dài suốt vòng đời phần mềm.

Các môi trường (Environments)
Một môi trường là một tập hợp các công cụ CASE hoặc các bàn làm việc, hỗ trợ quy trình phần mềm hoàn chỉnh trong khi các công cụ CASE chỉ tập trung vào một nhiệm vụ cụ thể hoặc một phần cụ thể của vòng đời. Các môi trường CASE được phân loại bởi A.Fuggetta như sau:

Xem thêm
Công nghệ phần mềm
Kiến trúc định hướng mô hình
Ngôn ngữ lập trình

Tham khảo