metaCASEツールは、ソフトウェア開発プロセス内で使用する 1 つ以上のモデリング方法、言語、または表記法を作成する機能を提供するアプリケーション ソフトウェアの一種です。多くの場合、その結果はその言語のモデリング ツールになります。したがって、MetaCASE ツールは一種の言語ワークベンチであり、一般にグラフィカル モデリング言語に重点を置いていると考えられています。
別の定義: MetaCASEツールは、CASEツールの設計と生成をサポートするソフトウェアツールです。一般的に、metaCASEツールは、特定のCASEツールにカスタマイズしてインスタンス化できる汎用CASEツールコンポーネントを提供する必要があります。metaCASEツールの目的は、必要なCASEツールの仕様を取得し、その仕様からツールを生成することです。[1]
概要
クイック CASE ツールの概要
大規模なソフトウェア アプリケーションの構築は非常に複雑なプロセスであり、扱いが容易ではありません。ソフトウェア企業は開発チーム全体で良好な協力体制を構築し、適切な規律を保つことが強く求められます。
それでも、CASE ツールの使用は、ソフトウェア開発をスピードアップし、アプリケーション設計のレベルを高めるための最新の方法です。ただし、念頭に置くべき別の問題もあります。まず、これらのツールは通常、大規模で複雑であり、作成と導入に非常にコストがかかるため、使用しても良い結果が保証されるわけではありません。
CASEツールは、サポート対象のソフトウェア開発フェーズに応じて、フロントエンドツールとバックエンドツールのいずれかに分類できます[2] 。たとえば、「フロントエンド」分析および設計ツールと「バックエンド」実装ツールなどです。特定のアプリケーションプロジェクトに取り組んでいるソフトウェアエンジニアにとって、CASEツールの選択は通常、プロジェクトの規模、使用する方法論、ツールの可用性、プロジェクト予算、関係者の数などの要因によって決まります。一部のアプリケーションでは、適切なツールが利用できないか、プロジェクトが小さすぎてツールのメリットが得られない場合があります。
CASE ツールは一定数の方法論をサポートしますが、ソフトウェア開発組織は採用する方法論を動的に変更します。
簡単な metaCASE ツールの概要
MetaCASE製品は通常、高度に専門化されたアプリケーション開発環境であり、必要なツールの高レベルの記述からカスタムツール(セット)を生成します。 [3] [4]
つまり、metaCASE テクノロジーは、動的な観点から方法論の自動化にアプローチします。
MetaCASE ツールを使用すると、任意の方法論をサポートする CASE ツールの定義と構築が可能です。CASEツールカスタマイザーは、まず必要な方法論を指定し、対応する CASE ツールをカスタマイズします。次に、ソフトウェア開発者はそのCASE ツールを使用してソフトウェア システムを開発します。このアプローチの利点は、同じツールをさまざまな方法論で使用できることです。これにより、学習曲線が短縮され、結果としてコストが削減されます。開発組織は、必要な方法論を自動化または変更できるため、今日の動的で競争の激しい世界で動的な機能を提供できます。別の観点から見ると、このテクノロジは、開発期間と学習期間が短縮され、学術コースの期間に適することを考慮すると、実用的な教育ツールとして使用できます。
metaCASEとCASEツールの違い
オブジェクト指向モデリング用の CASE ツールのほとんどは、UMLメソッドに大きく基づいています。メソッドは、モデルの作成、チェック、分析方法やコードの生成方法など、他のCASE ツールの機能も規定します。たとえば、モデリング言語が CORBA 準拠のインターフェイスを適切に指定および分析できる場合にのみ、ツールはCORBA IDL 定義を生成できます。ツール (およびメソッド) が定義を生成しない場合は、インターフェイスの設計と実装に関する作業に対するサポートはほとんど、またはまったく提供されません。
メソッドを使用する場合、開発者は同様の困難に直面することがよくあります。メソッドでは手元のタスクの概念や表記が提供されないため、開発者は開発中のドメインとシステムを適切に指定できません。エンドユーザーは、モデリングの概念に馴染みがないため、モデルを読みにくく理解しにくいと感じるかもしれません。通常、モデルで使用される概念とセマンティクスをアプリケーション ドメインにマッピングすることも困難です。アプリケーション ドメインを適切に示すことさえできないモデルを作成した後、ツールは必要なレポートを提供せず、必要なコードも生成しません。
そこで必要なのは、あらゆるメソッドの仕様を簡単にキャプチャし、その仕様からCASEツールを自動的に生成する機能です。その後、アプリケーションドメインの状況が進化し、開発環境が変化すると、CASEツールのメソッドサポートを段階的に更新できます。これはまさにmetaCASEテクノロジーが提供するものです。[5]
metaCASEの仕組み
従来の CASE ツールは 2 レベルのアーキテクチャに基づいています。システム設計はリポジトリに保存され、そのスキーマがプログラムされ、CASE ツールにコンパイルされます。このハードコードされた部分では、どのようなモデルを作成できるか、またどのように分析できるかが定義されます。最も重要なのは、メソッドがコード内で固定されているため、ツール ベンダーのみがメソッドを変更できることです。MetaCASE テクノロジーは、柔軟なメソッドを提供することでこの制限を取り除きます。
これは、メソッド レベルより 1 つ上のレベルを追加することで実現されます。
MetaCASE ツールは、3 レベルのアーキテクチャに基づいています。
- 最も低いモデル レベルは、CASE ツールのモデル レベルに似ています。モデルとしてシステム設計が含まれます。
- 中間レベルには、メソッドのモデル、つまりメタモデルが含まれます。メタモデルには、特定のメソッドの概念、ルール、ダイアグラム表記が含まれます。たとえば、メタモデルでは、クラスや継承などの概念、それらの関連方法、およびそれらの表現方法を指定できます。ただし、固定された CASE ツールのようにツールのコードに埋め込まれるのではなく、メソッドはリポジトリにデータとして保存されます。メタモデルの使用は、最近人気が高まっています。現在、多くのメソッドブックにはメソッドのメタモデルが含まれており、XMIなどのいくつかの重要なイノベーションはメタモデルに基づいています。CASE ツールとは異なり、metaCASE ツールではユーザーがメタモデルを変更できます。したがって、metaCASE はメソッド仕様の柔軟性に基づいています。
- これは、メソッドを指定するためのメタモデリング言語を含む、3 番目の上位レベルを持つことで実現されます。このレベルは、metaCASE ソフトウェアのハードコードされた部分です。
これら3つのレベルは密接に関連しています。モデルはメタモデルに基づいており、メタモデルはメタモデリング言語に基づいています。明らかに、何らかのメタモデルがなければモデリングは不可能です。この依存関係構造は、一部のオブジェクト指向プログラミング言語におけるオブジェクト、クラス、メタクラス間の依存関係構造に似ています。 [5]
metaCASEツール
これは現在利用可能なメタCASEツールのリストです。他の多くのモデリングツールも、ある程度のメタモデリング機能を提供している可能性があります。
metaCASEツールを使用する本当のメリット
ジャクソン[6]は、アプリケーションのドメインとコードの間には重要な違いがあることを認識しています。2つの異なる世界があり、それぞれに独自の言語、専門家、考え方などがあります。完成したアプリケーションは、これらの世界の交差点を形成します。ソフトウェアエンジニアの難しい仕事は、両方の世界の問題を解決すると同時に、これらの世界の間に橋を架けることです。
実証研究[7] [8]では、一貫して、開発プロジェクトのうち約半分のみが手法を使用していることが示されています。手法を使用しているプロジェクトのうち、50%以上が、ニーズに合わせて手法を修正するか、独自の手法を開発しています[9] [10]
標準的な CASE ツールでは、ツールがサポートするメソッドは固定されており、変更できません。一方、metaCASE ツールでは、メソッドを自由に変更したり、まったく新しいメソッドを開発したりすることができます。モデルとメタモデル (メソッドの説明) は両方とも、リポジトリ内の第一級要素として保存されます。これにより、組織は状況やニーズに合ったメソッドを開発し、その知識を保存してすべての開発者に配布することができます。ツールとメソッドは、開発者をガイドし、開発者が作業するための共通のフレームワークを提供し、チーム全体の作業を統合します。[11]
研究用のプロトタイプや商用のmetaCASEツールは長年存在してきましたが、メソッド開発者とメソッドユーザーの両方にとって成熟し、使いやすく安定したツールが登場したのはごく最近のことです。最も広く知られ、使用されているmetaCASEツールの1つ[12] [13]はMetaEdit+です。
以下のリストは、これらのツールがソフトウェア開発でどのように使用されるかを示したものです。[14]
- コンピュータ支援環境の開発にかかる時間とコストを削減できる
- 正式なソフトウェア開発手法をサポートできる
- 情報システムモデリングツールとして使用できる
- 幅広いモデリング言語の作成をサポートできる
- CASEとモデリング言語のトレーニングをサポートできます
- モデリング言語の比較と統合をサポートできる
これらのツールには、次のような特徴も備わっている必要があります。[14]
- ユーザーが低い学習曲線で独自のソフトウェアエンジニアリング手法のメソッドサポートを作成できるようにする
- シンプルで効率的なユーザーインタラクションをサポートする使いやすいグラフィカルCASEツールを備える
- 実行時でもモデルの一貫性をチェックする機能を持つ
- 標準的なレポート生成機能を持つ
- 制限されたビューと詳細なモデル表現を提供する複雑性管理ツールを保有する
- モデルデータの作成と変更のための洗練された入力ダイアログを持つ
- カスタマイズ可能なマルチメソッドサポートを備える
参照
参考文献
- ^ metaCASE ツール設計のための迅速な開発モデル、概念モデリング — ER '97、Maokai Gong、Louise Scott、Yingping Xiao、Ray Offen、ISBN 978-3-540-63699-1
- ^ 定義: D. Schefstrom、 「システム開発環境: Schefstrom、D および van den Broek、G (編) ツール統合」John Wiley and Sons (1993) の現代概念。
- ^ IPSYS Toolbuilder マニュアル、バージョン 2.1 Lincoln Software Ltd (1996)
- ^ G. Stumer、Oracle 7: ユーザーおよび開発者ガイド International Thomson Publishing (1995)
- ^ ab [1] ABC TO METACASES TECHNOLOGY、ホワイトペーパー、MetaCase、5605 North MacArthur Blvd. 11階、アーヴィング、テキサス州75038
- ^ Jackson, MA, ソフトウェア要件と仕様 実践、原則、偏見の辞書 Addison Wesley、ACM Press、1995
- ^ Necco, CR, Gordon, CL, Tsai, NW システム分析と設計: 現在の実践、MIS Quarterly、1987 年 12 月。
- ^ Fitzgerald, B.、「システム開発手法の使用:調査」、論文参照 9/95、Univ. College Cork、1995 年。
- ^ Russo, N., Wynekoop, J., Walz, D.、「システム開発方法論の使用と適応」。IRMA 国際会議議事録、アトランタ、1995 年 5 月 21 ~ 14 日。
- ^ Hardy, C., Thompson, J., Edwards, H., 英国における構造化システム開発手法の使用、限界、カスタマイズ。情報およびソフトウェア技術、37 (9)、1995年。
- ^ ビジュアルドメイン固有モデリング: metaCASE ツールの使用による利点と経験、Steven Kelly、MetaCASE
- ^ Isazadeh, H.、Lamb, DA、「CASE 環境と MetaCASE ツール」、技術レポート 1997-403、クイーンズ大学、カナダ、1997 年 2 月
- ^ Alderson, A.、Cartmell, JW、Elliott, A.、「ToolBuilder: CASE ツール コンポーネントからメソッド エンジニアリングへ」、Peer Logic ホワイト ペーパー、1999
- ^ ab MetaCASE システムの原理、Vivekanandan Suresh Kumar
