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

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

アジャイルは大学や企業の偉い人に、どう見られているのか?

2013-04-05 21:16:23 | AI・BigData
こんなTweetがあるみたい・・


Yoshihito Kuranuki‏@kuranuki
「例えば、アジャイル開発では設計書は更新しない」・・・えっと、これはエイプリルフールなのかな。。。 Link: 誤発注裁判が改めて問う「バグは重過失か」 http://itpro.nikkeibp.co.jp/article/COLUMN/20130325/465906/ … via @nikkeibpITpro

https://twitter.com/kuranuki/status/318535749920247810


誰が、

「例えば、アジャイル開発では設計書は更新しない」

と思ったかが問題ですよね。
東証の人が思った、弁護士が思った・・・というより、
意見書を書いた専門家が思ったと考えたほうが素直ですよね。
(すくなくとも、専門家は、その考えを否定しなかった)

そして、相手方の専門家も、それを否定しなかった。
(否定するなら、相手の言っていることに根拠はないと、
 すかさず反論するはず)。

つまり、専門家の方々は、

「例えば、アジャイル開発では設計書は更新しない」

と思っていると推察される。




 ソフトウェア工学の専門家のかたとは、

  大学や企業の研究室、開発の偉い人のはず。。。

  あんまり、新入社員が、意見書とか、書きませんよね、当然

 そういう人たちに、

  「例えば、アジャイル開発では設計書は更新しない」

 と見られていると考えて、まず、まちがいない。




 ここから浮かび上がってくる、

 アジャイルは大学や企業の偉い人に、どう見られているのか?

 っていうことは、実は重要。

 アジャイルに否定的な見方を、
  大学の先生にされると、大学生は、否定的な感情でフォーマットされるし、
  企業の偉い人にされると、会社で導入しにくい。

 ただし、企業に関しては、日経ほにゃららで、「アジャイルでこれだけ生産性向上」
 とか、ビッグデータばりにやれば、OKかもしれない・・

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

昨今の開発スタイルの流れを、MVCでまとめてみる

2013-04-05 18:01:25 | AI・BigData
最近の開発スタイルは、M,V,Cに対する力点の置き方の違いで、
いろいろと分かれている気がする。




■モデル(M)に力点を置いたもの
 モデルに力点を置き、モデル、さらにDBの内容に基づき
画面自動生成などを行う。

 たとえば、cakeだと
 Viewに対するコントローラーが必要で
 コントローラーに対するモデルがあることが期待され
 ってなってくると、

 モデルがあることが必要になってくる。
 この場合、Viewのつくりは固定的な場合が多い。

 Rails系、SugerCRM5.0のモジュールビルダー
 たぶん、GeneXusなどもこの流れ

 UIを重視する場合などは、この手法だと、自動化しても、
効果があまりなく、逆に混乱する。




■コントローラー(C)に力点がおかれたもの

 そのため、モデルとビューを分離する。
   モデルは、サービスとして存在し、
   ビューはユーザーインターフェースとして存在する。

 モデルとビューは違うものだから、コントローラーで、
   モデルからデータを収集し、
   ビューで使うデータに詰め替える

 こうすると、
   モデルは、モデルだけで完結するため、モデルのみでテストでき、
   ビューは、HTMLで作成したあと、
        コントローラーでダミーの値を入れて確認、
   そののち、モデルからデータを取ってきてビューの変数にいれる。

 ビューから飛んできたデータは、
   コントローラーでチェックしたあとに、
   保存などモデル処理し、次画面にとび、
   次画面でははじめ、画面表示データを取得し、表示する。

 データは、モデルに存在しても、画面(View)に存在しても、セッションに存在しても
   すべてコントローラーでアクセスできるので、
   コントローラーでデータを操作するなら、すべてアクセスできる
 この際、モデルに存在するデータは隠蔽されるので、DBでもメモリ上でもかまわない

 このようなMとVを分離する考え方は、長く続いた。
 MとVを分離した場合、Vのみをつくる、Mのみをつくる、糊付けするという分業が
やりやすい上、属人性を排除しやすい。そこで、人を追加することに意味があった。





■ビュー(view)=画面に力点を置くもの


この後、UIに力がいれられるようになり、UXでは、

  Viewの内容をもとに、クエリを作り、それに対応したモデルを作成する

という方針になってきた。

 特に、NoSQLが「ネット上の」主流の論調になると、
  (実際に稼動している主流というわけではない)
 NoSQLは正規化すると、やりにくいので
  (トランザクションの問題とかあるから)、
 正規化を否定する方向になってきた
  (実は、RDB否定よりも、正規化の否定のほうが、開発上、影響が大きい)


 そして、cakeもzendもそうだけど、
(1画面1コントローラーに、「わざわざする」ことをしない場合)、
1コントローラーに各画面の処理をてんこ盛りすることになり、
コントローラーが、肥大化する。

 なにより、1コントローラーが1ソースになるため、
  画面ごとに担当者がばらばらで、
  コントローラーで処理をいっぱい書こうとすると、
  ソースをマージするのが大変になる。

 じゃあ、1画面1コントローラーにすればいいじゃない
 と思うかもしれないが、世の中は、そう進まなかった。

 Javaの世界ではstrutsは、画面初期設定(reset)で、
 画面表示内容のような大きな処理をすることを
 好んでいない(と確か思った)

 また、PHPの世界では


CakePHP コントローラに処理を書かずにモデルにメソッドを追加しよう!
http://blog.syuhari.jp/archives/172


にあるように、コントローラーに処理を書かずにモデルに処理を書き、
画面の内容をダイレクトにモデルにつなげるようになった。

このため、MとVが分離せず、モデルを修正すると画面がエラーになったり、
画面を修正しても、モデルを修正しないと確認できなかったりすることも
起こる。

で、そうなってくると、モデルとビュー作成者は、同じ人のほうがやりやすい
別の人だと、モデルの出来をまって、ビューの出来を待ってとか、待ちが発生する。
さらに、同じ人がやった場合、どこまでモデルでやるか、どこからビューでやるかが
自由に選択できるから。

ただ、ここまでの自由度を与えると、属人性が出てくるので
他の人が手伝いにくい。

結果として、おひとりさま開発のほうが、やりやすいことになる。

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

ChromeのWebkitに代わる新しいレンダリングエンジンBlink

2013-04-05 15:01:55 | Weblog
まず、そのニュースは、


Google、WebKitに代わる新レンダリングエンジン「Blink」を発表
http://www.itmedia.co.jp/news/articles/1304/04/news037.html


にあって、その話は

Blink: A rendering engine for the Chromium project
http://google-opensource.blogspot.jp/2013/04/blink-rendering-engine-for-chromium.html

に書いてある。

そのBlinkプロジェクトは、

こちら
http://www.chromium.org/blink

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

Gooにつづき、Yahooも、不正アクセスらしい・・

2013-04-05 11:56:48 | Weblog
昨日、

gooの「不正ログイン被害のご報告とパスワード再設定のお願い」
http://blog.goo.ne.jp/xmldtp/e/49fc3da5f8ce743fbfc7e3c1ffda6508

というエントリを書いたけど、YAHOOも・・


ヤフーに不正アクセス 127万件の情報持ち出そうとするプログラム
http://news.goo.ne.jp/article/sankei/nation/snk20130404568.html


とのこと・・・

最近、流行ってる?

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

PressmanのSoftware Engineeringを超訳ななめ読み その6-要求の理解

2013-04-05 09:25:41 | 開発ネタ
みんなから、無慈悲な稲妻を受けないために、
大事そうなところを、超訳&ななめ読みしている

PressmanのSoftware Engineeringを超訳ななめ読みする

前回までで、第一部の第1~3章をやった。

今日から「第二部 モデリング」
この部は、4章~13章まで。
4章は、実践ガイドとしての法則ということで、法則というか都市伝説というかが、
いっぱい並んでいるけど・・・まあ、省略!
ということで、今日は5章




■第5章 要求の理解

「5.1 要求工学」
 以下のタスクが並行して起こる
   はじめに(インセプション)
   抽出する
   詳述する
   交渉
   仕様化
   妥当性の評価(バリデーション)
   要求のマネジメント

 で、コラムに「ソフトウェアの要求仕様のテンプレート」がある
 以下のカタチ

   目次
   変更履歴

   1.はじめに
    1.1 目的
    1.2 表記法
    1.3 対象者
    1.4 プロジェクトのスコープ
    1.5 参照文献

   2.概要
    2.1 製品概要
    2.2 製品機能
    2.3 利用者の特性
    2.4 操作環境
    2.5 設計と実装上の制約
    2.6 ユーザーのドキュメント
    2.7 仮定と依存性

   3.システムの機能
    3.1 システム機能1
    3.2 システム機能2
        :(などなど)

   4.外部インターフェース要求
    4.1 UI
    4.2 ハードウェアインターフェース
    4.3 ソフトウェアインターフェース
    4.4 通信インターフェース

   5.その他の非機能要件
    5.1 性能要件
    5.2 安全性要件
    5.3 セキュリティ要件
    5.4 ソフトウェアの品質属性

   6.その他の要求
    付録1:用語集
    付録2:分析モデル
    付録3:問題点リスト

まあ、IEEE std-830見たいな内容が載っている。




■5.2 基礎の確立
 要求を獲得するまでの手順が書いてある

  5.2.1 ステークホルダーの識別
  5.2.2 複数の観点の認識
  5.2.3 コラボレーションに向けて作業する
  5.2.4 はじめの質問を尋ねる
    インセプションデッキみたいな話
    (インセプションデッキは出てこないけど)




■5.3 要求抽出
  5.3.1 共同で出した要求を集める
  5.3.2 品質機能展開(QFD)
  5.3.3 シナリオを使う
  5.3.4 抽出作業の成果物




■5.4 ユースケース開発
  ユースケース記述が載っています。

  ユースケース
  主なアクター
  ゴール
  事前条件
  トリガー
  シナリオ
  例外
  優先順位
  いつ使えるか
  使用頻度
  アクターに対するチャネル
  二次的なアクター
  二次的なアクターに対するチャネル
  問題点

 などなどを挙げる。
 また、UMLのユースケース図が載っている




■5.5 要求のモデルを構築する

  5.5.1 要求のモデルの要素
   ・シナリオに基づいた要素
   ・クラスに基づいた要素
   ・振る舞いの要素

   アクティビティ図やクラス図が載っています

  5.5.2 アナリシスパターン




■5.6 要求の交渉
 5.7 要求の妥当性確認
 5.8 まとめ
   そのほかつづく




こんなかんじ

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