主要解决科学计算问题,用户要求简单而固定。
特点:
1.分析解决问题所需要的步骤;
2.利用函数实现各个步骤;
3.依次调用函数解决问题;
问题:
1.软件可重用性差;
2.软件可维护性差;
3.构建的软件无法满足用户需求。
将现实世界中的事物直接映射到程序中,可直接满足用户需求。
特点:
1.直接分析用需求中涉及的各个实体;
2.在代码中描述现实世界中的实体;
3.在代码中关联各个实体协同工作解决问题;
优势:
1.构建的软件能够适应用户需求的不断变化;
2.直接利用面向过程方法的优势而避开其劣势。
当面向过程的方法论暴露的缺陷越来越多的时候,业界开始考虑在工程项目中引入面向对象的设计方法,而第一个需要解决的问题:高效的面向对象语言,并且能够兼容已有的C代码。
以安卓系统为例,C语言开发只是占其中的一部分,HAL可以用C/C++编写,为了方便移植和开发,大部分外设器件厂商的HAL采用C++编写。Native层和ART大部分使用面向对象C++编写。
操作系统的修改和驱动程序开发在现代软件产品中占据的比重越来越小。
安卓系统框架图链接
系统一般是由多种语言写成的
系统架构的目的是拥抱用户需求的变化
系统拥有较好的移植性
系统能够方便的部署和更新。
对于一个架构师而言,掌握各种语言的优势并合理运用到系统中,由此简化系统的开发,是架构生涯的第一步。