はじめに

エンドユーザによる内製化の進展や、技術者不足の影響により、プログラミング言語を用いてゼロから開発するのではなく、ツールを使って画面上でモデルを定義することで動作するコードが生成される開発手法に注目が集まっています。この開発手法を一般にはローコード開発と呼び、ローコード開発を実現するローコード開発基盤が各社から提供されています。

本レポートでは、コンセプトの異なる複数のローコード開発基盤を選択し、試用のうえ、特徴を解説しています。スクラッチでのWebアプリケーション開発経験のある方が、システム開発の効率化、高速化を狙って、ローコード開発基盤の導入を検討する際に、評価ポイントを洗い出すためのヒントとして活用してください。

ローコード開発基盤とは

ローコード開発基盤とは、最小限のコーディングによるシステム開発(Webアプリケーション、バッチ、外部インターフェースなど)を実現する開発基盤です。GUIベースのモデルエディタや自動生成機能などを利用することにより、HTMLやJava、C#のようなプログラミング言語によるコーディングを極力抑えることで、生産性向上を狙っています。

ノーコード開発基盤との違い

ローコードとよく似た言葉としてノーコードというものがあります。ローコード開発基盤では少量のソースコードを書くことにより、生産性と拡張性を両立させていますが、ノーコード開発基盤はソースコードを全く書かないので生産性向上に特化するものの、拡張性が弱いと言われています。しかし、両者の線引きは難しく、様々な見方があるので、ある製品がどちらに属しているかは一概には言えないのが現状です。本レポートでは、ローコード開発基盤という表現に統一しています。

モデルとモデルによるコード生成の関係

ローコード開発基盤は、モデルを定義することでソースコードを生成しアプリケーションを構築するツールです。まず、モデルとモデルによるコード生成の関係について説明します。

[ソースコード生成までの流れと3つのレイヤ]

ローコード開発基盤がモデルからソースコードを生成する流れとして、本レポートでは以下の3つのレイヤを用いて説明します。

ローコード開発基盤では、開発者がツールを使って、モデルを定義すると、ソースコードが自動生成されます。モデルだけで完全なアプリケーションを定義できる製品の場合は、モデル定義を完遂することで開発は完了し、生成されたソースコードも完全なソースコードとなるので変更せずそのまま使用できます。

また、一部の製品は、ビジネスルールなどの抽象モデルからモデルを自動生成する機能を持っています。

今回評価対象となっている4つのツール(OutSystems、Mendix、楽々Framework3、GeneXus)を上記に当てはめると以下のようになります。

  • OutSystemsとMendixはビジュアルなモデリング言語を用いたモデル駆動型開発基盤です。GUIベースの開発画面や、各種入力支援機能などにより、効率よくモデル駆動開発を進めることができます。
  • 楽々Framework3はDOA(Data Oriented Approach)の手法との親和性が高いツールです。データモデルを自動解析して、WEBアプリを自動生成することで、高速開発を実現する開発基盤です。
  • GeneXusは「業務仕様」から様々な実装環境に合わせた「実現方法」を推論し、アプリケーションの大部分を自動生成することで、高速開発を実現する開発基盤です。

製品の評価方法

次に、今回対象としているツールの評価方法について説明します。

評価対象として、以下の特徴を持つ4製品を選定しました。

[特徴]

  • モデル上で完全なアプリケーションの定義が可能である。
  • リリース後の保守開発であっても、一貫してモデルを用いた開発が利用可能である。
  • Java、C#などのプログラミング言語・モジュールによる拡張が可能である。

[製品]

  • OutSystems 11(Free評価ライセンス)
  • Mendix 7(評価ライセンス)
  • 楽々Framework 3(体験版)
  • GeneXus

評価は、開発自由度、拡張性の観点で、以下を実施しました。(評価時期 :2019年4月~2019年6月)

  • 公開されているドキュメントの調査
  • セミナー受講
  • 試用版/体験版を用いたサンプルアプリケーション構築

※GeneXus については、ドキュメント調査とセミナー受講のみ実施。

サンプルアプリケーションの構築についての詳細は、Appendixを参照ください。

詳細レポート

評価により判明したそれぞれの製品の特徴や違いを詳細レポートや比較表としてまとめました。

[製品毎に開発方法、自由度、拡張性及び活用場面について着目した詳細レポート]

[基本機能、システム要件、ライセンス形態などを比較した比較表]

比較表(PDFのダウンロード)

ローコード開発基盤の効果的な活用について

ローコード開発基盤は、以下のような標準機能の範囲でアプリケーションを構築することで最も生産性を高めることができます。

  • モデリング言語で表現できる内容とする。
  • テンプレートで提供されている範囲のデザインとする。
  • 自動生成されたものをそのまま使う。

いずれの製品もJavaやC#のプログラミング言語による拡張手段を提供していますが、これらの乱用や標準を逸脱したカスタマイズは生産性や保守性を低下させるおそれがあるので注意が必要です。

そのため、ツールが提供する機能の範囲に要件調整をしやすい社内システムやECサイトにおけるバックエンドシステム(商品マスタのメンテナンス等)のような開発で効果を発揮しやすいと考えられます。
要件適合に関するPoCなどの評価を行い、ツールの標準機能がどの程度システムにマッチしているかを見極めることが大切です。
※各製品の特徴と効果的な活用場面について詳細レポートに記載していますので、そちらもご覧ください。

Appendix

サンプルアプリケーション構築

開発方法の確認と、自由度・拡張性などを評価するために、以下の仕様の商品管理アプリケーションを作成しました。

サンプルアプリケーションの仕様

[画面構成]

[データモデル]

[機能]

  • 対象のマスタは商品、分類(大分類、小分類)の3マスタ。
  • 商品には画像とPDFカタログが登録できる。
  • 各テーブルに対するCRUD(Create、Read、Update、Delete)機能を実現させるための一覧画面と詳細画面がある。
  • 一覧画面は件数が多い場合のページング、並び替え、検索機能を有する。
  • 各登録画面は画像、ファイルの取り扱い、基本的なバリデーションをサポートする。

[評価者のプロフィール]

サンプルアプリの開発者(評価者)のプロフィールを参考情報として記載します。


本コンテンツはクリエイティブコモンズ(Creative Commons) 4.0 の「表示—継承」に準拠しています。