-
Recent Posts
Recent Comments
- masuda on 極めるという事を少し
- konica on 極めるという事を少し
- t.masuda on 役所風にEnterキーで次のテキストボックスへ移動
- ふたみ on 役所風にEnterキーで次のテキストボックスへ移動
- masuda on .NET(C#/VB)で、アプリ設定を読み書き
Archives
- September 2010 (5)
- August 2010 (25)
- July 2010 (31)
- June 2010 (7)
- May 2010 (20)
- April 2010 (13)
- March 2010 (10)
- February 2010 (10)
- January 2010 (1)
- December 2009 (11)
- November 2009 (15)
- October 2009 (15)
- September 2009 (7)
- August 2009 (1)
- July 2009 (2)
- June 2009 (14)
- May 2009 (23)
- April 2009 (19)
Categories
Blogroll
Meta
-
Monthly Archives: October 2009
設計の事始め(その1)
ソフトウェア設計コンサルタント、っていう職種があるかどうかは怪しいのですが、そういう名刺を作ろうかなと画策中です。それで、コンサルタントって名乗るからには、何かをサポートできないといけないですよね。当然ですが。 設計というのが何処の部分を示すのかというと、ウォーターフォール的に言えば、要件定義と開発/実装の間です。そして、重要なのは先のエントリで説明しましたが、プログラム言語に依存しません。勿論、プログラム言語特有のメリットを使う場合もあるでしょうが、システムをトップダウンで見たときは、特定のプログラム言語、ライブラリに依存しないほうが、実装上の選択肢が多くなり、開発費等のコスト削減に寄与できます。当然、スケールも柔軟に考えることが可能です。 そんな訳で、最初は「システム設計」から入りましょう。 システム設計なんて大層な名前がついていますが、所謂、どんなシステム構成にするの?ってのを図示します。 システム構成のパターンは、ほぼ決まっています。 ・スタンドアローンのアプリケーション(インストールアプリ、ゲーム) ・クライアント/サーバー型 ・不特定多数のWEBサイト ・特定人数のWEBサイト(SNS) ・UIを持つWEBサービス(ブログツール) ・UIを持たないWEBサービス(金融、株式データサービス) などです。この他にもいくつかあるでしょうが、大抵のものはこの範囲におさまってしまいます。 これにデータベースの有無が関係します。データベースの有無は、既存のデータ/テーブルを使うのか、新規にデータベースを使って良いのか、に関係してます。 これらを図に書くと、 ■スタンドアローン型 ■クライアント/サーバー型 ■不特定多数のWEBサイト ■特定人数のWEBサイト ■UIを持つWEBサービス ■UIを持たないWEBサービス となります。 新規システムの場合は、ネットワーク回線速度も含めてすべて設計する訳ですが、ほとんどの場合は既存のリプレースになります。なので、それぞれの箱や線について、既存の制約を書きだしていきます。 例えば、不特定多数のWEBサイトを再構築する際のチェックポイントを抜き出します。 チェックポイントの抽出は簡単です。 ・接続点 ・動作点(コンピュータそのもの) にマークを付けます。動作点については、 ・CPU ・DISK ・MEMORY を調べます。この根拠は microsoft のパフォーマンスチューニングのwebページにあります。 # ちょっとリンク先を失念。 と言う訳で、システム構成を決めるときには、 ・CPU ・DISK(永続化の容量) ・MEMORY(必要メモリ、推奨メモリなど) ・NETWORK(回線速度) … Continue reading
Posted in 設計
2 Comments
Microsoft Expression Subscription
MSDN/Expression Media Subscriptions Shipment Notification なるメールが来ているなぁ、と思ったら、Expression サブスクリプションが開始されたようです。 Expression シリーズはデザイナ向けということで、Expression Blend や Expression Media などがあって(Blendしか使ったことがありませんが)、Expression 3 になってから、「Expression Studio 3」ってのにまとめられました。 私の場合 MSDN を持っているから、一緒に Expression も付いてきたんですかね?よくわかりませんが。 Expressoion サブスクリプション http://expression.microsoft.com/ja-jp/subscriptions/default.aspx <001> MSDN サブスクリプション http://msdn.microsoft.com/ja-jp/subscriptions/default.aspx <002> ちなみに、送られてきたメールのURLがですね、 MSDN Subscriptions: http://msdn2.microsoft.com/en-us/subscriptions/aa948874.aspx Expression Subscription: http://expression.microsoft.com/subscriptions/TBD なことになっていまして(笑)、「TBD」って何だよおぃ!って状態です。 当然「ご指定のページはありません」になります。
Posted in 開発
Leave a comment
設計コンサルタントという職種と設計工程
とある就職サイトで「設計コンサルタント」という名称を知りました。 常々、ITの設計のことを「アーキテクト」=「設計者」という割には、詳細設計は大手若手SEに任せていたり、職種自体も雑誌の名を冠しているぐらいで怪しい感じがするし、と思っていて「アーキテクト」ってのはどんなもんなんですかね~、と思っていたわけですが。 なるほど、建築関係や三次元の意匠デザイン(かな?)の場合、「設計コンサルタント」という職名があるようです。 龍菜の3次元CAD活用相談室(1)私の設計、変ですか? http://monoist.atmarkit.co.jp/fmecha/articles/dragon/01/dragon01a.html http://www.page.sannet.ne.jp/gah01300/ 本来、ITシステムを構築するときには、要件定義、設計、開発/実装、試験、運用、なる流れが必要なのですが(ウォータフォール形式的に言えばね)、受託開発を多くやってきたので、 ・大手の要件定義 ・大手の設計 が良く分かりません。つーか、見ていて不安なんですけど。 要件定義のほうは、提案/営業活動/製品説明/予算/納期などなど、顧客からの要望を引き出す技術(あるいは製品を押しつける技術)が必要になるので、いわゆるIT関係とは離れたノウハウがが必要です。あるいは他の業界とは同じような活動の仕方があります。 また、受託開発をする会社の場合は、設計が落ちてくるのを待つことが多いので(この体制が問題だと思うのですが)開発/実装/単体試験/結合試験/納品までのプロセスをいかに効率よくやるのか/コストを掛けないか、という「オフショア開発」的なノウハウに長けてきています。 なので、真ん中にある「設計」が抜けていることが度々あります。というか、設計とは名ばかりで、中身がいきなり細かい詳細設計をやっていたり、逆に要件定義で設計をやっていたりします。 設計の大まかな分類/種類を並べると、 ・システム設計 ・ソフトウェア設計 ・概要設計 ・外部設計 ・内部設計 ・詳細設計 というものがあります。他にもデータベース特有の ・概念設計 ・論理設計 ・物理設計 なるものもあり、オブジェクト指向で言えば ・ユースケース ・クラス図 ・シーケンス図 などのUML関係があります。他にもデータフローチャートなんてのもあります。 本来、これらの設計工程は、建築業界の設計業務と同じように、三面図/見取り図などの図面と変わらない意味を持つはずですが、なかなかそうは行きません。 実際、CASEツールの筆頭としてUMLが持て囃されたころから10年経ちますが、未だにUMLで統一された設計書を出す会社を見たことがありません(部分的には使うことは多いのですが)。 UMLの場合は、所詮ツールですので、本来の目的は要件を如何に実装へ繋げるかという「設計」のサポートが本来の役割です。なので、UMLからJavaやC#のコードがはきだされるのは、補助的な機能に過ぎないんですよね~(というのを数年前に気付いた)。 と、改めて先のITの設計工程を見直してみると、実はこれらはプログラム言語に依存しません。当たり前といえば当たり前なのですが、予算/期間/製品/技術スキル/可搬性などを考慮するので、設計自体にjavaだのc#だのという制限は入ってきません。勿論、制約として現在のシステムがjavaで組んであるので流用を含めてjayaにしたいとか、フリーの環境で揃えたいので ruby や php を使うとか、組み込みシステムなので c 言語以外は使えないとか、があるので、これらは「制約事項」として設計工程に盛り込みます。 そういう訳で、しばらく … Continue reading
Posted in 設計
Leave a comment
ソフトウェア開発の超概算見積もり
(誰も待っていないと思うけど)お待ちかねの「3分間見積もりクッキング」の時間です。 結局のところ「概算見積もり」というのは、QCD(機能、コスト、納期)の枠を決めることで、その範囲内で、 ・人員を確保する。 ・機能を配分する。 ・社員を育てる。 ・できるだけ、利益を出す。 を行います。 なので、以上を踏まえたときに、大まかな見積もりは以下の点のみ決めます。 ■発注会社サイド ・全体の開発予算(コスト) ・開発期間(納期) 機能が抜けているのは、作らなければいけない機能よりも、予算や期間が優先されることが多いためです。 特に発注会社の場合は、 ・開発予算から利用するアプリケーションの減価償却 ・利用開始時期から、開発期間 が決まるために、ある意味で「機能」のほうが調節可能な場合が多いのです。 # 現に、予算が少ない場合は、機能削減で凌ぎますし、 # 予算が多い場合は「機能を盛り込み」ます。 # ただし、官庁系のように入札が行われる場合は、かなりの程度まで要求仕様=機能が # 決まっているために、別な概算予算の立て方が必要です。 ■IT会社サイド IT会社(受託請負)の場合は ・単価(コスト) ・確保できる人員(人) が決まっています。 ソフトウェア開発の場合、必要経費のほとんどが人件費のため、概算予算を立てるときに「人の単価」と「人」が最大のボトルネックになります。 さて、この単価、と人はどこから決まるのかと言うと、 ・給与(コスト) ・技術スキル(勤続年数など) に依ります。 技術スキルを勤続年数に掛けるかどうかは疑問が多いところでしょうが、 若干でも「年功序列制の給与体系」をIT会社がしている場合は、勤続年数を考慮したほうがよいでしょう。また、年棒制など序列がない場合は、ITSSなどを利用したレベルを考慮するとよいでしょう(個人的にITSSは反対ですが、外部的な指標としてはアリです)。 ■IT会社サイド(その2) さて、IT会社としては、先の人員(開発要員)だけで廻るわけではありません。 ここを、発注会社/IT会社ともに忘れてしまうことがあるので問題です。 ・リスク(保険) … Continue reading
Posted in プロジェクト管理
2 Comments
Windows 7 のタスクバーを小さくする/細くする
Windows 7 が昨日発売、ってことで、VMWare に入れてみました(MSDN版なので、手元にあるやつですが)。 日経新聞には Vista の3か月分の予約が入っていて売れ行き抜群だそうですが、XP->Win7の移行は進むんでしょうか? さて、うちの家庭用PCもWindows 7にしました。Vaioの古いデスクトップを7年間使い続けてきたのですが、最近HDDの調子が悪くて。中身を空けてHDDの電源ケーブルを抜き差しすると、動くようになるので接触不良な気もするんですけど。いまいち、HDDのコネクタが悪いのか、電源のほうのケーブルが悪いのか判断がつかないので、かれこれ1年程。 で、新しいPCを買って Windows 7 を入れました。起動は早いですね~。が、あちこちのブログで書かれている通り、 ・起動は早いが、そのあとのログインが遅い ので、起動→ログインして使う、までの時間は Vista と変わりません。か、むしろ Vista より遅い気がします。 また、スタートメニューのデフォルトの「電源アイコン」(○のやつね)の動作が、 ・Vista ではスリープ状態(休止状態だったかな?) ・Windows 7 ではシャットダウン になっており、エコロジー対策?が為されています。まぁ、休止状態が楽なんですけど。 さらに言えば、スタートメニューの一番上に鎮座していた IE と Windows メール が無くなっています。 これは EU 向け対策(IE無しの Windows 7)と、メーラーが Windows Live メールに変わったためです。 … Continue reading
Posted in 雑談
Leave a comment