ソフトウェアの標準と部品化 5 /リファクタリング

技術開発コラム:技術・開発の閑話-2- vol.15
音響技術と開発 技術開発コラム
DSPボード/基板設計パターン image 映像と振動信号の製作イメージ 無響室 - 音響実験/測定、音響解析 image アナログ回路とオーディ信号処理 イメージ 音声信号波形とデジタルストレージ image

音響技術とソフトウェア、ハードウェア開発

音響と開発 : Sound & Development
株式会社エーアールアイ / ARI
ARI CO.,LTD.
技術・開発の閑話

リファクタリング

ソフトウェアの標準と部品化 5
15

このコラムは無料メールマガジン「アメニティ&サウンド音と快適の空間へ」 vol.36〜vol.64(2003年8/21〜2004年11/18)に音響と開発の関連コラムとして連載していたものを編集掲載したものです。

前回は、アジャイル開発の話題で少し部品化や標準化といったこのテーマから外れているかのようになっていますが、アジャイル開発で重視されることの多いリファクタリングの考え方は、部品とまで言わないまでも、部本的なモジュール(やコンポーネント)のインターフェース仕様を変更しないで改良することから、共通性を有しています。

  ▼リファクタリング【refactoring】
    IT用語辞典 e-Words
http://e-words.jp/w/
E383AAE38395E382A1E382AFE382BFE383AAE383B3E382B0.html

ウォーターフォール型の開発方式では、先に製造された部品的なコードは、よほどの不都合がなければ、改版することは避けることにされていることが多いかと思います。

一方、アジャイル的な開発方式では、テストコードによる品質確保に拠って、リファクタリングなどのコード改変を肯定的に考えられていることが多いようです。

もっとも、実際に導入されている開発現場でリファクタリングが行われるかというと、予算的には難しいことが多いのではないかと推測しますが……

XPプログラミングがリファクタリングで説く「動作を変更せずに、効率やコード記述を改善する」という作業は、対象のソフトウェアが要求される性能を確保しているならば、改悪リスクを伴うだけの金のかかる行為と考えられることも珍しくはないでしょう。

リファクタリングの作業が後の保守や、再利用性などにおいても、また、技術者のスキルアップなどでも大変有効であるという点においては、あまり、反論する方はいないでしょうが、その作業を行うための予算や時間を作ることを無条件に賛成することもまた無いでしょう。

いかに、テストコードによって動作検証の完全性を確保することも考慮はされているとはいえ、肝心のテストコードの設計の質が低い場合もあり得ますし、リファクタリングの対コストの正当性とリスクを評価した場合には難しい判断になります。

ファームウェアの場合には、リアルタイム性能や処理時間が問題になる場合もあります。

  ▼ファームウェア 【firmware】
    IT用語辞典 e-Words
http://e-words.jp/w/E38395E382A1E383BCE383A0E382A6E382A7E382A2.html

テストコードを動作させた状態と実際の状態では環境や動作時間が異なるため、論理的な検証はできますが、処理時間の問題を内包している場合には必ずしも有用ではない場合もあります。

性能がシビアに求められる場合にはI/Oリカバリタイムや待ち同期、プリフェッチ、キャッシュなど、ハードウェアの仕様に対して無駄がないよう考慮されたコードになっている場合があります。

このようなコードではテストコードを安易に用いて検証するということができませんし、リファクタリングによって、処理時間が変わり動作不良を生むリスクがあります。

できるだけ、このような部分は局所化し部品化(ブラックボックス化)したり、そのような方法をとらなくて良いような努力によって、問題にならないようにすることが普通ですが、最初は、可能な限りゆるやかな条件になるように実装しておいて、後に局所的にシビアに改変することで、動作を満たしてから性能を向上するという手法もとられます(パフォーマンス・チューニングなどと呼ばれる作業です)

もっとも、後に性能向上できる見込みを立てることが難しいので、ハードウェア性能に余裕がある場合や、可能な限り高速である方が好ましいというようなタイプでなければ、後に回すということは難しく、製品の要求上やむなく改造していることの方が普通だろうと思います。

リファクタリングの場合には、プロジェクト終了後に改良することも指しますし、少し違いますが、チューンアップを将来の類似製品が計画された時への対応に向けてや、同製品のソフトウェアが途中生産ロットから切替られる場合に備えて開発プロジェクト終了後に改良したものを備えておく場合もあります。

開発実績と事例 ソフトウェア・ファームウェア
CPU/DSP

ARIはハードウェア設計、製造、ファームウェア開発、 Windowsアプリケーションの開発をしています。 実績等に興味をお持ちいただけましたら、会社情報に主な開発実績を 「音響と開発」のコーナーには事例など関連情報を掲載していますのでご覧ください。

技術・開発の閑話 -2-

ソフト、ハードウェア 技術関連の雑記

このコラムは無料メールマガジン「アメニティ&サウンド 音と快適の空間へ」 vol.36〜vol.64(2003年8/21〜2004年11/18)に 音響と開発の関連コラムとして連載していたものを編集掲載したものです。

技術・開発の閑話 -2- :技術開発コラム

技術・開発の閑話-2- vol.11〜20

20F1とコンピュータ技術 後編
技術・開発の閑話-2-
19F1とコンピュータ技術 前編
技術・開発の閑話-2-
18ソフトウェアの標準と部品化 8
標準と生産管理
17ソフトウェアの標準と部品化 7
遺産と再生産
16ソフトウェアの標準と部品化 6
重要な課題
15ソフトウェアの標準と部品化 5
リファクタリング
14ソフトウェアの標準と部品化 4
アジャイル開発
13ソフトウェアの標準と部品化 3
新開発ツールと再生産
12ソフトウェアの標準と部品化 2
戦術と戦略の誤解
11ソフトウェアの標準と部品化 1
技術・開発の閑話-2-

技術・開発の閑話-2- vol.01〜10

10NHK技研公開 2004
超高精細映像システム
09Googleローカルファイル検索へ
技術・開発の閑話-2-
08専門ドメインの基礎範囲 2
高度な統合化による構造変化
07専門ドメインの基礎範囲 1
技術・開発の閑話-2-
06Prescottリリース
技術・開発の閑話-2-
05NDAと情報公開
技術・開発の閑話-2-
04エラーとコスト
ゼロ除算/ブルースクリーン /XP
03リアルタイムとベストエフォート
技術・開発の閑話-2-
02HDD容量の差
天使の分け前(Angels' share)
01「ありえない」
フェイルセーフと安全機能の連鎖

ソフトウェア開発コラム : 技術・開発の閑話

ソフトウェア開発と開発ツール関連の雑記

機器組込みのエンベデット・ソフトウェア(ファームウェア)の開発に関連したコラムです。 メールマガジン「アメニティ&サウンド 音と快適の空間へ」に連載していた技術・開発コラムを編集掲載しています。

技術・開発の閑話 :ソフト開発コラム

技術・開発の閑話 : ソフト開発コラム

ファームウェア開発(組込み)の技術 /
デバッギング・ミステリー

開発ツールの話 : ソフト開発コラム

ソフトウェアの分類 /
CPUとDSPのアーキテクチャの違い

プロジェクト初期 ツール評価 : ソフト開発ツールの話

プロジェクト初期のツール評価 / プログラムの動作・ソースの作成 / コード生成 アセンブラ、コンパイラ / 型変換を伴う式評価(コード生成) / 暗黙のライブラリ(コンパイラ生成コード) / 組込みCPUのメモリアクセス / コード生成〜デバッガ

デバッガとICE ツール評価2 : ソフト開発ツールの話

CPU,DSPの内部の状態モニター / プロセッサ周辺のモニター(メモリ、I/O) / 実行の停止(ブレーク) / シングルステップ実行 / 任意部分の実行 / ヒストリー - 実行トレースとコマンド / 各種ファイルのロード、セーブ / シンボル化

≪ 技術・開発の閑話 :技術・開発コラム ≫
3GPP対応 携帯電話開発用音響測定システム
TS 26.131/ 26.132 V5.0に準拠、ITU-T P.50とP501の試験信号、Windows Vista、Windows XP 3GPP対応 携帯電話開発用オーディオアナライザー MTA-02WB-S

《 リファクタリング - ソフトウェアの標準と部品化 5 :技術・開発の閑話-2- vol.15 》

株式会社エーアールアイ/ARI CO.,LTD.
東京都八王子市横山町6丁目9番 丸多屋ビル8F
tel:042-656-2771 fax:042-656-2654

ARIはアナログ、デジタル音響機器の ハードウェア開発ソフトウェア開発、 製品、受託開発を行なっています。試作、研究開発や特注機器などのソフト、ハード、システムの設計から製造までご相談いただけます。

エーアールアイ会社情報
製品情報と販売
音響と開発・サービス
音響機器メーカーと代理店

ご利用案内 | 免責事項 | ARI 音響と開発のサイトマップ | 株式会社エーアールアイ | 東京都八王子市横山町6丁目9番 丸多屋ビル8F

Copyright(c) 2001-2024 ARI Co.,Ltd. all rights reserved.