[cppll:9376] Re: [御意見拝聴] UML をソフトの基本設計で使いますか?
こんにちは,寺田です.
#あまり議論を全部追えていないので外しているかもしれませんが,,,
小林@那須 さん:
> 私には STL/C++ プログラム開発では、UML は清書ツールとしてしか使えない。
> ソフトの基本設計の段階では UML を使えないとしか思えません。皆様はどう
> 思われるでしょうか
「ソフトの基本設計の段階では」と書かれていますが,コード断片の方が分かり
やすいと仰っているところから考えて,
「ソフトの詳細設計の段階では UML は使えない」
~~~~~~~~
ではないでしょうか?
私は STL コンテナの類を UML で書いたことは(殆ど)ありません.
UML の段階では単に
A <>-----(*) B
と書きます.これを実装する段階で初めて,
1. class A { std::vector<B> data ; } ;
2. class A { std::list<B> data ; } ;
3. class A { std::set<B> data ; } ;
4. ...
などという選択肢から選択します.
(場合によっては UML の段階で関連に {ordered} という制約をつけることはあ
ります.その場合は vector か list で実装します)
私の考えでは,UML は STL コンテナが登場する以前の段階でのみ使用すればよ
いと思っています.最初はボンヤリとした設計のアイディアをUMLで紙に書きな
ぐりながら検討しますが,STLコンテナ云々が検討項目にあがるくらいまで設計
が煮詰まってきた段階で,UMLからコーディングに移りますね.
ですから,
> 私には STL/C++ の表現力・記述力が強力すぎて、UML が追従できていないよ
> うに感じられます。クラス図や、コラボレーション図を書いても、自分自身に
> とっては STL/C++ のコード断片と同等の表現力しか与えられないと感じます。
UML は表現力が弱いからこそ強力なのではないでしょうか.
余計な実装の詳細を隠して核心だけを伝えてくれますから.
以上です.
--
Y.Terada <terada@...>
#あまり議論を全部追えていないので外しているかもしれませんが,,,
小林@那須 さん:
> 私には STL/C++ プログラム開発では、UML は清書ツールとしてしか使えない。
> ソフトの基本設計の段階では UML を使えないとしか思えません。皆様はどう
> 思われるでしょうか
「ソフトの基本設計の段階では」と書かれていますが,コード断片の方が分かり
やすいと仰っているところから考えて,
「ソフトの詳細設計の段階では UML は使えない」
~~~~~~~~
ではないでしょうか?
私は STL コンテナの類を UML で書いたことは(殆ど)ありません.
UML の段階では単に
A <>-----(*) B
と書きます.これを実装する段階で初めて,
1. class A { std::vector<B> data ; } ;
2. class A { std::list<B> data ; } ;
3. class A { std::set<B> data ; } ;
4. ...
などという選択肢から選択します.
(場合によっては UML の段階で関連に {ordered} という制約をつけることはあ
ります.その場合は vector か list で実装します)
私の考えでは,UML は STL コンテナが登場する以前の段階でのみ使用すればよ
いと思っています.最初はボンヤリとした設計のアイディアをUMLで紙に書きな
ぐりながら検討しますが,STLコンテナ云々が検討項目にあがるくらいまで設計
が煮詰まってきた段階で,UMLからコーディングに移りますね.
ですから,
> 私には STL/C++ の表現力・記述力が強力すぎて、UML が追従できていないよ
> うに感じられます。クラス図や、コラボレーション図を書いても、自分自身に
> とっては STL/C++ のコード断片と同等の表現力しか与えられないと感じます。
UML は表現力が弱いからこそ強力なのではないでしょうか.
余計な実装の詳細を隠して核心だけを伝えてくれますから.
以上です.
--
Y.Terada <terada@...>
▼ スレッド
- 9357: [御意見拝聴] UML をソフトの基本設計で使いますか? ょうか。使われるとしたらどのように使わ kenji
- └9358: こちら↓でポストするほうがベストかと存じます。 UML-jp ML http://www.tech-arts.co.jp/oo/mail.html □■ Wraith the Trickster
- └9359: UML の使い方は、言語、分野により変わってくると思います。JAVA と C++ で は UML の使いか方も変 kenji
- └9360: ちっす。 書いたソースコードから、Doxygenなんかを使って、コラボレーション図を出 して、見 Shin'ya MORINO
- └9361: UML では、記号のフォーマットや意味が不完全にしか統一されていないと思い ます。教科書によ kenji
- ├9362: ちわ。 Doxygenの生成する絵では、コラボレーション図と書いてありますが、正確に こういうや Shin'ya MORINO
- ├9363: 本によって細かな違いが多いのはそのとおりですね。準拠している UML のバー ジョンも違って boochang
- │└9364: 見て来ました。納得できました。クラス図ならば、クラス宣言と、クラス・ポ インタ・メンバ kenji
- │ ├9365: どれがメンバ変数であるか)に寄りすぎているから、 コードのほうがわかりやすい、ということ HIDAKA Takahiro
- │ ├9373: 綺麗には、行かないんですよね。 全部のコードを、絵に開いても、頭にはいらないっす。 せめ Shin'ya MORINO
- │ ├9374: 僕が以前に流したメールですが、メンバー変数の表現だけでもこれだけの表現が 考えられます Shibukawa Yoshiki
- │ └9376: 「ソフトの基本設計の段階では」と書かれていますが,コード断片の方が分かり やすいと仰って Y.Terada
- │ └9377: 纏めレスで失礼しました。 ひだかさん> 個人的な趣味の問題だとは思いますが、小林さんの考 kenji
- └9366: ユースケース(の書き方は)は別にメモでも何でも構わないと思います。 開発対象のシステム(ソ Hidehiko AKASAKA
- ├9367: たしかに、クラスを関連付けするのはポインタとは限りません。しかし、分析 の段階では、何 boochang
- └9375: 赤坂さんのように UML を使いこなしていらっしゃる方の意見が聞けて喜んでいます。 テストを kenji
- └9378: いいえ、私は未だUMLに弄ばれています。(C++も同様です(^^;;) それ自体は悪いことではないですよ Hidehiko AKASAKA