●バージョンアップ


01016/01017 VFF15672 T's-Neko バージョンアップ (16) 97/09/03 22:43 こんばんは。T's-Neko です。(^o^)o #827 のコメントを読んで、バージョンアップ(拡張)について考えてみました。 バージョンアップと言ってもイロイロなタイプがあるわけで、 1.バグフィックス 2.最適化する:縮小化、高速化 3.機能を追加する(機能を細分化する) 4.処理対象を増やす 5.標準化する に分けられると思います。(いま考えただけだけど) ツールとかカスタマイズとかに分類するのは、あまり意識したことはありませ んが、たとえば、配列とか、同じ概念(クラス)でも、MFC 版や STL 版があ りますよね。(文法が違ったりしてインターフェイスが異なるのが困りますが。) でも、その配列でも、微妙に機能が違ってきます。配列番号が大きくて、 初めてアクセスする配列要素が初期化されているかいないかとか、アクセス できないとか。そうなると、拡張可能配列とか固定長配列とか別のタイプの 配列(クラス)になるので、バージョンアップではないと考えます。 一方、元々固定長配列だったものを、アクセス時に配列要素を拡張できる 別のインターフェイス(関数)を追加したなら、バージョンアップであると 考えます。(以後、これを「厳密なバージョンアップ」と呼ぶ。ポイントは、 同じインターフェイスで同じ機能であるかということです。) また、処理対象を増やすこともバージョンアップと呼ばれますが、厳密な バージョンアップと異なり、継承(による拡張)の要素を含んでいるので、 その扱い方も変わってしまいます。これによって、いちばん影響が出るの は、コンストラクタ(初期化)でしょう。 あと、拡張可能配列とか固定長配列とかの厳密な区別を意識する必要を 減らすために、標準化されることもあります。C++ でファイルアクセス クラスというラッパークラスを作った人が多いと思いますが、これは 自分のスタイルに標準化していることとも言えますね。これも、厳密な バージョンアップではありません。 スパイラル開発では、このように 5種類の違いを意識し、資産を増やす ことが重要だと思いますが、みなさんどう思いますか。 ただ、再利用には、ドキュメントを書くこと、過去のバージョンを残す ことが重要であるのは明らかなので、ここでは、ソフトウェアの拡張を どう設計するかについて議論したいと思います。最終的なソフトウェア の仕様ではなく構成設計に関する部分です。(細かいですけど) あなたは、新バージョンを作るとき、スクラップ&ビルドしますか? --- Neko.

This text was copyed from Niftyserve Programer's Forum Pro.