2软件的维护性如何提高 提高软件可维护性方法
发布日期:2020-11-11摘要:如何增强软件的可维护性及可扩展性 个人认为将当前情况下,行为分配给农场主既有利于可扩展又有利于维护性。从语义上分析:挤奶是行为,本例中只有农场主具有该行为,奶牛语义上不应该具备该行为,奶牛只能返回相关...
如何增强软件的可维护性及可扩展性
个人认为将当前情况下,行为分配给农场主既有利于可扩展又有利于维护性。
从语义上分析:挤奶是行为,本例中只有农场主具有该行为,奶牛语义上不应该具备该行为,奶牛只能返回相关属性,让农场主判定是否能够挤奶,挤奶量等等。
无论奶牛如何扩展、甚至农场主扩展,都可以依赖抽象(当然不考虑双分发问题),具备较高的扩展性。
同时维护点少,如果分配给奶牛,那么如果奶牛的挤奶行为出现差错,则可能需要从顶层至底层修改奶牛的行为。
而分配给农场主,则出错仅需在挤奶这个行为范围内进行修改。
题外话:当然复杂情况下,维护性不好判断,也就是说,前提是如果系统扩展至一定层次,那么农场主挤奶行为可能会十分复杂,那么它的维护性远远低于分配给奶牛。
软件工程中有哪些措施可以提高软件的可维护性?
内聚、局部化、控制域与作用域的关系等等。
维护人员在正确理解一个程序之前根本不可能修改它。
如果是改正性维护,还必须预先进行调试以确定故障、可用的测试工具和调试工具,以及以前设计的测试过程也都是非常重要的。
维护人员应该能够得到在开发阶段用过的测试方案、功能和内部过程的难易程度。
模块化、详细的设计文档、结构化设计、源代码内部的文档和良好的高级程序设计语言等等,都对改进软件的可理解性有重要贡献。
2.可测试性诊断和测试的难易程度主要取决于软件容易理解的程度、改动和改进这个软件的难易程度。
提高可维护性是支配软件工程方法论所有步骤的关键目标。
维护就是在软件交付使用后进行的修改,修改之前必须理解修改的对象,修改之后应该进行必要的测试,以保证所做的修改是正确的,都影响软件的可修改性。
上述三个可维护性因素是紧密相关的软件可维护性的因素,软件可维护性可以定性地定义为。
良好的文档对诊断和测试是至关重要的。
因此,影响软件可维护性的因素主要有下述三个.可理解性软件可理解性表现为外来读者理解软件的结构、接口,以便进行回归测试。
在设计阶段应该尽力把软件设计成容易测试和容易诊断的。
3.可修改性软件容易修改的程度和软件设计原理和规则直接有关。
耦合:维护人员理解、改正。
1;如果不能进行完善的诊断和测试,则表面正确的修改可能引进其他故障。
此外,软件结构 展开
软件的可维护性与哪些因素有关?在软件开发过程中应该此案去哪些措...
一、什么是质量? 作为软件产品的销售人员,市场人员或维护人员经常会受到客户这样那样的指责或抱怨,客户说:你们产品的质量太差,不稳定等等。
那么什么是质量呢?我们该如何来衡量质量呢? 质量具有三个维度: ?? 符合目标。
目标是客户所定义的,符合目标即判断我们是不是在做需要做的事情。
?? 符合需求。
即产品是不是在做让它做的事情。
?? 符合实际需求。
实际的需求包括用户明确说明的和隐含的需求。
ISO 关于质量的定义表示如下: “ 一个实体(产品或服务)的所有特性,基于这些特性可以满足明显的或隐含的需要。
” 注意,在这个定义中包含明显的需求和隐含的需求。
而往往我们会忽略隐含的需求。
因此在控制一个产品的质量的过程中必须关注这些隐含的需求,并给予应有的验证。
另一方面因为我们的产品是为客户提供服务的,因此凡是不满足客户需求的,我们都认为是一个失效( failure )。
所以我们的产品必须始终围绕着客户的需求进行开发和验证。
这里我们谈到客户,其实在一个软件的需求收集过程中需要关注客户和用户。
而我们经常会忽略客户与用户之间的区别。
那么谁是客户?谁是用户呢?简单的来说,客户是真正能够决定是否购买你软件的人,而用户是实际使用软件的人。
了解了这个区别,对于你在分析需求的重要性的时候就可以进行参考。
同时在产品质量验证的时候也可以做出不同的权衡。
另一方面我们在考虑我们用户需求的时候,往往只考虑了实际使用软件的人员,而忽略了其它一些人员对软件的要求或对软件造成的潜在竞争,这包括维护人员的要求、系统管理人员的要求、软件上下游人员的要求、先前版本的情况、市场上竞争对手的软件情况等。
每个人提到质量的时候,经常会遇到下列矛盾,在这些矛盾中隐含着对质量的承诺【 5 】: ?? 质量需要一个承诺,尤其是高层管理者的承诺。
但为了得到质量,高层管理者必须和其雇用的员工进行紧密合作; ?? 许多人相信没有缺陷的产品和服务是不可能的。
但是控制在一定级别的缺陷数是正常并可接受的; ?? 质量经常是和成本紧密联系在一起,一个高质量的产品同时也意味着高投入。
这是设计的质量和一致性质量的一个矛盾; ?? 一个高的质量要求需求规格说明书足够详细,以便产品可以根据这些规格说明书进行定量的分析。
然而许多组织没有能力或者不愿意产生如此详细程度的规格说明书; ?? 技术人员经常相信规范和标准会束缚他们的创造力,因此就不遵照标准做事。
然而如果要得到高质量的产品,就必须遵循良好定义的标准和过程。
二、流程对质量的贡献 好了,既然已经了解了什么是质量,那么怎么才能改进软件产品的质量呢?从一个企业的长远发展来看,首先应当从流程抓起,规范软件产品的开发过程。
这是一个软件企业从小作坊的生产方式向集成化、规范化的大公司迈进的必经之路,也是从根本上解决质量问题,提高工作效率的一个关键手段。
软件产品的开发同其它产品(如汽车)的生产有着共同特性,即需要按一定的过程来进行生产。
在工业界,流水线生产方式被证明是一种高效且能够比较稳定地保证产品质量的一种方式。
通过这种方式,不同的人员被安排在流程的不同位置,最终为着一个目标共同努力,这样可以防止人员工作间的内耗,极大的提高工作效率。
并且由于其过程来源于成功的实例,因此其最终的产品质量能够满足过程所设定的范围要求。
软件工程在软件的发展过程中吸取了这个经验并把它应用到了软件开发中,这就形成了软件工程过程,简单的说就是开发流程。
无论做什么事情,都有一个循序渐进的过程,从计划到策略再到实现。
软件流程就是按照这种思维来定义开发过程,它根据不同的产品特点和以往的成功经验,定义了从需求到最终产品交付的一整套流程。
流程告诉我们该怎么一步一步去实现产品,可能会有那些风险,如何去避免风险等等。
由于流程来源于成功的经验,因此,按照流程进行开发可以使得我们少走弯路,并有效的提高产品质量,提高用户的满意度。
目前流行的流程方法有很多种,不同的过程模型适合于不同类型的项目。
瀑布模型是应用的最为广泛的一种模型,也是最容易理解和掌握的模型,然而它的缺陷也是显而易见的。
遗漏的需求或者不断变更的需求会使得该模型无所适从。
然而,对于那些容易理解但很复杂的项目,采用瀑布模型会是比较适合的,因为你可以按部就班的去处理复杂的问题。
在质量要求高于成本和进度要求的时候,该模型表现的尤其突出。
螺旋模型是也是一个经典模型,它关注于发现和降低项目的风险【 8 】。
螺旋型项目从小的规模开始,然后探测风险,制定风险控制计划,接着确定下一步项目是否还要继续,然后进行下一个螺旋的反复。
该模型的最大优点就是随着成本的增加,风险程度随之降低。
然而螺旋模型的缺点是比较复杂,且需要管理人员有责任心,专注以及有管理方面经验。
RUP ( Rational Unified Process )是 Rational 公司提出的一套开发过程模型,它是一个面向对象软件工程的通用业务流程【 9 】。
它描述了一系列相关的软件工程流程,它们具有相同的结构,...
软件维护工作主要是干什么工作?
即修改软件为将来的维护活动预先做准备。
虽然没有把维护阶段进一步划分成更小的阶段。
开发维护:维护阶段的关键任务是,造成更大的损失。
(4)故障排除 发生故障及时发现排除以免发生更大的故障,提高他们的计算机应用水平。
(8)定制维护 按照企业的要求进行维护工作。
(2)数据备份 数据备份是对硬盘参数、计算机引导区参数;预防性维护、系统艾件及其他数据的存取,以便发生大故障时恢复计算机正常工作。
(3)数据整理 经常整理计算机数据,清除无用的数据,修复错误的数据,维护系统的稳定性,有效保护硬盘等易损硬件,因此实质上是经历了一次压缩和简化了的软件定义和开发的全过程。
(5)硬件清洗 经常清扫硬件,保持硬件清洁,恢复计算机系统,测试程序,复查验收等一系列步骤,延长计算机寿命、调试,计算机技术咨询,系统集成等,局域网搭建。
(7)免费指导 指导计算机管理人员重要的操作规程。
(6)维修计算机硬件,计算机网络维护,修改软件设计,修改程序,提出维护要求,提出维护方案,通过各种必要的维护活动使系统持久地满足用户的需要。
通常有四类维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善,但是实际上每一项维护活动都应该经过提出维护要求(或报告问题),分析维护要求,审批维护方案,确定维护计划应用性维护:系统维护主要分为信息系统维护和计算机系统维护。
因为信息系统维护可能你平时不会涉及到,在这只简述计算机系统维护的内容计算机系统维护服务内容:(1)病毒防治 病毒是计算机系统的杀手,它能感染应用软件、破坏系统甚至毁坏硬件,必需及时查杀 展开
Java接口有什么作用,它是如何提高软件可维护性的?并用一个有代表...
程序就不写了。
要写一个体现出接口有点的程序有点多。
我以前做个一个小系统,有点体现。
是一个在线考试系统。
刚做的时候没有在线功能,定义了一个考试接口。
由本地考试的实现类来实现这个接口。
在配置文件中配置了接口创建的对象是该实现类的对象。
后来换成在线版本的,又另外一个实现类来实现这个接口。
只需要将配置文件中接口创建对象的实现类名字改一下就可以了。
业务代码一句都没有改变,因为代码里创建的是接口的对象,实例化的实现类是通过配置文件读取的。
小系统用这个显不出优势。
大点的项目很多人一起写代码,如果要一项一项修改的话很麻烦,因为有人员的流动,不知道前面的那个人在哪里添加了这个对象的引用。
没有接口的话维护起来要做的工作量很大。
软件维护的特点有哪些呢?
1、非结构化维护和结构化维护:主要是开发过程是否用软件工程方法,若各阶段均有相应的文档记录,则容易维护,采用结构化维护可以大大提高软件维护效率。
2、软件维护的困难性:是由于软件需求分析和开发方法的缺陷。
3、软件维护的费用:在总费用中的比重不断增加,已经上升到了70%~80%或更多,我们看到的软件不断升级就是维护的体现。
-
给我们打电话
7*24小时服务热线:1399999999
全国客服热线:400-0000-000 -
百度地图
福建省漳州市 -
给我们发邮件
E-mail:[email protected]
在线沟通