1.软件的质量
2025年09月21日
1.软件的质量
前面我们实现了一个简单的聊天工具,学习了Java SE中主要类库的使用。整个的编程过程是以完成软件需求为目标的。在聊天程序的开发中,界面功能、联网功能、聊天功能、在线用户管理功能等各个功能的实现细节基本都写在一起,代码之间联系紧密,没有划分模块和层次。
不同部分的代码联系紧密,耦合度较高,导致当其中的某些功能需要改变时,基本上需要对整个程序进行检查和修改,对于一部分的改动,可能需要修改程序若干的地方。并且,很容易因为一部分的改动而出现与其他部分的程序的不一致、不能正常连接的情况。这样的程序可维护性和可扩展性比较低,也可以说软件的质量比较差。
软件的质量体现在不同的方面,我们可以以一种McCall软件质量模型为例,对软件的质量进行了解,如图3.0.1所示。
图3.0.1 McCall软件质量模型
在开发软件的时候,除了要实现项目的功能性需求、可靠性需求、效率需求外,还要保证一定的可维护性、可扩展性、可移植性等。
第一,程序中如果有大量相似的代码,应该抽取为公共的部分,尽量提高代码的复用程度,减少代码重复。
第二,经常会有这样的情况:一个软件的核心功能是不变的,但是界面可以更换(“换皮肤”);或者软件的业务功能不变,但是要更换通信技术或者数据库类型;或者软件功能有部分的改变或者增加等。如果当修改或者增减某些部分内容时,其他部分内容是稳定的,并且新的部分和原有部分可以方便地连接,那么这样的代码就具有较高的可维护性、可扩展性。