ヒント
目 的 全 般 的 な ソ フ ト ウ ェ ア 開 発 の 理 解 3.1
アプリケーションのライフ サイクル管理を理解する
シナリオ: Nupur は、Blue Yonder Airlines 社の新しい予約システムを開発するプロジェクトで、プロジェクト マ ネージャーに任命されました。彼女は、開発者チームを率いて、アプリケーション ライフ サイクルのすべての 段階を担当します。
Napur のチームは、同社の各部署のマネージャーとの会議で、会社のニーズと、だれもが必要とする基本機能 について、意見を聞きました。アプリケーションは Web ベースとし、Blue Yonder 社の顧客がオンラインでフ ライトの検索、予約、およびチェックインを行えるようにします。
会議の後、開発者のチームの各メンバーは、自分の視点でプログラムの概要設計を開始しました。実際のコー ディングはまだですが、UML を使用してプロジェクトのクラスやオブジェクトを書き出していきます。概要設 計は完成していませんが、必要な処理の実現方法がかなり具体的になってきています。Napur は、各チーム メ ンバーがプログラムの異なる部分を担当できるように、作業を分割したいと考えています。
1.
社内の各マネージャーとの Napur の会議は、アプリケーション ライフ サイクルのどの段階ですか。a. 設計 b. 開発 c. 計画
2.
このシナリオでの UML の用途は、次のどれですか。a. コードを書き始めていないため、時間の無駄である
b. 別々のコンポーネントが完成時に 1 つのソフトウェアとして動作することを 保証するために役立つ
c. チームがどのようにソフトウェアを作成するのか、クライアントが 理解するために役立つ
3.
チームメンバーがコードを作成するときに、Napur は各クラスを個別にテストする ように指示するつもりです。この戦略を何と呼びますか。a. 負荷テスト b. 単体テスト c. 統合テスト
アプリケーションのライフ サイクル管理を理解する 25
開発者は、アプ リケーション ライフ サイクル管理の段階や フェーズに異なる名前を 付けることがあります が、基本プロセスは同じ です。
の確認
得点 /3 解答
1.
社内の各マネージャーとの Napur の会議は、アプリケーション ライフ サイクルで次のように呼ばれる 段階です。c. 計画。アプリケーション ライフ サイクルの計画段階 (構想段階とも呼びます) では、クライアントの ニーズや要件を収集します。この場合は、社内の各部署がクライアントです。
2.
Napur の UML の用途は次のとおりです。b. 別々のコンポーネントが完成時に 1 つのソフトウェアとして動作することを保証するために役立つ。
実際の開発がどのように行われるかについては、クライアントはおそらく興味がないでしょう。
3.
各コンポーネントを個別にテストする場合、この戦略を次のように呼びます。b. 単体テスト
重要ポイント
• アプリケーション ライフ サイクル管理 (ALM) の各フェーズは、計画、設計、開発、テスト、および 保守です。
• ALM プロセスは反復的つまり繰り返しです。アプリケーションを配置した後、新しい問題や機能の追加
要求が発生して、このプロセスが最初から繰り返されることも尐なくありません。
• 実際にコードを記述する作業 (開発) は、全体のプロセスのごく一部です。
• UML は、統一モデリング言語の略語です。UML を使用すると、アプリケーションのさまざまなコンポー
ネントの仮想モデルを作成することができます。
• プログラマの多くは、オブジェクト指向プログラミングの「クラス図」に慣れ親しんで います。これは通常、UML 図として描画することができます。
詳 細 情 報
• http://msdn.microsoft.com/ja-jp/library/fda2bad5%28VS.100%29.aspx
• http://msdn.microsoft.com/ja-jp/library/dd409393%28VS.100%29.aspx
26 第 3 章:全般的なソフトウェア開発の理解
ヒント
目 的 全 般 的 な ソ フ ト ウ ェ ア 開 発 の 理 解 3.2
アプリケーションの仕様を解釈する
シナリオ: Ari は Contoso Pharmaceuticals 社でのインターンシップを終了したところです。同社の従業員が使う ソフトウェアの開発に参加していたのです。上司が彼の働きぶりにたいへん満足したため、Ari は、Contoso 社 の次世代アプリケーションの開発チームの一員として採用されました。チームが新しいアプリケーションを開 発している間も、社員が古いシステムを継続して使用できるように、新しいアプリケーションは新たにゼロか ら構築することに決定しました。
同社は現在 1000 を超える製品を作っており、この数は今後も増える予定です。新しいアプリケーションでは、
同社の在庫だけでなく、基本的な出荷と受注の詳細を記録します。社員はこのアプリケーションで、製品カタ ログを検索し、製品の説明、画像、在庫数、価格など、製品の詳細を確認します。
1.
これらの要件を満たすのは、どのようなアプリケーションですか。a. コンソール アプリケーション b. データベース アプリケーション
c. Windows サービス アプリケーション
2.
同社のコンピューターは大半が古く、RAM とハード ドライブの容量が限られていますが、すべてがイントラネットに接続しています。Ari はどうすれば、すべてのシステムで新しい バージョンを動作させることができますか。
a. C などの古いプログラミング言語でプログラムを記述する
b. Windows 98 などの古いオペレーティング システム上でプログラムを開発する
c. プログラムを Web アプリケーションにし、ブラウザーからアクセスできるように する
3.
Ari の上司は、実際に何が開発されていて、それをどのように使うのかを各部署の マネージャーに理解してもらいたいと思っています。そのため、実際の機能を見 せるのではなく、新しいアプリケーションの外観を示すためのデモンストレー ションを準備するように Ari に指示しました。これを何と呼びますか。a. モックアップ b. アルファ テスト c. ダイアグラミング
アプリケーションの仕様を解釈する 27
アプリケーショ ンの仕様は、クライ アントやユーザーの ニーズを開発者が理 解するために役立ち ます。
の確認
得点 /3 解答
1.
最適な種類のアプリケーションは、次のとおりです。b. データベース アプリケーション。このプログラムでは、大量の在庫レコードを格納、表示、および更 新する必要があります。
2.
古いシステムでソフトウェアを実行できるようにするための対策は、次のとおりです。c. プログラムを Web アプリケーションにする。ある程度最近の Web ブラウザーがインストールされた コンピューターであれば、問題なく Web アプリケーションにアクセスできます。
3.
実際の機能を持たないデモンストレーションは、次のように呼ばれます。a. モックアップ。モックアップでは何も実行できませんが、クライアントにユーザーインターフェイス の外観を見せることができます。
重要ポイント
• アプリケーションの仕様には、解決が必要な問題を説明し、開発者に要件を伝えるという役割があります。
• 仕様に含まれる要件は通常、クライアントやユーザーの観点から記述されています。開発者はこれを読み 取り、プログラム設計に変換する必要があります。
詳 細 情 報
• http://msdn.microsoft.com/ja-jp/library/5b13a7k4.aspx
• http://msdn.microsoft.com/en-us/library/aa984771%28VS.71%29.aspx (英語)
28 第 3 章:全般的なソフトウェア開発の理解
ヒント
目 的 全 般 的 な ソ フ ト ウ ェ ア 開 発 の 理 解 3.3
アルゴリズムとデータ構造を理解する
シナリオ: Cassie は先日、サッカー コーチの Ken のために、チーム メンバーのデータを管理するソフトウェア プログラムを作成することを約束しました。この選手名簿アプリケーションを使用すれば、コーチは容易に選 手の個人情報を管理し、単純な統計を作成できるようになるはずです。
Cassie は最初の計画を完了し、プログラム内ですべてのデータをどのように編成するかを決断する段階に来て います。このアプリケーションでは数多くの選手のデータを管理し、ユーザーが個人データを検索および抽出 できるようにしようと思っています。これに加えてコーチのために、全選手の背番号順のリスト、姓をアル ファベット順に並べた電話番号リスト、チームの得点上位者のリストなど、いくつかのレポートを印刷できる ようにしておく必要があるでしょう。
1.
次のデータ構造のうち、選手データの管理に適したものはどれですか。a. スタック b. 配列
c. リンクリスト
2.
次のうち、Cassie が選手をアルファベット順に並べるために使用できる方法は どれですか。a. バイナリ検索 b. キュー
c. バブルソート
3.
後入れ先出し方式のみを使用して選手を取得したい場合、Cassie が使用できる データ構造はどれですか。a. スタック b. キュー
c. リンクリスト
アルゴリズムとデータ構造を理解する 29
データ構造とは、
データを整理し、
データに対してさまざ まな操作を実行するた めに使用するクラス
です。