見出し画像

ソフトウェア・エンジニアリング

ソフトウェア・エンジニアリングとは、システム開発技術の変遷に影響されにくい基礎的、普遍的な部分として、アーキテクトが持つべき視点や観点を体系化したものである。

ソフトウエア・エンジニアリングが目指すのは,
(1)ユーザーからの要求を漏れなくソフトウエアに反映させる,
(2)バグが含まれていないソフトウエアを作成する,
(3)ソフトウエア開発を自動化し,保守を効率化する,
の3つである。

これはすなわち「ソフトウエアのQ(品質),C(コスト),D(納期)を改善すること」にほかならない。

画像1


ソフトウェアは、「活用する」ことに意味がある

エンジニアリングは、実機上で効率良く動作し,信頼できるソフトウエアを,経済的に取得するための合理的かつ工学的な原則を確立し,用いること

ソフトウェア・エンジニアリングは、
①実際のコンピュータで稼働するソフトウエアを対象とする
②原則を確立するだけでなく,それを「用いる」ことに言及している
つまり,「ソフトウエア開発・保守の理論や方法を原則として確立し,それを実践の場で“活用する”」ことである。

近年のIT状況

身近になったソフトウェア
ソフトウェア利用の拡大
システム規模の拡大
ソフトウェアエンジニアリングの扱う技術領域
 ・開発プロセス(CMM)
 ・要求定義技術(QFD)
 ・設計技術・技法(アークテクチャー・オブジェクト)
 ・品質保証技術(レビュー、UMLテスト)
システム開発の足腰を鍛えるソフトウェア・エンジニアリング
より高度なソフトウェア開発を目指して
情報システムは、現代社会において欠かすことのできない社会基盤である。
一般社員にもITリテラシが重要になる。


ソフトウェア工学
ソフトウェア工学には、設計法と生産法の二つに分類される領域がある。ソフトウェア設計法は、ソフトウェア構造を考察する領域であり、一般的にソフトウェア・アーキテクチャと呼称される。ソフトウェア生産法は、ソフトウェア開発工程を考察する領域であり、一般的にソフトウェア・プロセスと呼称される。これら二つの領域は利点と制約の面で相互関係がある。

ソフトウェア開発技法
   構造化技法(構造化プログラミング)
  オブジェクト指向開発方法論(オブジェクト指向プログラミング)
  ソフトウェア構造に関するデザインパターン (ソフトウェア)及びアンチパターン

ソフトウェア開発工程
 要件定義、設計、コーディング、テスト、保守

ソフトウェア開発の技術分類

ソフトウェア開発の技術はプロダクト・プロセス・プロジェクト管理に分類できる。

プロダクト
  モデルの表現方法、ソフトウェアのアーキテクチャに関する技術ISO/IEC9126、UML)などがある。

プロセス
  管理工程・手順を定式化した開発技術。(CMM/CMMI、ISO9001、SLCP、IEEEソフトウェア規格)などがある。

プロジェクト管理(工程管理)
  納期・品質・コスト管理技術・教育など。(ファンクションポイント法、PMBOK、ISBOK)などがある。

ソフトウェアプロセスの価値観
• 品 質: システムへの要求が満たされる
• コスト: 費用(おもに人件費)が少ない
• 納 期: 所定の期限までに納品
• 変 化: 要求の変化に適応して進化させやすい

構造化(結合、アーキテクチャー)
抽象化(データ中心)
品質特性(正当性、構造的帰納法、モデル)
モデル化(並列・モデリング)
再利用(オブジェクト・デザインパターン)
開発プロセス
ユニットテスト(テスト自動化)
DevOps(開発と運用の自動化)

と進化を続けていく


この記事が気に入ったらサポートをしてみませんか?