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

OutSystemsは、プロセス、インターフェース、ロジック、データの4つのシステムの設計情報をエンジニアがモデリング(設計)することで、ソフトウェア全体を一気に自動生成することができる、大規模システムに対応したローコード開発基盤です。

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

handcoding-and-visual

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

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

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

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

サーバサイド型のローコード開発基盤

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

OutSystemsは、これらの問題を解決するために、サーバサイドでソースコードの自動生成を行うサーバサイド型のローコード開発基盤を採用しています。

開発者は開発を行うためのPCに、Service Studioという、ビジュアルモデリング言語で業務ロジックを記述するためのツールをインストールし、Platform Server が動作するサーバにHTTPで接続することにより開発を行います。Service Studio はビジュアルモデリング言語によって記述されたモデル情報をサーバへ送付することで、実際に動作するプログラムのソースコードをサーバ側で自動生成させます。

これにより、生成されたプログラムのソースコードは開発者のPC上で見ることも触ることもできないため、開発者はソースコードの品質と安全性を確保しながら、集中型の構成管理を実現できます。

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

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

これにより、OutSystemsでは生成された実行プログラムやソースコードではなく、モデルデータそのものを他の環境へ移送することで、異なる環境間でのソフトウェア移送を実現しています。本稼働環境では、移送されたモデルデータに基づいて、新たに本稼働環境用のソースコードが生成されることになります。

また、モデルデータには著作権情報が含まれており、二次利用や複製による再利用を制御することが可能です。再利用を認めたモデルデータはオープンソースとしてOutSystems Forgeサイトを通して自由に流通させることができます。

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

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

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

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

既存のWeb開発言語の活用

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

SQL

既存のSQLによるロジックを容易にコピー&ペーストで再利用することができます。プロシージャ等は、そのまま呼び出すことが可能です。

CSS及びJavaScript

既存のCSSやJavaScriptによるデザインを容易にコピー&ペーストで再利用することができます。JavaScriptは、スクリプトファイルやURL参照も利用可能です。

多言語対応

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

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

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

複雑なフォームの作成

OutSystemsは、一貫性のある入力サイズと完璧な配置を実現するレイアウト機能、そして条件付き表示や段階的な公開の構成、フォームの検証機能などを使用して、複雑なフォームを開発できます。
詳しくはこちらから