未来不遥远

Just do it!

 

转载:软件开发的一些感想

      看了Eric77的软件开发的一些感想(五年工作经验总结),很有感触。这个世界真是好大,自己作为个体真是太渺小,还有太多的东西需要学习。
      把他文章的部分转接过来,顺便自己也备注下,对自己有个参考。
       一、需求分析,设计,开发,测试和项目管理整个流程:

对任何系统来说: 无非是做好3件事: IPO. 也就是Input,Process,Output. (偏重于设计,类似于计算机本身,作为总结本身还是蛮清楚的)

对需求分析来说: 你最重要的是搞明白,用户的需求.也就是搞清用户的输入(Input)和输出(Output)是什么,它的要求达到的功能(Process)是什么. 明白以后,你就可以写一些用户需求说明书,描述用例,输入输出处理异常什么的,或者做一个简单的Demo系统,拿去给用户看,看看这个界面是不是用户喜欢的,这个流程是不是用户所需要的等等.(注:如果加入点管理,就丰满了。还有以后的需求变更,要知道需要可能是不断变化的)

然后就是系统分析: 首先,你需要对用户的需求分模块,每个模块的IPO是什么,他们应采用什么架构,需要和那些模块交互,互相之间的接口是怎样的,需要使用什么技术.每个模块的运行环境是什么样子的,对效率,安全或者容错等特性是否要着重考虑.(注:考虑的蛮多的,加个词:系统的可扩展性)

接着就是系统设计: 每个模块的数据库要怎么设计,所用技术和架构决定后,要确定不同层次有哪些接口,比如说表现层,业务逻辑层,数据库访问层,相互之间怎么调用,定好框架和开发模式和格式,剩下的就是编码了..(注:说的似乎少了点)

编码部分: 首先团队要有一个良好的编码规范.并且对每个人提交的代码要review,我发现程序编多了,自己就成了一台计算,看到程序就会知道会出现什么结果,根本都不用跑起来.(注:编码的时候,多考虑下:复用和模式)

测试: 单元测试是否编写测试用例? Junit是个好工具.每个人都要保证好自己的代码没有问题. 整体测试就要整个流程的跑一下,看看需求实现的对不对,还有没有什么其他纰漏.  .(注:测试分好多种,单元,压力,持久性、黑白盒等,有专门的测试部分或组就不一样了)

风险管理: 这一点很重要,要时刻知道自己的项目有什么风险,无论是人员的,技术的,时间的,还是协调上面的.都要心里有数,按时按周向领导汇报。

     以下部分——

      记得我去IBM面试的时候,问过,以后有几条职业发展的方向,回答有三条,一条是IT Specialist,一条是Project Manager,还有一条是IT Architect. 我还曾要求以后能不能向IT Architect发展,那人说,Architect要熟悉很多技术呢,我问了两遍,他这样回答了两遍.后来给我订了Advisory I/T Specialist. 我当时很纳闷,我搞Java这么久,J2ME,J2SE,J2EE全都搞过,而且对Gof的<Design Pattern>也悟了5年,了熟于心,各种各样的经典书籍也看了不少,怎么不能向Architect发展呢. 现在我加入了IBM,进入一个香港的项目,过段时间要去香港培训几星期,才明白了,原来一个大项目会涉及到各种各样的语言,技术,什么Cobal(音译),forturn(音译),java,vb,C#,soa xx总线模式,mq,大型机开发,等,很多我只在书上看到过的古老语言,还有一些听都没听过的语言,框架,模式,全都出现了.我当时这个汗哪,我才发现我真的很无知.知识就是一个气球,你知道的越多,接触的越多就会发现自己越无知.所以这也是我要今天赶紧把这个写出来的原因. 我怕以后又有了变故,还要沉淀,需要时间.

 

本文部分来自CSDN博客:http://blog.csdn.net/Eric77/archive/2010/08/01/5781573.aspx

posted on 2010-08-04 12:34 Cool Jazz 阅读(197) 评论(0)  编辑  收藏 所属分类: 随笔


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 

导航

统计

常用链接

留言簿

随笔分类(7)

随笔档案(8)

文章档案(1)

相册

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜