【開発プロセス・手法】ソフトウェア開発モデル、アジャイル開発など

開発プロセス・手法(ソフトウェア開発モデル、アジャイル開発など)についてまとめました。

【ソフトウェア開発モデル】

モデル 概要
ウォータフォールモデル 開発の作業工程を「要求定義」「外部設計(概要設計)」「内部設計(詳細設計)」「開発(プログラミング)」「テスト」「運用」などと時系列順に分割し、滝のように上から下に流れるように開発していくモデルです。工程管理がしやすいため大規模なシステム開発に向いていますが、工程の後戻りが生じると大幅な時間のロスが生じるという欠点があります。
成長型プロセス インクリメンタルプロセスモデルともいい、ウォータフォールモデルの工程を繰り返し、機能を段階的に提供していくモデルです。
スパイラルモデル 一連の開発工程を何回も繰り返し、開発機能の規模を拡大するプロセルモデルです。開発コストの増加などのリスクを最小にしてシステム開発を行える利点があります。
プロトタイピングモデル 開発の初期段階で試作品を作り、利用者の要求を反映しながら開発を進める手法です。

【アジャイル開発】

用語 概要
スクラム アジャイル開発の1種で、開発プロジェクトを短期間(数週間程度)で区切り、その期間内に分析、設計、実装、テストの一連の活動を行い、一部分を完成させるという作業(スプリント)を繰り返しながら、段階的に動作可能なシステムを開発する。

スクラムでは、スクラムチームを構成するプロダクトオーナ・開発チーム・スクラムマスターの役割、並びに5つのイベントと3つの作成物が定義されています。

【ソフトウェア再利用】

ソフトウェアのソースコードを1から作成すると、バグやセキュリティ脆弱性が入る余地を作りやすくなります。
既存の検証済ソースコードを再利用すると、バグやセキュリティ脆弱性を取り除くための工数を削減することができます。
そのため、コードの再利用は効率よく問題を起こしにくいソフトウェアを構築する上で重要なため、ソースコードを作成する際は、初期から流用可能な部品化を考慮に入れた開発を行うのが大切です。

【再利用の特徴】
● ソフトウェア再利用を前提とした部品開発は、様々な利用場面を想定して機能を実装するため初期には工数がかかります。
● 同一機能を実装する場合、複数の小さい部品を再利用するより、1つの大きい部品を再利用する方が開発工数の削減効果は大きい(部品の大きさに比例した工数の削減が期待できる)。
● 部品の再利用を促進するための表彰制度などによるインセンティブの効果は、初期が最も高い
部品を再利用したときに削減できる工数の比率は,部品の大きさに反比例する。

【リバースエンジニアリング】

リバースエンジニアリングは、既存ソフトウェアの動作を解析するなどして、製品の構造を分析し、そこから製造方法や動作原理、設計図、ソースコードなどを調査する技法です。

間違えやすい単語 概要
リエンジニアリング 既存のシステム資源を利用して新しいシステムを再構築する手法や技術全般。
リストラクチャリング 日本語で再構築の意で、企業が事業規模に合わせて組織を再編成すること。
リファクタリング プログラムの外部から見た動作を変えずにソースコードの内部構造を改善・整理すること。

【マッシュアップ】

【構造化手法】

【形式手法】

【ソフトウェアライフサイクルプロセス(SLCP)】

SLCP
共通フレームとは 共通フレームとは、情報処理推進機構が発行しているソフトウェアライフサイクルにおける用語や作業内容などを規定したガイドラインです。国際規格である「ソフトウエアライフサイクルプロセス(SLCP)」を日本独自に拡張したものが共通フレーム(SLCP-JCF)です。

【プロセス成熟度】CMMI

CMMI(Capability Maturity Model Integration:統合能力成熟度モデル)は、組織におけるプロセス改善をガイドするモデルです。
組織の各プロセスが重要な要素をゴール及びプラクティスという概念を用いて整理されています。また、未成熟なプロセスから有効性を持った秩序ある成熟したプロセスへの進化の改善経路も記述していて、自らの組織の状況に合わせて適用内容を徐々に高度化できるようになっています。
CMMIではプロセス成熟度に対して5つのレベルが設定されています。

レベル 概要
レベル1:初期 場当たり的で無秩序な組織として最も低い状態。
レベル2:管理された プロジェクト管理のための基本的なプロセスが備わっている状態。
レベル3:定義された 組織内に標準化された一貫性のあるプロセスが定義されている状態。
レベル4:定量的に管理された 定量的な品質目標が存在し、プロセスはデータに基づき予測可能である状態。
レベル5:最適化している 継続的な改善プロセスが常に機能している状態。

【その他】エクストリームプログラミング

用語 概要
エクストリームプログラミング XP:eXtreme Programmingとは、1990年代後半、Kent Beck氏らによって定式化され、提唱されているソフトウェア開発手法でアジャイルソフトウェア開発と称される一連の手法の先駆けとなったものです。「プログラマーは人間である」という思想のもと、叩き台となるプログラムを早期に開発し、リスクを軽減するために開発初期から積極的にテストを繰り返していくことを重視しています。
計画ゲーム 実現するユーザ機能(ストーリー)とリリース計画を顧客と交渉する作業です。イテレーション(反復、繰り返し)の度に行います。
コーディング標準 ソースコードを記述する際のルールを定めたものです。XPでは、ペアプログラミングやリファクタリングにおいて複数人によるコードの共有を前提としているため、コーディング標準の順守が重視されます。
テスト駆動開発 求める機能を明確化するために、プログラムを記述するよりも前にテストケースを作成する開発手法です。そのテストをパスする最低限の実装を行った後で、機能を維持したままコードを洗練していくという手順で開発を進めます。
ペアプログラミング 2人1組で1つのプログラムの実装を行い、1人が実際のコードをコンピュータに打ち込み、もう1人はそれをチェックしながら補佐するという役割を随時交代しながら作業を進めていく手法です。プログラムをコンピュータに打ち込む人を「ドライバ」、それを補佐する人を「ナビゲータ」といいます。
【情報処理入門】テクノロジ系、マネジメント系、ストラテジ系、資格試験
情報処理の基礎知識(テクノロジ系、マネジメント系、ストラテジ系)や資格試験についてまとめました。

コメント

タイトルとURLをコピーしました