计算机软件开发中影响软件质量因素的相关研究

时间:2024-11-14 18:52:00 来源:作文网 作者:管理员

计算机已经进入了人类生产生活的所有领域, 计算机软件作为连接人与硬件的桥梁, 也随着计算机软件进入了人类生产生活的所有领域。计算机软件的发展历程, 就是信息产业的发展历程。计算机软件的不断发展, 提升了人们的生活品质, 提高了企业的生产力, 增强了现代商业社会的竞争。不断改善软件质量, 可以减少不必要的损失,提高生产生活效率。

1 影响计算机软件开发中软件质量的因素

1.1 需求产品设计

一款软件的开发, 最主要的为了满足用户的需求, 软件就是因为用户有使用需求, 才有存在的意义。可以毫不夸张地说, 程序员的奇思妙想并不是一款优秀软件诞生的最关键因素, 用户的需求才是一款优秀软件产生的最主要因素。用户的需求, 从根本上决定了软件开发的质量, 也决定了整个软件开发的进程与软件开发过程的顺畅程度。与用户交流软件需求, 是整个软件开发初期, 甚至是一直延续到软件基本定型之前的一项重要工作。而且这些工作不是一时半会就能做完的, 需要客户经理与客户保持良好有效的沟通, 根据行业特征形成能够被开发人员理解的用户需求统计, 并且在整个开发过程中, 还要针对用户对软件的功能进行讲解演示, 如果有不符合用户的地方再进行修改, 经过很多次的这些修改过程, 就会做出最终高度锲合用户需求的软件。如果在软件开发之前就可以清晰明确地知道客户需求, 那么就可以减少修改软件的次数, 减少开发时间, 减少成本, 增加利润。

1.2 软件开发交互式体验

软件开发过程中的开发交互式体验, 也是影响计算机软件开发中软件质量的因素。交互式体验, 就是用户发出某种指令, 而系统发出反馈。软件开发时的交互体验, 简要来说, 就是用户对软件开发过程中的试用、提出意见的过程。在软件开发之前, 用户已经告知了开发组织自己的需求, 但是软件开发过程中, 有可能因为之前交流不畅,或者用户的需求没有很好的表达, 这就要求在整个软件开发过程中需要不断对软件进行修改。软件开发是需要开发不同的模块, 然后把模块组合起来, 就变成了一整个软件。在每一个软件模块开发完毕时, 就要邀请用户进行测试, 输入相关指令, 看模块的反馈是否如自己的预期, 不如自己的预期就要要求开发者进行修改。这一过程也对计算机软件开发的规范性有很高的要求。因为开发过程中的标准很难固定很难量化, 所以一旦模块开发出现问题时, 很难对开发者的责任进行界定。因而软件开发过程中开发人员和研究人员也就不会对规范性的开发予以足够多的重视, 而是过度关注软件开发速度和降低成本,忽视质量。

1.3 软件开发的技术人员配置

技术人员是软件开发最最主要的力量, 没有技术人员的参与, 软件开发就是一句空谈。因此与软件开发质量最相关的就是开发技术人员。相比于其他人员, 由于行业发展快速导致人才需求量大、薪酬、平台、机遇等问题, 导致现在软件开发人员流动性较强, 而且人员专业性也是参差不齐。高离职率导致了软件开发周期、开发成本出现了很多不可控因素。如果软件开发人员在软件开发过程中离开项目, 那么就需要后续人员补上空缺, 而后续人员对这个项目的理解掌握程度肯定无法跟已经离开的人员相提并论, 如此熟悉项目、项目组、客户需要的时间成本就是难以避免的了。另外, 后续人员的专业性水平也是制约项目质量的重要因素。虽然软件行业发展迅速, 人员缺口巨大,但是具有强大业务能力的优质人才一直是行业紧缺的资源。从软件需求分析到软件交付, 高素质人才对项目一直都是具有举定性意义。

1.4 软件开发基础架构设计

软件架构是软件系统的框架, 更是地基一样的存在,它是软件系统的最基础的决定因素, 决定了一个软件的框架结构、宏观特性和最根本的功能及属性。软件基础架构设计, 在一个软件的开发周期中处于前期位置。基础架构设计的过程, 就是把分析出来的客户需求、挖掘出的非功能性需求、将用户领域的知识转化为软件系统架构有机结合统筹规划的过程。本质上, 软件基础架构是对软件需求的一种抽象化的处理方案, 用于指导软件尤其是大型软件的整个开发过程。正如盖房需要先画图纸, 然后需要打好地基, 软件基础架构设计就是整个软件工程的图纸和地基。但是现实情况下, 软件架构还没有形成一个统一的行为规范与行业标准, 更多的还是开发公司内部自己协调的结果。因而软件开发基础架构设计也是能够体现软件开发公司的专业性, 影响软件开发质量的根本性因素。

1.5 可拓展性、后期维护性

现代社会, 很少会有客户要求开发完全封闭性的软件,一般软件都会留有接口, 方便后期专业人员进行维护。软件运行过程中, 需要对很多参数进行修改, 需要根据具体运行情况修改进程, 确定某些模块的优先级。甚至程序可以改变自己的某些运行逻辑。但是这些改变并不一定都是积极的, 甚至有的改变会使整个程序的运行更加低效。此时就需要维护人员进行专门的修改。软件是发展的, 有的时候, 只是需要增加某些具体的功能, 重新开发软件费时费力得不偿失, 因而要对原有软件进行拓展, 简单的例子就是苹果的iOS 系统的后期增加版本。软件的可拓展性、后期维护性, 都是考验软件开发工程中的软件适用性和兼容性的重要方法。而软件的适用性和兼容性, 就是衡量软件质量的重要因素。软件的适用性和兼容性, 考验着软件开发人员的专业能力, 适用性和兼容性高的软件, 一定是架构合理、软件开放性高、配置合理、性能高效、端口丰富的好软件。这不仅要求软件架构的优秀, 也要求着整个软件开发过程中的协调控制能力高超, 能够合理安排人员, 合理安排资源,并且具有充分的前瞻性, 可以考虑到以后用户的需求留下升级改造的空间。这些预见能力、开发创造能力、创新能力,无一不是专业高素质的软件开发人员的能力

2 原因分析

2.1 需求分析

好_的开端就是成功的一半。一个良好的开端, 即明确用户需求, 能够为后续的软件开发工作奠定良好的基础。如果需求分析比较模糊, 就会导致软件开发在后期出现重大问题。如果不能在软件开发前期对用户需求进行有效、明确、彻底的了解, 就无法在★软件开发过程中完美契合用户需求, 对用户需求一知半解进行开发, 会造成后续开发人员的无所适从, 或者软件开发过程中用户测试时, 会经常得到修改意见, 甚至最后开发出来的软件不会被用户所接受。这些后果都会导致软件开发过程中的时间、成本、人员等等出现各种不可控因素, 进而有可能导致产品更多的缺陷。如果这种情况发生很多的话, 那么就会影响企业的声誉, 甚至会影响企业未来的发展。

2.2 软件设计

在明确了用户需求之后, 就需要开展后期的工作。后期的工作主要是包含两个步骤, 首先要进行基础设计, 然后要进行具体的开发工作。基础设计就是上文说过的软件基础架构设计, 通俗地讲, 就是画图纸、打地基。软件架构就是软件系统的骨架与基础, 是对软件整体结构的描绘,✯包括全局组织与控制结构、模块结构通联、同步和数据访问协议、设计界面的功能、物理分布、设计元素等的集成。因此, 开发好软件基础架构, 就是画好图纸打好地基, 对以后的开发工作具有最重要的指导性作用。具体开发工作,就是要一句一句地进行各个模块、主题、通联结构之间的开发。这是整个开发过程中耗时最长、工作最重、工作最繁琐的一个环节, 要耗费最大量的资源、人力。这两个环节出现问题, 会导致软件质量出现重大问题。软件基础架构出现问题, 会导致整个软件先天不良, 出现各种结构性问题,比如后期的软件运行效率低下, 容易出现运行卡顿出错, 还会导致后期维护困难, 扩展性变差。软件开发过程出现问题, 会导致工期延长, 资源不合理浪费。软件开发过程中出现问题, 可能会直接导致整个软件无法正常运行, 用户验收不通过。因为软件开发的复杂性, 以及某些软件的巨大化,所以后期想要在进行故障清理, 有的时候甚至不亚于直接重新将软件再写一遍的难度。如果一个软件开发过程中不认真出现很多了bug, 被用户知道了, 会导致用户的不满, 这种情况出现多次, 就会极大地影响企业的口碑。

2.3 质量把控

现在规范化的软件公司, 在用户需求确定阶段、软件工程开发阶段、软件开发完成的测试阶段, 都会存在层层的审核机制与质量把控行为。这些审核机制与质量把控行为, 是对整个软件开发成果的文档资料、代码正确高效、软件开发工序进行评判, 就是要尽最大可能保障整个软件开发结果快速、高效、高质量。但是这个审核过程也是很容易出现问题的。 对于很多的软件开发工作越来越往大型化、复杂化、多模块化发展, 这些软件开发工作量十分浩大, 涉及的人员、部门繁多, 要相对这些进行详尽的审核与质量控制, 可想而知是一件工作量极大, 耗时极长,同时也需要大量人力、资源的一种工作, 出问题是很容易的。 软件审查人员的专业性问题也会导致审核不力的出现。如果审核人员的专业性不足, 会导致很多问题无法检测出来, 甚至很多程序员自己写的软件, 自己都无ผ法审查出来到底哪里出了问题。因此, 审核人员的专业素养必须要高, 才能找出一般工作人员在软件开发工作时犯下的错误。

3 避免出现软☑件质量问题的建议

3.1 加强软件设计管理

在软件开发工作开始之前, 明确并且仔细分析用户需求, 是极其重要的。必须要仔细多方面地与用户展开交流,通过与客户全方位的交流可以刻画出用户的具体的需求,从设计初期就紧紧抓住用户的需求, 控制好软件开发的质量。在软件开发过程中, 如果发现由于前期沟通不力或者后期用户自己发生改变, 则需要通过止损机制和缺陷管理对软件开发的过程、工序、内容进行更改。此外, 对用户需求进行分析, 根据需求的不同, 将需求分类、分成块,一块一块满足, 也方便一块一块修改程序。要切实有效地分析客户需求, 并针对客户需求制定合理的计划, 而且要具备根据客户需求的改变实时改变计划的能力, 这才是一个合格的软件开发团队应该做到的。

3.2 提升技术人员的专业和综合素质

互联网产业最重要的资源是人才, 不止是优秀的开发人才, 也包括优秀的组织管理人才。优秀的开发团队可以保证开发出优秀的产品, 并同时做到保证企业的效益和企业、团队的声誉。因此, 技术开发人员必须要严格要求自己, 通过学习行业领先知识, 学习行业领先经验, 甚至可以与很多行业大牛接触学习借鉴, 创新使用自己已经获得的各种知识、工具, 同时保持自己的上进心、主动性, 用追求完美的态度积极工作, 才能一直保持行业领先, 获得更大的收益。企业也要保证开发团队人员的薪金待遇, 保障他们的各项需求得到合理的满足, 并要不断对企业人才展开持续的培训培养, 这样才能留住人才, 发展人才, 才能获得公司的壮大与发展。企业和员工要相互信任共同成长, 恪守职业道德, 恪守以员工为本的原则, 共同建立高效、有序、和谐的企业内部氛围。

3.3 加强代码的检查

软件质量问题绝大部分出现在代码上, 代码是软件的主体, 因此要保证软件质量, 必须要加强对整个软件代码的检查力度。但是, 由于代码的繁多以及逻辑关系复杂,导致在检查中发现问题是一件很不容易做到的事, 同时也是一件对检查人员专业性要求很高的工作。开发人员在编写完代码之后, 必须对软件实施切实有效的检查, 可以通过各种方式, 比如代码走查、代码互查、机械检查等等方式进行。只检查某一个模块中的代码是不够的, 必须要对模块之间的联结是否顺畅高效进行相应的检查, 这也就是说, 要检查构架建设是否合理, 逻辑关系是否顺畅合理,也要引入专门的检察人员进行代码的检查, 并且要求全部人员, 形成缜密的逻辑思维, 与细心的工作态度, 加深对技术准确性、安全性的理解, 提高技术水准, 减少可能出现的代码质量问题。代码准确度越高, 出错率越低, 成本就越低, 如此可以付给开发人员的薪酬也就越高, 形成双赢态势。

4 结语

在实际的软件开发工作中, 影响软件质量的因素非常多, 管理这些因素, 控制并提高软件的质量, 需要开发人员和管理人员共同进步。开发人员要ล通过不断学习, 借鉴行业高手的先进经验, 努力提高一次编译成功率以及减少bug 数量, 同时要锻炼自己架构建设、代码检查的能力。管理人员要加强自己的科学管理能力, 积极统筹各个部门协力合作, 减少时间成本, 增加效益, 同时要更加注重组织建设, 保证开发人员的培训成长, 帮助企业进步。


热门排行: 教你如何写建议书