ラベル UML の投稿を表示しています。 すべての投稿を表示
ラベル UML の投稿を表示しています。 すべての投稿を表示

2007年7月16日月曜日

設計が分からない-1.

 たった今、北海道でも揺れました(汗
 新潟には仕事での交流がある方もいらっしゃるので心配.
 無事である事を祈るばかりで.


 相変わらず設計の勉強がまったく進みません orz
 ぜんっぜん分かりませんから.
 まぁ、これから参考資料なり研修なりを基に本格的に勉強するので、まだ出来なくて当たり前なのかも知れませんが、余りにも分からなすぎて怖い.

 例えば、以下の

・ボロバシカメラは個人で経営する家電販売店である
・店員はオーナー一人のみであり、人件費はかかっていない
・POS購入費用が無く、ソロバンと手書き(売上管理台帳)で売り上げ計算を行っている
・商品は在庫を最少数のみ確保し、販売して在庫が無くなりそうな場合に仕入れを行っている
・在庫の管理は在庫管理台帳に記載している
・仕入先は商品により複数存在する
・仕入れ内容は仕入れ管理台帳に記載している
・販売価格は商品の標準価格から値引いて販売する事がある
・一日の販売が終了すると、売上管理台帳を閉めて日の売上集計を行う
・毎月末、月間売り上げを集計する
・システム化にあたり、(こっちの都合で)POSでは無くノートPCとバーコードリーダーを使う事にした

 と言う、かなり強引な『こじつけシナリオ』があったとます.
 通常RFP(提案依頼書)を顧客に書いてもらいますが、架空のお話なのでそんなものありませんw
 純粋に、今手作業でやっている事をシステム化したいと言う案件だとしましょう.
 それでは上記内容に沿ってシステム設計を行います.


 …で、どっから取り掛かればいいのさ? orz


 ええもう、ぶっちゃけこの悲し過ぎる程の初歩段階ですよw
 うーん.
 ちょっと設計と言うモノの流れを自分なりに考えてみよう.

 01. RFPを熟読
 02. 業務フロー作成
 03. ユースケース図作成
 04. 1~3を元に顧客との打ち合わせ
 05. 必要に応じて1~3を繰り返す
 06. ER分析(エンティティを見つけ出す)
 07. ER図(ERD)作成
 08. 大まかなオブジェクト図(クラス図)を作成(クラスを見つけ出す)
 09. 6~8を元に顧客との打ち合わせ
 10. クラス図作成
 11. シーケンス図/コラボレーション図作成
 ここまでが分析か?
 12. ユースケース図/アクティビティ図以外のUMLダイアグラムを駆使
 13. データ設計(一部ERDを基に作成)
 14. 画面設計
 15. 詳細クラス図を基に機能(関数)設計
 ここまでが設計か?

 と言う感じだろうか?
 …適切なのかどうかすら不明だ orz
 さっさと参考資料でも買い漁らないと駄目ですね.
 プログラムだと実際にやって見れば、合ってるのか間違っているのか分かりますが、分析/設計はこの辺の判断が自分では出来ないので厄介です.
 と言う事で、現在amazonでUML/システム設計の書籍を模索中.

 とは言え、探してる間にボーっとしてるのもなんなので、ためしに基本中の基本、業務フロー図でも書いてみましょうか.
 Excelで業務フロー作るの面倒だから、アクティビティダイアグラムを代用です.

 ※画像はJUDE Community

 …どこからどこまで一つのダイアグラムに書けばいいのか分からない orz
 資料が整うまで勉強しても無駄な気がしてきましたw
 と言いますか、正直まともに設計出来る様に成れる気が一切しませんから.

 諦めてJavaの勉強優先しようかなと葛藤中.

2007年7月7日土曜日

UMLモデリングツール.

 先日書いた様にこれからUMLの勉強をしなければなりません.
 …したくは無いんですけどw

 と言う事で勉強用のUMLモデリングツールを探しましたが…使いづらい orz
 そもそもUMLモデリングツールってこんなもんなんですかねぇ?
 皆さんこんなに使い難いものを使って、あれだけのダイアグラムを書いている訳ですね.
 逆に「すごい!」と思わずには居られません.
 まぁ、会社のエンジニアの人が使っている某商用モデリングツールなら、使い易いのかもしれませんが.

 しかし勉強のために商用の物を使うほど懐具合に余裕がある訳では無いので、非商用のモデリングツールを色々と触ってみました.

 ・JUDE
  ※注 現在何故か上記サイトはつながりません
 ・Poseidon
 ・SystemDirector Application Modeler

 それぞれ特徴がありますが、どれも一通り必要なダイアグラムを書けるものです.
 一部書けないものや、機能上一部おかしいものもあります.

 ・ArgoUML
 ・1st Modeller
 …etc…

 ArgoUMLはSequenceダイアグラムの挙動がかなり変なので致命的ですが、その他の機能は結構使えます.
 クラス図なんかを書いた際には、ソースの雛型まで生成してくれます.

 PoseidonはそのArgoUMLを元に作成されたらしいのですが、実際に触ってみるとかなり違います.
 グラフィック回りが大幅に向上しており、またSequenceダイアグラムもまともに作成可能になっています.
 しかしこのツール、マウスとか図の回りに各種メニューのポップアップが出るんですが、これが逆に邪魔で私はあまり好きになれませんでした.
 ちなみにLinuxで入れてみましたが、一部文字化けしますし、License認証はブラウザ経由で行うんですが、これがまた何故かNetscapeを自動検索して見事に失敗しやがります(「Your default browser cannot be started.」).
 Poseidon本体を起動した後「Edit」→「Settings...」→「Browser」項目でFirefoxなどを指定する事でエラーを解消できますが、エラーを解消出来たとしても開いたページで「This Page No Longer Exists」と出ちゃいます.
 何だかなぁ…ライセンス認証しないと保存も出来ないんですが orz



 JUDE(勉強用に試したのはCommunity版)は国産のUMLモデリングツールなので、情報も豊富ですしコミュニティも充実しています.
 現時点ではこれが最有力候補ですかねぇ.
 なんか、NTTデータでは標準UMLモデリングツールをJUDEにしたらしいですし.
 動作も挙動不審な所はほとんどないですし、ちょっといじればLinuxでも動かす事が可能の様です(上にも書いた様に今サイトつながらないので確認出来ませんでしたが).

 SystemDirector Application Modeler(以下SDAM)はNECが開発・保守しているEclipseプラグインです.
 他にもEclipseプラグインでUMLを作図するものがありますが(EclipseUMLなんか)、今回はSDAMのみ試しました.
 JUDEと比べると使い勝手でちょっと見劣りしてしまう所もありますが(あと、斜線引くと実線と点線の区別がつきにくい気が…)、オブジェクト図も書けるので非常に便利です(SDAMでは「オブジェクト図」と言う名前では無く「インスタンス」と言う名前ですが).
 Eclipseでコード書きつつUMLを確認したり、逆にコード書いててつまった時にクラスダイアグラムを書いてみる、なんて事も簡単に出来てしまう点が一番の魅力かもしれません.
 これも候補のひとつですね.



 まぁ、実際に仕事で使う時には(いつになるか分かりませんが orz)別の商用ツールを使いますので、勉強にどれを使うかそんなに真剣に悩む必要もないんでしょうけど.
 取り敢えずJUDEメイン、SDAMがサブと言うかちょっとだけ書く時に使う事になりそうです.

 それにしてもUMLモデリングツールを選ぶだけで一苦労.
 相変わらずUMLの書き方と言うか考え方が理解不能ですし…あーUMLって奥が深い orz