考研 | 软件工程总结

        软件工程这门课,我最近已经学习的差不多了。写篇博客来记录一下,我自己的一些看法吧。
        ps:首先,在这里声明一下,我学的还是相对简单的软件工程,因为是考研要考的,有很多知识其实都没有放进去。所以,在此博客当中讲的内容都比较基础。

        要学习软件工程这门课,那首先得去认识了解软工到底是干什么的?
        答:软件工程这门课是一门工程学科,它的主要目的是开发软件,并且是开发出有质量的软件。可以把软件想想成需要建造的一栋大楼,这样其实也不难理解软件工程是一门工程学科。
        那么又会有人说,既然是开发软件,那直接去学习现成的框架技术就好啦,比如spring,django等等。学完框架直接写代码不一样能写出软件吗,对吧。
        再此,我要解释一下,为什么我们不能去认为学习框架技术就可以代替学习软件工程的重要性。虽然学习框架,去写代码确实是可以开发出软件,但是这样其实会有很多很多问题。因为开发软件没有想象中的那么简单,需要考虑到很多很多的因素,正如我前面提到的,要开发出有质量的软件。如果想知道为什么会产生这门学科,请查阅第一次软件危机。

一、软件工程整体框架

        软件工程是一门工程学科,研究的是方法论,教我用什么方法去造“房子”。
        软件开发的过程分为以下几个阶段:
  • 可行性分析
  • 需求分析
  • 总体设计
  • 详细设计
  • 实现
  • 维护 
        其实可以分的再简单一点,分析阶段、设计阶段、实现阶段和维护。

分析阶段

        主要是分析软件的功能有没有可行的方案,可不可以被实现。还要分析软件的需求。

 设计阶段

        这个阶段需要完成的任务和思考的问题是,我们如何去完成这个项目,这个软件的整体框架是怎么样的,从宏观的角度在到微观的角度去设计出整个项目。

 实现阶段

         前面两个阶段在考虑的问题是这项目,怎么要做,如何去做,没有正式的进行编码,然而在这个阶段才是真正的写代码,把之前设计出来的结果转换成代码。同时还有一项工作需要做,那就是测试。实现阶段并不是只有编码,还测试,需要将写的代码使用一些测试方法,来保证软件的可靠性。

 维护阶段

       维护是在软件已经完成,交付给客户之后的,客户在使用软件当中出现的问题,或者是更改需求,更改功能,这中类似的一系列工作,都可以算在维护里面。(个人看法:可以把软件开成一个人,因为人无完人,为了让软件可以活的更久,它也需要进行改变,需要成长,因为我们人也经常会犯错,那更和况软件,软件是由我们人创造出来的,虽然可能在它被创造出来之后,有一段时间是被大家认可的,但是随着时间的推移,外界世界的变化,它也会变的不那么好,为了可以让它在活的更久,我们就需要对它进行维护。)

 二、其他

        上面一节,简单的介绍了一下软件生命周期模型,以及我个人的理解。虽然软件生命周期可以说概括整个软件开发的过程,但是我这些并不是全部。接下来,我分别介绍一下,我了解的其他的一些知识。
  1. 面向对象
  2. 软件过程
  3. 软件项目管理 

面向对象:

       面向对象是一种思想,再此我只能简单的描述一下,我个人的看法以及经历,因为我明确的认识到自己对面向对象的掌握还没有到那种非常厉害的境界。
       面向对象,大家应该都会知道三大性质:封装、继承和多态(也是其精髓所在)。而且面向对象的思想与我们人思考问题的,解决问题的思想很相似。
       例如
       1.我们为了生活的便利,创造出了很多很多的工具,自行车,电梯等等,所有的工具,可以看成,我们人把他们封装起来了,我们使用的人其实可以不用知道这东西的原理,直接拿来使用就可以了,就比如做电梯的时候,还需要思考这电梯是通过什么原理做出来的,再进入电梯吗?其实不用。
       2.我们每个人,身上都有父母基因,我们都会和父母有相似之处,这就是我们继承父母的基因,但是我们又是一个特殊的存在,我们拥有他们不会的技能,也拥有相同的技能但我们的方法不一样。继承与多态的两个性质有时候会连在一起。
       3.在程序当中每个对象的产生都是独一无二的存在,就想我们存在世上也是独一无二的一样,我们拥有不一样的升高体重,不一样的思维方式,不一样的学历等等。
       上面举出了三个例子,正是想说明面向对象思想与我们实际生活中,有很多方面是存在共通之处的。学习面向对象,在学习完基本的理论知识之后,可以把这思想带入到现实生活中,会有有不一样的体验。

软件过程:

       软件过程,我个人的理解是这样的。在了解软件生命周期的基础上,通过实践再进行一些加工改动,设计出个有特色的软件开发模型,其中有些模型也融入了其他特殊的思想。在现在,一定有成熟的软件开发模型。只不过因为自身知识储备还有限,了解的并不多。

软件项目管理:

       对于软件开发,技术是一方面,还需要管理,涉及到人员、整个软件需要完成的功能。团队成员之间的沟通交流,或是与领导,别的部门,别的公司的成员进行沟通交流。任务如何的分配等各方面一系列的问题需要去解决。(对于软件项目管理,这块我只能讲这么多,因为这还是需要一定的实际经验,虽然有一点点开发的经验,但是对于管理,在下目前的也只能说这么多)

三、结语

         以上就是我对于软工的看法,有很多知识点并没有说明,因为网上还有市场上有太多的相关资料和书籍了,在此对于概念进行复述并不是我的本意,只是在此记录总结一下,个人的学习后的观点和认知。因为学的知识是考试知识,个人感觉,对于这门课只是一个入门,只是接触到了很表面的东西。如果大佬看到,有啥不对地方,希望可以留言交流,共同进步。嘻嘻

评论

此博客中的热门博文

哇哦。又要瞎写点什么了。

考研还有两个月不到说点什么吧~