• 软件质量思考


    引言

            作为一个软件工程师,我们天天生产着代码。看着满天飞的软件技术。突然回过头来看看,感觉到迷茫的走了很多路,缺少了思考。

            最近一个月一直在思考,我们的制造的代码和软件技术是为了什么?我们应该从哪里思考我们的目标?当然最基本的出发点还是赚钱。

            我们制造软件的目的是赚钱。因此我们的软件必须能够满足我们的最终目的——赚钱。而只有满足用户的要求才能把产品卖给用户。

            怎么满足用户的要求?依赖于软件质量。

    软件质量

           怎么评价软件质量呢?ISO/IEC 9126-1定义了一种软件质量评价模型。

            ISO9162标准定义的质量模型包括内部质量(internal quality), 外部质量(external quality)和使用中质量(quality
    in use)。如下图所示:

        

        从软件的生命周期来看,三种质量具有如下关系:

        

        外部质量和内部质量划分为6个特征,其中每个特征又包括子特征,如下图所示:

        

         使用中的质量划分为4个特征:

         

             根据ISO9162标准,我们写代码的目标也就明确多了。代码质量和软件的质量如下:

        


    软件质量与代码

         软件质量各个特征之间是可能是矛盾的,因此在编码过程中必须做出平衡决策。

         具体的来说:

         1.可维护性

           可维护性几乎贯穿了整个过程,包括编码规范、面向对象设计技术等。所有规定和技术的目的是使得软件维护简单和直观。

         2.可移植性

           可移植性是可以通过软件设计方法和编译工具来保证。

         3.效率

           效率则要依赖于软件设计。

         4.可靠性

           可靠性依赖于软件设计和单元测试。尤其是错误错里特别重要。错误处理并不是可有可无的,它是逻辑处理的有益补充。但是过多的错误处理会使得维护性和效率下降。因此必须加以权衡。

         5.可用性

           可用性则依赖于人机交互设计。

         6.功能性

           功能性是最核心的要求,很大程度上依赖于黑盒测试,单元测试只能保证部分正确性。

    相关工具

         代码质量工具有很多相关工具,例如java的工具如下:

         

  • 相关阅读:
    PLSQL Developer删除奇葩表出现异常ORA-00942: 表或试图不存在
    EXP-00056遇到Oracle错误1455问题解决办法
    一个简单企业信息网站架构
    LigerUI编辑表格组件单元格校验问题
    Java分布式:分布式锁之Redis实现
    Java分布式:分布式锁之Zookeeper
    SpringBoot小技巧:统一异常处理
    Quartz学习笔记:集群部署&高可用
    GIT实践:同步远程分支
    SpringBoot小技巧:Jar包换War包
  • 原文地址:https://www.cnblogs.com/blockcipher/p/2912976.html
Copyright © 2020-2023  润新知