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

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

正規表現でのチェック方法を考える-その10 文字数混在と、何文字(何桁)指定

2008-04-30 17:35:44 | 正規表現

チェックは、正規表現でやれば、いろんな言語でいけそうなので、正規表現で、いろんな値をチェックする方法を考える、シリーズ「正規表現でのチェック方法を考える」

いままで、文字と数字のチェックをやってきたので、今回は、混在についてやります。
また、桁数、文字数について書いていなかったかもしれないので、書いておきます。

なお、このシリーズで、特に断りのない限り、全角の¥は、本当は半角の円マーク(ないしはバックスラッシュ)です。




■課題

こういう学生番号があったとします。

A12-9876J


1文字目   A-Zの英字1文字 - 学部学科を表す
2-3文字目 数字2桁     - 入学年度(08=>2008年入学)
4文字目   -(ハイフン)  - 固定
5-8文字目 数字4桁     - 学生固有の番号
9文字目   A-Zの英字1文字 - チェックデジットをアルファベットに変換



で、このチェックをします。

今回は、アルファベットがA-Zなので[A-Z]となり、数字のところは\dになります。
あと、桁数が決まっているので、桁数指定です。




■桁数指定

桁数は、{数字}を書くと、その数分、前にかかれたものが続くことになります
¥d{2}だと、2桁分、¥d=数字が続きます。

なお、何桁から何桁の間という場合は、{開始,終了}のように、,で区切って書きます。
2桁から6桁なら{2,6}
未入力から、5桁=5桁以下なら{0,5}
みたいなかんじです。




■ソース

ということで、課題は、
/^[A-Z]¥d{2}-¥d{4}[A-Z]$/
ということになります。これをもとに、プログラムしたのがこちら

<HTML>
<HEAD>
<TITLE>JavaScriptテスト広場</TITLE>
<SCRIPT LANGUAGE="JavaScript"> 
<!--
function load()
{
}

function mycheck(val)
{
	if (val.search(/^[A-Z]¥d{2}-¥d{4}[A-Z]$/)	!=	-1 )
	{
		alert("OK");
	}
	else
	{
		alert("エラー");
	}
}
-->
</SCRIPT>

</HEAD>
<BODY onload="load()">
<FORM NAME="buf">
<INPUT NAME="Text1" TYPE="hidden">
</FORM>

<FORM NAME="zikko">
<INPUT NAME="text1" TYPE="TEXT">
<INPUT NAME="button1" TYPE="BUTTON" VALUE="実行" onclick=mycheck(text1.value)>
</FORM>
</BODY>
</HTML>

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




■ということで・・・

 このシリーズはとりあえずいったん終わりとします。

 ほんとうはあと、各言語における正規表現の書き方というのがあるのですが、
それについては、気が向いたらやります。

で、今回のシリーズについてまとめたのが、

ここ http://www.geocities.jp/xmldtp/index_check.htm

のページです(エイプリールフールのときに使ったページ。
ちゃんと、今回正規表現が埋まっています)。



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

Whatが目標、戦略で、Howが戦術なら、戦略はデータで示し、戦術はプロセスを示すってこと?

2008-04-30 15:23:02 | Weblog

 昨日の入門ビジネス英語で、インテルの人が、Whatが戦略(ストラテジー)で目標とかを示し、Howが戦術(タクティクス)っていうことを言っていた。

 情報処理において、情報であるデータが、Whatにあたり、処理内容であるプロセスがHowにあたることになる。
 ということは、目標=ゴールすなわち、戦略は、Whatにあたる、データで定義されるべきであり
(売り上げいくらいくらとか、何々工場建設とか)
 戦術は、Howつまり、どういう手順でやるかで規定されることになる。

 しかし、Howにおいても、さらに階層化され、いくつかの細分化された目標=データ=戦略が定義され、それに対するプロセス(HOW)も定義されることになる。

まとめると(若干付け足し)、


出力情報(出力データ)  =  目標・ゴール = What  = 戦略
  ↑
 処理(プロセス)    =  やり方    = How   = 戦術
  ↑
入力情報(入力データ)  = 現在のリソース       = 資産




こんなかんじなのかしら


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

リクルートとか、Gooあたりが、求人情報のメタタグを定義すれば、求人検索は簡単では?

2008-04-30 12:05:56 | Weblog

 で、さっきのつづきで、GoogleやGooの検索で、希望の求人情報だけをだす、たとえば、

  「東京都のコンピューター関係で正社員月給30万以上」

 とかにするには、どうしたらいいか・・・

 きっと、この業界の人なら、「それは、セマンティックWebですよ!そのためにはマイクロフォーマットを使い・・」ってくるだろうけど、そんなことしなくていいんじゃない?
 
 リクルートとか、Gooあたりが、求人情報のメタタグの標準化をすればいい。

 たとえば、
募集地域をあらわすには、<meta name="keywords" content="KYZN住所東京都">
業種をあらわすには、<meta name="keywords" content="KYZN業種コンピュータ">
正社員、パートは<meta name="keywords" content="KYZN種別正社員">

のように、メタタグに、KYZN-種類-値(ハイフンは書かない)の順に書いてもらい
(月給は30~50万だったら
<meta name="keywords" content="KYZN月給30万">
<meta name="keywords" content="KYZN月給40万">
<meta name="keywords" content="KYZN月給50万">
のように10万おきに書いてもらう)

検索エンジンのロボットが(今はメタタグってあんまりみてないかもしんないけど)そのメタタグを見るようにして、

検索する人は、

 KYZN住所東京都 KYZN業種コンピュータ KYZN月給30万

のように、その標準化されたタグで検索すればいい。

このタグは、採用ページに入れてもらうようにすれば、採用ページに出てくる重要語(特徴語)は決まっているので、それをチェックすることによって、スパムの排除もしやすい(重要語は、tf*idfで調べると思うけど、求人広告の中にスパムを入れてしまうと、求人の重要語のtfが下がるので採用ページとは認識されなくなる)。

 こうすれば、高齢者歓迎のような求人募集も、KYZN年齢高齢者 が入っているかどうかを見ればいいだけだから、簡単に検索できそう。おお、高齢者雇用に力を入れている、厚生労働省のますぞえ大臣もおよろこびに・・・ならねーか(^^;)




 じゃあ、そーなったら、リクルートとかの求人会社は、どーなるのよ!っていうお話だけど、
 求人会社は、お墨付きを与えればいい。
 つまり、Webサイトで検索できる求人情報はいっぱいあるけど、そのなかには、あやしー(-_-;)ものも、多いと思う。そこで、求人会社は、その中から、ちゃんと調査して、自分のサイトに載せるというようにすればいい。

 なので、むしろ、このタグで、求人している会社が見つかれば、そこに営業をかければいいので、求人会社にも、メリットあり?応募する人は、安心なほうがいいので、結局求人会社の情報を見る人も多いと思う。

 うーん、どーでしょー(^^;)

P.S なんか、ほかのセマンティックWebも、メタタグのキーワードで済みそうな気がしてきた・・



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

Googleが世界一の就職情報サイトになる日も近い?。。。

2008-04-30 01:33:25 | Weblog

ここの記事
学生の就職情報2009」の水増し表示疑惑、そのカラクリを検証
http://gigazine.net/index.php?/news/comments/20080428_gakusei_enjapan_2009/

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


読者からのタレコミによると、エン・ジャパンの「学生の就職情報2009」という就活サイトにおいて、現時点で「採用情報13,147社」と表示されているが、実際にはこの10分の1程度しか掲載されておらず、水増しの疑いがあるとのこと。


じつは、たしかに、13,147社ではあるのだが。。。


1843件:[en]学生の就職情報 編集部が訪問し、独自取材をおこなった会社の情報

11304件:ジョブポータルがネット上で求人している会社のページを勝手に収集してきた数

合計:1843+11304=13147件


つまり、実際に訪問して、求人情報を得ているのが、1843社で、のこりは、
ジョブポータルというインターネット上に存在する採用情報を自動的に収集する ロボット型検索システムを使って集めたもの・・・らしい

ちょっとまて!

それなら、Gooとか、Yahooとか、グーグルが、もし、求人募集のみを集めてくるような検索を開発すれば、そっちのほうが、勝っちゃわないか?

Googleで「採用情報」で検索すると、11,400,000件で、ちなみにはじめの10社は、
東芝
松下
読売新聞
USEN
KIRIN
JAL
ブリジストン
マイクロソフト
Honda
アップル

だ。。。そのつぎは

FUJIFILM
明治製菓
トヨタ自動車
財務省
資生堂
神戸市職員
ライオン
NHK
総務省
ベネッセ


つーか、Gooとか、Yahooとか、グーグルが、自分で開発しなくても、「そーいうコーナーをつくるから、みんなあ、申し込んでえ・・(格安2000円)」とかにしておけば、みんな、申し込むんじゃないか?

そーすると、求人のみをやっているところは、不利なんじゃあ。。。
 
P.S すっげーいいことおもいついた!
   これがあれば、高齢者の求人とかもすすみますぜ、ますぞえ大臣様
   だけど、もう、夜遅いので、明日書く。

ねて、忘れないように、キーワードだけメモメモ

求人情報の標準化
マイクロフォーマット
ロボット検索
標準メタタグ
高齢者求人メタタグ



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

非機能要件、NTTデータ、富士通など6社がガイドライン作成へ

2008-04-29 20:08:26 | Weblog

ここの記事
発注者ビューの次は“非機能要件”、NTTデータ、富士通など6社がガイドライン作成へ
http://itpro.nikkeibp.co.jp/article/NEWS/20080414/298882/

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


NTTデータや富士通などITベンダー6社は2008年4月14日、非機能要件のガイドライン作りに取り組むと発表した。


そうで、具体的には、

6社は非機能要件を6つに大分類している。性能、可用性、セキュリティ、拡張、運用、移行である。現在、6分類は200項目に分解できるとしている。6社は今後1年半をかけて活動を展開する。

 まずは、これまで各社ばらばらだった非機能要件の定義をそろえる。その後、ユーザーと分かりやすく合意できるように、「例えば松竹梅のようにメニュー化していく」(重木副社長)という。

そうな。。。

そーいえば、このブログでも取り上げた、「発注者ビューガイドライン」ってのがあったけど・・


NTTデータ、富士通、NEC、日立、OKIはこの3月まで、ユーザーに分かりやすい外部設計を進めるためのガイドラインである「発注者ビューガイドライン」の策定メンバーでもあった。この活動が一段落したことで、非機能要件のメニュー化に進んだ。1年半後に具体的に出てくるメニューの姿はまだ明示されていないが、検討会のメンバーは「半年ごとに成果を公表できるようにしたい」と意気込む。


ということらしい。

 問題は、このへんの業界標準の話が、それこそ、ゴール指向分析なんかと、どーからんでくるのか、からんでこないのか?っていうお話になるよね。

 さっき、取り上げた本でみてもらうとわかるように、非機能要件にかんしては、NFRフレームモデルという考え方が出ていたり、最近はやりの要求工学とのからみともあるけど、それらに関係していくのか、いかないのか・・・

 ま、とにかく、動向は、見つめておく必要がある。
 もっとも、見つめすぎちゃうと、逮捕されちゃうかもよ・・・違うって(^^;)

P.S 自分へのメモ
ゴール指向分析法とユースケース法を用いた要求獲得支援法


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

ゴール指向の本、買ってきた!!

2008-04-29 17:26:20 | Weblog

最近話題?(少なくても、情報処理学会の「情報処理」4月号なんかには、いっぱい出ていた)
ゴール指向の話。

本買ってきた

ここの本)

よなまきゃ(^^;)


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

スルガ銀と日本IBMの「動かないコンピュータ」裁判-日経コンピュータは5月1日号で!

2008-04-28 17:02:47 | Weblog

ここのニュース
スルガ銀と日本IBMの「動かないコンピュータ」裁判の訴状内容が判明、要件定義を3回繰り返す
http://itpro.nikkeibp.co.jp/article/NEWS/20080425/300145/

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

スルガ銀行がシステム開発の中止で損害を受けたとして、発注先の日本IBMに約111億円の支払いを求めた裁判の訴状内容が明らかになった。


す、すっげー(@_@!)111億・・・

で、その内容は。。。

開発作業は要件定義から難航。要件定義を3度繰り返すことになった。稼働時期を遅らせることなどで巻き返しを図ったが、「日本IBMがシステム化の対象範囲の大幅な削減と、追加費用を要求してきた」(訴状より)。さらにスルガ銀にとって「到底受け入れられない」(同)変更提案が日本IBMからあった。

 結果的に2007年5月、スルガ銀は日本IBMにプロジェクトを白紙に戻すことを通知。2008年3月6日に、開発を依頼していた日本IBMが債務を履行しなかったとして、111億700万円の損害賠償を求める裁判を東京地方裁判所に提起した。


で、

日経コンピュータは5月1日号で、スルガ銀行-日本IBM裁判の行方などを探る緊急特集を組む。誌面では訴状を基に、「追加費用」や「到底受け入れられない」提案の詳細、両社が交わした契約の内容について取り上げる予定だ。


おおおお、おもしろそう(^^)
日経コンピューター、見なきゃ・・
まだ出てないのかな??5月1日号は・・・・??


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

修正可能なシステム 番外編1 出来る開発と出来ない開発の違い

2008-04-28 11:39:27 | Weblog

 ここ

「その体系から見ると、できる開発と出来ない開発がみえてくる」というのは、修正可能なシステムでかきます

と書いたので、「修正可能なシステム」の番外編として、その「出来る開発と出来ない開発の違い」を書きたいと思います(なお、番外編1の1は、べつに、2、3と予定しているわけでなく、もし今後出てきたら、1、2と続けようと思っているだけです)




■情報処理の体系

 まず、「その体系から見ると」の「その体系」から説明します。
 それについては、情報処理試験ぐらいのお勉強のポイントの体系化の「理論の階層と細分化」に書いた、

 これは、情報処理という概念の2つの側面をあらわす。
 情報処理とは、情報(データ)を、処理(プロセスを動かす、プロセッシング)することといえる。

ってことに関連する。

 つまり、情報処理は、情報であるデータと処理であるプロセスにわかれ、
 入力データをもとに、出力データを作成するプロセスである。

 っていうことは、

(1)出力データが決まらないと、システムは作れない
(2)入力データをもとに、既存のプロセスを組み合わせて、
   (1)の出力データを作らないと、システムは作れない
(3)(2)の入力データが、既存に存在しない場合、
   (画面などを使って)新規入力できないと、システムは作れない

ことになります。

逆に言うと、
(あ)出力が決まっていて
(い)既存のデータと、新規入力データを使って、
(う)開発言語や(自作も含む)既存モジュールが提供する関数・メソッドで
   (い)から(あ)が作れれば、
開発できる

ということになります。
DFDだと、(あ)と(い)を明確に書くので、あと、階層を落としていった
ときのデータを確認すれば、OKですね。

 なお、(あ)と(い)に関して、データが決まっているだけでなく、
その一貫性も矛盾ないようにしないといけません。




■ということで、やばい開発は・・・

(一)出力がきまらない
   お客さんが決めたがらない。

(二)テキトーに画面を決めている
   機能がはっきりしないのに、画面ばっかりどんどんできる(^^;)

(三)こういう機能をやりたい、あーいうことをやりたいというだけで、
   なにを、どーするの!ということは、はっきりしない
   (データレベルで・・)

こーなると、やばいです。

で、アジャイルの場合、実は、この(一)、(二)、(三)すべての状況をみたしても、開発に入れます。
(DFDを作る場合は無理)
なので、やばい開発が最近増えてきたといえます。




■安全なのは・・・

 前回書いた、修正可能なシステム その4 要求仕様部分(2) で書いた、シナリオ、つまり、こー言うデータを入れると、こー言うものができますね!というのが明確で、その処理プロセスが見える(帳票を出すとか、DBに書き出すとか・・・)ってことになります。




ということで、このお話(番外編)はここまで。


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

高校以上はすでにテレビを見捨てている-スポンサー離れテレビ局の大不況。

2008-04-27 22:44:52 | Weblog

ここの痛いニュース
スポンサー離れテレビ局の大不況。フジは制作費5%カット。視聴率の合格ラインは12%。高校以上はすでにテレビを見捨てている
http://blog.livedoor.jp/dqnplus/archives/1118857.html


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


「スポンサーが集まらないのですよ」某局プロデューサーに会うたびに聞こえてくるのが、この言葉だ。番組スポンサーがつかなくなっているらしい。


そのスポンサーが集まらない理由は・・・


この原因は、番組視聴率低下にある。20%を越える番組はいまや数えるほどだ。かつては
30%を越える番組も少なくなかったが、今ではこんな数字は不可能に近い。現在の12%。
中には「2ケタでいい」という番組プロデューサーさえいる


どーして視聴率が下がったかは、想像つくと思うけど・・

その原因は番組の質の低下に尽きる。どの番組を見ても同じ顔ぶれのお笑いタレントが
並び、いまやテレビは小学生、中学生が見る媒体に転落。


その結果、表題に書いたように

高校、大学以上の「若者」はすでにテレビを見捨てている。


だから

こんなテレビに不況が深刻な企業が億というスポンサー料を支払うわけがないのだ。


そして、

その若者たちはネットに流れて、ますますテレビ離れが加速している。


で、そーなってくると・・・

下請けの制作会社への締め付けと負担はますます激しくなっている。
下請け会社のスタッフの年収200万円はざら。フジテレビ社員の年収は40歳平均で
1400万円といわれるように、格差はますま拡大している。


テレビを実際に制作する会社に就職する優秀な人も、へってきて、なおさら悪循環?




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

Ciscoルーターの設定をシミュレーター(Packet Tracer)で説明した動画

2008-04-27 10:11:07 | Weblog

シスコ・ネットワーキングアカデミー・プログラムを受講した大学生とか、高専生、専門学校生なら、知っていると思うけど、Ciscoルーターの設定をシミュレーターするソフト、Packet Tracerっていうのがあるよね。

 ルーター、スイッチ、PCなどなどをテキトーに図に配置して、そのルーターをクリックして、CLIに入ると、コンソール接続したときの、ハイパーターミナルとかTeraTermで表示されるような(べつにTelnetでもいいけど)画面がでてくるから、そこでコマンドをどんどん打って、練習するというか、確認する。タブで、config画面にいくと、設定したものも見れるっていうやつ。
 つまり、これを使って、ルーターの設定のシュミレーションができる。

 で、そのルーターの設定を、Packet Tracerを使って説明していた動画があったので、
 メモメモ・・・

CCNA 2 , tutorial basico (Packet Tracer 4.1)
http://www.youtube.com/watch?v=5G2s7jEj2Ws

(注意:リンク先をクリックすると、読み込み後、音が出ます。
 それも、わかんない言葉だ ^^;)

 ルーターのIPアドレスを設定するところくらいまでをやっている
ので、実際の設定の説明にもいいかも。
 ただし、スペイン語なの?(投稿したひとが、チリの人らしい)
とにかく、英語でないので、音声は無視。
 それと、省略形なのか、タブキーを入力して補完したところなのか
わかりにくいかも・・・?

 勉強会でルーターの設定の説明をするとき、音声をミュートにして消して、
動画をみながら説明するのに、よさそうですね!
 このほかに、VLANの設定とかもあるみたい(まだみてないけど・・)。



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

「健全なPC・携帯サイト」を認定する民間機関が発足-有害サイトをフィルタリングする際の基準に!

2008-04-26 22:49:52 | Weblog

ここのニュース
「健全なPC・携帯サイト」を認定する民間機関が発足
http://www.itmedia.co.jp/news/articles/0804/25/news139.html

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


 健全なPC・携帯電話サイトを認定する民間機関「インターネット・コンテンツ審査監視機構」(I-ROI)が4月25日に発足した。


ほお・・・・

国際的に通用する認定基準を策定し、認定されたサイトにマークを発行。


で、ここまでは、いいんですけど・・

有害サイトをフィルタリングする際の基準にしてもらう狙い。


げげ、じゃあ、これに通らないと、フィルタリングされちゃうんですか。。
PCサイトっていうのは、一般のサイトのことですよね。
痛いニュースなんかも、健全なサイトには、”なれない”で、フィルタリングされちゃうのかなあ・・
でも、PCからは見えるんだよねえ。。??(ケータイフィルタリング用??)
どーなんだろう・・・??



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

ルーター設定に付箋紙が必要な理由は?-セルフドキュメントの原則

2008-04-26 18:53:01 | Weblog

 ルーター設定の実習をしているとき、

  「付箋紙は、ここにありまーす」

 の声が・・・

  ふ・せ・ん・し??

 何に使うの・・・?




 どうも、設定したら、その設定状況とか、ルーター名とかを書いて、
 ルーターに貼っておくらしい・・

 セルフドキュメントの原則(必要な情報は、機械とかの上に直接かいておけ(そのもの自体が、ドキュメントになっている=セルフドキュメント)という原則)っすね!!
 PCなどが壊れているとき、どっかによけておくのではなく、そのPCに「故障中」とかけ!というもの(どこかによけておくと、ほかの人が使ってしまうことがあるので)

 でも、あんまり、ルーターの上にIPアドレスとか、書いてあるのを見ないけど。。
 紙に書いてはると、ルーターが熱くなったとき、まずいからかなあ・・

 そーじゃなきゃ、ルーターに設定を書いた紙を張っておいたほうが、わかりやすいもんねえ。。


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

iモード生みの親、夏野氏、慶大院教授へ

2008-04-26 01:16:54 | Weblog

ここのニュース
iモード生みの親、ドコモを去る 慶大院教授に
http://www.asahi.com/business/update/0425/TKY200804250285.html

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

 NTTドコモの携帯電話でのインターネット接続サービス「iモード」の生みの親の一人として知られる夏野剛・執行役員(43)が同社を去り、5月1日から慶応大院の政策・メディア研究科特別招聘(しょうへい)教授に就くことになった。


だそうな。。


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

松下電器が顔写真からキャラクターを自動生成するサービスを開始。

2008-04-25 14:01:24 | Weblog

ここのスラッシュドットニュース
松下電器が顔写真からキャラクターを自動生成するサービスを開始
http://slashdot.jp/it/article.pl?sid=08/04/25/0310236

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


松下電器は、顔写真からキャラクターを自動生成するサービスを4/23から開始した。「顔キャラ」というサイトで、PCまたは携帯電話から顔写真を送るとキャラクターが自動生成される仕組み。同社の「PicMate」というSNSで生成されたキャラクターを公開することもできる。「顔キャラ」、「PicMate」共に利用は無料。

携帯版は、QVGA以上のカメラがついた携帯電話から顔写真を送れば生成されたキャラクターのURLが返送されてくるとのこと。


おおー、キャラクターですか(^^;)


。タレコミ子も結果を見たいのだが、何度顔写真を送ってもエラーになってしまうのはなぜだろうか?

フロントに顔認識のルーチンがあるようで、そこをパスできるような写真でないと失敗する。


あ、パスできるような「写真」か・・・
一瞬、パスできるような、「顔」と勘違いして、
イケメンじゃないとダメとかあるのかなと思ってしまった(^^;)




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

修正可能なシステム その4 要求仕様部分(2)

2008-04-25 12:09:52 | Weblog

 シリーズ化してしまった?修正可能なシステムです。
 まず、ここで、何をやるかについて書きました。

 そこにおける、要求仕様では、

(1)出力データに関して正規化して、エンティティを割り出す
(2)業務プロセスで、永続的に保存すべきデータに関して正規化して、
   エンティティを割り出す
(3)それらエンティティを既存のエンティティに溶け込ます
(4)溶け込ましたエンティティを使って、各業務プロセスが、つながる


ということをやるということで、前回まで(3)をやりました。
今回は、(4)のプロセスについて考えてみたいと思います。




■データのまとめとプロセス

 で、前回までで、(1)から(3)の作業で、データは、

・新規入力項目
・出力項目
   ただ表示すればよいだけ
   データを残す
     既存のデータの修正・追加
     新規データ

と分かれると書きました。

 つまり、仕様変更のデータは、入力データと出力データにわかれるけど、
 入力データに関しては、既存のもののほかに、新規入力データが必要になることもある。
 (なお、書きもれましたが、既存のデータを修正(拡張する=いままで英数字のみだったものを、漢字を許すとか)しないといけない場合もあります)

 出力データに関しては、表示すればいいだけの場合もあるけど、データを残す場合もあり、データを残すときは、既存データを修正・追加する場合と、新規データの場合があると・・


 つまり、もう一度まとめなおすと、保存すべきデータと保存しなくていい(画面から等の)テンポラリ入力や、テンポラリ出力にわかれ、保存すべきデータに関しては

         入力       出力
既存データ修正  (あ)      (い)
新規       (う)      (え)




の4種類があることになります。




■プロセスにおいてやるべきこと

 プロセスにおいて、修正可能にするためには、
  ・入力データをもとに、出力データが作り出せるプロセスになっているか、
   シナリオを作って確認する
  ・既存のプロセスにどれだけ影響するか確認する
      →できるだけ、影響がでないようにする
 の2つの作業が必要になります。




■シナリオづくり

 まず、今まで調べた、

   テンポラリな入力データや、保存データをもとに、
   出力データが、本当に作れるかどうか、
   想定している修正・追加必要なプロセスの入出力を確認しながら
   シナリオを作ります。

 たとえば、日報を出していない一覧画面を作成する
 ということになると、

 出力データは日報一覧
 この一覧画面は、
   ・日付、従業員、日報有無の●X
 となっていると思います(部課名も入っているかも・・)

 そうすると、日報有無の●Xは、テンポラリデータで、
   日報テーブル中の該当日付、従業員レコードの存在で調べるので、

 入力データは、
   日報テーブル
   従業員テーブル
   (場合によっては部課テーブル)
   検索条件(日付、部課、従業員)=>テンポラリ(保存するかも・・)

 となります。

 そうすると、プロセスは、
   ・日報一覧表示
 は当然として、
   ・日報入力
   ・従業員入力(部課入力)
 という機能がすでに存在し(なければつくる)
 さらに、この前後関係は、部課→従業員→日報→日報一覧になる。
(データをおっていくと、これ以外のシナリオだと矛盾が出る)
 というようなかんじです。

 まあ、こんなに簡単なのだと、ここで矛盾がでることはないけど、
複雑になると、入力データがない!なんてこともあるので確認する

(たとえば、上記の例だと、日報の出している状況を1年間見たいが、
 日報は、3ヶ月ごとにDBから消しているなどというケース。
 →ふつう、この程度では、矛盾はないので、無理やり考えました)

で、ここで、矛盾が起こらないように、データを確定していきます。




■既存のプロセスにどれだけ影響するか確認する

 まあ、上記のシナリオで、問題が起こるようだと、先行き

    はあ・・・(-_-;)

 なんだけど、実際は、そんなことは少ない。

 一番大きな問題は、(そして修正可能なシステムのメインテーマは)
 この修正で、既存のプロセスにどれだけ影響が出るか?
 という問題。

まず、さっきの図

         入力       出力
既存データ修正  (あ)      (い)
新規       (う)      (え)



でみると、新規データの追加である(う)、(え)では、
それに伴い、既存プロセスを拡張する場合以外は、問題は起こらない。
(既存プロセスは、まだ見ぬ、新規データをアクセスしていないはずだから)。

問題は、(あ)、(い)の、既存データを修正してしまう場合。
この既存データの意味合いを変えてしまうと、問題が起こる
で、それの回避策などに関しては、今後の設計の話で、ここでは、
どのプロセスに影響が出るか・・だけを確認しておこう。




■確認方法

 既存DBテーブルと、プロセスのCRUD図があれば、
 直接的に影響を受けるプロセスは調べられる
(修正をうける既存テーブルに対して、CRUDしているプロセスが直接的な影響を受けるプロセス)

 で、こーいうCRUDがない場合は、どうなるか・・

 以下の前提がある場合

・DBアクセスしているクラスが1テーブル1クラスになっている
・1ファイル1クラスになっている(内部クラスは除く)

 テーブルに対応するクラスが、プログラムソースファイル中に
存在するか(存在する=CRUDのいずれかで利用)をgrepで調べれば
よい。

 そーいう前提がないと(SQLをまとめていて、その定義からアクセスしている)
ちとめんどう。




■間接的な利用の確認

 でも、直接的な利用はまだかんたん。

 間接的な利用にともなう修正、つまり、
・DBデータの変更の影響により、返り値などがかわってしまい、
・その返り値を利用しているので、変更がおきる

はたいへん。

 この場合、
・まず、「直接的な利用」で挙げられたクラスのメソッドが、
 既存の入力データが修正されることにより、返り値に影響が
 受けるかどうか確認し、
・もし、変更を受けるようなら、そのメソッドを利用している
 プログラムを洗い出す
 (grepで・・・(^^;))
・で、洗い出したプログラムが・・
 既存の入力データが修正されることにより、返り値に影響が
 受けるかどうか確認し、
   :
  (以下影響がうけないまでループ)

   
なーんてことを調べるツールがあるといいんだけど、
ないと手作業で調べるなんつーことは、やんないだろうから、
この辺があまくて、あとで、「うぎゃ」となってデスマーチになる・・・




ということで、要求仕様にかんしては、とりあえずおしまい。

次から、外部設計に。。。


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