Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20180130 設計イベント

437 views

Published on

システム設計の謎を解く 改訂版を書いた背景や動機を踏まえて設計について説明した資料
1月30日のイベントで説明をしています。

Published in: Software
  • Be the first to comment

20180130 設計イベント

  1. 1. 設計の謎の“本質”を探る 株式会社ビッグツリーテクノロジー&コンサルティング SI事業部 アーキテクチャG リード 高安 厚思 1Copyright (C) 2018 Atsushi Takayasu All Rights Reserved.
  2. 2. 1 2 3 4 5アジェンダ ▌自己紹介 ▌1 基本知識 ▌2 システム設計とアプリケーション設計 ▌3 モダンな開発と設計手法 ▌4 開発プロセスと設計 ▌5 終わりに Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 2
  3. 3. 1 2 3 4 5 ■社名 株式会社ビッグツリーテクノロジー&コンサルティング ■所在地 [東京]東京都港区麻布台2-3-5ノアビル3F [札幌]北海道札幌市中央区北一条西3-3敷島プラザビル4F [ベトナム(ハノイ)]15 Fl., Ladeco Building, 266 Doi Can Str., Lieu Giai Ward, Ba Dinh Dist., Ha Noi, Vietnam [シリコンバレーオフィス]3350 Scott Blvd. #29 Santa Clara, CA 95054 ■設立 2002年2月7日 ■資本金 8800万円 ■事業内容 ・ソフトウェア開発およびソフトウェア開発のコンサルティング ・Webコンテンツ開発およびWebコンテンツ開発のコンサルティング ・ITエンジニアリソース事業(人材派遣サービス) ・上記に付帯する一切の事業 ■各種認証 ・ISMS資格 ISO(JISQ)27001 (認証番号:IS 505446) ・Oracle認定Webコンポーネントディベロッパ 保有者所属企業 ・APN(Amazon Partner Network)コンサルティングパートナー 会社概要 Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 3
  4. 4. 1 2 3 4 5自己紹介 高安 厚思 ▌活動領域・キーワード ▌20年にわたり、ソフトウエアエンジニアリングを適用したシステム 開発やコンサルティングに携わる。 ▌最新技術を適切に利用した、柔軟なシステム構成の構築、品質管理を 中心として技術マネージメントなどを主要テーマとして活動。 ▌開発方法論、アーキテクチャ設計コンサルティング、システム全体設 計を得意分野とする。 ▌東京電機大学非常勤講師、SQuBOK設計開発領域 検討委員。 ▌資格 ▌ネットワークスペシャリスト ▌アプリケーションエンジニア(現 システムアーキテクト) ▌プロジェクトマネージャ ▌ITストラテジスト ▌情報セキュリティスペシャリスト(情報安全確保支援士) ▌MCSE ▌MCSD ▌VSP/VSTP ▌AWS Certified Solution Architect Associate Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 4
  5. 5. 1 2 3 4 5対外活動 最近の著書、訳書 ▌「システム設計の謎を解く/改訂版(ソフトバンク)」 ▌「StrutsによるWebアプリケーション スーパーサンプル (ソフトバンク)」 ▌「Seasar入門[(ソフトバンク)」 ▌「Javaルールブック(エクスメディア) ▌「ITアーキテクトのためのシステム設計実践ガイド アーキテクチャ編(日経BP)」など。 連載記事執筆 ▌日経SYSTEMS誌「Webアーキテクチャ再入門」 講演 ▌SODEC ミッションクリティカル開発 ▌日本テクノセンター セミナー ▌UML Forum ▌日経BP社 ITアーキテクトのためのシステム設計フォーラム 特別講演 ▌Developers Summit 2013 Summer ▌日経IT PRO ACTIVE 製品選択セミナー Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 5
  6. 6. 1 基本知識 Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 6
  7. 7. 1 2 3 4 5設計とは ▌設計とは「選択」である ▌設計は何を設計するのかを意識する必要がある ▌設計での考慮ポイント(特性)は多数あるのが難しいところ Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 7 要件 特性 設計案 1 設計案 2 設計案 3 要件要件 特性特性 設計結果選択
  8. 8. 1 2 3 4 5参考) 設計における選択とは ▌Twitterのタイムラインを考えてみてください Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 8 設計案1 ユーザがツイートしたタイミングでフォロー されているユーザのタイムラインにそのツ イートのIDを追加する。 設計案2 ユーザがタイムラインを表示したタイミング でフォローしているユーザのツイートを検索 する。 特性)  ツイートの総数はどのくらいか  フォローしている人数がどのくらいを想定 しているのか。  発信したツイートはリアルタイムでタイム ラインに出る必要はない
  9. 9. 1 2 3 4 5設計という言葉 ▌設計を整理してみましょう Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 9 機能設計 画面設計 帳票設計 API設計 ファイル設計 バッチ設計 DB設計 運用設計 アーキテクチャ設計 概念設計 概要設計 基本設計 詳細設計 外部設計 内部設計 ロバストネス設計 クラス設計 プログラム設計 テスト設計 システム設計 アプリ設計 対象を表す工程を表す 対象を表す (書籍にて言及してない)
  10. 10. 1 2 3 4 5工程としての設計 ▌昔に作られていた方法論(プロセス)をみてみます! Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 10 要求開発アライアンス1月定例会議 講演(細川努さん)から引用 https://redajp.connpass.com/event/75920/
  11. 11. 1 2 3 4 5設計の表現方法 ▌設計結果をどう表現するか ▌文書は時空を超える ▌設計の目的・ライフサイクルを考えて適切な表現方法を選択する Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 11 フォーマット (保存方法) 詳細度 網羅度 留意するポイント  書籍の例のように文書化される  ホワイトボードだけで共有される  Wikiに記載される  IF記述言語を用いる(Swagger)  形式化言語
  12. 12. 1 2 3 4 5システムは複雑にみえる ▌設計で考えなければならないポイントは複数ある ▌未整理・未知な状態が複雑に見える! Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 12 システム (非機能要件) データ種類 (パターン) ロジック × × × 人間 機能設計を例にすると 要素分解され た組合せにし、 MECEかどうか 実現手段
  13. 13. 1 2 3 4 5要件と設計の関係 ▌要件に基づいて、複数の視点・要素を設計する Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 13 要件 設計要素 設計要素 設計要素 設計 追跡可能性 要件)登録した商品を販売 開始日順に表示できる 画面設計) 販売開始日順に 表示するUI部品を持つ画面を 設計 機能設計) 販売開始順に商 品情報を取得する機能を設計 DB設計) 販売開始日を表す カラムを設計
  14. 14. 1 2 3 4 5技術と設計 ▌AIなどの技術を設計にどう取り込んでいくのか? Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 14 要件 設計要素 自分たちで作ら ない機能 設計要素 自分たちで作る 機能(要素) 要件)過去5年の情報から該 当月の売上予測が表示できる 機能)外部で機械学習した結 果を永続化する 機能)機械学習によって当月 の売上を予測する
  15. 15. 2 システム設計とアプリケーション設計 Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 15
  16. 16. 1 2 3 4 5言葉の定義 ▌システムとアプリケーションを分類したほうが明確に議論ができるた め言葉の定義をする Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 16 インフラ アプリケーション ミドルウェア(ソフトウェア) ハードウェア システム
  17. 17. 1 2 3 4 5システムを設計するということ ▌システム(インフラ・アプリケーション)を設計するのは何を使うか (ソリューションの選定) ▌採用したソリューションによって設計すべき要素が決定される Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 17 要件 設計要素 ソリューション ※  ハードウェア・ソフトウェア  ベンダーから購入  OSSを採用  アプリケーションで作る ソリューションに よって設計要素は 異なる 機能要件  非機能要件 要件を満たすために複数の ソリューションを選定する ※ソリューションとはある要件をみたすシステム構成要素を意味する。
  18. 18. 1 2 3 4 5アプリケーションと非機能要件の関係 ▌共通系としての機能が非機能要件を実現する ▌アプリケーションアーキテクチャ設計とも関係が深い Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 18 可用性要件 エラーハンドリング サーバ設計 ミドルウェア設計 アプリケーション アーキテクチャ設計
  19. 19. 1 2 3 4 5システムとアプリケーションの狭間 ▌システムにおけるソリューションによってアプリケーションの作り (処理方式)が変更する場合は多い。そのためバラバラで設計すると トラブルになりやすい Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 19 LB Webアプリ Webアプリ Webアプリ ラウンドロビン による振分 セッション情報 を共有しないと いけない インフラ設計 アーキテクチャ設計 NFS Webアプリ バッチ アプリ NFSの有無によってアプリ設計が 異なる LBとセッション ファイル共有
  20. 20. 3 モダンな開発と設計手法 Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 20
  21. 21. 1 2 3 4 5アジャイルと設計 ▌状況に応じたものづくりの流れを作る ▌工程の設計は関係なくなる Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 21 設計の表現 要望の確 認 ものづく り リリース
  22. 22. 1 2 3 4 5DDDと設計 ▌アジャイルと同様の進め方 ▌業務知識を構造(概念)の中に含める設計(設計要素) Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 22 設計の表現 要望の確 認 ものづく り リリース 業務知識
  23. 23. 1 2 3 4 5DevOpsと設計 ▌運用設計の一環 ▌リリースした後、リリースを繰り返す場合の設計 Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 23 リリース フィード バック イシュー(運用課題・インシデン ト)を管理し、そのイシューとビ ルド・リリースを連動(ビルドパ イプラインを設計する)。 状況に応じて、イミュータブルイ ンフラストラクチャー技術を意識。 イシューの発見
  24. 24. 1 2 3 4 5クラウドネイティブと設計 ▌クラウドサービスは「ソリューション」となる ▌適切なクラウドサービスを選定して特性をいかした設計をする Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 24 要件 設計要素 自分たちで作ら ない機能 (クラウド) 設計要素 自分たちで作る 機能(要素)  サーバレス  自動インストール・デプロイ  イミュータブルインフラストラクチャー  プログラム基盤(AWS Lambda/Azure Functionなど)  その他(認証基盤・ビルドパイプライン) クラウドの特性
  25. 25. 4 開発プロセスと設計 Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 25
  26. 26. 1 2 3 4 5開発プロセスとは ▌状況に応じたものづくりの流れを作る ▌品質はプロセスで作りこむ Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 26  IBM ADSG  富士通 SDEM  日立 HIPACE  NEC STEPSII  NTTDATATERASOLNA 方法論の例 開発プロセスアーキテクチャ
  27. 27. 1 2 3 4 5組織標準=強制ではない! ▌基準としての組織標準(方法論)は必要 ▌改善プロセスを組み込む ▌テーラリングをする Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 27 組織標準 プロセス プロジェクトWBS・ 成果物定義 テーラリング 組織標準に組み込まれた情報 プロセス改善  プロセス適用教育  プロセス管理ツール
  28. 28. 1 2 3 4 5設計の品質とは ▌設計で意識すべき品質とは ▌プロダクト品質とプロセス品質 Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 28 https://www.slideshare.net/takashiyamasaki378/isoiecieee-29119-1 から引用 品質の標準 設計品質特性の例(書籍から)  要件を満たしているかどうか (要件とのトレーサビリティ)  設計バリエーション(データパターンや処理パ ターン)が網羅的に設計されているかどうか  同じような設計要素(名称が違うが内容の違い が微少である要素)が複数存在しないか  設計要素間で矛盾がないか  ユーザビリティを意識した設計になっているか  わかりやすい構造になっているか  修正しやすい構造になっているか  テストしやすい構造になっているか  再利用しやすい構造になっているか  拡張しやすい構造になっているか
  29. 29. 1 2 3 4 5V字とW字モデル ▌品質保証を含むプロセスモデルとしてV(字)モデルとW(字)モデル がある Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 29 https://thinkit.co.jp/story/2011/10/04/2255 から引用 V字モデル W字モデル http://www.itmedia.co.jp/im/articles/1111/07/news202.html から引用
  30. 30. 1 2 3 4 5レビュー(リーディング)技法 ▌品質保証タスクのひとつ ▌レビューは形骸化しやすい ▌レビューは欠陥を指摘する ▌技法・種類(ピアレビュー・チームレビュー・インスペクションな ど)を理解した上で組織、プロジェクトの特性に合わせて実施する Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 30 手法 説明 アドホック 実施したいときにすぐに簡単に実施する (特に基準など設けない) CBR (Checklist Based Reading) 品質特性などに基いた検査項目一覧を利用する SBR (Scenario Based Reading) 利用シナリオ・品質シナリオなどを利用する (ATAMもシナリオをベースとしている) PBR (Perceptive Based Reading) 特定の観点(利用者・運用者などの立場)を利用する リーディング方法
  31. 31. 5 終わりに 31Copyright (C) 2018 Atsushi Takayasu All Rights Reserved.
  32. 32. 1 2 3 4 5サマリー ▌設計は思考の成果で限界のあるもの ▌設計は複数案の選択である ▌設計という言葉には「工程」を表す設計と「対象」を設計するという 意味の2通りでつかわれる ▌設計の表現方法はいろいろある ▌設計要素はソリューションによって決定される ▌設計要素ごとにいくばくかの設計ノウハウがある ▌開発プロセスの外形は理解しておく必要がある ▌設計の品質は品質特性を意識する ▌設計の品質は開発プロセスで担保する(属人的なものではない) ▌設計における品質保証タスクはレビューであるためレビューを意識す る Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 32 といった話をしてきましたが、設計の本質は何なんでしょうね。
  33. 33. 1 2 3 4 5お礼 ▌ご清聴ありがとうございました! Copyright (C) 2018 Atsushi Takayasu All Rights Reserved. 33

×