デザイン思考に基づく新しいソフトウェア開発手法EPISODE - データ分析,人工知能を活用した小規模アジャイル開発 -

デザイン思考に基づく新しいソフトウェア開発手法EPISODE - データ分析,人工知能を活用した小規模アジャイル開発 -

開発者側がアイディア出しを行うデザイン思考に基づいたアジャイル開発手法を説明する。

ジャンル
発行年月日
2022/03/25
判型
A5
ページ数
174ページ
ISBN
978-4-339-02925-3
デザイン思考に基づく新しいソフトウェア開発手法EPISODE - データ分析,人工知能を活用した小規模アジャイル開発 -
在庫あり

定価

2,750(本体2,500円+税)

カートに入れる

電子版を購入

購入案内

  • 内容紹介
  • まえがき
  • 目次
  • 著者紹介
  • 広告掲載情報

スマホなどの小規模アプリの開発をターゲットとし,アジャイル開発の手法を取り入れながら開発者側がアイディア出しを行うデザイン思考によるソフトウェア開発手法を説明する。IBM Watson やチャットボットにもふれる。

本書の目的は,イノベーティブなシステム開発における自律的,実践的能力を養成することである。そのための手法として,デザイン思考やアジャイル開発の手法に基づくEPISODEという新たなシステム開発手法を紹介する。

このEPISODEの枠組みを理解するために,最初に,通常のソフトウェア工学やアジャイル開発の基礎について学ぶ。つぎに,EPISODEの枠組みについて解説した後に,EPISODEを用いたシステム開発の実践例として,開発ツールとしてIBM Watson Assistantを用いた人工知能アプリケーション(チャットボット)の開発事例を紹介する。さらに,データ分析や論文執筆などへのEPISODEの応用法についても紹介する。

具体的には,本書では以下のような学習を通じて,イノベーティブなシステム開発における自律的,実践的能力を養成していく。
(1)基礎:最初に,ソフトウェア工学,アジャイル開発,およびデザイン思考の基礎を実践に生かせる形で学ぶ。
(2)原理:つぎに,筆者が提案する新たなシステム開発手法であるEPISODEの枠組みについて解説する。
(3)応用:人工知能開発ツールIBM Watson Assistantを使用し,人工知能アプリケーション(チャットボット)を開発する事例を通して,EPISODEという開発手法を実践的に習得する。さらに,EPISODEの多様な応用例を紹介するために,データ分析,就職のためのエントリーシート作成や論文執筆などへのEPISODEの適用方法についても紹介する。

ここで,筆者が提案しているシステム開発手法EPISODEの概略を紹介しておく。EPISODEでは,本書7章図7.1のようなサイクルで開発を行う。1回のサイクルでつくり上げる機能は小さなものに限定し,複数回このような小規模開発を行うことで徐々にシステムの機能を拡張していく(これはアジャイル開発の考え方を踏襲した方式である)。

(1)図7.1の企画フェーズではブレインストーミングや親和図作成を行い,新しいアイディアを発見する(この部分はデザイン思考の手法を用いて行う)。
(2)つぎに,得られたアイディアからストーリー抽出を行い,コンセプトを明確化する。
(3)設計フェーズではストーリーを実現するために流れ図(アクティビティ図)を作成する。つづく実装フェーズでは動作が確認できるソフトウェアなどを開発する。
(4)さらに,評価フェーズで価値分析やユーザ自身の検証によって,達成すべき目的が実際に達成できているか否かを確認する。

本書では,システム設計に関する以下のドキュメントの作成方法について解説する。
・企画書
・ストーリーカード
・アクティビティ図
・タスク分割カード
・広告

これらのドキュメントは,EPISODEの枠組みに従ってシステムを開発する際に使用するものだが,システムの開発後には,これらのドキュメントを開発したシステム(ソースコードなど)と一緒に公開しておく。そうすると,後日,第三者がソースコードを解読する前に,付随したこれらのドキュメントを読むことで,開発されたシステムの概要を迅速に把握することができる。

Educationの語源は,ラテン語のエデュカーレ(「引き出す」の意)である。つまり,Educationとは,学生の潜在的な能力やさまざまな可能性を引き出すことを意味している。そのため欧米では,教師は学生の能力を引き出す役割を担うものとされている。ところが日本では,Educationを「教育」(教えはぐくむ)と訳したため,「知識をもっている者がもたない者に教える」という知識的側面が強調されてきたようだ。

もちろん,教師は学生に対して新たな知識を伝授するわけだが,本書では,そのことだけにとどまらず,その新たな知識を用いて,読者の潜在的なシステム開発能力を引き出していくことを目標にしたいと考えた。そのことが,多少なりとも,読者諸兄に感じ取っていただけたとすれば,筆者にとっては望外の喜びである。

末筆ながら,8章の実装事例の掲載をご快諾下さった,電気通信大学大学院情報理工学研究科の長谷川勝彦氏と平尾佳那絵氏に感謝いたします。また,本書の刊行にあたっては,コロナ社に,遅れがちな原稿執筆を大変辛抱強くサポートしていただきました。この場をお借りして,深く感謝申し上げます。

2022年1月
西野 哲朗

1. ソフトウェア工学
1.1 学習の目的
1.2 コンピュータの発展の歴史
 1.2.1 メインフレーム時代
 1.2.2 クライアントサーバ時代
 1.2.3 インターネット時代
1.3 システム開発
 1.3.1 システム開発とは
 1.3.2 システム開発の流れ
1.4 システム開発モデル
1.5 ソフトウェア工学とは
まとめ

2. 要求定義
2.1 要求定義の目的
2.2 要求の特徴
2.3 要求定義の活動
 2.3.1 要求の抽出
 2.3.2 要求の分析
 2.3.3 要求の仕様化と妥当性確認
まとめ

3. ソフトウェア設計
3.1 ソフトウェア設計の基礎
 3.1.1 ソフトウェア設計とは
 3.1.2 ソフトウェア設計原則
3.2 ソフトウェア設計の活動
 3.2.1 ソフトウェア設計活動の流れ
 3.2.2 ソフトウェアアーキテクチャ設計
 3.2.3 ソフトウェア詳細設計
 3.2.4 ソフトウェア構築設計
3.3 ソフトウェア設計の技法
 3.3.1 構造化設計
 3.3.2 オブジェクト指向設計
まとめ

4. ソフトウェア構築
4.1 ソフトウェア構築の活動
 4.1.1 ソフトウェア構築活動の流れ
 4.1.2 コーディング
 4.1.3 コードの計量
4.2 ソフトウェア構築の技法
まとめ

5. ソフトウェアテスト
5.1 ソフトウェアテストの目的
 5.1.1 ソフトウェアテストの対象
 5.1.2 ソフトウェアテストの重要性
5.2 ソフトウェアテストの基礎知識
 5.2.1 ソフトウェアテストとは
 5.2.2 テストの一般原理
 5.2.3 テストレベル
5.3 ソフトウェアテストの活動
5.4 テストケース設計技法
まとめ

6. アジャイル開発
6.1 アジャイル開発とは
 6.1.1 ウォーターフォール型開発の問題点
 6.1.2 アジャイル開発の特徴
 6.1.3 アジャイル開発の長所と短所
 6.1.4 アジャイルソフトウェア開発宣言
6.2 エクストリームプログラミング
 6.2.1 XPの特徴
 6.2.2 XPにおけるシステム開発
 6.2.3 ストーリーカード
 6.2.4 タスク分割カード
 6.2.5 インデックスカードの取扱い
6.3 アジャイルモデリング
まとめ

7. EPISODE
7.1 従来のソフトウェア工学の問題点
7.2 EPISODEとは
7.3 EPISODEの基本
 7.3.1 デザイン思考関連
 7.3.2 アジャイル開発(エクストリームプログラミング)関連
 7.3.3 AIツール・データ分析関連
まとめ

8. チャットボット
8.1 対話システム
8.2 チャットボットとは
 8.2.1 種々のチャットボット
 8.2.2 高機能なチャットボットの実現に向けたAIの活用
8.3 IBM Watson Assistant
 8.3.1 WAの機能
 8.3.2 WAによる会話フローの作成の流れ
8.4 実装事例
 8.4.1 簡易問診による受診先病院の判定
 8.4.2 カフェ店員お助けボット
まとめ

9. EPISODEの応用
9.1 EPISODEのまとめ
 9.1.1 EPISODEの枠組み
 9.1.2 EPISODEの特徴
 9.1.3 EPISODEによるシステム開発
9.2 EPISODEの応用例
 9.2.1 データ分析
 9.2.2 論文の執筆
 9.2.3 就職活動のエントリーシート
まとめ

参考文献
索引

西野 哲朗(ニシノ テツロウ)

掲載日:2022/05/31

日刊工業新聞広告掲載(2022年5月31日)

掲載日:2022/04/18

情報処理学会誌「情報処理」2022年5月号広告

掲載日:2022/03/02

「電子情報通信学会誌」2022年3月号広告