`

从软件质量想开去......

阅读更多
先插播一则广告,我建立一个圈子,讨论软件质量和开发效率,欢迎大家加入。
http://devmgr.group.iteye.com/

本文想采用头脑风暴的方式,大家一起想影响软件质量的因素,便于我们采用QFD(质量机能展开)方法改进软件质量。
我先首先介绍一些软件的质量特性,就是“XX性”,参考McCall,boehm,iso9126模型,其它自己杜撰的。

.正确性(correctness)
.可靠性(reliability)
.完整性(integrity)
.可用性(usability)
.效率性(efficiecy)
.可维护性(maintainability)
.可扩展性(extensibility)
.可测试性(testablity)
.互操作性(interoperablility)
.灵活性(flexibility)
.可重用性(reuseablility)
.可移植性(portablility)
.明确性(clarity)
.可修改性(modifiablity)
.可恢复性(resilience)
.可理解性(understandablity)
.有效性(validity)
.功能性(functionality)
.普遍性(generality)
.经济性(economy)
.透明性(transparency)
.合理性(rationality)
.可验证性(verificablity)
.可追踪性(traceability)
.简单性(simplicity)
.一致性(consistency)


以下是我的砖头,有些是客观的,有些是主观的,道行尚浅,欢迎继续拍砖:

1)项目管理与计划(☆☆☆☆☆)
  .进度计划,估算是否合理,满足合理性;
  .是否遗漏,满足完整性;
  .细分的任务是否明确,满足明确性和可追踪性;
  .是否建立了沟通机制,满足透明性。
  .里程碑是否明确,满足明确性和可验证性。
  项目计划和管理的不好,会直接影响软件质量。

2)需求分析(☆☆☆☆☆)
  .是否描述了所有需求,满足了完整性。
  .是否清晰阐述需求,满足明确性。
  .是否正确描述需求,满足正确性。
  .是否简单明了,不用副词和形容词,满足准确性和可理解性。
  .是否容易测试,满足可测试性。
  这是影响软件质量最大的因素。

3)设计(☆☆☆☆)
  .是否容易理解,满足可读性和可理解性。
  .数据库和架构是满足可扩展性。
  .数据库是否考虑到性能,满足可扩展性和效率性。
  .数据库的范式是否合理,满足合理性。
  .架构是否考虑到性能问题,满足可扩展性和效率性。
  .架构是否考虑周到,满足完整性。
  .架构模块是否划分合理,满足可重用性。 
  .模块设计是否考虑性能问题,满足效率性。 
  .界面设计是否容易操作和使用,满足易用性和可用性。
  非常重要,会影响软件的性能,可用性。

4) 测试(☆☆☆☆)
  .测试用例是够合理覆盖业务流程,满足完整性。
  .测试策略是否制定,满足经济性。
  确保软件能够履行职责,直接影响软件质量。

5) 编码实现与集成(☆☆☆☆☆)

  .编码是否考虑了性能问题,满足对设计的可追踪性;
  .编码是否进行测试,满足性能和功能的可验证性,功能的合理性。
  .代码是否规范,满足可读性,可理解性和可维护性。
  .代码是够满足可扩展性。
  .代码意图是够明确,满足明确性。
  .代码命名是否合理,满足一致性。
  .是够进行单元测试和持续集成,满足效率性,正确性,有效性。
  实现好不好,影响功能符合性,修改的可维护性。

6) 技术评审(☆☆☆☆)

   .预审质量是够合格,满足充分性。
   .评审方式(桌查,轮查,走查,审查)选择是够合理,满足合理性。
   .评审人员是够选择合格,满足合理性。
   .评审缺陷是否记录,满足可追踪性。
   .评审检查表是否合理,满足可验证性。
 
7) 沟通(☆☆☆☆)
   .是够满足及时性,有效性。
   .是够满足充分性,确保理解一致。
   .需求分析和客户沟通不好,需求就会不明确。
   .开发和需求,设计人员沟通不好,就会错误的去实现功能,造成浪费。
  
8) 培训(☆☆☆)
   通过培训,可以使人获取用于工作的技能,从而间接影响软件质量。
   .需求分析培训。
   .架构设计培训。
   .数据库设计培训。
   .模块设计培训。
   .界面设计培训。
   .单元测试培训。

9) 管理(☆☆☆☆)
   .配置管理,满足可追踪性,可恢复性,可维护性。
   .质量保证,满足可执行性。
   .制度,制度合理,人积极性高,间接影响软件质量。
   管理得好,效率高,间接影响软件质量。

10)人(☆☆☆☆☆)
   .IQ,逻辑思维能力强,能够透彻理解需求,分析条理清楚,直接影响软件质量。
   .EQ, 有毅力,自律,勇气,遇到问题不退缩,间接影响软件质量。
   .TQ, 是否好好利用时间,提高个人工作效率,间接影响软件质量。
   .领导,好的领导可能会影响一批人,能够使团队凝聚在一起,从而直接影响软件质量。
   .技术水平高低,对技术的熟悉程度,直接影响软件质量。

11)公司(☆☆☆)
   .是否有好的氛围,轻松,有利于发挥个人能力,高效率的工作,直接影响软件质量。
   .是否奖罚分明,影响心情,直接影响软件质量。
   .是否有重视质量的文化,不用说,直接影响软件质量。
   .职责是否清楚,满足明确性,如果一个人什么都做,什么都做不精,职责不清,间接影响软件质量。

12)客户(☆☆☆☆)
   .客户信息化程度高,IT素养高,容易沟通,间接影响软件质量。
   .客户积极配合,进行阶段软件演示,提交问题,间接影响软件质量,这个非常重要。

13)方法学(☆☆☆)
   .采用迭代开发,分阶段交付,增强了反馈,充分沟通。间接影响软件质量。
   .方法学选择缺乏指导,会间接影响软件质量。
  
    
回帖原则:

如果是新的主题,请继续我的标号,主题尽可能简短,分条阐述和软件质量的关联。
如果是补充,指出原标号和标题,进行补充。

权当一个游戏罢了。























分享到:
评论
5 楼 tuti 2008-08-26  
gurudk 写道
tuti 写道
对于谁而言的软件质量?


主要是两方面,一方面是对用户(比如可用性),一方面是对开发人员(比如可维护性)


有没有必要做个分类,每个XX性 都是对于谁而言。
事实上,失去了对于谁而言,这个XX性,也就成了 无源之水,无本之木。
4 楼 javaeye_003 2008-08-26  
LS说的有道理,质量最主要还是要客户满意
3 楼 gurudk 2008-08-25  
tuti 写道
对于谁而言的软件质量?


主要是两方面,一方面是对用户(比如可用性),一方面是对开发人员(比如可维护性)
2 楼 tuti 2008-08-25  
对于谁而言的软件质量?
1 楼 weaveph 2008-08-25  
人是最关键的,特别是leader的个人素养+专业技能,决定其他各方面的开展和实施。

相关推荐

Global site tag (gtag.js) - Google Analytics