导读:一直没有对软考做个系统的总结,看了软考视频后,没有成一个知识的体系结构,没有总结出来。然后,看完书之后,突然多了很多想法,所以,我的第一篇总结就出炉啦!我将运用两种视角来总结软考的知识点:一是简单从软件工程的角度来说;二是从一个软件工程设计师所应该具备的素质来说。
一、软工的由来
软件工程的产生,其大体上可看做:软件——>软件危机——>工程——>软件工程。其软件工程产生后,又经过了四次迭代,发展到第四代软件工程。为什么会有软件工程这一概念呢?
首先,一开始我们是一种小作坊的形式在生产(小农经济),随着软件行业的发展,小作坊式的结构,已经不足以应付大规模的生产,这时候的生产方式,导致了软件危机。所谓软件危机,也无非就是从:时间、用户、质量这几个方面去考虑的。那么,为了解决(缓解)这一危机现象,程序员、科学家们提出用工程化的思想来开发软件,解决软件危机。
软件工程:第三次宏观总结
二、软工是什么
从软件工程的由来可以看出,我们所说的软件工程,其实是一个软件危机的解决方案。我认为,软件工程,就是一套用最少的成本,取得最大的收益的解决方案。这之中,包含了我们熟知的:UML,设计模式,面向对象等工具和方法。
那么,比较权威的定义,又是什么呢?
《计算机科学技术百科全书》:软件工程是应用计算机科学、数学、逻辑学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本和改进算法。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
三、软工的体系
3.1,从知识点本身的角度
说明:说到软件工程,我首先结合到软工=软件+工程,想到了软件,肯定就想到了硬件,其工程化的思想,必将推动到规范化、标准化。以现实建筑工程为例:建筑工程所构建的图纸,施工,成品,其都是根据建筑行业的一致观点而进行设计和实现。有艺术细胞的设计师会别出心裁的进行个人的设计,其实也就相当于我们在设计软件时的模式和架构方式,编码实现方式的一个融会贯通。
结合到具体的知识点,再根据自己的一个理解,我将硬件划分为软工的基础,标准化等作为软工的一个体现,而工程和软件则是软工的2个核心。软件和硬件在软工里,我认为是一个相互配合的关系,而工程化的思想,解决了软件的危机,标准化、知识产权,保护了工程化思想下标准的优秀产品,从而也刺激了工程化思想开发的升华。
软件类,我从软件开发所用到的软件作为一个分类依据,首先是基础配置:操作系统,网络多媒体;其次是软件开发所需要的东西:语言基础、排序算法、数据库技术。而将工程这一块划分为了三个要素:方法、工具、过程,其中方法指导过程,工具支撑方法。
3.2,从软件工程师素质的角度
说明:一个软件设计师,最基本的六个素质是:编码能力、规范化和合作意识、工程化的概念、求知和进取的品质、英语能力、数据库能力。我们所学的,就是为了将我们培养成为一个软件工程师,那么,将这些知识进行分类,是一个什么样的结构呢?如上图!
我解释一下,第一轮关系:我认为数据库能力和编码的实现是一个成正比的结构,数据库的能力强,设计出的数据结构就会越好,当我们的数据结构越好,那么编码实现这一块的性能和效率也会越高。在编码中,尤其是合作开发,就必须有一个统一的规范,和小组的统一约束,所以,我认为编码实现,是遵从一个规范化、合作的意识的,规范化和合作,就恰恰体现了从小作坊式的开发到工程化的开发,也进一步体现了程序员们的不断进取和求知(软工的诞生)。在我们求知、进取的过程中,我们都需要获取大量的知识,就目前来说,很多研究发现和著作都是用英文存档发布,所以,英语能力,我认为是我们进取、求知的一个很重要的条件。在我们的数据库设计中,字段、语句、注释等都为英文,所以,英语能力同时也能帮助我们理解数据数据库,提升数据库能力。
四、学习总结
这是第一次有想法的去总结,去画一个思维导图。这个图是前两天画的,当时感觉可好了,现在回头看一眼,觉得这个图还有很多不足,没有一个牵一发而动的感觉,下次要继续总结!
不过迈出这一步,就已经是一个很好的开始,我会继续努力。