软件工程这个篇章非常重要,能够在综合知识里面考到十几分,仅次于架构,在案例和论文里面也会用到。
软件开发的工程性的一些东西,基本思想就是用工程化的思想去做软件。
最早开发软件是没有软件工程的,最早使用计算机做大型的计算,后来计算机软件,成成一步步兴起,原来一个人很短时间能够搞定的事情,现在要许多人一起来完成这个工作。
而软件领域比较虚幻,往往要程序运行之后才能看到最终的效果,这就给软件开发带来了很大的风险。比如软件一开始没有问题,除去成本还能赚钱,但是有问题后修修改改,需要大量的成本,导致最后的亏损。
从而带来一些问题,也就是软件危机。我们希望软件开发能像建房子一样拔地而起,又比较受控,所以提出软件工程。软件工程很多东西跟建造领域的一些东西是有着异曲同工之妙的。
方法论就是你想要做成某些事情,你就需要遵循一些原则,否则就会出现一些问题。
结构化也叫做过程化,就是面向过程的。早期使用C语言开发过程化的东西那个时代,就是结构化时代。
思想原则
如果用C语言做过开发时,我们从整体看系统比较复杂,如何简化。那就是拆,拆成多个子系统,每个子系统拆模块,模块拆成子模块,最后变成了一个函数,函数输入输出是什么,用什么算法实现等,可能都有要求了,典型的应用就是瀑布模型。对日外包项目就是这种模式,标准化非常高。
结构法化方法思想其实很好,为什么会被淘汰了呢?
因为结构化开发的应变能力比较差,面向过程就是把业务流程固化到一个一个方法中了,是不容易做变更的,而现实中业务流程变化是非常常见的,所以该方法被淘汰了。而面向对象方法就是为了应对需求灵活。
一般认为是用在需求分析阶段的,其实就是一个demo. 就是为了避免在需求不明确时,这时候做一个原型来给客户演示。从而避免开发出来的东西跟客户想要的东西不一致.
比如C++,, VB, Java等都是面向对象的语言。
面向对象尝试在计算机里面构建一个与真实事件对应的一个体系。
比如现实中,有一个人,它完成了什么任务,他有什么特点,建模到系统里面。业务流程就可以按照建模进行组装,从而更加的灵活。所以面向对象有以下的一些基本思想原则。
思想原则
面向服务是在面向对象的基础上,进一步去做标准化这一层级的,服务的粒度会比对象大。
上面重点标注的方法为重点要学习的模型, 其他的了解即可.
软件工程的知识量很多, 我们慢慢的,一点点的学习这些方法与模型. 下一节会详细来讲软件的开发模型.
学无止境, 我们一起加油!