软件开发的认识.docx
- 文档编号:8992654
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:7
- 大小:126.14KB
软件开发的认识.docx
《软件开发的认识.docx》由会员分享,可在线阅读,更多相关《软件开发的认识.docx(7页珍藏版)》请在冰豆网上搜索。
软件开发的认识
软件开发的认识
、如何开发一个成功的软件产品?
要成功的开发一个软件产品,需要满足如下两个条件
1、完美的开发团队
2、开发过程合理控制
2.1完美的开发团队
软件产品不需要原料,软件团队是软件产品生产的最重要资源了。
如何成就一个完美的开发团队,意见如下:
1、具有软件开发必备角色,包括需求、系统分析、技术攻关、代码编写、软件测试等。
2、具有自己文档、代码规范标准,以便于维护集成。
3、具有自己资源库。
4、具有和谐的团队关系、正确的沟通方式
5、具有英明的项目经理
2.1.1具有软件开发必备角色
一个软件开发团队,必须具备软件工程中应有的角色,包括需求分析、系统分析、技术攻关、代码编写、软件测试等,这里不再赘述。
2.1.2具有自己文档、代码规范标准
软件开发周期的各个阶段都应该有相应的文档,软件工程等相关学科都有很大篇幅讲文档的重要性。
软件开发团队对文档处理各有千秋,主要可分为如下三种情况:
1、 开发团队不重视文档,往往事后根据需要再追加文档,这类开发团队一般规模较小,属于作坊式的
2、 开发团队迎合软件工程中文档教条,不联系自己实际情况写文档,文档格式形式化,这种开发团队一般是吃大锅饭的,文档在这种团队被作为形象展示的工具
3、 开发团队把文档作为产品的一部分,基于软件工程理论写文档,利用文档对项目进行控制跟踪,真正的发挥了文档的功用。
但是一个优秀的开发团队除了按上面第三种方式处理文档外,还应该具有自己的文档、代码规范标准,所有成员都要遵循这个标准编写文档或代码,而不是各自按自己的习惯处理文档或者代码。
我们知道程序编写人员都不愿意解读别人的代码,其实主要原因不是代码复杂度问题,而是他们写代码的规范不一致,注释不规范或者不明确。
所以团队如果有了自己的代码规范,所有成员都遵循这个规范,那么在程序对接、移交以及维护等方面效率会很高。
2.1.3具有自己的资源库
资源库是自己通俗的说法,它应该包括文档、技术文献、问题分析及解决方案、源代码和控件等。
这些资源应该用以一种方式管理(比如以数据库的方式存储),以资源平台的方式向团队所有成员开放,便于检索查询重用。
一个技术团队,资源库是非常重要的,它是团队所有成员在实践中经验的积累、技术的总结,是团队成员技术共享的纽带。
软件产品的成本基本上只有人力资源,资源库的存在很大程度上节省了人力资源,假设我们把一个新的开发项目的功能细化后,很多功能模块都可以从资源库中直接调出来使用、当我们遇到一个很久以前花费很大精力解决的技术性问题,我们可以直接从资源库中检索出该问题及解决方案,当程序员A需要写一个链表类时,可以通过资源库参考程序员B曾经编写的链表类…….这将是多么愉快的事情。
2.1.4具有和谐的团队关系、正确的沟通方式
技术人员是软件公司的支柱,技术人员之间关系的和谐就显的非常重要。
另外由于软件产品的特性就是复杂度高,软件产品生产过程就是一批技术人员沟通、执行的过程。
所以和谐的团队关系及正确的沟通方式都非常重要。
关于如何做好这一点,有如下看法:
和谐的关系上,队员之间要作到理解、尊重、宽容,这不但是关系发展的前提,也是关系健康向上发展的基础。
有了和谐的关系,沟通就显得顺利多了,个人认为沟通主要做到如下三点:
1、要有所准备:
沟通就是因为有问题需要讨论,那么就有问题的提出方和解决问题的一方,这就需要问题的提出方根据实际情况(问题复杂性、重要性、参与讨论的角色和专业方向)做出充分的准备,比如如何描述问题才能让参与讨论的不同角色的人在相对短时间内对问题有深刻的理解并给出好的建议。
那么对于技术性非常强的讨论或者讲座、就需要参与讨论的成员事先至少对该技术性的话题有一个宏观的认识,比如技术讲座,如果技术性很强,最好就是听讲座的成员先对讲座的内容有一个了解,然后才能更好的在听讲过程中受益并发挥。
毕竟不是小学生上课,我们的技术讲座也不该是照本宣科,应该事先了解、然后在听与讨论中掌握知识。
2、要学会聆听,这不仅是对别人的尊重,也确实能使自己受益(只要对方不是虚无缥缈、话不中的、夸夸其谈的长篇大论),不要别人刚刚开口,咱就来个,你不知道、你不懂,这是不对的,三人行、必有我师。
相互的聆听是理解问题的基础,是讨论问题得出正确方案的前提。
3、要换位思考,工作中我们要学会换位思考、不要主观的臆断。
特别是团队协作的时候,要站到我们搭档的角度去看问题、思考问题,理解你的搭档、尊重你的搭档,才能得到正确的讨论结果或解决方案。
中国人看,自然用中文,写给美国人看,当然用英文。
)那么确定了语言之后呢?
我就能写文章了吗?
文章结构如何设计?
写文章的方法技巧和注意事项是什么?
这些我都不知道,自然写不出好文章。
可见,要写一篇好文章,会语言是远远不够的。
同样,要写出好的程序(程序运行结果正确,时间,空间效率高,健壮性好,可读性强等等),光会一门语言也是远远不够的。
而编程的具体方法的学习才是我们的重点。
计算机教育普遍都是先从教授一门语言开始(一般是C语言),然后,就开始安排对数据结构和算法的学习。
数据结构和算法设计分析是整个编程方法的基础,重中之重。
以前流行过一句话:
数据结构+算法=程序。
这是不无道理的。
计算机是用来处理和存储数据的。
数据在计算机中的表示和存储不是无组织的,是有规律,有结构的。
因此,当我们对这些按照一定规律组织的数据进行操作的时候,理论上存在一种或几种与某结构相比配的最优(或近式最优)算法,以次来确保操作数据的时空效率。
打个比方,现有一排数据:
a,b,c,d,e,如果经常要对其进行查找操作,顺序排列存储该数列能降低操作的时间。
同样如果经常要对其进行插入或删除操作,采用链接存储则能降低该操作的时间复杂度。
由此可见,合理的数据结构,高效的算法对程序质量有着多么重要的影响!
又比如,我们要编写程序能对中国所有公民的身份证号进行排序。
这是极其庞大的一组数据,如此多数据采取什么结构来表示和存储,以及应用什么算法来对其排序,使该程序在排序时尽量的快,占用的空间尽量的少。
这都是学问,编程的学问!
所以,可以讲,程序员对数据结构和算法的领悟程度直接决定了他的编程水平的高低。
那么如何提高自己的水平呢?
我们可以学习研究像C(C++)函数库(API)里的函数,或JFC(JAVA类库)中的函数实现,这些函数实现都是非常有经验的程序员编写的,有着很好的运行效率。
再者,就是数学的重要,我认为数学对程序的重要性体现在对算法的支持上。
比如说微积分思想,为计算机数值计算提供了理论指导;而数据结构和算法来源与离散数学,线性代数和概率统计中的思想和方法。
另外,像计算机密码学,计算机图形学,计算机多媒体都离不开数学。
好的算法需要数学工具来理论验证,也需要数学来改进,来完善!
那么,面向对象又扮演什么角色呢?
说到底,我觉得面向对象思想的宗旨就是代码重用。
面向对象里的三大概念:
封装,继承,多态都是为了代码重用。
重用质量高的代码,不但可以节省人力,而且极大提高了本身原程序的质量。
比如,我要编写一多功能计算器,我依据自己喜好设计了界面,在具体功能实现上我继承了别人已经写好的正确功能类,不但省去了自己写的麻烦,而且也保证了该计算器的逻辑正确性,一举两得。
在编程时运用面向对象思想,类的设计是最为关键得第一步,包括对类结构的设计和内部功能实现。
其次就是对类进行准确合理的继承和多态化。
显然,不正确的进行继承和多态会给整个软件带来巨大的错误隐患。
面向对象思想在写小程序时或许体现不出优越,但在中大型软件开发时,它的用处便会极大体现出来。
面向对象方法在解决软件危机里起到了举足轻重的作用。
但在这里,我还是要强调一点,面向对象思想是极好的思想,极好的编程方法。
但是如果没有质量好的代码可以值得被重用,面向对象方法就没有用武之地!
可见,拥有良好数据结构和算法的功能代码块是保证整个程序质量的奠基石。
软件(尤其是中大型软件)质量好坏还有一个很重要的因素:
软件体系结构。
打个比方,我要建房子。
软件体系结构就好比房子的结构,采用哪种样式(欧式?
中式?
)决定了房子的结构,软件体系结构的规划设计也就决定了软件本身的结构(软件的环境,功能模块的安排,位置,互相联系关系等等)。
那么,房子的结构设计好了,就要解决建筑材料的问题。
在这里,牢固的砖头和横梁是房子牢固的根本保证。
同样,拥有良好数据结构和算法的功能函数或函数块也是整个软件质量的根本保证!
有了质量过硬的砖头和横梁,只要结构合理,房子的寿命是完全可以保证的。
一样道理,我们手头有了大批信的过的功能函数或函数块,在编程的时候严格按照软件工程规范,合理运用面向对象方法,按照科学的体系结构要求,就能在经济的条件下,开发出优良(准确,健壮,时空效率高,易修改补充,美观,易使用)的软件。
现在社会上多的是基本工不扎实的程序员,盲目追风,今天C#,明天JAVA。
而开发工具又层出不穷,许多软件公司上半年在.net平台上做项目,下半年又在j2ee上开发,导致许多写代码的人来都来不及学。
要应付这种现象,只有牢牢的打实基本功,以不变应万变。
不管用什么语言,在什么平台上,有扎实功底的程序员都可以很快适应新环境,用极短的时间就可以产生效益,这也是软件公司所愿意看到的。
所以,我想对刚刚步入编程领域的人们说,开发工具好比一朝风月,理论基础才是万古常青!
真正想
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 认识