goo blog サービス終了のお知らせ 

ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

アクティビティ図は、データの動きを止めるには、いいのかも?

2007-11-11 23:21:04 | Weblog

ふと思ったんだけど・・

 UMLのアクティビティ図自身には、本来、データを記入する部分がない。
 そのため、これ自身では、データの流れを示せないため、ここからユースケースにおとして開発にすぐに入ると、データが確定しない。

 このデータが確定しないということは、逆に言うと、データが決まらないため、仕様変更になりやすく、下流工程で大きな問題が起こる。

 そのため、UMLにはないER図でデータ部分を確定させる。




 しかし、もしかりに、ここでアクティビティ図を作らず、データ中心に分析した場合(ER図からできる形になる)、業務の動きを止められないので、業務部分のあいまいさがのこる。このあいまいさから後で、「あ、この業務を忘れていた」ということで、業務を追加され、データ矛盾を引き起こすことがある。




 っていうふうにかんがえると、アクティビティ図は、業務の動きをとめ(固定化させ)、承認をとるという役割にはいいかもしれない。
 ここで、業務が固定化されれば、データも固定化され、仕様変更になりにくくなる可能性がある。

 ってことで、データの動きを止めたい(固定化したい)という目的で、まず、業務を固定化させるという意味で、データ記述のないアクティビティ図を利用するのは、アリだなあ。。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

いろんなコンピューター言語の覚え方:その6 処理。

2007-11-11 15:11:54 | 土日シリーズ

 土日シリーズ「いろんなコンピューター言語の覚え方」、第3回に、コンピューター言語の覚え方の手順をかきました。
 で、今回は、「(3)宣言したデータの処理方法」についてです。




■処理部分

 プログラム言語は、値を宣言する部分と、実際に処理を行う部分に大きく分かれます。
 そして、処理する部分は、順番に処理する部分と、処理順序を制御する部分(繰り返しや条件によって行ったり行わなかったりする=制御文と呼ばれる)があります。

 で、今回やるのは、順番に処理する部分です。




■演算子と関数・メソッド

 この順番に処理するものに関しては、+、-、*、/などの演算子と呼ばれるものと、strcpyとかの関数があります。オブジェクト指向の場合は、関数でなくメソッドとなります。

 前回、変数を考えた時、文字や数字など、いろんな種類(型)がありました。 

 演算子の場合、処理を行う対象の型によって、使えるものと使えないものがあったり、作用が異なったりします。

 関数やメソッドも、使えるものと使えないものがあったり、作用が異なったりするほか、その対象の型でしかつかえないものがあります。オブジェクト指向の場合、同じ関数名でも、引数の型が違えば、違うものです。

 で、関数にしろ、演算子にしろ、その作用対象となるものがあります。
 演算子の場合は、演算の前とあとに書く(あと、または前にしか書かないものもある)のがふつうで、関数やメソッドの場合は、引数という形でもちます。

 この引数と関数の書き方や、使う前に宣言をするひつようがあるかないかで、各言語が違います。いいかえると、各言語を覚えるには、この関数の書き方を抑える必要があるということです。




■整数・小数の演算子、処理(メソッド・関数など)

 一般的に、整数小数に関しては、+-*/などの演算子が、ふつうに使えます
 (たいていの言語において。ただし、COBOLは、COMPUTE命令で使い、Addなど、これらを命令で行う方法もあるが)。

 そして、数学関係の関数として、三角関数、対数関数などが使える言語が多いです。

 言語によって使えるものが違うので注意だったりします。

 実務上、四則演算と、割り算のあまり、切り捨て切り上げ四捨五入の方法、数値比較方法を押さえておけば、とりあえず、いいかな(^^)




■文字・文字列の演算子、処理(メソッド・関数など)

 文字・文字列の演算に関しては、文字の連結について注意です。
 +が連結を表す言語と、連結はちがうもの(.や&など)で表す言語があります。

 +でできる場合、型が数字と文字、別れている場合はいいのですが、別れていない場合、
 a=1;b=1;a+b=11になってしまうことがあるので、注意です
 (このときa+(b+0)や、a+(b+””)でわけたりします)

 文字列用に、いろいろな関数があることがおおいです。
 なお、実務上、以下の操作をやるには、どうしたらよいかをはじめに抑えておくことがよいとおもいます。

   文字列の連結
   部分文字列の取り出し(mid,substringのこと)
   文字列から、特定の文字列を探す
   文字列の置換
   文字列の比較




■論理値・その他の演算子、処理(メソッド・関数など)

 論理演算といわれる、ANDとOR、そして、シフト(右シフト、左シフト)です。

 実務上、これらの操作をおさえておくこと、また、右シフト、左シフトのとき、最上位の桁はどうなるか(同じ言語でもコンパイラによって違う)を押さえておくことが大事なのですが、業務系の人は、あまり使わないので、押さえておかなくてもいいでしょう。




■配列やメモリ処理

 ポインタを使ってメモリ処理できる言語があります。
 memcpy,memsetなど。それらの言語においては、

 メモリ確保
 メモリ領域サイズの取得(sizeof)
 メモリ解放
 メモリセット
 メモリへのコピー
 メモリの内容比較

 をおさえておけばいいかな。。




■構造体、クラスの操作

 このほか、操作によっては、構造体、クラス全体に行える操作があります。
 ソートとか、(ハッシュ)マップとかです。
 (マップ=数学では写像のこと。キー(X)を指定したら値(Y)を返してくれる(=ってことは、一意にきまっているってこと)

 ソート方法
 マップ方法
 値設定方法

 などを押さえておく必要があります。




 次回は、制御文についてです。





  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする