質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
UML

UML(統一モデリング言語)は、主にオブジェクト指向分析や設計を目的に記法の統一が図られたモデリング言語です。要求分析・システム分析・設計・テストなど幅広いシステム開発のフェーズを網羅しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

5573閲覧

クラス図の書き方について

person

総合スコア223

UML

UML(統一モデリング言語)は、主にオブジェクト指向分析や設計を目的に記法の統一が図られたモデリング言語です。要求分析・システム分析・設計・テストなど幅広いシステム開発のフェーズを網羅しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/11/15 04:25

編集2019/11/15 04:46

#質問

クラス図を描くときに、次のような場合はどのような書き方になるのでしょうか?

  • クラス(class hoge: のようにクラスを定義していない場合はファイル名(?))の中の関数の中にさらに関数があるとき、どう書けばよい?「操作」で同じ分類分けで書いてよい?
  • ローカル変数で同じ変数名のものを別の関数でも使う場合どのように書けばよい?
  • 配列のときの名前 []をつける?
  • 関数の一番外側や一番内側(関数の中の関数)の変数を書くとき、「属性」で同じ分類分けで書いてよい?
  • フラグ、Tkinterで使うウィジェット格納の変数(root = tkinter.Tk()など)は記述するか、主要のもの(user,passwdなど)だけでよいか?

#質問者のクラス図の書き方の解釈

一応書いておきます。たぶん間違っているのでしょうが・・・

  • クラス図の1番上に、クラス名(クラス未定義の場合はファイル名)を書く。
  • 属性には、該当クラス内で宣言したすべて(ローカルとかグローバル問わず)の変数を書く。別クラスで宣言し、こちらで扱う(値を使うまたは変える)場合は書かない。
  • 操作には、該当クラス内で宣言したすべての関数を書く。別クラスで宣言し、こちらで扱う(呼び出す)場合は書かない。
  • 配列の場合は、変数名をhoge[ ]のように[]をつける。
  • 関数(func)の中の変数(hoge)については、func.hogeのようにピリオドを使って表現する。
  • プログラム実行時に関係する各クラスは関連端でつなげる。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Q71

2019/11/15 13:48

UMLでの書き方を尋ねているのでしょうか。それとも、独自のプロトコルを定義しようとしているのでしょうか?
person

2019/11/17 23:43

UMLの書き方です
guest

回答1

0

ベストアンサー

クラス(class hoge: のようにクラスを定義していない場合はファイル名(?))の中の関数の中にさらに関数があるとき

UMLのクラス図であるなら、クラスに属していないものに関する記述の方法はありませんので、「クラス図には書かない」が回答になるかと思います。関数内のローカル関数については、外部からは完全に隠蔽されますから、書く必要は無いでしょう。

ローカル変数で同じ変数名のものを別の関数でも使う場合どのように書けばよい?

意味がわかりません。クラス図は、クラスに属する性質を書きます。クラスに定義されたメソッドの中の性質は書きません。

配列のときの名前 []をつける?

[]が配列を表すのは、特定のプログラミング言語の性質です。例えば、VBであれば()です。また、変数名に[]をつけるのも、プログラミング言語の性質です。C/C++はchar a[];ですが、C#はchar[] a;です。
アプリケーション ハンガリアンを目指すなら、List や Array という接尾辞をつける、というのが回答になるでしょう。なんなら、ステレオタイプを作っても良いでしょう。

関数の一番外側や一番内側(関数の中の関数)の変数を書くとき、「属性」で同じ分類分けで書いてよい?

何を意味しているのかわかりません。

基本的に、文書は「誰のために」「なんのために」を決めて、設計します。「外部からのユーザーのために」作るのであれば、パブリックな(Pythonなら使って欲しい)ものだけ書くのも可ではないでしょうか。
「自分やメンテナンサー」のために書くなら、呼び出しの流れがわかるように、重要な変数について、用意した目的がわかるように書きます。
「あるものは全て書く」というのは、少し違うと思います。

投稿2019/11/19 14:11

Q71

総合スコア995

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

person

2019/11/20 01:25

ありがとうございます。
Q71

2019/11/23 13:20

あなたは「どうやって実現するか」を考えてプログラムしているのでしょうか。 オブジェクトを志向するプログラムでは「どうやって」ではなく、「なにを実現するか」を考えてプログラムします。メソッドの中の変数まで書こうと思うのは、「どうやって」を考えているように思いましたよメソッドには名前をつけますが、その名前は、「どうやって実現しているか」を考えますか?「なにを実現するか」ではないでしょうか。objectには「目的」という意味があります。orientedは、「興味を向ける」「そのために時間や労力を費やす」という意味があります。単にオブジェクトの方向を向いている(指向)だけでなく、興味を向けて(志向)ください。そうすると、自ずと解決策が見つかると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問