デバッグ コード作法・設計作法 5つの視点 早わかり Junit 30分講座

やぼったい開発 > ウォータフォールモデルによる開発手法の基礎

ウォータフォールモデルによる開発手法の基礎

--

ITやアプリケーション、Webなどソフトウエアでの開発手法の基礎を説明するために、 ウォータフォールモデルで 説明します。試験工程も重視するような大型な開発について説明します。

ココに書いていることがあってるとか間違っているというよりも、 その場その場の状況に応じて、目的や成果、リスクを意識して考えることが大事です。 その際に責任をもって決断するのは当然ですが、 場合によっては上司やお客さんと調整することになります。

語調は厳しい厳しいかもしれませんが・・・勘弁してください。

工程別説明コンテンツ
各工程別にポイントを 書き表してみました。

かきなぐり感はありますが、なるべくポイントは丁寧に書いたつもりです。
開発工程全体像

自分の作業に直接関係なくとも、ある程度全体像を意識しておくものです。
流れよく前工程から、後工程へと連携するにはそういう意識が重要です。 それが仕事というものです。

空気の読めない、価値のない仕事をするのではなく、せめて自分でコントロールできる部分は、しっかり仕事しましょう。
うしろめたい状態は避けたほうが気分もすっきり、自信も付きます。

いきなり各工程を理解する前に、ウォーターフォルモデルとして、上工程と下工程を大まかに理解します。
ウォータフォールモデルと工程の関係図 ウォータフォールモデルと工程
(上工程・下工程 | ウォータフォールモデルだって後戻りをする?次の工程にすすめないわけではない。 )


用語

ウォーターフォール(yahoo検索)

レビュー 開発(yahoo検索)

ホワイトボックス テスト(yahoo検索)

ブラックボックス テスト(yahoo検索)

上工程(設計工程)

いわゆる作成フェーズの工程です。
どのようにつくって最終的に動くものを作るのかを大まかに説明します。
下工程(試験工程)

いわゆる動作担保フェーズです。
この工程がないということは、動作について疑問が残ります。ただ、担保するにもそれなりにコストがかかるので、そこは状況に応じた判断が必要です。

フラッシュバック:工程別説明記事 リプレイ

開発工程補足記事
単体試験と機能試験の違い
無駄のない質の良い試験仕様書の作成を目指して
開発工程 コラム
その他の開発手法
スクラム(yahoo検索):継続的な開発手法だが、これといったコアな方法はなく、ベストプラクティスに基づいている。スクラム的手法で開発する。代表的なものは、テスト駆動、継続的インテグレーション、リファクタリングなど。

アジャイル(yahoo検索)軽量な開発手法であり、代表的なものは XP(エクストリーム・プログラミング)がある。反復型のスパイラルモデルをメインとした開発手法。

エクストリーム 開発(yahoo検索)
軽量型の開発ベストプラクティス集。ペアプロ、テスト駆動、リファクタリング、継続的インテグレーションなどがある。
関連リンク
デバッグ〜ソフトウエア開発手法で身につける問題解決力

コード作法・設計作法 5つの視点

早わかり Junit 30分講座

単体試験と機能試験の違い

なぜ自動化するのか?単体テスト自動化のメリットとデメリット
外部リンク
情報処理推進機構:ソフトウェア・エンジニアリング

組み込みソフトウェア・テスト・クライシスの「傾向と対策」
組み込みだが、普通のソフトウエアに対応できる 開発の基本的コンセプトが説明されている。
http://www.kumikomi.net/article/explanation/2004/07softte/01.html

テクノロジーを身につける(3) テストの基本を身につける
ウォータフォールモデルでのテストの基本が説明されている。
http://allabout.co.jp/career/swengineer/closeup/CU20030216A/index.htm

Software Testing
ソフトウエア テスティングに関する団体。
勉強会やシンポジウムも開催している。Articleから各記事が読める。
http://www.swtest.jp/
マーチン・フォウラー氏の論文翻訳
「リファクタリング」の著者でXPなどの開発手法に造詣の深い、マーチン・フォウラー氏の論文の翻訳があります。
http://www007.upp.so-net.ne.jp/kengai/fowler/index.html

ソフトウエア開発は何に似ているか?:ITpro
プログラミング雑誌の編集をしていると,ソフトウエア開発やプログラミングは,何に似ているだろうか,と思うことがある。昔から様々な比ゆ(メタファ)が,ソフトウエア開発に用いられてきている。・・・・
itpro.nikkeibp.co.jp/article/OPINION/20060510/237412/


ソフトウェア技術者協会
ソフトウェア技術者協会は技術者個々人のための組織です。フォーラム、セミナー、シンポジウム、国際会議、分科会活動、機関紙発行等を通して、技術者の交流の場を提供しています。
http://www.sea.jp/

ソフトウエア開発に思う - 日経エレクトロニクス - Tech-On!
電子・情報・通信など,エレクトロニクス全分野の技術情報をお届けする,開発・設計者向けの情報誌『日経エレクトロニクス』。その編集部員が独自の意見や取材のウラ話などを毎日書き綴るブログです。
http://techon.nikkeibp.co.jp/article/TOPCOL/20061205/125027/

RSS/RSD 記事
@IT,誠Biz.IT,IT media / Tech 総研 /
ブログパーツ探すなら「ブログパーツ助っ人」!
レビューの基本を学びたい人に

もう一つ上のリーダクラスの仕事を任されるようになったら
情報の共有
ソフトウェアは情報なので、どれだけチームメンバーで情報を共有できるかが肝心な点になります。
情報を共有するためのシステム例を紹介します。

Trac:ソフトウェアのプロジェクト管理とバグ追跡のためのツール。修正BSDラインセンスで、ソース管理システム(Subversion,git)と連携が可能であると言われている。 wikiも実装されている。
同様なものに、影舞、Scarab(すからべ)、Redmineがある。


Pukiwiki:MLや共有サーバなどとあわせて情報共有のために使う。動的なWeb型掲示板のようなもの。独自な文法により、簡易に記載可能


・共有フォルダ: WebDAVプロトコル(Webサーバ)を使って、共有フォルダをメンバー間で使う。Samba(さんば)でアクセスすることもあったが、Samba自体が保守されていないため、最近は敬遠しがちである。 Windows Serverは高いが簡単に共有フォルダは作成できる。
管理
プロジェクトリーダ、プロジェクトマネージャーになってくると、チームの状況や進捗も管理しければいけません。管理すべき内容や、リーダシップについての記事を下にあげます。

プロジェクトマネージャののやっていはいけない
おすすめ
http://itpro.nikkeibp.co.jp/article/COLUMN/20080325/297007/
結局は事前計画を綿密にできるか、問題をすぐに把握して対応できるかが肝なんです。

Microsoft Project:一番有名なプロジェクト管理ツール。


・WBS: プロジェクト管理手法。プロジェクト全体のタスクを構造的に分解して表にした物。進捗や作業、アウトプットが一覧になっている。

お手製 簡易ガントチャートを作ってみる (事例で学ぶExcel)
開発工程を管理する

やぼったい開発 > ウォータフォールモデルによる開発手法の基礎