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

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

ユーザーの矛盾した要求を可視化し、最終的にUMLの形に落としこむ手法を、「世界的には」教えている

2015-11-08 15:05:14 | 開発ネタ

・・・日本は教えていないみたいだけど・・・


要求仕様書は(UML等を使ったり、文書だったりの違いはあるモノの)、一般に、

 ・データフロー(業務フロー)がどうなっているか
 ・データ構造がどうなっているか

を示している。たとえばUMLだと前者はユースケース図→アクティビティ図、
後者はクラス図となる。そして、これらの図の間にコンフリクトや矛盾がないことが
よいものとされている。

しかし、実際のユーザーの要望は、ユーザー間で矛盾していたり、
コンフリクトがあって、それを調整する必要がある。
 そして、その結果が上記UMLに書かれる。




このようなユーザーの要望、意図を記述し、その間の矛盾、トレードオフを
可視化する手法がKAOSで、Lamsweerdeさんは、そのKAOSを使って、
UMLのユースケース図、クラス図等に落とし込み、要求を出す手法を、

Requirements Engineering: From System Goals to UML Models to Software Specifications

で説明している。全体図は、こんなかんじ。

8章、9章がKAOS、
10章がクラス図(を本文中では説明している)
11章がエージェントモデルで、その中でi*を説明している
12章がユースケース図
13章がシーケンス図とステートチャート図
に展開している(これ以降の章で、形式手法に展開している)

世界的にみると、要求工学を教える場合、この本が使われているみたい・・・

なので、ユーザーの要求(をゴールという形で表現するゴール指向分析;KAOSはその一派)
から、UMLに落とし込んで、要求仕様を作るという手法は、世界的にみると
当たり前なことなのかもしれない。





最近、ある要求工学の授業内容をみる機会があった。
で、その資料をみたら、上図(全体図)を説明すべきところに
別な図が入っていて・・・UMLとの連携は書かれていなかった。

たぶん、説明もしていないのだろう・・・

ってことは、日本では、ユーザー要求を、どう処理すると、UML
に落ちて、システム化できるかは、説明されていないということだ・・・
(その授業で説明されないなら、たぶん、日本のどこの要求工学の
 授業でも説明されないであろうと思われる授業なので・・)

・・・世界的には、説明されているのに・・・

だから


顧客分析力がこんなに求められちゃうんだよね。
ソフトウェア工学の割には・・・

う~ん、日本は遅れているかもしれない・・・



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

ソフトウェア工学におけるアカデミックと現場の違い その2:ソフトウェア工学(1)

2015-10-23 13:18:15 | 開発ネタ
「ソフトウェア工学におけるアカデミックと現場の違い」
前回は"アスペクト指向
について取り上げたけど、ソフトウェア工学自体の考え方も違う。

そのことについての前半




■大学でのソフトウェア工学の扱い

大学では、情報学科などで、ソフトウェア工学は、
「ソフトウェア工学」「システム設計論」「ソフトウェア設計論」
などという形であつかう。

アカデミックでの認識は、ソフトウェア工学は
・1968年の NATO Software Engineering Conferenceから
・はじめ、プロセス中心に考えていて
 
・それだと、変化が大きいので、
 その後、データ中心設計が出てきて
  構造化設計によるDFDと
  データを表現するER図を使って開発し、

・その後、さらに変化に柔軟に対応するため、
 データとプロセス(メソッド)を局所的にまとめる
 カプセル化(情報隠蔽)という考えに基づいたオブジェクト指向が
 現れた
 オブジェクト指向は、いろいろあったが、UMLを使って
 開発するようになった。

・今、横断的関心事を扱うアスペクト指向が出つつある

という解釈になっていると思う。

 大学ではそこで、
  構造化設計のDFDとER図を教えるところと
  オブジェクト指向のUMLを教えるところが
 ある。両方教えているところも有る。




■ソフトウェア工学だけでは、システム開発をカバーできない(1)

システム開発工程は、
  要求
  設計(外部設計、詳細設計)
  実装
  テスト
とある。このうち、要求には2種類あって、

 既存の業務システムがベースになって、それをコンピューター化するもの
 まったくの新規システム

とある。
UMLで教える場合、トップは、ユースケース図となる。
ユースケースを書くためには、業務に分割できるほど、業務を知らないといけないが、
それは、ヒアリング等で可能であるという立場をとっている。

これは、DFD+ER図でも同じで、一番初めは、
DFDのコンテキストダイアグラムを描く。このとき、他システム
とか、利用者とかを外部に書くけど、どうして、その人が登場するのか
については、ヒアリング等でわかるという立場をとっている。

そして、ER図・クラス図などを作成する場合、概念モデルが必要となり、
この概念モデルは、ドメイン知識が必要となるが、これも
ヒアリング等でわかるという立場をとっている。

ということは、逆に言うと、全く分からない新規ビジネスを
ITを武器にビジネス化、マネタイズする方法は、大学のソフトウェア工学の
範囲ではない(研究まで含めて、アカデミックにおけるソフトウェア工学の
範囲でもないかもしれない)

これは、前に

新規事業のビジネスモデルを作り出す方法
http://blog.goo.ne.jp/xmldtp/e/30a301eceec2e0aa3860a00705f17f98

で書いた、デザイン思考の範囲になる。




■ソフトウェア工学だけでは、システム開発をカバーできない(2)

上流だけでなく、下流もカバーできない。

設計からプログラムに落とすためには、
プログラムモジュール内でどのような処理を行うかを
詳細設計で記述する。

しかし、クラス図は、クラスのメソッドまでは記述できるが
メソッドの内部は記述できない。

メソッド内部の呼び出し順序については、シーケンス図で
記述できるが、シーケンス図で記述するメッセージを
どのように組み立てるかという手順は記述できない。

これは、DFDの場合は、ミニスペックで記述できるが、
ミニスペックは自然言語なので、その記述で十分なのかという判断ができない




■現場では、違った方法で行う

そこで現場では違った方法というか、UMLでも使うもののウェイトが
異なる。プロセスに着目するほうがまだ、主流なのだ。

これについては、今記述する時間が無いので、また今度続きを書く。


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

MySQLでALTER TABLEしたら、戻ってこない-他で握ってたみたい・・・

2015-10-16 13:36:44 | 開発ネタ
MySQLでALTER TABLEしたら、戻ってこない・・・

っていうと、
「データベースが大きいんじゃないの?
 インデックス領域は?」
っていうことで、ここ


大きめのテーブルにカラムやインデックスを追加する際の注意
http://d.hatena.ne.jp/LukeSilvia/20090315/p1


に絡むことを考える。
はじめ、そうじゃないかな~っておもったんだけど、

show processlist;

してびっくり!

サービス稼働中にMySQLでALTER TABLEしたら Waiting for table metadata lock が溢れて死んだ
http://qiita.com/cs_sonar/items/0d4dc4477d0fea01cb09

に書いてある状態、つまり、sleepしている処理があって、
(それもいっぱい)そいつらが、テーブル握ってたみたい・・・


P.S ちなみに、そのテーブル、開発用のDB内のテーブルで、
   そのテーブルの更新処理のエラー時にバグがあるのか?
   っていうかんじみたいでした・・・

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

ライブラリにしたり、再利用するのに向いているのは、システム中のどこか?

2015-09-28 15:21:33 | 開発ネタ
答え:非機能要件を実現する部分
   とくに、ユーザーインターフェース部分は、ライブラリ化する
   べきである。

理由:
 設計、実装は要求を実現していると言えるはずである。
 要求は、
  ・そのシステム固有の機能を決定する(主にデータフローに基づいた)機能要求と
  ・他のシステムでも共通の関心事となるUI,セキュリティ等を決めた非機能要求
 にわかれる。

 ライブラリや再利用部分は、共通部分(=共通の関心事)である。
 よって、ライブラリや再利用部分は、非機能要件を実現する部分に向いている

 特にユーザーインターフェースは、アプリケーション間の使用感を統一させる為、
 共通化するのが望ましいので、ライブラリ化すべきである。

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

as-isとto-be→記述と規範

2015-09-10 15:15:46 | 開発ネタ
昨日、

ユーザーストーリーとDtoD、シナリオとカスタマージャーニーなんかのまとめ(&偏見)
http://blog.goo.ne.jp/xmldtp/e/44240f36fc047485f09e55ad84792741

で、KAOSをto-be,それ以外をas-isと分けているけど、その根拠は?
と聞かれると思うので、書いておきます。

Lamsweerde先生の

Requirements Engineering: From System Goals to UML Models to Software Specifications

に、そのようなことが書いてある・・・
っといっても、as-is,to-beとは、出てきません。

descriptions と prescriptions という言葉ででてきます。


この言葉の意味ですが、

記述と規範[prescriptive_grammar]
http://user.keio.ac.jp/~rhotta/hellog/2011-05-14-1.html

の意味だと思います。
descriptions→あるがままの姿→as-is
prescriptions→あるべき姿→to-be
ということになりますよね。

Lamsweerde先生は、上記の本の4章において、4.3章で、準形式(semi-formal)な形として、ダイアグラム(UML,ER図、DFDなど)を取り上げ、4.4章形式仕様として、VDMその他もろもろを挙げています。そして、4.5章の結論で、これら、準形式(=UMLなども含まれる)、形式手法とも

Confusion between descriptions and prescriptions

と指摘しています。

つまり、as-isとto-beが混同している、ドメインプロパティと、要求、仮定と定義の区別がないとしています。そして、intentを区別する(to-beを明確にする)というのが、ゴール指向のモチベーションと記述しています。

そして、そのゴールを説明する7章の

7.1 What are goals

で、

A goal is a prescriptive statement of intent

「ゴールとは、意思(意図)についての規範的な文」としています。

つまり、ゴールは「こうあるべき」というto-be(規範)についてかかれたものです。このゴールによって、構築されたゴール指向分析であるKAOSは、規範的→to-beを記述したものといえます。

 それ以外のダイアグラムなどは、Lamsweerde先生の視点に立てば(それらがto-beを記述できないので、KAOSやっているんだから)to-beではなく、as-isになるということです。
この視点で、昨日のエントリは書いています。

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

ユーザーストーリーとDtoD、シナリオとカスタマージャーニーなんかのまとめ(&偏見)

2015-09-09 14:42:23 | 開発ネタ

要求抽出において、
 アジャイル界隈で使われるユーザーストーリー(マッピング)とDtoD、
 アジャイルでなくても使われるシナリオ
 マーケティングから来たカスタマージャーニー
 慶応SDMの本で男の人同士で抱き合っていたストーリーテリング
なんかを、独断と偏見でまとめてみる。




■まずは、シナリオやストーリーテーリング

 要求抽出する場合、
   誰が(どんな役割の人が)どんな業務(ユースケース)に関わってる?
 と、ユースケースで業務を抽出し、
 その業務の手順をアクティビティ(図)にまで落とすということが考えられる。

 ただ、この場合、抽象的に物事が進められてしまうので、具体的にストーリーを
追っていくと、抜けていたり、「あっ違う!」というケースがある。
 そこで、(製品ならプロトタイプだけど、サービスだと目に見えないので)
具体化して、実際に流れを追っていく、「シナリオ」や「ストーリーテーリング」
がある

 シナリオは、具体的に場面設定・登場人物設定をして、時系列に操作内容などを
追っていく。
 ストーリーテリングも、(男の人同士が抱き合って箱を持つのが目的ではなく・・
慶応SDMの本を持っていない人には意味通じないと思うけど)ストーリーの
スタートからエンドまでを実演して、内容を確認する。
 どちらも、最初から最後まで具体的に追ってみるというところはおなじで
違いはシナリオは自然文で書き、ストーリーテリングは実演するところといえる。




■ユーザーストーリーとユーザーストーリーマッピング

 アジャイル界隈だと、ユーザーストーリーとユーザーストーリーマッピングが
この辺の操作に該当する。

 
ユーザーストーリーマッピングを学ぶときに読むべきスライド3選
http://hosukepoi.hatenablog.com/entry/2013/05/30/222338

にその辺のことが書いているので、まあ、ここから引用しちゃいましょう。
(引用は太字箇所)


ユーザーストーリーとは?

 ユーザーストーリーとは、顧客の視点からサービスや商品の要件を記述したものです。

 書くときは

<役割>として
<機能や性能>が出来る。
それは<ビジネス価値>のためだ。

という風に書きます。


役割がアクターで、「機能や性能ができる」点はユースケースに近いものがある
(もうちょっと真面目に言うと「機能や性能ができ」ているというのが、ゴール、
 そのゴールの達成手段として、こういう機能があるというのが、ユースケース)

が、それの目的であるビジネス価値が書かれている点がユースケースと違う
(ユースケースは実行したらどんな価値を生み出すのかというゴールは分からない)

また、ユースケースのアクターはシステム境界に属する「ユーザー」で書くもの?だが、
ユーザーストーリーの場合は、結果を受け取る「エンドユーザー」で書くことが多いかも?

なお、ユーザーストーリーのほうが細かいという指摘もあるが、
いや、それはユースケースだって、細かく書ければ、いくらでもかけるよと反論されたら
おしまいなので、そこはめんど~くさいから突かないこととする(本質的にはゴールと
ユースケースの違いが有る)

そして

上のようなユーザーストーリーを時系列順に挙げていき、さらに優先度付けをおこなうことで、サービス・商品が満たすべき要件仕様を整理し、全体像をチーム全員で共有するためのツール

ユーザーストーリーマッピング

ということは、ユーザーストーリーマッピングはシナリオと同じ・・・?となってくるけど、
ユーザーの時間軸でならべるという点では同じだが、
  ユーザーストーリーマップは、優先度も考慮して並べる
  シナリオは、もっと具体化して、ヌケや考え方の違いをチェックする。
という点でちがう。

もっと、利用局面的に言うと
  ユーザーストーリーマップは、
   アジャイル開発におけるプロダクトバックログをどうするかの話
  シナリオは、
   要求獲得(一小工程前工程*)における要求の意識合わせの話
で場面が違う
(*一小工程前工程:要求分析は
  要求獲得→狭義の?要求分析(矛盾、曖昧さ排除、優先順位付け)→仕様化(可視化)→検証
 とすすむ。ユーザーストーリーマップは要求分析の優先順位、ユーザーストーリーやシナリオは要求獲得場面)




■カスタマージャーニーマップ

ユーザーストーリーマップでは、じゃあ、ユーザーはどう感じるのか?がわからない。
シナリオやは、普通、感情は書かない・・・10人10色だから、かけない
その点、ストーリーテリングは体感できるけど、他人には分からない
(箱をもって、男の人同士で抱き合うと、どういう気持ちか他者にはわからない-くどいって ^^;)

そこで、カスタマージャーニーマップ。
これは、シナリオ+そのときの感情を表現する
(感情表現してれば、カスタマージャーニーマップって言うみたい。ちょっとぐらい違っても)
有名なのはMONA

https://suedesign4.files.wordpress.com/2011/03/customer-exp-map.jpgより引用
ここに至る過程はhttps://suedesign4.wordpress.com/deliverables/task-3/参照。
上の段の「サービスエクスペリエンス」では(下から見てね)
 ユーザーが、どのようなもの(object)を使って、インターアクションし、
 その場面(環境)はどうで、どんな行動(アクティビティ)をする
というシナリオがまとめられている

その上で、そのアクティビティに対してどんなことが期待され、感情がどう変化するか
折れ線グラフで下に書いてある。

日本語で詳しく見たい場合は、このサイト

カスタマージャーニーマップについての簡単なまとめ
http://u-site.jp/weblog/customer-journey-map

ちなみに、上記サイトはペルソナごとに作っている。
ユーザーごと(ペルソナごと)に作ったほうが、うまくいく
(ペルソナごとに感情が違うから)




■DtoD(Discover To Deliver)

SES2015で、DtoDというのが出ていたので、それをちょっと見した.
(今確認したけどSES2015の予講集にはないので、論文なしポスターかしら)

ちなみに、DtoDは

http://www.ogis-ri.co.jp/learning/1227855_6722.html

にちょっと載っている

発見から納品へ:アジャイルなプロダクトの計画策定と分析

っていう本にでているらしい。

流れとしては、ユーザーエクスペリエンスマップと同じような感じ
ユーザー、インタラクション、なんだったっけか(ポスターにはあった)
・・・終わりから2つ目が環境みたいなかんじで、
いくつかのフェーズにわかれて、それを段階ごとに検討し、まとめていく。

これって、
  ユーザー→システム境界→・・・データ(って、どこかにあった)のように
内部へと分析していくので、表層部分を見ればシナリオ、ユーザーストーリー
データ部分を見ればER図などと、いろいろな図に展開できる。

ただ、感情とか、ゴール(→意図)というニュアンスはない気がする。

感情に関しては、上記のカスタマージャーニーマップは表現している。
ただ、カスタマージャーニーマップはユーザーの表層的な分析の為、
DtoDのようなデータ分析を行わない。

意図とかになると、ゴール指向分析(とくにKAOS)になるけど、疲れたので、
このへんでやめる。




ざっくり感でみると、こんなかんじ

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

画面項目からDBのテーブル設計をする方法 フロントからサーバーサイドへの移行法

2015-09-01 16:24:14 | 開発ネタ
 フロントのほうの設計方法は、ギャレットの「ウェブ戦略としての「ユーザーエクスペリエンス」―5つの段階で考えるユーザー中心デザイン」で、「戦略、要件、構造、骨格、表層」っていう5つの段階で考えればよい手順が示されている。

で、これを、サーバーサイドのDBに持ってくる方法に関しては、DBはDBで、設計方法はあるけど(正規化理論)、それをどう使うのか、書いていない。

ざっくり書いておく




■フロントの画面項目から、テーブルを出す方法

1.各画面の入力項目、出力項目を出していく

  ワークショップ風にやるなら、入力項目1項目1付箋紙をつかうといい。
  例:ログイン画面で、「ログイン名」で1枚の付箋紙、「パスワード」でもう一枚の付箋紙の感じ

2.その項目を、グループごとにまとめる。
  (2-1)項目を●●のXXという形でわざと表現する
   →ログイン名=ユーザーのログイン名、パスワード=ユーザーのパスワード
    受注日=受注した日

  (2-2)そしたら、●●がグループ、上記の例だと、ユーザーや受注でグループを作る
    DBに保存しないもの:操作(~ボタン、並び替え順など)は、ひとまとめのグループに

  (2-3)グループに表題をつける
    付箋紙にグループ名を書く場合、色を変えたほうがいい


3.グループの表題1レコードに対して、各項目は1個かどうか確認する
  1個で無かったら、(たとえ1項目でも)別グループにする
   →すでに出来ているグループに所属するのでなければ・・

  ユーザー1人に対し、ログイン名は1つであれば、ログイン名はユーザーグループ
  ログイン日は、複数考えられるので、別グループに分ける

  →この操作が終わると、第一正規形が完成する

4.各グループごとの関係をいれる
  グループA,Bとあったとき、A1件に対して、Bが何件もあったら1対多
  逆は多対1、両方有り得たら多対多。これをいれる

5.IDをつける
  各グループで、グループ名+IDのIDをつける
   →1件に1つのもので、IDになりえるものがあったら、わざわざIDを
    ふらなくてもよい。
     例:ユーザーテーブルのログイン名
      (振っても良い:その場合IDはユーザーIDとなる)

6.外部キーを入れる
  4の操作で、1対多の場合、多のグループに1のグループのIDを追加する

7.各グループをみて、
  この項目がきたときは、この項目がからなずきている!というのが無いかさがす

  例:都道府県と地域(関東、関西など)
    →ユーザーからみると、どちらも1対1だが・・
  もしくは、ロジック的にこの項目のこの値が決まると、他の項目の値が
  推測できるものを探す。
   それは、別グループにわけ、IDを振って、IDだけを、もとのグループに入れる

  →この操作が終わると、第三正規形が完成する

8.ER図にまとめる
    エンティティ=グループ(エンティティ名=グループ名)
    アトリビュート=項目(付箋紙1枚1枚)
    関係:4でつけた
  →ER図に書ける

  なお、テーブルをつくるときは
    エンティティ=テーブル(エンティティ名=テーブル名)
    アトリビュート(属性)=テーブルのカラム(各項目)
    関係:6で外部キーをつけた
    主キー:5で割り振った
  となる。

9.シナリオに沿って動かしたとき、テーブルのデータが生成、参照、変更、削除
  されるか、矛盾ないか確認





ここでは第二正規形の議論は起こらない(複合キーがないので)
その理由は別のときに・・・

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

「概念モデリング再入門 ~いまさら人に聞けない人のための基礎講座~」を聞いてきた!

2015-06-29 12:17:23 | 開発ネタ
6月26日に、「要求開発アライアンス 6月定例会」に出て


概念モデリング再入門 ~いまさら人に聞けない人のための基礎講座~
講師:河野 正幸 氏 www.openthology.org
ハッシタグ #redajp
https://redajp.doorkeeper.jp/events/26623


を聞いてきた。その話をメモメモ




概念モデリングやってますか
・概念モデリングは非常に有効な活動
・ぜひ一度やってみてほしいーまず始めてみること
・来週からやってみようかなと思ったら成功

内容
1.スタートするうえでの最低限の基礎知識
2.要領よくモデルを書くために知っておくとよいこと

■1.最低限の基礎知識
UMLで書いた概念モデルの例
(クラス図)
 クラスでかく:概念名と属性名
 線:関連
 概念を表す腺
 多重度は重要
 ノートでいろいろ書いておく
基本このくらい。UMLにこだわらなくてよい

手順
1.テーマの選定
2.概念の識別
3.属性の定義

1.テーマの選定
・何をテーマに概念モデルを書くのかをまず決める
・テーマの広さによってモデルの目的や詳細度は変えたほうがいい
 全体概念モデル:全体像をざっくり
 個別詳細モデル:ビジネスユースケース

2.概念の識別
 リソース:経営資源に関する概念
   パーティー(活動する人たち)、もの、場所、ルールポリシー
 イベント:ビジネス上の事象
   通常イベント、異動イベント(管理したい状態の変化)
 データストア:把握しておくことが必要な情報
   口座型、B/S型、P/L型

3.属性の定義
・概念の特性をよく表す
・コードや区分:クラスとして表現
・すべての属性をこの時点で詳細に洗い出す必要はない
・主キーは洗い出しておく

4.関係の定義
・関係と多重度
  多重度:ビジネスルール
・種類を明示したい:汎化
・基本的にはアソシエーションと汎化
・集約、複合までは・・・

■2.要領よくモデルを描くために
NG行動
・理論武装してから始めようとする
・正解かどうかにこだわりすぎる
・途中で投げ出す
  まず2つの知識
    商品(製品、サービス)
    パーティ(自社組織、取引先)
・最初からきれいな最終形を描こうとする
  3段階くらい描いてみる
    1.全体を理解する概念モデル
    2.抽象化せずになるべく詳細に表現したモデル
    3.抽象化して整理したモデル(最終形)

■概念モデルを要領よく描くコツ
まずイベントを見つけ5W3Hを考えてザクッとモデルを描く
  :整理せずにくっつける→1段階目
 業務をよく分析してモデルを洗練する→2段階目
 似たようなものをまとめる→3段階目

双方向で関連を精査して適切な概念構造を導き出す
 多対多になったら注意:間に何かない?
 イベントの明細?→マスタとして別概念!

2つの概念間に別の種類の複数の関連がないか?
  別の見方、管理の仕方をしたいこともある

概念同士の関連において、ロールを意識してうまく表現する。ただしシンプルに!
  ロールを複雑に考えるとハマる。なるべくシンプルに

モノに関連している概念を考える場合、
  それがモノの種類を扱っているのか、
  現品を扱っているのか
 を精査することで正しい理解が得られる
  例;新車の注文→車種が重要(今、車なくてもOK)
    中古車の注文→車両:その車を注文している

ルール、手順、ポリシー「知識レベル」
  オペレーション管理「操作レベル」をわける
 「知識レベル」、「操作レベル」ファウラーがアナリシスパターンで
  (知識レベル:クラス間?操作レベル:オブジェクト?)

口座型データストアは
  うけ払いの記録を概念として取り出す
  その増減をもたらした業務イベントとの関連
 で表現するとすっきり!
 例:商品在庫
   受払記録:在庫
   イベント:入荷、出荷
 →マーチンファウラー:勘定パターン

■最後に
・つべこべ言わずにかけ
  数をこなせばうまくなる
・みせる
・業務とDB設計用は分けて(目的は切り分けて)

・ビジネスユースケースで表現するテーマが範囲
 ないし、既存モデルがある場合がそこ
・最終形の基準→ER図が描ける

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

「概念モデルよ、キミこそ主役だ!」を聞いてきた!

2015-06-01 16:20:58 | 開発ネタ
5月29日に、「要求開発アライアンス5月定例会」に行ってきた!
つぶやきNGだったみたいだから、内容を書いて良いのか、
よくわかんないけど、ま、いいか、大丈夫だろう
ということで、その内容をメモメモ




■概念モデルよ、キミこそ主役だ!・
 骨太のユースケースと概念モデルが世の中を照らす

メッセージ 
・概念モデルをもっと活用しよう
・そうすれば、今よりも楽に質の良い仕事ができるようになる
・そのためには
  1.概念モデルの出番を確保し
  2.概念モデルの出番を早め、
  3.概念モデルの品質を高めるポイントを理解すること
 が大切

私の2種類の現場
  システム開発
  マネジメント向け概念モデルセッション

・メモ書き(概念モデル、クラス図)→設計書
・言葉の定義→ビジネス戦略を正確に語れる

1.概念モデルの出番を確保する
・出番はどこに
  システム開発工程の上流
  要求開発工程
  概念モデルのための特別なプロジェクトで
・アクティビティの前後関係に注意
  ユースケースの時間をとる
  概念モデル検証の時間をとる
・システム開発工程では、通常データ構造分析・設計の手間が取られているが
 ありがちな問題は
  実装を意識したモデル(クラス図)にならざるを得ない
  常に「手抜き実装モデル」、つまりある種の不良品になる恐れがある
  概念モデルのための技法が使えなくなる
   今日紹介するビジネスユースケース駆動など

ソフトウェア開発工程
概念モデル |
要求→ 分析 →設計→実装 →テスト

アクティビティとして時間とマンパワーを確保することが必要
開発スタイルによってはそれが難しいことも

反復型ソフトウェア開発
  UP、RUP
  概念モデルにフィードバック
  インセプション

要求開発工程
 →要求開発の本

概念モデリング・プロジェクトという考え方

概念モデリング→要求→ 分析 →設計→実装 →テスト


2.概念モデルの出番を早める
・概念モデルの出番の作り方
  ・システム開発プロジェクトの上流
  ・要求開発プロジェクト
  ・概念モデリングプロジェクト
・プロジェクトの設定がどうであれ、概念モデルはいきなり搭乗できない
・概念モデルはゆーすけーすという文脈があって生まれる

概念モデルの特徴とユースケース
・UMLのクラス図を利用したモデル
  オブジェクト図や製薬記述も併用
・特定のビジネス(企業)、業界における概念・用語の構造的な関係を図に示したもの
・普通のユースケースと良質の概念モデルを比較してもユースケースのほうがわかりやすい
・そのため、ユーザーは本来概念モデルに至るひとつのステップであるはずのユースケース
 や画面スケッチなどを上流の成果物として好む傾向がある

わかりやすさのひかく
・じむあろう(Dr Jim Arlow)

成果物作成にかける時間配分のイメージ

システムユースケースVSビジネスユースケース
  ・ビジネスユースケース=ビジネスシステム・ユースケース
  ・システムユースケース=情報システム・ユースケース
BS概念モデルVSIS概念モデル
 BS概念モデル 事業領域を表す概念モデル
 IS概念モデル BS概念モデルに対してIT施策が反映されたもの

BSの切り出しはビジネスプロセスマトリックスでスリムにやる
・ビジネスの流れを横軸に
・商品・サービスの分類を縦軸に
・商品・サービスごとのビジネスプロセスの相違をきわだたせる

ビジネスプロセスマトリクス
  基本ビジネス

ビジネスプロセスを縦軸に展開し、CRUD風のテーブルへ
桁:概念モデルのパッケージ構造
行:BSユースケースパッケージ

  概念モデル
  商品 まーけ 営業 見積もり 契約

商品

まーけ

営業

見積もり


事例
 事例1:クララオンライン様 クラウドビジネス
 事例2:不動産仲介ベンチャー ワンストップ様

お客さんは語りたい関心事がある→おかしさがある

オブジェクト図を書かないと結局だめ
構造概念は役に立つ

3.概念モデルの品質を高めるポイントを理解する
1.中級
 ・親切なクラス図
 ・見やすいクラス図
 ・データ型がきちんとしているクラス図

2.上流
 ・嘘をついていないクラス図
 ・すっきりしたクラス図
 ・継承がさわやかなクラス図

3.組織で対応
 ・漂流しないクラス図
 ・進化するクラス図
 ・手を抜いていないクラス図
 ・検証できるクラス図


親切なクラス図
・クラス図だけで理解するのは相当大変
・だからオブジェクト図も作ろう
  人は例を通じてのみ理解する(ピーターコード)
・静的構造2点セット
  クラス図、オブジェクト図

見やすいクラス図
・パッケージを利用し、ビューを制御する
  同時に全部見せない

・ユースケースを説明するクラス図
  →スコープが狭いために理解しやすい
   ユースケーススライスというそうです(羽生田さんがいった)

・データ型がきちんとしているクラス図
  数が限定されているなら、列挙型に

嘘をついていないクラス図
・関連のループがあったら注意
  静的構造3点セット
   クラス図
   オブジェクト図
   不変制約:オブジェクト制約言語

すっきりしたクラス図

継承がさわやかなクラス図
  継承よりコンポジション
  役割
  日本料理もでる中華料理屋をやりたい

漂流しないクラス図
  概念と実装のはざまで漂流しない
  概念モデルは人間の言葉をモデル化する
  実装に配慮した(気兼ねした)概念モデルは質の悪い実装モデルとみなされる

進化するクラス図
  ラウンドとリップエンジニアリング
  リバースエンジニアリング
  人力モデル駆動
  モデル間の整合性を維持する責務が組織内に存在していることが重要
  整合性維持が自動化されたシステムで行われるかは重要ではなくむしろ人力のほうが優れている

手を抜いていないクラス図
  汎用的なデータ構造は概念モデルではない
  (汎用的なデータ構造は有効な場合があるが、概念モデルの代わりにはならない)

検証できるクラス図
  ユースケースがあるから概念モデルが生まれる
  ユースケースによってのみ概念モデルが検証できる
  アンダーラインの活用
   ユースケースに概念モデルがあったら、アンダーライン

骨太ユースケースと概念モデル

モデラーの心構え
・チームの平均レベルを常に意識せよ
  受けているか
  理想の図を描く必要はない
  妥協してチームの成長を待つことも必要
  必要としているまさにその時に教えよ

・モデルは段階的に成熟させてもよい
  周囲のレベルに合わせる
  利用可能な情報の量に合わせる

・知識をひけらかすモデルを書いてはいけない

・モデルは現場に力を与え、相違と信頼を醸成するものでなくてはならない

・標準UMLにこだわることない




■見通しのよいシステム開発に向けて 全容を俯瞰せよ

あじぇんだ
・弊社紹介
・今回の取り組みの経緯
・取り組み時に感じた課題認識

株式会社クララオンライン
・もともとはレンタルサーバー
・近年はアジア:クロスボーダー
  メインランドチャイナ
  台湾
  ASEAN
  韓国
  日本

従来のサーバーホスティング
 1:1
クララオンライン
 自社だけでない

今回の取り組みの経緯
・マルチクラウド、多拠点、マルチカレンシー
 →既存システム、既存業務の見直し
  新システムの開発も急務
  昨日やデータの重複、システム連携や業務整備の遅れは回避しなければならない

そのために(あえて)
 1つ1つの機能やデータを詳細に検討するのではなく
 業務やシステムを俯瞰することで大きな問題点を把握し
 見通しに良いシステム開発を実現する

実際のアウトプット
 
俯瞰による問題認識の意義
・どこに注力すべきかの判断材料になる
→コスト(人、金、時間)をどこにかけるべきか
→問題や、その影響が少ない部分は多少品質を落としても・・

取り込み時に感じた課題認識
1.短時間/短期間で既存システムや業務の整理と新規構想の具体化が必要
2.そのためには培われたノウハウが必要

概念モデル化する技術力が不足している

今後
1.精通者/理解者を増やす
・概念モデルを作成でき、より適切な表現やとらえ方ができるように議論できる人材を育てる
・会社全体を業務やシステムの視点で把握している人材/できる人材を育てる
2.実践(アウトプット)を続ける
・実践なくして、技術は磨けない
 ノウハウは得られない




■ワークショップに予定していたこと(実際は時間切れ)

1.ビジネスプロセスを探る
2.骨太ユースケースから概念モデル、そして検証

推薦図書
・UMLモデリングのエッセンス
Java Modeling in color with UML ピーターコード

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

IBMのBluemixを30日間無料で使う方法

2015-05-29 15:15:56 | 開発ネタ
この前、

「ベイズにあらずんば人にあらず」:アメリカのマーケティングサイエンス
http://blog.goo.ne.jp/xmldtp/e/b70dc1d59bfcb90b7ef3a2c7a99b0e6d

で寝てたら、蹴りいれられたんで、怖くてその場を退散、
Bluemix聞いてきた!と書いたけど、そのBluemixどうなったか、
書いてなかった・・・

そのときは、うまくいかなかったんだけど、今やったら、うまくいったので、
そのとき習った、Bluemixを30日間無料で使う方法について書きます。

手順、複雑です
(1)Bluemixに利用登録する
(2)IBM DevOps Service(IDS)に登録する
(3)Bluemixに入って作成する

以下、順次説明しますね。




■(1)Bluemixに利用登録する

http://ibm.biz/bluemixfree
にいくと、やり方が書いてある。
まず、上記サイトに行く。そうすると、こんなかんじ。

ここに書いてあるとおりにやる。
まずは、上記赤丸で囲った、「Bluemixのページ」をクリック。すると

という画面になるので、赤く囲った「GET STARTED FREE」をクリック

の画面になる。ここの入力方法は、

Watson Analyticsを無料枠で使う方法
http://blog.goo.ne.jp/xmldtp/e/611ca89b18ea788ef97a39bd739638ad

で書いたし、そこで、IBM idを取得したし、さらに、上記サイトには、
IBM idを持っていない例が書いてあるので、ここではIBM idを持っている
こととして、説明します(持っていない人は、上記ブログ、ないしは上記サイトの
説明を見てください)

赤く囲った、Already have an IBM id?をクリック

登録したメールアドレスを左右に打ち込み、
下に電話番号を入れる(まだ入れてないところ)

そしたらSubmitをクリック

これで、出来ている。メールも

届いているけど、クリックするところは無い。




■(2)IBM DevOps Service(IDS)に登録する

つぎにIDSの登録を行う。

https://hub.jazz.net

をブラウザで開く

赤いところSign up for freeをクリック

IDは持っているはずなので(上でやったあ)
「ログインしてDevOpsServiceの使用を開始してください」
をクリック

登録したID(メールアドレス)とパスワードを入力して
サインインをクリック

別名の選択に別名を入れる。
xmldtpにした。
で「終了」をクリック

がでてくる。

ここで、「続行」をクリックするのだったか、
もう一回、https://hub.jazz.net
にいって、loginから、ログインしなおすのだったか・・・
とにかく、どっちかすると、こんな画面に行く

ここで「DASHBOARD」をクリック。

のように、スペース作成のダイアログが出るので、
スペース名を入れる。ここでは dev と入れた
で、「作成」ボタンクリック

ダッシュボードが表示される。
ここで、「IBM Bluemix」をクリック。
すると、トップページにいく。ここまでで、一区切り。




■(3)Bluemixに入って作成する

(2)のつづき。ダッシュボードから「IBM Bluemix」をクリックすると

という画面になる。ここから作成を行うために、まずは、赤枠のCATALOGを
クリック

こんなかんじで、使える雛形みたいなのが出てくる。
たしか、「Node.js Cache Web Starter」をクリックしたと思った。

となるので、右側の名前を入れる。そうすると、ホストが自動的に入る。
「作成」をクリック。

ここで分け分からないエラーになった場合、名前が既に誰かが使っている
ことがある(そういう内容のエラーメッセージではないが、実際にはそうな
ことがある)。そのときは、名前を変えて、「作成」をもう一度

となる。しばしまつ

にかわる。こうなったら動いているので、左側の「概要」をクリック

右側に、「アプリは稼動しています」とでている。
真ん中上部に経路と書いてある後に、アプリ名.mybluemix.netへのリンク
が貼ってある。そこをクリック

なんか動いている。

ためしに前の「概要」の画面に戻って「停止」ボタンをクリックすると

のようになって、停止する。このとき、上記のリンクをクリックしても

動いていない。




ここまでで、bluemixの登録が出来て、1つアプリを作った。
手順、複雑でしょ!

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

状態遷移表→モデル検査への自動生成、富士ソフトが特許取得

2015-05-28 11:27:32 | 開発ネタ
やっべ、似たようなこと考えてた・・・


「モデル検査支援装置及びプログラム」の特許取得のお知らせ
〜安全な社会基盤を支える高信頼性ソフトウェア開発への取組み〜
http://www.fsi.co.jp/company/news/111221.html


論文、出てるのかなあ・・

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

EAは間違っていた。集中すれば、回帰テスト工数は大きくなる

2015-05-27 09:20:12 | 開発ネタ
結局、人事院のシステムって、どうなったの?と思ったら、
このページにきれいにまとまっていた。


つぶやき電子政府情報(2014年8月17日):人事・給与システムと行政改革に踏み込めない電子政府
http://blog.goo.ne.jp/egovblog/e/37f52e2f2fbac28c0b954a47afa8a260


今となっては、「何でこんなことしたんだろう?」だけど、
当時は、そういう流れだったんだよね
全社的にシステムを集中させるという・・・




生物も、(ロボットみたいに)合体していくより分化して進化するけど、
集中ではなく、分化したほうが、環境には適合しやすい。
EAという、集中させることを考えたのが、間違いだったんだよね・・
そういう意味では、仕事の標準化というのも難しい。

各政府ごとにシステムを持つとコスト高っていうのは、
昔は回帰テストを今ほどやらなかったからの話で、

回帰テストは開発よりもはるかにコストが高く、
回帰テストはソースが集中しているほうが修正回数もテスト工数も大きくなるから、
ソースを集中させたほうが、コスト高になるんだよね・・・

・・・当時は、わからなかった・・・



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

イノベーションとモダナイゼーション-従来の開発を連続的に俯瞰する戦略

2015-05-26 09:24:18 | 開発ネタ
「第9回要求シンポジウム」に「モダナイゼーション型の要求合意の課題とプロジェクト事例の紹介」の途中から行って、そのあとの山本修一郎先生の話を聞いてきたのでメモメモ

※表題の件が知りたい人は、最後の水平線から見てね!




■モダナイゼーション型の要求合意の課題とプロジェクト事例の紹介
(途中から)

要件定義しない→モダナイゼーション

SoE
SoR
 →SoRに向かっている?

・カイゼンはイノベーションではない
・イノベーションはSoEだけではなく、SoRもある
 モダナイゼーションもSoRだけではなくSoEもある

・業務を分かっている人も少なくなってきている
  →この画面にこう入れるという理解
 システム全体も分からなくなってきている
 ドキュメントが残っていない

・モダナイゼーションの手法
  日経System 2014年12月号

※会場で言っていなかったこと
  2014年の12月号の図1には、9つの手法しか
 載っていない。あれを2、4、3に分けた根拠は、
 P32の3段落目からの文中の内容によるものと
 思われる。ちなみに、その文中の記述と、9つの手法
は、こんなかんじ

・開発規模が大きくなる手法
  リビルド*
  リプレース
・モダナイゼーションの中核技術
  リライト
  ラッピング
  リインターフェース
  リホスト
・その他(分類名称なし)
  リファクター
  リドキュメント
  リラーン
*リビルド:機能仕様から作り直すことを指す。
  いわゆる「リビルド」とは違う

--------

事例 自動変換ツールでリライト(など)

ポイント
 ・変換ツールを過信しない
 ・テスト仕様書、テストデータ
 ・リライトで予算取れるか?

実際には複合
  業務が100%なくなることはない
  現行踏襲をどこまで→現行業務を成立させる

現行可視化
 人を育てることを同時にできる
 テスト方法の合意形成




■IoT時代のITイノベーションとITモダナイゼーションの課題
・要求合意が代わらないということは無い
・従来:線形モデル
 モダナイゼーション:クローズドループ(組織の中で合意すればよい。収束する)
 イノベーション:オープンループ(収束しない)

 現実=リニアの部分+クローズドループの部分+オープンループの部分
  →適切にマネジメント

アーキテクチャ駆動モダナイゼーション
  馬蹄モデルと呼ばれる

・REMICS
  既存システムをクラウドへ

・価値が達成されているか
・DoDのITモダナイゼーション




質疑応答は聞いてこなかったので、

山本先生の使っている「モダナイゼーション」の定義と
一般に言っている「モダナイゼーション」の定義がちがっているため、
山本先生のいう「もっと戦略的にモダナイゼーションを考える」というのが、
見えにくかったと思う。

勝手に以下のように解釈した(山本先生の言いたかったこととは違うかも?)

まず「アーキテクチャ駆動モダナイゼーション」では、
 現行のベースラインアーキテクチャから
 目標のターゲットアーキテクチャへの変換プロセスを、
 以下の3種類にわけている

・ビジネスアーキテクチャでの変換:ビジネス変換
  ビジネスモデルそのものが変わる。
  お客さんから見て、ビジネスが変わっている
  いわゆるイノベーション

・情報システムアーキテクチャの変換:論理変換
  ビジネスモデルは変わらないが、業務フローは変わっている
  お客さんからみたら同じビジネスだけど、社員のやり方が変わっている
  BPRなんかがこれに当たる
  従来の開発が、これ

・テクノロジーアーキテクチャの変換:物理変換
  業務フローは同じだが、システムの中身は変わっている
  社員のユーザーからみたら同じだけど、動いているプログラム等は変わっている
  いわゆる「モダナイ」は、これ

つまり、

モダナイゼーション→従来の開発→イノベーション

は連続的な枠組みで、
「誰から見た時、そのシステムは変わっているか?」
で分類できる。

ということは、これらは同じ評価基準で評価できる。
具体的に言うと、その開発(モダナイや開発、イノベーション)を行うと、
どれだけの投資が必要で、その投資を行うと、利益が出るかどうかで評価できる。

その結果、「モダナイ」にするより、いっそのこと、そのシステムを捨てて、
新しく情報システムを作り直したほうがいいなどという選択肢も有り得る
(社内システムでオンプレから、クラウドに移すようなときに有り得る)

この辺の評価判断が必要というのが、「戦略」にあたる。

それと、自動生成は今、単純に自動生成するというより、構文解析まで
行って自動生成するケースも有る。この場合、自動化率は高くなる。

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

「クラウドファースト時代のアーキテクチャ・システム構築の革新」を聞いてきた。後半

2014-12-05 19:04:50 | 開発ネタ
12月4日
Microsoft Architect Forum 2014 Winter
クラウドファースト時代のアーキテクチャ・システム構築の革新
にいってきた。

その内容の後半をメモメモ




■次世代ITアーキテクトの本質と育成
~ビジネスの俊敏性を目指して~

 俯瞰的に見る

自己紹介

 ITアーキテクト=アート+サイエンス

ITソリューションの動向と潮流
・重要な視点
  複雑化・多様化
  インターネット
  クラウド化
 →50~60年前の電力業界:電気は買うもの
  この流れは止まらない

 IT資産を持つ時代から持たない時代へ
 テクノロジー変化を理解し活用する
 情報資産のさらなる活用

日本のSIマーケットを眺めると
 複数年で再編成:動かしながら

ビジネスをどうするか?が焦点に
 インターネットの普及により様々な壁がなくなっている

・どのようなスキルを磨き成長するか
 ・初動の設計力
 ・リーダーシップ、イノベーション:廃棄する、カイゼンするのも
 ・人間力も重要

・マーケットは誰を必要とするか
 ・ビジネスアーキテクト(アナリストではない)
 ・ITアーキテクト

・ガートナー
 ・エンタープライズアーキテクト

次世代のIT組織
 EAの本質
  企業全体で整合性を確保しながら変化を実現できるメカニズムを提供する

 戦略視点でIT組織を見る
  言葉と概念の統一:グローバルで

 ビジネスとITの発想と視点の違い

 情報システムはビジネスの一部
  TOGAF EA

 ITアーキテクチャの目的

 変革プログラムの成功要因
  EA、ガバナンス、PMO,ITSMの統合
  企業戦略
  EA
  ガバナンス、PMO,ITSM
 
 FTSNに基づいたITテクチャの展望
   F:フレームワーク(TOGAF)
   T:テクノロジ
   S:スキル
   N:記述

 IT組織は大きく役割を変える
  EAの導入
  ITの創造

次世代のITアーキテクトの役割と重要性

 1980 SE、プログラマ
 1990 PM,SE,プログラマ
 2000 ITスペシャリスト、コンサル
 2010 ITアーキテクト

 IASA(あいさ)におけるITアーキテクトの定義
  テクノロジストラテジすと
 
 専門領域
  ビジネス
  インフォメーション
  ソフトウェア
  インフラ
 基礎知識
  デザイン
  ヒューマンダイナミクス
  品質特性
  IT環境
  ビジネステクノロジ

 ソリューションアーキテクトの仕事
  MDM
  クラウド
  M&A
  ERPそのた

 ITアーキテクトとビジネスアナリスト

どのようにITアーキテクトを育成するか

 プロフェッショナルとは

 技術力+リーダーシップ
  リーダーシップとマネジメント構造

 ITアーキテクトに必要な知識体系
  IASA ITABOK(あいたぼっく)
   5つの柱
   IEEE1471

ITアーキテクトの
 IASA
 ・70000会員
 せきにん
 ・言葉と概念の統一
 ・仕事の認知
 ・ネットワークこうちく
 CITA:認定資格

事例
 ・ITアーキテクトの基礎力養成




■非インフラ技術者のためのインフラアーキテクチャ設計の考え方
・オンプレミスの自動化
  クラウド視点から見たインフラ
   L7~L4
  オンプレ視点から見たインフラ
   L3以下
 42Uに48ポート入れる
 
 タグ番号とマシン名を一緒にする→こわれたら、タグ番号
 IPアドレスもマシン番号にしてしまう

・インフラアーキテクトは必要か?
 →必要です(名前は自由)
  →ただし、CTOとは違う→CFO,監査とのやり取りがある
 →不要です
  他の人がやっている場合

・どういう仕事ですか?
 最適な仕組みを提供する→最新、最強を知った上で
  例:ATMのパスワード 数字4桁

・企業組織内におけるインフラ業務
  インフラアーキテクト関連図
  投資 例 どういう風にお金動く
  (速く言われたので、めもとれなかった)

・アプリケーションとインフラの多くはn対1の関係
・費用計上方法も知る必要がある
  →上場企業だと公表されているが
・インフラは減点方式
・Opsの中のインパクト

主なテクノロジーの移り変わり
 インフラ編
・インフラテクノロジーの移り変わり
 ・勉強会とかでキャッチアップ
 ・オンプレミスから仮想化、そしてクラウドへ
  昔:メモリ、シャーディング→ハード売れた
  すこし前:仮想化管理(SystemCenter)
  さらに:プライベートクラウド→ハイパーバイザー重要Hyper-V
  クラウドへ:Azure,Amazon,Google,国内
   国内:土地が開いてるところ
   Amazon,Google:自社のサービス

  クラウドに対するリスク
   クラウドも止まる
   クラウドが経理にあうのか?
   退職者

 →結局売れなくなってきちゃったんですよ。

・インフラチーム
  同じような業務回っている
  →キャリアを変える

・強固な組織にするためのインフラ
  UPDATEでDELETEフラグ、
  このSQLは悪です
 1億PVでも20~30台→数百台になるとしたら・・・
  同業他社とのつながり
・インフラチームの秘めた駆動力
  正常以外
  新規リリース画面

・インフラチームの円滑運用
  インフラのキーマンが誰か分かっていると強い!




■IoTが拓く新たなクラウドソリューションの展望と設計アプローチ

IoTとは
・よくわかんないですね
・設備機器がITにつながる

IoTがもたらす市場インパクト
・トレンドが分かる
・接続機能が充実
  100万、1千万が数万円、ただでできるように!

IoT
・見える化・・・だけなら価値はないかな
  電気の見える化と同じ?

IoT=(Things+IT)XDATA

M2Mの拡張としてのIoT
・M2M:組み込みメイン
・予断から、発見・気づきへ
   事前にあたりをつける→発見

IoTの活用
 →活用・運用ライフサイクル
 →製品開発サイクル→DevOps

Internet of Your Things
・既存の資産からはじまる:スモールスタート
・既存デバイスに新規デバイスを追加
・既存の生成されるデータから

何でクラウドなの

4ヶ月でIoT、そんなスピード感

Windowsエンベデット POS,カーナビ
サービス
 Linuxその他Azuruつながる
 iPhone,Android→VS2015

IoTの構成要素

 デバイス サービス クライアント

    開発・運用・管理 データ活用

・デバイスとクライアントが直接なんて事もある
・IOTアーキテクチャ概観・詳細
  (めもとれん・・・)

・エージェントSDK Azuruにすぐつなげる
・Azure Intelligent System Service(ISS)

IoTエコシステムとAzureサービス

ISS デモ
・London Underground Manager

デバイスクラウド連携
  ・内部連携
  ・ゲートウェイ
  ・直接接続

多様な組み込みプラットフォーム
  HTTP:REST,AMQP,MQTT
   →テレメトリ、コマンド、ノーティフィケーション、プッシュ
 →ブローカー、
  標準プロトコル
  セキュリティ→データ暗号化
  コストバランス

IoTにおける接続
・たくさん使うとレイテンシ
 →クラウド

Event Hub
  ・パーティションが作れる
  ・送受信ポリシー
  ・https,
  ・1G/S
  ・各パーティションにコンシューマーグループ

(デモ:ことごとく失敗)

関連サービスとの連携・活用
  EventHub
   機械学習
   モバイル
   Excel/PowerBI

Call to Action
  http://aka.ms/IoTKitHol
 に学習コンテンツ


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

「クラウドファースト時代のアーキテクチャ・システム構築の革新」前半

2014-12-05 15:58:25 | 開発ネタ
12月4日
Microsoft Architect Forum 2014 Winter
クラウドファースト時代のアーキテクチャ・システム構築の革新
にいってきた。

その内容の前半をメモメモ




■Opening ご挨拶
・高い品質
・技術革新の波
→いままでのIT構築ではうまくいかない
・アジャイルへの開発移行
 ALM さむぐっけんはいまーさん

■キーノート
 Our Journy to Cloud Cadence
・マイクロソフトの仕事の共有→どういうような仕事をしたか
・マイクロソフトに入社したとき
 IBMに3週間
 リクアイヤメント=あつい資料M1,M2,M3(マイルストーン)
 やり直してる?→そうだった!
・ウォーターフォール→遅れていた
 10年間サービスしないといけない
 たくさんの無駄 おおのたいち:7つの無駄→すべてあった
 その結果:
  一貫性のない作業
  予測不可能
  むら
 →ストレス、やる気のなさ:デスマーチ

・技術的債務
  いくつバグを抱えているか
  0バグにする
 プロダクトユニット→処方箋
  日付をあとにもっていく
  バグ:フラット
 β版→不信感

・アジャイル
 2006年
 ・クリーンを維持する:技術債務をやっつける
   あいまいな状態をやめる
   新しい負債を防ぐ
   ユニットテスト、コードのテスト
 ・プロダクトバックログをつくる
   1つにまとめ、みんなに見られるように
 ・終了の定義
   ユニットテスト、静的テスト、ローカリゼーション・・・
 ・スプリントモデルにした:カスタマープレビュー

・結果
 スケジュールモデル
  お客さんからこめんときた
  サブスクリプション、長期化
  ユーザーストーリー、バックログ

・一番重要な点
  3万のバグ→2千に(15分の1)
  予測性たかまった。
  顧客満足高まった
 →無駄の削減、透明性

・アジャイル
  プロダクトバックログ
 何をすべきか
  価値のフローのカイゼン
  世界中(8~10か国)からお客さんよび会合SDR
   →オンライン参加
  アイデア
  ヒートマップの可視化
   バリュープロポジション
     1.重要?
     2.どれだけ満足
     3.正しい方向に向かっているか
   →重要なのに話し合っていないところを話し合う
  価値にフォーカス→賞も取れた

・From Agile to Cloud Cadence
 なぜCloudのけいだんす?
  3週間のスプリント
 反応を迅速にできる
  →フローとデリバリーを迅速に
  →DevOps
 全体として、ひとつのライフサイクル
 リリースパイプライン
 クラウドファーストでサービス

 利用のカルチャ
  振る舞いを観察できる→決定

 フィーチャークルーズ(スクラムの改良版)
  →12~18ヶ月一緒に仕事する
   作業を動かす(人を動かすのではない)
  チームルーム

 スケジュール
  3週間のスプリント
  18ヶ月のビジョン
  6ヶ月のシーズン:具体的コミットメント
  3スプリント:リードがあつまり、Chat
 →スプリントのおわりにビデオ:アップデート内容

 デプロイ→完全な自動デプロイ、日中でも作業
  canary deployment:1つの箇所でデプロイ→別のデータセンタで

 フィーチャーフラッグ
  昔(2年前くらい)ブランチ→マージ:債務
  今:フィーチャーフラッグ→近しい人だけ見れる

 アップデート

 複数のデータセンター

 LiveSiteカルチャー
  グローバル・レスポンス・チーム
  on call DRI(designated responsible individual)by area
  サイトの健全性→だれでも見れる

 ビジネス上のサクセス
  お客様からきいていく
  着実に改善→かなりや

 いろいろ実験:悪いと思ったものが、いいときも
 ダッシュボードモックアップ→はかる

 ファーストパーティー=サードパーティ

7つの局面
・3つは通常のアジャイル
  チーム
  技術債務
  フローの価値

・新しい
  仮説をもちいたばっくろぐ
  データ
  プロダクションファースト
  Public/hybrid cloud




■開発ツールを使ったエンタープライズアジャイル

Visual StudioのDevOps
・開発基盤 Team Foundation Server
 単体テスト、自動UIテスト
 InteliTrace
 コードクローン/コードメトリクス
 フィードバック
   :
 →ミッシングリンクがない

OurVision
 あらゆるアプリケーションが
 すべてのデベロッパーへ

アプリケーション
 ・Windowsだけでなく、Mac,Androidも
 →できる

 ・開発系イベントConnect();での発表
http://aka.ms/connect

(1).net Coreのオープンソース化
    →Linux,Macでもうごく
   クロスプラットフォーム開発の強化
 
(2)Visual Studio 2015プレビュー
  上記具現化。もう試せる

(3).NET 2015 Preview発表

(4)Visual Studio Community 2013
  無償
  個人・オープンソース開発者

(5)Visual Studio 2013 Update4リリース

(6)MSDNサブスクリプションの特典強化

・モバイルアプリ、
  ASP.NET5 :新しいASP.NETランタイム、ライブラリ
        メモリ使用少ない、Linux,Macも動く
  .Net Core5:新しい.NET
  Roslyn:(ろずりん)オープンソース化した新しいコンパイラ
  C++    :最新規格にアップデート
  IDE    :リファクタリング、タッチ対応

Monoテクノロジーにより、Mac上で、SublimeTextを使ってC#で
いんてりせんすをつかって、ASP.NETで開発
  Macで
  C#
  ASP.NETで開発

クロスプラットフォーム
 Xamarin
 Cordova:HTML/Javascriptだったら

Apache Cordovaが、VisualStudioで動き、Androidのエミュレーターが動く
この先にIoT,ゲーム、ソーシャル

エンタープライズアジャイルへの適応
課題
・事業戦略と開発の方向性の一致
・アジャイル開発には大人数の開発には不向き
・組織全体の役割の明確化

アジャイルのエンタープライズ対応
 スケールアジャイルフレームワーク
 エピックとフィーチャーを結びつける
   ポートフォリオ エピック
   プログラム   フィーチャー
   チーム     ユーザーストーリー

チームファンデーションサーバー
 ・エピックとフィーチャーに結びつける
  エピックレベル→かんばんで

MS:会社全体でアジャイル

Visual StudioでのALM(&Azuru)
・VisualStudioOnline(Team Foundation Server)でそろっている
  →リリースはオンプレミス、Azure
  →アプリケーションInsight

成功事例
・日本郵政スタッフ:開発環境3日、ハードコスト10分の1
 ビービーシステム:変更~リリース:2ヶ月→2・3日、自動UI工数30%
 ソフトバンクテクノロジー:デプロイ(release Management)工数約20分の1
→予防診断テストにも、自動UIテスト

Visual Studio+Azure+MSDNで開発をリード

Team Foundation Serverはエンタープライズアジャイルを実践可能
Visual Studioの適用範囲は広がり、単一ツールでエンドツーエンドの開発が可能

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