ビジュアルモデリングによるコードレス開発

OutSystemsは、「モデル駆動型開発」手法を活用することで、ソースコードを一切書くことなく、Webアプリケーションの完全な自動生成を実現しています。プロセス、インターフェース、ロジック、データの4種類の基本モデルを定義することで、.NET及びJavaのコードが自動生成されるだけでなく、動作するアプリケーションのデプロイまでも、自動で行われます。

従来のソースコード生成や自動生成アプリケーションでは、細かで複雑なロジックの記述が難しかったり、生成されたソースコードを書き換えることで不整合が起きることも多くありました。OutSystemsでは、表現力の高いモデリング言語を採用することで、ソースコードを一切参照することなく業務アプリケーションの開発を実現し、設計からテストまでの開発スピードを大幅に短縮します。

handcoding-and-visual

OutSystemsの大きな特徴はビジュアルモデリングと呼ばれるビジュアル言語を用いた開発手法です。
昨今の業務アプリケーションのほとんどは、グラフィックインターフェースを用いたアプリケーションであるにもかかわらず、開発言語は文字ベースであるため、作成するビジュアルイメージを想像しながら、プログラミングを行う必要がありました。 また、複雑な業務ロジックを記述する場合は、そのロジックをフローチャートを用いて作図しながら、文字ベースの言語に落とし込んでいく作業が必要でした。

OutSystemsは、これらの問題を解決するために、業務アプリケーションの開発に特化し、JavaやC#等の実装言語に依存しない全く新しいビジュアルベースの開発言語を使用しています。これまでの開発ツールで見られたような部分的に視覚化されたモデリング機能ではなく、ワークフロー、画面設計、業務ロジック、データベース操作等のすべての処理を一貫して記述することができます。これにより、JavaやC#等の実装言語を一切記述する必要なく、業務アプリケーションを作成することを可能としています。

サーバサイド型のモデル駆動型開発基盤

これまでの一般的な開発環境では、開発者のPC上でソースコードを記述し、同PC上でコンパイルや動作チェックを行いながら開発を行っていました。この方法は、開発者のPCが一台あれば開発を行うことができるため、シンプルではありますが、 複数の開発者での同時開発やチーム全体のソースコード管理、クラウドサービス連携等を実現しようとした場合、それらの開発環境を構築するだけでも多くの工数が発生します。また、開発者単位で開発環境を構築するため、開発者が使用するツールやバージョン等に差異が発生し、環境依存の問題が発生していました。

OutSystemsは、これらの問題を解決するために、サーバサイドでソースコードの自動生成を行うサーバサイド型のモデル駆動型開発基盤を採用しています。
開発者は開発を行うためのPCに、Service Studioという、ビジュアルモデリング言語で業務ロジックを記述するためのツールをインストールし、Platform Server が動作するサーバにHTTPで接続することにより開発を行います。Service Studio はビジュアルモデリング言語によって記述されたモデル情報をサーバへ送付することで、実際に動作するプログラムのソースコードをサーバ側で自動生成させます。
これにより、生成されたプログラムのソースコードは開発者のPC上で見ることも触ることもできないため、開発者はソースコードの品質と安全性を確保しながら、集中型の構成管理を実現できます。

ソースコードを管理しない構成管理

OutSystemsは、モデルデータから生成されたソースコードではなく、Service Studioで作成したモデルデータの世代管理や移送管理を厳密に行っています。

これにより、OutSystems Platfrom では生成された実行プログラムやソースコードではなく、モデルデータそのものを他の環境へ移送することで、異なる環境間でのソフトウェア移送を実現しています。本稼働環境では、移送されたモデルデータに基づいて、新たに本稼働環境用のソースコードが生成されることになります。
また、モデルデータには著作権情報が含まれており、二次利用や複製による再利用を制御することが可能です。再利用を認めたモデルデータはオープンソースとしてOutSystems Forgeサイトを通して自由に流通させることができます。

sourcecode-management

Java から .Net 等の容易なアーキテクチャの移行

OutSystemsは、ソースコードではなくビジュアルモデリングで作られたモデルデータを管理しているため、開発環境では Java を使用し、本稼働環境は .Net で生成するといったシステム構成も理論的には可能です。基盤やOSのバージョンアップ、アーキテクチャの変更等に伴うシステムの移行も、従来のスクラッチ開発と比較して容易に行うことができます。

ソースコードを生成する前にモデルから不具合を検出

error-finding

これまでの開発においても、設計段階において、コーディングを行う前にUML等でモデリングを行い、モデルデータを作成するケースはありましたが、その時点でモデルの不整合を検出することは困難でした。これは、従来のモデリング技術はアプリケーションの設計のための言語であり、実行可能なアプリケーションを作るための言語ではないためです。

OutSystemsが提供するビジュアルモデリング言語は、実行可能なアプリケーションを記述する言語であるため、従来の文字ベースのプログラミング言語と同様に、リアルタイムに不具合検出を行うことが可能です。さらに、文字ベースのプログラミング言語では難しかったインターフェースとデータベースのテーブル項目との整合性チェックも自動で行われ、開発者の記憶と勘に頼っていた仕様変更時の修正も安全に行えます。

また、検出された不具合を修正しなければソースコードの生成を行うことができないため、生成される業務アプリケーションの品質を高いレベルで保つことが可能となります。

既存のWeb開発言語の活用

既存のJavaやC#コードは、EclipseやVisual Studioを用いることで、拡張や再利用が可能です。 OutSystems上では、Javaや.NETコードを含むカスタムの拡張コードを作ることができ、作成したアプリケーションの中で使ったり、パブリッシュ したりすることも可能です。 UIレベルでは、カスタムしたHTMLやJavascript、CSS、Flashなど、どのような技術でも自由に使うことが出来ます。

  • SQL
  • 既存のSQLによるロジックを容易にコピー&ペーストで再利用することができます。
    プロシージャ等は、そのまま呼び出すことが可能です。
  • CSS及びJavaScript
  • 既存のCSSやJavaScriptによるデザインを容易にコピー&ペーストで再利用することができます。
    JavaScriptは、スクリプトファイルやURL参照も利用可能です。
  • Java及び.NET
  • 既存のJavaのクラスや.NetのDLLをインポートして再利用することが可能です。
    また、新規開発によりプラットフォームの機能拡張を行うことも可能です。

詳しくはこちらから (英語)

開発者の生産性が10.9倍向上

OutSystems導入後、生産性がどれだけ向上するかを調査するため、141種類の異なるファンクションポイントを評価し、それらの開発工数を調査・分析しました。 結果、OutSystemsを使用した場合の生産性は平均して一人月175ファンクションポイントとなり、ISBSGのデータベースによる業界平均の一人月16ファンクションポイントの10.9倍となりました。

fig_function_point2

多言語対応

OutSystemsは、アプリケーションデザインと実装においてデフォルトの言語を設定し、 その後翻訳を加えることができます。OutSystemsはアラビア語のような右から左への文字入力や、 Unicodeもサポートしています。
詳しくはこちらから (英語)

マルチテナントアプリケーション開発

OutSystemsを使い、マルチテナント機能を持ったアプリケーションを開発することも可能です。 エンタープライズアプリケーションやSaaSアプリケーションにマルチテナント機能を持たせることで、 アプリケーションを一箇所に保存しつつも、顧客のデータを隔離することができます。 OutSystemsはこのマルチテナント機能を持つアプリケーション開発をシンプルにし、ユーザーがより良い サービスを提供できるようサポートしています。
詳しくはこちらから (英語)