Takunojiのプログラミング・プレイグラウンド(遊び場)

Javaプログラミングを基本にして、ゲーム作成に必要なことの調査結果、やったら面白そうなことなどを記載します。プログラミングのススメ的なことも記載します。プログラミングで楽しく遊ぶために色々と記載して行きます。

UMLの書き方 クラス図の記述

前回は、UML Designerの使い方をやりました。
UMLは何種かの図を使用して表現するシステムデザイン図、設計図です。

ユースケース図」「クラス図」「シーケンス図」「コミュニケーション図」
「ステートマシン図」「アクティビティ図」「パッケージ図」「オブジェクト図」
コンポーネント図」「配置図」「合成構造図」「タイミング図」「相互作用概念図」

と沢山あります。よく見かけるのは上記の打ち初めの3つです。

そして「クラス図」以下の様な形で表現いたします。

f:id:Takunoji:20170223213859p:plain

「汎用画面クラス」には以下のデータを保持している
・画面リスト:画面(機能)の名前をリストで保持する、起動APが変更する度に更新
・APリスト:起動できるアプリケーションのリスト、AP起動時に取得する
・画面コンテキスト:画面表示するためのプロパティを保持するコンテキストクラス
・画面表示タイプ:画面表示のタイプ、現状では3種類。設定ファイルの値で変更可能
・画面表示クラス:Qtで作成する画面クラス(画面タイプA~Cの3種類)

f:id:Takunoji:20170222224804p:plainは「+」を示し「+画面リスト」は他クラスからもアクセスできる変数を示す

f:id:Takunoji:20170222225218p:plainは「−」を示し「−画面リスト」は他クラスからはアクセスできない変数ことを示す

そして、f:id:Takunoji:20170222225441p:plainは振る舞い、メソッドを示す。

「汎用画面AP」は「DBアクセスInterFace」と関連がある(呼び出す)

...とここまでが設計できています。

「DBアクセスInterFace」は設定ファイルからアクセスするDBのURIを読み込み
対象のDBサーバーへアクセス、データの取得、更新、削除、登録(CRUD)を行う。

以降、リモートとローカルDBへのアクセス(PostgreSQL, SqlLite)を切り替えて
EntityManagerの作成及びSQLクエリの発行を行う仕組みを考えるので

UMLの作成から一時的離れます。

次は、設計するためのクラス構成を考えるためのテスト実装をやります

takunoji.hatenablog.com

UML Designerの使い方 チュートリアル

前回セットアップをしたので、今度こそUMLの書き方を学びます.... とはいえツールの使い方がわかないと話にならないので
ツールの使い方を勉強します。

<UML Designer getting started tutorial>を参考にチュートリアルをなぞります。
・まずは動画で見ると良い?

www.youtube.com

一言で「わかりやすかった」と言うより「そのまんま」だった。
例に習い、作図して見る

f:id:Takunoji:20170222224638p:plain

f:id:Takunoji:20170222224804p:plainこれはクラスの保持する変数(公開データ)

f:id:Takunoji:20170222225218p:plain同様に非公開データ

を示します。

f:id:Takunoji:20170222225441p:plainこれはメソッドを示し、クラスの振る舞いを表します。
「画面コンテキスト」と繋げている線は関連を示します。

これらを繋げていきシステムの、アプリケーションの仕組みを描きます。

実際に使用するときには、「関連の線」とか依存とかのきめ細かなルールを設けて
やっているところもあるとは思うけれど、素直にノートをつけてやるとよりわかりやすいのではないでしょうか?

f:id:Takunoji:20170222230557p:plain

これで、ある程度の記述ができる様になったので次は汎用画面APUMLを作図していきます。

eclipse UML Designer クラス図の書き方

eclipse UML Designerでのクラス図の書き方 前回〜UMLセットアップ

UMLプロジェクトを作成は以下の様な手順で作成します。
1.プロジェクト作成〜パースペクティブを右クリック〜

f:id:Takunoji:20170221203809p:plain

2.「Other」を選択

f:id:Takunoji:20170221203951p:plain

3.「UML Project」を選択

f:id:Takunoji:20170221204158p:plain

4.「プロジェクト名を入力」し完了ボタンを押下

f:id:Takunoji:20170221204327p:plain

5.初期表示を確認する

今回は、クラス図を作成するので「Class diagram」をダブルクリックします

f:id:Takunoji:20170221204734p:plain

まず、作成するクラスの要件、機能一覧を決めておきます。※汎用画面APを作成します

今回のサンプルアプリケーション、汎用画面APは設定ファイルに登録した
アプリケーションを起動する。

なので、MainClassより処理が起動して各要件を満たすために必要な処理を実装する
そのためのデザインを組み上げる → 設計するのがUMLになります。
細かい定義は他のサイトを参照してください(笑)

次回は、UMLの書き方を記載いたします。

汎用画面APの要件と機能一覧

サンプルで作成するアプリの概要です

 

アプリケーション名:汎用画面AP

タイプ:フレームワーク

 

要件:

1.どのOS でも起動可能(コンパイル後)

2.単体でも複数のアプリでも起動出来る

3.設定値をDBでもファイルでも持てる
 
機能一覧:

a:画面サイズなどデバイスに依存する値を取得して画面コンテキストを作成する 

b:画面コンテキストより表示するコンポーネントを作成、表示する

c:AP設定ファイルよりシングルAP、マルチAPモードでの起動を切り替える

d:起動可能APのリスト、各設定値をAP設定ファイルの指定先より取得  
※リモートDB、ローカルDB、リモートファイル、ローカルファイル複数指定可能
e:Windows, MacOS, Linux, Android, iOS上で起動できる

<クラス図>

f:id:Takunoji:20170305180247p:plain

UMLの書き方 eclipse UMLDesigner

UMLの書き方を学ぶのにeclipseを使用します。

毎度おなじみのオープンソースでございます(笑)

まずはeclipseのダウンロードとセットアップを行います。
eclipseのセットアップはこちらを参照ください


そして、eclipseプラグインをインストールします。
eclipseの最上部のメニュー(ヘルプ)より下の様なメニューを開きます

f:id:Takunoji:20170220205952p:plain

「マーケットプレース」よりインストールプラグインを検索します。下の図を参照
検索キーワードに「uml designer」と入力してください(スペースが入ります)

f:id:Takunoji:20170220210732p:plain

あとは、インストールするだけです。

eclipseを再起動後、新規プロジェクトを作成する要領で以下の様にUMLプロジェクト

を作成します。

f:id:Takunoji:20170220211219p:plain

※このあとは任意の情報を入力してプロジェクトを作成します。

次回はUMLの作成を開始いたします。

takunoji.hatenablog.com

primefaces レイアウトの使い方メモ

参照URL:layoutUnit (VDL Documentation Generator - Generated Documentation)

resizable:サイズを画面上から変更できる(マウスで変更できる):default=false

collapsible:画面を閉じる事ができる(マウスでクリック):default=false

 

 

ネットワーク 名前解決の方法

イントロダクション

参考サイトはこちらです。

 

参照する、ファイルは以下の2つ

[/etc/hosts]

このファイルで自端末のIPアドレス、アクセス先のIPアドレスを解決

nameserver 対象PCのIP

<ex>

my.host.local 192.168.xxx.xxx (自分の端末のIPを設定)

your.host.service.com 213.10.XXX.XXX (どこか別の端末)

※今接続しているルータの中でやる場合は初めの192.168が固定になります。)

 

[/etc/sysconfig/network]

/etc/sysconfig/network-scripts/ifcfg-eth0

# ネットワークアダプタ「eth0」の設定を上のファイルに記述します。という指定をする

 

それぞれプロパティを設定する

 

>host

上記のコマンドで他のサーバーを名前解決、アクセス確認→/etc/hosts

→このコマンドで自分の端末名を確認でき、外部からPCの名前でアクセスすることができます。

 

前提

  • 当たり前だけど、ネットワークで繋がっていること
  • ファイヤーウォールなどでアクセスを遮断していないこと

意外と、LANが刺さっていないことに気がつかないことがあるので注意

すご〜く苦労したことがあります(笑)

 

さらに、この設定があった。。。-> nssswitch.cof

 

ラズパイでネットワークの構築して見るのも面白いですよ〜

ラズパイ(RPi)関連

  1. ラズパイ SSH接続メモ
  2.  ラズパイ Under-voltage detected! 〜エラー対処〜
  3.  ラズパイ(CUI)セットアップ
  4.  RPi Settingup Wifi in CUI ~ラズパイ CUI Wifi接続~
  5. Memos about Settingup RPi ~使用したコマンドメモ~
  6. RPi and JavaFX sample of deployment 〜ラズパイにサンプルデプロイ〜
  7.  RPi JavaFX execution ~ラズパイ JavaFX自動起動~
  8. RPi Install Git 〜ラズパイにGitのインストール〜
  9. RPi Java Swing〜ラズパイにJava Swingアプリを起動する〜※失敗しています。。。」
  10. RPi Maven Install 〜ラズパイでMeven
  11. Install XFCE4 on RPi 〜ラズパイに高速軽量デスクトップインストール〜

 

There is a process already using the admin port 4848

>asadmin start-doamin

でサーバーが起動しなくなった.....

 

原因がどうやら「ホスト名」にあるみたい。。。

StackOverFlowで調べてみるとホスト名が原因らしい(詳細は不明)

とにかく、/etc/hostsのドメイン名部分を変更

IPアドレス    ドメイン

 

コマンドを叩く!

>asadin start-domain domain1

ん~よくわからんが動いた。。。

NetBeansのセットアップ方法

最近、NetBeansEclipseよりわかりやすいという話を聞いた。。。

ならば、試してみようとなりました(笑)

 

ここのサイトを参考にセットアップ

NetBeans NetBeans 日本語サイト

 

まずは、ダウンロード → 

https://netbeans.org/downloads/?pagelang=ja

インストーラを起動(基本的にそのまま「次へ」)

なぜかJDKは32ビットだったが、まぁ良し。

Glassfish(4.1.1)もセットでインストール...特に入力もなく終了

初期画面はこんな感じ

f:id:Takunoji:20160318214635p:plain

まずはMavenを使用できるようにしたい。。。

[ツール]-[オプション]から下記を開く

f:id:Takunoji:20160318215704p:plain

ダウンロードしてきたMavenを「参照」から指定する。

apache-maven-3.3.3」を指定する。

f:id:Takunoji:20160318220440p:plain

プロジェクトの作成は赤枠をクリック

f:id:Takunoji:20160318214951p:plain

f:id:Takunoji:20160318221508p:plain

f:id:Takunoji:20160318221803p:plain

f:id:Takunoji:20160318221843p:plain

プロジェクトが作成できたらサーバータブから起動

f:id:Takunoji:20160318223855p:plain

ソースはこんな感じ

f:id:Takunoji:20160318224016p:plain

アンドロイドアプリの開発も行けるらしい。

 

関連ページ

Eclipse セットアップ

  1. Java Install Eclipse〜開発ツールのインストール〜
  2. TensorFlow C++環境〜EclipseCDTをインストール〜
  3. Setup OpenGL with JavaJOGLを使う準備 for Eclipse
  4. Eclipse Meven 開発手順〜プロジェクトの作成〜
  5. Java OpenCV 環境セットアップ(on Mac)
  6. Eclipse SceneBuilderを追加する
  7. JavaFX SceneBuilder EclipseSceneBuilder連携~

Java Basic

  1. Java Basic Level 1 〜Hello Java〜
  2. Java Basic Level2 〜Arithmetic Calculate〜
  3. Java Basic Level3 〜About String class〜
  4. Java Basic Level 4〜Boolean〜
  5. Java Basic Level 5〜If Statement〜
  6. Java Basic Summary from Level1 to 5
  7. Java Basic Level 6 〜Traning of If statement〜
  8. Java Basic Level8 〜How to use for statement〜
  9. Java Basic Level 8.5 〜Array〜
  10. Java Basic Level 8.5 〜Array〜
  11. Java Basic Level 10 〜While statement 〜
  12. Java Basic Swing〜オブジェクト指向〜
  13. Java Basic Swing Level 2〜オブジェクト指向2〜
  14. サンプル実装〜コンソールゲーム〜
  15. Java Basic インターフェース・抽象クラスの作り方
  16. Java Basic クラスとは〜Step2_1〜