论文
结合自身开发经历探索软件质量属性的核心指标
胡硕阳1
(1. 石家庄铁道大学,河北省 石家庄市 050433)
摘要:本文研究软件架构中的六个软件质量属性一级指标,即功能性、可靠性、易用性、效率性、可维护性和可移植性,结合作者自身开发一个企业生产管理ERP系统的财务管理部分的内容,分析了这些指标的影响因素。通过深入探讨每个指标的关键要素,本文为软件开发者提供了更具体的质量评估框架,有助于优化软件开发过程,提高最终产品的质量和用户满意度。)
关键词:软件质量;一级指标;影响因素;软件开发;综合分析;ERP
中图分类号: 文献标志码:A
Exploring the core indicators and influencing factors of software quality attributes
HuShuoyang1
(1. Shijiazhuang Railway University, Shijiazhuang City, Hebei Province 050433)
Abstract: This article studies six primary indicators of software quality attributes in software architecture, namely functionality, reliability, usability, efficiency, maintainability, and portability. Combining with the content of the financial management part of the author's own development of an enterprise production management ERP system, the influencing factors of these indicators are analyzed. By delving into the key elements of each indicator, this article provides software developers with a more specific quality evaluation framework, which helps optimize the software development process, improve the quality of the final product, and enhance user satisfaction
Keywords: software quality; First level indicators; Influencing factors; Software development; Comprehensive analysis; ERP
0 引言
软件质量评估在软件工程中具有重要意义。前辈研究者提出了六个一级指标来评估软件质量,本文将结合笔者自身的一个企业生产ERP管理系统的开发经历,对这些指标进行更深入的分析,探讨其影响因素,为软件开发者提供更具体的质量管理指导。
1 架构与架构师
谈到软件质量属性,就不得不首先提到另一个概念-架构。在阅读了《大型网站技术架构》这本书后,我对架构有了一个初步的认识:"架构"指的是一个软件系统的整体结构或设计,它描述了系统中各个组件的功能、相互关系以及它们如何协同工作以实现系统的目标。软件架构通常涉及到多个层次的设计,包括高层的系统结构、模块化的组件设计、接口定义等,同时也涉及到一系列的决策,如选择适当的技术栈、确定系统的部署方式等。软件架构的设计不仅关注系统的功能实现,还着重考虑系统的可扩展性、可维护性、性能等质量属性,以确保系统的长期健壮性和可持续发展。
架构师就是完成架构这个操作的人,架构师是专业人员,负责设计和指导软件系统架构。需要全局考虑系统设计和发展,协调团队工作,沟通利益相关者,并确保系统满足业务和技术需求。在项目中,他们做出技术决策,解决设计中的挑战,并规划系统的演进方向。
在读完后,反过头来看自己的ERP练习项目,深感自己还差的太远太远,书中所写的那种在我看来神乎其技的架构方式是自己还远无法企及的,无论是分层、分割、分布式的架构模式,抑或是对于网站性能的优化和安全加密,自己都没有考虑到,只想着做一个尽可能功能完备的系统,而忽略了很多内容,例如自己在报销的过程中,确实应该对报销人员的编号进行一定程度的保护以防止信息外泄。
2 软件质量属性的一级指标
2.1功能性(Functionality)
2.1.1 功能性的定义
功能性是指软件系统提供的功能是否满足用户的需求和预期。功能性包括了系统的完整性、适合性、准确性、互操作性等方面。在大型网站架构设计中,功能性的实现必须具备完整性,确保系统提供了包括用户注册、登录、搜索、浏览内容、下单购买、评论互动等完整的功能集合,以满足用户的各种需求。同时,功能性还必须具备适合性,考虑到不同用户群体的特点和需求,例如提供不同语言的界面、不同设备的页面布局等,确保系统功能对不同用户群体都是适合的。
2.1.2 功能性的应用
功能性在笔者所开发的ERP系统财务管理部分主要体现在分角色的业务逻辑,在笔者的系统中,包含了收入支出和报销三条线的内容,其中的每一条线都体现了不同的用户逻辑,以收入为例,收入过程中主要是营业员的内容,支出方面主要是管理帐目的人员进行。
2.2可靠性(Reliability)
2.2.1 可靠性的定义
可靠性是指软件系统在特定环境下的稳定性和可信度。可靠性体现在系统的故障率、恢复能力、持久性等方面。在大型网站架构设计中,可靠性的实现是确保系统持续稳定运行的关键因素。
2.2.2 可靠性的应用
可靠性在笔者所开发的ERP系统财务管理部分体现在各个业务模块的稳定性和可信度上。例如,在收入支出和报销等模块中,使用vue架构,用户可以信任系统能够准确记录和处理各种财务交易,即使在高负载和异常情况下也能够保持良好的运行状态
2.3可用性(Usability)
2.3.1 可用性的定义
可用性指软件系统对用户的友好程度和易用性。良好的可用性能够提高用户的满意度和工作效率,包括系统的易学性、易操作性、界面友好性等方面。在大型网站架构设计中,可用性的实现是确保用户能够方便快捷地使用系统完成各种操作的关键因素。
2.3.2 可用性的应用
在笔者所开发的ERP系统中,可用性体现在用户界面的设计和交互体验上,其中使用了Vue.js作为前端框架。通过Vue.js的组件化开发和响应式设计,系统能够实现动态加载、无刷新页面、交互性强的用户界面。同时,Vue.js的数据绑定机制和虚拟DOM技术,使得页面的数据更新和渲染更加高效,提升了系统的整体性能和用户体验。通过这些技术手段的应用,系统能够为用户提供流畅、直观的操作界面,进一步增强了系统的可用性。
2.4性能(Performance Efficiency)
2.4.1 性能的定义
性能效率指软件系统在给定资源下的性能表现,包括系统的响应时间、吞吐量、资源利用率等方面。在大型网站架构设计中,性能效率的实现是确保系统能够在高负载情况下保持良好的性能表现,以满足用户对系统的高性能需求。
2.4.2 性能的体现
在我开发的ERP系统中,性能效率方面有一些不足之处。虽然我尽力采用了一些技术手段来提升系统的响应速度和资源利用率,比如采用了前后端分离的方式,以及优化了数据库和使用了缓存策略。但是,说实话,我的水平有限,系统在某些情况下还是会出现一些性能问题,有时候页面加载会比较慢,用户可能会感觉到有点卡顿。我也尽力想去解决这些问题,但是还是觉得离完美还有一段距离。希望在以后的学习和实践中,能够不断提升自己的技术水平,改进系统的性能,让用户有更好的使用体验。
2.5可维护性(Maintainability)
2.5.1 可维护性的定义
指软件系统在特定环境下的稳定性和可信度。可靠性表现在系统的故障率、恢复能力、持久性等方面,用户可以信任系统在运行过程中不会发生严重错误或故障。
2.5.2 如何保证可维护性?
确保软件系统易于维护,首先要有清晰的架构设计,把系统分成小块,这样修改起来就不会影响到其他部分。另外,写代码时要注意统一的风格和命名,加上清晰的注释,这样其他人或自己未来的时候看起来就会更容易懂。别忘了进行全面的测试,不光是为了找问题,也是为了保证修改后系统还能正常工作。持续集成和持续交付也很重要,让修改能够快速地部署,及时修复问题。最后,灵活的设计和不断地版本控制,可以帮助系统应对变化,确保长期稳定性。在笔者的ERP系统中,采用了一部分的方式保证可维护性,例如把一些模块和组件分割开来,但是还是需要继续学习,以开发出更加完善的软件内容。
2.6安全性(Maintainability)
2.6.1 安全性的定义
安全性是指软件系统对数据和系统的保护能力。在大型网站架构设计中,安全性是最重要的方面之一。它包括系统的机密性、完整性和可用性等方面。系统需要能够有效地防止未经授权的访问、恶意攻击和数据泄露,保护用户的隐私和系统的正常运行。在我看来,安全性在所有指标中的优先级是相当高的,正如之前听老师说过的,在企业中,一个员工的代码能力可以不优秀,但是一定要保证安全,这样才能在不给企业带来风险和损失的前提下,尽可能多的学习内容为企业和社会创造价值
2.6.2 如何保证安全性?
这一点是我认为我做的不太好的地方,以书中的淘宝为例,淘宝作为中国最大的电子商务平台之一,一直致力于保护用户的交易安全和个人信息安全。在身份认证和支付安全方面,淘宝采用了多层次的身份认证机制和安全支付通道,保障用户身份和交易安全。在数据加密和隐私保护方面,淘宝使用了SSL加密协议等多种加密技术,并严格执行隐私政策,保护用户的个人信息不被窃取或滥用。此外,淘宝建立了完善的欺诈检测系统和安全监控中心,通过大数据分析和机器学习等技术,及时发现并阻止潜在的欺诈行为,保障用户权益。同时,淘宝定期进行系统安全检测和漏洞修复,推出安全更新,以保障系统的稳定和安全运行。
3 对于在软件开发过程中的建议
通过读书和思考,笔者以为在软件开发过程中可以尽可能做到以下几点,以帮助我们更好地实现上述的六个指标
1、 明确需求边界。在开发前一定要认真划定系统边界,这将有助于我们更有目标性的开发。
2、 选择适当的开发方法论。根据项目性质和需求选择适合的开发方法论,如敏捷开发、瀑布模型或迭代开发。确保团队对选定的方法论有清晰的理解,并严格遵循其中的流程和规范。
3、 合作。合作开发是软件开发过程中很重要的一部分内容,在之前的学期笔者也常与同学合作开发一些项目,在这个过程中我深深体会到,与他人合作,把一个看似复杂的系统分割成为不同的模块,然后分开开发再组装,不仅会提高效率,而且可以使一个人专注在某一个模块的开发上,提高开发质量。
4 结论
通过本文的研究,我对软件质量评估的关键指标有了更深入的理解,知道了良好的架构设计对软件质量的重要性,并反思了自身在此方面的不足。在详细讨论了功能性、可靠性、可用性、性能、可维护性和安全性在实际项目中的应用和影响之后,对日后的开发会大有裨益。最后提出了一些自己的见解。包括明确需求边界、选择适当的开发方法论和合作开发。希望这些内容能够帮助我未来提升软件开发水平,为企业和社会创造更多的价值
参考文献:
[1] 李智慧, 刘建南, 薛丹青, 钟华, 崔磊.大型网站技术架构. 人民邮电出版社,2014
[2] 高洪岩. 架构探险: 从零开始写JavaWeb框架. 人民邮电出版社,2016