「SmartMaker」ソリューションは、ローコード、ノーコードを挙げている他の技術とも明らかな違いがありますが、ほとんどの技術はGUIツールで機能を実装するとコードに変換してくれるものや、既に作られたコードモデュール、テンプレートなどをリユースするだけの方式を採択しています。

結局、コードの体系はそのまま維持しながら、コーディングを手伝う方式に発展したプログラムが多いです。しかし、コードとコーディングに知識がない一般人には意味がないことを考えると、誰でもアプリを制作できる「SmartMaker」はコードとコーディング作業自体を完全になくした最初のソリューションです。
「SmartMaker」は一つのプログラム・モデュールを構成する二つの核心要素である「ロジック」と「機能」が完全に分離するように設計しました。従来のソフトウェア工学技術やプログラム・アーキテクチャとは全く別のアプローチで、コーディング技術が持っている根本的な問題と、単純作業を繰り返す開発方式を改善する基盤を固めました。

実際、オフィスアプリのように誰でも簡単に使用できるGUI方式のデザインツール(次の2項を参照)を提供し、コーディング作業なしで、どんな種類のプログラム・ロジックも簡単に実装できます。

また、アプリに必要な全ての機能を汎用化し、これに基づくプラットフォーム(次の3項を参照)を作り、機能を事前に提供することで、どんなプログラムを制作する時でも単純作業を繰り返す必要がなくなりました。
今日のアプリの有用性と適用効果を左右する絶対的な要素は、当該分野の専門知識や経験といえます。
今までのプログラム開発は、適用分野の知識やノウハウが全くない開発者が担当者から受けた内容に従って作業してきました。ところが、このような方式は、ますます多様化、高度化している世の中で、内容をそのまま伝えるために多くの時間とコストが求められます。ある知識は内容をはっきり伝えることができない場合もあります。

それゆえ、これからのソフトウェア工学の発展にとって、単純にコーディングを容易にすること、または減らすだけでは十分ではありません。最終的には、 当該分野の専門知識やノウハウを持っている当事者自らが直接実装するように発展するしかないでしょう。
2.豊かな経験と知識を持つ担当者が自ら要求を定義するツール
「SmartMaker」はプログラム技術の知識が全くない人でも簡単に使える要求定義ツールを提供しています。自分が作るプログラムの画面と機能をGUI方式のデザインツールを活用して誰でも簡単に作成できます。しかし、約2%以下の複雑なルールとインタラクティブな動作手順はGUI方式で作成することは簡単ではありません。これは自然言語スクリプトを利用して、日常的に使かう日本語で記述すると、AI制作エンジンが内容を分析してプログラムを制作してくれます。

要求定義中に人間が行う作業はプログラムの機能と画面を簡潔に表現することだけです。プログラムの適用効果と有用性、アプリ自体の完成度もこの作業で決定します。

「SmartMaker」はこのように重要な要求定義を、各分野で豊かな経験と深い知識を持っている担当者が直接できるようにSmartBuilderという簡単な要求定義ツールを提供しています。
従来のコーディング方式の開発では、どのような機能を実装するかを決定する時にも、まずそれを実装するアルゴリズムから頭の中に思い浮かべて、自分が使用している言語やツールで実装が可能かどうかから検討し、その次に開発期間やコストを考慮して、プログラムの機能設計や開発の範囲を決定してきました。

しかし、「SmartMaker」でプログラムを作成する場合には、このような技術的な問題やビジネス上の利害関係はすべてさておき、最終成果物の 効果、価値などプログラム自体に集中することができます。

人類がこれまで技術の問題であると考えてきたソフトウェアの問題を、
「SmartMaker」が知識の問題に変えました。以前までは技術的な実装の可能性と開発期間とコストなどの問題を実用的な価値、適用効果などの問題でアプローチできるようにしています。
3.担当者の要求に基づいてプログラムを制作するAI基盤の制作ツール
「SmartMaker」でアプリを制作する時、人が行う雄一の作業が要求定義です。
要求定義ツールを利用して制作したいアプリの画面構成と機能をデザインさえすれば、作業の結果はプログラムの詳細機能、動作手順、実行条件など、一つのプログラムを制作するために必要な全ての情報、知識が一つのファイルに含まれます。
一方、「SmartMaker」が提供するSmart Generatorを活用すればロジック・ファイルを分析してサーバー装置の内部のアプリケーション・サーバー・ソリューション(WAS)で実行される演算処理プログラムはもちろん、DBサーバーの入出力機能や外部システムと連携機能まで業界標準のXML Web Serviceとして自動で実装します。

このようにロジック・ファイルは、ひとつのアプリが含んでいる全ての機能構成と動作シナリオ、業務処理方法とノウハウまで全てが結集したナレッジバンク(Knowledge Bank)の役割をします。ただし、そのプログラムを実際に実行する機能は含まれていません。実行に必要な機能は、次の4項で説明するアプリプラットフォームで、一括してサポートするようにプログラムの構造を革新したものです。
 4.真の意味のノーコード技術を実現したアプリ・プラットフォームを提供
特に、このプラットフォームの革新的なコンポーネントであるATOMその性格と動作方式が、これまでのプログラム開発ツールとは完全に異なります。
従来の技術は、繰り返されるコーディング作業を軽減するために、ハードウェア装置のコントロールや、OSのサービスの呼び出しなど、一種のルーチン、単位毎機能をオブジェクトの形で提供し、開発者はAPIを呼び出すコードを追加する方式でした。したがって、このようなオブジェクトは専門プログラマーだけが使用できる部品であり、この部品の使用方法もコーディング作業で行うしかありませんでした。
アトムはそれ自体が実際に動作するプログラムの要素の機能ですが、一方、プログラムを制作するための要求定義する段階ではデザイン要素としても使われています。アトムは誰でも見慣れているUIと機能を盛り込んでいます。このような特性は次世代のSW工学で非常に重要な意味を持ちます。
コーディングの知識が全くない一般人が初めでプログラムの要求を定義する場合にも、見慣れたデザインと機能のおかげで、抵抗感や事前教育なしで適応可能です。自分が制作するプログラムに要求定義を素早く簡単にできる、真の意味での技術的革新ともいえます。
5.OS毎のプログラム実行エンジンを提供して全ての端末に対応
今のソフトウェア業界で最も困難な課題の一つは、ユーザの端末環境が多様化しているという事です。有線通信基盤のパソコンと無線通信基盤のモバイルに両分し、またモバイルはOSによってAndroidとiOSに分けられます。端末の画面サイズと目的によってスマートフォンとタブレットPCに区分する場合もあります。モバイルデバイスは同じサイズでも横と縦方向別にアプリのUI構成と機能にも違いがあり、開発方式と運営環境によるNative App方式とWeb App方式にも分けられます。

したがって、プログラムを制作しサービスする供給者の立場では、一つのアプリケーションをこのように様々な端末の環境とユーザのニーズに合わせる必要があります。つまり、同じアプリを環境に合わせて制作し重複したアプリを個々にメインテナンスすることになります。
制作するプログラムの対象と機能は爆発的に増加していますが、限られた納期と予算を合わせるのも容易ではなく、必要な技術者の養成と確保することも非常に深刻な問題となっています。
実際一つのアプリの「ロジック」は、どのOSやデバイスでも同じでなければなりません。しかし、「機能」は、個々のOSやデバイスによって変わるしかありません。これにより、「SmartMaker」は万能部品であるアトムと汎用実行エンジンをOS毎に開発し、Windows用、Android用、iOS用、Web Browser用をそれぞれ提供しています。これらプラットフォームは開発環境や内部構造、動作方式も異なりますが、利用者が扱うUI&UX機能とデータの入出力と演算処理、通信ネットワークなどに関わる機能は全く同じです。

したがって、別途に分離されたプログラム・ロジックを、このプラットフォームの内部実行エンジンに投入すれば、何の補完作業や変換過程もせずに完璧に動作します。もちろん、実行エンジンは同じOSであれば、様々な種類の端末デバイスも自動認識して最適の実行環境を構築するレスポンシブ技術をプラットフォームに採択することで、真の意味でのクロス・プラットフォーム技術を実現しています。
作成日 : 2020.05.18
問題解決のために「SmartMaker」が採択した新技術

1.「機能」と「ロジック」を完全に分離した新しいアーキテクチャ
2.豊かな経験と知識を持つ担当者が自ら要求を定義するツール
3.担当者の要求に基づいてプログラムを制作するAI基盤の制作ツール
4.真の意味のノーコードを実現したプラットフォームを提供
5.OS毎のプログラム実行エンジンの提供で全ての端末に対応
これまでソフトウェア業界では、こうした技術的問題を解消するために多くの試みがありましたが、一度作ったコードを、他のOSや開発環境への互換技術や、既に作成したモジュールを他の環境で実行するエミュレータの開発作業も繰り返してきました。どの対策も実用化まではできませんでした。 Java、C、Java script、Pythonなどのプログラム言語レベルの互換性問題は、コーティングの技術的構造のため、おそらく永遠に解決できない課題として残る可能性が大きいです。

しかし、「SmartMaker」は前述のように、プログラム言語とは全く異なるアーキテクチャを採用しています。プログラムの基本的な構造をロジックと機能に分けたので、全てののユーザーをサポートするOne Program Multi Usingというクロスプラットフォーム技術を提供できます。
SmartMakerはアプリをコンテンツ化し、
知識やノウハウを共有可能

人類が解決すべき「SW工学の構造的な問題」

1. プログラムの「機能」と「ロジック」を完全に分離した新しいアーキテクチャ
この結果物を活用して、「SmartMaker」内蔵のAI制作エンジンが実際のプログラム・ロジックを完成します。制作エンジンは結果物を分析してプログラムの実行に必要なデータベースの構成要素を抽出します。
この構成要素に基づいてデータベースを設計し、DBテーブルも作成します。続いて結果物に定義された機能を分析して動作に必要なSQL文と、レガシーシステムと連携機能も自動で構成して、最終的に実行可能な状態にモデュールを完成し、個別のファイル(*.QPM 等)に保存します。
前述したように、人がGUI方式のデザインツールを利用して要求を定義し、AIエンジンがプログラム・ロジックに仕上げた「ロジック」ファイルを読み込み、まるでコーディングで作成された一般的なプログラムのように実行してくれるのがアプリプラットフォームです。

プログラムを実行する「機能」は、利用者の操作に関するPCデバイスを起動させることで、その種類も少なく、定型化もできます。「SmartMaker」は一般的なアプリが動作するために必要な全ての機能を抽出して標準化および汎用化したATOM(アトム)という万能部品を提供します。このATOMを束ね、どのアプリのロジックであっても解析して、動作に必要なATOMを順次呼び出し実行させる汎用実行エンジン(Universal Execution Engine)も開発して、アプリプラットフォームとして提供しています。
アプリケーションのロジックを
実行エンジンが一般プログラムのように実行させる
アナログをデジタルに表現することに最適化した
媒体であるアトム
一度の開発だけでNative AppとWeb Appを運用できるクロス・プラットフォーム
App、Book、Web コンテンツのビジネス価値を
最大化するOne Source Multi Use技術
一方、ロジックと機能を分離したアーキテクチャは、開発の生産性とプログラムの使用効果を最大化するクロス・プラットフォーム技術を実現してくれる効果に加えて、SW工学技術とSWの社会的役割の地位を一層高めることもできます。

特に、機能を除去し、全てのプログラムをロジックだけをファイル、DBデータの形で管理できます。企業、学校、公共機関などの組織内部で行われる購買、生産、販売、R&Dなどの全ての業務活動の知識やノウハウを体系的情報として蓄積でき、蓄積したデータはいつでも呼び出して実行すると、業務が処理されるデジタル管理体制を構築できます。それだけでなく、蓄積された知識やノウハウは簡単にコピーでき、改善も継続することができます。

一方、SW工学の技術的側面では、プログラムモデュールの個数と容量を大幅に削減でき、少ないインフラ投資でも高いパフォーマンスを出すことができます。SW業界の立場でも、難解なコーディング作業を代行するだけの単純繰り返し作業から離れ、顧客の生産性と競争力の強化対策を研究し、実質的に問題を解決してくれる専門サービス事業に発展することもできます。
アプリは人類の知識やノウハウを
共有できる最上の手段
様々なOSとサイズを完璧に対応する
クロス・プラットフォーム技術
しかし、「SmartMaker」で提供する「ATOM」は、最初から一般人の観点で設計されました。プログラムを制作できる万能部品であるアトムを設計するために、ビジネスの現場で使われている数多くのアプリを調査、分析し、プログラム画面を構成する単位を全部抽出し、体系的に分類しました。
標準部品となる単位の種類を導出しこれらの標準化および汎用化の設計過程を経て、万能部品のアトムを制作しました。そして、5年に渡って様々なアプリ開発プロジェクトに適用し、検証と補完を続けて完成しました。これらアトムだけを使っても詳細な機能とサービスを構成することもできるようになりました。アトムの種類とアトムが提供しているサービスを学習すると、どんなアプリでも制作できます。

特にアトムは従来の技術とは違い、APIを提供していません。SmartMakerはコードとコーディングの概念そのままを完全に排除したので、アトムをGUI方式のデザインツールだけで組み立て、複雑なロジックを含んでいるプログラムでも、一行のコーディングなしで、素早く簡単に構成できます。
人が行う雄一の作業は、何をどう作るかの「要求定義」だけ。
MyPage
SITEMAP