開発の複雑度が増すほど、コンピュータサイエンスが重要に 「端的にいえば、コンピュータサイエンスは物理法則であり、原理・理論。ソフトウェア工学は決まりや規律、プラクティスと呼ばれているものだ」 萩原氏はまず、コンピュータサイエンスとソフトウェア工学の違いや、両者の役割について説明。コンピュータサイエンスの要素としては、アルゴリズム、リソースやスケジュール管理、クラウドの分散処理などでも重要なCAP定理(FLP〔Fischer/Lynch/Paterson〕定理)、プロトコル設計などが挙げられる。一方、ソフトウェア工学には、見積もりや要求開発、概念モデリング、ALM(Application Lifecycle Management)、プロジェクト管理などがある。そして、両者に共通する部分がプログラミングだ。 それぞれの構成要素を見ても、日本はソフトウェア工学に偏っているのがわかる。たとえば、大