中小システム開発企業の業務システムの見積もり例

中小システム開発企業の業務システムの見積もり例は次のようになる。

 
作業区分 工数(日) 費用(円)
データベース 4 160,000
ログイン 0.5 20,000
メニュー 7.5 300,000
受注 22 880,000
在庫 25 1000,000
(合計) 59 2360,000

見積金額が高くなる原因として次の5つがあげられる。

1.見積もり時点で、システムの具体的な仕様が決まっていない
2.発注者側に仕様策定や基本設計をこなせる人材がいない
3.開発内容が複雑で規模が大きすぎる
4.ベンダの開発生産性が低い
5.多重下請け構造になっている

soroban

オープンソースのウェブブラウザ、Chromium

Chromium(クロミウム)は、オープンソースのウェブブラウザとして知られている。Chromiumは、C++とアセンブリで実装され、FreeBSD、Linux、Mac OS X、Windowsに対応している。Google ChromeやOperaは、Chromiumをベースに開発されている。Googleが提供した部分はBSDライセンス、その他の部分は複数のオープンソース系ライセンスを採用している。

Google Chromeは、Chromiumに次の機能を加えている。

1.Flash Player(2016年にFlashを停止し、HTML5をデフォルト化する仕様に変更)
2.Chrome PDF Viewer
3.Googleの名称とそのブランドロゴ
4.自動アップデート
5.Googleへの利用状況やクラッシュレポート送信
6.RLZトラッキングの送信
7.翻訳

現在、Google Chromeは、InternetExplorerとEdgeを合わせた世界シェアを上回ったとされる。

chromium_projects

世界でもっとも普及しているオープンソースのRDBMS、MySQL

MySQLは、世界でもっとも普及しているオープンソースのRDBMSとして知られている。MySQLはCおよびC++で実装されており、sjis、cp932、utf8、utf8mb4、ujisを文字セットに指定することで、日本語を正しく扱うことができる。

MySQLは、マルチストレージエンジン方式を採用しており、用途に応じたストレージエンジンを選択できる。InnoDBストレージエンジンは、ACIDに準拠したトランザクションをサポートしている。MyISAMストレージエンジンは、トランザクションをサポートしていないものの、全文検索を利用することができる。

MySQLは、GPLとコマーシャルライセンスの2通りで提供されている。アプリケーションによっては、GPLではなく商用ライセンスを選択する必要がある。

MySQLadministrator1

ハードウェアによって乱数列を発生させる方法

ソフトウェアの計算ではなく、ハードウェアによって乱数列を発生させる方法として次の3つが知られている。

1.サイコロ:サイコロの出目を使う。
dice

2.ダイオードの生成する熱雑音:ダイオードの熱雑音を増幅してアナログ・デジタル変換する。
white_noise_generator

3.光子の確率的な振る舞い:5 0/5 0ビームスプリッターを通過した単一光子の挙動を検出する。
photon_beam_splitter

IntelのIvyBridge以降のCPUでは、rdrand命令が追加されている。rdrand命令は、CPUに組み込まれた乱数生成器から予測不可能な乱数を生成するとされている。この乱数生成器は、擬似乱数生成アルゴリズム(線形フィードバックシフトレジスタ法)をベースにしながら、周期性を持たせない仕組み(定期的にseedを初期化する)を設けている。Linuxでrdrandをサポートする際に、「この乱数生成器を信頼できるのか?」という問題提起がなされている。

3Dグラフィックスで使われている座標系と変換

3Dグラフィックスで使われている座標系は、次の4つになる。

1.ローカル座標系:各物体が独自に持っている座標系。モデリングをする時にローカル座標の原点を物体の中心にする。

2.ワールド座標系:3D空間における絶対座標系。1つのワールド座標系の中に、全てのローカル座標系は位置付けられる。

3.視点座標系:視点の位置を原点とし、視点の方向にZ軸がある。

4.スクリーン座標系:画面の中心を原点とし、画面右方向にX軸、上方向にY軸、手前方向にZ軸がある。

coordinate

3Dグラフィックスで使われている変換は、次の3つになる。

1.アフィン変換: 3次元モデルの線型変換(回転、拡大縮小、剪断)と平行移動の組み合わせ。

3d_coordinate_move
上図、点P(x、y、z)を点P’(x’、y’、z’)に移動させるアフィン変換は次のようになる。(tx:x軸方向に移動、ty:y軸方向に移動、tz:z軸方向に移動)
3d_formula_move

3d_coordinate_rotation
上図、X軸を中心にして角度θ回転させるアフィン変換は次のようになる。(回転の向きは原点から見て右回り。Xの座標値は変化しない)
3d_formula_rotation_x
同上(Y軸)
3d_formula_rotation_y
同上(Z軸)
3d_formula_rotation_z

拡大・縮小・反転のアフィン変換は次のようになる。(a:x軸方向にスケール変換、e:y軸方向にスケール変換、i:z軸方向にスケール変換)
3d_formula_scale

2.視野変換: 視点の位置を移動・回転させる。

3.投影変換: 3次元モデルをディスプレイなどの2次元に投影する。

ブラウザで3Dグラフィックスを表示させるThree.js

Three.jsはWebGLをラップし、扱いやすくしたJavascriptライブラリとして知られている。WebGLは、ウェブブラウザで3Dグラフィックスを表示させるための標準仕様で、実装はJavaScriptとネイティブOpenGLからなる。

対応ブラウザは次のようになる。

[PC]
Edge
Google Chrome 8 以降
Internet Explorer 11 以降
Mozilla Firefox 4 以降
Opera 12 以降
Safari 5.1 以降
[モバイル]
Android ブラウザ – Android 5.0 以降
BlackBerry 10
Edge
Firefox for Mobile
Google Chrome for Android 25
Internet Explorer Mobile 11
Opera Mobile 12 (Android のみ)
Safari 8 – iOS 8 以降
Tizen 1.0

three_js_demo

フリーの人工知能ライブラリ、DSSTNEとTensorFlow

DSSTNEやTensorFlowは、フリーのディープラーニング型人工知能ライブラリとして知られている。DSSTNEはAmazonが、TensorFlowはGoogleが開発してオープンソース化した。

ディープラーニング(深層学習)とは、ニューラルネットワークを活用した機械学習のことを指し、第三次人工知能ブームをもたらした。ディープラーニングによる汎用的なAIの実現が期待されているが、現在は特化型のAIのみが実用化されている。

ディープラーニングは、データ構造がある程度知られている画像や音声に対しては成果をあげているものの、データ構造があまり判明していない自然言語処理に対して成果をあげていない。

ai

高機能なオープンソースERP、iDempiere

iDempiere(アイデンピエレ)は、高機能なオープンソースERPとして知られている。iDempiereは、OSSのERPパッケージADempiere(アデンピエレ)に、OSGiなどの新機能を追加したソフトウェアで、販売管理、購買管理、在庫管理、生産管理、固定資産管理、人事給与管理、財務会計といった基幹業務機能を提供している。

 
機能 概要
取引先管理 仕入先、販売先、従業員を「取引先」として、登録・管理することができる。各取引先の与信情報を、販売管理、購買管理の機能と連動して管理することができる。
購買管理 商品の見積、発注、仕入を管理することができる。発注や仕入の状態により在庫情報が自動で更新される。仕訳データの送信やレポートの生成ができる。
販売管理 商品の受注、在庫の予約、出荷、請求の管理をすることができる。仕訳データの送信やレポートの生成ができる。
製品管理 材料や製品を登録・管理することができる。
在庫管理 製品の仕入による在庫の増加、出荷による在庫の減少などをシステムで管理することができる。生産管理システム、購買管理システムと密接に連携している。
財務会計 企業の経営活動の成果を記録、報告、分析することができる。すべての伝票は、リアルタイムに統合され、財務諸表の作成を行なう。

iDempiere_function
idempiere_logo
iDempiereは、プラグインによる機能拡張に対応しており、iDempiere向けに多くのプラグインが公開されている。

高速で信頼性の高い最も普及している線形演算ライブラリ、LAPACK

LAPACK(レイパック)は、高速で信頼性の高い最も普及している線形演算ライブラリとして知られている。LAPACKは連立1次方程式、線形最小二乗問題、固有値問題、特異値分解を数値的に解くことができ、Fortran90で実装されている。LAPACK3.4.0からはCインターフェースが統合され、CやC++から容易に利用できる。

LAPACKは,内部でBLASライブラリを呼び出している。各CPUベンダーは最適化されたBLASを提供しており、ユーザーはCPUに最適化されたBLASを使うことで計算速度を飛躍的に向上させることが出来る。自分のシステムに適合したBLASがないときは、ATLASというツールでシステムに最適化されたBLASを生成することもできる。

lapack

回帰分析を広告効果の予測に活用する

回帰分析は、独立変数x(例:広告費)と従属変数y(例:売上)の関係を表す式(例:y=ax+b)を統計的に推計する道具として知られている。

例えば、広告費と売上のデータが下図のように分布しているとき、回帰分析を使って漸近線(y=ax+b)を求めることにより、広告効果の予測に活用できる。

Normdist_regression

漸近線(y=ax+b)のパラメータaとbを求める式は最小二乗法から導出され次のようになる。

least_square_method