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

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

インクリメンタルモデルのサブシステム分けとか。。。

2007-01-03 23:12:48 | Weblog

 インクリメンタルモデルで、どのようにサブシステムわけするかと、アジャイルにおけるプロトタイプはそうあるべきかについて、途中だったので、結論を書いておきます。




 まず「ウォーターフォールとスパイラルモデルの問題点とインクリメンタルモデル」で書いた

どの時点で、そのサブサブシステムにわけ、その際、何を決め、その各プロジェクトをどのように運営していくことで、一番効果的にできるか。。。
 という疑問が生じる


ということについて。

 ここに書いたように、要求仕様をまとめた段階から、すぐに画面設計に行かれてしまうと問題があるので、要求仕様から、モジュール分割をしていくこととします(このやりかたは、「SEのための仕様の基本」という本などで採用されてます。IEEE1016を基にしてるみたい。そいつは、ここ(PDF)

 で、このとき、できるだけ、データのやり取り、それもDBのデータのやり取りですむように分割しくと、Goodなわけです。
 そうすれば、DBをプログラム独立性があるようにちゃんと正規化して設計していけば(それだけでプログラムから独立するとはいいきれないけど)プログラムにあまり依存せずに、プロセスを分割できることになります。
 このDB構造に関しては、たぶん、要求仕様でER図相当のエンティティを出していると思うので、それにもとづきやっていくということになります。
 そして、1担当者が自分で見切れる範囲になるまで、機能(業務)を分割していくことになります。その際、業務の入出力は、DB入出力プラスアルファで規定しておくということになります。

 で、問題は、このように分割された場合、なにをどう進めるかになるのですが、手順的にはマスタ操作系からいって、あまりDB更新の多くないもの、最後にメインとなるようなものと進めていけば、手順の戻りや待ちがすくないので、きれいです。

 でも、そうやってすすめると、たぶん、メイン部分の処理が、できるかどうか心配になるので、実際は、一番中心になる業務(受注から発注・在庫・物流など)の正常系で中心になる作業を、切り込み隊長みたいな感じで誰かがやっていって、それが巧くいったら、そこから派生させて、どんどんやっていくというほうが、安心して作業はできます。

 とはいえ、インクリメンタルモデルの場合、どれをどうすすめるかは、センスの問題になっちゃいますね。




 次の話題。
「ウォーターフォールにおけるテストとアジャイルにおけるテスト」で書いた


 一方、アジャイルの場合、はじめにシステムテストを行うことはできない。

 なぜなら、全体ができるというのは、一番下位の部分ができてからということになるので、それまで、テストできない。

 そーすると、こまるので、それを担保するために、プロトタイプを作成する目的が変わってくるんだけど、それは、また別の機会に。。


 のプロトタイプの目的について。

 プロトタイプは従来、画面を出して、その操作性とかをユーザーに確認してもらうというのが中心でした。

 しかし、最近の場合は、それもあるけど、まず先に、本当に実現できるのかを確認するためにプロトタイプを作るということも多くあります。また、フレームワーク決定のために作るということも多くあります。
 この場合、
・実現しなければならない要求に対して、不明確な部分(ここの最後のほうで書いてある要素技術)をまず確認します。
・その上でフレームワークを作ります。
 →GUIも、帳票出力も
・そして、そこから見本を作って、従来のプロトタイプを行う
っていう感じになります。

で、この場合、技術的にできることを担保する意味で、要素技術(技術的に問題となるところを解決する技術)部分を、先に開発し、プロトタイプを作成します。
 この要素技術は、通信速度、トランザクション処理など、システムテストに関係することを模擬的環境を作って確かめるなんていうこともあるし、もっとプログラムよりの、PDFを出力するにはどうするか?などという話の場合もあります。




てなかんじで、回答終わり。





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

IEのXMLHTTPでexeファイルをオープンし、セーブ、それを実行するnifty偽装サイト登場!

2007-01-03 22:05:34 | Weblog

すげー。。。

ここのスラッシュドットニュース
niftyに偽装した悪意のあるサイトが登場
http://slashdot.jp/security/07/01/02/2328207.shtml


で、その悪意のあるサイトでやっているスクリプトっていうのを公開している人がいる。
ここ
「www.homepage3-nifty.com」という、niftyに偽装したサイトが登場
http://slashdot.jp/~hylom/journal/387997


要するに。。。

・(準備)サーバー側にEXEファイルを置いておく
1.IEでMicrosoft.XMLHTTPをつかって、そのEXEファイルにアクセスする
2.Adodb.Streamのオブジェクトを生成して、SaveToFileメソッドで、1の
  EXEファイルの内容をクライアント側に書き出す
3.2で書き出したプログラムを、Shell.Applicationで実行する。

そーすれば、サーバーに用意したプログラムは。。。
たしかに、クライアント側でセーブして、実行しちゃうね(>_<!)

ただ、Adobe。Streamを無効にするとか言うのが、
出てたみたいだけど。。
どーなんでしょ。。

え、FireFox使えば、問題ないじゃん!って。。。
(Microsoft.XMLHTTPをCreateするのは、IEのやり方)

そーですね。FireFoxにLinux、いや、ケータイで見れば、問題はありません。。
(そーいう問題なのか ^^;)


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

BPMとBPRの共通点と相違点

2007-01-03 17:31:58 | Weblog

 ビジネスプロセスモデリング(BPM)というのが、あります。
 まあ、読んで字のごとく、ビジネスプロセス、つまり業務をモデル化して表現するものなんです。似たような言葉で、十年位前かな?BPRというのが流行りました。

 ビジネスプロセスリエンジニアリング。

 これはビジネスプロセス、すなわち業務を、顧客の立場からゼロベースで考え直し、再構築していくというものでした。まあ、再構築した後、モデル化するわけですから、業務のモデル化という点からみると、共通というか、似たようなもんです。

 しかし、最近のBPM,これと、モデリングツールが結びついているなんて言うところが違うかもしれない。

 サンマイクロシステムズでは、これを行うツールとして、Sun Java Composite Application Platform Suiteというのを出している。これをつかって、BPMNツールというので、ビジネスロジックを書いていく。
 ビジネスロジックはUMLの場合、アクティビティ図で記入するが、このBPMN,アクティビティ図と似たところがある。




 さて、以前のブログで(そこでは、画面設計について書いていたが)大きい単位のまま、いきなり担当者をきめて、その人にやらせる場合、現場のことがわからないから問題が起こるみたいなことを書いたが、BPMでも同じことが起こるようだ。
 日経コンピューター2006年5月15日号の47ページの2段目にあるが、ビズネスロジックの記述を、以前はシステム担当者がやっていたが、現在は、業務をもっとも知ってる人がモデリングするのがいいということになって、現場がモデリングしているそうだ。

 この場合、使いやすいツールの導入、たとえば、それこそ、業務をExcelシートに書いて、それを自動的にツールに落とすなんていう方向も必要かもしれないが、それ以上に現場担当者がわかる(目のいきわたる)範囲に区切って、一番適切な人に業務定義をしてもらうということが重要だろう。

 そういう意味でも、以前のブログに書いたように大きなまとまりから、この現場の人が扱えるぐらいにまず分割しないといけないことになる。

 そして、その分割の際のインターフェースとして、DBが使われることになるだろう。

 なぜならば、DBは、プログラム(プロセス)から独立して存在させることが可能で、その技術的担保として、正規化理論があるからだ・・・けど、一応理論上ってことで、ある程度はかかわってきちゃうけどね。




 で、なんで、こんなことを書いたかというと、いま、家の中を掃除していたら、日経コンピューター2006年5月15日号(特集 BPMの威力)というのがでてきて、そこのBPMNツールのことをメモしておきたかったからなんだけどね。


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

ハリウッドの法則を知らない人が画面設計をやる危険性

2007-01-03 15:22:24 | Weblog

 っていっても、映画とか芸能界には関係ない話です。
 システム設計のとき、要求仕様が決まってから、画面設計にはいると危険という話を前にかきましたけど、さらに危険なのは、その画面設計をハリウッドの法則を理解していない営業、営業よりのSE,COBOL屋さんあがりのSEやPMがやるケースだって話。

 オブジェクト指向がはいって、フレームワークが導入されるようになって、画面に関しては、ハリウッドの法則に基づくように、プログラミングされるようになってきた。
 ハリウッドの法則は「私を呼び出すな、必要ならば私から呼び出す」というハリウッドの監督が女優、俳優にいうのと同じで、アプリからフレームワークを呼び出すのではなく、フレームワークがイベントに応じて(必要に応じて)アプリのメソッドを呼び出すというものだ。

 具体的には、クリックされると、クリックしたよ!っていうメソッドが呼び出されるし、フォーカスが移動したよ!とすると、フォーカスが移動したメソッドが呼び出される。
 というかんじです。むかしのCOBOLの時は、全プログラムを頭からかいていたのですが、いまは、フレームワークがみとめたイベントに対してしかかけません。

 ということは、以下のことが規定されてしまいます。
・画面設計前にフレームワークをきめ、その画面フレームワークで許可していない動きは
 実現することはできない
 →フレームワークから呼び出してくれないから。

・フレームワークごとに呼び出すイベント、メソッドが決まってくる。。
 ということは仕様書の書き方も決まってくる
 例:strutsの場合は、画面とボタンアクションによるdoの処理が中心になるので、
   すすめる手順は、AWTのときのように、各画面要素のイベント処理それぞれに
   対して、イベント処理メソッドが書けるときとは、ちがってくる。

    そのAWTも、COBOLで画面を利用するときとは、仕様書が違っている。
   (AWTの場合は処理した後に、結局画面遷移はしないことが多い。
    COBOLの場合は、イベント処理は少ないが、その処理をしたら画面遷移
    するのが大半。したがって、COBOLと同じ画面遷移図をAWTで書くと、
    自分に戻ってくる線で、わけわかんなくなる(>_<!)
   
・ということは、ユーザーの画面に対する要望が、フレームワークの時点で違っていたら
 (strutsを使うときに、カーソル移動が、特定の値に基づき、いろいろプロテクトされる
  など)画面設計に入る以前になんらかのフレームワーク拡張手段(前述の例では、
  JavaScriptもつかう)を用意しておかなければいけない。
  →それを開発する期間がかかる。

・さらに、それを勧めて考えると、画面を決める人は、フレームワークを熟知していないと、
 どういうイベントは処理できて、どのときはだめ!というのがわからない。

 ところがところが、ここで、営業、営業よりのSE,COBOL屋さんあがりのSEは、そのちがいがわかんないので、無茶な画面設計をする(カーソル移動とか、プロテクトとか、画面の変更とか、通信先とか)。そして、営業や,COBOL屋さんあがりのPMは、その問題点はわかならいので、フレームワークをきめてから、画面設計が入った時点で、小出しに仕様変更してくる。そうすると、フレームワークが動いてまとまらない。
(上述のようにフレームワークによって、書くメソッドがきまり、効率的な開発方法論がきまる。それがきまらないので、非効率な人海戦術となる)

 結局、画面設計のところでスパイラルというか、ループになって、進まないという危険を招くことになる。


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

米「TIME」誌 Wii SportsをTIME 25 Top Ten 2006のゲーム部門1位に

2007-01-03 12:44:58 | Weblog

 アメリカのビジネス雑誌、TIMEは、2006年もっとも優れたものを選ぶ”TIME 25 Top Ten 2006”のゲーム部門1位に、Wii Sportsを選んだそうです。

ここ
TIME誌、2006年度の優秀ゲーム部門で『Wii Sports』をトップに
http://www.gamenews.ne.jp/archives/2007/01/time2005wii_spo.html

によると。

 ちなみに、その(TIME誌の)コメントというのが、日本語に訳すとこんなかんじだそうです
(以下斜体は、上記サイトより引用)

「素晴らしいグラフィックがあったとしてもそれが素晴らしいゲームを生み出すことはない。この言葉は何度繰り返し述べても言い過ぎることはない。『Perfect Dark Zero』は 画家Titianの絵のように美しかったがゲームの中身は眠気を誘うようなものだった。『Wii Sports』にはゴルフやボクシング、テニス、野球やボーリングが入っているスポーツゲームの集大成。ゲーム上に登場するキャラクタたちにはほんの小さな武器すら持っていない。しかしゲームとしての面白みは最上級に違いない。プレイヤーの動きを正しくゲーム内に伝えるWiiコントローラーの「素晴らしさ」を改めて体験できる。『Wii Sports』でプレイヤーは汗だくになって大騒ぎしながら、もんどりうってゲームに熱中するだろう。テニスゲームだけですらこんな楽しみ方が出来、十分に対価を支払う価値があるのだが、Wiiには無料でついてくる※。

※「『Wii Sports』を買うとついてくる(中に入っている)」という意味だと思われる。Wii本体そのものにはテニスゲームはついていない。


書き出しの”素晴らしいグラフィックがあったとしてもそれが素晴らしいゲームを生み出すことはない”うーん、某ゲーム雑誌は、これについて、どう思うだろうか(^^;)



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