西门子CPU224XPCN继电器输出
软件缺陷产生的原因
软件缺陷就是通常所说的Bug,它是指软件中(包括程序和文档)存在的影响软件正常运行的问题。IEEE(Institute ofElectrical and ElectronicsEngineers,电气电子工程师协会)729—1983标准对软件缺陷有一个标准的定义:从产品内部看,缺陷是产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统运行过程中某种功能的失效或违背。
软件缺陷的产生主要是由软件产品的特点和开发过程决定的,比如需求不清晰、需求频繁变更、开发人员水平有限等。归结起来,软件缺陷产生的原因主要有以下几点。
(1)需求不明确。软件需求不清晰或者开发人员对需求理解不明确,导致软件在设计时偏离客户的需求目标,造成软件功能或特征上的缺陷。在开发过程中,客户频繁变更需求也会影响软件*终的质量。
(2)软件结构复杂。如果软件系统结构比较复杂,很难设计出一个具有很好层次结构或组件结构的框架,这就会导致软件在开发、扩充、系统维护上的困难。能够设计出一个很好的架构,复杂的系统在实现时也会隐藏着相互作用的难题,而导致隐藏的软件缺陷。
(3)编码问题。在软件开发过程中,程序员水平参差不齐,再加上开发过程中缺乏有效的沟通和监督,问题累积越来越多,如果不能逐一解决这些问题,会导致*终软件中存在很多缺陷。出需要查阅****及用户的使用需求。
用户文档:使用手册是否对纸杯的用法
条件、限制条件等有详细描述。
说明书测试:查看纸杯说明书的正确性、准确性及完整性。3. 影响软件质量的因素
现代社会处处离不开软件,为保证人们生活工作正常有序地进行,就要严格控制好软件的质量。由于软件自身的特点和目前的软件开发模式使得隐藏在软件内部的质量缺陷无法完全根除,每一款软件都会存在一些质量问题。影响软件质量的因素有很多,下面介绍几种比较常见的影响因素。
(1)需求模糊
在软件开发之前,确定软件需求是一项非常重要的工作,它是后面软件设计与软件开发的基础,也是*后软件验收的标准。软件需求是不可视的,往往也说不清楚,导致产品设计、开发人员与客户存在一定的理解误差,开发人员对软件的真正需求不明确,结果开发出的产品与实际需求不符,这势必会影响软件的质量。模式,它将工作细分成任务,将工作流程显示在“看板卡”上,每个人都能及时了解自己的工作任务及工作进度。这种生产理念后来被引入到软件开发中,利用可视化软件将开发的软件项目细分成小任务,并分配给团队成软件质量是指软件产品满足基本需求及隐式需求的程度。软件产品满足基本需求是指其能满足软件开发时所规定需求的特性,这是软件产品*基本的质量要求;是软件产品满足隐式需求的程度。例如,产品界面更美观、用户操作更简单等。
从软件质量的定义,可将软件质量分为3个层次,具体如下
并且能可靠运行。
(2)满足用户需求:软件产品的需求是由用户产生的,软件*终的目的就是满足用户需求,解决用户的实际问题。
(3)满足用户隐式需求:除了满足用户的显式需求,软件产品如果满足用户的隐式需求,即潜在的可能需要在将来开发的功能,将会极大地提升用户满意度,这就意味着软件质量更高。
所谓高质量的软件,除了满足上述需求之外,对于内部人员来说,它应该也是易于维护与升级的。软件开发时,统一的符合标准的编码规范、清晰合理的代码注释、形成文档的需求分析、软件设计等资料对于软件后期的维护与升级都有很大的帮助,这些资料也是软件质量的一个重要体现。2.软件质量模型
软件质量是使用者与开发者都比较关心的问题,但全面客观地评价一个软件产品的质量并不容易,它并不像普通产品一样,可以通过直观的观察或简单的测量能得出其质量是优还是劣。那么如何评价一款软件的质量呢?目前,*通用的做法就是按照ISO/IEC9126:1991****来评价一款软件的质量。
ISO/IEC9126:1991是*通用的一个评价软件质量的****,它不仅对软件质量进行了定义,还制订了软件测试的规范流程,包括测试计划的撰写、测试用例的设计等。ISO/IEC9126:1991标准由6个特性和27个子特性组成员,每个成员都可以在“看板”上了解自己的工作任务及整个团队的工作进度。项目开始之后,从目前执行的任务和过程开始,团队会针对每个成员的工作做出持续、增量、渐进式的改变。
1.1.3 软件质量概述
软件产品与其他产品一样,都是有质量要求的,软件质量关系着软件使用程度与使用寿命,一款高质量的软件更受用户欢迎,它除了满足客户的显式需求之外,往往还满足了客户隐式需求。下
从软件质量的概念、软件质量模型、影响软件质量的因素这几个方面介绍软件质量的相关知识。型软件,使成本计算变得简单容易,客户始终参与每个阶段的开发,保证了项目不偏离正确方向,也保证了项目的可控制性。5.敏捷模型
敏捷模型是20世纪90年代兴起的一种软件开发模型。在现代社会,技术发展非常快,软件开发也是在快节奏的环境中进行的。在业务快速变换的环境下,往往无法在软件开发之前收集到完整而详尽的软件需求。没有完整的软件需求,传统的软件开发模型就难以展开工作。
为了解决这个问题,人们提出了敏捷开发模型。敏捷模型以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷模型中,软件项目在构建初期被拆分为多个相互联系而又独立运行的子项目,迭代完成各个子项目,开发过程中,各个子项目都要经过开发测试。当客户有需求变更时,敏捷模型能够迅速地对某个子项目做出修改以满足客户的需求。在这个过程中,软件一直处于可使用状态。
除了响应需求,敏捷模型还有一个重要的概念——迭代,就是不断对产品进行细微、渐
螺旋模型由巴利·玻姆(BarryBoehm)于1988年提出,该模型融合了瀑布模型、快速原型模型,它*大的特点是引入了其他模型所忽略的风险分析,如果项目不能排除重大风险,就停止项目从而减小损失。这种模型比较适合开发复杂的大型软件。
螺旋模型将整个项目开发过程划分为几个不同的阶段,每个阶段按部就班地执行,这种划分方式采用了瀑布模型。每个阶段在开始之前都要进行风险评估,如果能消除重大风险则可以开始该阶段任务。在每个阶段,