[UML] コンポーネント図

コンポーネントは
そのコンポーネントが実現する仕様である提供IFと
別のコンポーネントに要求する使用である要求IFで
表現される
システムコンポーネント間の構造上の関係を描くことが目的
コンポーネントベース開発(CBD)に有用

ポイント
◎システム内部をIFで複数のコンポーネントに分割する
→システム内部のモジュール性を高めるられる
→仕様変更の影響範囲が局所化される

◎コンポーネントの表現方法は複数ある
=コンポーネント図の表現方法の分類=
*ブラックボックスビュー
. +型レベル: 区画にリスト(①)
. +型レベル: IFを図示(②)
. +型レベル: 概略図(③)
. +インスタンスレベル: コンポジット構造(④)
*ホワイトボックスビュー
. +型レベル: 区画にリスト(⑤)
. +型レベル: 実現分類子と依存関係(⑥)
. +型レベル: 分類子の入れ子(⑦)
. +インスタンスレベル: 内部コンポーネント(⑧)
. +インスタンスレベル: 委譲パート(⑨)
# ブラックボックスビュー=コンポーネントの振る舞いを実現する分類子や内部コンポーネントを隠蔽する
# ホワイトボックスビュー=コンポーネントの振る舞いを実現する分類子や内部コンポーネントを明記する
# 型レベル=型(分類子)レベルでのコンポーネントを表す
# インスタンスレベル=コンポーネントに幾つかの役割が存在することや 実行時にコンポーネントがどのように合成されるかを示す
①区画にリスト
 コンポーネント内の区画で
 <'<'provided interfaces>>, <'<'required interfaces>>に続けて
 提供IFと要求IFをリストする
②IFを図示
 型として明示されたコンポーネントが提供/要求IFを
 ボール型/ソケット型の記号で記述する
 ※IFの操作(イベント)を記述することも可
③概略図
 コンポーネントのIFやポートを記述せずに
 コンポーネント間の依存関係のみに焦点を当てる
④コンポジット構造
 コンポーネント間の結合をボール・アンド・ソケットで表されるアセンブリコネクタで記述する
⑤区画にリスト
 コンポーネント内の区画で
 <'<'realizations>>に続けて コンポーネントの振る舞いを実現する分類子を記述する
⑥実現分類子と依存関係
 コンポーネントとそのコンポーネントの振る舞いを実現する分類子を依存関係で記述する
⑦分類子の入れ子
 コンポーネントの内部に
 そのコンポーネントの振る舞いを実現する分類子を図示する
⑧内部コンポーネント
 コンポーネントが実行時に包含する より粒度の細かいコンポーネントをインスタンスレベルで記述する
⑨委譲パート
 コンポーネントの振る舞いを実現するインスタンスへの処理の委譲を処理コネクタで記述する


◎ノーテーション
○コンポーネントの表記方法
コンポーネントは長方形で表記する
オプションで縦の区画が付く
抽象化されたコンポーネントは コンポーネントの名前とコンポーネントのステレオタイプやアイコンの入った長方形だけでモデリングできる
コンポーネントのステレオタイプは <'<'component>>で コンポーネントのステレオタイプアイコンは2つの小さい長方形が左側に突き出した長方形となっている
# 以下のいずれもコンポーネントを示す
# -長方形+名前+ステレオタイプテキスト
# -長方形+名前+ステレオタイプアイコン
# -長方形+名前+ステレオタイプテキスト+ステレオタイプアイコン
※かならずコンポーネントステレオタイプテキストかアイコンを含める
 ∵UMLでステレオタイプclassifierのない長方形はクラスエレメントを示す
※コンポーネントステレオタイプテキストは二重のアングルブラケットで囲んで表記する

○コンポーネントのIF(提供/要求)のモデリング
コンポーネントエレメントとして示す
eg
--------------------------
|   <'<'component>>
|     Order
|-------------------------
|<'<'provided interfaces>>
| OrderEntry
| AccountPayable
|<'<'required interfaces>>
| Person
--------------------------
→OrderコンポーネントではOrderEntryとAccountPayableのIFを実装し Personインタフェースを実装する別のコンポーネントも必須であることを示す
コンポーネントエレメントはインタフェースシンボルで示すことも出来る
eg
|              ―――――――――
|    OrderEntry○―| <'<'component>> |
|              |   Order       |―(Parson
|AccountPayable○―|              |
|              ―――――――――
→先端に丸の付いたIFシンボルはコンポーネントの実装済みIFを示す(ロリポップシンボル)
→先端に半円の付いたIFシンボルはコンポーネントの必須IFを示す(ソケットシンボル)
→IFの名前はシンボルの傍に書く

○コンポーネント間の関係のモデリング
ロリポップとソケットの表記に依存矢印を含める
依存矢印は
ソケットを始点にロリポップに指す結ぶ
eg
<'<'cmpnt>>Order System―(CustomerLookup……→CustomerLookup○―<'<'cmpnt>>Customer Repository
# 使う側のコンポーネント…(uses)…>使われる側のコンポーネント

○サブシステム
サブシステム表記エレメントは
コンポーネントステレオタイプテキストの代わりにサブシステムステレオタイプテキストを記述する

○コンポーネントの内部構造の提示
包含するするコンポーネント名区画の中に内部の部品を置いて表記する
ネスティングされたコンポーネント図同士のコラボレーション図となる
内部コンポーネント間でモデリングされた関係は
UMLでアセンブリコネクタと呼ばれるもので示す
アセンブリコネクタは
1つのコンポーネント実装済みIFと別のコンポーネントの必須IFを結びつける


ref:
物事を分けてとらえる回, 20070302
http://www.umlcert.org/column/uml3_02.html
照井 康真, コンポーネント図のいくつかの表現方法, 20070403
http://www.umlcert.org/column/uml3_03.html
Donald Bell, IBM Global Services, IBM, UML 2.0のキホン:コンポーネント図の詳細解説, 20050202
http://www.atmarkit.co.jp/farc/rensai/redge31/redge31.html


tag:
UML コンポーネント図

tag : UML コンポーネント図

2010-05-27 02:04 : engineering : コメント : 0 : トラックバック : 0 :

[開発][SQL] summary

ddl
data definition language
create
drop
alter

dml
data manipulation language
select
insert
update
delete

dcl
data control language
grant アクセス権を設定する
revoke アクセス権を取り消す

※ 厳密にはSELECT文DML文と区別されQuery文という位置づけ


create table:
create table table_name (col1_name int, col2_name varchar(32), col3_name date);

not null:
create table table_name (col1_name int not null primary key, col2_name varchar(32), col3_name date);

primary key:
create table table_name (col1_name int not null primary key, col2_name varchar(32), col3_name date);
create table table_name (col1_name int not null, col2_name varchar(32), col3_name date, primary key(col1_name));

create table from a query result:
create table table2 as select col1, col2 from table1;

drop table:
drop table table_name;

alter table definitions -add column:
alter table table_name add new_col_name varchar(32) after existed_col_name;

alter table definitions - drop column:
alter table table_name drop deleting_col_name;

alter table definitions -change column def:
alter table table_name change target_col_name new_col_name text not null;

alter table definitions -add primary key:
alter table table_name add primary key(col1_name, col2_name);

alter table definitions -rename table:
alter table old_table_name rename to new_table_name;

select -where:
select col1_name, col2_name from table_name where col1_name = 'hoge';

select -where -not:
select * from table_name where not (col1_name = 'hoge' or col2_name = 1);

select -where -between:
select * from table_name where col1_name between 8 and 10;

select -where -in:
select * from table_name where col1_name in (8, 10, 12);

select -where -like:
select * from table_name where col1_name like 'word%';
select * from table_name where col1_name like '%word';
select * from table_name where col1_name like '%word%';

select -order by:
select * from table_name order by col1_name, col2_name;

select -count:
select count(col1_name) from table_name;
select count(*) from table_name where col1_name = 'piyo';
※ the null cell wont be counted.

select -limit:
select * from table_name order by col1_name limit [offset] limit_count;
※ オフセット=取得済み件数
. オフセットが10であれば 10件が取得済みと見なし 11件目から検索する

select -is null:
select * from table_name order by col1_name is null;

join

function -sum:
select sum(col1_name) from table_name;

function -max/min:
select max(col1_name), min(col2_name) from table_name;

function -avg:
select avg(col1_name) from table_name;

distinct:
select distinct(col_name) from table_name;
※ it returns null if there are no matched records.

insert:
insert into table_name (col1_name, col2_name) values (val1, val2);
insert into table_name (col1_name, col2_name) values (val1, val2), (val3, val4);

update:
update table_name set col1_name = val1, col2_name = val2 where id = 1;

delete:
delete from table_name where id = 1


transaction:
begin;
commit;
rollback;


useful commands:
to use the created databese; >use database_name
to know what databases exist; >show databases
to know all tables in the current database; >show tables
to know the columns exist in the table; >show fields from table_name
to read from a sql file: >\. fileName.sql
to refer the user names, database names and connection; >\s
to disconnect from the database; >exit
to show all commands; >?


data types:
文字型
char (バイト数) 固定長文字列 255バイト
varchar (バイト数) 可変長文字列 255バイト
text 可変長文字列 65535バイト
mediumtext 可変長文字列 16777215バイト
longtext 可変長文字列 4294967295バイト
数字型
int 整数 -2^31 to 2~31-1
float 実数 32ビットの浮動小数点数
double 実数 64ビットの浮動小数点数
日付型
time 時刻 -838:59:59 to 838:59:59
date 日付 1000-01-01 to 9999-12-31
datetime 日時 1000-01-01 00:00:00 to 9999-12-31 23:59:59
※RDBMS次第で異なる

日付と時刻関数
現在日時の取得:select now();
現在時刻の取得:select curtime();
現在日付の取得:select curdate();

集合関数
行数の取得:select count(*) from table_name;
最小値の取得:select min(col_name) from table_name;
最大の取得:select max(col_name) from table_name;

tag : ddl dml dcl SQL

2010-05-26 01:15 : 開発 : コメント : 0 : トラックバック : 0 :

[ESL] Presentation Useful Expressions

Previews
there are four parts to today's presentation. in the first part i am going to talk a little bit about... and in the second part i will talk about... in the third part i am going to give some of my thoughts about... and in the fourth part, i will... so let me begin.

Organization
-lets first look at....
-first, second, third....
-there are three main points. the first is....

Using Visuals
-this...(drawing, photo, graph, chart) shows....
-this... clearly illustrates....
-OK, please look at the OHP.
-OK, would you please turn your attention to the OHP.

Emphasizing
-it is important that you understand....
-now this is a really important point, ....

Defining
-in order to understand the presentation today, you need to understand the word....

Clarifying
-have i explained this clearly?
-would anyone lime me to repeat sth?
-let me put this another way....
-what i meant was....
-let me give you an example.
-how many people know the word....?
-is there anybody who doesnt know the meaning of...?

Giving Examples
-for example....
-another example of... is....

-References to Handouts
-let me just give you each a copy of this hand out. there is one for each person.
-please share with your neighbor.
-please look at the top/bottom/middle/top, right/top, left....
-please look at the photo of... at the top of the page.
-OK, please turn to the second page of the handout.

References to Sources
-According to...
-Many of you i'm sure have heard of....
-and again this is from....

Concluding
-you have seen from our presentation today that....
-do you have any questions?
-thank you very much for your time and attention.

tag : XSL ESL 英語

2010-05-24 00:52 : 語学 : コメント : 0 : トラックバック : 0 :

[CSL] チャイ語ヒト言メモ

刚才我的护照不见了。

tag : XSL CSL 中国語

2010-05-23 23:49 : 語学 : コメント : 0 : トラックバック : 0 :

[J2EE] Java基本ライブラリ郡

Java EEJava Platform, Enterprise Edition
エンタープライズ領域を対象とした業務システム等の設計/開発/運用のための規格郡

Java EE仕様の歴史
ver1.2:
WebとEJB
ver1.3:
非同期型アプリモデルの提供とベンダ間の相互接続性の解決
ver1.4:
Webサービス技術の標準統合と運用管理の仕組みやインタフェースの一般化
ver1.5:
開発の容易性(Ease of Development)をコンセプトにした配備記述子を代替するアノテーションによるアプリ動作時設定の記述やPOJO(Pre Old Java Object)開発を可能にするEJBインタフェースの簡略化とJPA(Java Persistence API)によるオブジェクト永続化


Java Servlet
サーバサイドJavaプログラムとして
入力データ解析・業務実行・動的HTML生成
するプログラム
動的HTML生成は
従来の問題①Servletとして作るとprintメソッドが大量に発生しプログラムの可読性を下げる
従来の問題②画面イメージの変更の度に影響を受けること
をJSPに記載することで解決した

■JavaServer Pages(JSP)
動的HTMLの生成部分の可読性を高めるためにHTMLにスクリプトで埋め込む形でJavaプログラムを記述出来るようにしたもの
サーバサイドのJavaアプリプログラムを全てJSPで記述すること可能ではあるが
他の可読性を下げてしまうため 動的HTML生成部分のみをJSPで記述するのが望ましいとされる
JSPは実行時にコンパイルされてServletプログラムとして動作する

■JavaServer Pages Standard Tag Library(JSTL)
JakartaのTaglibsプロジェクトで公開されているJSTの拡張タグライブラリのうち
特に高い汎用性を求められるものについて策定した標準仕様
条件分岐や繰り返し処理などのためのタグがある

■JavaServer Faces(JSF)
Java EE5で追加された JavaベースのWebアプリ構築のためのFW
アーキテクチャはStrutsと同じMVCモデル
ViewとControllerの機能を提供するが
StrutsよりもEoD(Ease of Development)を考慮している

■JavaBeans Activation Framework(JAF)
データの種類(MIMEタイプ)に応じて、適切なJavaBeansを呼び出す仕組むを提供するAPI
Windowsで実現しているファイル拡張子の関連付けなどと同じように
ファイル名から種類を判別して 編集/閲覧等のメニューを表示し
その種類に応じたJavaBeanを起動できる
JavaMailでも利用されている

■JavaMail
Javaプログラムから電子メールを発信するためのアプリケーションインタフェース
非同期で結果を通知するなどの利用が可能
JavaMailは Java VMが動作すれば Webコンテナ/EJBコンテナのどちらでも動作できる

■Java Persistence API(JPA)
Javaオブジェクトの状態を永続化するために提供されているAPI
EJB3.0の一部として導入されたものだが EJBから独立したAPIであるため JPA単体での利用可能
EJB2.x以前のEJB Entity Beanに代わるものである
EJB2.x以前のEJB Entity Beanは
理由①仕組みが複雑
理由②永続化を実現するプログラミングが煩雑
で普及しなかった
JPAは
アノテーションでのオブジェクトとデータベースとの関連付け(O/Rマッピング)が可能
提供されているトランザクション管理を行うAPIの利用で永続化対象データの一貫性を保証できる

■Java Transaction API(JPA)
JTAインタフェースは
JNDIを使用してEJBやServlet等のJ2EEアプリケーションから簡単に利用でき
CORBAのJavaアプリケーションからも使用でき
複雑に分散して実行されるトランザクションの一貫性を簡単に保てる

■Java API for XML Registries(JAXR)
UDDIやebXML等のXMLベースのレジストリサービスにアクセスする時に使用するJava言語の標準API

■Java API for XML-based RPC(JAX-RPC)
SOAPやWSDLを使ってJava言語でRemote Procedure Call(RPC)でリモートプログラムを呼び出す際に使用する標準APIやWebサービスアプリケーションの実装方法等について定義した仕様

■Java API for XML Web Service(JAX-WS)
JAX-RPCの後続仕様
XML/HTTPバインディングや非同期通信が可能

■Web Service Metadata for the Java Platform
Webサービスの開発をPOJOベースで出来るようにするためのアノテーションセットの規定
規定されたアノテーションを使うことで
WSDLでのインタフェース定義や各種設定ファイルの生成を開発者が意識しなくて良くなる

■Common Annotations for the Java Platform
Java EEやJava SEで標準的に使われるアノテーションの定義

■SOAP Attachments API for Java(SAAJ)
JavaでSOAPメッセージや添付ファイル付きのSOAPメッセージを作成/読込するためのAPI

■Java Architecture for XML Binding(JAXB)
JavaとXMLのデータバインディングのためのAPI

■Streaming API for XML(StAX)
JavaプログラムからXMLドキュメントを解析/生成するためのAPIを提供するXMLパーサ
# JAXB2.0でもStAXを使用している
SAX同様のイベント伝達方式を採用しているが
StAXではアプリから特定のイベントがあるかどうかを
パーサに問い合わせる点がSAXと異なる
SAXは
登録するイベントの数が増えるとイベント処理のためのプログラミングが複雑化し
XMLドキュメントの解析をアプリ側が制御できない欠点がある
StAXは
イベントが存在すればアプリがそれをパーサから取得してそれぞれに応じた操作を実行することSAXより効率化が図られる
# 同様のXML解析用APIにDOMやSAXがある
# DOMは
# XMLドキュメント全体の解析の結果を
# DOMツリーとしてメモリ上に格納する方式
# 一度メモリ展開されればその後の処理性能は高いが
# XMLドキュメントのサイズが大きくなるに連れ
# 使用するメモリ容量が増えてしまう
# SAXは
# XMLドキュメントを先頭から順に読みこみ
# 目的の要素が開始された等のイベントを検出した時点で
# XMLパーサからアプリに伝達(コールバック)する方式
# DOMとは対照的に
# イベント伝達後は解析内容をメモリに保持しないため
# 使用するメモリ容量は少しで済む

■Java EE Management / Java EE Development
Java Management Extensions(JMX)は
Javaを利用してネットワーク上のハードウェアやソフトウェアなどを統合的に管理・監視するための仕様
Java EE Managementは
Java EEアプリサーバの現在の状態や配備したアプリの状態等を知るためにサーバに対して問い合わせる管理ツール用のAPIを規定している
Java EE Developmentha
Java EEアプリサーバによって提供される配備ツールの実行環境とプラグイン・コンポーネント間のインタフェースを定義している

■Java Authorization Service Provider Contract for Containers(JACC)
J2EEアプリサーバと認証ポリシー・プロバイダ間の規約を定義した仕様

■Enterprise JavaBeans(EJB)
コンポーネント・ベースの分散ビジネス・アプリの開発者と適用のためのアーキテクチャ
EJB3.0では
O/RマッピングFWやDI/AOPコンテナFWからフィードバックされた機能とアノテーションで開発の容易化が図られている

■Java Message Service(JMS)
複数のオブジェクト間においてイベント通知を実現できるサービスであり
キューやトピックと呼ばれる宛先を介して非同期通信が行える
# EJB2.0で導入されたイベント受信処理を行うメッセージドリブンBeanはJMSとの連携で実現する
利用者は標準APIで
メッセージ作成/宛先へのメッセージ送信/宛先からのメッセージ受信
が容易に出来る
統一された構造のメッセージを抽象化された宛先を介してやり取りするため
システムとアプリの結合を疎に保つ特徴がある

■Java EE Connector Architecture(JCA)
Java EE Connector Architecture(JCA)は
既存の多数のアプリサーバとEnterprise Information System(EIS)間の接続の問題に対して
Javaによるsolutionを提供する
JCAを使用することで
EISベンダは各アプリサーバに合わせて製品をカスタマイズする必要がなくなる
JCAに準拠したアプリサーバのベンダは
カスタムコードを追加することなく新しいEISへの接続機能を追加できる
JCAは
Java EEの一部として定義及び標準化されたテクノロジに基づいている

■Java Naming and Directory Interface(JNDI) @J2SE5/6
Javaプログラムの名前・ディレクトリサーバへのアプリインターフェース
任意の部品コンポーネントをJNDIで登録することで
名前を指定してターゲットのクラス/オブジェクトを取得でき
アプリのポータビリティの向上が図れる

■JDBCデータソース
JDBCコネクションをプーリング管理することで
コストの高いデータベースへの接続/切断処理をトランザクション実行前に行い
トランザクションの実行性能を上げる

■RMI over IIOP (RMI/IIOP) @J2SE5/6
Javaのプログラム間通信手段としてはRMIが使われてきたが
J2EEが要求するトランザクション・セキュリティ技術に対応するには独自プロトコルによる拡張が必要であるため
ベンダ固有の通信となってしまい相互接続性が低かった
RMI over IIOPは
CORBAの高い相互接続性とJava言語への親和性の高い通信を両立して
この問題を解決する

■Java API for XML Processing (JAXP) / Xerces @J2SE5/6
JavaでXML文書を扱うための標準的なAPIである
XML文書を扱うための標準的なAPIであるDOMやSAXでは
プログラミング言語に依存しない仕様になっているため
実際にJavaでプログラミングを行う際に使用するAPIという形式ではない
JAXPは
JavaでXMLドキュメントの読み書きや構文解析する時に使用するAPIを提供する
JAXPは
アプリコードを変更することなく任意のXMLプロセッサを変更できる
プロセッサにはSun MicrosystemsのJAXP 1.3やApache XML ProjectのXercesやXalanがある

■Java Management Extensions (JMX) @J2SE5/6
Javaを利用してネットワーク上のハードウェアやソフトウェア等を統合的に管理・監視するための仕様

■Java Authentication and Authorization Service (JAAS) @J2SE5/6
Javaコードを実行中のユーザを信頼かつ安全な方法で確認する方法(認証)と
動作の実行に必要なアクセス件をユーザが保持していることを確認する方法(承認)を提供する


ref:
http://www.nec.co.jp/WebOTX/appserver/function/javaee.html

tag : Java EE J2EE J2SE

2010-05-19 01:52 : 開発 : コメント : 0 : トラックバック : 0 :

LBL

略式LBLのF2L完成後の手順記憶語呂。
発動する時の向きは各自調査で。

1、ランジンフンジフラ
2、ラジジランジンラジンラン
3、ララジスンジジスジララ
4、ララフフランバンラフフランバラン

ラ…ライト時計回
ラン…ライト反時計回
ジ…上部時計回
ス…スライス時計回
フ…フロント時計回
バ…バック時計回

ref:
http://oriental-nakata.laff.jp/blog/2010/05/jack10.html

tag : lifehack

2010-05-06 00:32 : -----temp----- : コメント : 0 : トラックバック : 0 :
ホーム

search

ad



counter


tag cloud

category cloud