20 | 05 | 2012

MCi Home

ソリューションとしてのMagic(2)

ソリューションとしてのMagic(2)

開発部 柴尾昌克 2011/07/20

特徴1で Magic とはどのようなプラットフォームなのかを述べましたが、ここから得られる結論として、次の特徴が導かれます。

特徴2 開発期間が短い

Magic を使ったシステム開発においては、プログラミングとは Magic 実行エンジンに指示する内容を記述することを意味します。またデバッグ作業も、基本的にはプログラマが作成した指示内容に対して行うことになります。
※もちろん、システムが始まりから終わりまで一通り動くかどうかのテスト(結合テスト)も開発業者は行います。

したがって、システム開発工程における設計段階よりあとの、実装・テストにかかる期間はたいへん短く済みます。

特徴3 設計に時間をかけられる

プログラミングの時間がたいへん短縮されることの効用として、

  • その分設計に多くの時間をかけられる
  • プロトタイプを速く作成することができる

が挙げられます。システム開発の途上では現実的には、後からの仕様変更はどうしても出てきがちになります。そう言った場合に、プログラムが短時間で出来ると、仕様変更に対して即座に対応できますし、あるいはその仕様が本当に正しいのかということも、短時間で(ある程度までなら)判断できるようになります。

特徴4 単体テストが容易

Magic のプラットフォームでは、情報システムは、既存のソフトウェアである Magic 実行エンジンと、システム開発の都度作成される Magic プログラムで構成されます。

そのうち、Magic 実行エンジンは動作は基本的に安定です。というのは、規模の効果を利用したデバッグが行われているからです。すなわち、国内には数千社の企業が Magic を使っています。それら各企業が使っている実行エンジンは(バージョンが同じなら)みな同じソフトウェアを使っていることになります。もしリリースされたばかりの実行エンジンに対して、バグが発見されれば、マジックソフトウェア・ジャパン(株)に最終的に報告が行き、そこでバグ修正がされます。リリース前のテストでは発見されなかったバグでも、多くの会社が同じ実行エンジンを使用することにより、それら未発見のバグを見つけることができ、実行エンジンの動作安定化は比較的速く実現するようになります。

一方、Magic プログラムはシステム開発業者がその都度作成するわけですが、デバッグ作業は主にこのMagic プログラムに対して行われることになります。ところで、Magic プログラムは実行エンジンへの指示の集まりに過ぎませんから、デバッグの範囲はそれほど広くはありません。したがって Magic を使ったシステム開発では、単体テストも比較的容易にでき、残りの時間を結合テストに回すことができます。

特徴5 メンテナンスが容易

プログラミングに要する期間が短くて済むということから、業務内容の変更に伴う、システムの仕様変更に対しても迅速に対応することができます。特に小さい変更に対しては、即応することも可能になります。
※大きい変更の場合は、設計段階からの見直しが入るので、その分の工数はかかるようになります。

ところで、Magic プログラムは Magic 実行エンジンへの指示の集まりだと述べました。これを具体的に言うと、「指示」は主に

  • 実行エンジンにあらかじめ用意されているパラメータの設定
  • 処理手順をフロー順に登録
  • 計算式の登録

等で構成されます。

このことから、ある動作を実現するような Magic プログラムを記述しようとすると、その記述の仕方は、誰がやってもほぼ同じ形になります。つまり、誰がプログラミングをやっても、(ロジックが同じであるという条件の下では)似たようなプログラムができるということになります。

従来の、ソースコードを書いてコンパイルするというプログラミング手法では、ソースの書き方にかなりの自由度があり、プログラマの数だけソースの書き方がありました。したがって、ある人が作ったソースを他の人が見ると、たいへん見にくいと感じることが多々ありました。そこで企業では、他人が見ても見やすいソースを作成するために、ソースコードの書き方に一定のルールを設けています。そのようなルール化のことを標準化と言います。
これと比較すると、Magic の場合、プログラムの書き方にさほど自由度がないので、誰がプログラミングしてもだいたい同じ形になり、実はこのことによって、プログラムの標準化が自然に行われることになります。

標準化ができていると、ある人が作ったプログラムが他の人にも容易に読めるということになります。すると、例えばシステム開発担当者が代わったとしても、すぐに次の人にプログラムを引き継ぐことができ、引継ぎの時間のほとんどを業務理解にあてることができるようになります。

弊社では事業内容の一つとして、Magic で作成された他社製システムのメンテナンスを行う、ということもやっております。すなわち、昔ある開発業者に依頼して Magic でシステムを開発してもらったが、今はその業者によるメンテナンスを受けることができなくて困っている、という企業様を対象に、システムメンテナンス代行のご相談も承っております。

ソリューションとしてのMagic(1)

ソリューションとしてのMagic(1)

開発部 柴尾昌克 2011/07/20

弊社ではシステム開発ツールの一つとして、マジックソフトウェア株式会社製の Magic を使用しております。ここでは Magic の紹介をしたいと思います。Magic とはただのプログラミング言語ではなく、システム開発、特にデータベースを使った業務システムを、たいへん効率的に構築できるようにした、「ビジネスアプリケーションプラットフォーム」です。

まず Magic とはどのようなプラットフォームなのかを述べたいと思います。

特徴1 データベースを使った業務用システムに特化している

業務用システムは、その会社の業務に合わせて構築することがほとんどだと思います。ですので、業務の数だけ業務システムが存在すると言って過言ではないでしょう。ところで、細かい点では、それぞれの業務システムに違いがあったとしても、大雑把な構造は、どのシステムを見ても、ほとんど同じです。「大雑把な」観点では、処理内容は共通しているのです。すなわち、



データ照会機能
システム内に登録されているデータや、集計結果を見る。

データ編集機能
顧客情報や注文情報などのデータを入力、修正する。

データ集計機能
顧客情報や注文情報などから各種集計を取り、分析や会計に用いる。

帳票出力機能
取引先に渡す文書や、自社内に保管するサマリー(まとめ)などを紙に印刷する。

ファイル入出力機能
取引先の情報システムが出力したデータを自社で取り込んだり、取引先が取り込むためのデータを自社から出す。異なる情報システム間でデータの連携をとるために用いられる。

画面
デザインはあまりこだわらず、必要なデータが過不足なく表示されていさえすれば良い場合が多い。ゲームのような高度なグラフィックス処理は必要とされない。

なる特徴を共通に持っています。


Magic は上記基本機能を短時間で実装できます。というのは、Magic にはこれら基本機能の大枠があらかじめ準備されており、プログラマはただ詳細部分だけを指示・記述すれば良いだけだからです。



Magic というプラットフォームでは、Magic 実行エンジンというソフトウェアが、業務システムに必要な基本機能の大枠を提供します。その際実行エンジンは、プログラマが用意した Magic プログラムを読み込み、基本機能の大枠の上に細かい仕様を付け加えるという形でシステムが動作するのです。

したがって、Magic を使ったシステム開発においては、プログラムを一から作るわけではなく、Magic 実行エンジンに指示する内容を記述するだけで、所定の機能を実現することができます。これは、データベースを使った業務システムに特化したからこそ、可能になったのです。

IT化へのロードマップ(5) -- どこまでを外注するか

IT化へのロードマップ(5)

5.どこまでを外注するか

開発部 柴尾昌克 2011/07/20

情報システムの開発からメンテナンスに至るまでの期間、必ず自社内に、業者との連絡窓口となるIT担当者を配置することになると思います。
この場合、次の二パターンがありえます。

自社社員にIT担当を任せる
この場合、任されたIT担当者は必要最小限のITスキルを身につけるか、またはITスキルを持った人を新たに雇用することになるかと思います。IT担当者は、システムに関する社内からの要望を吸い上げ、取りまとめ、システム開発業者に連絡することが主な仕事となります。

IT担当まで含めて外注する
これはどちらかというとITコンサルティングに近い形になるでしょう。自社にシステム開発業者が常駐し、その会社の業務を覚え、分析し、システム化へとつなげていきます。この場合でも、自社内に窓口となる人が必要になることもありますが、ITスキルは要求されません。また、IT担当だけでなく、データ入力などのシステム運用まで外注するという、いわゆる業務プロセスアウトソーシング(BPO)という形態もあります。