软件的作用,也就是软件客户,或者使用者对软件的期望,需求.质量好的软件应该能在最大程度上满足客户需求,功能性需求和非功能性需求.通常软件工程中将软件需求划分为功能性需求和非功能性的需求.所谓功能性需求就是客户对软件提出的具体的要求,主要指软件为满足客户的业务要求而开发的功能;而非功能性需求就是指软件系统除了在业务方面的需求外,还需要保证包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等。郑州做软件就选郑州郑州知网软件科技有限公司。
好的软件在开发前就应该对如何实现功能性和非功能性需求有清醒的认识. (本公司)郑州郑州知网软件科技有限公司总结了在软件项目开发以及测试过程中的经验,要提高软件在功能方面的质量需要至少做好以下几方面的事情:
1. 软件开发前应该对软件功能性需求做尽可能的调研.力争能穷举到客户对功能的所有要求,虽然这是一个不可能完成的任务,但是正所谓:世上无难事,只怕有心人.尽可能的与客户沟通获取需求,除了完成需求调研的任务外,同客户有深入的沟通和良好的客户关系也是一个及其有益的收获.
2. 软件开发项目组需要对客户的需求进行很好的分析.个人认为这个分析除了考虑实现方面的事情,还应该考虑各功能需求实现的效率以及该需求在功能要求中所占的比例等.据说有专家统计过,大概有40%方面的软件功能,很少或者从来不被客户使用到.或者采用20-80原则对软件功能进行重要程度的划分.这项工作非常重要,建议根据分析的结果生成一个文档.此文档对软件开发阶段具有非常重要的指导意义.
3. 应该调动软件开发以及测试团队的积极性,对功能进行良好的培训.目的是让团队的所有成员能够清楚的了解软件的功能,软件开发者可以更好的,完整的实现软件功能.而测试团队可以根据功能要求来设计更有效的测试计划和测试用例.
4. 应该对软件开发中使用的软件设计语言和辅助的各种工具有清楚的认识,并就设计语言以及各种工具对整个开发,测试团队进行充分的培训
5. 项目经理应该对软件开发的过程进行张弛有度的控制,要制定合理的软件研发计划,根据所拥有的各种资源排定合理的开发时间表.如果可以应该设定一定的 milestone,以对软件开发过程中有阶段性的成果和总结.让开发和测试团队对整个项目的进展有全局的观念,同时根据中间结果的分析,调整时间表以及为未来的开发和测试做更合理的规划
6. 建立高效的质量小组或者测试小组.软件测试人员在研发团队中往往总是处于从属的地位但是有要承担软件质量的重任.项目经理应该采用各种方法组建和维持一个高效的质量部门.
关于如何提高软件系统在非功能性要求的表现,本公司(谷多软件开发有限公司)认为以下几个方面需要更好的注意
1. 首先是软件的性能.软件研发在进行需求调研时,不但应该更多的获取功能或者业务的要求,而且对于客户在软件系统响应或者并发等方面的要求,可以据此定义出软件系统的性能方面的要求.这些要求在实现过程中应该具体的被表现在开发,测试等文档中.而且针对此类性能需求的深入分析,往往能较好的规避软件系统瓶颈等问题
2. 其次是软件系统维护,扩充方面的需求.在进行系统功能调研和分析时,要对客户业务的规模,以及客户的发展等各方面情况有更清楚了解.可以根据这些信息更好的进行软件功能点划分,硬件设备选型等工作.软件系统如何能更好的实施也是软件质量非常重要的一个环节.
3. 非功能性的需求很多时候需要考虑硬件以及网络方面的成本.针对这些问题需要与客户进行良好的沟通,设定合理的非功能性目标,在成本与质量方面要有良好的平衡.最完备的方案往往只是最昂贵的,但却不是最合适的方案.
提高软件质量是整个研发团队的任务,每个小组都应该为这个目标做更多的工作.但现实的软件研发过程中往往简单的将软件质量问题归咎于软件测试或质量保证部门.软件测试不可能发现所有的软件缺陷,要想提高软件的质量,那么整个团队要付出更多的努力.要知道往往很多软件缺陷在设计阶段就存在了,研发过程中越早进行质量的控制,软件质量就会越好.整个团队强烈的软件质量意识,是保证软件软件质量的关键,项目经理需要在提高团队质量意识方面做出更多的努力.