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

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

ジャストシステムが、デザインを、PDF/フリーでダウンロード可、一押しは「まえださつき」さん

2005-10-31 14:23:28 | コピーされるほど儲かるシステム!

本家ブログにも書いたけど、ジャストシステムが、自社ソフト以外でも使える(PDF形式で)デザインを、フリーでダウンロードできるようにしているみたいです。
 で、さらに、そのデザインは、誰がデザインしているか、デザイナーさんを明らかにして、人気投票までしています。

 で、そのサイトは、こちら http://www.justsystem.co.jp/label/100d/
 もともとは、ラベルマイティっていうソフトのためのデザインのダウンロードのようです
 (実際、ラベルマイティ用もダウンロードできる)

 パッケージソフトに入ってる素材(クリップアート)って、作者を明確にすることはあまりないし、さらにその作者の人気投票なんていうのもやらないのが、多いと思う。
 その点、10回も、人気投票をやる(予定)っていうのは、
 その上、自社で売ってるソフト以外でも、PDFで利用できるようにするのは、
 新たなこころみかも。。。

 ちなみに、ウィリアムのいたずらは、その作家さんのなかの、「まえださつき」さんを応援してますので、まえださんの(=3番)がいいと思った人は、ぜひ、人気投票に投票してくださいませ(^^)v


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

ソフト開発を標準化する場合、まず要求仕様を標準化しないと。。でその標準化の内容だが。。

2005-10-31 13:55:36 | 開発ネタ

 まずはじめに、これから書く内容は、標準化がいいか悪いかではありません。

 それと、トヨタ流がいいかわるいかでもなければ、トヨタという会社がいいかわるいかでも、また、トヨタ流としているやり方が、本当にトヨタのやり方なのかということを議論するのでもありません。

 今日、ここで書くことは、「かりに、作業を標準化すると」、要求も標準化しないといけないということと、じゃあ、要求の標準化はどのように行うか?っていう話です。




 前のブログで書いたと思うんだけど(どこで書いたかは、完全に忘れている)、トヨタ式を導入するにしろなんにしろ、まず開発作業を標準化する(とくに、だれにでもできるように)という傾向が昔から、ソフト業界には、多いと思います。

 しかし、これ、その前に、要求のほうを、標準化しないとできません。
 いや、打ち合わせとか、プログラミングとか、そういうふうに、作業的には標準化できるるけど、その作業を組み合わせると、システムができる保障がない。

 たとえば、ケータイを使って、世界各国の天気をシュミレーションするソフトっていう要求も出そうと思えばできる(今、適当に考えたので、こんなのが、実現できるかどうかは不明)。
 それに、会議がひつようだったり、コーディングが必要だったり、テストが必要なことはわかる。

 でも、その要求を満たすには、何から手をつけていいかわかんない。




 そもそも、世の中のすべての要求をシステム化できるわけではない。最終的に、これを証明するには、チューリングの停止問題になるんだろうけど、そこまでの話を持ち出さなくても、実感的にあきらかでしょう。

 とすると、実現できる要求の形というのをきめて、その形に合うように、要求をはめていったほうが、現実的になる(実現される可能性は高い)。
 で、「実現できる要求」っていうことは、そのやり方がわかってるんだから、その方法論、テスト方法なども分かっているということになるので、それを標準化すればいい。

 つまり、実現可能な要求仕様のつくりかた方を標準化して、その標準化をもとに、実現する作業工程を標準化すれば、仕様の複合的なもんだいはあるかもしんないけど、基本的にできるということになる。




 で、問題は、実現可能な要求仕様のつくりかた方の標準なんだけど、
 これは、

 ・入出力の部分
 ・モデル(データの操作)の部分
 ・非機能要件の部分

 の3つに分けさせてください。このうち、「非機能要件の部分」は、方法論、テストを導き出すというよりは、上記2つで導き出した方法が複数考えられるときの制約になります。なので、方法論、テストの導き出し方は、上記2つからきます。以下説明します。




■■ 入出力の部分

 これは、基本的に、使えるGUIで指定することになります。
 帳票の場合は、使える帳票出力ソフト。

 で、要求を、そのGUIのスタイルガイドに沿って行い、
 プログラムは、そのGUIのフレームワークで行うという形になります。
 なので、各フレームワークのいける標準作業、標準ドキュメントをあらかじめ決めておくことになります。

 たとえば、Strutsと決めた場合、ウィリアムのいたずらが考える標準作業はこちら

 どのGUIか決めないと、作業が決まらないし、GUIの標準(スタイルガイド)に従わないと、作業が混乱します(例:HTMLで、円グラフと折れ線グラフを書け。。)。

GUIにおけるテストは、基本的に入力項目テストのブラックボックステストなので、項目属性ごとに、テスト方法を標準化すればよい。




■■ モデル部分

 IEEE830で、8つのテンプレートを用意しているみたい
 以下、ここから引用すると、こんなかんじ

A1 :外部インタフェースを記述してから、運用状態ごとに機能要求を記述する

A2 :運用状態ごとに、外部インタフェースと機能要求を記述する

A3 :外部インタフェースを記述してから、ユーザー種別ごとに機能要求を記述する

A4 :外部インタフェースを記述してから、オブジェクトごとに、属性と機能要求、メッセージを記述する

A5 :外部インタフェースを記述してから、サービス種別ごとに、目的、刺激と応答、機能要求を記述する

A6 :外部インタフェースを記述してから、刺激ごとに機能要求を記述する

A7 :外部インタフェースを記述してから、データフロー図を用いて機能要求を階層的に記述する

A8 :外部インタフェースを記述してから、複数の視点の組み合わせごとに機能要求を記述する。


 これをもっと具体化させて、要求の出し方をパターン化する。そのパターンごとに、コーディングと、テスト方法を標準化すると言うことになっていくんだと思う。




 なお、「非機能要件の部分」の要求の出し方の標準として、ISOかなんかで、品質のやつで、なんかあった気がするけど、どわすれした。。

 うーん、具体的にかかないと、なにいってるんだあ??ってなっちゃうよね。

 今度、かんがえときます。

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

人もうらやむような仕事・報酬がもらえるのは全体の6%、あとは常駐派遣か転職。。となるのかなあ?

2005-10-30 18:46:39 | Weblog

 これが、外注先比較のためのチェックリスト(一部抜粋)だそうな。。。

<会社概要>
・従業員数
・年間売り上げ
・経常利益
・資本金

<チェック項目>
・財政面の健全性
・関係/取引実績
・開発要因の機動力
・Webシステムの開発経験
・プロジェクトの管理能力

 。。。情報処理試験によると(プロジェクトマネージャー 午後1問2 ただし、資本金については、この解答が問題になっているが、アイテック、TAC,ウィリアムのいたずらの3者の解答が同じなので、まあ、正解だろうとして、いれてある)

 さらに、ITACの解答によると、資本金を入れる理由は、「企業規模の判断に資金の情報が必要だから」だそうだ。つまり、会社のチェック事項に、企業規模がはいっていると。。




 これは、情報処理試験のためのテスト用の話というよりか、最近の現実の傾向のように思われる。つまり、ウィリアムのいたずらのようなフリーや、中小下請けは、だんだん、資本力、機動力がないからカットされていく方向になるんだろう。

 実際、日経ビジネスに載っていた富士通の記事は、あからさまに中小下請けをカットする内容だったし。。。

 そうすると、結局、コンピューター業界は、元請けと、その元請けの管理の下、(派遣・擬似派遣等によって)常駐して、開発する人たちが中心になり、ウィリアムのいたずらのようなフリーのひとは、仕事が来なくなって転職といいことになるのだろうか。。

 その場合、仕事の継承は?と思うかもしれないが、上記の富士通の考え方によれば、トヨタ式の導入により、だれでもできるように標準化される。。。とすると、引継ぎも問題なくなるのだろう。

 (ただし、この実現のためには、つまり、トヨタ式のように、標準化するには、あることを行う必要がある。それについては、別の機会に、覚えていたら書きます)




 結果として、女王の教室の、

「人もうらやむような幸せな暮らしが出来る人が何パーセントいるか知ってる? たったの6パーセントよ」(第1話)をもじっていえば

人もうらやむような仕事・報酬がもらえる人が何パーセントいるか知ってる? たったの6パーセントよ(元請けのみ)

「いくらテストの成績が良くても、私に逆らっている限り、罰を与えますからね」(第2話)

 いくらシステムをうまく作り、品質もよく、ユーザーに喜ばれても、標準化に逆らっているかぎり、罰を与えますからね(=検収不可)

「親なんて(中略)担任が自分の子供のことを気にかけてくれてるって分かれば、それだけで満足するの」(同)

 派遣してる社長なんて、元請けが、自分の社員にお金支払ってくれてるってわかれば、それだけで満足するの

っていう世界になるのかなあ。。。

(なお、上記、斜体部分は、このブログからの引用です)


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

RFID(ICタグ)の種類(分け方など)について

2005-10-29 19:17:16 | Weblog

 日経コンピューターにICタグ(RFID)について載っていたけど、いきなりUHF帯とか書いてあり、説明がなかったので、今日は、説明

 なお、以下の内容は、「ICタグ普及による中小企業への影響と対応」社団法人 中小企業診断協会著のP26,P27のまとめです。




 ICタグは、周波数や通信方式、電池の有無でわけると、こんなかんじ

<通信方式>
 電波を使う方式
 電磁誘導方式

<電池の有無>
 パッシブタグ:電池なし、電波を反射するカタチ
 セミパッシブタブ:電池あり。電波を反射するカタチ(パッシブ)だが電池があるので、遠くまでいく
 アクティブタグ:電池あり。電波を発信する

 アクティブタグだと、遠くまでいくが、現在は、多くがパッシブタグ

<周波数>
135Khz以下
13.56MHz(短波)
433MHz(UHF)
800/900MHz(UHF)
2.4GHz(マイクロ波)

 したがって、UHF帯というのは、433Mhzと、800/900Mhz帯のこと。ただし、この周波数帯は、最近まで使えず、2005年4月の省令で952~954Mhzが割り当てられ、使えるようになった。
 433Mhz帯は、アマチュア無線と同じ周波数帯になる。。。
って書いてあるけど。あれ、900Mhzあたりだって、ケータイが使ってないか?と思って調べたら、こんな記事はっけん!
 なるほどね。。。しらないところで大変なのね。。って、じゃあ、433Mhz帯は?まだ、使えないのかなあ。。

 げ、これから、周波数と、パッシブ、アクティブ(電池の有無)の関係/ISOの関係/通信方式の関係、電波利用料の話、ICタグ対応から考えた分け方とその対応とかを書きたかったんだけど、時間がないや。。。

 ということで、そういうネタがのっているところをとりあえず書いておきます。

 周波数と、パッシブ、アクティブ(電池の有無)の関係/ISOの関係/通信方式の関係は、こちら(ユニシスのページ)
 ここで、マイクロ波っていうのは、電波のこと。

 電波利用料とICタグ(無線LANも)の関係は、こちら

 時間があって、覚えていたら、このつづき(ICタグ対応から考えた分け方とか)を書きます。

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

トヨタ式カイゼンがソフト開発で利用できるなら、このブログのヒット率は、もっと低いと思うけど?

2005-10-28 14:41:20 | Weblog

 先のどのブログの、トヨタと富士通の違いについて、

まず、カイゼンについての意識あわせ。

ここに出ている、トヨタ式のカイゼンの説明を基準に考える。
(このサイトにした理由について、別に深い意味はない。目に付いたから)

 それは、こんなかんじ
・個々の仕事の中身を誰もが分かるように「標準化」した上で
・問題点のチェックと改善を繰り返し
・仕事の質の向上をはかる
・この手法で業務の無駄を徹底して排除する

→このムダを、トヨタは、7つあげている(ってとこまでの説明はないが)。

ふつう、カイゼンっていうと、こんな感じの説明で、いいと思う。




 で、ここで問題なのは、トヨタは、車を作っている会社だってこと。

■■ 車を作ってる会社の場合
 一般的に、車をつくるために、どういう作業が必要か、っていうのは、わかるんだとおもいます。工程間に矛盾はないんじゃあないでしょうか?だから社員が考えれば、今やっている作業が必要かどうかはわかる。=標準化が可能な段階にきている。



■■ ソフト開発のばあい、

 ソフトを開発するのに、どういう作業が必要かっていうことに、矛盾がきてしまっているのよ。
 =まだ標準化が可能な段階ではない。標準を決めるための戦略を考える段階。

 その1つが、O/Rマッピングなんだけど、それを、単に、O/Rマッピングツールを使えば解決しますよ。っていうことに、「しちゃってるのよ!」

 ソフト業界っていうのは、そういう業界なのね。CRMを行うにはCRMソフトを導入すればできるのよ。ERPをするには、ERPソフトを導入すれば。。テストの品質を上げるにはJunitで、生産性をあげるにはXPやアジャイルなんでしょう。きっと。

 で、そのソフトを導入すると、どう変わるのよ。。。?
 O/Rマッピングの問題点は、なんで、ツールを導入すると、どうして解決しちゃうわけ?
 まさか、クラスになって、オブジェクト指向にあうから・・とかいったら目からビーム!
 オブジェクト指向とDOA的に行うRDB開発のどこにミスマッチ(インピーダンス)を生じて、それは、なぜ、このツールで解決するのかを説明しなきゃダメでしょ。
 じつは、そうすると、ツール導入しても、これだけでは、解決しないはずなのよ。
 で、それについては、長くなるので、今回は省略(気が向いたら、今度書く)


 なんで、現実的にいうと、ある作業を行うことが、適切かどうか、その作業を積み重ねれば、本当にソフトができるかどうかは、わからない。
 現在は、ある考えでいくと、システムを全部読みきった人が出てきて、その考えに従ってやるか、もしくは、だらだらーと開発して、だらだらーと時間をすごし、だらだらーの品質で、だらだらーっと終わるというかんじ(読みきってない場合、これでいい!という点が分からないので、こうなる)

 なんで、今の段階では、適切な標準化の考え方が見出せない。

 その証拠に、このブログのヒット数がある。テストのときの内容を示したとき、ものすごいヒット数だったんだけど、それは、テスト項目の出し方の標準化がないから、みんな、興味あってみてるんでしょ。もし、標準化できているものなら、そんなの、誰も見ないもん。




 さらにもうひとつ。「仕事の中身を誰もが分かるように」というのは、そんだけ、仕様書を書き込まないといけない。

 昔の仕様書は、こうだったんだけどね。

 今の仕様書は、やる人によって違いが出る。というか、リファクタリングという名のもと、違うことをみとめている。

 つまり、トヨタのカイゼン方式がいいのなら、
   「仕事の中身を誰もが分かるように」標準化しないといけない。

 しかし、今のXPなどの開発方法論を採用すると
   できたものをリファクタリングする。
つまり、いろいろ手を加える余地はある。
   一通りに標準化できない

 っていうことになる。

 はい!トヨタファンの、XP派のあなたが、ここでツッコミを入れるのが目に見えるので、先回りして言ってあげましょう。じゃあ、あなたのやりかたで、上司の人が、「ここのコーディング●●分」と、ぎりぎりの時間を指摘してきたとします。リファクタリングできますか。時間ないんですよ。

 無駄を省くというのは、そこまでいっちゃいます。

 動く、ぎりぎりのライン、かつ1通りの方法をやれる時間しかくれません。それがムダのカットです。その場合、リファクタリングの余地はないです。1通りの時間しかくれてませんから。

 つまり、今の開発論っていうのは、ぎりぎりの時間でやることを想定していない。
 むしろ、人生にゆとりをもっちゃってる。まちがっても、コーディングしてる隣で、ストップウォッチ片手に、時間を計ってるやつはいない(時間の目標や区切り、管理はあるよ。でも、ストップウォッチを持った人はいないでしょ)。

 でも、カイゼンをかけると、ぎりぎりの時間でやることを求められる。ここで、問題が起こる(カンバン方式にも絡んでくるんで、この問題を、ちゃんと説明するのは難しかったりするので、今日は省略)。




 さらに、誰にも分かるほど説明するとなると、膨大な仕様書を作成することになる。

 その作成手順を下手間違うと(手作業でやったりすると)、死ぬほど大変になる。

 今は、その項目抽出、仕様書作成、テストドライバ作成、テストデータ作成、ソースコード作成までの結構多くの部分が、自動生成されたり、何も考えずに機械的に作業できる(というのを、元請けは知らないかもしれんが)。

 ただ、この手始めに行う雛形づくりは、結構試行錯誤だったりして、意外と標準化されない
 (というより、標準時間を求められない。雛形をつくって、あ、このタグが必要ジャン!っていうことで、ソースに追加していく形なので)

 これを全部手作業に置き換えれば、確かに標準化されるが、今度は、莫大な作業になる。
 さらに、その機械化する手順をしらないと、品質も落ちる。

 つーもんだいが、じつはあるのよ。。。


P.S そのうちさあ、自動生成も、自「働」生成(ニンベンのついた自働化)とか、書くようになるのかねえ(^^)v


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

富士通が生産性向上のため、トヨタのカイゼン手法を取り入れ、下請けをカット、作業時間を管理する?

2005-10-28 11:43:06 | Weblog

 日経コンピューター2005年10月31日号(「迫りくるヨドバシ・ショック」の号)16ページのニュース&トレンドに書いてある。富士通の「下請け」、孫請け、さらに下の請けのひとは、チェックかもかも。

 でも、上の記事、意味通じないよねえ。。。うん??

 ということで、まず、上の記事を、できるだけ、文章を引用するカタチ(主観を入れないで)かきます(以下、斜体が引用部分)




■■ 概要
 富士通は10月から、開発パートナー企業の生産性向上の支援に乗り出した。トヨタ式のカイゼン手法を導入してパートナー企業とともに業務のカイゼンを進めるのが骨子だ。

■■ 理由
「このままでは顧客が満足する価格と品質を維持できなくなる」
しかし、いままでは
「パートナー企業には、自助努力を期待するだけだった」
その結果
下請け企業に発注するようになり、品質チェックが甘くなるといった問題が起きるケースがあった
ので??、
それを食い止めようと事業部門単位で支払い単価を上げたいと思っても」
  ↓
支払い単価の決定権がない
そこで、

■■ 結論
下請けを使わなくても利益が出せるように生産性を上げてもらうことが不可欠

■■ 結論を実現するための手法
無駄のないワークスタイルを提示する
具体的には
(1)タバコを吸ったりトイレに行く時間を、1時間半ごとに10分設けた休憩時間に限定した
(2)個別の作業内容にかかった時間や、作業に取り掛かるまでの待ち時間を独自のツールに入力してもらう
(3)待ち時間が減らせるかのアイデアを出し合う
(4)目だった成果を上げたチームは表彰する

以上

興味がある方は、ぜひ、日経コンピューターの記事をみることをお勧めしますです。
1ページしかない記事ですので。




 つーことで、作業管理をするみたい。そうすると、m_pixyさんのブログ「PM見習いの読書日記」でたびたび取り上げられるような、こまかく作業にわけて、時間で管理するっていうのも、今後、どんどんやられていくんだろうね。

 でも、これ、変ですよねー。
 論理つながらない。

 下請けをカットするなら、下請けのやっている仕事を吟味して、カイゼンするのがふつう。
 下請けは、今、ウィリアムのいたずらが、このブログで指摘しているように、各種自動生成ツールを使って、がんがんやっている。
 これを、仕様決定から結びつけることと、テスト仕様をきれいに出すこと、テスト自動化っていう方向に持っていくのが普通で、そうすると、下請けのノウハウを形式知にすることで、まさに、このブログのやってること。

 つまり、生産性を向上するには、

 「ウィリアムのいたずらのブログをみんなよむこと」

 っていうのは、冗談にしても、下請けの仕事のカイゼンということになる。つまり、ボトムイアップ(実際は、ミドルアップダウンという手法)をとる。

 ところが、これって、トヨタのやり方なの?を、押し付けてるだけでしょ。。
 トップダウンで。。
 (トップダウンで、やり方を決めて、ボトムアップでカイゼンしろと??)

 で、そのやり方でやると、なぜ、下請けがいらなくなるの??

下請けを切って、タバコを吸ったりトイレに行く時間を、1時間半ごとに10分設けた休憩時間に限定しても、開発する、ステップ数は、かわんないんだよ!
 (つーか、増える。下請けを切ったら、下請けが使っている独自ツールを使えなくなるので、その部分は、ハンドコーディングになるから。今、ツールはだいたい、10倍程度の生産性があるので、それを、もろに組むことになる)。




 これは、こう解釈しない限り、理解できない。

 下請けは、救いようのない馬鹿である。
 だから、彼らに任せると、品質が低下する。彼らから学ぶことは、何一つない。
 彼らは、品質を低める元凶であり、切るべきだ!!

 だが、パートナーは違う。優秀である。
 きっと、彼らは、日本を代表するトヨタのすばらしいやり方をやれば、カイゼンして、よくなるにちがいない。なので、トヨタのやり方を教えよう。

 つまり、富士通本社は優秀、下請けは馬鹿っていう、エリート意識構造。

 こう考えると理解できる。多分、そうなんだろうな。。




 ところが、これ、下請けが馬鹿か利口かに関係なく、実は、このやり方、問題がある。

 もし、トヨタと富士通が同じ構造なら、トヨタのやり方を、富士通がやれば、成功するかもしんない。でも、まったく違う部分があったら、同じやり方をやっても、うまくいくとは限らない。

 で、同じなのかというと。。。

 「下請けを切る」のであれば、実は大きな違うが出てしまうんだな。
 そのため、作業管理だけでは、むりなのだ。。。




 っていうはなしは、長くなるので、覚えていたら、別の記事で。 


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

Excel仕様書からVBA以外の言語で自動生成するための、タブ区切りファイル作成マクロを作りました

2005-10-27 16:34:19 | Weblog

 前に、Excel仕様書をVBA以外の言語で自動生成プログラムをつくって、自動生成する方法として、タブ区切りファイルにすればいいっていうことを書いたと思います。

 で、そのときだったか、ちがう時だったか(もっと前のブログの気もするんですけど)、Excelから、タブ区切りファイルを作成するマクロを作るって書いた気があるんですけど。。。ちがったかな??

 とにかく、そんな気がしたんで、いま、時間があったから、軽く作ってみました。

 この下に詳しいことが書いてあります(おなじことが、ここにも書いてあります)。




 これをつかって、

(1)あらかじめ、仕様書の置き場を決めておく
(2)その置き場にある仕様書を、「コピーシート一覧」に設定
(3)書き出し先を、「書き出しフォルダ名」に設定

しておいて、

仕様書が修正されるたび(つーかやりたいとき)に、

(4)「コピー実行」をクリックして、コピーしたら、
(5)「書き出し実行」でCSVファイルを保存すれば、

OK

 コピー実行も、書き出し実行も、同一ファイルは、上書きにしてあるので、更新されたら、そのファイルを生かして、シート内にコピー、タブ区切りで書き出すようにできてます。




 いま、ちょこっとつくって、ちゃんとテストしてないので、バグとかあるかもしれません。ごめんなさい。フリーソフトを作るというよりか、ブログの延長として作っているので。
 それと、エラー処理は、ちゃんとやってません。

 今度、もちょっとちゃんとして、MOUGとかに、出したいと思います。

 とはいえ、一応使えるので、どーぞ。

 あと、この逆で、テキストファイルから、Excelが操作できれば、VBAがわかんなくても、ほかの言語で対応できるんだけどね。それよりも、自動生成プログラムを実際に作ってみせると。。。商売あがったりになったりして(>_<!)





 では、以下、今回作ったものについてです。
 
Excelからタブ区切りファイル作成

■■ 内容
このブックの「操作画面」シート以外のシートがあったとき、
そのシートをタブ区切りファイル形式にして、保存します。

■■ ダウンロードと実行

(1)下のところをクリックして、ダウンロードしてください
 makeTabFile.lzh

(2)lhaで圧縮されているので、解凍してください
  makeTabFile.xlsが現れます

(3)それを実行してください。
 当然マクロがありますので、マクロを有効にしてください
 なお、XPの場合、証明書がどーとかこーとかといわれますので、
 てきとーにやってください(証明書は、はいってないです)

■■操作方法

<ふだん、ちょっと使う場合>
(1)このブックに、CSVファイルで保存したいシートをコピーします。

(2)「書き出しフォルダ名」の下のセル(B18)に、書き出し先のパスを指定します
 現在、Excelファイルがあるところのフォルダになっていると思います。
 変えたければ、修正してください。
 なお、ここになにも入れないと、カレントになります
 (カレントパスは、Windowsのバージョンによって異なる)

(3)「書き出し実行」ボタンをクリックします。
 そうすると、「書き出しフォルダ名」で指定したパスの下に、
 シート名.txtのファイル名で、タブ区切りファイルを書き出します。
 同一名のシート名.txtがあった場合、上書きします

------

<繰り返し使う場合>
(1)コピーする対象シートを設定します
 コピーシート一覧の「ファイルパス」に、ファイル名(フルパスで)を指定し、
シート名に、そのファイルの中で、コピーしたいシートを指定します。
 ファイル名が指定されていて、シート名の指定がない場合、全シートをコピーします
 E5以外で、ファイルパスの指定がない場合、直前のファイルから探します。
 E5のファイル名に指定がないのはエラーです。

 E5以下、E桁を選択して、「ファイル参照」ボタンをクリックすると、ダイアログから
ファイルの指定ができます(E桁以外ではできません)。

(2)コピーシート一覧を書き終えたら、「コピー実行」ボタンをクリックします
 このシートに、コピーシート一覧であったファイルをコピーします。
 同一名のシートがあった場合、前のシートを削除してコピーします。

(3)「書き出しフォルダ名」の下のセル(B18)に、書き出し先のパスを指定します
 現在、Excelファイルがあるところのフォルダになっていると思います。
 変えたければ、修正してください。
 なお、ここになにも入れないと、カレントになります
 (カレントパスは、Windowsのバージョンによって異なる)

(4)「書き出し実行」ボタンをクリックします。
 そうすると、「書き出しフォルダ名」で指定したパスの下に、
 シート名.txtのファイル名で、タブ区切りファイルを書き出します。
 同一名のシート名.txtがあった場合、上書きします



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

「急成長する楽天とトヨタに共通点」という日経情報ストラテジーの記事

2005-10-27 11:28:48 | Weblog

 日経情報ストラテジーの記事に、「急成長する楽天とトヨタに共通点」という言葉があります。

 ちなみに、この共通点が、「日本の現場力」っていうことで、総力特集になっています。

 もちろん、楽天を持ち上げていますが。。。。

 このとき、一緒に出たのが、同じ日経BP社から出している、「市場の期待に焦る楽天、裏切られたTBS 深まる溝、徹底抗戦の様相」。この記事で、楽天の成長は、現場力でなく(ケンコーコムの人の発言として)「手数料を上げることで成長を維持した」ときっぱりと切り捨てた。


 そのあとの、週刊プレーボーイ45号(10月25日発売)の、「三木谷TVって、たぶん絶対つまんない」で、楽天の問題をぼろぼろに指摘され、現場力どころではない会社の実態が指摘された。

 さらに輪をかけて、急成長どころか。。。
 まだ雑誌をみてないんだけど、こんな見出しすら。。週刊新潮(11/3)
「倒産予想ソフト」に危ない会社と診断されちゃった「楽天」

 つーことで、日経情報ストラテジーの内容、一ヶ月ももたずに、まったく否定されてしまったわけだが、どーして日経情報ストラテジーは、わざわざ楽天を持ってきたんだろう??
 取材して、本気で「現場力」だと思ったのかなあ。。。だとしたら変だよねえ。。。週プレと、だいたい同じ時期に取材してるわけだし。。。

 とにかくいえることは、この記事の信憑性は、なくなったということだ。

 でも、会社のお偉いさんたちは、週刊プレーボーイなんてみないから、きっと日経情報ストラテジーのほうをみて、「やっぱ現場だよ!」とかいって、拍車をかけるから。。。
 結局日経ビジネスの記事になっている(10月25日号)ように「社員が壊れる」?


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

プログラムは適当なところで、必ず保存しよう!上書きしてなくすと、かなしい。。

2005-10-26 17:09:09 | Weblog

 今、時間があったので、この前書いた、CSVファイルの書き出しというのを、つくってます。

 こんなかんじ


 で、書き出し実行ボタンが押されたときの処理

Sheets(i).Activate  '// 対象のシートをひらく
Call ActiveWorkbook.SaveAs(savename, xlText)

 下の行が、実際の書き出し。でも、こうやると、最後のsavenameが、このマクロファイル自体のファイル名になってしまいます。それは、まずいです。

 そこで、はじめに、そのマクロファイルの名前を取ってきて、booknameに入れて

Call ActiveWorkbook.SaveAs(bookname)

 とかきました。2番目の引数(保存するファイルの型)の指定方法がわからなかったので、
 何も入れませんでした。

 たぶん、デフォルトは、Excelフォーマットでしょうと思って。

 実行しました。
 終了しました。

 ファイルをとじました。保存しないで

 開いてみました。。。

 がーん(>_<!)

 2番目の引数は、デフォルトは、前に設定してあるもののようです。
 直前の設定は、Call ActiveWorkbook.SaveAs(savename, xlText)
 つまり、テキストファイル指定です。

 そうです、このマクロプログラムを、テキストファイル保存してしまったのです。
 当然、マクロなんて、残ってません。

 きれいさっぱり。

 悲しいです。

 書き直しです。

 みなさんは、こんなことのないように、てきとうなところで、バックアップしましょう(>_<!)

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

楽天証券のシステム障害の問題、Sunのサーバーと絡めて論じられちゃってるね。

2005-10-26 14:35:58 | Weblog

 楽天証券のシステム障害が立て続けに起きて、それについて、松井証券社長が

前日24日に行われた松井証券の決算発表の席上で同社の松井道夫社長が楽天証券のシステム障害が続いていることはオンライン証券への風評被害につながるものとして「憤りを感じる」と発言した

のようなコメントを出していることは、ニュースにでてるけど、

YAHOOの掲示板を見ると、楽天証券が、Sunのマシンにリプレースして、インタビューを受けちゃってることから(ここ)、Sunがらみで、議論しちゃってる人もいるね(つまり、サーバーをSunにリプレースしたから、こんな問題が起きた)。

ちなみに、その意見は、ここ

 本当にSunのサーバーに変えたから?っていうのは、わかんないけど、

 Sunのイメージダウンに、つながっちゃうかも。。。

 最近の証券業のトランザクションの増え方は、異常だからねー。(たしかに、1日の売買量、5年前に比べ、たった10倍ジャン!っておもうかも知んないけど、5年前は、1株400円ぐらいが最低売買単位なんていう株(=ライブドア)がなかった。こんな株を1株ずつ買われている人も合わせて10倍って言ったら。。。)

 ただ、楽天証券に入れても、マーケットスピードが入れないということなので、外部ネットワークというよりか、マーケットスピード(=Sunのマシンを使っている)のマシンかアプリ(HTTPサーバーふくむ)の問題??

 え、Sunではなく、楽天のイメージはって?

 もうTBS買収した時点で、イメージダウンっす。
 システムダウンより、イメージダウンっすよ(よくわかんない??)


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

10月26日のメルマガもWindows Media DRMのはなし

2005-10-26 13:18:28 | コピーされるほど儲かるシステム!

 10月26日、「コピーされるほど儲かるシステム!開発日記」第24号を出しました。

 内容は、WindowsのMedia Playerなんかで使えるDRM(著作権管理)の
Windows Media DRMについての仕組みなどについてです

 このブログに書いていない内容なので、
 もし、見たい人は、バックナンバー(ここ)で見てください。
 。。。いないとおもうけど!(^^;)

 次回から、開発の話に戻る予定です。
 外部設計の手順についてからになると思います。

ということで、あとは決り文句。





 24号のメルマガについての、感想などはここの「コメント」にどうぞ!

 メールと、ウィリアムのいたずら自身のブログについては、このブログの
「コピーされるほど儲かるシステム!開発日記」へのメールについて
http://blog.goo.ne.jp/xmldtp/e/a58b79b40b1148c2f744556e27b76a79
を参称してください


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

CSVに落としてしまえば、Javaでも自動生成プログラムを作れることはあまり知られていない。

2005-10-25 17:02:29 | 開発ネタ

 さっきの話のつづき。
 しかし、タブ区切りで、仕様書を書き出し(CSVと書いたのは、タイトル50字の制約のため、タブ区切りのほうがいい)ちゃえば、あと自動生成プログラム自体は、JavaでもC++でもOKです。
 ということで、

・仕様書をタブ区切りに落とす
・雛形を作成する。

 ということができれば、あとはORマッピングだろうが、テストデータ作成だろうが、スタブ作成、ドライバ作成だろうが(雛形さえかければ)自由にプログラムを自動生成できます。
(CSVでなくても、XMLでもできるが、そうしないのは、最後に理由を書く)





 で、Javaでそれをつくるとすると、昨日のブログで

■■ 1.まず雛形を書きます
 これは、おなじ。ただし、タグについては、CELLタグ、GYOタグなど、Excelの場合と同じようにする。

■■ 2.データを作成します。
Excelに書いた場合、それをタブ区切りファイルに書き出します。
 XMLの場合、XSLTを使ったりして、タブ区切りファイルに書き出します。

■■ 3.プログラムを作成する
 これは、Excel VBAでなくても、JavaでもOKです。
 はじめに、データを読んでしまいます。
 これは、ファイル全体を読んできたら、
 まず、改行(\n)でsplitします。
  そのsplitされた1行1行を、タブ(\t)でsplitすると、セルがでてきます。
  解釈の方法などは、昨日と同じです。




 つーことで、タブ区切りファイルにしてしまえば、Javaで、全部の世界を構築できます(C++でも)

 ただし、前の例で、extendsのところ、H2のセルで、文字連結していたように、仕様書の言葉そのままを、入れるのでなければ、その例のようにワークエリアを作って、そこで文字列操作(例の場合はextendsという言葉を足してしている)を行い、その内容を、CSVファイルに書き出します。
 こうしないと、Javaでこの部分を操作しなくてはならなくなり、汎用性にかけます。




 で、XMLにしなかった理由は、XMLだと、DOMの操作部分で(\nの文字が1つのノードになってしまったりして)急に難易度が上がるためです。

 XMLを使わない、今回の内容なら、新人研修でもできるでしょ!




 昨日のブログ、見てる人が、それほど多くなかったので(212ip741位)、とりあえず、Accessでアジャイルの前に、自動生成ネタを披露してみました。Accessでアジャイルは、気が向いたら書くかも。。

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

状態遷移図がある場合、アクティビティ図を見る前に、みたほうがわかりやすそうよ。

2005-10-25 14:58:28 | 開発ネタ

 今、あるドキュメントをアクティビティ図に起こしていて、気づいたこと。
 状態遷移があったら、なにはなくても、状態遷移をみよう!

 アクティビティが、そりゃー、20、30くらいなら、おえるけど、

 それ以上、50以上ある場合、
・まず、遷移を先に見て、
・その遷移の、あるステータスにおける、
     アクティビティは何?
     それは誰がやるの?

ってみたほうが、わかりやすい。

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

Excel仕様書だと、O/Rマッピングもテストデータも同じ自動生成プログラムで作成可は知られてるが

2005-10-25 13:57:20 | 開発ネタ

 昨日の自動生成プログラムの話の続きで、Excelで仕様書を作成した場合、雛形さえ変えれば、O/Rマッピングだろうがテストデータだろうが、ドライバだろうが、同じ自動生成プログラム(VBA)で作成可能ってことは、よく知られていると思います。

 このため、自動生成するときは、Excelの仕様書にしてね!という形になってますが。。。

 今日は、その話。




 昨日の自動生成プログラムの話で、
 「雛形を作成する」と書きましたが、その雛形のタグを、こんな風にしちゃいます
 (昨日のブログと見比べると、差がわかります。基本的に同じソース)

<cell pos=B3 /> class <cell pos = D2 /> <cell pos = H2 /> <cell pos = H3 />
<cell pos = H4 />
{
<for>
/*
* <gyo strpos=A10><p>
* <gyo strpos=D10>
* @param val 処理に関する引数のすべてがセットされている
* @return <gyo strpos=E10>
*
*/
<gyo strpos=C10 /> <gyo strpos=B10>(HashMap val)
{
/*
    ここに、プログラムをかいてね!
*/
return NULL;
}
</for>
}

このとき、データは、こんなかんじ


 このようにすると、
 cellタグは、 POSで指定されたセルの値を読み込み
 gyoタグは、strposではじめられたところを1行目として、データ終わりまで、1行づつ書き出す

とすれば、昨日示した自動生成プログラム1本だけで、

あとは雛形だけ作れば、ソースも仕様書も、てきとーに変えると、いろんなものがつくれる

テーブルの仕様書から、DBアクセスメソッド(SQL生成部分)を書き出すとか
→このときは、SQL生成部分のアクセスするクラスの雛形を書く

テーブルの仕様書から、テストデータ生成のSQLを書き出すとか
→このときは、テストデータのSQLの雛形を書く

ドライバやメソッドの自動生成、値の置き換えその他いろいろできる。
 もし、ソースを変えたければ、雛形を変えればいい、
 仕様書が変わったときも、雛形のタグの値を修正するだけ。





 実際には、2段に1つのことが書いてある場合の、行飛ばしとか、行方向でなく、列方向に伸びている場合とか、条件によって、書き出す内容を変えるとか、値でなく、ファイル名が書かれてあって、ファイルの中身を読み込んで書き出すとか、いろいろあるものの、基本的なプログラムは、これっす。

 で、実際に使う場合は、このエンジン部分は、コピーして、使いやすいように(いろんなことを考えなくても自動生成できるように)プロジェクトごとにカスタマイズする形になる。




 なので、Excelの仕様書だと、あとは雛形を入れ替えるだけで便利、O/Rマッピングだの、テストツールだのといって、いろんなツールの使い方を覚えたり、修正できないくらい読めないソースを書くこともない。



 と、いうのは、よく知られているが。。。



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

ソース自動生成は、可読性から、自分で雛形ソースを作成・修正できる方向へ。その方法。

2005-10-24 16:54:36 | 開発ネタ

 まえに、たしか、「ソースコード自動生成技術の最新状況 できるだけコードを書かないという発想」というお話を、このブログで取り上げた気がしますが、そこで書かなかった、「StrutsやO/Rマッピングの自動生成を自分で作る場合、最近は、雛形ソースを自分で作り、雛形ソースの修正(入れ替え)ができるように作っている」というお話と、そのための方法について

 「ソースコード自動生成技術の最新状況 できるだけコードを書かないという発想」は、自動生成が、最近は、可動性のあるソースコードを生成し、あとで修正できるようになったという話が書いています。しかし、今は、可読性のあるソースコードを生成することはもちろんなのですが、そもそも、生成するソースコードの雛形を自分で、作製できるようにすると思います。

 昨日のブログで

 こういう書き換えをしたいので、O/Rマッピングツールより、自分たちで自動生成を作ったりする。どんなかんじで、自動生成ツールをつくるかは、今度気が向いたときに書く。

 と書きましたが、つまり、ツールを使って、自動的に生成されると、ログを入れたり、assertを入れたりする場所を、自由に設定できない。。。よねえ、たしか。。。また、構造が変わったときの対策などについても、書きようがないので、自由に設定できるようにするため、雛形を作成して、大量生産するという方法がとられます。



 
 で、その方法についてです。

■■ 1.まず、雛形を書きます。
 雛形で、値が直接入るところは、そこに、タグかなんかを入れておき、
 データがレコードになっていて、ループするところは、
 <for>
</for>
 みたいなかんじでかきます。

 こんなかんじやね

<public_private /> class <classname /> <extends /> <impliment />
<exception />
{
<for>
/*
* <jpmethod>\<p\>
* <setumei>
* @param val 処理に関する引数のすべてがセットされている
* @return <ret>
*
*/
<kata /> <method>(HashMap val)
{
/*
    ここに、プログラムをかいてね!
*/
return NULL;
}
</for>
}

別にタグは<>で囲うんじゃなくって、&;でもなんでもいいよ。
(実際には半角。半角で書くと、ブログがおかしくなるので、今回は全角にしてる)

とにかく抜き出せればいい。そのとき、<や>という文字を雛形中に来た場合、
(データなら問題ない)どうするかを決めておく。
上の例では、\を前に付けている。

これを、ファイルまたは、Excelのシートの中に入れる。

■■ 2.データを作成します。
 Excelに書いて送っていう感じが多いと思う。
 XMLでもいいよ。

上の例だと、Excelで、1シート中に、1クラス名と、複数メソッド名(1行1メソッド分)がある感じになる。

■■ 3.プログラムを作成する
 1.の雛形を読み込み、2のデータを読み込み、書き出す。
 このとき、全データを読み込むけど、頭から1文字ずつ読んでいくと、やりやすい。

 プログラム的には、
● タグの開始(<) がきたら
   前の文字がエスケープでなかったら
    タグのバッファをからにして、タグSWをON
   前の文字がエスケープなら、
    そのもじ(<)を書く

● タグの終了(>) がきたら
   前の文字がエスケープでなかったら
    タグSWをOFFにして、タグバッファの内容に基づき処理*1
   前の文字がエスケープなら、
    そのもじ(>)を書く

 ●エスケープがきたら
   なにもしない

 ●それ以外
   タグSW_ON なら、タグバッファに文字追加
   タグSW_OFF なら、出力する

*1の処理
 ●ループ開始(for)
  この位置(forループ開始位置)を保存しておき、覚える

 ●ループ終了(/for)
  データが終わっているか?
    終わっていたら、次へ
    終わっていなかったら、
      参照データ位置(行)を1個上げて、forループ開始位置まで戻る
    
 ●その他
    値をデータから取り出し、それを書き出す

こんな感じになります。




 実際の上の例では、引数1つなので、話は簡単なのですが、
 普通は、引数たくさんだったりします。

 その場合、1シートにメソッド1個分を書いてしまい
 (引数が行になる)雛形部分は、1メソッド分をつくり、
 この自動生成では、1ファイル1メソッドとして

 そのあとで、全部のファイルをつなげて、1クラスを作る自動生成を
 走らせる

 など、もちょっと、複雑です。

 ただ、基本的には、このように、雛形にタグを入れて、データをつくり、雛形をしらべてタグのところに値を入れるプログラムを作成するという流れはおなじだと思います。




 今日は、ウィリアムのいたずらのお仕事紹介でした。
 (こんな仕事をするのが、私のお仕事でーす。
  もちろん、こんなに単純ではない。この程度は、ノウハウにも入らない程度だ)。


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