
C++でのプログラミングしています。
UMLのクラス図を描く場合、main()も「クラスとして」含むんですか?
main()の中ではオブジェクトを順番に作って実行させているだけです。
main()自体はクラスを持っていません。
自分の考えとしては、main()は「クラスではない」ので
含めるのはおかしいとは思っているのですが
含めない場合はどのように関連付けていけばいいのか分かりません。
例えば、main()の中に:
int main(int argc, char **argv)
{
MainWindow mWindow;
GraphWidget widget(&mWindow);
AnalogClock clock;
clock.setGraphWidget(&widget);
mWindow.setCentralWidget(&widget);
mWindow.show();
return app.exec();
}
というのがあったとしたら、
クラス間の関連性はどう示せばよいのでしょうか?
特にクラスAnalogClockはmain()でしか呼ばれていませんので
main()がクラスとして含まれないなら描きようがないです。
(ちなみに上のコードは単なる例ですから、理解できなくても心配いりません)
どうかよろしくお願いします。
No.5ベストアンサー
- 回答日時:
「いいえ」に近いと回答しておきましょう。
そもそも、UMLはC++言語のソースの意味を
不正確に一般化できるだけです。
これはC++言語ソースからUMLらしきものは
記述できるが、UMLからソースを再現できない
点からも明らかです。いずれにしても
main()にかかわらず様々な点で記述不能な場面
に遭遇します。
私見では「UMLは、不正確だが無いよりはましと思える、
ある瞬間のクラス間の関連が記述できる方法」
と考えたほうが良いと考えています。
UMLで書けなければ人間語で書きましょう。
ありがとうございます。
私自身も「いいえ」という答えを出したのですが
いまいち「なぜ?」の部分が引っ掛かっていました。しかし、
「C++言語ソースからUMLらしきものは記述できるが、
UMLからソースを再現できない」
を読んで納得しました。
肝心のUMLの方はmain()なしで
思ったよりもうまくまとめることが出来ました。
No.4
- 回答日時:
No.
UMLには複数のダイアグラムが定義されており、
クラス図のみで全てを表現することは想定されていません。
クラス間の静的な関係を表現するのがクラス図でありmainはここでは関係ありません。
MainWindow - GraphWidget - AnalogClock
というクラス間の依存関係/関連性が表現できれば十分と思います。
呼び出し順などについて言及するのであれば、私なら、
別途シーケンス図にでも「OS」外部エンティティなどからの生成/要求として表現します。
(抽象度的にmain自体の意味は薄いので「初期化で何が行われるか」が中心ですが)
# そして、多分ANo1さんの意見と同じではないかと。
ありがとうございます。
実はあれから回答が無かったので自己解決してしまいました。
私自身の出した答えも"No."でした。
もう少し早く回答してほしかったですね。
あと、本末転倒であるかどうかなど
この回答にはまっっったく関係ない蛇足です。
これは疑う余地は無いでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# プログラミングの授業のペーパーテスト 実行結果を答えろ #include int x[ ] = {1 3 2022/06/16 20:08
- C言語・C++・C# プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = { 1 2022/06/16 21:49
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
女子高に通ってます。 私のクラ...
-
恋愛
-
「隣の芝生は青く見える」現象...
-
小学4年の頃、好きな同級生にス...
-
テキストエディタ作成 (検索...
-
JDBCで複数のクラスファイルを...
-
そんなにお金がなくても年に1度...
-
Lsit<LabelValueBean>について
-
スペイン語で「少人数指導」は...
-
同じクラスにならない確率を教...
-
クラスに尽力するためリーダー...
-
リアル世界三大贅沢とは?
-
定数はどこでまとめますか?
-
ギガスイッチについて
-
ネスカフェ エクセラ と UCCク...
-
JavaからSQLサーバのViewにアク...
-
シングルページでのカレント表...
-
Android/コンポーネントとクラ...
-
JAVAにおけるパッケージとライ...
-
C# 親と子になぜ分ける?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同じクラスにならない確率を教...
-
配列の重複する値とその個数を...
-
java eclipse 型に解決できません
-
3年間同じクラスになる確率
-
どこからも呼ばれていない無意...
-
共通で使う関数を集めたクラス...
-
ページ遷移時にアコーディオン...
-
同じパッケージ、クラス名が含...
-
IPアドレスの3バイト目の呼び方
-
同一パッケージにあるクラスが...
-
EclipseでJSPのコンパイルエラー
-
コンボボックスのマウスホイー...
-
Cstring(日本語含む)をcharに...
-
dllと同じプロジェクトにする方法
-
VBAもしくはVB6:クラスの中で...
-
main()を持つクラスが2つ以上...
-
複数のクラスで共通した関数を...
-
重複エラーを解決するには
-
string formatについて
-
UMLのクラス図はmain()も含むん...
おすすめ情報