日期:2014-05-17  浏览次数:21074 次

软件中的粒度是指?
软件中的粒度是指?.....................

------解决方案--------------------
转的:http://blog.csdn.net/am2004/article/details/624485
公司的一个项目有三个子系统,其中A子系统最先开发,开发采用每个窗体类由一个开发人员来开发的方式,结果整个A子系统开发下来出现了很多问题。

主要有两个,首先是时间看来没有预先计划的那么充足(似乎公司里的所有软件项目都是如此);由于开发过程中相互间缺乏沟通,每个窗体类中相同的功能却有不同的实现,导致运行时的呈现也稍有不同,当然,对于实现起来比较复杂的地方显然存在人力的浪费。

随后B子系统的开发由我来负责,借鉴A子系统的开发经验和教训以及敏捷软件开发的思想,B子系统的开发我做几个重要调整。

软件工程当中好像有个软件粒度的概念,其实我并不很理解。但由此我想到了任务粒度,我们可以这样理解,比方说写一个窗体类,如果整个窗体类的开发是一个较粗的任务粒度,那么该窗体类中要处理的数据显示、数据校验、数据导出等则是较细的任务粒度。我将窗体类要处理的任务粒度细化,将细化后的任务力度交由不同的开发者来研究实现的方式,然后交流给大家,这样就避免了多人在相同或类似的功能点上寻求解决方案。有点分层开发的味道,但很有区别。分层开发要求不同的人开发不同的层,彼此的交汇点只在接口、参数。我很像是在要求一个人来烧砖而另外一个人制瓷片一样,但每个人又都是建筑师,需要瓷片或是砖头时只需拿来就好了。

当测试的时候,我则从“结对编程”中获得灵感,我制定了“结对测试”的策略。“结对编程”是敏捷软件开发中的概念,定义为所有的产品软件都是由两个程序员、并排坐在一起在同一台机器上构建的。结对非但不会降低开发团队的效率,而且会大大减少缺陷率。同样,我要求每两个开发者要坐在一起,边聊天边测试,找出尽可能多的BUG。结果证明两个人测试反而更容易测出问题,而且也更深入,那些比较隐蔽的BUG也被暴露无遗。

 B系统的开发因为采用了一些开发方法和思想,是三个子系统开发中唯一能够保质、按时交付的系统。很感谢我的搭档,他们肯采纳我的建议,并且积极将建议落实处理。
------解决方案--------------------
就是可以划分的最小单位的大小/规模。