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.[1]
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 đã khởi xướng nên nhiều mối 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.[2]
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.[3]
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 Index Technology đã 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.[4] 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.[5]
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.
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:[6]
Alfonso Fuggetta đã phân loại phần mềm CASE thành ba loại:[7]
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ộ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.[8]
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 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.
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:[7]
Trong thực tế, sự khác biệt giữa bàn làm việc và môi trường rất linh hoạt. Ví dụ: Visual Basic là một bàn làm việc lập trình nhưng cũng được coi là một môi trường 4GL đối với nhiều người. Các tính năng để phân biệt các bàn làm việc và các môi trường là: khả năng tích hợp sâu thông qua một kho chứa dùng chung; ngôn ngữ phổ biến và một số phương pháp luận (môi trường tích hợp và trung tâm xử lý) hoặc tên miền (4GL) đặc trưng.
Một số lợi ích tổ chức có thể đạt được khi sử dụng phần mềm CASE:
Như vậy, phần mềm CASE gián tiếp cung cấp lợi thế cạnh tranh cho tổ chức thông qua việc hỗ trợ, đảm bảo sự phát triển của các sản phẩm phần mềm có chất lượng cao.
Một số nhân tố rủi ro quan trọng nhất đối với các tổ chức sử dụng công nghệ CASE bao gồm: