跳轉到內容

軟體工程/工具/建模與CASE工具簡介

來自華夏公益教科書
CASE工具示例。

計算機輔助軟體工程 (CASE) 是將一組工具和方法科學地應用於軟體系統,旨在產生高質量、無缺陷、可維護的軟體產品。[1] 它也指資訊系統開發方法,以及在軟體開發過程中使用的自動化工具。[2]

術語“計算機輔助軟體工程”(CASE)可以指用於系統軟體(即計算機程式碼)自動開發的軟體。CASE 功能包括分析、設計和程式設計。CASE 工具自動執行設計、文件化和以所需程式語言生成結構化計算機程式碼的方法。

CASE 軟體支援軟體過程活動,例如需求工程、設計、程式開發和測試。因此,CASE 工具包括設計編輯器、資料字典、編譯器、偵錯程式、系統構建工具等。

CASE 還指專門用於工程學科的方法,用於使用自動化工具開發資訊系統。

CASE 主要用於開發高質量的軟體,使其有效執行。

密歇根大學的 ISDOS 專案引起了人們對使用計算機系統來幫助分析師完成非常困難的需求分析和系統開發過程的整個概念的極大興趣。丹尼爾·泰奇羅的幾篇論文激勵了一代人對自動化系統開發的潛力充滿熱情。他的 PSL/PSA 工具是一個 CASE 工具,儘管它早於該術語。他對元元模型力量的見解令人鼓舞,特別是對一位前學生哈桑·薩亞尼博士來說,他目前是馬里蘭大學大學學院的教授和專案主任。

另一個主要趨勢是作為對 DBMS 目錄的邏輯擴充套件而出現的。透過擴充套件所儲存的元資料的範圍,應用程式的屬性可以儲存在字典中,並在執行時使用。這個“活動字典”成為更現代的“模型驅動執行”(MDE)功能的前身。但是,活動字典沒有提供任何元資料的圖形表示。正是將字典儲存分析師元資料(源於使用一組整合技術的應用)的概念與這種資料的圖形表示聯絡起來,才產生了早期版本的 I-CASE。

CASE 術語最初由軟體公司 Nastec Corporation of Southfield, Michigan 於 1982 年創造,他們的最初整合圖形和文字編輯器 GraphiText 也成為第一個使用超連結交叉引用文件中文字字串的微型計算機系統——今天網頁連結的早期先驅。GraphiText 的後續產品 DesignAid 是第一個基於微處理器的工具,能夠邏輯和語義地評估軟體和系統設計圖並構建資料字典。

在產品管理和諮詢副總裁 Albert F. Case, Jr. 和產品管理總監 Vaughn Frick 的領導下,DesignAid 產品套件擴充套件到支援廣泛的結構化分析和設計方法的分析,特別是 Ed Yourdon 和 Tom DeMarco、Chris Gane & Trish Sarson、Ward-Mellor (即時) SA/SD 和 Warnier-Orr (資料驅動)。

進入市場的下一家公司是來自馬薩諸塞州劍橋的 Index Technology 的 Excelerator。雖然 DesignAid 在 Convergent Technologies 以及後來的 Burroughs Ngen 網路微型計算機上執行,但 Index 在 IBM PC/AT 平臺上推出了 Excelerator。雖然在釋出時以及隨後幾年,IBM 平臺不支援網路或集中式資料庫,就像 Convergent Technologies 或 Burroughs 機器那樣,但 IBM 的魅力很大,Excelerator 因此聲名鵲起。緊隨 Excelerator 之後的是來自 Knowledgeware (James Martin、Fran Tarkenton 和 Don Addington)、德州儀器的 IEF 以及埃森哲的 FOUNDATION 工具集 (METHOD/1、DESIGN/1、INSTALL/1、FCP) 等公司的一系列產品。

CASE 工具在 1990 年代初達到頂峰。當時 IBM 提出了 AD/Cycle,它是由圍繞 IBM 軟體儲存庫聯盟的軟體供應商聯盟,該儲存庫使用 IBM DB2 在大型機和 OS/2 上。

應用程式開發工具可以來自多個來源:來自 IBM、來自供應商以及來自客戶自身。IBM 與 Bachman Information Systems、Index Technology Corporation 和 Knowledgeware, Inc. 達成了合作關係,其中來自這些供應商的精選產品將透過 IBM 互補營銷計劃進行銷售,以提供幫助實現完整生命週期覆蓋的產品。[3]

隨著大型機業務的衰落,AD/Cycle 和大型 CASE 工具也隨之消亡,為今天主流 CASE 工具打開了市場。1990 年代初 CASE 市場幾乎所有領導者最終都被 Computer Associates 收購,包括 IEW、IEF、ADW、Cayenne 和 Learmonth & Burchett Management Systems (LBMS)。

支援軟體

[編輯 | 編輯原始碼]

Alfonso Fuggetta 將 CASE 分為 3 類:[4]

  1. 任務僅支援軟體過程中的特定任務。
  2. 工作臺僅支援一項或幾項活動。
  3. 環境支援(大部分)軟體過程。

工作臺和環境通常構建為工具集合。因此,工具可以是獨立產品,也可以是工作臺和環境的組成部分。

CASE 工具是一類軟體,可以自動執行各種生命週期階段中涉及的許多活動。例如,在建立擬議應用程式的功能需求時,可以使用原型工具來開發應用程式螢幕的圖形模型,以幫助終端使用者直觀地瞭解應用程式開發後的外觀。隨後,系統設計師可以使用自動設計工具將原型化的功能需求轉換為詳細的設計文件。然後,程式設計師可以使用自動程式碼生成器將設計文件轉換為程式碼。如前所述,可以將自動化工具集合使用,也可以單獨使用。例如,可以將原型工具用於定義應用程式需求,然後將這些需求傳遞給設計技術人員,他們以傳統方式使用流程圖和敘述性文件來將需求轉換為詳細的設計,而無需使用自動設計軟體的幫助。[5]

現有的 CASE 工具可以沿著 4 個不同的維度分類

  1. 生命週期支援
  2. 整合維度
  3. 構建維度
  4. 基於知識的 CASE 維度[6]

讓我們逐一瞭解這些維度的含義及其示例

基於生命週期的 CASE 工具

此維度根據 CASE 工具在資訊系統生命週期中支援的活動進行分類。它們可以被分類為上層 CASE 工具或下層 CASE 工具。

  • 上層 CASE 工具支援戰略規劃和概念級產品的構建,而忽略設計方面。它們支援傳統的圖表語言,例如 ER 圖、資料流圖、結構圖、決策樹、決策表等。
  • 下層 CASE 工具專注於軟體生命週期的後端活動,例如物理設計、除錯、構建、測試、元件整合、維護、重構和逆向工程。
整合維度

人們提出了三個主要的 CASE 整合維度:[7]

  1. CASE 框架
  2. ICASE 工具
  3. 整合專案支援環境 (IPSE)

工作臺

[編輯 | 編輯原始碼]

工作臺將多個 CASE 工具整合到一個應用程式中,以支援特定的軟體過程活動。因此,它們實現了

  • 同質且一致的介面(演示整合)。
  • 輕鬆呼叫工具和工具鏈(控制整合)。
  • 訪問以集中方式管理的通用資料集(資料整合)。

CASE 工作臺可以進一步分類為以下 8 類:[4]

  1. 業務規劃和建模
  2. 分析和設計
  3. 使用者介面開發
  4. 程式設計
  5. 驗證和確認
  6. 維護和逆向工程
  7. 配置管理
  8. 專案管理

環境是支援軟體過程的 CASE 工具和工作臺的集合。 CASE 環境根據整合的重點/基礎進行分類[4]

  1. 工具包
  2. 以語言為中心
  3. 整合
  4. 第四代
  5. 以過程為中心
工具包

工具包是鬆散整合的產品集合,透過聚合不同的工具和工作臺可以輕鬆擴充套件。通常,工具包提供的支援僅限於程式設計、配置管理和專案管理。工具包本身是擴充套件自基本作業系統工具集的環境,例如,Unix 程式設計師工作臺和 VMS VAX 集。此外,工具包的鬆散整合要求使用者透過顯式呼叫或簡單控制機制來啟用工具。生成的 files 是非結構化的,並且可能以不同的格式存在,因此從不同的工具訪問 file 可能需要顯式 file 格式轉換。但是,由於新增新元件的唯一約束是 files 的格式,因此工具包可以輕鬆且增量地擴充套件。[4]

以語言為中心

環境本身是用開發它的程式語言編寫的,因此使使用者能夠重用、定製和擴充套件環境。以語言為中心的整合程式碼不同語言的問題。缺乏過程和資料整合也是一個問題。這些環境的優勢包括良好水平的演示和控制整合。Interlisp、Smalltalk、Rational 和 KEE 是以語言為中心的示例環境。[4]

整合

這些環境透過提供統一、一致且連貫的工具和工作臺介面來實現演示整合。資料整合是透過儲存庫概念實現的:它們有一個專門的資料庫來管理在環境中生成和訪問的所有資訊。整合環境的例子包括 IBM AD/Cycle 和 DEC Cohesion。[4]

第四代

第四代環境是第一個整合環境。它們是一組支援開發特定類別的程式的工具和工作臺:電子資料處理和麵向業務的應用程式。一般來說,它們包括程式設計工具、簡單的配置管理工具、文件處理工具,有時還包括一個程式碼生成器來生成更低級別語言的程式碼。Informix 4GL 和 Focus 屬於此類。[4]

以過程為中心

此類別的環境專注於過程整合,並將其他整合維度作為起點。以過程為中心的 環境透過解釋由專門工具建立的過程模型來執行。它們通常包括處理兩個功能的工具

  • 過程模型執行
  • 過程模型生產

例子包括 East、Enterprise II、Process Wise、Process Weaver 和 Arcadia。[4]

應用程式

[編輯 | 編輯原始碼]

軟體工具可以支援軟體開發生命週期的所有方面,因此,可以說,跨越整個範圍使用工具可以被描述為 CASE;從專案管理軟體到用於業務和功能分析、系統設計、程式碼儲存、編譯器、翻譯工具、測試軟體等的工具。

然而,最常被認為是 CASE 工具的工具是那些與分析和設計相關的工具,以及使用設計資訊來建立軟體產品部分(或全部)的工具。例如,將 CASE 應用於資料庫軟體產品,通常會涉及

  • 對業務/現實世界過程和資料流進行建模
  • 以實體-關係圖的形式開發資料模型
  • 開發過程和功能描述

風險和相關控制

[編輯 | 編輯原始碼]

常見的 CASE 風險和相關控制包括

  • 標準化不足:如果產品沒有使用標準化的程式碼結構和資料分類,則連結來自不同供應商的 CASE 工具(來自公司 X 的設計工具,來自公司 Y 的程式設計工具)可能很困難。 files 格式可以轉換,但通常不經濟。控制措施包括使用來自同一供應商的工具,或使用基於標準協議的工具並堅持經過證明的相容性。此外,如果組織僅為開發過程的一部分獲取工具,則他們應考慮從擁有全套產品的供應商那裡獲取這些工具,以確保將來新增更多工具時的相容性。[5]
  • 不切實際的期望:組織通常實施 CASE 技術以降低開發成本。實施 CASE 策略通常會涉及高昂的啟動成本。通常,管理層必須願意接受長期回報期。控制措施包括要求高階管理人員定義實施 CASE 技術的目的和策略。[5]
  • 實施緩慢:實施 CASE 技術可能涉及從傳統開發環境的重大轉變。通常,組織不應首次在關鍵專案或有短期限的專案上使用 CASE 工具,因為培訓過程很長。此外,組織應考慮在更小、更簡單的專案上使用這些工具,並逐步實施這些工具,以允許更多培訓時間。[5]
  • 儲存庫控制薄弱:未能充分控制對 CASE 儲存庫的訪問可能會導致安全漏洞或損壞儲存在儲存庫中的工作文件、系統設計或程式碼模組。控制措施包括使用適當的訪問、版本和備份控制來保護儲存庫。[5]

參考資料

[編輯 | 編輯原始碼]
  1. Kuhn, D.L (1989). “選擇和有效使用計算機輔助軟體工程工具”。年度西屋計算機研討會;1989 年 11 月 6-7 日;匹茲堡,賓夕法尼亞州(美國);能源部專案。
  2. P. Loucopoulos 和 V. Karakostas (1995)。系統需求工程。麥格勞-希爾。
  3. “AD/Cycle 策略和架構”,IBM 系統期刊,第 29 卷,第 2 期,1990 年;第 172 頁。
  4. a b c d e f g h Alfonso Fuggetta (1993). "CASE 技術分類". 計算機. 26 (12): 25–38. doi:10.1109/2.247645. 檢索於 2009-03-14. {{cite journal}}: 未知引數 |month= 被忽略 (幫助)
  5. a b c d e 軟體開發技術. 在: FFIEC 資訊庫. 檢索於 2008 年 10 月 26 日.
  6. 軟體工程:工具、原理和技術,作者:Sangeeta Sabharwal,Umesh 出版社
  7. Evans R. Rock. Case 分析員工作臺:詳細產品評估. 第 1 卷,第 229–242 頁,作者:
[編輯 | 編輯原始碼]
  • CASE 工具索引 - 綜合的 CASE 工具列表
  • UML CASE 工具 - 綜合的 UML CASE 工具列表. 主要提供選擇 UML CASE 工具的資源,以及一些與 MDA CASE 工具相關的資源.
華夏公益教科書