Skip navigation

 

 ここはとあるソフトハウスの総務部総務課。びぎなちゃんはプログラミング言語のテキストを開きながらPCの画面とにらみっこしています。

   

まにあ
「さっそくコーディングか……まるで達人レベルの開発スタイルやな」

   

びぎな
「びぎなって、そんなに凄いの?」

   

まにあ
「いきなりコーディングできるってことは、頭の中ではソフトが完全に具体化されて仕上がってるってことや。『Hello, World!』ならともかく、初心者が普通にソフト作るのには絶対に向かんと思うけど、びぎなちゃんは出来るんか?」

   

びぎな
「ソフトって、絵を合成するだけのプログラムでしょ。それぐらい、びぎなにもわかってるよ」

   

まにあ
「ほな、ソフトの外見はどんな形してて、ユーザーはどうやって操作して、プログラムはそれをどうやって実現するのか、もう何も考える必要あらへんねやろな」

   

びぎな
「細かいとこは作りながら考えていったら何とかなるよ」

   

まにあ
「アホ。最初にきちんとした完成形のイメージがあらへんで、ソフトが作れるか!」

   

びぎな
「そんなの言ったって、そんな具体的なこと、作ってみないとわからないよ」

   

まにあ
「だからな、そんなのすぐに頭の中に浮かぶんは達人レベルにならんと無理やて言ってるんや。普通の人間は実際にコーディングに入る前にその辺のことをじっくりと考えてから作るんや。びぎなちゃんも頭の中でわからへんとかいっとらんと、順番を踏んで作業として考えていったらそれなりに形になるはずや」

   

びぎな
「順番って?」

   

まにあ
「せやな、最初は要件定義からや。課長はデジカメの背景とイメージキャラの絵を合成したいとか言ってたけど、それやったら漠然としすぎやな。実際にそれをソフトとして使うことになったら、どんな操作性でどんな機能が必要なのか洗い出してみるんや」

   

びぎな
「操作性とか機能とか言われても……」

   

まにあ
「びぎなちゃんもOfficeとかペイントとか使ってるやろ。そういう普段使ってるソフトを参考にしながら、どういう使い方やったら使いやすいとか慣れてるとか、あるいはここはこうならへんと不便やとかいうのあるやろ。そういうのをまとめてソフトに必要な要素というものを考えていくんや」

   

びぎな
「最初に絵を2枚読み込んで、それを1枚に合成してから保存すれば良いのはわかるけど……」

   

まにあ
「じゃ、まずその2枚の絵はユーザーとしてはどうやって読み込ませるんや?」

   

びぎな
「それはソフトが自動的に……」

   

まにあ
「アホ。そりゃ今回一回きり使うだけでええんやったら、ソフトの中にファイル名決め打ちして勝手に読み込むってのもアリやけど、この先、違う絵を使って何度も使いたいとか思った時に、その都度プログラムを書き直すんか?」

   

びぎな
「そんなの面倒くさいよ」

   

まにあ
「せや。ユーザーにとっても使うたびに修正が必要なソフトなんか面倒で使いたくあらへんやろ。こういうのは絵はユーザーが自由に選んで読み込ませられる汎用性が必要なんや」

   

びぎな
「じゃ、ファイルメニューの『開く』を使って……」

   

まにあ
「そりゃ読み込むのが1枚だけやったらそれもええやろうけど、今回作るのは背景の絵とキャラの絵を別々に読み込まなあかんねんで。ま、一番楽に作るんやったらコンソールアプリにしてコマンドラインパラメータでファイル名を指定するというのもあるやろうけど……」

   

びぎな
「楽に作れるんならそれで!」

   

まにあ
「アホ。ユーザーにファイル名手打ちせいっていうんか。それにコンソールアプリなんかで作ったら処理終わるまで何もチェックできへんで。プログラマーは楽かも知れへんけど、ユーザーにとっては不便で仕方があらへん。却下や」

   

びぎな
「じゃ、どうすれば……」

   

まにあ
「別のとこから考えよか。最初に2枚の絵を読み込んだら、それをどうするんや?」

   

びぎな
「合成して……」

   

まにあ
「それは最終段階や。読み込んでいきなり合成してええのか、よう考えや」

   

びぎな
「合成しないの?」

   

まにあ
「ええか? ユーザーも神様やないねやから読み込ませる絵を間違う場合もあるやろし、違う絵に変えたいと思う場合もあるやろ? そういうチェックはせんでええのか?」

   

びぎな
「出来た方がいいと思う」

   

まにあ
「じゃ、どうやってチェックするんや? 絵が正しいかどうかはソフトで勝手に判断できへんで」

   

びぎな
「それはユーザーが見てみないと……」

   

まにあ
「せやったら、読み込んだ絵を画面上に表示できるようにしとく必要があるわな。その都度、表示用のウインドウを開いて確認するって手もあるけど、どうせなら読み込みと同時に表示して、2つ並べて見比べられた方が便利やろ。じゃ、ソフトの画面にはあらかじめ表示用の枠を2つ用意しておいて、絵の読み込みはそれぞれの枠の脇にボタンを付けておいた方が分かりやすいやろ。ま、絵の枠に直接ドラッグ&ドロップするって方法も無いわけでもないけど、それは気が向いたらの追加機能でええわ」

   

びぎな
「ふむふむ」

   

まにあ
「ふむふむやあらへん。自分で考えやな意味あらへんで。他にも絶対に必要な機能があるやろ」

   

びぎな
「合成……」

   

まにあ
「その合成はどうやってするんや?」

   

びぎな
「さあ?」

   

まにあ
「ま、詳しい処理内容は後で詰めるからここで考える必要はあらへんけど、合成の基本は上書きする絵の背景色を抜くことや。その背景色はどうやったらわかる?」

   

びぎな
「ソフトで調べたら……」

   

まにあ
「そりゃ、絵によったら一番面積広いのが背景領域やとかいう場合もあるやろうし、画像の端っこは背景やという場合も多いやろうけど、そんなの保障されてへんで。キャラクターの顔がおもいっきし大きいとか、キャラクターの絵が画像の端っこで切れてる場合もあるやろ。背景色を固定で決めとくのもあるけど、違う色の絵が使えへんから意味あらへん」

   

びぎな
「やっぱり、人が教えてやらないといけないの?」

   

まにあ
「それが確実やな。せやから、ユーザーが背景色を指定する機能も必要や」

   

びぎな
「それから絵を合成して保存すればいいのね」

   

まにあ
「合成した結果は確認せんでええんか?」

   

びぎな
「じゃ、合成した絵を表示する枠もいるの?」

   

まにあ
「ま、合成結果は一発確認したら良いだけやから、別のウインドウをポップアップで出すって方法とか、最初の2枚のどちらかの枠に上書きするって方法もあるし、このへんは画面設計の問題やから後でじっくり考えたらええ。他には使える画像の形式とかサイズとかも必要やけど、.NET環境やったらBMPとかJPGとかの代表的な画像形式はデフォルトでサポートされてるから、その範囲で使えるぐらいでええやろ。画像のサイズも制限付けたら不自由なだけやし、2枚のサイズが違ったら背景の方のサイズに合わせて、キャラクターの絵はセンタリングして合成することにするか」

   

びぎな
「これでお終い?」

   

まにあ
「ま、大雑把に基本事項を挙げただけやけどな。業務で発注受けたソフトとかやったら、最初に発注元の要望をまとめてソフトに必要な事項を明確にしとかなあかんけど、自分で作るソフトも基本は同じや。最初にどんなソフトを作りたいのか明確化しておくために、必要な機能や特徴をまとめておくと、後で意味不明のソフトにしあがったりはせえへんようになるで。ま、達人レベルには不要やけどな」

   

びぎな
「びぎなも達人になりたい」

   

まにあ
「達人もこういう地道な作業の経験を数こなして、経験値を上げてスキルアップした結果なんや。びぎなちゃんも楽しようとは思わんと、今のところ、要件定義としてちゃんとまとめておきや。業務書類やあらへんから簡単なメモ書き程度でええけど」

   
 

(つづく)

   
 
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。