RFP(提案依頼書)、RFI(情報提供依頼書)とは
■RFP(提案依頼書)とは
依頼先に求める要件を明確に記載した書類のこと。
自社が求めている要望を明確にして、文章で相手に伝えるツール。
できる。
・各社に同じ内容を伝えますので、提示される提案書の内容も均一化されやすくなり、
各社ごとの評価をつけやすくなる。
・RFPを作成する時点で、システムの目的や必要な条件を整理しやすくなります。社内の関係部署に
システムの必要性を伝えやすくなる。
・開発する目的
・目指す目標・成果
・予算
・スケジュール
など
複数の企業や部署間で話題を共有するのに必要です。
提案を求める理由を明確にします。
管理システムがほしいなど「○○のために、■■がほしい」という内容です。
システムを導入することで得られる効果を明確にします。
顧客に付加価値を与えるなどです。具体的な数値があるほうが、
提案者側もより詳細な提案が可能になります。
選定期間、開発期間、導入予定日など、現時点で決まっていることも記載しましょう。
最低限の情報に加えて・・・
・納品する品物
・必ず満たすシステム条件
・開発企業に期待していること
・開発者のメンバー名や体制
など
要件はどの範囲までなのか、誰が何を担当するのか、なども
記載したほうが良い提案を受けられます。
要望がまったく反映できていない提案になることがある。
優先事項が未決定などの情報は、依頼先に伝えること。
参考資料を記載するほうが要望の理解が深まります。
自社のホームページや過去製品と似た形にしてほしいなど、要望は詳細に記載する。
必要条件以外でも、要望に寄り添った良い提案がもらえるようになる。
依頼先のこれまでの実績や取り扱っている商品の参考価格、基本価格、グループ子会社などの請求
する「情報提供依頼書」のこと。
・自社が求めていることが実現可能な製品やサービスを扱っている企業か確認することができる。
開発依頼がzン帝の情報提供という旨をRFIで伝えれば、
これから行う開発に沿った形の情報や提案を相手側から引き出すことも可能。
インターフェース_ジェネリック_メモ
インターフェースは、コストが高いため、利用されにくいが、
問題にならないケースとして、
フィールドのメモリを持っていなければ、問題ない。
抽象メソッドだけを持つクラスを作ることは推奨されている。
インターフェースは仲介役です。
クラスが実装すべき規約(どういうメソッドにどういう引数を渡すかなど)を定めるもの。
クラス設計者とクラス利用者の空いたの仲介役を担うのがインターフェース。
ジェネリックを使う利点
・直行性が高いこと
コンテナクラは、格納する要素の型、格納する方式によって、さまざまな種類があり、
配列、検索、置換などのさまざまな操作が考えられる。
※コンテナクラスとは
複数の値を一まとめにして管理するクラスのこと
通常:
格納する型の種類がi個、格納方式の数がj個、操作の数がk個あるとき、
全部で、i×j×k個のコードを書く必要がある。
格納する型、格納方式、捜査に依存性がないため、
i+j+k個という少ないコードで書ける。
IT_ボックス化について
スタックとヒープとは簡単に:
値型の領域がスタック、参照型の領域がヒープになっている。
への変換が行われます。
これをボックス化という。
-------------------------------------------------------------
この逆に、ボックス化したobjectから、元の型にキャストすると、
ボックス化解除処理がかかる。
object y=x; // intをobjectに。ボックス化が起きる。
int z = (int)y; // objectから元の型に。ボックス化解除。
-------------------------------------------------------------
値型の利点はスタック上に値を置く(= ヒープを使わない)ことによる性能向上
例:
値型をobjectで受け取るのをやめる。
C#_継承について
継承について:
■ 継承とは
あるクラスから性質を受け継いだ新しいクラスを作ることです。
■ コンストラクタ呼び出し
派生クラスのインスタンスが生成される際、
派生クラスのコンストラクタが呼び出される前に
基底クラスのコンストラクタが呼び出されます。
例:
using System;
class Base
{
public Base()
{
Console.Write("base constractor called\n");
}
}
class Derived : Base
{
public Derived()
{
Console.Write("derived constractor called\n");
}
}
class InheritTest
{
static void Main()
{
Derived d = new Derived();
}
}
C# クラスと構造体についてメモ
構造体とは
ある対象に関連する項目をまとめて1つのかたまりにしたもの
関連する項目はフィールド(メンバ変数)と呼ばれ、変数や文字列などをフィールドとする
ことができます。
フィールドを使い、処理を定義することが可能。
同じように項目をまとめて1つのかたまりにしたもので、配列があります。
配列の場合、同じ型のモノしか1つのかたまりにできません。
構造体はint型や文字列など型の違うモノでも1つのかたまりにできます。
構造体とクラスについて
共通点:
・インスタンス化して使用(インスタンス化して使用)
・メソッドの定義(フィールドだけでなく、メソッドを定義して処理を行うことが出来る)
・引数ありコンストラクタの定義(インスタンス化してフィールドの値を初期化する場合などに使用)
・インターフェースを実装(複数実装も可)
違い:
インスタンス化したオブジェクトの型。
構造体 クラス
オブジェクトの型 値型 参照型
クラスの継承 ※不可 可能
フィールド初期化子の使用 不可 可能
デフォルトコンストラクタ(引数の定義) 不可 可能
デストラクタの定義 不可 可能
※System.ValuTypeのみ継承継承元にはなれない
使い分け:
構造体は、制限がクラスに比べて多い分、軽量のオブジェクトを表すのに適している。
参照型の機能が必要ない場合は、
クラスとして実装するよりは構造体として定義した方が効率的に処理される
例えば、3次元の点座標を大量に扱うCGなどで使用する場合など。。。
続きを読む