---
# System prepended metadata

title: Chapter14-3「システムの様々な開発手法」
tags: [基本情報技術]

---

# Chapter14-3「システムの様々な開発手法」

## 7/5(月)

###### tags:`基本情報技術`

さつき：
> 前節での開発手法は「伝統的」
* RAD
    * Rapid！とにかく短期間で開発を行うことを重要視。
    * 開発支援ツールはVisualBasicなど。聞いたことはあるぞ。
    * タイムボックス。固まっていない要求については、開発しない。
* アジャイルとXP
    * 週単位ってすごいな。
    * テスト駆動開発
    * ペアプロ
    * リファクタ
    * ソースコードの共同所有
    * 継続的インテグレーション
    * YAGNI
* リバースエンジニアリング
    * すでにあるソフトウェアを再利用することで、新規開発を手助けすることです。
* マッシュアップ
    * 公開されている複数のサービスをくみあわせることで、新しいサービスを作り出す手法をマッシュアップと言います。
* 過去問
    * 問1:OK
    * 問2:OK


にわ：
- 読み込み
    * さらにいろんな開発手法とツール
        * RAD（Rapid Application Development）
            * とにかく短期間で爆速！
            * プロトタイピングとスパイラルを合わせた感じで、プロトタイプ作ってくんだけど開発期限（タイムボックス）設けてそこ過ぎたら強制的に次の工程に進むみたいな方法を取ることもある。
        * アジャイル
            * スパイラルモデルの派生系。1回の反復で１つの機能を開発し、リリースする。
            * 代表的手法が「XP(extreme programming)」：仕様を固め過ぎず変更を許容する手法。
                * テスト駆動開発
                * ペアプロ
                * リファクタ
                * ソースコードの共同所有
                * 継続的インテグレーション（単体テスト終えたらすぐに結合テストを）
                * YAGNI（今必要なものを）
        * リバースエンジニアリング
            * 前述。これによって得られた仕様を元に開発するのを「フォワードエンジニアリング」という。
            * これに関しては知財への配慮が必要。
        * マッシュアップ
            * 公開されている複数のサービスを組み合わせることで新しいサービスを作り出す手法。マッシュポテト。
- 過去問
    * 問1：OK
    * 問2：OK

まい：
* RAD (Rapid Application Development)
  * エンドユーザーと開発者による少人数構成チームで、とにかく早く
  * RADツールはVisual Basicなど
  * タイムボックスを設け、プロトタイプを作って評価するサイクルを繰り返す
  * プロトタイプモデルとスパイラルモデルを組み合わせた感じ
  * 
* アジャイル
  * 1つの反復で1つの機能を開発、機能追加されたソフトウェアをリリース。どんどんリリースしてどんどん改良するスタイル
  * XP/ 少人数開発に適応しやすい、変更を許容する柔軟性を実現
    * 開発のプラクティス
      *  テスト駆動開発
      *  ペアプログラミング
      *  リファクタリング
      *  ソースコードの共同所有
      *  継続的インテグレーション/ Unit test→すぐにintegration test
      *  YAGNI/ You aren't going to need it. 今必要とされる機能だけのシンプルな実装に留める
      
* リバースエンジニアリング
  * すでにあるソフトウェアを再利用、新規開発を手助けする
  * 得られた仕様を元に開発することを、フォワードエンジニアリング
  * 元となるソフトウェア権利者の許可必要

* マッシュアップ
  * 公開されている複数のサービスを組み合わせて新しいサービスを作り出す

* 過去問
  * 問1 ok
  * 問2 ok