CASEツールの例 コンピュータ支援ソフトウェアエンジニアリング (CASE )は、アプリケーションの設計と実装に使用されるソフトウェアツールの領域です。CASEツールは、ハードウェア製品の設計に使用されるコンピュータ支援設計 (CAD)ツールに似ており、部分的に影響を受けています。CASEツールは、高品質で欠陥がなく、保守可能なソフトウェアの開発を支援することを目的としています。[ 1 ] CASEソフトウェアは、ソフトウェア開発プロセス で使用できる自動化ツールとともに、情報システム の開発方法と関連付けられることがよくありました。[ 2 ]
歴史 1968年にミシガン大学 で始まった情報システム設計最適化システム(ISDOS)プロジェクトは、要件分析やシステム開発という非常に困難なプロセスにおいて、アナリストを支援するためにコンピュータシステムを使用するという概念全体に大きな関心を呼び起こしました。ダニエル・タイクロウによるいくつかの論文は、自動化されたシステム開発の可能性に熱狂する世代全体を刺激しました。彼の問題記述言語/問題記述アナライザー(PSL/PSA)ツールは、その用語が使われるようになる以前から存在していましたが、CASEツールでした。[ 3 ]
もう一つの主要な流れは、データベース のデータ辞書 の論理的な拡張として現れました。保持するメタデータ の範囲を拡張することで、アプリケーションの属性を辞書内に保持し、実行時に使用できるようになりました。この「アクティブ辞書」は、より現代的なモデル駆動型エンジニアリング 機能の先駆けとなりました。しかし、アクティブ辞書はメタデータのグラフィカルな表現を提供しませんでした。統合された一連の技術の使用から得られたアナリストのメタデータを保持する辞書の概念と、そのようなデータのグラフィカルな表現を結びつけたことが、CASEの初期バージョンを生み出しました。[ 4 ]
次に市場に参入したのは、マサチューセッツ州ケンブリッジの 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)、Texas Instruments のCA Gen 、Andersen Consulting の FOUNDATION ツールセット (DESIGN/1、INSTALL/1、FCP) などの企業から多数の製品が発売されました。[ 5 ]
CASEツールは1990年代初頭に全盛期を迎えた。[ 6 ] 1990年1月のPC Magazine によると、100社以上が200種類近いCASEツールを提供していた。[ 5 ] 当時IBMは、 メインフレーム とOS/2 上でIBM DB2 を使用するIBMのソフトウェアリポジトリ を中心としたソフトウェアベンダーの連合体であるAD/Cycleを提案していた。
アプリケーション開発ツールは、IBM、ベンダー、顧客自身など、複数のソースから入手できます。IBMは、Bachman Information Systems、Index Technology Corporation、Knowledgeware と提携し、これらのベンダーの厳選された製品をIBMの補完的なマーケティングプログラムを通じて販売し、ライフサイクル全体を網羅する製品を提供することを目指しています 。[ 7 ] メインフレームの衰退に伴い、AD/CycleやBig CASEツールは姿を消し、今日の主流CASEツールの市場が開かれました。1990年代初頭のCASE市場のリーダーの多くは、 IEW、IEF、ADW、Cayenne、Learmonth & Burchett Management Systems (LBMS)などを含め、 Computer Associates に買収されました。CASEツールの進化につながったもう一つのトレンドは、オブジェクト指向の手法とツールの台頭です。さまざまなツールベンダーのほとんどが、オブジェクト指向の手法とツールへのサポートを追加しました。さらに、オブジェクト指向のアプローチをサポートするためにゼロから設計された新しい製品も登場しました。Andersenは、Foundationの代替としてプロジェクトEagleを開発しました。オブジェクト指向開発の思想的リーダーの何人かは、それぞれ独自の方法論とCASEツールセットを開発しました。Jacobson 、Rumbaugh 、Boochなどです。最終的に、これらの多様なツールセットと手法は、 Object Management Group (OMG)が主導する標準 化 によって統合されました。 OMGの統一モデリング言語(UML)は、現在、 オブジェクト指向モデリング の業界標準として広く受け入れられています。
CASEソフトウェア
CASEツールは、ソフトウェア開発ライフサイクルにおける特定のタスクをサポートします。これらは以下のカテゴリに分類できます。
ビジネスおよび分析モデリング:グラフィカルモデリングツール。例:E/Rモデリング、オブジェクトモデリングなど。 開発: ライフサイクルの設計および構築フェーズ。デバッグ環境。例: IISE LKO 。 検証と妥当性確認 :コードと仕様を分析し、正確性 、パフォーマンスなどを確認します。構成管理:リポジトリのオブジェクトとファイルのチェックインおよびチェックアウトを制御します。例:SCCS 、IISE。 メトリクスと測定:コードの複雑さ、モジュール性(例:「go to」がない)、パフォーマンスなどを分析します。 プロジェクト管理:プロジェクト計画、タスク割り当て、スケジュール管理を行う。 CASEツールを区別するもう1つの一般的な方法は、アッパーCASEとローワーCASEの区別です。アッパーCASEツールは、ビジネスおよび分析モデリングをサポートします。ER図 、データフロー図 、構造図 、決定木 、決定表 などの従来の図式言語をサポートします。ローワーCASEツールは、物理設計、デバッグ、構築、テスト、コンポーネント統合、保守、リバースエンジニアリングなどの開発活動をサポートします。その他のすべての活動はライフサイクル全体に及び、アッパーCASEとローワーCASEの両方に等しく適用されます。[ 8 ]
作業台 ワークベンチは2つ以上のCASEツールを統合し、特定のソフトウェアプロセス活動をサポートします。したがって、以下のことが実現されます。
均質で一貫性のあるインターフェース(プレゼンテーションの統合) ツールとツールチェーンのシームレスな統合(制御とデータの統合 ) ワークベンチの一例として、MicrosoftのVisual Basic プログラミング環境が挙げられます。これは、GUIビルダー、スマートコードエディター、デバッガーなど、複数の開発ツールを統合しています。市販のCASE製品の多くは、2つ以上のツールをシームレスに統合したワークベンチでした。ワークベンチは、ツールと同様に、分析、開発、検証などに焦点を当てたもの、あるいは大文字、小文字、構成管理などライフサイクル全体にわたるプロセスに焦点を当てたものなど、分類することができます。
環境 環境とは、ソフトウェアプロセス全体をサポートしようとするCASEツールまたはワークベンチの集合体です。これは、特定のタスクまたはライフサイクルの特定の部分に焦点を当てたツールとは対照的です。CASE環境は、Fuggettaによって次のように分類されています。[ 9 ]
ツールキット:疎結合されたツール群。これらは通常、Unix Programmer's WorkbenchやVMS VAXセットなどのオペレーティングシステムのワークベンチを基盤としています。データ共有や制御の受け渡しには、パイプなどの基本的なメカニズムを介して統合を行います。容易な統合という利点は、同時に欠点でもあります。シェルスクリプトなどの技術による単純なパラメータの受け渡しでは、共通リポジトリデータベースが提供するような高度な統合は実現できません。 第4世代:これらの環境は、初期の環境がVisual Basicなどの特定の言語を中心に設計されていたことから、第4世代言語 環境(4GL)とも呼ばれます。これらは、複数のツールを深く統合した最初の環境でした。通常、これらの環境は特定の種類のアプリケーションに特化していました。例えば、リレーショナルデータベースに対して標準的なアトミックトランザクションを実行するユーザーインターフェース主導型アプリケーションなどです。例としては、Informix 4GLやFocusなどがあります。言語中心型:Symbolics Lisp Genera環境やParcplaceのVisualWorks Smalltalkなど、単一のオブジェクト指向言語に基づいた環境。これらの環境では、すべてのオペレーティングシステムリソースがオブジェクト指向言語のオブジェクトとして扱われます。これにより、強力なデバッグ機能とグラフィカルな機能が提供されますが、開発されるコードは主に特定の言語に限定されます。そのため、これらの環境はCASEの中でもニッチな存在でした。その用途は主にプロトタイピングや研究開発プロジェクトでした。これらの環境に共通するコアコンセプトは、同じデザインの複数のプレゼンテーションを基盤となるモデルと一貫性を保つことを容易にするモデル・ビュー・コントローラ (MVC)ユーザーインターフェースでした。MVCアーキテクチャは、他のタイプのCASE環境や、それらを用いて構築された多くのアプリケーションにも採用されました。 統合型: これらの環境は、ほとんどのIT担当者がCASEについて考えるときに最初に思い浮かべる例です。IBMのAD/Cycle、アンダーセン・コンサルティングのFOUNDATION、ICL CADES システム、DEC Cohesionなどの環境です。これらの環境は、分析から保守までのライフサイクル全体をカバーし、ソフトウェアプロセスのすべての成果物を格納するための統合データベースリポジトリを提供します。統合ソフトウェアリポジトリは、これらのツールの特徴的な機能でした。これらは、複数の異なる設計モデルと、異種言語のコードのサポートを提供しました。これらのタイプの環境の主な目標の1つは、「ラウンドトリップエンジニアリング」、つまり設計レベルで変更を加えると、それがコードに自動的に反映され、その逆も可能であることでした。これらの環境は通常、特定のソフトウェア開発方法論と関連付けられていました。たとえば、アンダーセンのFOUNDATION CASEスイートは、アンダーセンメソッド/1方法論と密接に関連していました。 プロセス中心型:これは最も野心的な統合方式です。これらの環境は、ソフトウェアプロセスの分析および設計オブジェクトを形式的に規定するだけでなく、実際のプロセス自体を規定し、その形式的なプロセスを使用してソフトウェアプロジェクトを制御および誘導しようとします。例としては、East、Enterprise II、Process Wise、Process Weaver、およびArcadiaなどがあります。これらの環境は、ソフトウェアプロセス自体が環境の一部であり、ツール呼び出しの多くの側面を制御できるため、必然的に何らかの方法論と結びついています。 実際には、ワークベンチと環境の区別は柔軟でした。たとえば、Visual Basic はプログラミング ワークベンチでしたが、多くの人からは 4GL 環境ともみなされていました。ワークベンチと環境を区別する特徴は、共有リポジトリまたは共通言語による深い統合と、何らかの方法論 (統合型およびプロセス中心の環境) またはドメイン (4GL) の特異性でした。[ 9 ]
主なCASEリスク因子 CASEテクノロジーを導入する組織にとって、最も重要なリスク要因には以下のようなものがあります。
標準化の不備:組織は通常、特定の要件に合わせて方法論やツールを調整し、採用する必要があります。そのためには、異なる技術と異なる手法の両方を統合するために、かなりの労力が必要になる場合があります。たとえば、UML標準が採用される前は、ジェイコブソン 、ブーチ 、ランボー の支持者の間で、オブジェクト指向モデルを設計するための図の規則や手法は大きく異なっていました。 非現実的な期待:CASEテクノロジーの推進者、特に高価なツールセットを販売するベンダーは、この新しいアプローチがあらゆる問題を解決する万能薬であるかのように期待を煽ることがよくあります。しかし実際には、そのようなテクノロジーは存在せず、組織が非現実的な期待を持ってCASEに臨むと、必ず失望することになるでしょう。 不十分なトレーニング:あらゆる新技術と同様に、CASEもツールの使い方を習得し、使いこなせるようになるまでにはトレーニングが必要です。CASEプロジェクトは、実務担当者に十分なトレーニング時間が与えられなかった場合、あるいは新技術を用いた最初のプロジェクト自体が極めて重要でリスクの高いものである場合、失敗する可能性があります。 不十分なプロセス制御:CASEは、新しいタイプのツールを革新的な方法で活用するための重要な新機能を提供します。適切なプロセスガイダンスと制御がなければ、これらの新機能は重大な新たな問題を引き起こす可能性もあります。[ 10 ]
参考文献 ↑ Kuhn, DL (1989). 「コンピュータ支援ソフトウェアエンジニアリングツールの選択と効果的な使用」。ウェスティングハウス年次コンピュータシンポジウム、1989年11月6~7日、ペンシルベニア州ピッツバーグ(米国)、DOEプロジェクト。 ↑ P. Loucopoulos および V. Karakostas (1995).システム要件エンジニアリング 効果的に動作するソフトウェアの品質。 ↑ Teichroew, Daniel; Hershey, Ernest Allen (1976). "PSL/PSA 情報処理システムの構造化文書化および分析のためのコンピュータ支援技術" . Proceeding ICSE '76 Proceedings of the 2nd International Conference on Software Engineering . IEEE Computer Society Press. 2018-12-08 のオリジナルからアーカイブ済み。2014-11-25 に取得 。 ↑コロネル、カルロス ; モリス、スティーブン( 2014年2月4日)。 データベースシステム:設計、実装、および管理 。Cengage Learning。pp. 695–700。ISBN 978-1285196145 2014年11月25日 取得 。1 2 PC Mag . Ziff Davis, Inc. 1990-01-30. ↑ Yourdon, Ed (2001年7月23日). 「XPプロジェクトは成長できるか?」 . Computerworld . 2014年 11月25日 閲覧 。 ↑ 「AD/Cycle戦略とアーキテクチャ」、IBM Systems Journal、第29巻、第2号、1990年、172ページ。 ↑ 『ソフトウェアエンジニアリング:ツール、原則、テクニック』(サンギータ・サバルワル著、ウメシュ出版) 1 2 Alfonso Fuggetta (1993 年 12 月 )。 「CASE 技術の分類」 。Computer。26 ( 12 ): 25–38。Bibcode : 1993Compr..26l..25F。doi : 10.1109/2.247645。S2CID 954775。2009年 6 月7 日 にオリジナルから アーカイブ 。2009 年 3 月 14 日 に 取得 。 ↑ Computer Aided Software Engineering (2012年1月20日アーカイブ ) 。FFIEC IT Examination Handbook InfoBase 内。2012年3月3日取得。
さらに読む CASEツールの包括的な概要:ソフトウェア開発の効率化
CASEツールの特徴
CASEツールのユースケースと応用例