软件工程半开卷总结_软件工程重点总结

其他工作总结 时间:2020-02-27 08:04:32 收藏本文下载本文
【www.daodoc.com - 其他工作总结】

软件工程半开卷总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“软件工程重点总结”。

软件工程导论

1:软件的定义:计算机程序,方法,规则和相关的文档资料以及在计算机上运行时所必须的数据。

通俗的解释:软件=程序+数据+文档资料。程序是完成特定功能和满足性能要求的指令序列;数据是程序运行的基础和操作的对象;文档时与程序开发,维护和使用有关的图文材料。

2:软件危机:1软件的开发费用和进度难以控制;2开发出来的软件不能满足用户的要求;3软件的可维护性差;4软件的质量差。

3:软件的特点: 1软件是一种逻辑实体,而不是具体的物理实体;2软件的生产与硬件不同,没有明显的制造过程;3软件在运行和使用期间,没有硬件那样的机械磨损,老化问题;4软件对硬件和环境有着不同成都的的依赖性,导致了软件的升级和移植问题;5复杂性越来越高;6成本相当昂贵。

4:解决软件危机的途径:人们认识到既要有技术措施(方法和工具),还要有必要的组织管理措施。一方面先进的开发方法和工具,不仅可以提高软件开发及维护的效率,也保证了软件的质量。另外由于软件开发活动不是简单的个体行为,严密的组织,夜歌的管理和各类人员的协调一致的工作,是必不可少的因素。按工程化的原则和方法组织软件开发工作是有效的,是摆脱软件危机的一个主要的出路。

5:软件开发模型:1瀑布模型:定义(也称传统的生命周期模型,将软件生存期的活动和人物规定为依线性顺序连接的若干阶段(缺点)改意见,那么整个软件项目将会蒙受巨大的人力,财力和时间方面的损失。)适用场合(适用于功能和性能需求明确的软件项目的开发和维护,如编译系统,数据库管理系统和操作系统等)优点(提供了软件开发的基本框架,这比依靠“个人技艺”开发软件好的多,它有利于大型软件开发过程中人员的组织,管理,有利于软件开发方法和工具的研究和使用,从而提高了大型软件项目开发的质量和效率。)缺点(1.在软件开发的初始阶段指明软件系统的全部需求是困难的,有时甚至是不现实的,而瀑布模型在需求分析阶段要求客户和系统分析员必须要做到这一点才能开展后续阶段的工作。2.需求确定后,用户和软件项目负责人要等相当长的时间才能得到一份软件的最初版本,如果用户对这个软件提出比较大的修。)2原型模型(演化模型):定义:(是指第一步是建造一个快速原型,实现客户或未来的用户和系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。)使用场合(针对在软件开发初期在确定软件系统需求方面存在的困难)优点(可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。(意义)满足客户的要求,开发人员可以确定客户的真正的需求是什么,第二步则在第一步的基础上开发客户满意的软件产品)缺点(不宜利用原型模型作为最终产品,除少数简单的事务系统外,大多数原型可能都会废弃不用,仅把建立原型的过程当作帮助定义软件需求的一种手段。由此,原型模型的“快速”特点对最终系统是不适用的,且对最终产品像原型一样快速修改可能会比较困难)3螺旋模型:定义(将瀑布模型和原型模型结合起来,强调了其他模型所忽视的风险分析,螺旋模型沿着螺线进行若干次迭代,螺旋模型中每一圈对应一个阶段。(缺点)模较小的项目利用螺旋模型开发会导致成本过大)适用场合(适用于大型软件的开发)优点(既保持了传统生命周期模型中系统的阶段性方法,又将迭代演化思想吸收到模型中,维护和开发之间没有什么本质的差别,维护只是另一个螺旋循环开始而已,且支持对已有软件的复用,并能把软件质量作为特定的目标结合在其中)缺点(螺旋模型是风险驱动的,这对该模型的使用带来了一些限制:首先,要求软件开发人员擅长风险分析,否则真正的风险是:重大风险没有被开发人员识别,使其造成重大损失,风险分析也使得这种模型不适合签合同的软件开发,因为风险分析会导致项目终止,而终止合同会导致违约诉讼,另外,对于小项目,风险分析的成本可能与整个项目的成本相当。)4喷泉模型:定义(喷泉模型对软件复用和生存周期中多项开发活动的集成提供了支持,主要支持面向对象开发方法。)适用场合(喷泉模型以面向对象的软件开发方法为基础,以用户需求为动力,以。)优点(克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。使开发过程具有迭代性和无间隙性。)缺点(要求对文档的管理较为严格,审核的难度加大,尤其是面对可能随时加入的各种信息需求与资料对象作为驱动的模型。软件复用与生命周期多开发活动的集成。)

6软件工程的目标:1正确性:满足用户的需求 2可靠性:具有能够防止因设计,结构等方面的不完善而造成的系统失效,具有挽回因操作不当而造成软件系统失效的能力 3有效性:充分利用计算机的时间和空间资源 4:可维护性:便于软件增加新功能,改进性能,修改错误 5可重用性:软件(部分)易于被再次利用 6:可追踪性:对软件进行正向和反向追踪的能力 7:可移植性:从一个环境搬到另一个环境的难易程度 8:可互操作性:多个软件元素相互通讯,协同完成任务的能力

7软件工程的原则:1:抽象:关注事物基本,重要的部分,忽略不相关成分 2模块化:将复杂的系统分解为由多个相对独立的模块加以实现 3信息隐藏:将模块中的软件信息封装起来,外部只知道其功能和对外接口,而不知道其内部细节 4局部化:缩小软件元素的作用范围 5确定性:软件开发过程中所有概念的表达应是确定的,无歧义的,规范的 6一致性:整个软件系统和开发过程使用统一的符号,概念和术语 7完备性:软件完全实现系统所需的功能和性能 8可验证性:软件系统应易于检查,测试和评审

需求分析

1:需求的层次可分为4个:1业务需求:反应组织机构或客户对软件高层的目标要求2用户需求:是用户使用该软件要完成的任务3功能需求:定义了软件必须是实现的功能4非功能需求:对功能需求的补充。

2:需求分析基本思想: 自顶向下,逐步求精 , 抽象/分解

3:需求分析原则:正确使用数据流图中的各个图形要素。每个数据流、数据源、外部实体在数据字典中均必须定义、数据流图中最底层的转换必须在小说明中说明,父图和子图之间必须保持平衡,即父图中某一转换的输入、输出数据流和分解这个转换的子图的输入、输出数据流必须完全一致,精化过程适可而止。

4:面向数据流分析方法运用抽象和分解的技术:顶级数据流图:待开发的软件系统被抽象描述为一个处理功能。自顶向下,功能分解:自顶向下、逐步求精;对每级数据流图中比较复杂的处理功能进行精化,生成下一级数据流图。再分解、精化过程中,将生成的数据流、数据存储、外部实体、数据字典中加以定义,对底层转换在小说明中进行描述(底层转化,不需要进一步精化和分解)

软件设计原理

1:软件总体设计主要是软件结构设计,而详细设计是软件过程设计。2:软件设计的模块化思想:1.模块化2.分解(抽象)3.信息隐藏与局部化4.模块独立性

3:软件设计准则:1划分模块时,应注意保持模块相对独立性,模块划分的准则是:将相关的各部分放在一起,而无关的东西不要放在一起。2:模块的大小要适中。模块过

大,说明分解不够,不易理解;模块过小,模块的数量增多,系统接口的复杂度增加。3模块的接口要简单,清晰,含义明确,便于理解,易于实现,测试和维护。4一个模块的作用范围应该再起控制范围之间,且判定所在的模块,应与受其影响的模块在层次上尽量靠近。5软件结构的深度,宽度,扇入,扇出数应当适当。6力求设计单入口和单出口,避免“病态连接”,以防止内容耦合。7设计功能可预测模块的模块,但应防止模块功能过分局限。

软件需求分析与软件设计之间的关系:通过信息描述、功能描述、行为描述、以及其他软件需求规格说明,从而开始总体结构设计,过程设计,数据设计,完成软件设计规格说明书,在进行编码。

软件设计的构成:概要设计,过程设计,数据设计,设计评审

两种设计思路:1.“由底向上”设计:从一个局部开始,逐渐扩展到整个系统的设计方法;2.“自顶向下,逐步求精”的设计:从顶层开始逐层向下分解,直至系统的所有模块都小到易于掌握为止。

自顶向下的设计:易于修改和扩展,整体测试较易通过,需要进行详细的可行性论证 由底向上的设计:可能导致较大的重新设计,整体测试中可能在模块接口间发现不一致,如果在可行性上出现问题,可以较早发现。

软件设计的构成:管理观点:概要设计,详细设计 技术观点:数据设计,系统结构设计,过程设计,设计评审

界面设计

1:基于以用户为中心的设计理念,界面设计的原则:1以理解性:界面上呈现的元素更贴近用户的业务领域,并且具有简洁,自然,直观等特性。界面中屏幕之间的跳转关系简单,自然。2易操作性:对软件系统的命令可以通过简单,直观的方式来完成;界面应减少用户的操作次数和输入信息量。3灵敏性:界面必须在合理的时间内对用户操作做出反应,对耗时较长的内部处理过程必须提供及时的进度反馈,保持用户与界面不间断的双向沟通。4一致性:界面应在整个软件系统范围内保持现实==显示风格,操作方式的一致性并符合业界规范。5容错性:要容忍用户的误操作,对于所有可能造成损害的额动作,必须在用户确定之后才进行;允许永和对尽可能多的界面操作反悔;在用户误操作后系统具备适当的回复能力。6人性化:在适当的时候出现用户恰好需要的帮助信息或建议,界面的布局和色彩应使用户感觉舒适,自然。

2:界面设计的风格:1语言界面:分为形式语言,自然语言,类自然语言。2图形用户界面:是当前用户界面的主流,广泛应用于各档台式微机和图形工作站。3直接操纵用户界面:更多的借物理的。空间的或者形象的表示,而不是单纯的文字或者数字的表示。对于大量的物理的,几何空间的以及形象的任务,直接操纵已表现出巨大的优越性,然而在抽象的,复杂的应用中,直接操纵用户界面可能会表现出其局限性。4多媒体用户界面:被认为是在智能用户界面和自然交互技术取得突破之前的一种过渡技术。多媒体用户界面丰富了信息的表现形式,但基本上限于信息的存储和传输方面,并没有理解媒体信息的含义,这是其不足的地方,从而也限制了它的应用场合。5多通道用户界面:综合采用视线,语音,收拾等新的交互通道,设备和交互技术,是用户利用多个通道以自然,并行,协作的方式进行人机对话,通过整合来自多个通道的精确地和不精确的输入来捕捉用户的交互意图,提高人际交互的自然性和高效性。

3:UI特征:可使用性,灵活性,复杂性和可靠性(可使用性:使用简单,术语的标准化,一致化,help,能快速响应,有容错能力;灵活性:能满足不同层次的用户,提供不同详细程度的响应信息,定制、修改菜单的方式)

程序设计

1:编码风格:1节俭化:避免程序中不必要的动作和变量;避免变量名的重载;减少程序的体积;减少程序的运行时间,提高执行速度;避免模块冗余好重复;检查全局变量的副作用。2模块化:把代码划分为内聚度高,富有意义的功能块,通常把长且复杂的程序段或者子程序分解为小且定义良好的程序段;确保物理和逻辑功能密切相关;限定一个模块完成一个独立的功能;检查代码的重复率。3简单化:采用简单和直截了当的算法;使用简单的数据结构,避免使用多维数组,指针和复杂的表;注意对象命名的一致性;以手工方式简化算数和逻辑表达式。4结构化:按标准化的次序说明数据;坚持统一的缩进规则;值编制单入口,单出口的代码;根据应用背景排列程序个部分。5:文档化:有效,适当的使用注释,保证注释有意义,说明性强;使用含义鲜明的变量名;协调使用程序段注释和程序行注释;始终坚持编制文档。6格式化:尽量使程序布局合理,清晰,明了;有效的使用编程空间(水平和垂直两个方向),以助于读者理解;适当插入括号,使表达式得运算次序清晰直观,排除二义性;有效的使用空格符以区分程序的不同部分,提高程序的可读性。

2:程序设计语言分为低级语言和高级语言。低级语言又分为机器语言和汇编语言,高级语言分为传统高级语言和超高级语言。

3:程序设计语言的选择:1从用户方面考虑:如果所开发系统的维护工作是由用户自己来完成,那么需要根据与用户的要求,选择一种即有利于系统功能实现,又是用户所熟悉的程序设计语言。2从程序员方面考虑:如果和其他标准不矛盾,应该选择一种程序员熟悉的语言来进行程序设计,像对来说,熟悉的语言可以提高开发效率并减少错误的发生。3软件的可移植性要求:如果目标系统将在不同的计算机环境下运行,或者与其的使用寿命很长,则需要选择一种标准化程度高,并且程序的可移植性好的语言实现设计。4应用领域:看软件的应用领域,不同的语言又不同的适用范围,合适的程序设计语言所提供的编程环境有利于程序员实现功能,在一定程度上简化编程,且有利于后期的测试和维护工作。

测试

1软件测试的原则:是一个持续进行的过程,而不是一个阶段;测试一定

有计划,受控制,并提供足够的时间和资源;应该分优先级;应当有重点;不是为了证明程序的正确性,而是为了证明写程序不能工作;不可能是穷尽的,当测试充分性安祖是就可以停止测试了;不能仅仅包括功能性验证,还应当包括性能,可靠性,可维护性和安全性等方面的验证。

简述软件测试的步骤:答:单元测试—>集成测试—>确认测试—>系统测试 单元测试:单元测试针对程序模块,进行正确性检验的测试

集成测试:组装测试是指单元测基础上,将所有模块按照设计要求组装成一个完整系统进行测试。

确认测试:确认测试是指检查软的功能与性能是否与需要规格说明书中确定的指标相符合,又称有效性测试。

系统测试:将软件系统与其他部分集成后测试

单元测试对应编程,集成测试对应软件设计,确认测试对应需求分析。

在文档上:单元测试对应源程序代码和详细设计说明书;集成测试对应详细设计说明书和概要设计说明书;确认测试对应概要设计说明书和需求分析说明书

维护

1:软件维护的原因也是分类:1纠错性维护(纠正软件中的错误):为了

诊断和改正软件系统中潜藏的缺陷而进行的活动。2适应性维护(对软件进行改造以适应新的环境和平台):适应软件运行环境变化,如操作系统变更,硬件更新,而修改软件的活动。3完善性维护(对软件进行改造以增加新的功能,修改已有的功能):根据用户在软件使用过程中提出的一些新需求而实施的维护活动。4预防性维护(对软件进行修改以防止未来发生错误,或者提高软件的可靠性和可维护性):优化软件系统结构和可理解性,改善可维护性和可靠性。

2:软件维护的过程:1维护申请报告:软件维护组织通常为用户提供维护申请报告,用户应根据报告的格式和要求进行填写,内容尽量详细和准确。然后,由维护管理员和系统管理员评价用户提交的维护申请报告,确定其可行性。维护申请报告是由软件组织的外部提交的文档,它是计划维护工作的基础。2维护工作实施:①软件维护工作流程:由软件维护工作人员和用户进行协商,确定软件维护的要求,具体到每一项维护工作的类型,修改的详细方案,修改的进度,达到的效果及最后的审核工作。②源程序修改流程:㈠分析和理解程序㈡设计程序修改计划㈢按照制定的计划修改代码㈣修改程序的副作用㈤重新验证程序。3维护文档整理:在软件维护活动进行的同时,需要记录一些与维护工作有关的数据信息,这些信息科作为估计软件维护的有效程度,确定软件产品的质量,确定维护得到实际开销等工作的原始数据。3维护活动评价:软件维护的最后一项工作是对整个维护活动进行评估,以来前面的维护文档记录,对维护工作做一些度量。

3:影响可维护性的因素:1可理解性:表现在人们通过阅读源程序代码和相关文档,了解程序的结构,功能及使用的容易程度,一个可理解性好的程序应具有以下一些特征:编程环境(选择高级程序设计语言);模块化(模块结构良好,功能独立);编程风格(使用有意义的数据名和过程名,语句间层次关系清晰);文档说明(必要的注释,详细的设计文档和程序内部的文档)。2可测试性:软件的可测试性取决于验证程序正确性的容易程度。3可修改性:是指修改程序的难易程度。应该采用模块化的程序设计,模块的逻辑结构清晰,控制结构不要过于复杂,嵌套结构的层次也不要过深,且模块具有低耦合,高内聚的特点,都有助于对程序进行修改,且相对较少的引入新的错误。4可靠性:可靠性越好,这样有助于减少修改软件而出现更多的错误,有利于维护工作的进行。5可移植性:应该结构良好,设计灵活,不依赖或较少依赖于某一具体计算机或操作系统的性能,对程序进行局部修改就可运行于新的计算机环境中。6可重用性:软件系统中使用的可重用构件越多,软件的可靠性越好,改正性维护的需求越少,完善性和适应性维护越容易。7执行效率:编程时,不能一味的追求高的效率,有时需要牺牲部分的执行效率而提高程序的其他特性。

4:提高可维护性的方法:1建立明确的软件质量和优先级:每一种质量特性的相对重要性应随程序的用途及计算环境的不同而不同;应当对程序的质量特性,在提出目标的同时还必须规定他们的优先级。2使用提高软件质量的技术和工具:模块化;结构化程序设计;使用结构化程序设计技术,提高现有程序的可维护性。3选择可维护的程序设计语言:选择程序设计语言,首先需要考虑的事软件设计的特性,然后选择处理这方面应用较强的语言实现。例如,FORTRAN元以内特别适合于工程和科学计算方面的额应用;C语言适合于系统设计和实时应用领域;COBOL语言适合于商业领域的应用等。要充分考虑目标系统的应用范围。4改进程序的文档:程序文档是对程序总目标是对程序总目标,程序各组成部分之间的关系,程序设计策略,程序实现过程的历史数据等的说明和补充;利用历史文档进行维护;历史文档有(系统开发日志,错误记载,系统维护日志)。5进行明确的质量保证审查:审查可以检测在开发和维护阶段内发生的质量变化。

5:维护的副作用:由于维护或者在维护过程中其它一些不恰当的行为而引入新的错误分三种:1代码副作用;如修改或者删除程序等引入新的错误,可通过回归测试发现代码副作用。2数据副作用:因修改信息结构而带来的不良后果。3文档副作用:由于在分析、设计文档中未能准确反应软件的修改情况而带来的不良后果。

OO

1:面向对象=对象+类+继承+聚合+多态+消息

定义:一种是用对象(它将属性和操作封装在一起),消息传递,类,继承,多态等来开发问题论域模型的解的范围;一种基于对象,类,实例,继承等概念的技术;用对象作为建模的基本单位。

2:面向对象方法的优点:1提供对象、方法和消息,使问题空间到解空间的变换非常直观、合理消解“语义断层”。2提供了抽象数据类型(类)、很自然、方便地遵循设计的重要原则——抽象、模块化、信息隐藏。3OO方法被公认为具有发展潜力,其优越性在越来越多的软件开发实践中得到证实。

3:OO如何体现经典软件工程基本原理:1.模块化(面向对象开发方法把系统分解成模块:对象就是模块。它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块)。2.抽象(不仅支持过程抽象,而且支持数据抽象)。3.信息隐藏(信息隐藏通过对象的封装性来实现)。4.低耦合(在面向对象方法中,对象是最基本的模块,因此,耦合主要指不同对象之间相互关联的紧密程度。低耦合是设计的一个重要标准,因为这有助于使得系统中某一部分的变化对其它部分的影响降到最低程度)。5.高内聚(a操作内聚b类内聚c一般——具体内聚)

4.结构化程序设计技术的好处:1成功率和生产率显着提高。2清晰的层次结构、易阅读和理解。3程序静态结构和它的动态执行情况一致,带来很多好处。4控制结构有确定的逻辑模式,编写程序代码只限于使用很少几种直截了当的方式,易读懂易测试。5模块化后,软件可重用的代码量增大。6程序逻辑结构清晰,有利于软件程序正确性证明。缺点:内存和运行时间有所增加。

UML 十种视图,分为四类:用例图,静态图,行为图,实现图

用例图:从外部用户的角度描述系统的功能,并能指出功能的执行者;静态图:包括类图,对象图和包图;行为图:包括交互图(顺序图与协议图)、状态图与活动图,它们从不同的侧面刻画系统的动态行为;实现图:包括构件图与部署图,它们描述软件实现系统的组成与分布状况。

思考题:1.你认为软件开发有什么特点? 面临的主要问题是什么?答:特点:软件生产的自动化不高。软件生产成本不易控制。软件的质量难以保证。问题:1.软件开发是高风险、高投入的项目2.开发时间长、成本高3.无法证明正确性4.维护代价高5.开发、维护难于度量 6.很难按时交付使用

2.软件开发模型和软件生命周期有何区别?答:软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期(软件生命周期)。

3.软件开发模型在软件开发过程中有什么作用? 答:软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。所以没有它是不行的。

4.CASE工具和环境在软件开发过程中有什么作用?答:CASE工具和环境有利于软件开发过程的快速进展,提高开发效率。

5如果你是一名软件项目经理,你如何组织和开展需求分析工作(包括人员组织、方法和技术的采用、结果的评审等)?答:首先要对人力资源进行分析,然后通

过这些人力资源对目标、资源、环境等方面需求分析

6认真理解各种需求分析技术,分析各种技术的特点以及在需求分析阶段的作用。答:1功能分解法:将一个系统看成由若干功能构成的集合,每个功能又分成若干个子功能,子功能还可进一步分解。此技术在需求分析阶段就已涉及到软件的设计。2信息建模法:从现实世界中找出实体,然后用属性描述。其数据不封闭。3面向对象的分析法:采用类结构,数据封装和继承等面向对象程序设计语言中的概念,使建模过程更加自然可靠。4结构化分析法:由数据流图和数据字典构成,适用于数据处理领域问题,不太注重数据结构。

7.面向数据流的需求分析方法能否自然、清晰、有效地获取和刻划

用户需求? 为什么?答:其优点在于简单实用,易为开发者掌握,在成功率方面仅次

于面向对象的方法,特别适用于数据处理领域中的应用,对其他领域中的应用也基本适用。但对规模很大,特别复杂的项目不太适用,难以适应需求的变化。

8.面向

数据流的需求分析方法是如何体现抽象、问题分解、建模等需求分析技术的?

答:1信息流的类型2划定流界3将DFD映射为程序结构4提取层次控制结构5通过设计复审和使用启发策略进一步精化模型结构

10为什么软件结构设计的好坏直接影响软件的质量?答:创建一个软件系统与其它需要耗费人力与财

力的工程是一样的。如果你要造一幢房子,在开始砌第一块砖之前,你必须事先画好建筑图与蓝图。在你开始浇铸水泥之前,你必须让人评审你的蓝图并获得通过,在软件开发中事先做计划也与此类似。

11你认为一个好的软件结构应具备那些

特征? 如何得到具有这些特征的软件系统?

答:特征:模块化,抽象,逐步求

精,信息隐藏与局部化,模块独立(高内聚、低耦合)如何得到:

1、改进软件结构提高模块独立性。

2、模块规模应该适中。

3、深度,宽度,扇出和扇入都应适当。深度表示软件结构中控制的层数,它往往能够粗略的标志一个系统的大小和复杂程度。宽度是软件结构在同一层次上的模块总数的最大值。一般来说,宽度越大系统就越复杂。扇出是指一个模块直接调用的模块的数目,经验表明,一个设计的好的典型系统的平均扇出通常是3或4个,太多或太少都不好。扇入是指一个模块被别的多少个模块直接调用。扇入越大越好。

4、模块的作用域应该在控制域之内

5、力争降低模块接口的复杂程度

6、设计单入口单出口的模块

7、模块功能应该可以预测。12.结构化软件设计过程是如何体现“自顶向下、逐步求精”的思想的?答:数据流图的逐步分层(顶层,一层,二层。。)可以体现“自顶向下,逐步求精”的思想。

3行软件设你觉得在进计时,除了介绍的启发式设计策略和优化原则之外,还应考虑哪些问题?答:考虑资源制约因素,良好地设计模型。

14人机界面设计对软件系统有何影响?答:UI即User Interface的简称。UI设计是指对软件的人机交互、操作逻辑、界面美观的整体设计。好的UI设计不仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由,充分体现软件的定位和特点。其实UI就像工业产品中的工业造型设计一样,是产品的重要卖点。一个电子产品拥有美观的界面会给人带来舒适的视觉享受,拉近人与商品的距离,是建立在科学性之上的艺术设计。

15.Windows OS及Office软件是如何体现UI实现的一般原则的?答:UI实现的一般原则:数据输入界面:(1)数据输入的一般规则(输入确认、对所有可能造成损害的动作,坚持要求确认、在确认的默认值,按键上的考虑、明确取消、提供恢复、隐藏当前不可用的命令、及时反馈和提示、提供上下文帮助)(2)数据输入的方法(菜单、对话框、键盘输入、声音图像输入、条形码、光学字符识别)Window OS 具有输入确认,对可能造成损害的动作要求确认,如卸载电脑程序;按键上的考虑,如大部分常用操作都会有快捷键;提供恢复,如删除了某文件,还可以恢复;隐藏不可用的命令,如在左面单机右键是不可用的命令会灰度显示;具有反馈和提示。输入的方法有各种方式,如菜单、对话框等。Office 对可能造成的损害的动作要求确认,如未保存文档关闭程序时;提供命令快捷键;不可用的命令会用灰度表示;提供帮助;提供键盘、图像、菜单、字符输入。交互控制界面:对话框、菜单、功能键、图标、用窗口划分屏幕、命令语言Window OS 具有对话、菜单、功能快捷键、图标、命令语言、窗口划分屏幕等各种交互界面。Office 具有对话、菜单、功能快捷键、图标等交互界面。数据显示界面:(1)数据显示规则(合理划分显示屏、显示上下文相关信息、信息面向用户、通过颜色大小字体等强化重要数据、符合常规习惯、用报表图形表达更友好)(2)报表(3)图形Window OS可用图形、图标的形式显示。Office可通过颜色大小字体等强化重要数据、还可用报表、图形的形式显示。

16代码风格?为什么?答:使用标准的控制结构,尽可能使用库函数,首先应当考虑可读性,注意goto语句的使用等当程序很大时,要强调良好一致的风格,以便相互通信,减少因不协调而引起的问题。

17只要设计足够多的测试用例,软件测

试是否完全可以发现软件中的所有错误?答:这是错误的说法。要想完全发现软

件的中的错误时不可能的,在软件测试的方法有白盒测试和黑盒测试。白盒测试是测试人员利用程序内部的逻辑结构和有关信息,设计测试用例,对程序所有逻辑路径进行测试。黑盒测试是根据是否满足功能和性能要求,设计测试用例,对程序进行测试。可是要想用这两种方法去测试软件中的所有错误是不可能的,也是非常不现实的,其所花的时间和计算量是巨大的。所以设计足够多的用例去测试软件是不可能完全发现软件中的所有错误。我们能做到的只是设计一个好的测试方法,用足够多的测试用例去测试,然后尽可能的发现软件的错误。

18为什么软件维护在整个软件生命周期中占有重要的地位?答:在软件交付使用后,由于开发时测试的不彻底、不完全,必然会有一部分隐藏的错误被带到运行阶段来。这些隐藏下来的错误在某些特定的使用环境下就会暴露。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,所以要对其维护。

19列出良好界面设计应具有的特性,分析Microsoft Windows上的窗口、菜单、图标、对话框、警告等是否符合这些特性。答: 良好界面设计应具有的特性可使用性(使用简单;术语的标准化,一致化;Help;能快速响应;有容错能力): Windows均提供Help,使用简单,有容错能力等。灵活性(能满足不同层次用户;提供不同详细程度的响应信息;定制、修改菜单的方式): Windows上的开始菜单可以定制,修改,可为不同用户定义各自的桌面(工作环境)。可靠性(完成功能的前提下,尽可能简单;安全无故障): Windows可连续安全使用2-5天无故障(不宕机)。

下载软件工程半开卷总结word格式文档
下载软件工程半开卷总结.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文