web-dev-qa-db-ja.com

ビジュアルプログラミングインターフェースは、非技術系ユーザーに効果的ですか?

私は現在、ユーザーがニーズに応じて独自のフローを設計できるようにするIVR(インタラクティブ音声ソリューション)システムに関するソリューションを設計しています。このソリューションでは、ユーザーは質問、回答、メッセージ、およびビジネスフローに従ってキーパッドまたは音声コマンドとの関係を調整する必要があります。

オプションの調査について少し時間をとった後、ビジュアルプログラミングインターフェイスが良いオプションになり得ると結論付けました。私の研究によると、番組の流れに関連するいくつかのライブラリを見つけました:

NoFlo- http://noflojs.org/

Meemoo- http://meemoo.org/

jsPlumb- http://jsplumbtoolkit.com/home/jquery.html

ThreeNodes - http://idflood.github.io/ThreeNodes.js/

ダイナモ- http://autodeskvasari.com/dynamo

mxGraph- http://www.jgraph.com/mxgraph.html

Node-RED- http://nodered.org/

GoJS- http://gojs.net/latest/index.html (有料)

MAX MSP、Grasshoper(生成モデリングプラグインはRhinoで動作します)での私自身の経験では、ビジュアルプログラミングインターフェイスは複雑な構造を構築する際に非常に複雑になる可能性があります。一方、テキストベースのプログラミングと比較して、より良いフィードバックループが作成されるため、簡単です。

最近の人気の例であるScratchのようなビジュアルプログラミングツールもあります http://scratch.mit.edu/ コーディング方法を学ぶために開発されました。

博士のお気に入りの科目ソフトウェア工学の学位論文は、グラフィカルまたはビジュアルプログラミングです。 […]そのような努力から、まだ説得力があり、はるかにエキサイティングなものはまだありません。私は何もしないことを説得しています。 (フレデリック・ブルックス神話の男モン)

(ドラッグドロップ、ラバー接続、複数の要素を1つにクラスター化、入力と出力のパーツ-例:ジグソー)のようなビジュアルプログラミング要素も使用しているゲームがあります。

これらのすべての情報を収集した後、方法についてより明確にするのではなく、多くの異なる見方に迷い、それらが非技術系ユーザーにうまく機能しているかどうかについての確かな情報を見つけることができなかったと感じます。すでにそのようなプロジェクトに取り組んでいたら、あなたの知識や経験を喜ばせることができますか?

ありがとうございました、

18
Abektes

私はビジュアルプログラミングシステム/言語に取り組んできましたが、フレデリックブルックスに同意します。グラフィカル、図式、または任意の種類の非テキストベースの言語は、優れた汎用プログラミング言語にはなりません。テキストは、複雑なもの、特に動作やアクションを説明するのに非常に効率的で、通常は非テキストよりもはるかに優れています。写真は、特別な場合にのみ1000ワードの価値があります。

しかし、特別な目的のグラフィック言語は、ドメイン固有の限られた問題に適切に適用できます。たとえば、 LabVIEW は、対象のニッチ内の多くの問題にうまく適用されています。

これらのドメイン固有のグラフィカル言語は、技術者以外の人でも使用できる場合がありますが、特効薬ではありません。彼らは(通常)言語とシステムの学習に多大な投資を必要としますが、それでも問題を明確に理解して、グラフィカル言語/システムでそれを表現しようとする必要があります。

9
obelia

私は長い間金融業界でソフトウェアを作成してきましたが、Excelはfarで最も成功している非ビジュアルビジュアルプログラミングインターフェイスです。 -テクニカルユーザー。

  • 初心者ユーザーは、単純な行と列の操作から始めます。
  • 単純なドラッグで「プログラミング」を開始し、列(または他の単純な操作)を選択して合計し、徐々により複雑なタスク(より複雑な数式、他のシートの値の参照、ピボットテーブルの作成など)に移動します。
  • エキスパートユーザーは、さまざまなコントロール(ボタン、リストボックスなど)を追加し、独自のマクロを記述し、他のデータソース(RTDサーバーなど)を追加できます。

私は人々がそれを使ってやっていることに常に驚いています*。

Excelがこれまでで最高のデザインであるとは主張していません。誰もがそれを使うべきだと言ったり、非技術者がそれを使ってエレガントなソフトウェア設計を考え出していると主張したりはしません...

...しかし、Excelは、ユビキタスで愛されるために正しいことをしているに違いありません**。

数字の大きなグリッドを持っていることが重要ですだと思います。ほとんどのプログラミングはデータの操作に関するものですが、ほとんどのグラフィカルプログラミング言語は、ワークフローの操作/コンポーネントのストリング処理に関するもののようです。


*つまりアプリケーションに作成するワークブックの「カードの家」セットを取得する場合があります

**ただし、hatedこれは実際の開発者の間のものです。

6
Franchesca

私はまだソフトウェアに魅了されています http://en.wikipedia.org/wiki/MeVisLab 。ちょっとしたツリー階層でアプリのフローを確認するのに役立ちますが、技術者以外のユーザーが独自のアイデアに使用できる非常に複雑なモジュールを開発することもできます。

2
Sonne

私はフィールドでより成功したプロジェクトがUnity 3Dのプラグインであることに気づきました:playmaker。 Playmakerは、メインのタスクでゲームの開発者を支援することに重点を置き、リアルタイムでビジュアルフィードバックをすばやく反復できるようにするビジュアルステートマシンです。

実際、おそらくノードは、非プログラミングの人々がコードロジックを理解するのに役立つ最良のビジュアルシステムではありません。各フィールドは、ユーザーが作成しようとしているエクスペリエンスに、より関連するシステムを発明する必要があります。

良い例がmozilla appamakerです。ビジュアルキャンバスはスマートフォンです。プレハブはスクリーンパーツです。彼らはまた、良いフィードバックとフィードフォワードでリスナーを視覚化することに取り組んでいます。彼らが作成した視覚システムは理解しやすいと思います。

一般的な設計は失敗につながります。

2
user52989

彼らが DRAKONビジュアル言語 を設計したときに取られたアプローチは、ビジュアルプログラミング言語を選択または設計する際に考慮すべきことだと思います。

DRAKONの場合、彼らは、テキストベースのプログラミング言語に使用されるルールをエミュレートまたは改善しようとする視覚的な方法で適用される一連のルールまたは制約を設計しました。

テキストベースのプログラミング言語では、プログラムを読むときは通常、次のプロセスに従います。

ソースコードを含むテキストファイルを開くと、すぐにプログラムを初期化する関数またはメソッドを検索し、プログラマーがベストケースシナリオであると判断したパスに従い、コーナーケースを次のような特別な場所に配置します。関数の終わり。サブルーチンの呼び出しを見つけると、その定義の検索を開始し、見つかったテキストのチャンクにジャンプします。そのサブルーチンの最後に到達すると、呼び出し元ルーチンに戻ります。このプロセスは、プログラムの最後に到達するまで繰り返されます。

したがって、DRAKONで行ったのは、サブルーチンへの呼び出しの間に線を挿入し、線とノードを図に配置する方法を指定するルールを追加しながら、サブルーチンをノードに置き換えることでした。

1
rraallvv

アンリアルエンジン4ブループリントシステムは、私が知っている最も完全で成功したビジュアルプログラミング言語です。

本質的には、C++の上のレイヤーであり、マシンコードの上のレイヤーです。

あなたが示したこれらのインターフェースの一部は、完全ではないように見えますが、コードの上に追加のビジュアルスクリプトを追加すると有益であり、非技術系ユーザーを含むすべての人にとってより効果的になります。

この利点は、非技術系ユーザーだけでなく、UE4ブループリントのような完全なビジュアルスクリプト言語にとっても、高度なユーザーは、この追加のレイヤーが提供するビジュアルプロトタイピング、開発、およびデバッグの利点からメリットを得ます。

インターフェースが本当に最上位のレイヤーであり、不器用な置き換えではない限り、すべてのユーザーにとってメリットがあります。

0
user113202

私が外国為替で働いていたとき、 ビジュアル取引戦略の作成 アプリケーションのユーザーテストとトレーニングをしました。それは入り込むのがより簡単で、非複雑な戦略(ほとんどはそうです)を作成するのがより速いことが証明されました。

別の良い例は Jiraのワークフロービルダー です。法務、マーケティング、経理部門など、私が一緒に働いたプロジェクトマネージャーのほとんどは、それを理解して自分で使用することに問題はありませんでした。

私の経験では、はい、視覚的インターフェースは非技術者にとって効果的です

  • 「プログラマではない」メンタルブロックを引き起こさない
  • 実験を奨励する
  • あなたの創造の所有権と満足感を与える

これらを強化するためには、

  • uIを見つけやすく、寛容にする
  • 元に戻す、コピー/貼り付け機能があります
  • チュートリアル、例、テンプレートを提供する
  • 例を共有し、サポートを容易にするエクスポート/インポート機能

最後に、多くの人々はそれを実現せずにビジュアルプログラミングの形式を実行しました。たとえば、マインドマップ、フローチャート、プロセス図を作成します。

0
Alex V.