上流工程から下流工程までカバーした,工程別のシステム開発のTips (要件定義・プロジェクト立ち上げから,設計・実装・テストまで)
上流工程から下流工程までをカバーした,工程別のシステム開発のTips。
プロジェクト中に利用しやすいように,必要になる順番にまとめてある。
(1) プロジェクトの立ち上げと要件定義
要件定義:
プロジェクトマネジメント:
- アジャイル開発・スパイラル開発のメリットを,リーン時代にまとめて振り返る (計画の立て方やテストの意義,デメリットの回避方法など)
- プロジェクトの用語集 テンプレート (検索ボックス付き Excel シート)
チーム編成:
(2) 開発環境とリポジトリの構築
環境とツール:
リポジトリ作成:
- 開発用のフォルダ構成を,自動的に生成してくれるバッチ (プロジェクト用のリポジトリ立ち上げに便利。ついでに,用が済んだら自動消滅!)
- 開発時に,SVNリポジトリのディレクトリ上にコミットしておきたいバッチファイル
- SVNで,コミット時にログの入力を強制する (Windows版subversionのサーバ側フックスクリプトの作成方法)
作業の自動化:
(3) ドキュメント(作成支援と管理)
ドキュメントの作成の支援:
- Excelブックの「シート目次」を,自動的に作成するバッチ (WSH/JScriptで,各シートへのリンク付きの目次を自動生成)
- ドキュメント作成を楽にするための,Excel VBA 頻出8パターン
- Google 検索の「サジェスト機能」を, Excel のシート上にVBAで作る (セルの内容に応じて入力規則を動的に変える方法)
- 画面のスクリーンショットを,Excelブック内に自動的に保存するバッチ
グラフの作成:
- Excel VBAで,グラフを自動で描画しよう(データ範囲を動的に変える) + ソフトウェアの品質保証について
- Excelで,表データを「要約」した円グラフを作成する方法 (SUMIF関数のワイルドカードで,情報をまとめる)
ドキュメントの管理:
- 「実行可能ドキュメント」が満たすべき性質 − テスト自動化ツール「Excelenium」で使われている技術や手法
- パスワード付きのExcelの保護を,バッチで自動的に解除しよう (VBAマクロが見れないブックに対して,パスワードを自動入力)
- Excelのマクロを外部に吸い出して保存するバッチ (WSH/JScriptで,VBAのソースコードだけを抜き取る)
- Excel VBAのマクロを,複数のブックから利用する方法 (標準モジュールをブックの外部で管理して,共通ライブラリとして読み込み)
Word文書の操作:
(4) ドキュメント(個別)
アーキテクチャ設計書:
DBとテーブル定義書:
- Excelシート上のデータを DB にインポートするVBAマクロ
- 実行環境付きのSQL例文集 (ExcelのドキュメントからDBにアクセス)
- テーブル定義書から,Javaのエンティティクラスを自動生成する VBA マクロ
メッセージ定義書:
テスト仕様書から,テストを自動実行:
クラス図:
(5) 外部設計
モックアップ:
- ER図から,Webアプリを自動生成しよう (A5SQL Mk2 + CakePHPを連携させる)
- JScript製の簡易 HTML テンプレートエンジン (Webサイト作成時に,画面の共通部品を外部読み込み)
- Androidアプリのモック(紙芝居)の作成時に,必要なソースコード:コピペ用の一覧表
デザイン:
(6) 内部設計
クラス設計:
- GoFの23のデザインパターンを,Javaで活用するための一覧表 (パターンごとの要約コメント付き)
- JavaScriptでの例外設計 (throw,try-catch-finally構文のイメージと利用パターン)
(7) 実装工程
実装の効率化:
- 繰り返し実行可能なコンパイルバッチ
- UTF8Nの複数テキストを,一斉に置換するバッチ (JScriptでUTF8Nのファイルを読み書き)
- 制御しやすい「デバッグ用ロガー」を自作して,サクサク開発 (Javaで,メソッド名を含めログ出力する方法のサンプル)
コーディング規約:
メソッド作成:
DB操作:
(8) テスト工程
テスト工程の管理:
テストデータ:
- 大量のテストデータを快適に作る7つのコツ - 負荷テストのためにExcel&VBAをうまく使う
- 日本人の氏名のテストデータを,Excel VBAでランダムに生成しよう (ひらがなを使った大量のダミーデータ)
単体テスト:
- Ruby on Railsのテストの書き方 (モデルの単体テストと,コントローラの機能テスト)
- JavaScriptの単体テストフレームワーク "simpleJsUnit" で,テスト駆動開発をしよう
結合テスト:
負荷テストとパフォーマンス:
- インデックスを作成して,SQLの速度をチューニングする手順 (PostgreSQLで,EXPLAIN文とCREATE INDEX文によるパフォーマンス改善)
- 今から3分で jmeter の使い方を身に付ける (負荷テスト入門)
システムテスト: