软件工程一:对软件工程的基本认识

软工的基本认识

这里主要介绍三类,软件的分类,软件工程过程,软件的生存期模型

软件的分类

      软件开发是一个灵活性很强的工作,即使同样的功能给不同的人使用,需要设计的也不尽相同,比如说,同样要实现一个图书搜索功能,如果是给小学图书馆设计,就要符合小学生的需求,比如说多些图片的设计,而给老年人设计呢,则需要放大字体等等,就像搜狗输入法中会有老年人专用的皮肤,这也体现设计者的用心,好程序的背后总会有用心的设计者。所以软件的分类是必须的

对软件的基本认识

 i.             开发软件为什么要工程化
有很多人,尤其是很多学生存在这样的误区,平时感觉自己能用语言写一个闹钟,写一个记事本等一些小东西,就以为自己一个人就可以完成一个小的项目,所以很不理解为什么开发软件有时候不能让一个人独立完成,也有个人英雄主义在作怪。其实原因很简单,比如说,高中我们做题应该很有体会,感觉一张卷子一点问题也没有,但是等成绩下来的时候总不是一百分,为什么,因为我们很难发现自己的错误,哪怕是重复很多次,这是思维定势。

 ii.             软件开发与其说是技术活,不如说是规范活.

软件开发是程序员奇思妙想的时候,用什么方法都是随心所欲的,有的人则为了追求速度或者说是彰显个性而用一些很不大众的算法,以为这是体现自己高明的地方,恰恰相反,这真是不懂编程的表现,一般的项目一般都不是一个人来完成的,它分为开发阶段和维护阶段,然而维护阶段一般又非开发人员所为,所以如果代码技术性过于高,反而对后面的维护不利,另外,IT是个跳槽率很高的职业,如果一项工程没有完成就离开,剩下高明的算法要让谁看呢,出于对公司的考虑,最好还是规规矩矩,符合大众的口味。

iii.             文档的重要性
很多人,尤其是大学生,刚开始学习编程的时候,难免会有一些急功近利的想法,想快点做出点成绩,但是往往欲速则不达,就想前段时间做的机房收费系统一样,在一种完全没有文档的情况下,虽然最后做完了,而且也跑起来了,问题似乎也没有想象的那么多,但是其中的过程只有自己知道,代码啦,数据库啦都不忍心看,可以说是乱七八糟的,想加个数据库就加,想加个功能就加,很有文档,就像没有目的的去雕塑,雕成什么样,算什么样,而且很多情况是中途发现需要这个样子了,才发现,那部分材料已经被自己给去掉了,所做的程序自然没有规律可言,如果现在有人说那个机房收费系统那个功能要修改一下,我估计我的得全盘改动.

 iv.             开发软件为什么时间总是那么紧,开发的人总是那么累
曾经有过单纯的想法,为什么工作非要加班呢,多用些人不就行了吗,人多力量大嘛,但是自从软工看完后便觉得这种想法荡然无存了,其实,原因并不是说老板多黑心,而是取决于软件开发工作的性质,这是一项需要智慧的工作,首先,这不是工厂,没有机器,只有手工;其次,这里需要残杂很大一部分人文因素,比如说个人习惯,同样输出一个结果,两个人的算法往往就有很大的区别,所以参加人数越多,在项目中的不同因素就越多,因为各个模块之间的衔接问题就越大,所以参加人数应该是少而精,所以这也是为什么蓝精灵体中说程序员是“聪明而辛苦”,聪明在他们每个人都是一个设计师,辛苦在一项任务,自己又无可取代的位置,只能是自己的事情自己干。

 v.             如果自己无法适应 会中的潜规则,那么就学编程吧(不知道这样说对不对)
从我目前的认识来看,突然发现软件行业是整个 会的一片净土,这里不像其他行业一样靠嘴吃饭,更多的是需要能力,除非老板想赔钱,不然绝对不会用一个靠关系而不是靠技术的人来当项目经理,因为这个关系到整个项目生存的决定性因素;虽然同事之间保持着微妙的竞争关系,但是一个项目要想如期完成必须要和同事上司好好合作;做软件开发的每个项目的每个功能,无处不能体现全心全意为人民服务的宗旨,所以开发软件的人无疑又是心细如丝,必定是善良的,体贴的,嫁人就嫁程序员哦。所以,以此可见,这里的确是一片净土。

 

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览33905 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2011年8月9日
下一篇 2011年8月9日

相关推荐