このコラムはブロガーの個人的なメモであり、主な目的は、断片的な時間を利用してソフトエンジニアリングの知識ポイントを暗記することです、ここに宣言します!
記事ディレクトリ
3. ソフトウェア プロジェクト管理プロセスは、一連のプロジェクト計画活動から始まります。計画の基礎は何ですか?
6. ライン・オブ・コード・テクノロジーの主な利点は何ですか?
7. ライン・オブ・コード・テクノロジーの主な欠点は何ですか?
8. ソフトウェアのサイズを測定するためのファンクション ポイント テクノロジの単位は何ですか?
10. ワークロードはソフトウェアの規模に応じて変化します。通常、その単位はどれくらいですか?
12. ガント (ガント) チャートの主な利点と欠点は何ですか?
14. ソフトウェア開発における人員組織の方法はどのようなものですか?それぞれの方法の特徴、メリット、デメリットを簡単に説明してください。
18. ベースラインとは何ですか? どのように変更できますか?
19. ソフトウェア構成管理の 5 つの主なタスクは何ですか?
21. 能力成熟度の 5 つのレベル (低から高まで) は何ですか?
1. マネジメントの定義とは何ですか?
いわゆるマネジメントとは、計画、組織、管理などの一連の活動を通じて、設定された目標を達成するためにさまざまなリソースを合理的に配分し、活用するプロセスです。
2. ソフトウェアプロジェクトの管理状況は? (重要性)
ソフトウェア プロジェクト管理は、技術的な活動の前に開始され、ソフトウェアのライフサイクル全体にわたって継続されます。
3. ソフトウェア プロジェクト管理プロセスは、一連のプロジェクト計画活動から始まります。計画の基礎は何ですか?
計画は工数の見積もりと完了期限の見積もりに基づいて行われます
プロジェクトの労力と完了期限を見積もるには、まずソフトウェアのサイズを見積もる必要があります。
4. ソフトウェアのサイズを見積もる方法はありますか?
- コードラインテクノロジー
- ファンクションポイントテクノロジー
5. ライン・オブ・コード・テクノロジーとは何ですか?
つまり、過去に同様の製品を開発した経験と履歴データに基づいて、機能を実現するために必要なソースプログラムの行数を見積もります。
6. ライン・オブ・コード・テクノロジーの主な利点は何ですか?
コードはすべてのソフトウェア開発プロジェクトの「製品」であり、コードの行数を数えるのは簡単です
7. ライン・オブ・コード・テクノロジーの主な欠点は何ですか?
- ソースプログラムはソフトウェア構成の一部にすぎず、そのサイズをソフトウェア全体のサイズに置き換えるのは不合理です。
- 同じソフトウェアを異なる言語で実装するために必要なコードの行数は同じではありません
- このアプローチは非手続き型言語には適していません
8. ソフトウェアのサイズを測定するためのファンクション ポイント テクノロジの単位は何ですか?
ファンクションポイント (FP)でのソフトウェア サイズの測定
9. ワークロード推定モデルはありますか?
- 静的一変量モデル (基本的な COCOMO モデル)
- 静的多変量モデル (COCOMO2 モデル、中間構造を持つ COCOMO)
- 動的多変量モデル (putnam モデル)
[注]: すべての種類のソフトウェアに適用できる推定モデルはありません。
10. ワークロードはソフトウェアの規模に応じて変化します。通常、その単位はどれくらいですか?
人月(pm)
11. ガント チャートとは何ですか?
ガント(ガント)チャートはスケジュールを立てるためのツールとして古くから広く使われています。
12. ガント (ガント) チャートの主な利点と欠点は何ですか?
主な利点:
- タスクの分解状況を視覚的に説明できる
- 直感的かつ簡潔で、把握しやすく、描画しやすい
主な欠点:
- ジョブ間の依存関係を明示的に示していない
- スケジュールの主要な部分が明確ではなく、どの部分を主な攻撃対象とし主な制御対象とするかを決定することが困難である
- 計画の中でポテンシャルのある部分やポテンシャルの大きさが不明確で、ポテンシャルを無駄にしてしまうことが多い
13. エンジニアリングネットワーク図とは何ですか?
エンジニアリング ネットワーク図も、スケジュールを作成するときによく使用されるグラフィック ツールであり、システム分析とシステム設計に強力なツールです。スケジュールの策定や管理には、ガント図とエンジニアリングネットワーク図を相互に補完し合うように活用する必要があります。
14. ソフトウェア開発における人員組織の方法はどのようなものですか?それぞれの方法の特徴、メリット、デメリットを簡単に説明してください。
- 民主プログラマー グループ
特徴: チームメンバーは完全に平等であり、完全な民主主義を享受しており、技術的な決定は協議を通じて行われます。
利点: 1. チーム メンバーはプログラム エラーの発見に対して積極的な姿勢を持ち、これによりエラーをより迅速に発見し、高品質なコードを生成することができます。
2. チームメンバーは完全な民主主義を享受しており、グループの団結力は高く、グループ内の強力な技術的雰囲気は技術的な問題を克服するのに役立ちます。
デメリット:グループメンバーの技術レベルが高くない場合や経験の浅い初心者の場合、開発作業を指導する明確な権限がないため
プロジェクトが実行されないと、チームメンバー間で必要な調整が不足し、最終的にプロジェクトの失敗につながる可能性があります。
- メインプログラマーグループ
特徴: 1. 専門性 2. 階層性
利点: 1. 開発を指導する経験豊富なマスタープログラマーがいます。
2. プログラマ間の通信はメインプログラマを介して行われるため、通信コストが削減され、開発・生産効率が向上します。
デメリット: 1. メインプログラマーは優れた技術だけでなく、優れたマネジメントスキルも必要となるなど、現実的ではない面が多い
このような人材を見つけるのは困難ですが、バックエンド プログラマーを見つけるのはさらに困難であり、プログラミング秘書も見つけるのが困難です。
2. チームメンバーは間違いを見つけたがらない
- 現代のプログラマーグループ
特徴:メインプログラマグループを最適化し、メインプログラマの管理業務のほとんどを廃止し、技術リーダーと技術リーダーに分割します。
行政関係者
利点: 民主的プログラマー グループとメイン プログラマー グループの利点を組み合わせたもの
短所:作業開始前に技術チームリーダーと管理チームリーダーの管理権限を明確に分けないと混乱が生じる可能性がある
プログラマの数が多すぎてはいけないため、ソフトウェア プロジェクトが大規模な場合は、プログラマをいくつかのグループに分ける必要があります。その組織構造は次の図に示されています。
15. ソフトウェアの品質とは何ですか?
ソフトウェアの品質とは、ソフトウェアが明示的および暗黙的に定義された要件にどの程度準拠しているかを表します。
16. ソフトウェアの品質保証の主な対策は何ですか?
- 非実行ベースのテスト (レビューとレビュー)
- 実行ベースのテスト (ソフトウェア テスト)
- プログラムの正しさの証明 (数学的手法)
17. ソフトウェア構成管理とは何ですか?
ソフトウェア構成管理はライフサイクル全体を通じて実行され、変更が適切に実装されていることを確認するために、ソフトウェアのライフサイクル全体を通じて変更を管理し、変更を特定、制御、報告する一連のアクティビティです。
18. ベースラインとは何ですか? どのように変更できますか?
ベースラインは、正式なレビューに合格したソフトウェア構成アイテムであり、さらなる開発の基礎として機能します。
正式な変更管理プロセスが通過した場合にのみ変更できます。
19. ソフトウェア構成管理の 5 つの主なタスクは何ですか?
- オブジェクトを識別する
- バージョン管理
- 変更制御
- 構成監査
- 現状報告
20. 能力成熟度モデル (CMM) とは何ですか?
能力成熟度モデル (CMM) は、ソフトウェア組織のソフトウェア プロセス能力の成熟度を評価するために使用されるモデルであり、ソフトウェア開発組織が大規模で成熟したソフトウェア プロセスを確立するのに役立ちます。
21. 能力成熟度の 5 つのレベル (低から高まで) は何ですか?
- 初期レベル
- 再現可能なグレード
- 定義されたクラス
- 管理された
- 最適化レベル
章の最後にまとめ
ソフトウェア エンジニアリングには、テクノロジーとマネジメントの 2 つの側面が含まれており、テクノロジーとマネジメントの密接な組み合わせの成果です。科学的かつ厳格な管理のもとでのみ、高度な技術手法や優れたソフトウェアツールが真の力を発揮することができます。したがって、効果的な管理が大規模なソフトウェア エンジニアリング プロジェクトの成功の鍵となります。
ソフトウェア プロジェクト管理はプロジェクト計画から始まり、最初の計画アクティビティは見積もりです。プロジェクトの労力と完了期限を見積もるには、まずソフトウェアのサイズを予測する必要があります。
ソフトウェアのサイズを測定するために一般的に使用される手法には、主にコード行手法とファンクション ポイント手法が含まれます。どちらの手法にも長所と短所があります。プロジェクトの特性と、計画作業に携わる 2 つのテクノロジの精通度に応じて、適切なテクノロジを選択する必要があります。
ソフトウェアの規模に応じて、プロジェクトを完了するために必要な作業量を見積もることができ、一般的に使用される見積モデルには、静的一変量モデル、動的多変量モデル、COCOMO2 モデルがあります。推定結果を実際の値に近づけるために、通常は上記 3 つのモデルのうち少なくとも 2 つを同時に使用します。異なるモデルを使用して得られた推定値を比較および調整することで、より正確な推定値を取得することができます。コスト見積もりモデルでは、通常、ソフトウェア開発時間を見積もるための方程式も提供されます。見積もられた開発時間は、通常の開発時間です。経験上、開発者の数を増やすことで、開発時間は通常の開発時間の 75% に短縮できることがわかっています。
マネージャーは、プロジェクトの進捗状況を監視し、プロジェクト全体を制御するのに十分な詳細なスケジュールを作成する必要があります。スケジュールを作成するために一般的に使用されるツールは、ガント チャートとエンジニアリング ネットワークです。これら 2 つのツールには、それぞれ長所と短所があります。通常、ガント チャートとエンジニアリング ネットワークは、スケジュールの策定やプロジェクトの進捗状況の監視に併用されます。
高品質の開発者とプロジェクト チームの合理的な組織構造が、ソフトウェア プロジェクトの成功の鍵です。典型的な組織構造には、民主プログラマ グループ、メイン プログラマ グループ、モダン プログラマ グループの3 つがあり、これら 3 つの組織方法が適用される場面は同じではありません。ソフトウェアの品質保証は、ソフトウェア プロセスのあらゆる段階で実行される活動です。ソフトウェアの品質保証手段には主に、非実行ベースのテスト (レビューとも呼ばれます)、実行ベースのテスト (つまり、一般にテストと呼ばれます)、およびプログラムの正当性の証明が含まれます。ソフトウェア レビューは、ソフトウェアの品質保証活動の中で最も重要な活動の 1 つであり、その利点は、エラー修正のコストが比較的低い場合に、ソフトウェア エラーを発見して適時に除去できることです。
ソフトウェア構成管理は、ソフトウェア プロセス全体に適用される保護活動であり、ソフトウェアのライフ サイクル全体における変更を管理する一連の活動です。ソフトウェア構成管理の目標は、変更をより正確かつ適応しやすくし、必要な場合にソフトウェアの変更にかかる作業量を削減することです。
能力成熟度モデル (CMM) は、ソフトウェア プロセスを改善するための効果的な戦略です。その基本的な考え方は、問題はソフトウェア プロセスの管理方法が不適切であることが原因であるため、新しいテクノロジの導入によってソフトウェアの生産性やソフトウェアの品質が自動的に向上するわけではなく、ソフトウェアプロセスの管理を改善する努力が必要である、というものです。実際、ソフトウェア プロセスの改善は一夜にして達成できるものではありません。したがって、CMM は段階的に変更を導入し、 5 つの成熟度レベルを明確に定義しています。ソフトウェア開発組織は、一連の小さな改善ステップを使用して、より高い成熟度レベルに進むことができます。
繰り返し、地に足を着いて、決して忘れることなく、響き渡るでしょう!