2009年10月アーカイブ



Windows7がCMで放送され注目を浴びていますが、
IT業界で働く者にとっても、新しいOSの技術・機能を
理解し学んでいくことは大切です。

Vistaから進化した新しいユーザー・インターフェイス
http://www.atmarkit.co.jp/fwin2k/win7/04newui/04newui_01.html


特に、Windows7では、見た目はVistaと大きな違いがない印象が
あるかもしれませんが、細かなところでたくさんの部分がブラッシュ
アップされているだけでなく、機能強化、機能追加されています。

パフォーマンスもVistaよりも断然良くなって(XPと比べても遜色なくなって)
いるので、今後、XPに代わるOSとして普及が予測されるのではないでしょうか?

Windows7の特徴を少し抜粋すると、

・ジャンプリスト
・新しいタスクバー
・新しいアプリケーションの切り替え/整列
・新しいアプリケーションの最大化/最小化
・ウィンドウのスナップ/シェイク
・デスクトップの透明化
・ガジェットの自由な配置
・通知アイコンの強化/通知メッセージの共有化
・UACレベルの切り替え
・ライブラリ機能

となっています。


IT業界に視点を置くと、こういったOSの進化に、開発する
アプリケーションをどのように進化させていくか、連携させて
いくかを考え、付加価値の高い商品を生み出さないと、
どんどんと時代の波に取り残されることになります。

開発ツールのバージョンアップの中でも、こういったOSの進化に
追随する機能がたくさん盛り込まれています。

例えば、Delphiでは、Delphi2009で完全にユニコード対応になり、
ジェネリクス、無名メソッドなどの新しい言語仕様、Office2008で
採用されている新しいインターフェイスに対応した、リボンコントロール
が追加されたり、今秋発売された、Delphi2010では、Windows7の
シェイク機能を意識した、ジェスチャーコントロール(マウスの動きに
合わせてイベントを発生させる)などが導入されています。

新しい技術の全てを理解し、開発するアプリケーションに取り入れる
必要はありませんが、少なくとも、開発するアプリケーションが陳腐化
しないようにバージョンアップ、メンテナンスをおこない、いつでも、
新しい技術を取り入れられるようにスケーラビリティを確保することが
大切ではないでしょうか?

そのためにも普段からの技術力向上のための取り組みは必須です。

 

 

オブジェクト指向と言いつつ、クラスをインスタンス化させたくない場面は

よくあることです。

 

私の経験上では主に2つ。

 

  1. ユーティリティクラス
    他の色々なクラスから共通で利用されるメソッドを実装する。
    共通関数群のような使い方をするが、そのたびにクラスを
    インスタンス化して利用するのはコードもわかりにくくなるし、
    そもそもオブジェクトとして利用する意味がない。

    この場合、Java等でも同様だと思うが、staticなメソッドを定義し
    インスタンス化せずに手軽に共通メソッドを利用できるようにする。
    その際、インスタンス化自体が無意味なので、コンストラクタを
    private で宣言するのが一般的です。


    public class StringUtil
    {
        private StringUtil
        {
            //インスタンス化不可
        }

        public static Find(string source, string search)
        {
            return ...
        }
    }


  2. シングルトンクラス(シングルトンパターン)
    オブジェクトをシングルトンにしたい場合に使用する。
    シングルトンとはアプリケーション内であるクラスのインスタンスは
    唯一であることを保証するクラスのこと(例:プリンタスプーラなど)

    クラスが内部的にそのクラスのオブジェクトをひとつだけインスタンス化し、
    インスタンスが必要な場合にかならず、唯一のオブジェクトへの参照を
    返すという仕組みである。

    public class Singleton
    {
        private static obj = new Singleton();

        private Singleton
        {
            //インスタンスの取得は、GetInstanceメソッドで
        }

      public static Singleton GetInstance
        {
            return obj;
        }
    }


C#2.0からは、上記のように、無理やりコンストラクタを、privateにして

インスタンス化できないようにするという、よく考えると無理やりな手法

ではなく以下のようにスマートに記述できるようになった。

class定義の前に、staticを付加すると、そのクラスは自動的に静的な

クラスとなり、以下のような特徴を持つようになる。

 

  • 静的メンバのみを含みます。
  • インスタンス化できません。
  • シールされます。
  • インスタンスコンストラクタを含むことができません

コンストラクタを記述しても言語レベルでエラーが検出され、

コンパイルすることができなくなります。

このクラスを利用し、静的フィールド、静的メソッドだけを使用した

ユーティリティクラスやシングルトンの仕組みも簡単に実装できます。

 独習UML第4版

 

著者:テクノロジックアート

発行日:2009年4月9日

監修:長瀬 嘉秀・橋本 大輔

発行人:佐々木 幹夫

発行所:株式会社 翔泳社

371ページ

3,600円+税

 

ポイント

2009年10月現在で、UML学習について比較的新しい書籍です。

UML2.xについての記述も多く取り入れられています。

UMLが取り上げられてからかなりの時間が経っていますが、UMLと

いう言葉や、UMLについてある程度の知識を持った技術者は多いと

思いますが実際の開発の現場で利用している、活用できている方は

少ないのではないでしょうか?

 

私の考えでは、実際にUMLを使用しなかったとしても、UMLの内容を

理解し、習得することで、システム設計の手法や、オブジェクト指向に

対する理解など、システム開発に関する多くのことが学べスキルアップ

できることは間違いないです。もちろん実際にUMLを使用した開発にも

役立ちますし、自らUMLでの設計を取り入れた開発にチャレンジする

のも良いと思います。

 

全てではなくとも、ユースケース図、クラス図、シーケンス図など、

部分的にドキュメントとして作成し活用できるのもUMLの特徴です。

 

この書籍では、第1部で、基礎知識(各図の書き方、活用方法、

UML2.xでの変更点)が簡潔にまとめられており、初心者にも

十分理解できる内容になっています。

また、UMLを業務で活用したいと考えている方には、第2部の

"UMLの適用"がとても役立ちます。

実際に仮想のシステムの開発というストーリーで、分析から、

設計、展開まで現場目線で詳細に解説されていますので、

どのようにUMLを実際の現場で利用するかよく分かっていない

場合の参考になるでしょう。

 

内容

UML2.x準拠「はじめての学習」にも、「体系立った習得」にも最適!!

信頼の定番メソッド+詳説で基礎から実践まで徹底理解!!

3ステップだからよく分かる(1.解説 2.例文 3.練習問題)

 

UML(Unified Modeling Languageとは、システムモデルの表記法です。

本書は、UML2.xの基礎概念と実践的な運用方法を無理なく身に付つける

ことができる構成になっています。

 

ステップ1 丁寧な解説で、1人でもスイスイ学習

UMLの基礎からオブジェクト指向の考え方、各種図形の描画方法、実務での

活用方法に至るまで、初学者の観点からていねいに解説しているため、途中

でつまづくことなく学習することができます。

 

ステップ2 章末の「理解度チェック」で学習内容を確認

各章の最後に「理解度チェック」を収録。「どこで」「なにが」理解できなかった

かを明らかにし、弱点を克服することができます。

 

ステップ3 付属CD-ROMのツールで実力をつける

コンポジット構造図やタイミング図、相互作用概要図といった、UML2.0

以降に追加されたダイアグラムなどに対応したパターンウィーバー2.3

CE版で、学習の成果を活かして図形を描画することができます。

 

目次

第1部 UMLの基礎知識

  • 第1章 UMLとは
  • 第2章 オブジェクト指向とは
  • 第3章 ユースケース図
  • 第4章 オブジェクト図
  • 第5章 クラス図
  • 第6章 コンポジット構成図
  • 第7章 コンポーネント図
  • 第8章 シーケンス図
  • 第9章 コミュニケーション図
  • 第10章 タイミング図
  • 第11章 相互作用概要図
  • 第12章 ステートマシン図
  • 第13章 アクティビティ図
  • 第14章 配置図
  • 第15章 パッケージ図
  • 第16章 UMLの基礎概念

第2部 UMLの適用

  • 第17章 現状業務(AsIs)の分析
  • 第18章 現状業務の改善(ToBe)
  • 第19章 要求分析
  • 第20章 システム分析
  • 第21章 システム設計(システム全体の俯瞰とアーキテクチャの決定)
  • 第22章 システム設計(ユースケースの実現)
  • 第23章 システム設計(システム全体の構造決定)
  • 第24章 プラットフォームへの展開

付録

  • 理解度チェック解答集
  • パターンウィーバーについて

 

 ※UMLの概要だけを理解したいのであれば、類似のこちらの

書籍も良いのではないでしょうか?価格も安めです。