国家开放大学软件设计与
开发者需要对遗留软件系统的实际情况进行评价,然后选择最合适的进化策略。简述对于不同的遗留软件,可选择的进化策略有哪些。
答案是:(1)完全放弃该软件。当系统所支持的业务对机构来说已经过时,或者说机构的业务根本不依赖于系统,可采用该策略。 (2)继续维护系统。当系统对机构业务仍然很重要,系统的运行也相对平稳,对系统的变更较少,且请求容易实现时,可以选择这种方案。 (3)通过软件工程技术转换系统(再工程)以提高系统的可维护性。对软件系统实施再工程以提高可维护性。当系统的质量、结构已经由于太多的变更变得很差,而且变更还会经常发生,则应该选择这个方案。 (4)开发一个新系统来代替遗留系统。当遗留系统由于变更或者运行环境的变化变得无法继续运行时,可以选择这个方案。同时,必须考虑开发新系统的成本和风险要在可以接受的范围内。
简述软件设计的发展与趋势。
答案是:(1)服务性:计算机软件技术的开发和发展主要是通过相关人员的操作完成的,要达到的目的是为了给人类提供最好的服务。以人为本的服务是计算机软件开发最基本的目的,是未来发展的趋势。 (2)开放化:从知识的角度来看,计算机技术属于高水平知识。长远发展眼光来看,只有保持信息以及软件的开放化,企业才能拥有更加全面的视野,取各行业之间的优势,弥补自身的不足,从而促进社会经济取得更深层次的发展。 (3)智能化和网络化:现阶段,大多数的计算机软件已经朝智能化发展,这代表着计算机软件开发技术在未来向智能化方向转化。在软件开发技术研究中,物联网就是主要的研究内容。
简述软件再工程的具体目标。
答案是:(1)为追加、增强功能做准备。软件再工程通过对原系统用新的设计思想加以重新实现。使今后能方便地对系统进行功能的追加和增强。 (2)提高可维护性。经过不断维护日趋复杂的系统.经过软件的再工程和再设计,其模块划分会更合理,接口定义更清晰,文档更齐全,从而更易维护。 (3)软件的移植。软件再工程将一些优秀软件移植到新硬件平台、操作系统或语言环境中,从而使它们能够利用新环境的新特性,更好地发挥作用。 (4)提高可靠性。软件的维护修改容易引起“波动效应”,即修改一处,波及多方。软件的再工程可较好地解决这一问题。
简述软件再工程的定义及突出特征。
答案是:(1)软件再工程是指通过对目标系统的检查和改造,其中包括设计恢复(库存目录分析)、再文档、逆向工程、程序和数据重构以及正向工程等一系列活动,旨在将逆向工程、重构和正向工程组合起来,将现存系统重新构造为新的形式,以开发出质量更高、维护性更好的软件。 (2)软件再工程有两个突出特征:一是比一次软件工程更迫切地需要计算机辅助支持,二是测试工作比例远大于一次软件工程。前者在再工程方法学研究和软件模式运动推动下可以找到自动化解决方案,后者则须强化对测试方法学体系的研究。
软件设计模式能够帮助软件设计者更快地完成面向对象的软件设计。请简述软件设计模式使用的方法与原则。
答案是:(1)首先理解所选择的模式。特别注意模式的适用条件和使用效果部分,确定该模式是否适合对此类问题的求解。 (2)研究模式的结构部分、参与者部分和协作部分。确保对这个模式的类、对象以及它们之间的关联关系有一定的了解。 (3)看代码示例部分。研究该模式代码形式的具体例子将有助于设计人员更好的理解和实现模式。 (4)选择模式参与者的名字,使它们在应用上下文中有意义。(5)定义类。声明它们之间的接口,建立它们的继承关系,定义代表数据和对象引用的实例变量。 (6)定义模式中专用于应用的操作名称。应用中的类、变量和对象的名称定义都会依赖于应用所涉及到的实体,对模式名称的定义也应该和实际中的具体操作相关联,要尽量和实际中的名字一致。 (7)实现执行模式中责任和协作的操作。实现部分提供线索指导人们进行实现。
软件设计模式能够帮助软件设计者更快地完成面向对象的软件设计。请简述软件设计模式选择的具体步骤。
答案是:人们在选择模式时可遵循以下步骤和原则。 (1)理解问题需求。问题的需求是进行模式选择的基础,通过对需求的分析可以找到多个模式,并将其形成相应的模式组。 (2)研究组内模式。需求分析得出的组内模式存在一些共同特性,但是不同的模式都有其独特的使用动机、意图和使用条件等等,因此对组内模式进行研究,研究模式之间的相互关联具有一定的实际意义。 (3)考虑设计模式是如何解决设计问题的。在系统的设计过程中会产生许多变化因素。为了支持这种变化,应明确设计模式在设计中支持哪些可变化因素,而这些可变因素是否会导致系统必须进行重新设计,基于此可找到所需的设计模式以尽量避免引起重新设计。
简述软件设计模式的应用对软件开发的重要作用。
答案是:(1)代码重用性。大部分模式都兼顾了系统的可重用性,这使得开发人员可以更好地重用一些已有的设计方案、功能模块甚至一个完整的软件系统,提高最佳设计实践的复用性。 (2)节约设计实践,提高设计效率。模式是众多专家从诸多优秀的软件系统中总结出的设计方案,使用这些设计方案能为开发人员提供设计思路,有助于开发人员提高开发和设计效率,帮助设计新手快速系统地学习专家的成功设计经验。 (3)可读性。模式为设计人员提供了一套统一的设计词汇,包括设计、管理和组织方面,同时也为设计人员提供了一个规范和描述抽象事物的标准,以便开发人员之间的沟通和交流。 (4)可扩展性。随着软件规模的日益增大,软件寿命逐渐延长,软件系统的可扩展性也越来越重要,许多模式将有助于提高系统的灵活性和可扩展性,让开发人员在不修改或者在现有系统的基础上根据实际情况增加、删除或者替换相应的功能模块。
简述启发式设计策略的主要经验。
答案是:(1)改造程序结构,减小耦合度,提高内聚度。 (2)改造程序结构,减少高扇出,在增加程序深度的前提下追求高扇入。 (3)改造程序结构,使任一模块的作用域在其控制域之内。 (4)改造程序结构,减少接口的复杂性和和冗余程度,提高协调性。 (5)模块功能应该可预言,避免对模块施加过多限制。 (6)改造程序结构,追求单入口单出口的模块。 (7)为满足设计或可移植性的要求,把某些软件用包的形式封装起来。
在面向对象的软件设计中,类设计的目的是对各种设计模型中出现的类进行细化设计,以使它们精细至能够直接提交给软件构造阶段进行编码实现。请简述类设计的主要任务。
答案是:(1)对类的属性与操作进行精化。 (2)对类的对象实例在其生存周期中对外部消息的响应和状态变化过程进行建模。 (3)对类中重要操作的实现过程成算法进行描述。
在创建用户需求的数据流模型的过程中,简要描述分析人员应遵循的原则。
答案是:(1)首先建立顶级数据流图,其中只含有一个代表目标软件系统整体处理功能的转换。 (2)对用户需求的文字描述进行语法分析,其中的名词和名词短语构成潜在的外部实体、数据源或数据流、动词构成潜在的处理功能。 (3)采用通常的功能分解方法,按照“强内聚,松耦合”原则,逐个对处理功能进行精化,与此同时逐步完成对数据流的精化,并针对被精化的处理功能生成下一级数据流图。 (4)在精化过程中,必须维持各级数据流图的平衡。 (5)精化过程应适可而止,避免涉及软件设计细节。
简要描述基于UML的分析与设计过程。
答案是:(1)用例分析与设计 (2)概念模型与顶层架构设计 (3)用户界面设计 (4)数据模型设计 (5)设计精化 (6)类设计 (7)部署模型设计
请阐述软件界面设计的基本原则。
答案是:(1)用户熟悉程度:界面应该采用经常使用系统用户熟悉的术语和概念。 (2)一致性:界面必须一致,在任何可能的情况下,相同的操作应该以同样的方式被激活。 (3)使惊讶最小化:尽量避免使用户对系统的行为感到惊讶。 (4)可恢复性:界面应该为用户提供错误恢复机制。 (5)用户帮助:界面应该在错误发生时提供有意义的反馈,并提供上下文敏感用户帮助系统。 (6)用户多样性:界面应该为不同类型的用户提供恰当的交互方式。
请阐述软件开发过程中模块化设计原则的要点。
答案是:(1)模块是程序中逻辑上相对独立的成分,它是一个独立的编程单位,应有良好的接口定义,模块化有助于信息隐藏和抽象,有助于表示复杂软件系统。 (2)模块的大小要适中,模块过大会导致模块内部复杂的增加,不利于模块的调试和重用,也不利于对模块的理解和修改。 (3)模块太小会导致整个系统的表示过于复杂,不利于控制复杂性。
请阐述软件开发过程中的抽象原则和信息隐藏原则
答案是:(1)抽象是指抽取事物最基本的特征和行为,忽略非基本的细节,采用分层次抽象的办法,可以控制软件开发过程的复杂性,有利于软件的可理解性和开发过程的管理。 (2)信息隐藏是将模块中的软件设计决策封装起来的技术,是使模块化开发活动更加简单的重要因素。在设计和确定模块时信息隐藏使一个模块的开发者不必看到其他模块的内部,只需知道其接口即可。这使得每个模块的开发人员所要处理的复杂性显著降低。
软件体系结构设计方法是指通过一系列的设计活动,获得满足系统功能性需求,并且符合一定非功能性需求约束的软件体系结构模型。简述不同类型的软件体系结构设计方法及其特点。
答案是:(1)工业驱动的方法。工业驱动的体系结构设计方法从方法的工件描述中提取体系结构描述。工件驱动的体系结构设计方法的例子包括广为流行的面向对象分析和设计方法OMT。 (2)用例驱动的方法。用例驱动的体系结构设计方法主要从用例导出体系结构抽象。一个用例,是指系统进行的一个活动系列,它为参与者提供一些结果值,参与者通过用例使用系统。参与者和用例共同构成了用例模型。 (3)模式驱动的方法。模式驱动的体系结构设计方法从模式导出体系结构抽象。该方法在处理范围广泛的体系结构问题时,模式库可能不够充足,且对模式的选择仅仅依靠通用知识和软件工程师的经验。 (4)领域驱动的方法。在领域驱动的体系结构设计方法中,体系结构抽象是从领域模型导出来的。领域模型可以有很多种不同的表示方法,比如,类、实体关系图、框架、语义网络和规格等。
简要阐述软件体系结构描述语言(ADL)的三个基本元素及其作用。
答案是:(1)构件:计算或数据存储单元。 (2)连接件:用于构件之间交互建模的体系结构构造块及其支配这些交互的规则。 (3)体系结构配置:描述体系结构的构件与连接件的连接图。
软件设计包括软件的结构设计、数据设计、接口设计和过程设计。作为一个完整的软件设计方案,请简要阐述软件设计包含的组成要素。
答案是:(1)目标描述。设计方案需要清楚地描述它要解决的问题和将要达到的目标。 (2)设计约束。设计目标的获得通常要在某些约束的限制范围内,这些约束定义了要解决问题的解空间。 (3)设计原理。工程化的设计活动必须以一定的科学原理和技术手段为基础,它们将表明问题可以通过该设计得到合理的解决。 (4)开发规划。工程化的设计活动不仅需要让人知道该设计能解决问题,还需要让人们了解该设计在实际开发中是可行的,以及如何实现该设计。 (5)使用描述。产品经常在某些特定条件下才能被可靠、髙效地使用,并达到最初的设计目标。因此,描述产品如何使用非常重要。
软件再工程通过改造遗留系统,使系统变得容易理解,进而提高系统的可维护性。具体包括( )。 【A.】系统文档的再建、修改 【B.】更新系统的结构 【C.】用先进的程序设计语言转换源代码 【D.】数据再工程
答案是:ABCD
软件设计的发展趋势主要包括( )。 【A.】服务性:以人为本的服务是计算机软件开发最基本的目的,是未来发展的趋势 【B.】开放化:只有保持信息以及软件的开放化,企业才能拥有更加全面的视野,取各行业之间的优势,弥补自身的不足
答案是:ABC
对软件实施代码和数据重构的优点主要包括( )。 【A.】改进软件的设计 【B.】提高代码质量,更容易被理解 【C.】帮助尽早发现错误 【D.】可以提高开发速度
答案是:ABCD
完整软件体系结构的迭代过程包括以下几种活动( )。 【A.】提取:即从文档、代码、专家等方面获取所有可能得到的软件信息或设计要素 【B.】分类:把提取出的信息按照不同视点进行分类 【C.】合并:对分类后每个视点中的信息进行分
答案是:ABCD
软件再工程是指通过对目标系统的检查和改造,将逆向工程、重构和正向工程组合起来,将现存系统重新构造为新的形式,以开发出质量更高、维护性更好的软件。其具体目标包括( )。 【A.】为追加、增强功能做准备 【B.】提高可维护性 【C
答案是:ABCD
为了评价软件系统的业务价值,需要从以下哪几个主要方面对系统进行考察( )。 【A.】系统的使用 【B.】系统支持的业务过程 【C.】系统的可靠性 【D.】系统的输出
答案是:ABCD
在软件进化策略选择方面,遗留系统的评价结果根据业务价值和系统质量可分为( )。 【A.】低业务价值,低系统质量 【B.】高业务价值,低系统质量 【C.】低业务价值,高系统质量 【D.】高业务价值,高系统质量
答案是:ABCD
对于遗留软件,可以选择的进化策略包括( )。 【A.】完全放弃该软件 【B.】继续维护系统 【C.】通过软件工程技术转换系统以提高系统的可维护性 【D.】开发一个新系统来代替遗留系统
答案是:ABCD
依照软件设计的目的和范围准则,软件设计模式包括( )。 【A.】创建型设计模式 【B.】结构型设计模式 【C.】行为型设计模式 【D.】创新型设计模式
答案是:ABC
软件设计模式的应用对软件开发所起的重大作用包括( )。 【A.】代码重用性 【B.】节约设计实践,提高设计效率 【C.】可读性 【D.】可扩展性
答案是:ABCD
四位著名的软件工程学者(Erich Gamma, Richard Helm, Ralph Johnson和John Vlissides)在《设计模式:可复用面向对象软件基础》一书中总结出软件工程设计模式的基本要素包括( )。 【A
答案是:ABCD
以下哪项不属于属性和操作的作用范围有哪几种( )。 【A.】public 【B.】protected 【C.】static 【D.】private
答案是:ABD
在进行部署模型设计时,一般需要考虑( )。 【A.】最终开发完成的软件包括哪些制品形式 【B.】软件运行环境存在哪些类型的物理节点 【C.】物理节点应采用本地部署,还是考虑采用云计算环境上进行部署 【D.】软件制品应该如何在物理
答案是:ABD
在进行部署模型设计时,一般需要考虑( )。 【A.】最终开发完成的软件包括哪些制品形式 【B.】软件运行环境存在哪些类型的物理节点 【C.】不同的节点之间的连接和通信形式是什么 【D.】软件制品应该如何在物理节点上进行部署
答案是:ABCD
在面向对象的数据模型设计中,持久数据模型设计主要包括以下几个步骤( )。 【A.】确定设计模型中需要持久保存的类的对象及其属性,其中实体类是主要关注对象 【B.】确定持久存储的数据之间的组织方式 【C.】确定数据模型中的操作行
答案是:ABCD
数据流图必须与描述并组织数据条目的数据字典配套使用。通常,数据字典中的每一条数据条目包含( )。 【A.】在数据流图中标识数据流、数据源或外部实体的名称与别名 【B.】数据类型 【C.】所有以它作为输入流或输出流的转换列表
答案是:ABCD
在实体关系图进行复杂数据建模过程中,为确保模型的一致性并消除数据冗余,分析人员要掌握 ( )。 【A.】数据对象的任何实例对每个属性必须有且仅有一个属性值 【B.】属性是原子数据项,不能包含内部数据结构 【C.】如果数据对
答案是:ABC
在面向数据流的软件设计过程中,数据对象的属性包括( )。 【A.】物理属性 【B.】命名性属性 【C.】描述性属性 【D.】引用性属性
答案是:BCD
在面向对象软件设计过程中,部署模型设计需要考虑以下几个要素( )。 【A.】最终开发完成的软件包括哪些制品形式 【B.】软件运行环境存在哪些类型的物理节点 【C.】不同节点之间的连接和通信形式是什么 【D.】软件制品应该如何在
答案是:ABCD
在面向对象软件设计过程中,持久数据模型设计主要包括以下几个步骤( )。 【A.】确定设计模型中需要持久保存的类的对象及其属性,其中实体类是主要关注对象 【B.】确定持久存储的数据之间的组织方式 【C.】确定数据模型中的操作行为
答案是:ABCD
统一建模语言UML在表达能力、对新技术的包容能力和扩展性等方面具备的优势包括( )。 【A.】提供了一种通用、表达能力强的可视化建模语言,用于描述应用问题的需求模型、设计模型和实现模型 【B.】提供了对核心概念的扩展机制,用户可自
答案是:ABCD
统一建模语言UML的目标是定义一种通用建模语言并对这些建模语言做出简单的说明,供系统建模者理解与使用。其主要特点包括( )。 【A.】UML统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的各种观点,有效地消除了各种建模
答案是:ABD
常用的用户界面原型的构建方式包括( )。 【A.】脚本驱动方式 【B.】可视化的程序语言 【C.】手工勾画 【D.】基于因特网的原型
答案是:ABD
用户交互实质上就是用户向计算机系统发出命令和相应的数据来完成相应的任务。用户交互方式主要包括( )。 【A.】直接操作 【B.】菜单选择 【C.】表格填写 【D.】命令语言
答案是:ABCD
用户界面设计基本原则包括( )。 【A.】用户熟悉程度 【B.】一致性 【C.】使惊讶最小化 【D.】用户帮助 【E.】可恢复性 【F.】用户多样性
答案是:ABCDEF
以下关于软件设计可能对最终软件产品质量产生的影响,正确的是( )。 【A.】可靠性:如果软件设计中错误、缺陷较多,那么会导致最终软件的可靠性降低 【B.】可维护性:软件可能会因为发生错误或环境变化而进行维护,具有良好结构的软件
答案是:ABCD
以下关于软件设计可能对最终软件产品质量产生的影响,正确的是( )。 【A.】正确性:软件设计中如果存在错误,会导致软件实现的错误,影响最终软件的正确性 【B.】可靠性:如果软件设计中错误、缺陷较多,那么会导致最终软件的可靠性降
答案是:ABCD
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式,其关键要素包括( )。 【A.】提供一个词汇表 【B.】定义一套配置规则 【C.】定义一套语义解释原则 【D.】定义对基于这种风格的系统所进行的分析
答案是:ABCD
软件体系结构的设计原则主要包括( )。 【A.】合适性 【B.】结构稳定性 【C.】可扩展性 【D.】可复用性
答案是:ABCD
目前为: 1/1 页  首页   上页 下页 尾页