ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

失われた20年-ソフト業界は変わったのか 予告編

2007-07-07 12:29:00 | 土日シリーズ

 今までの土日シリーズ、「DTPの構造を考える」が終わったので、来週から、新しい土日シリーズを始めたいと思います。

題して:

「失われた20年-ソフト業界は変わったのか」

20年位前、1980年終わりごろから、最近まで、ソフト業界とかその周辺のかわりかたについて、特にソフト開発の立場を中心に見て行きたいと思います。

 とはいえ、私の心象風景をかいていきますので、実際の時代考証的には間違っているところも多々出てくるかとは思います。また、独断と偏見で書くので、考え方が違う人も多々いる(というか、ここで書かれる意見は、少数派の意見、異端の意見も多いと思うが)とは思いますが、まあ、こーいう考えをしているやつもいるということで(^^;)

 で、どのへんからはじめるかというと、
 第三次オン(金融業会の第三次オンライン)が終わった1980年代後半から書こうと思います。パソコンだと、PC-9801が出だしたころかな。。

 ということで、来週からかきはじめます。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

この「最適な工期」の計算式、無謀なプロジェクト批判に使えそう

2007-07-06 19:45:15 | 開発ネタ

ここの記事
最適な工期は「投入人月の立方根の2.4倍」、JUASが調査
http://www.atmarkit.co.jp/news/200707/05/juas.html


によると、


標準開発工期は「投入人月の立方根の2.4倍」。

例:1000人月のプロジェクトの場合は24カ月の工期を設定するのが標準的

そして、

工数(人月)の設定ではシステムの画面数やファイル数も使える。調査から導き出されたのは

「必要工数=0.1×ファイル数+1.3×画面数+0.3×バッチ数」

という数式。その中でも工数と最も高い相関を示すのは画面数で、

「必要工数=画面数×1.55」

との数式も示された。


さらに、


「(短縮率が)30%以上の短い期間での開発は無謀である」


そーだよねーそーだよねー!!
今ウィリアムのいたずらがやってるのとか、画面が30個以上もあるのに、ウィリアムのいたずら一人で、数ヶ月でやろうとしているんだもんねえ・・
本来、上記の式でいうと、40人月くらいでしょ・・それを数ヶ月だから、短縮率が30%とか、そーいう次元じゃないよね・・

その前も、そんなかんじだったなあ。。(>_<!)

うーん、この計算式が出来たおかげで、無謀なプロジェクト批判に使えそうだ。

P.S ちなみに、じゃあ、どーして出来るのかというと、ソースを自動生成するからなんだけどね。。でもねー、それにも限界があって、ブログかいてる暇なくなるのよ、最近、あんまり書いてないでしょ。。

ちなみに、ウィリアムのいたずらの場合、
画面数X1人月を要求するんだけど、これが通った記憶は・・・ここ数年、
皆無だ(>_<!)(取引先が悪いのかなあ・・・)



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

オブジェクト指向で開発の最初から最後までの手順例-その5:動詞の抽出

2007-07-06 17:34:12 | 開発ネタ

 オブジェクト指向でやる場合の最初から最後までの流れを、実際の例を挙げて書いていくシリーズ「オブジェクト指向で開発の最初から最後までの手順例」、今回は、ここの順番から言うと「(3)その要件の動詞をとりだす」です。




■まずは業務用件の確認

まず、昨日まとめた、業務要件を確認すると


・小売が卸売りに対して発注をだし、その発注した商品は、
   ・直接お店に届けられることもあるし
   ・指定場所(物流センターなど)に届けられる場合もある。
 物流センターに届けられる場合は、最終的な売り場も伝票に書かれる
 (物流センターの人が困らないように)

・発注者は、店舗の人とは限らず、本社のバイヤーが行うこともある。

・発注を確認したりすることもある。

・でも、編集もすることにします・・・



 でした




■動詞抽出の方針

 この中で、

・目的語(または対象物)が、現在まとめようとしている業務(=発注)
 に関することで

・かつ動詞が動作を示している
 (「である」、「で構成されている」のような状態を示すものではない)

ものを抜き出します。

その後
・結局同じ動作を示しているものは1つにまとめます




■実際に、動詞を抜き出す

 上記の赤字がそれにあたります。

 「届けられる」のは、「商品」であって、「発注」ではないので、ここの動詞ではありません=発注の範囲ではありません=>この文は、このあとの納品の範囲なのですが、あとのデータ抽出に関係します。

 で、抜き出したもののうち、
 伝票を書くのは、発注伝票を書くということで、バイヤーが行うのも発注、だから、発注を出す=発注にまとめられます。

なので、結果として

・発注する
・確認する
・編集する

ということになります。




しまった、単純すぎた(^^;)

まあ、いいでしょう。次回は、

(4)動詞から、
   (どういうときに)誰が、何を、どうするという
   単文にまとめる

です。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Excelレガシー再生計画

2007-07-06 10:18:24 | Officeソフト&VBA

 日経コンピューター2007年7月9日号の特集に「Excelレガシー再生計画」っていうのがありますね(^^;)

 ウィリアムのいたずらも、ある会社で、Excel直して欲しいというので、そーいう問題があったんだけど、そのとき思ったのは、Excelは、ブック(=ファイル)内にマクロが隠れちゃうから、業務変更したときに修正をわすれるのよねー。

 ウィリアムのいたずらが、そのお仕事やったときも、結局、昔の業務ロジックが入っていたのに、誰も気づかない(まあ、気づいても初めに作った人がやめて、その後マクロが分かる人がいなかったから、直せないんだけどね)って言う状態で、その部分を直すだけでOKだった。




 結局、Excelでも、

・このマクロのデータはどこをみていて、何をしていて、どこに
 出力しているのかは、管理しておく
 →そーいう申告シートみたいなのをつくる

・ファイルに埋め込まないのは無理だから、マクロ入りファイルの
 「雛形を」一括管理する(どこかのフォルダにきれいに入れとく、
 みんなコピーしてそこから使う。最新版の雛形にしておく)

 っていうようにすれば、事態は結構よくなると思うけど・・
 とくに、後者は、手っ取り早く、できそうなアプローチだよね・・
 (後者をやってから前者、その後置き換えとかを考えるんだろうな)

 世の中そんな甘くない(^^;)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

オブジェクト指向で開発の最初から最後までの手順例-その4:業務要件。

2007-07-05 21:25:43 | 開発ネタ

 オブジェクト指向でやる場合の最初から最後までの流れを、実際の例を挙げて書いていくシリーズ「オブジェクト指向で開発の最初から最後までの手順例」、今回は、順番から言うと「(2)機能要求をまとめる」です。




■業務要件をまとめる

 エンティティで出てきたイベントに関する業務の流れを、出して生きます・・
 といっても、今回は発注しかありません。

 この発注に関して言うと、

・小売が卸売りに対して発注をだし、その発注した商品は、
   ・直接お店に届けられることもあるし
   ・指定場所(物流センターなど)に届けられる場合もある。
 物流センターに届けられる場合は、最終的な売り場も伝票に書かれる
 (物流センターの人が困らないように)

・発注者は、店舗の人とは限らず、本社のバイヤーが行うこともある。

・発注を確認したりすることもある。

 今回は発注をキャンセルしたら?ってことは、考えないことにします
(いいのか ^^;)。話が広がっちゃうんで。

・でも、編集もすることにします・・・
(いいのか、それで ^^;)




■実際には

 実際には、ここの作業はヒアリングで行うことになります。

 エンティティの抽出に関しては、はじめの抽出(前回おこなったもの)程度に関しては資料から出来ます。そのため、そこで行うイベントに関して、ユーザーからヒアリングをすることになります・・・

 が、ユーザーに、急に振られても・・

 っていうことがあるため、あらかじめ、エンティティから、こーなるんじゃねーのっていうことを考えるケースもあります(あらかじめ考えず、ユーザーの言われたことだけを考えろという人もいます。先入観が出来てしまうのね・・)




次はユーザーの話などをまとめるための動詞の抽出です。




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Apache2.2.4とPHP4.4は、だめっすか?

2007-07-05 14:32:28 | Weblog

ある人が、Apache2.2.4とPHP4.4をいれて、
どーしても、cannot loadになると・・・
読んでくれないと。。。
いわれまして、

なーぜー・・・?
と思ったら、こんなブログを発見。
Apache2.2&PHP
http://ppblog.giyu.net/index.php?UID=1152110375

だめみたいですね。

P.S 結局その人も、バージョン落としたらうまくいった
そうです。何に落としたのかまでは、聞かなかったけど。。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

違法コピーの密告に一億円超のキャンペーン-もちろん、アメリカの話

2007-07-05 10:10:41 | Weblog

ここのニュース
BSA、「違法コピーの密告に100万ドル」キャンペーン
http://headlines.yahoo.co.jp/hl?a=20070704-00000031-zdn_n-sci

によると(以下斜体は上記サイトより引用)

ビジネスソフトウェアの権利保護のための非営利団体Business Software Alliance(BSA)は7月2日、米国企業による海賊版ソフト使用に対する取り組み強化を発表した。海賊版使用の報告者に対して支払う報奨金を、通常の20万ドルから、7~10月の間は100万ドルへと増額する。


100万ドルってことは、今の為替レートが、1ドル122円74円(リンク先の値は、トーゼン変わってるよ ^^;)なので、

えーっとえーっと、

1億円を超えますよね(@_@!)

すげー・・・

って、普段も20万ドルっていうのもすごい・・・
そんなに払ったら、賠償金より高いんじゃあ・・
って、多分、賠償額に応じて密告報奨金も増えて、何十億もの損害を与えている企業を密告したら、っていう話なんだろうな(^^;)
・・・多分??


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「YouTube携帯」を年末に発売

2007-07-04 22:43:39 | Weblog

ここのニュース
LG Electronicsが「YouTube携帯」を年末に発売
http://headlines.yahoo.co.jp/hl?a=20070704-00000007-imp-sci

によると(以下斜体は上記サイトより引用)

 韓国のLG Electronicsは3日、「YouTube携帯」を今年末に発売すると発表した。同社がYouTubeと提携して開発する。この携帯電話では新しいユーザーインターフェイスが採用され、YouTubeの動画を見るだけでなく、携帯電話から直接動画をアップロードできるという。


ほー


発表では、YouTube携帯は今年末に「ワールドワイド」で発売される予定だとしている。


日本はあ??


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

サーブレットでセッションと引数全部をハッシュマップに入れるとき

2007-07-04 18:53:57 | JavaとWeb

こういうプログラムを、かいてたら・・・
		HashMap	map	=	new HashMap();
		Enumeration	namelist;

		//セッション開始
	 	HttpSession session = request.getSession(true);

		//	セッションのデータを全部ハッシュマップに移す
		namelist = session.getAttributeNames();
		if ( namelist	!=	null )
		{
			while(namelist.hasMoreElements() == true )
			{
				String key = (String)namelist.nextElement();
				map.put(key,session.getAttribute(key));
			}
		}
		
		//	引数のデータを全部ハッシュマップへ移す
		namelist = 		request.getParameterNames();
		if ( namelist	!=	null )
		{
			while(namelist.hasMoreElements() == true )
			{
				String key = (String)namelist.nextElement();
				map.put(key,request.getParameter(key));
			}
		}

で、気のせいかもしれないけど、
こうやると、おかしなことがおこって、
・引数が何もないときはセッションが取れる、
・引数に値が入るとセッションが壊れる・・・(>_<!)

で、以下のように、keyを実体とるようにしたら
		HashMap	map	=	new HashMap();
		Enumeration	namelist;

		//セッション開始
	 	HttpSession session = request.getSession(true);

		//	セッションのデータを全部ハッシュマップに移す
		namelist = session.getAttributeNames();
		if ( namelist	!=	null )
		{
			while(namelist.hasMoreElements() == true )
			{
				String key = (String)namelist.nextElement();
				key	=	new String(key);
				map.put(key,session.getAttribute(key));
			}
		}
		
		//	引数のデータを全部ハッシュマップへ移す
		namelist = 		request.getParameterNames();
		if ( namelist	!=	null )
		{
			while(namelist.hasMoreElements() == true )
			{
				String key = (String)namelist.nextElement();
				key	=	new String(key);
				map.put(key,request.getParameter(key));
			}
		}

(赤字が追加部分)うまくいった。。。
いや、気のせいかもしれないけど・・
 ひょっとして、うえの例にあるkeyっていうのは、(内部的には)namelistのポインタをさしているのかしら・・
 なので、そのあと、引数があると、書きつぶしちゃうのかなあ・・??


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

国がWordを買えなくなるというNHK報道がいろいろと。。。

2007-07-04 15:50:50 | Weblog

話題のようだ・・・
ここのスラッシュドットニュース
国がWordを買えなくなるというNHKガセ報道にみる「オープンな標準」の違い
http://slashdot.jp/it/07/07/03/0952214.shtml

によると(以下斜体は上記サイトより引用)

NHKが7月1日に「国が今後、マイクロソフトのWordやExcelを購入できなくなる」という報道
ここ:Web魚拓より
    ↓
マイクロソフトは報道に抗議し
    ↓
総務省もNHK報道を否定

この話、むかしもNHKでやってなかったっけ?
中央官庁、マイクロソフトの「ワード」や「エクセル」、原則購入対象から外す!
で書いた気がしたけど・・・やっぱ、ガセだったのね。。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

オブジェクト指向で開発の最初から最後までの手順例-その3:エンティティ抽出

2007-07-04 11:13:19 | 開発ネタ

オブジェクト指向でやる場合の最初から最後までの流れを、実際の例を挙げて書いていくシリーズ「オブジェクト指向で開発の最初から最後までの手順例」、前回、要件仕様のところの手順を書きました。
 今回は(まず、「(0)資料集め」は出来ているものとして、「(1)エンティティの抽出」から行いたいと思います。




■エンティティになるもの

 エンティティの抽出を行うには、まず、
  「なにが、エンティティになるか」
 って、話ですよね。

 このときに、「リソースとイベント」と佐藤正美氏などは分けるわけですが、
 ちょっとまて、リソースが名詞、イベントは、(出来)ことだから、動詞・・

 すべてじゃーん(>_<!)

 ってなってしまいます。
 たしかに、それはそうなんだけど、まず、エンティティとなるのは

・名詞=リソース
・そのイベントが起きた際の情報を保存しておかないといけない動詞
   →これは、ふつう帳票になっている

と、考えます。

 さらに、名詞は、
・登場人物(会社=法人もあり)
・そこでやり取りするモノ
・それ以外のモノ(部署みたいな概念も含む)
 にわけて考えます。




■エンティティ抽出の手順
まとめると、エンティティ抽出の手順は、

1.どのイベントを対象とするか決定する
  →たいてい帳票があるようなイベント

2.そのイベントに登場する登場人物を確定する

3.そのイベントにおいて登場人物がやり取りするモノを確定する

4.それ以外、そのイベントで出てくるものや概念を出す




■対象イベントは「発注」

 今回は、発注データについてやってますので、発注です。
 いうまでもありません(^^;)




■登場人物

 小売が卸に発注するので、小売と卸がでるのはいいと思います。

 実は、XML-EDIサブセットの発注における小売は、
    注文する発注部署と、
    実際に注文したものが行く店舗と
    卸が納品する場所である物流センター
 に分かれるのですが、この時点では分からないので、それでいいです。




■そのイベントにおいて登場人物がやり取りするモノ

「商品」です。

なお、お金は、発注の段階では出てこないので、
ここには、書き込まれません。




■その他のものと概念
会社が出てくると、部署とかの概念も出てくるのですが、
まだ出てこないので、今回はなしとします。




■でも、この後もエンティティ抽出は続く

 今回のエンティティ抽出は、対象範囲と、その登場人物と、そこでやり取りされるモノの確認だけです。
 もっと細かい概念は、要件をまとめる中で、でてきます。
 今回は、その要件を引き出すためのポイントを抑えているだけです。
 そのため、(2)機能要求をまとめる以降、(5)の前まで、エンティティ抽出は続きます。




ということで、次回のこのシリーズは、「(2)機能要求をまとめる」です。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

開発の初めから順番に書いていってみる その67:プログラミング(29)入出力の自動生成17

2007-07-03 20:43:49 | 開発ネタ

 シリーズ「開発の初めから順番に書いていってみる」の続きです。

 設計手順には、要求分析、外部設計、内部詳細設計・プログラミング、単体テスト、結合テスト、総合テスト、運用テスト及び運用とあります。
 現在プログラミングです。
(プログラミング以前は、ここ http://www.geocities.jp/xmldtp/index_kaihatsu.htm)

 プログラミングでは決定表と自動生成のお話をします。
 今、画面の自動生成で、特にBREWの自動生成版とJavaの画面自動生成を共存させる形でのアプローチをしています。そのうち、今はイベントリスナーについて扱い、前回、その問題と解決の方向性を示しました。
 今回は、そのイベントリスナー部分のソースを示します。




■画面イベントクラスソース

 いま、サンプルにしているソースはここのgamen1.javaで、イベントは、gamen1クラスのインナークラス、
gamen1_HandleEventクラスです。

これを以下のように、単体のクラスにします。
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;

public class gamen1_HandleEvent extends
					 SelectionAdapter
{
	gamen1	g = null;

	/*
	 * 	画面つきコンストラクタ
	 */
	public	gamen1_HandleEvent(gamen1 g)
	{
		this.g	=	g;
	}
	
	/*
	 * 	セッター(画面)
	 */
	public	void	setGamen(gamen1	g)
	{
		this.g	=	g;
	}
	
	/*
	 * 	ボタンが押されたときの処理
	 */
	public void widgetSelected(SelectionEvent e) 
	{
		Object o = e.getSource();
		shoriPro("widgetSelected",e.getSource());
	}
	

	/*
	 * 	すべての処理
	 */
	public void shoriPro(String eventCode,Object o) 
	{
		//  まだ、画面がセットされていなかったら、抜ける
		if ( g	==	null )
		{
			return;
		}

		//	仕様書に書いた条件分、ならぶ
		if ((eventCode.equals("widgetSelected") == true) &&	
			( o.equals(g.b1)== true) )
		{
			//	ここで処理呼び出し
			//	g.shori.shori1(g);
			return;
		}

		//	仕様書に書いた条件分、ならぶ
		if ((eventCode.equals("widgetSelected") == true) &&	
			( o.equals(g.b2)== true) )
		{
			//	ここで処理呼び出し
			//	g.shori.shori2(g);
			return;
		}
	}
}




■つまり
つまり手順としては、
1.クラスを(内部クラスではなく)外部におき
2.生成するとき、画面をもらってしまい
3.イベントがおきると、全部shoriProに流れるようにして、
4.そこで振り分ける。

なお、振り分け後の動きですが、
・あらかじめ、画面クラスに、処理を書いた処理クラス部分を生成しておいて
 →属性名が、shori
・そのイベントごとに、呼び出します
・なお、書き出し内容は、仕様書に書くようにします。




ってなかんじです。次は仕様書についてです。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Javascript(AJAX)で、レコードを扱う際、連想配列の配列にすると便利

2007-07-03 17:34:40 | JavaとWeb

 Javascriptで、というか、AJAXとかで、返り値がXMLで来る際に、レコードのノードが何回も繰り返し、そのレコードの中に、データが入っているっていうようなケース、多くないですか?

たとえば、RSS
ここ http://dailynews.yahoo.co.jp/fc/rss.xml
を見てもらうと分かるように、itemというタグのノードが繰り返しになっていて、itemの中に、title,link,pubDataというのが入っているようなケース、

 これ以外でも、RDBのデータを取得して、XMLにすると、こんな感じになるんだけど、このとき、このデータをJavascriptで簡単に操作したい場合、どうするか?という話。

 たとえば、上記のRSSのの場合、5番目のtitleが欲しいとき、
 data[4]["title"]
 のように、欲しい番目-1に項目名で取得できると楽ですよね。




 それには、1item分(=1レコード分)を、

   rec[項目名]=値

 の形で連想配列にいれて、このrecを配列に入れればいい。
 (つまり、連想配列の配列・・まとめていうと、よーわからん ^^;)

 そのための関数(もちろんJavascript)
//*==============================================//
//*	関数:getTableData()		  *//
//*	内容:XMLでTable型の中身取得	  *//
//*		xtree:ドキュメント		  *//
//*		rectag:レコードのタグ	  *//
//*==============================================//
function getTableData(xtree,rectag)
{
	retData	=	new Array();

			//	結果を取得する
	list	=	xtree.getElementsByTagName(rectag);
	if ( list	==	null )
	{
		return	retData;
	}

	for(recpos = 0 ; recpos < list.length ; recpos ++ )
	{
		node	= list.item(recpos);
		rec = new Array();
		for(cellpos = 0 ; cellpos < 
                       node.childNodes.length;cellpos++)
		{
			cellData =node.childNodes[cellpos];
			// エレメントのとき(nodeType=1)
			if ( cellData.nodeType == 1)
			{
				key = cellData.nodeName;
				val	=	"";
				if ( cellData.hasChildNodes())
				{
	 				val = cellData.firstChild.text;
				}
				rec[key] = val;
			} 
		}
		retData[recpos]	=	rec;
	}
	return	retData;
}

(上記< > ¥は、本当は半角)

みたいな関数をつくると実現できる。




このとき、RSS,たとえば、
http://dailynews.yahoo.co.jp/fc/rss.xml
のYAHOOニュースを受け取ったとして、
そのXML(RSS)を受け取った返り値がretObjだったとすると、

	xtree = retObj.responseXML;
	RssList	=	getTableData(xtree,"item");
	for(i=0 ; i < RssList.length ; i++)
	{
		document.write(RssList[i]["title"]+"<BR>");
	}

(上記< > ¥は、本当は半角)
 
みたいなかんじでかくと、タイトル名を書き出す。
getTableData(xtree,"item");
で、itemをレコードのタグとして、その結果をRssListにいれているので、
あとは、
RssList[i]["title"]
で、i番目のtitleをかきだす。

いじょう

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ブロガーの“生の声”を抽出する評判検索

2007-07-03 13:40:02 | Weblog

ここ
ブロガーの“生の声”を抽出する評判検索
http://headlines.yahoo.co.jp/hl?a=20070703-00000026-zdn_n-sci

によると(以下斜体は上記サイトより引用)

 リクルートと電通などが出資するブログウォッチャーは、ブロガーの生の体験談だけを抽出できるという評判検索サイト「SHOOTI」(シューティー)を7月3日に公開する。東京工業大学の奥村学准教授と共同開発したサービスで、ブログやレビューサイトなどの記事からうわさや他人の受け売りなどを排除し、本人の体験談と評価だけを抽出できるという。


そうな。。で、


書き込みが書き手本人の体験談かどうかを判定する仕組みは、ブログウオッチャーが開発した。文章の構文を解析し、主語や係り受けなどから誰の体験について書いているかを判断。他人の話の受け売りや、ニュースの引用などを排除できる仕組みにした。


ただ、なにかもらってたりすると、
本人が体験してても、良く書く気が・・(^^;)




 でも、行為者が確実に分かるなら、アクティビティ図のスイムレーンはわかるので、あとは動詞は抽出できるから、並列と条件を区別できるようにして(係り受けなどから)要求仕様から、アクティビティ図を書き出せるようにしてくれないかなあ。。

 あと、最近思うんだけど、ソースとか、コマンドだけ、ブログから抽出してくれるの、できないかなあ。。で、見たいものだけ、クリックすると、そのブログが見れると。。

 いや、ブログだけじゃなく、すべてのサイトでそれやってくれると便利なんだけど(説明が長い割りに、なにも書いてないサイトが結構あるので)

 どーしてないんだろう。。

 。。。スポンサーがいないからか(^^;)

 IPAが。。やるわけねーな(^^;)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

オブジェクト指向で開発の最初から最後までの手順例-その2:要求分析の手順。

2007-07-03 10:46:11 | 開発ネタ

 オブジェクト指向でやる場合の最初から最後までの流れを、実際の例を挙げて書いていくシリーズ「オブジェクト指向で開発の最初から最後までの手順例」、2回目の今日は、まず、なにをやるのか?と、手順のうち、要求分析の手順について書きたいと思います。




■流通システム開発センターのXML-EDIサブセットに出てくる発注やります。

 やるものについてですが、昨日はっきり書きませんでしたが、
 
 流通システム開発センターのXML-EDIサブセットというのがあり、そこで、「概説書」というのを出しています(入手方法はこちら
 ウィリアムのいたずらは、これの機能追加バージョンはもっていないので、そのまえのバージョンの「発注」について、

 発注電文(というか伝票というか)を、入力、一覧、修正できるものを作りたいと思います(卸売りに送信は範囲外、また、発注以外のほかの機能は範囲外とします。キャンセル、返品は入りません)。

 なお、発注とは、「小売」が「卸売り」に対して発注する。という意味の発注です。

 なお、実際には、「概説書」は持って”いない”ことを前提に進めます
(必要な部分は、ここで書いていきます)




■要求仕様の手順

要求仕様の手順は以下のとおり
(0)資料集め
  これは、終わっているものとします。
  概説書の内容があればOK

(1)エンティティの抽出
  ・登場人物と、そこに流れるモノの確認です

(2)機能要求をまとめる
  上記エンティティが繰り広げる業務をまとめる

(3)その要件の動詞をとりだす

(4)動詞から、
   (どういうときに)誰が、何を、どうするという
   単文にまとめる

(5-1)データ解析ルート

(5-1-1)データの項目をだしてくる
 ・今回は、概説書に書いてあります

(5-1-2)正規化理論を利用し、ER図にまとめる

(5-2)プロセス解析ルート

(5-2-1)アクティビティ図をつくる
 上記の単文から、(たいてい主語なのですが)担当者を割り出し、
 そこに動詞を業務順に置く

(5-2-2)今回、コンピューター化するものを取り出し
 ユースケース図にまとめる

(5-2-3)それをもとに、今回コンピューター化した場合の
 業務の流れをアクティビティ図に書く

(6)非機能要件をまとめる

ちなみに、このあと

(7)モデルのクラス図を作成する
手順は、
(5-1)をもとに、
 ER図のエンティティをクラスとし、そこのデータを属性として、
(5-2)のユースケースを
 メソッドとして、そのクラス図に入れる

という作業に続きますが、これは、要求分析より先の話とします。




ということで、今回はおしまい。
次回のこのシリーズは、登場人物のお話です。




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする