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

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

業務知識を持っていればトップダウンアプローチが利用できるので有利!

2007-03-26 17:16:46 | 開発ネタ

 まえに、トップダウンアプローチとボトムアップアプローチによる違いというのを書きました。

 結局、そこでの結論は、
・ボトムアップアプローチの場合、帳票分析やヒアリングから、データを起こしていく、ということは、帳票に書いてあることがすべてでなかったり、ヒアリングで間違ったことを聞くと、そのまま、間違いや漏れがあるまま進んでしまう。

・一方、トップダウンアプローチで、とくにある程度のその業界での標準的なシステムの開発方法を知っていると、標準とその会社の差の分を埋めればいい。なので、逆に、「ここはどうなの?」と、ヒアリングのときに確認できる。間違っているときに差が見つけやすい

ということになります。




 このことは、データだけでなく、業務プロセスについてもいえます。
 業界的にかならずやる手順や慣行がある場合、その手順を知っているのと知らないのでは、大きな問題が出ることがあります。

 そして、データ構造でも、手続きでもそうなのですが、ユーザーが知らないテクニックというのが存在するときがあります。




 たとえば、介護業界において、訪問介護で言うと(いや、他の介護関係でもあるんですけど)、サービスコードというのがあります

これ(PDF)http://www.kokuhoren-kagoshima.or.jp/kokuho09/service_code/normal/11.pdf
この、合計単位数の出し方ですが、多分、ユーザーに聞くと、計算方法を教えてくれます。

 でも、実はこれ、左側のサービス内容略称と、合計単位数のテーブルを作ったほうが、システム的にうまくいきます(というのは、ユーザーは知りません)

 理由は、じつはこれ、2年毎くらいに見直されて変わっちゃうんです。
 あと、四捨五入の問題とか、規定時間以上の介護の場合とか、計算式にしてると、いろいろな条件があり、さらに、見直しごとにそこのエンジンを変えないといけなくなるので、それは面倒。。。だったら、サービス内容略称と、合計単位数のテーブルをもったほうが早いというわけです。




 手続きでいうと、国保連というところに、介護保険分のお金を請求するんですけど、その請求の際に、返戻(データがおかしいので戻ってくる)と月遅れ(集計が月遅れのデータ)とかが、めんどっちい。2つ重なると(>_<!)

 でも、意識しておかないと、あとでたいへんなのよね。

 でも、ヒアリングのときに返戻なんてはじめに言う人いないしい。。
 (初めに言われても、意味通じない)

 聞きもれたりしたら、たいへんたいへん。。




 ただ、国保連の請求なんていうのは、業界的に決まっているわけで、その作り方を知っていれば(仕様書はここ)あとは、その介護会社ごとのバリエーションなわけ(訪問介護と施設をやっていて、どのように入力するかとか。。。)ですよ。

 だから業界標準を知っていれば、こちらから、業界標準と比べて(業界の標準的なパッケージソフトというのもあります)、今回の開発では、どこで何をやって欲しいのかというカスタマイズのポイントを聞きだすことができるってわけです。で、そうすると、話は早いし、正確に要望を聞き出せます。問題点も分かるし、テストのタイミング(ベンダーテストをやってるときに変えたほうがいい)もわかるし。。。

 これ、まったく知らない人が帳票分析すると(とくに、国保連のインターフェースがここにあるということをしらず、国保連のソフトの画面や帳票から解析すると)結構たいへんなことになる。。。って、まあ、そんなやつが、介護のほうに手を出すとも思えんが。。

 とくに、じゃあ、訪問介護の実績を入力して、国保連請求と、集金に分けたシステムを作りたいといった場合、代金回収業者のことを知らないと、途方にくれてしまいます。




 っていうことで、とくに、業界で、データのやり取りをするような場合、(たとえば、統一伝票とかの帳票もふくまれる)、

   その基本的なデータ構造と、
   必要となるエンティティ、
   そのエンティティの属性値を知っていて、
   標準的なシステムの作り方(業務とそれをプログラムに落とす落とし方)

 を知っているのと知らないのとでは、要求分析やシステム設計の段階で差が出ると思います。まったく知らない状態で、ユーザーさんに全部を語ってもらうって言うのは無理だし、そもそも、ユーザーさんも知らないことがあるし。。

 具体的には、仕様漏れ(返戻を想定外にしてしまったり)や、勘違い(サービスポイントの身体が9を超えた場合の処理)などが、頻発しちゃいます。仕様変更です(>_<!)

 で、この差がどう、開発全体に響いてくるか。。。っていうことを、またこんど、書きたいと思いまーす(今回はここまで)。

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

開発の初めから順番に書いていってみる その14:立ち上げ(8)開発の手順。

2007-03-26 14:02:44 | 開発ネタ

シリーズ「開発の初めから順番に書いていってみる」の続きです。
前回、立ち上げの成果物にあたる「プロジェクト計画書」について書きました。今回は、その中身と、開発の手順の関係について書いて、次の要求分析につなげたいと思います。




■プロジェクト計画書の中身
 前回書いたとおり、プロジェクト計画書の中身は、以下のような感じです

1.プロジェクトの概要
  1-1.目的・目標
  1-2.プロジェクトの範囲
  1-3.周辺システムとの関連
  1-4.前提条件
  1-5.成果物

2.参照・定義等

3.プロジェクトの概要

4.予算

5.スケジュール

6.体制

7.補足資料など

 このうち、1や2に関しては、プロジェクトの内容によって変わります。
 3のプロジェクトの概要、つまりWBSを書くところですが、これは、プロジェクトによって、作るものはかわりますが、作る手順については、開発標準に従うことになります(なので、あんまり変わらないです)。

 で、作るものと、作る手順を掛け合わせると、アクティビティがでるわけで、このアクティビティの手順を考え、日程をきめて、予算を決めることになります。





■標準的な開発の手順-開発標準

 標準的な、開発手順をあらわす、開発標準というのが、大体企業ごとに決まっています。

 標準的な開発方法というのは、以下のフェーズに分かれます
   1.要求分析
   2.外部設計(基本設計)
   3.詳細設計(内部設計)
   4.プログラム
   5.テスト
      ・単体テスト
      ・結合テスト(IT1,IT2)
      ・総合テスト(システムテスト)
   6.(移行)、運用

 で、富士通の場合は、総合システム開発体系SDASの中に、ComponentAA開発標準というものがあり、そこでは、以下の手順で開発することを定めています。

  SA工程   要件定義
  UI工程   外部仕様
  SS工程   構造設計
  PS工程   詳細(内部)設計
  PG/PT工程 プログラミング・テスト
  IT工程   結合テスト
  ST工程   システムテスト
  OT工程   運用テスト

他の会社は公開されてないのでよくわかんないですけど、たぶんあるはずです。




■ということで、まずは要求分析から

 でも、どんな開発標準でも、まずは、要求分析からはじめると思います。
 ということで、このシリーズも、要求分析からはじめましょうということで、
 次回から、要求分析から見ていきたいと思います。




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

JASRAC、Rimo等の対応に変化ってこと?

2007-03-26 11:19:10 | Weblog

 以前、はてなのRimoとJASRACの関係については、
YouTubeの自動再生「Rimo」、やっぱJASRACも目を付けてるようだが、不気味?
http://blog.goo.ne.jp/xmldtp/e/049142141ae4bb8acfd8885f30863465


ってところで、
動画再生サイト「Rimo」にも著作権問題?
http://www.j-cast.com/2007/02/21005658.html

の記事を取り上げて、以下のように書いた
(以下斜体は、上記ブログおよび記事より引用)

日本音楽著作権協会(JASRAC)にJ-CASTニュースが問い合わせると、

「著作権保有者の許可なく動画を配信、または再生しているサービスは、それ自体が当然違法性を問われなければならない」
と、Rimoを問題視していることは明らかだ。

で、そのあと


著作権が問題となりそうな動画配信サービスは、Rimoに限らず非常に数が多いため、

「個々のサイトではなく、これらのサービスを行うサイト総体に対しての対応を検討中だ」

と、JASRACは語った。


つまり、これだとRimoに対して、訴訟やなにかを行うように読めるよねえ。。




ところが、以下の記事
今後のYouTubeとの協議方針をJASRAC渡辺氏に聞く
http://internet.watch.impress.co.jp/cda/special/2007/03/22/15147.html

によると(以下斜体は上記InternetWatchの記事より引用)

――最近では、はてなの「Rimo」に見られるように、自社サーバーで動画を持たず、YouTubeで公開されている動画を再生するサービスが出てきましたが、こうしたサービスについて、どのようにお考えでしょうか。

渡辺氏:24団体側で特にアクションは起こしていません。問題がある場合は、動画の提供元であるYouTubeに抗議することになるでしょう。最近では、独自サーバーを使って動画を投稿できる「SMILEVIDEO」が開設されましたが、このようなサービスで著作権侵害コンテンツがアップロードされれば、直接削除要請をすることになるでしょう。


これだと、Rimoに対しては、訴訟もなにもおこさず、YouTubeに対してのみ、抗議するっていうように読めるよねえ。。

つまり、Rimoなどの態度にたいしてのみまとめると

訴訟か何かのアクションを検討中
  ↓
提供元に対して抗議する=アクションは起こさない

とJASRACが考えを変えたように読めるんだけど。。
そうなのかな。。
ま、それが妥当だよねえ。。
じゃないと、コピーコマンドを提供するOS会社にも。。
とかいうところまで、きちゃうもんねえ。。(^^;)

でも、ってことは、Winnyも、もともと、全フォルダを公開するツールではない(暴露ウィルスに感染すると、公開しちゃうだけで)っていうことは。。。
Winnyに対しては訴訟をおこさず、Winnyを使って公開した人(公開するフォルダに置いた人や暴露ウィルスを作った人)に、訴訟を起こすっていうことになるのかなあ。。

ま、Winny使ってないウィリアムのいたずらにとっては、そっちは、どーでもいい話ではあるが。。


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

トップダウンアプローチとボトムアップアプローチによる違い

2007-03-25 19:16:24 | 開発ネタ

 前に、佐藤正美氏のデータ収集の方法と、正規化の手法では違いがでるというケースを書いたけど、それについて書くのと、きのう、トップダウンアプローチについて書いたけど、具体的に書いていないので、今回は、それもふくめて、書いてみたいと思います。




■考える内容

 ターンアラウンド伝票というものについて考えて見ます。

 これは、受注時に、伝票を書くと、カーボンが後ろに入っているので、いっぺんに納品書などもかけてしまうものです。
 なんでターンアラウンド伝票って言うかって言うと、この伝票、納品先に行き、納品伝票とかが切り取られて、また帰ってくる(ターンアラウンドしてくる)ので、ターンアラウンド伝票と呼ばれます。

 このターンアラウンド伝票の仕様については、業界ごとに決まっていて、統一伝票と呼ばれます。

 さて、今回は、統一伝票そのものを考えるのではなく、佐藤氏の以下のページ
3P形式の伝票
http://www.sdi-net.co.jp/FAQ117.htm

で取り上げられている3P伝票について考えて見ましょう。つまり、


受注伝票には
{受注番号、顧客番号、品目番号、受注数、受注日}

出荷伝票には
{出荷番号(受注番号と同じ)、顧客番号、品目番号、受注数、出荷日}

請求伝票には
{請求書番号(受注番号と同じ)、顧客番号、品目番号、受注数、請求日、請求金額}


が書かれているとします。ここで、受注番号、顧客番号、品目番号のところには、下にカーボンが入っていて、まったく同じ値が書き込まれます。
また、受注番号がかかれるところに、出荷伝票では出荷番号、請求伝票では請求番号と書かれているため、受注番号、出荷番号、請求番号は、まったく同じ番号になるものとします。

 なお、今回は特注品で、1受注品目1枚の伝票とします



■佐藤氏の方法の場合

これについては、さきほどのところ
3P形式の伝票
http://www.sdi-net.co.jp/FAQ117.htm

に書かれているので、こちらを参照してください。




■ボトムアップアプローチでは

帳票をもとにエンティティを作成する、ボトムアップアプローチでは、以下のようになります。

●第一正規形で

品目番号、受注数、

が繰り返しになるので、これを切り出します。

受注伝票には
{受注番号、顧客番号、受注日}

受注明細
{受注番号、明細番号、品目番号、受注数}

となります。出荷、請求でも同じなのですが、逆に言うとおなじなんで、省略します。

●第二正規形で
 結局、受注番号をキーとして、出荷や請求の名前も連動して動いてしまうので、

受注伝票には
{受注番号、顧客番号、受注日、出荷日、請求日、請求金額}

受注明細
{受注番号、明細番号、品目番号、受注数}

ということになります。出荷伝票や、請求伝票は、受注テーブルを検索してつくることになります。




■トップダウンアプローチ(1:見たままを書く)

 では、トップダウンアプローチで、みたままを各方法だとどうなるか。

 みたままでいうと、伝票は3枚あるのですから、3つ独自のエンティティということになります。そーするとテーブルは3つ+第一正規形で分離した明細です。

受注エンティティ
{受注番号、顧客番号、品目番号、受注数、受注日}

出荷エンティティ
{出荷番号(受注番号と同じ)、出荷日}

請求エンティティ
{請求書番号(受注番号と同じ)、請求日、請求金額}

受注明細エンティティ
{受注番号、明細番号、品目番号、受注数}

の形になります。
 このとき、受注明細と、出荷明細、請求明細のエンティティが一緒なので、まとめていますが、実際に、この伝票で言っているのは、書き始めるときに、一緒(カーボンコピーするから)っていうだけで、その後、書き換えられるかもしれません。なので、まとめられるかどうかは、あとでヒアリングしてみないといけません。




■トップダウンアプローチ(業界標準から考える)

 まず、受注と出荷、請求というのは独立したエンティティと考えるのが普通です。
 というか、そもそも、受注と出荷は1:1になるとは(業界によっては)限りません。

 受注残処理というのがあって、受注した商品が在庫にない場合、とりあえず、現在ある在庫分だけを払い出し、あとからのこりの分の商品を送るというものです(一部の業界では、受注残処理はなく、在庫分だけを払い出し、残りはキャンセルとなる場合もあります)。

 この場合、1つの受注に対して、出荷はN、請求は不明となります(請求は、請求日が〆日をまたがない場合、N個にわけても1個で請求の場合もあるし、分ける場合もあります。またぐ場合、かりにいっぺんに払ったとしても(未着分も含め)、会計上は、納品した分が売上、受注残分は、前受金と分かれます)。

 まず、そこから聞くことになりますが、受注残がある場合でも、無い場合でも、以下のテーブルにしておけば安全ではあります(標準的には、このような構造になります)

受注エンティティ
{受注番号、顧客番号、品目番号、受注数、受注日}

受注明細エンティティ
{受注番号、明細番号、品目番号、受注数}

出荷エンティティ
{出荷番号、受注番号、出荷日、納品場所}

出荷明細エンティティ
{出荷番号、明細番号、品目番号、受注数}

請求エンティティ
{請求書番号、受注番号、請求日、請求金額}

請求明細エンティティ
{請求書番号、明細番号、品目番号、受注数、(請求時)単価}


受注時に出荷、請求のデータが作られますが、その後、受注残があるときのためなどで、受注分割されてもいいように、受注1に対し、出荷N,請求Mのレコードが作れるようにします(出荷-請求対応が必要な場合はN:Mになってしまうので、対応表が新規に必要になります)。

 なお、納品先と受注元が違う場合があるので、出荷エンティティの納品場所を入れています。請求明細エンティティに、単価が入っているのは、商品(品目)のマスタからとってきても、受注から請求の間に、商品の単価が変わってしまうと、受注時の単価がわからない=請求金額もわからないため、受注時に、単価を保存しておきます。




■もし、業界知識が無いと→大幅変更は、必至

 このように、業界知識があれば、受注残は?とか、納品場所と受注先は同じ?とか、気が付き、ヒアリングのときに、「現場に」聞くことができます(偉い人は、こーいうとき、理想論を言って、よくわかんないときがある)。

 で、もし、これ、ボトムアップアプローチのように、まとめちゃった後で、受注残があって、テーブル分けないといけなくなったら・・・どーなりますう??

 いきなりテーブル増えちゃうんだよ、アクセス方法変わっちゃうよ(@_@!)

 っていうことで、大幅開発変更っていうことになります。
 (いや、作り直しをしたほうが早いんじゃないかあ。。)

 今後、そういった話から、現在の開発の諸相を点描していってみたいとおもいます。



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

Hello World程度のデータベース(その12:概念スキーマ(10)ER図)

2007-03-25 14:06:40 | 土日シリーズ

情報処理とは何から、データベースの基本的な話(情報処理試験のデータベーススペシャリスト程度の話まで)を書く、土日のシリーズ「Hello World程度のデータベース」です。

 いままで、正規化について書いてきたりして、エンティティと属性について、分けました。今回は、それを成果物としてER図にまとめます。




■ER図

 ER図は、エンティティ(E)とリレーション(R)を書きます。。。
 けど、それだけではテーブルができないので、属性値も書きますね。

 で、書き方には、J.マーチンのER図(足の羽みたいなのがあるやつ)とかIDEF1Xとかあります。今日は、IDEF1Xで書きます。

 IDEF 1Xについては、
アイデフワンエックス(IDEF1X)―リレーショナル・データモデルの新しい表現法
ISBN:9784822290283 (482229028X)

という本があるのですが、今日の内容は、その本を参考にして書いてます。




■IDEF 1XのER図

 で、そのER図は、こんな感じになります。


 エンティティ名が、ボックスの上に入ります。
 ボックスの中に線が引いてあって、線の上に主キーを書きます。主キーは1つの場合もありますし、2つ3つが組み合わせって入ることもあります。で、組み合わせっているとき、それが、外部キー(他のものの主キー)だった場合は、うしろに(FK)とつけます。

 線の下に属性名を書きます。属性中、外部キーがあれば、うしろにFKと書きます。
 ちなみに、属性名にFKが来る場合というのは、関係はあるが、相手がなくても存在できるときに、あり得ます。

 で、関係については線でかきます。
 そして、その関係の内容(動詞句)を書きます。

 1対Nの関係にあるとき、Nのほうに黒丸をつけます。
 で、問題は1対Nの関係かどうかの見分け方なのですが、まず、1対Nの、1のほうは、主キーが入っているエンティティのほうです。Nのほうが外部キーが入っているエンティティのほうです。
 1対1であれば、Nのほうのエンティティに、主キーの入っているレコードは1件しかないです。1対Nの場合は、いくつかあり得ます。1対0は、1件もないということです。

 ただし、1対1だったら、テーブルを分ける必要は無いですし(第二正規形)、常に1対0っていうのは、関係ないってことです(^^;)なので、普通は1対1~Nのような形になります。それをわざわざ表現する場合は、黒丸のしたに、以下の文字を書いて示します(上記の本の140ページ)
黒丸のみ  1対0~N
黒丸にP  1対1~N
黒丸にZ  1対0~1
黒丸に数字 1対数字(1対3とか)


 なお、N対Mというのも考えられます(両方を黒丸でかきます)。このとき、お互いの主キーが、それぞれの外部キーになっているケースなのですが、これは、RDBには、ありません。というか、作れませんので、1対Nになるように、お互いの主キーを組み合わせたテーブルを作ります(下記の例だと、在庫がそう)。
 なお、これは、第一正規形のときに、処理される(1対Nにされる)と思います。




■ER図の例

で、これをまとめて書くと、こんなかんじ


在庫をあらわしたものです。
なお、在庫というのは存在しない、それは入庫と出庫の履歴である
という説もありますが、現実問題、会社設立から今日までの入出庫をとって
おくことはできないので、現実的には、このように在庫テーブルが存在します。

それと、動詞句ですが、しらじらしい動詞句になってしまったりする
っていうか、よくわかんない動詞句になってしまったりもするので、
省略することも多いかも。。




■汎化-スーパークラスについて

 汎化は、以下の図のように、丸に棒線をかいて、よこに、各クラスにわける基準を書きます。






っていうことで、概念スキーマ構造の操作の成果物である、ER図も描いたことで、概念スキーマはおしまいです。次は、この概念スキーマをデータベースに作る内部スキーマのお話です。


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

松下、hi-hoをIIJに売却、ネット事業撤退へ!!

2007-03-25 01:40:23 | Weblog

ここのニュース
松下、ネット事業撤退へ IIJに売却
http://www.toonippo.co.jp/news_kyo/news/20070324010002001.asp

によると(以下斜体は上記ニュースより引用)

松下電器産業が、インターネット接続サービス事業「パナソニック hi-ho(ハイホー)」を、ネット通信大手のインターネットイニシアティブ(IIJ)に売却する方向で最終調整に入ったことが24日、分かった。松下は昨年にもケーブルテレビ事業を売却。成長が見込めないネット事業から完全に撤退し、主力の薄型テレビなど家電事業に集中する。


じゃあ、hi-hoの人は、いままでどおりなのか?っていうと


売却が成立すればIIJが引き継ぎ、自社のサービスに移行させる見込みだ。

とのことらしい。。うーん、これから、どーなるんでしょうね。。

って、ウィリアムのいたずらは、hi-hoに、入ってないので、
かんけいないけど(^^;)


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

データ収集と業務知識の関係は。。。

2007-03-24 21:22:41 | Weblog

 この前、DBにおけるデータの取得方法っていうところで、データの収集方法には、ボトムアップアプローチとトップダウンアプローチというのがあって、トップダウンアプローチについて、あんまり書いてこなかったけど、こっちのほうが実は重要で、それが、業務知識の重要性に関係し、さらに、現在のシステム開発の大きな問題に関連し、問題解決への重要な第一歩になるはずなんですと、かいた。

 この理由について、何回かにわけて、話してみたいと思います。

 まず、トップダウンアプローチによる分析を掘り下げてみましょう




■トップダウンアプローチによるヒアリングと帳票分析の位置づけ

 トップダウンアプローチは、帳票分析を行う前(実際には予備調査の段階で作る場合もあるんだけど)にER図を作り、そこのエンティティに帳票分析の結果を埋め込み、必要があればエンティティを足していくという手法です。

 つまり、ボトムアップアプローチにおいて、帳票分析は、エンティティを出す主要な方法論になりますが(たしかERDレッスンなんかも、この立場だと思った)、トップダウンアプローチでは、帳票分析は、すでにあるエンティティに対して、補足、追加、修正という形になります。

 で、とくに、このトップダウンアプローチのときにおいて、業界で標準化された内容からエンティティを作成し、それを今回のシステムに合わせる場合は、帳票分析は、本システムに対するカスタマイズともいえます。




■トップダウンアプローチにおける、エンティティの出し方

 トップダウンアプローチにおけるエンティティの出しかたには、2とおりあり、

●1つは、見たままをモデル化する。
 つまり、エンティティは、モノ(リソース)やコト(イベント)であるので、
・モノを分析する
   とりあえず、登場人物(=ヒト)のエンティティは作ろう(仕入先、得意先など)
   そこでやりとりされるモノのエンティティを作ろう(商品など)
   (カネのエンティティっていうのは、あんまりない)

・コト(=イベント:業務)を分析する
   帳票をつくるような業務は、まず、エンティティになるので、とりあえず
   発生させる
 っていうことです。

●もうひとつは、業界標準のものとか、前やってきたものから、パチッってくる
 前に似たような業界とか仕事でER図を作っていたら、そいつをパチッってくる




■業務知識が必要な方法、必要ない方法

 後者の業界標準をパチッってくるっていうことは、業界の標準的なシステムの作り方を知っているということ(例えば在庫システムといった場合、どういう風に在庫を表現するかっていうことを知っている)になっている。
 つまり、システム開発において、業務知識を持っている必要があるということだ。

 ここで問題になるのは、ボトムアップアプローチでも、トップダウンアプローチでも前半の方法は、業務知識がなくても作れる手法なのだが、トップダウンの2つめの手法は、業務知識がないと、かなり作成は難しくなる。逆に業務知識(=標準的な業界システムの作り方の知識)があれば、カスタマイズということになるので、かなり楽になる。




■最近は業務知識なしでも作れる手法に傾いている

 最近のコンピューターの本屋さんに行くとWebのはなしやJavaの話、DBの話、UMLの話などが中心であり、業務知識の話は少ない(つーか、ほとんど、ない)。

 というように、昔は(20年位前、第三次オンのSEがいたころ)、業務知識の話も多かった気がするけど、最近は業務知識なしでも作れる、純粋にコンピューター技術の話に世の中が傾いていると思う。




 じゃあ、業務知識は必要かどうか。。。について例をあげて、詳しい話をするのは、また次回にしよう。





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

データベースからWebや本、雑誌などを自動生成するDB編集の考え方(その6:手順)

2007-03-24 17:20:52 | 土日シリーズ

土日シリーズで、土曜日に書く、データベースからWebや本、雑誌などを自動生成するDB編集の考え方です。

前前回は、自動生成の出力(とくにXML)についてでした。
前回は、自動生成の入力についてでした。
今回は、入力から出力にいたるまでの手順についてです。




■おおきく2とおりの方法

 どっちでやってもいいんですけど、手順は2通りあります。
 たいていこんなかんじかなあ。。




■ケースA.レイアウトが決まっていない場合

1.小組みを生成して、小組みの外枠が、どの大きさになるかを決定します
  →このときできた小組みをライブラリに入れたり、
   中間ファイルに書き出す場合もあります。

2.その小組みの大きさをもとに、レイアウトを決めていきます。
  →まず、大きな小組み、制約のきつい小組みから、レイアウトしていき、
   余った空間に、小さな小組みを入れていく

3.レイアウトがきまったら、書き出します。
  1でライブラリに入れている場合は、レイアウトからライブラリ呼び出し指定でOK
  そうでない場合は、レイアウトから、1の小組みを呼び出し、小組みの相対座標
  位置を、レイアウト分を足して絶対座標にして、出力します。




■ケースB.レイアウトが決まっている場合

1.その決まっているレイアウトを読み込みます

2.レイアウト内にある小組みを順に作成していきます
  2-1.小組み内の枠を順々に作成していきます




■ちがいは、先に小組みを完成させるかどうか
 この違いは、大きく先に小組みを完成させるかどうか。。
 で、この中間で、1回、小組みの大きさだけを確定し、レイアウティングしたあとで、小組みの中身を作成していくというのもある。

 どちらの方法の場合も、書き出しについては、いったん全ページ分のデータを作成し、一気に書き出す方法と、できたところから順次書き出していく方法がある。




 で、本当だと、具体例ってなるんだけど、それには、DTPソフトが必要なので、今回、このシリーズは、ここでいったん終わりにして、この次から、もっとDTPシステム全般の業務知識の話を書きます。



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

Mash up Award 2nd、受賞の有無にかかわらず、公開したい人は公開されるみたい!

2007-03-24 15:44:51 | Weblog

 前のブログにMash up Award 2nd って、応募作品、全部公開すればいいのにね!っていうのをかいたけど、どうも、受賞の有無にかかわらず、公開可能とした人の作品は、公開されるそうな。。

 すげー、落選作品って、いままで、どこのコンテストでも、普通、公開されなかったわけで。。

 そのうち、落選者ばかりを5人あつめて、売り出したりして。。
 。。。って、ASAYANじゃないんだから(^-^)
 (ちなみに、モー娘。の話です)

 でも、落選作品でも公開されるとなると、公開して、見てもらいたい人は、次回から(って3rdってあるかどうかわかんないけど)応募するようになるんじゃないかな。。
 会社だと宣伝として(^^;)

 次回から、参加者が増えそうな予感。。なこたーねーか(^^;)


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

人をほめるブーム

2007-03-24 02:30:51 | Weblog

 そうそう、ドン小西が、ほめていたっていう話をするって、以前、書いたよね。で、その話。。




 ドン小西の話は、ちょっと置いておいて、昔から、日本人は褒めるのが下手だという耳たこの話があるが、そーいうのとは別に、最近、人をほめるブームっていうのがあるらしい。

 ここ最近、3年以内転職率がやたら増えているそうで(実際に、ソフトハウスなんかだと、3年以内にやめる人。。。昔から多いか、最近だけでなく ^^;)、その対応策として、若い人をほめよう!っていうのがあるらしい

 実際に管理職研修で、人を褒めようっていうのがあるそうな
褒める練習
http://www.nkgr.co.jp/senryakujinji/info/column16.htm


 こういう練習っていうか、研修(ウィリアムのいたずらもやったことがある。管理職研修ではないんだけど、褒める練習みたいなの)をやってみるとわかる。。
 よほど、気合を入れて無いと、普通の人をほめ続けることは、不可能である。

 まず、ネタがない。。。
 そして、その次なんだけど、言葉が浮く。。上滑りなのだ。。
 人を小馬鹿にしたような褒め言葉になってしまう。




 こうならないためには。。。

 こちら側が、基準をもっていて、その基準を超えていると理論整然と説明できないと、褒めているつもりが、言葉が浮いてしまい、(褒めている側の)自己満足になってしまう。

 この点、褒め方が巧いのは、フィギアスケートの八木沼さんだ。
 理論整然と褒めている。。その褒め方から、この人、すげー!!と思うんだけどね。実際に、周りの国分さんとか、アナウンサーとかと比べてみるとわかる。褒め方が違う。。(ただし、荒川さんとは視点の違い程度で、あまり差は無い)




 つまりだ。。

 今の管理職なんかが、褒めないのは、管理職のほうに人を褒められるだけの基準が無い(技術も無い)。なので、文句は言えるけど、褒めるのは難しいと思う。

 実は、

・文句を言う
・自分がやる
・指導する
・褒める

の順に難しい。自分がやれないことでも、文句は言える。自分ができても指導できるって言うわけではないので、指導のほうが難しい。そして、褒めるっていうのは、指導できるだけの物事のレベルがわかった上で、相手が、そのレベルを超えているっていうことで褒めるんだから、指導できる以上に難しい。指導できないレベルの人が褒めると、「すごいよねー、おいしいよねー」みたいな、テレビで芸能人がおいしいものを食べに行くような褒め方になってしまう。だから、「褒めるところが無いと褒めない」というと、ほとんど褒めることができないし、逆に無理に褒めると、なんか、ポジティブシンキングのセミナーみたいな、あやしー雰囲気になってしまう(^^;)

 で、実は最大の問題なのは、今の上司になっている世代の人間が、褒めるどころか、指導するどころか、自分ですらできないことを部下に求めているところに問題があるのですよ。。そのため、自分のアイデンティティを示すには、人をけなすしかない。指導すらできないので。。

 まあ、この辺の話は、今後、書いていきますけどねえ。。
 (たぶん、ちょっと先に、失われた20年っていう話を書くと思う。そこで。。)




 で、前回のワナゴナ。ドン小西が出てたんだけど、ドン小西といえば。。まあ、毒舌で人をほめるなんつーことは、あり得ないわけだ。事実、専門学校にいって、「最近の学生は勉強しない」などと、紋切り型の話をしていたわけだ。。

 が、途中から急に変わった。それは、100円ショップで見つけたというものを組み合わせて洋服作っている人と話し始めてからなんだけど、「これパクっちゃお」とか言い出して、材料を持っていこうとしたりして。。

 最後には、「若い人の感性はいい」みたいな感じで褒めておわったんだけど。。

 で、ふとおもったわけ。

 もちろん、この作品を作っている人がすごいのは当たり前なんだけど、
 ドン小西。たんに、洋服に文句をつけてるオジサンみたいにおもってたけど、こーいう目のつけどころをして褒めるところを見ると、この人、ただものではないかも(^^)



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

OpenAjaxに、MS、Googleなども加入。。って、そもそもOpenAjaxって、何?

2007-03-23 17:46:19 | Weblog

ここのニュース
MS、Googleなど32社がOpenAjaxに加入
http://www.itmedia.co.jp/news/articles/0703/23/news021.html

によると(以下斜体は上記ニュースより引用)


 Ajax推進団体のOpenAjax Allianceは3月20日、米Microsoft、米Googleを含む32社が新たに同団体に加入、参加企業が72社になったと発表した。


とのことだが、そもそもその、
OpenAjax
http://www.openajax.org/

って。。なに(^^;)

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

MS Wordで、たくさん画像が入ったファイルの容量をへらすため、GIMPを使ってみた。

2007-03-23 15:53:54 | Weblog

 Wordで文書を作ってるんだけど、いっぱい画像を入れたら、あまりにも重くなってしまった。。。
 簡単な画像(画面キャプチャ)なので、JPEGの解像度を落としてもいいし、グレースケールで十分なので。。と思ったけど、ペイントでは、指定できなさそう(白黒にはできるけど)。。

 そこで、無料で利用できる、GIMPを使って、イメージをグレースケールにして、品質をおとしてみた。




■GIMPなどの入手

 GIMPは、ここから入手した
http://gimp-win.sourceforge.net/stable.html

 けど、Windowsの場合、まず、GTK+を先に入れないとインストールできないみたい。

 ということで、まず、上記のサイトの

GTK+ 2 Runtime Environment (version 2.10.6, for Windows 2000 and newer)

で、GTKを入れて(マシンはWindowsXPを使っています)
そのあと

The GIMP for Windows (version 2.2.13, fixed installer)

をダウンロードした。




■インストール

インストールは、

GTK+ 2 Runtime Environment (version 2.10.6, for Windows 2000 and newer)

も、

The GIMP for Windows (version 2.2.13, fixed installer)

も、単純にそのまま、OKだったか?Yesだったか、はいだったか、良く覚えてないけど、
そのまま、肯定のほうをおしてれば、なんか入れてくれる。

GIMPがはいったあと、日本語で、インストールどーのこーのってでてくるけど、
これも、そのまま、肯定のほうをおしてれば、なんか入れてくれる。




■グレーにして、品質を下げる

 まず、対象となる画像を開き、その後

画像→モード→グレースケール

 で、グレースケールになる。そしたら、

ファイル→別名で保存

 で、ファイル名を聞いてくるから、入っているまま(そーすると、上書きになる)
にして、置換する?って聞いてくるダイアログで「置換」をいれる
(置換されたくないなら、ファイル名をきいてきたとき、適当なファイル名を入れればOK)

 そーすると、
「JPEG形式で保存する」ダイアログが出るので、「品質」を適当に下げればOK

 結構小さくなる。





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

開発の初めから順番に書いていってみる その13:立ち上げ(7)プロジェクト計画書

2007-03-23 10:36:59 | 開発ネタ

シリーズ「開発の初めから順番に書いていってみる」の続きです。
 今、プロジェクトの立ち上げから話を起こしているのですが、プロジェクト憲章、をつくって、スコープ定義をしてWBSを作りアクティビティを挙げて、それらを、いつ、だれがやるか決めて、スケジュールと予算という形にまとめました。。

 つまり、以前、順番を書いたところで言うと、「計画のコアプロセス」の(7)まできたので、今回は

(8)プロジェクト計画の策定
  いままでのことをぜんぶまとめて、プロジェクト計画書とする

です。プロジェクト計画書の中身についてです。



■プロジェクト計画書の中身

 プロジェクト計画書というのを、まじめに書くとすると(書かない場合もあるし、これを元に発注仕様書をつくり、発注仕様書の形でまとまるケースもあるけど。。)、

ここ http://homepage3.nifty.com/tanoc_project/task080.htm
のかたが、書いている内容になるとおもいます。

まあ、ちょっと言い方はかわりますが、こんなかんじのことを書きます

1.プロジェクトの概要
  1-1.目的・目標
  1-2.プロジェクトの範囲
  1-3.周辺システムとの関連
  1-4.前提条件
  1-5.成果物

2.参照・定義等

3.プロジェクトの概要

4.予算

5.スケジュール

6.体制

7.補足資料など




■プロジェクト計画書と立ち上げ作業の関連

で、今までやってきたものとの関連は、こんなかんじ

1.プロジェクトの概要
1-1.目的・目標
 →プロジェクト憲章、あるいは(1)のスコープ計画で決まっている
  ので、それを書く

1-2.プロジェクトの範囲
 →スコープ計画と、スコープ定義できまるはずなので、それを書く

1-3.周辺システムとの関連
 →本システム範囲外について、どのように本システムと、関係するのか
  しないのかを、データの入出力などで規定する。プロセスで規定すると
  あいまいになる。1-2の裏返しなので、1-2が決まると決まる

1-4.前提条件
 →プロジェクトを提案する時点、および、これら一連の立ち上げ作業を
  行っているときに、前提があれば、それを書く

1-5.成果物
 →スコープ計画で決まっているが、契約書にもかいてあるはず。

2.参照・定義等
 →参照したものや、今後「プロジェクトの概要」で出てくる言葉に
  ついて定義する。ないときもあるけど・・

3.プロジェクトの概要
 →(2)スコープ定義のWBSの内容。これが、5のスケジュールと
  対応して、項目の根拠となるようにかく。
  そして、その項目が達成すると、システムの目標が達成されると
  いうことがわかるようにブレークダウンして書く

4.予算
 →(7)予算作成の内容そのまま

5.スケジュール
 →(6)スケジュール作成の内容そのまま

6.体制
 →(5-2)資源計画で、「だれが、いつ」は
  決まっているので、それを、体制にする
  (5-2ほど、細かくなくていい)

7.補足資料など
 →あったら。。

なので、いままでやってきたやつでできる。




■プロジェクト計画書の作成ガイド

 実は、プロジェクト計画書というのは、「開発計画書」と同じと考えていい(開発作業においては)。

 で、この「開発計画書」は、IPAが、ガイドを出している。

ここ
組込みソフトウェア向け開発計画書作成ガイド(0.8版)
https://sec.ipa.go.jp/download/200608eb.php


で、組み込みではないシステムでも、開発計画書は、だいたい同じなので、ほかでも使える。どんな中身を書けばいいのかは、これを見ていただくと、分かると思います。

。。ま、まじめに作るとすればだけど。。




 次回から、開発計画書の中に書かれている、「3.プロジェクトの概要」と、開発標準について、書きたいと思います。その中で、システム開発の手順に触れ、その後、その順番に(要求仕様から)説明していくことになります。



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

XMLの帳票分析

2007-03-22 12:22:07 | 開発ネタ

 昨日、データ収集方法(トップダウンアプローチとボトムアップアプローチ、命題論理方式とコード体系方式)について書いたので、今日は、XMLの場合、それらがどうなるかについて。。




■まず、帳票とは何か

 帳票分析を行う帳票とは、

 事柄(受注票の受注など=イベント)や、モノ(顧客リストなど=リソース)について、
 オフラインの状態であっても、情報を保存あるいは交換するために、
 情報を見える化(可視化)したもの

 といえると思います(紙とは限らない。ビニールの上に書いてもいいし、シールの上かもしれない)。

 ここで、「オフラインの状態」っていうことがみそで、オンラインの状態であれば、人が見るんだったら(人とマシンとの情報交換になるけど)画面でいいし、相手がコンピューター同士で、情報交換するんだったら、帳票である必要は無いわけです。




■オンラインの情報交換としてのXML

 とすると、今後、電子化された状態での情報交換っていうのが多く行われるわけです。
 この場合、帳票にする必要は無く、XMLベースで(っていうか、入力はXMLである必要すらない。URLに引数で渡すんでもOK)行われることが多くなってくると思います。

 では、XMLでも、同じように帳票分析できるのかというと。。。




■XMLでは、エンティティは上位タグになることが多い

 帳票の場合、OF LANGUAGE方式で、データ項目名は、エンティティー属性名の組み合わせ(受注-年月日、商品-名など)ガ多かったのですが、XMLの場合、

<channel>
   <TITLE>チャネルのタイトル</TITLE>
   <ITEM>
     <TITLE>アイテムのタイトル</TITLE>
   </ITEM>
</Channel>

のように、属性(TITLE)だけ、エンティティ(ChannelやItem)だけをタグとして書くことがあります(つーか、多いかな)




■情報交換としてのエンティティ

 で、ここで、ER図をつくるには、まず、このタグは、エンティティか、属性名かをみわけることになります。これは、タグ自体に実体があるか(=ビジネス上の関心事として、それが、モノ、コト(=出来事)として存在しているか)で判断します。

 ただ、ここで、情報交換としてXMLを使うなら、このXMLデータは、交換する相手同士で、同じように考えないといけないことになります。
 逆にいうと、どちらか一方(業界全体で同じXMLを使うなら、だれか1人)が、ER図を分析すればいい(他の人はそれをベースに自社用にカスタマイズする)ってことになります。

 っていうか、極端に離れた自社ERモデルを作られてしまうと、そのXMLに変換できなくなって困るって言う話になります。。




 この話と、前のブログに書いた業務知識の重要性に関係し、さらに、現在のシステム開発の大きな問題に関連し、問題解決への重要な第一歩になるはずなんですが関係するんですけど、あ、時間が無いので、今回はここまで。。



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

DBにおけるデータの取得方法

2007-03-21 22:54:58 | 開発ネタ

 以前、佐藤正美氏のDBの設計方法を書いたけど、その際、はじめの段階、データの認知において、どのようにデータを持ってくるのか?それは、正規化理論や要求仕様におけう帳票分析とどう違うのか、同じなのかについて、書きたいと思います。




■佐藤氏の理論における2つのデータ収集方法

 佐藤氏の理論において、データの収集は、命題論理方式と、コード 体系方式によって行われる(くわしくは、こちら

  これらの方法については、命題論理方式は、論理データベース論考の177ページ、コード 体系方式は179ページに書かれている。

 佐藤氏の流派の人には、「お前ぜんぜんわかってねーよ」と批判されそうだが、ちょー簡単にそのやり方をまとめてしまうと、

<<命題論理方式の手順>>
帳票が出てきたら、T字型ER図の
  エンティティを書くところ(上の部分)に帳票名、
  左の部分(キーを書くところ)に、NOとかコードってついていることばを
  右の部分(属性を書くところ)に、そのほかの項目をかく。

なお、T字型というのは、エンティティが上、下の部分が左右(キーと属性)にわかれてT字型になるので、T字型ER図というみたい。

で、このとき、帳票は、ふつうNoとか、コードが複数入る。
そこで、そのNOとかコード1つぶんを、1つのT字型ER図として、
  そのNOの前の部分(受注NOなら、受注)をエンティティとし、
 (1つ分の)なんとかNO、なんとかコードを左側のキーにかき、
 右の部分に、上記の(帳票の)項目からエンティティ名のついている項目を入れる

ってな感じにする方法である。

<<コード体系方法>>
 命題論理方式はめんどっちいので、
・項目が出てきたら、いままでウィリアムのいたずらがやってたように
 エンティティに分けてしまい、

・エンティティがすでにあれば、そのエンティティにいれる

・エンティティがなかったら、新しくエンティティを作成し、
 主キー(左側のなんとかNO)をつくる

って言う方法。

 つまり、この手法は、いままでの帳票分析を、ちゃんとだれでもできる手法にまで高めたものであり、ウィリアムのいたずらが説明してきたのは、コード体系方式になるけど、こっちより、命題論理方式のほうが、めんどっちいけど、厳密である。




■正規化を使う、一般的な手法のとき、データの抽出は?

 で、一方、正規化手法をつかうとき、じゃあ、その正規化をやる対象となるデータは、どっから発生するの?ていう話になる。

 この集め方には、2つあるといわれる。
 むかしCAITで出していたデータベーススペシャリストテキスト(ISBN 4-89078-458-6)の258ページ、データの抽出に出ているけど、トップダウンアプローチと、ボトムアップアプローチである。

<<トップダウンアプローチによるデータ抽出>>

 はじめに、エンティティを出してくる。
 どうして、エンティティが出せるかというと、エンティティはモノや概念なので、モノとして、そこの登場人物や、やり取りするモノは、エンティティとなる。このような感じで、エンティティは出せる。

 そして、エンティティが出てきたら、あとは、そこに、属性を帳票などから埋めていくという手法である。

 この場合、登場人物と出てくるモノを使って、あらかじめ、シナリオをつくり、つじつまが合うようになっていると、そこからエンティティを切り出して、あとは属性追加していく形になるので、話のつながりが見えやすい。

<<ボトムアップアプローチによるデータ抽出>>
 帳票か、画面からデータ項目を取り出す。
 ただし、帳票を見ても出てこない、画面はこれから作るのでない(>_<!)っていうことがある。この場合、DFDのデータストアからデータを取り出すこともできる。

 しかし、この手法は、すべての帳票を集めてくれば、できるんだけど、もし、あつまらなかったら、抜けてしまう。。(>_<!)
 っていうか、そもそも、帳票も画面も、これから作るシステムで、要求分析でER図を作りたい場合、どーすんのよ(^^;)っていう問題がある。




■佐藤氏の方法と一般的手法との比較

 佐藤氏の命題論理方式と、コード 体系方式は、どちらも、帳票からやっているという点では、ボトムアップアプローチに相当する。一般的な、帳票分析も、ボトムアップアプローチが中心である。

 しかし、トップダウンアプローチを使って、帳票分析を行いたい場合、コード体系方式で、エンティティに属性を追加していくことになる。




 で、いままで、トップダウンアプローチについて、あんまり書いてこなかったけど、こっちのほうが実は重要で、それが、業務知識の重要性に関係し、さらに、現在のシステム開発の大きな問題に関連し、問題解決への重要な第一歩になるはずなんです。。

 けど、あらしろべにの番組がはじまる数分間で、その問題を書くには、余りにも時間が無いので、別のときに書きます。


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