従来のコーディング方式開発では、ある機能を構成する場合にも、先ずはその機能のアルゴリズムから構想し、

開発者が使うプログラム言語、制作プログラムで構成が

できるかを判断し、その次に開発期間とコストに合わせて

プログラムの機能設定と開発範囲を決定してきました。

しかし、‘SmartMaker’でプログラムを制作する場合、

技術的問題とビジネスの利害関係は置いといて、最終

プログラムの効果、価値などプログラム自体に集中することができます。

人類が今まで技術的問題と判断していたソフトウェアの
問題を、‘SmartMaker’が知識の問題に変わりました。

今までは技術的可能性と開発期間、コストなどの問題を、

実用的な価値、適用効果などの問題で接近できるように、

最初に提供しています。


3.担当者が定義した要求に基づいてプログラムを制作するAI基盤の著作ツール


SmartMaker’でアプリケーション・プログラムを制作する時、

が行う雄一の作業が要求定義です。要求定義ツールを利用して

制作したいアプリ・プログラムの画面構成と機能をデザインすると、

作業の結果でプログラムの詳細機能、動作手順、実行条件など、

一つのプログラムを制作する場合に必要な全ての情報、知識が

一つのファイルに含まれます。

この結果物を活用して、‘SmartMaker’内蔵のAI著作エンジンが
実際のプログラム・ロジックを完成します。著作エンジンは結果物を
分析してプログラムの実行に必要なデータベースの構成要素を
抽出します。この構成要素に基づいてデータベースを設計し、
DBテーブルも作成します。続いて結果物に定義された機能を
分析して動作に必要なSQL文と、レガシーシステムと連携機能も

自動で構成して、最終的に実行可能の状態にモデュールを完成し、

個別のファイル(*.QPM )に保存します。


4.真の意味のノン・コーディング技術を実現したアプリケーション・プラットフォームを提供


特に、このプラットフォームの革新的な構成要素である

アトム(ATOM)はその性格と動作方式が、今までの

プログラム開発ツールとは完全に違いがあります。

従来の技術は、繰り返すコーディング作業のために

ハードウェア装置をコントロールするか、OSのサービスを

呼び出すことなど、一種のルーチン、単位別の機能を

オブジェクトの形で提供し、開発者はAPIを呼び出すコードを

追加する方式でした。したがって、このようなオブジェクトの

仕様は専門プログラマーだけが使用できる部品であり、

この部品の使用方法もコーディング作業しかありませんでした。


しかし、‘SmartMaker’で提供する‘アトム’は、最初から

一般人の観点から設計されました。プログラムを制作できる

万能部品であるアトムを設計するために、実際にビジネスから

使用されている数多くのアプリケーション・プログラムを調査、
分析し、プログラム画面を構成する単位を全部抽出して
体系的に分類しました。標準部品となる単位の種類を導出し
これらの標準化および汎用化の設計過程を経て、万能部品の

アトムを制作しました。そして、5年間に様々なアプリ開発
プロジェクトに適用し、検証と補完を続けて完成しました。

これらアトムだけを使っても詳細な機能とサービスを構成する
こともできるよになりました。実際にアトムの種類とアトムが
提供しているサービスを学習すると、どんなアプリケーション・

プログラムでも制作できます。

特にアトムは従来の技術とは違い、APIを提供していません。

SmartMakerはコードとコーディングの概念そのままを完全

除去しましたので、アトムをGUI方式のデザインツールだけで

組み立て、複雑なロジックを含めているプログラムでも、

一行のコーディングなしで、素早く簡単に構成できます。


アトムはその自体が実際に動作するプログラムの要素と
機能ですが、一方、プログラムを制作するための要求を
定義する過程ではデザイン要素としても使われています。
アトムは誰もが見慣れているUIと機能を含んでいます。
このような特性は次世代のSW工学にとっては重要な意味を
持っています。コーディングの知識が全くな一般人が初めに
プログラムに要求を定義する場合にも、見慣れたデザインと

機能のおかげで、拒否感や事前教育の必要性がありません。
自分が制作するプログラムに対する要求定義を素早く簡単に
誰でもできる、真の意味の技術的革新ともいえます。


今のSW業界で最もイッシューとなる問題は利用者の

端末環境が多様化している点です。有線通信基盤の

パソコンと無線通信基盤のモバイルに両分し、また

モバイルはOSによってAndroidiOSに分けます。

端末の画面サイズと目的によってスマートフォンと

タブレットPCに区分する場合もあります。モバイル

デバイスは同じサイズでも横と縦方向別にアプリの

UI構成と機能も違いがあり、開発方式と運営環境に

よるネイティブ・アプリケーション方式とWeb Appにも

分けます。

したがって、プログラムを制作しサービスする供給者の

立場では、一つのアプリケーションを上記のような

様々な端末の環境と利用者の要求に合わせる必要が

あります。つまり、同じアプリを環境に合わせて制作し

重複したアプリを個別的にメインテナンスします。

制作するプログラムの対象と機能は爆発的に増加して

いますが、限定された期間と費用の中で、人材を

確保することも大事な問題として台頭し始めています。


一方、ロジックと機能を分離したアーキテクチャは、開発の生産性と
プログラムの使用効果を最大化するクロス・プラットフォーム技術を

実現してくれる効果外にも、SW工学技術とSWの社会的役割の地位を
一層高めることもできます。

に、機能を除去して、全てのプログラムをロジックだけをファイル、
DB
データの形で管理できます。企業、学校、公共機関などの組織
内部で行われる購買、生産、販売、R&Dなどの全てのビジネス活動と

知識、ノウハウを体系的な情報として蓄積でき、蓄積したデータは

いつでも呼び出して実行すると、業務が処理されるデジタル経営体制を
構築できます。それだけではなく、蓄積された知識、ノウハウは簡単に

コピーでき、持続的な改善もできます。

SW工学の技術的側面では、プログラムのモデュールの個数と要領を

大幅に削減でき、少ないインフラ投資だけでも高いパフォーマンスを
発揮することができます。SW業界の立場も、難しいコーディング作業を

代行するだけの単純繰り返し作業から離して、顧客の生産性と競争力の
強化法を研究し、実質的に問題を解決してくれる専門サービス事業までも

発展できます。


その間、SW業界はこのような技術的問題を解決するための
様々な対策が試みられていましたが、一度作成したコードを
他のOSや開発環境にも適用する技術、既に制作された
モデュールを他の環境で実行するエミュレータの開発作業

だけでした。どんな対策も実用化まではできませんでした。
Java
CJava ScriptPythonなどのプログラム言語レベルの
互換性問題は、コーディングの技術的構造のせいで、多分
永遠に解決できない課題に残る可能性が多いです。

しかし、‘SmartMaker’は前述のようにプログラム言語とは

全く違うアーキテクチャを採択しています。プログラムの基本

構造をロジックと機能に分けて、全ての利用者に対応できる

One Program Multiy Usingというクロス・プラットフォーム
技術をサポートしています。


実際に一つのアプリケーション・プログラムの‘ロジック’は、

どんなOSとデバイスとしても同じでなければなりません。
しかし‘機能’は、各OSトデバイスに従い、違いがあるべきです。

これにより、‘SmartMaker’は万能部品であるアトムと汎用
実行エンジンを各OS別に開発して、Windows用、Android用、iOS用、Web Browser用をおのおの提供しています。
これらプラットフォームは開発環境と内部構造、動作方式も

違いがありますが、利用者が扱うUIUX機能とデータの
入・出力と演算処理、通信ネットワークなどと関連した機能は
全く同じです。

したがって、別途に分離されたプログラム・ロジックを、この
プラットフォームの内部実行エンジンに投入すると、何の補完作業も、変換過程もせずに完璧に動作します。もちろん、実行エンジンは同じOSであれば、様々な種類の端末デバイスも

自動認識して最適の実行環境を構築するレスポンシブ技術を

プラットフォームに採択し、真の意味のクロス・プラットフォーム技術を実現しています。


「SmartMaker」は一つのプログラムモデュールを構成する二つの核心要素である「ロジック」と「機能」が完全に分離するように設計しました。
従来のSW工学技術やプログラムアーキテクチャとは全く別のアプローチで、コーディング技術が持っている根本的な問題と、単純作業を繰り返す開発方式を改善する基盤を固めました。実際、オフィスアプリのように誰でも簡単に使用できるGUI方式のデザインツール(次の2項を参照)を提供し、コーディング作業なしで、どんな種類のプログラムロジックも簡単に実装できます。

また、アプリに必要な全ての機能を汎用化し、これに基づくプラットフォーム(次の3項を参照)を作り、機能を事前に提供することで、どんなプログラムを制作する時でも単純作業を繰り返す必要がなくなりました。
「SmartMaker」は、ローコード、ノーコードを挙げている他の技術とも明らかな違いがありますが、ほとんどの技術はGUIツールで機能を実装するとコードに変換してくれるものや、既に作られたコードモデュール、テンプレートなどをリユースするだけの方式を採択しています。
結局、コードの体系はそのまま維持しながら、コーディングを手伝う方式に発展したプログラムが多いです。しかし、コードとコーディングに知識がない一般人には意味がないことを考えると、誰でもアプリを制作できる「SmartMaker」はコードとコーディング作業自体を完全になくした最初のソリューションです。
今日のアプリの有用性と適用効果を左右する絶対的な要素は、当該分野の専門知識や経験です今までのプログラム開発は、適用分野の知識やノウハウが全くない開発者が担当者から受けた内容に従って作業してきました。ところが、このような方式はますます多様化、高度化している世の中で、内容をそのまま伝えるために多くの時間とコストが求められます。ある知識は内容をはっきり伝えることができない場合もあります。
それゆえ、これからのSW工学の発展にとって、単純にコーディングを容易にすること、または減らすだけでは十分ではありません。最終的には、当該分野の専門知識やノウハウを持っている当事者自らが直接実装するように発展するしかないでしょう。
従来のコーディング方式の開発では、どのような機能を実装するかを決定する時にも、まずそれを実装するアルゴリズムから頭の中に思い浮かべて、自分が使用している言語やツールで実装が可能かどうかから検討し、その次に開発期間やコストを考慮して、プログラムの機能設計や開発の範囲を決定してきました。
しかし、「SmartMaker」でプログラムを作成すれは、このような技術的な問題やビジネス上の利害関係はすべてさておき、最終成果物の 効果、価値などプログラム自体に集中することができます。
人類がこれまで技術の問題であると考えてきたソフトウェアの問題を、「SmartMaker」が知識の問題に変えました。以前までは技術的な実装の可能性と開発期間とコストなどの問題を実用的な価値、適用効果などの問題でアプローチできるようにしています。

「SmartMaker」はプログラム技術の知識が全くない人でも簡単に使える要求定義ツールを提供しています。自分が作るプログラムの画面と機能をGUI方式のデザインツールを活用して誰でも簡単に作成できます。しかし、この方式では難しい約2%以下の複雑なルールとインタラクティブな動作手順は自然言語スクリプトを利用して、日常的に使かう日本語で記述すると、AI制作エンジンが内容を分析してプログラムを制作します。
要求定義中に人間が行う作業はプログラムの機能と画面を簡潔に表現することだけです。プログラムの適用効果と有用性、アプリ自体の完成度もこの作業で決定します。「SmartMaker」はこのように重要な要求定義を、各分野で豊かな経験と深い知識を持っている担当者が直接できるようにSmartBuilderという簡単な要求定義ツールを提供しています。
「SmartMaker」でアプリを制作する時、人が行う雄一の作業が要求定義です。要求定義ツールを利用して制作したいアプリの画面構成と機能をデザインさえすれば、作業の結果はプログラムの詳細機能、動作手順、実行条件など、一つのプログラムを制作するために必要な全ての情報、知識が一つのファイルに含まれます。

この結果物を活用して、「SmartMaker」内蔵のAI制作エンジンが実際のプログラム・ロジックを完成します。制作エンジンは結果物を分析してプログラムの実行に必要なデータベースの構成要素を抽出します。この構成要素に基づいてデータベースを設計し、DBテーブルも作成します。
続いて結果物に定義された機能を分析して動作に必要SQL文と、レガシーシステムと連携機能も自動で構成して、最終的に実行可能な状態にモデュールを完成し、個別のファイル(*.QPM 等)に保存します。
一方、「SmartMaker」が提供するSmartGeneratorを活用すれば、ロジックファイルを分析してサーバー装置の内部のアプリケーションサーバーソリューション(WAS)で実行される演算処理プログラムはもちろん、DBサーバーの入出力機能や外部システムと連携機能まで業界標準のXML Web Serviceとして自動で実装します。
このようにロジックファイルは、ひとつのアプリが含んでいる全ての機能構成と動作シナリオ、業務処理方法とノウハウまで全てが結集したKnowledge Bankの役割をします。ただし、そのプログラムを実際に実行する機能は含まれていません。実行に必要な機能は、次の4項で説明するアプリプラットフォームで、一括してサポートするようにプログラムの構造を革新したものです。

前述したように、人がGUI方式のデザインツールを利用して要求を定義し、AIエンジンがプログラム・ロジックに仕上げた「ロジック」ファイルを読み込み、まるでコーディングで作成された一般的なプログラムのように実行してくれるのがアプリプラットフォームです。
「SmartMaker」は一般的なアプリが動作するために必要な全ての機能を抽出して標準化及び汎用化したATOM (アトム)という万能部品を提供します。このATOMを束ね、どのアプリのロジックであっても解析して動作に必要なATOMを順次呼び出し実行させる汎用実行エンジン開発して、アプリプラットフォームとして提供しています。
特に、このプラットフォームの革新的なコンポーネントであるアトムはその性格と動作方式が、これまでのプログラム開発ツールとは完全に異なります。
従来の技術は、繰り返されるコーディング作業を軽減するために、ハードウェア装置のコントロールや、OSのサービスの呼び出しなど、一種のルーチン、単位毎の機能をオブジェクトの形で提供し、開発者はAPIを呼び出すコードを追加する方式でした。したがって、このようなオブジェクトは専門プログラマーだけが使用できる部品であり、この部品の使用方法もコーディング作業で行うしかありませんでした。
しかし、「SmartMaker」の「アトム」は、最初から一般人の観点で設計されました。プログラムを制作できる万能部品であるアトムを設計するために、ビジネスの現場で使われている数多くのアプリを調査、分析しプログラム画面を構成する単位を全部抽出し、体系的に分類しました。
標準部品となる単位の種類を導出しこれらの標準化および汎用化の設計過程を経て、万能部品のアトムを制作しました。そして、5年に渡って様々なアプリ開発プロジェクトに適用し検証と補完を続けて完成しました。
このアトムだけを使っても詳細な機能とサービスを構成することもできるようになりました。アトムが提供しているサービスを学習すると、どんなアプリでも制作できます。
アトムは従来の技術とは違い、APIを提供していません。SmartMakerはコードとコーディングの概念そのままを完全に排除しているため、アトムをデザインツールだけで組み立て、複雑なロジックを含んでいるプログラムでも、一切のコーディングなしで、素早く簡単に構成できます。
アトムはそれ自体が実際に動作するプログラムの要素の機能ですが、一方で、プログラムを制作するための要求定義する段階ではデザイン要素としても使われています。アトムは誰でも見慣れているUIと機能を盛り込んでいます。このような特性は次世代のSW工学で非常に重要な意味を持ちます。コーディングの知識が全くない一般人が初めでプログラムの要求を定義する場合にも、見慣れたデザインと機能のおかげで、抵抗感や事前教育しで適応可能です。自分が制作するプログラムに要求定義を素早く簡単にできる、真の意味での技術的革新ともいえます。
今のソフトウェア業界で最も困難な課題の一つは、ユーザの端末環境が多様化しているという事です。有線通信基盤のパソコンと無線通信基盤のモバイルに両分し、またモバイルはOSによってAndroidとiOSに分けられます。端末の画面サイズと目的によってスマートフォンとタブレットPCに区分する場合もあります。モバイルデバイスは同じサイズでも横と縦方向別にアプリのUI構成と機能にも違いがあり、開発方式と運営環境によるNative App方式とWeb App方式にも分けられます。
したがって、プログラムを制作しサービスする供給者の立場では、一つのアプリケーションをこのように様々な端末の環境とユーザのニーズに合わせる必要があります。つまり、同じアプリを環境に合わせて制作し重複したアプリを個々にメインテナンスすることになります。制作するプログラムの対象と機能は爆発的に増加していますが、限られた納期と予算を合わせるのも容易ではなく、必要な技術者の養成と確保することも非常に深刻な問題となっています。
これまでSW業界では、こうした技術的問題を解消するために多くの試みがありましたが、一度作ったコードを、他のOSや開発環境への互換技術や、既に作成したモジュールを他の環境で実行するエミュレータの開発作業も繰り返してきました。どの対策も実用化まではできませんでした。 Java、C、Java script、Pythonなどのプログラム言語レベルの互換性問題は、コーティングの技術的構造のため、おそらく永遠に解決できない課題として残る可能性が大きいです。
しかし、「SmartMaker」は前述のように、プログラム言語とは全く異なるアーキテクチャを採用しています。プログラムの基本的な構造をロジックと機能に分けたので、全てののユーザーをサポートするOne Program Multi Usingというクロスプラットフォーム技術を提供できます。
実際一つのアプリの「ロジック」は、どのOSやデバイスでも同じでなければなりません。しかし、「機能」は、個々のOSやデバイスによって変わるしかありません。
これにより、SmartMakerは万能部品のアトムと汎用実行エンジンをOS毎に開発し、Windows用、Android用、iOS用、Web用をそれぞれ提供しています。
これらプラットフォームは開発環境や内部構造、動作方式も異なりますが、利用者が扱うUI&UX機能とデータの入出力と演算処理、通信ネットワークなどに関わる機能は全く同じです。
したがって、別途に分離されたプログラムロジックを、このプラットフォームの内部実行エンジンに投入すれば、何の補完作業や変換過程もせずに完璧に動作します。もちろん、実行エンジンは同じOSであれば、様々な種類の端末デバイスも自動認識して最適の実行環境を構築するレスポンシブ技術をプラットフォームに採択することで、真の意味でのクロスプラットフォーム技術を実現しています。
一方、ロジックと機能を分離したアーキテクチャは、開発の生産性とプログラムの使用効果を最大化するクロスプラットフォーム技術を実現してくれる効果に加えて、SW工学技術とSWの社会的役割の地位を一層高めることもできます。
特に機能を除去し、全てのプログラムをロジックだけをファイル、DBデータの形で管理できます。
企業、学校、公共機関などの組織内部で行われる購買、生産、販売、R&Dなどの全ての業務活動の知識やノウハウを体系的情報として蓄積でき、蓄積したデータはいつでも呼び出して実行すると、業務が処理されるデジタル管理体制を構築できます。それだけでなく、蓄積された知識やノウハウは簡単にコピーでき、改善も継続することができます。
一方、SW工学の技術的側面では、プログラムモデュールの個数と容量を大幅に削減でき、少ないインフラ投資でも高いパフォーマンスを出すことができます。
ソフトウェア業界の立場でも、難解なコーディング作業を代行するだけの単純繰り返し作業から離れ、顧客の生産性と競争力の強化対策を研究し、実質的に問題を解決してくれる専門サービス事業に発展することもできます。