ユニケージ開発手法

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

ユニケージ開発手法 (ユニケージかいはつしゅほう、: Unicage software development method)とは、UNIX系オペレーティングシステム上において、コマンドシェルスクリプトでシステムを開発する手法である。ユニバーサル・シェル・プログラミング研究所(USP研究所)が商標権を持ち、研究・普及を行っている。データをテキストファイルで持ち、100種類程度の単機能コマンドを、パイプリダイレクト等と組み合わせて様々なデータ処理を行うことを特徴としている。

特徴[編集]

プレインテキストにデータを持たせ、シェルスクリプトフィルタコマンドを呼び出して利用することが技術の根幹となっている[1]USP研究所のウェブサイトを記述していることから、ガンカーズのUNIX哲学[2]に影響を受けていると考えられる。コマンドは、UNIX標準のものの他、必要に応じて#独自コマンドを利用する。

パイプを多用するため、プログラムの多くの部分で並列処理が自然に起こる。マルチプロセッサシステム上のカーネルは、パイプラインで連結したプロセスを、CPUコア数に達するまでほぼロスなく並列実行することができる。そのため、プログラマは、意図している、していないに関わらず、並列コンピューティングを行っている。この特徴は、特にバッチ処理の高速化に資する。ただし、ソート等、標準ストリームの入出力を遮るコマンドがパイプライン中にある場合は、効果が半減する。例えば、ソートが存在する場合、ソート以前のコマンドと、ソート以後のコマンドは同時に実行しない。

シェルスクリプティングとの違い[編集]

ユニケージ開発手法には様々な作法がある。独自コマンドの存在と、この作法(ノウハウ)により、大規模システムへのシェルスクリプト適用を可能としている。

  • 作法の例
    • テキストファイルを上書きしない。なるべく消去しない。
    • シェルスクリプトの相互呼び出しを行わない。
    • データファイル、シェルスクリプトの置き場所の標準化

独自コマンドの種類や仕様についてはユニバーサル・シェル・プログラミング研究所で管理している。アプリケーション開発者は、コマンド作成や改変を行わない。既存のコマンドの組み合わせでは不可能であったり、時間的な費用(プログラマの作業時間、計算機の演算時間)が高くなる演算が見つかった場合、議論を経て新規コマンドを提供する。

新規コマンドの開発に慎重になることには、以下の理由がある。

  • コマンドの種類や仕様を各システムで画一化することで、管理費用が増大することを防ぐ。
  • 自作コマンドの作成に時間をかけるより、コマンドの組み合わせ技を考えたり人に聞いたりする方が、結果としてアプリケーションプログラマの仕事が早くが終わる。(「倹約のルール:他に方法がないことが実験により明らかである場合に限り、大きいプログラムを書け」レイモンド: UNIXプログラミングの技法)

以上のように、ユニケージ開発手法という用語には、UNIX的な考え方を理解した少数精鋭部隊(全体として低コストだが高給取り)で、ソフトウェアの開発・管理・運用コストを低減する手法という意味合いが込められており、シェルスクリプトを書くということは、その手段にすぎない。

独自コマンド[編集]

open usp Tukubai として、以下のコマンドを公開している。

cgi-name check_attr_name check_need_name cjoin0 cjoin1 cjoin2 comma count ctail delf divsen filehame getfirst getlast gyo han join0 join1 join2 juni kasan keta keycut loopj loopx map marume mdate mime-read mojihame nameread plus rank ratio retu self sm2 sm4 sm5 tarr tateyoko tcat unmap up3 yarr ycat yobi ysum zen

実績[編集]

  • 成城石井良品計画などで、システム自社内製のツールとして使用している[3][4][5]
  • 「ユニケージ開発手法および同開発コマンドセット」がIPA主催、「ソフトウェア・プロダクト・オブ・ザ・イヤー 2008 システム・基盤 分野」を受賞している[6]

脚注[編集]

[ヘルプ]
  1. ^ 杉田秀、深山辰徳、蛭田智則、富仲寛哲、山名早人「マルチコア・SMTプロセッサ上におけるシェルスクリプト高速化手法」、『情報処理学会研究報告. 計算機アーキテクチャ研究会報告』第2007巻第17号、社団法人 情報処理学会東京2007年3月1日、 73-78頁、 ISSN 09196072NAID 1100062498722013年3月28日閲覧。“コンパイラ及びツール,「ハイパフォーマンスコンピューティングとアーキテクチャの評価」に関する北海道ワークショップ(HOKKE-2007)”
  2. ^ Mike Gancarz 著, 芳尾 桂 翻訳:UNIXという考え方―その設計思想と哲学, オーム社, 2001.
  3. ^ 森英信 (2009年4月20日). “情シス、ベンダーがそれぞれの仕事を全うすることがベストな関係を生む~良品* 計画がシステムを内製する理由”. EnterprizeZine. 株式会社翔泳社. 2013年3月28日閲覧。
  4. ^ 目次康男 (2009年7月17日). “独自の手法で10倍速開発 7割主義で変化対応力を高める 良品計画”. 株式会社 日経BP. 2013年3月28日閲覧。
  5. ^ 清嶋直樹 (2010年7月16日). “[IT Japan 2010]「経費や人を減らさなくても利益は出せる」---成城石井の大久保恒夫社長”. 株式会社 日経BP. 2013年3月28日閲覧。
  6. ^ ソフトウェア・プロダクト・オブ・ザ・イヤー2008 を決定 (PDF)”. 独立行政法人 情報処理推進機構 (2008年10月9日). 2013年7月12日閲覧。

外部リンク[編集]