精华内容
下载资源
问答
  • 软件工程(软件维护之易维护性)

    千次阅读 2009-04-09 00:15:00
    通常影响软件维护性的因素有易理解性、易测试性和易修改性 易维护性 是指维护人员为纠正软件系统出现的错误或缺陷,以及为满足新的要求而理解、修改和完善软件系统的难易程度。提高可维护性决定软件工程方法论...

    软件维护性是指理解、改正、改动、改进软件的难易程度。通常影响软件维护性的因素有易理解性易测试性易修改性

     

    易维护性


      是指维护人员为纠正软件系统出现的错误或缺陷,以及为满足新的要求而理解、修改和完善软件系统的难易程度。提高可维护性是决定软件工程方法论所有步骤的关键目标。
    1.易理解性

    易理解性被定义为人们通过阅读源代码和相关文档了解软件系统的结构、接口、功能、内部过程以及如何运行的难易程度。一个可理解的系统应具备如下一些特性

    • 模块化;
    • 程序设计风格的一致性;
    • 不使用令人捉摸不定或含糊不清的代码;
    • 使用有意义的数据名和过程名;
    • 采用结构化的程序设计方法;
    • 具有正确、一致和完整的文档。

    2.易测试性
     

     易测试性是指测试和诊断软件(主要指程序)中错误的难易程度。
      测试主要是发现软件中的错误,而诊断错误的性质和出错的位置通常是调试的任务。
      提高软件可测试性的措施有:书写详细正确的文档,采用良好的程序结构,使用测试工具和调试工具,保存以前的测试过程和测试用例等等。
      

    3.易修改性
      易修改性是指修改软件(主要指程序)的难易程度。
      在修改程序时经常会发生这样的情况:修改程序中某个错误的同时又产生新的错误(由程序的修改引起的),或者在程序中增加了某个功能的同时,原先的某些功能不能正常执行。这主要是因为程序中各成分之间存在着许多联系,当程序中某处修改时,这个修改可能会影响到程序的其他部分。如果修改程序时稍有考虑不周,就会出现上述顾此失彼的情况。因此,如果一处修改所涉及到的范围越少,发生上述情况的概率也越小,其可修改性也越好。
      在软件设计中我们介绍的那些设计准则都是影响可修改性的因素,如信息隐蔽原则、模块独立、模块间联系的低耦合高内聚等等。

     

     

     

    网上习题:http://course.cug.edu.cn/cugThird/computer_system/XTCESHI/XT2-5.htm

    展开全文
  • 软件工程期末复习一

    2020-02-10 15:37:36
    文档:是影响软件可维护性的决定因素。可以分为用户文档和系统文档两类。 软件工程:1.把系统的,规范的,可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件。2.研究1中提到的途径。 软件...

    以下成果是我和晓玉姐姐共同翻课本一个一个整理的,是我们两个人共同的成果,希望能好好学习,取得好成绩!

    名词解释

    软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

    软件:

    文档:是影响软件可维护性的决定因素。可以分为用户文档和系统文档两类。

    软件工程:1.把系统的,规范的,可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件。2.研究1中提到的途径。

    软件工具:为运用方法而提供的自动的或半自动的软件工程支撑环境。

    软件生命周期:有软件定义、软件开发和运行维护三个时期组成。

    软件过程:为了获得高质量软件所需要完成的一系列任务的框架,规定了完成各项任务的工作步骤。

    软件生命周期模型:规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,也称为过程模型。

    瀑布模型:唯一被广泛采用的生命周期模型,现在仍然是软件工程中应用最广泛的过程模型。

    快速原型模型:快速建立起来的可以在计算机上运行的程序。它所能完成的功能往往是最终产品能完成的功能的一个子集。

    增量模型:也称为渐增模型。为一系列的增量构件来设计编码,集成和测试,每个构件由多个相互作用的模块构成,并且能够完成特定的功能。

    极限编程:是敏捷过程中最富盛名的一个,把好的开发实践运用到极致。一种典型的开发方法,广泛应用于需求模糊且经常改变的场合。

    结对编程:有两名开发人员在同一台计算机上共同编写解决同一个问题的程序代码,通常一个人编码,另一个人对代码进行审查与测试,以保证代码的正确性和可读性。是加强开发人员相互沟通和评审的一种方式。

    代码重构在不改变系统行为的前提下,重新调整和优化系统的内部结构,以降低复杂性,消除冗余,增加灵活性和提高性能

    可行性研究:进行一次大大压缩简化了系统的分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。

    技术可行性:使用现有的技术能否实现这个系统?

    经济可行性:这个系统的经济效益能超过它的开发成本吗?

    操作可行性:系统的操作方式在这个用户组织内行得通吗?

    系统流程图:概括地描绘物理系统的传统工具。

    DFD数据流图。是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。

    数据字典:关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

    货币时间价值:用利率的形式表示货币的时间价值。假设年利率为i,如果现在存入p元,则n年后可以得到的钱数为:F=P(1+i)n次方。

    投资回收期:衡量一项开发工程的价值。使累计的经济效益等于最初投资所需要的时间。

    纯收入:在整个生命周期之内系统的累计经济效益与投资之差。

    需求分析:是软件定义时期的最后一个阶段,它的基本任务是准确的回答系统必须做什么这个问题。

    SA:结构化分析方法

    状态:是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。

    状态图:状态转换图通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。

    软件设计:划分出组成系统的物理元素--程序,文件,数据库,人工过程和文档等。设计软件的结构。由系统设计阶段和结构设计阶段两个阶段组成。

    模块化:把系统划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

    信息隐蔽:设计和确定模块使得一个模块内包含的信息,对于不需要这些信息的模块来说是不能访问的。

    逐步求精:是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础。

    模块独立性:模块化,抽象,信息隐藏和局部化概念的直接结果。

    耦合:是对一个软件结构内不同模块之间互连程度的度量。

    数据耦合:是低耦合,系统中至少必须存在这种耦合,因为只有当某些模块的输出数据作为另一些模块的输入数据时,系统才能完成有价值的功能。

    内聚:内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。

    功能内聚:根据数据流图划分模块时,通常得到顺序内聚的模块,这种模块彼此间的连接往往比较简单。如果模块内所有处理元素属于一个整体,完成一个单一的功能则称为功能内聚。

    扇出:是一个模块直接控制的模块数目。

    扇入:表明有多少个上级模块直接调用他。

    模块的控制域:是这个模块本身及所有直接或间接从属于它的模块的集合。

    模块的作用域:受该模块内一个判定影响的所有模块的集合。

    层次图:描绘软件的层次结构。

    结构图:软件结构设计的另一个有力工具。也是描绘软件结构的图形工具。

    SD方法:面向数据流的设计方法。目标是给出设计软件结构的一个系统化的途径。

    结构程序设计:如果一个程序的代码块仅仅通过顺序选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。

    系统响应时间:指从用户完成某个控制动作到软件给出预期的响应之间的这段时间。

    PAD:问题分析图。 用二维树形结构的图来表示程序的控制流。

    PDL:过程设计语言。也称为伪码。是用正文形式表示数据和处理过程的设计工具。

    Jackson方法:著名的面向数据结构的设计方法。

    流图:实质上是退化了的程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。

    环形复杂度:定量度量程序的逻辑复杂度。

    编码:把软件设计结果翻译成用某种程序设计语言书写的程序。

    软件测试:为了发现程序中的错误而执行程序的过程。

    穷举测试:把程序所有可能的执行路径都检查一遍的测试。

    黑盒测试:如果已经知道了产品应该具有的功能,可以通过黑盒测试来检验是否每个功能都能正常使用。

    功能测试:即黑盒测试

    白盒测试:如果知道产品的内部工作过程,可以通过白盒测试来检验产品内部动作是否按照规格说明书的规定正常进行。

    结构测试:即白盒测试

    模块测试:把每个模块作为一个单独的实体来测试,而且通常比较容易设计检验模块正确性的测试方案,目的是保证每个模块作为一个单元能正确运行。

    单元测试:即模块测试

    系统测试:把经过测试的子系统装配成一个完整的系统来测试。

    集成测试:不论是子系统测试还是系统测试都兼有检测和组装两重含义,通常称为集成测试。

    验收测试:把软件系统作为单一的实体进行测试,测试内容与系统测试基本类似,但是是在用户积极参与下进行的,而且可能主要是用实际数据进行测试。

    确认测试:即验收测试

    渐增式测试:把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完后再把下一个应测试的模块结合进来测试。这种每次增加一个模块的方法称为渐增式测试

    非渐增式测试:先分别测试每个模块,再把所有模块按设计要求放在一起,结合成所要的程序。

    已管理级:软件机构对软件过程(过程模型和过程实例)规定了软件产品都建立了定量的质量目标,所有项目的重要的过程活动都是可度量的(定量)

    CMM:能力成熟度模型,是用于评价软件机构的软件过程能力成熟度的模型

    变化控制:变化控制把人的规程和自动工具结合起来,以提供一个控制变化的机制

    版本控制:版本控制联合使用规程和工具,以管理在软件工程过程中所创造的配置对象的不同版本

    基线:是一个软件配置管理概念,它有助于人们在不严重妨碍合理变化的前提下来控制变化

    软件配置项:软件过程的输出信息可以分为三类,1.计算机程序(源代码和可执行程序)2.描述计算机程序的文档(供技术人员或用户使用)3.数据(程序内包含的或在程序外的)上述这些项组成了在软件过程中产生的全部信息,人们把它们统称为软件配置,而这些象就是软件配置项

    软件配置管理:是在软件的整个生命期内管理变化的一组活动

    走查:正式技术复审是软件质量保证的一种,包括走查和审查等具体方法,走查主要有下述两种方式,一参与驱动法二文档驱动法

    软件质量:就是软件语言明确的和隐含的定义的需求相一致的程度

    主程序员组:经验多,技术好,能力强的程序员作为主程序员,特性一,专业化二,层次化

    机动时间:一个作业可以有的,全部机动时间等于它的结束时间的最迟时刻减去他开始事件的最早时刻再减去这个作业的持续时间

    关键路径:有几个事件的最早时刻和最迟时刻相同,这些事件定义了关键路径

    工程网络图:工程网络是制定进度计划时,另一种常用的图形工具,他同样能描绘任务分界情况,以及每项任务的开始时间和结束时间,此外,她还显示描述各个作业,彼此间的依赖关系,因此,工程网络是系统分析和系统设计的强有力的工具

    COCOMO估算:COCOMO,是构造性成本模型的英文缩写

    软件项目计划:

    基于故障的测试:与传统的错误推测法类似,也是首先推测软件中可能有的错误,然后设计出最可能发现这些错误的测试用例,为了推测出软件中可能有的错误,应该仔细研究分析模型和设计模型,而且在很大程度上要依靠测试人员的经验和直觉

    随机测试:用一些随机产生的测试用例测试

    测试策略:测试软件的经典策略是从小型测试开始,逐步过渡到大型测试

    单向关联:使用关联有两种可能的方式:单向遍历和双向遍历,某些关联只需要单向遍历,称为单向关联

    窄菱形模式:一种多重继承的模式,出现属性及服务命名冲突可能性较大

    软件重用:重用也叫再用后复用试纸同一事物不作修改或稍加变动就多次重复使用软件重用可分为三个层次,一知识重用二方法和标准的重用三软件成分的重用

    类构件:

    事件跟踪图:事件跟踪图实质上是扩充的脚本,可以认为事件跟踪图是简化的UML顺序图

    事件:

    功能模型:表示变化的系统的功能性质,它指明了系统应该做什么?因此更直接地反映了用户对目标系统的需求,由一组数据流图组成

    动态模型:表示瞬时的行为化的系统的控制性质,它规定了对象模型中的对象的合法变化序列

    对象模型:表示静态的结构化的系统的数据性质

    限定关联:通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多变成一对一,或从多对多简化成多对一

    多态性:在类等级的不同层次中,可以共享一个行为的名字,然而,不同层次中的每个类,却各自按照自己的需要来实现这个行为,C++语言中多态性是通过虚函数来实现的

    多重继承:指的是一个子类,可以同时多次继承同一个上层基类

    单重继承:

    继承:广义的说继承是指能够直接获得已有的性质和特性,而不必重复定义它们

    UML:统一建模语言,模块彼此间作为机遇,面向对象技术的标准建模语言,使用,提供的类图来建立对象模型

    模型:就是为了理解事物,而对事物做出的一种抽象,是对事物的一种无歧义的书面描述

    重载:两种重载1.函数重载2.运算符重载,函数重载是指在同一作用域内的若干个参数特征不同的函数,可以使用相同的函数名字,运算符重载是指同一个运算符可以施加于不同类型的操作数上面

    属性:就是类所定义的数据,它是对客观世界实体所具有的性质的抽象

    方法:就是对象所能执行的操作也是类中所定义的服务方法,描述了对象执行操作的算法响应消息的方法,c++成员函数

    类:就是对具有相同数据和相同操作的一组相似对象的定义,也就是说类是对具有相同属性和行为的一个或多个对象的描述,通常在这种描述中,也包括对怎样创建该类的心对象的说明

    软件可移植性:把程序从一种计算环境(硬件配置和操作系统)转移到另一种计算环境的难易程度

    正向工程:也成为革新或改造这项活动,不仅从现有程序中恢复设计信息,而且使用该信息去改变或重构现有系统,以提高整体质量

    逆向工程:是分析程序已变在比源代码更高的抽象层次上,创造出程序的某种表示的过程,也就是说,逆向工程是一个恢复设计结果的过程,逆向工程工具从现存的程序代码中抽取有关数据,体系结构和处理过程的设计信息

    文档重构:

    系统文档:只从问题定义需求说明到验收测试计划,这样一系列和系统实现有关的文档

    用户文档:用户了解系统的第一步,他应该能使用户获得对系统的准确的初步印象

    软件维护的副作用:

    软件可维护性:

    结构化维护:

    预防性维护:当为了改进未来的口维护性或可靠性,或为了给未来的改进奠定更好的基础,而修改软件时的维护

    完善性维护:在使用软件的过程中,用户往往提出增加新功能或修改已有功能的建议,还可以提出一般新的改进意见,这个时候进行的维护

    适应性维护:为了和变化了的环境,适当的配合而进行的修改软件的活动是既必要又经常的维护活动

    校正性维护:把诊断和改正错误的过程成为改正性维护

    软件维护:软件已经交付使用,之后为了改正错误或满足新的需要而修改软件的过程

    MTTF:软件的平均无故障时间,是系统按规格说明书规定成功的运行的,平均时间主要取决于系统中潜伏的错误的数目,一个重要的质量指标

    MTTR:平均维修时间是修复一个故障平均需要用的时间,取决于维护人员的技术水平和对系统的熟悉程度,也和系统的可维护性有重要关系

    软件的可用性:软件可用性是程序在给定的时间点,按照规格说明书的规定,成功的运行的概率

    软件可靠性:是程序在给定的时间间隔内按照规格说明书的规定成功的运行的概率

    调试:也称为纠错,作为成功测试的后果出现,也就是说调试在测试发现错误之后排除错误的过程

    等价划分:等价划分是一种黑盒测试技术,这种技术把程序的输入页划分成若干个数据类,据此导出测试用例

    循环测试:是一种白盒测试技术,他专注于测试循环结构的有效性

    条件测试:用条件测试技术设计出的测试用例,能够检查程序模块中包含的逻辑条件,目的不仅是检测程序条件中的错误,而且是检测程序中的其他错误

    基本路径测试:一种白盒测试技术,使用这种技术设计测试用例时,首先,计算程序的环形复杂度,并用该复杂度为指南定义执行路径的基本集合,从该基本结合导出的测试用例,可以保证程序中的每条语句至少执行一次,而且每个条件在执行时都分别取真假两种值

    路径覆盖:选取足够多测试用列式程序的,每条可能路径都至少执行一次,如果程序图中有环,则要求每个环至少经过一次

    条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到可能的结果

    语句覆盖:为了暴露程序中的错误,至少每个语句应该执行一次语句覆盖的含义是选择足够多的测试数据,使被测程序中,每个语句至少执行一次

    Bata测试:有软件的最终用户们在一个或多个客户场所进行

    Alpha测试:有用户在开发者的场所进行,并且在开发者对用户的指导下进行的测试

    回归测试:就是用于保证由于调试或其他原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动

    展开全文
  • 1.简述软件可维护性决定因素。 ·可理解性:表现为外来读者理解软件结构、功能、接口和内部处理过程难易程度。 ·可测试性:诊断和测试容易程度取决于软件容易理解程度。对程序模块来说,可以用程序...

    1.简述软件可维护性决定因素。

         ·可理解性:表现为外来读者理解软件的结构、功能、接口和内部处理过程的难易程度。

         ·可测试性:诊断和测试的容易程度取决于软件容易理解的程度。对程序模块来说,可以用程序复杂度来度量。

         ·可修改性:软件容易修改的程度和设计原理、启发规则直接有关。耦合、内聚、信息隐藏、局部化、控制域和作用域的关系等都有影响。

         ·可移植性:指把程序从一种计算环境(硬件配置和操作系统)转移到另一种计算环境的难易程度。

         ·可重用性:所谓重用是指同一事物不做修改或稍加改动就在不同环境中多次重复使用。大量使用可重用的软件构件因其可靠性高、易应用于新环境而可提升软件可维护性。

    2.什么是软件可维护性?常见的软件维护活动可分为那几类?

         1)可定性地定义为:维护人员理解、改正、改动或改进这个软件的难易程度。提高可维护性是支配软件工程方法学所有步骤的关键目标。

         2)通常包括4类活动:为了纠正在使用过程中暴露出来的错误而进行的改正性维护;为了适应外部环境的变化而进行的适应性维护;为了改进原有的软件而进行的完善性维护;为了改进将来的可维护性和可靠性而进行的预防性维护。

    3.分析预测机票预订系统(见Chapter2 Q3)交付使用以后,用户可能提出哪些改进或扩充功能的要求。如果由自己来开发这些系统,在设计和实现时将采取哪些措施,以方便将来的修改?

         1)可能提出:①列出备选项自选航班;②取票通知和账单合并;③取票时间改为起飞前两小时;④增加退票、改签功能。

         2)措施:①做到模块化,使功能尽可能独立;②留出适当接口以便增加功能;③完善开发文档;④规范开发过程,命名语义化。


                   初学者手写作业,对问题叙述较为简单浅显,仅作为学习过程记录。

                   欢迎指正与讨论!

    展开全文
  • 您脑子里可能会闪出一堆: 功能,界面,运行速度,安全性,扩展性, 可维护性,操作性……人者见人,智者见智,每个人对软件理解不一样,答案自然也不尽相同,也正是由于对软件理解这种不同,使得我们在实现过程中有所偏重...

    如果有人问您: 您认为影响一个软件品质的因素有哪些? 您脑子里可能会闪出一堆: 功能, 界面, 运行速度, 安全性, 扩展性, 可维护性, 操作性……人者见人, 智者见智, 每个人对软件理解不一样, 答案自然也不尽相同, 也正是由于对软件理解的这种不同, 使得我们在实现过程中有所偏重的部分, 也有所淡化的部分. 偏重那些我们认为对软件品质影响较大因素,而淡化那些他认为较为次要的因素, 并且被淡化的那些因素不是作者认为它对于软件没有影响, 而是有限的人月不可能照顾到软件的方方面面, 既然有所保留, 自然会有所放弃.

    答案的不同会因人因物而不同. 一个对安全性特别嗜好的产品经理可能会使手下所有的员工都重视软件安全, 一个对界面有特别兴趣的项目经理可能让员工用更多的精力在软件的首页(主界面)上;另一方面一个银行系统可能对安全性要求特别高, 而一个点歌系统可能对易操作性或者界面要求比较高.

    但是如果大家仔细观察会发现一个有趣的现象: 无论任何系统对于运行速度的要求都是只增不减的. 而且有一种迹象: 随着生活节奏加快, 各个行业对于软件的运行速度的要求只会更高. 有一个很有趣的现象可以作为这种说法的佐证: 网页上一个链接如果打开超过2秒会有人抱怨它很慢, 如果超过5秒则会直接取消链接操作;但是那个网页如果是必须要打开的, 超过5秒还没有进入时很多时候会我们会强制刷新, 刷新后如果又超过5秒则会直接关闭浏览器然后重启. 我们可以允许自己等女朋友2个小时, 但绝不允许一个网页使自己等待5秒. 

    其实这是一种极普遍的现象, 现代社会生活节奏加快, 人们对于速度的要求越来苛刻, 有人统计过: 一般中午我们在餐馆等菜超过5分钟时便会提醒服务员快点, 而如果超过10分钟会起身催促老板, 时间再长会出现提高嗓门叫喊的, 有不吃骂着脏话闪人的

    你可以想象这样一些场景会有多么折磨人: 火车票售票系统对于售票员的每一个操作反应超过0.5秒; 操作系统对于每一个文件夹的打开超过1秒; 打开一个网页超过2秒; 登录一个系统超过10秒; 连接数据库超过45秒; 加载一张地图超过1分种……当然如果您每次启动您的爱机超过2分种您肯定会先抽根烟一边解解心中的郁闷一边看着那个进度条在那不停地无限循环着转.

    如果你了解Oracle 的体系结构, 会发现它始终围绕着一条主线在开发 : 那就是 处理数据的速度. 速度就是Oracle 体系结构的一根筋. 无论从存储结构上分析还是从软件结构上分析, Oracle几乎一直在达到一个目的: 提高处理数据的速度!  以软件结构中的内存结构为例说明 Oracle是如何把它当作命根的, 我们知道一个软件程序, 必须先要在内存中为其指令代码和缓存数据申请, 划分出一个区域, 再将其从磁盘上读入, 放置到内存, 然后才能执行. 对此, Oracle 的作法是 : 将内存分为二个区, 一个SGA (System Global Area, 系统全局区), 一个 PGA (Program Global Area, 程序全局区). 其中SGA为所有用户共享, 然后他的做法是 当访问的数据只在数据文件中时, Oracle 将读取磁盘上的数据文件, 然后将其放入数据高速缓存中, 再对数据进行处理, 如果被访问的数据已经位于数据高速缓存中时, Oracle 将直接使用数据高速缓存中的数据, 而不必再读取磁盘中的数据文件了, 由于读取内存的速度比读取磁盘快很多倍, 所以这种机制能提高数据库的整体效率. 同样的道理,  Oracle 在写日志时并不将重做记录信息直接写入磁盘的重做日志文件中, 而是首先被写入重做日志高速缓存, 当重做日志高速缓存中的重做记录达到一定数量后, 再由日志写进程将其写入重做日志文件中. 

    这只是 Oracle 提高处理数据速度而使用的技术中的冰山一角, 其实 Oracle 的每一步操作总是 先内存后磁盘 的, 这样设计的原由可能大家现在都已心知肚明.

    ……

    而在我们平时的编程中, 有很多并不合理的现象存在. 有人总喜欢把所有的 SQL都写在前台, 宁愿把服务器累死也不写一个存储过程;一堆一堆的网站开发人员开发了大半辈子的网站却从没用过任何缓存技术;总有一些人借着实现 ajax 技术而将所有的功能代码都用 javascript实现. 我见过最厉害的程序员可以一次性把表中所有的数据全部读取然后只用其中一条

    …….

    影响软件品质的各种因素的要求都在慢慢发生着变化: 界面要求简单而大方, 功能要求精简而强大, 操作要求简易而不繁琐唯独对于运行速度的要求, 没有最高, 只有更高! 可以说影响软件品质的因素的重要性正在 内化客户都希望自己拿到的软件使用起来 “很舒服至少不能折磨人! 用户不希望自己被软件的速度超慢而气的得肺炎, 不愿意因为软件速度的原因砸他的鼠标, 敲他的桌子, 摔他的书;用户可以允许软件稍微难看一点, 但绝不允许它慢一丁点, 所有的用户这个时候都是 急性子容不得半点等待. Google 懂这个道理,  Oracle 懂这个道理, 微软也早就明白这个道理……俗话话的好, 长的难看不是你的错, 但出来折磨人就是你的不对了! 

    每个人都有自己对软件的理解, 当他需要实现一个软件时在他便会在心里告诉自己首先应该解决什么问题. 这里并没有否认其他因素重要性的意思, 只是认为运行速度要求对于软件开发来讲已经上升到主要位置, 已经成为影响软件品质的最重要的因素. 同时也提醒大家在软件开发需要更多的考虑速度问题, 考虑用户的感受, 做到真正的 人性化服务如果您还不明白这个道理: 您可以稍微回想一下每当您自己碰到一个运行速度十分不理想的操作时您当时的感受是什么?  您当时是不是有说脏话的冲动?

    如果筋断了, 再漂亮的肌肉也会很快成为一堆烂肉--因为它不可用.

    转载于:https://www.cnblogs.com/ziyiFly/archive/2008/09/18/1293009.html

    展开全文
  • 文档

    2017-03-10 15:51:56
    文档是影响软件可维护性的决定因素。由于长期使用的大型软件系统在使用过程中必然会经受多次修改,所以文档比程序代码更重要。 软件文档应该满足下述要求: (1) 必须描述如何使用这个系统,没有这种描述时即使是...
  • 测试因素都可能会影响软件的质量,这些都由很多成员共同决定,不能仅仅靠编程人 员,也不能仅仅靠测试成员。在软件开发过程中,编程人员要好好了解用户需求分析, 不要编着编着突然发现不符合用户需求...
  • 软件工程-程序编码

    热门讨论 2018-01-27 19:43:02
    有许多因素制约和影响着软件质量和可维护性。 语言选择 1、应用领域不同决定选择语言 2、系统用户要求决定,用户使用他们熟悉语言 3、可以使用编译程序 4、程序员经验和知识 5、软件可移植性...
  • 软件工程知识点

    2012-12-02 21:34:25
    (1)危机现象:软件开发成本与进度估计不准确,软件产品与用户要求不一致,软件产品质量可靠性差,软件文档不完整不一致,软件产品可维护性差,软件生产率低。 (2)危机原因:软件的不可见性,系统规模庞大,生产...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    软件投入生产运行以后需要的维护工作并不多,而且维护是一件很容易做简单工作” 软件危机解决 解决途径 组织管理 工程项目管理方法 技术措施 软件开发技术与方法 软件工具 软件工程概念 软件工程概念 ...
  •  如可使用性、安全保密、可维护性、可移植性等。 概要设计说明书 1 引言 1.1 写目的:阐明编写概要设计说明书目的,指明读者对象。 1.2 项目背景:应包括  ● 项目委托单位、开发单位和主管部门  ● 该...
  • 图书管理系统可行分析报告

    热门讨论 2010-04-05 21:20:42
     (三) 决定可行性的主要因素:  图书馆规模、设备状况、操作人员技术  三、对现有系统的分析  (一) 处理流程和数据流程 (略)  (二)工作负荷  由于数据量越来越大,现有的系统已明显不能适应目前的...
  • 帮助同步工作成果/使项目团队外的人员也能看到项目进展情况和质量情况/在项目进行中纠正偏差/着重于评审项目目标和交付成果 /增加阶段性的审批环节,只有在审核通过后,才进入下一个阶段 28、MSF的基本要素——两...
  • 方法采用会直接影响系统性能,影响系统可用性和可维护性。  人是GIS系统能动部分。人员技术水平和组织管理能力是决定系统建设成败重要因素。系统人员按不同分工有项目经理、项目开发人员、项目数据人员...
  • kcp-go: 高安全性的kcp的 GO语言实现,包含 UDP会话管理的简单实现,可以作为后续开发的基础库。 kcp-csharp: kcp的 csharp移植,同时包含一份回话管理,可以连接上面kcp-go的服务端。 kcp-csharp: 新版本 Kcp的 ...
  • 系统,和汇编相比,C 在功能上、结构性、可读性、可维护性上有明显优 势,因而易学易用。 Keil c51 软件提供丰富库函数和功能强大集成开发调试工具,全 Windows 界面。另外重要一点,只要看一下编译后生成...
  • W3C 万维网联盟,创建于1994年,是Web技术领域最具权威和影响国际中立技术标准机构。主要工作是发展 Web 规范,这些规范描述了 Web 通信协议(比如 HTML 和 XHTML)和其他构建模块。 NativeApp 使用...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    C语言有功能丰富库函数、运算速度快、编译效率高、有良好的可移植,而且可以直接实现对系统硬件控制。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用由顶向下结构化程序设计技术。此外,...
  • 式效果包括它对系统的灵活性、扩充性或移植性的影响,显式地列出这些效果对理解和评价这些 模式很有帮助。出发点的不同会产生对什么是模式和什么不是模式的理解不同。一个人的模式对另 一个人来说可能只是基本构造...
  • windowsnt 技术内幕

    2014-04-09 20:47:17
    理解在RISC结构上的Windows NT引导过程 理解Windows NT装载过程 介绍Windows NT装载阶段的“服务错误级别” 编辑Boot.ini文件 理解一般性的引导错误 丢失引导文件的后果 利用Expand.exe恢复丢失的或损坏的引导文件 ...
  • 7.3 多版本控制读一致性的含义 229 7.3.1 一种会失败的常用数据仓库技术 229 7.3.2 解释热表上超出期望的I/O 230 7.4 写一致性 233 7.4.1 一致读和当前读 233 7.4.2 查看重启动 235 7.4.3 为什么重启动对我们...
  • 网上购物系统

    2012-12-18 17:53:18
    在我购物篮中操作事件为: 最新网上购物系统 ◇     最新网上购物系统 确认更改:在数量项目文本框中可以更改数目,该事件是用以更新购物篮中最新网上购物系统 商品数量; ◇ &...
  • eas供应链dep案例集

    2017-11-18 22:32:39
    由于存在个别物料没有报价因素的影响不好选择,现客户要求针对这种没有报价物料利用特别醒目颜色予以显示,以便让客户及时快速予以判断。 比价单中对单价为0或者为空行用红色背景色表示 0.2 单据操作控制...
  • 在文件最后加入Nand Flash初始化函数,该函数在后面Nand Flash操作都要用到。 u-boot运行到第2阶段会进入start_armboot()函数。其中nand_init()函数是对nand flash最 初初始化函数。nand_init()函数在两个...
  • 7.3 多版本读一致性的含义 240 7.3.1 一种会失败的常用数据仓库技术 240 7.3.2 解释热表上超出期望的I/O 241 7.4 写一致性 244 7.4.1 一致读和当前读 244 7.4.2 查看重启动 247 7.4.3 为什么重启动对我们很...

空空如也

空空如也

1 2
收藏数 27
精华内容 10
关键字:

影响软件可维护性的决定因素