软件工程题库
- 格式:doc
- 大小:114.00 KB
- 文档页数:11
软件工程期末试题(1)一, 判断题(正确的在括号内打上"√",错误的打上"×".每题分,共15分)Warnier方式也是一种面向数据结构的设计方式,其逻辑更严格.(×) PAD图在设置了五种大体控制结构后,还允许递归挪用. (×) 你为了加速软件保护作业的进度,应尽可能增加保护人员的数量.(×) 当验收测试通过,软件开发就完成了.(×)完成测试作业后,为了缩短源程序的长度应删除程序中的注解.(×) 系统结构图是精准表达程序结构的图形表示法.因此,有时也可以将系统结构图看成系统流程图利用.(×)在程序调试时,找犯错误的位置和性质比更正该错误更难.(√) 以对象,类,继承和通信为基础的面向对象设计方式(OOD)也是常见的软件概要设计方式之一.(√)二,单项选择题(每小题2分,共10分)试判断下列叙述中,哪个(些)是正确的(D)a,软件系统中所有的信息流都可以以为是事务流b,软件系统中所有的信息流都可以以为是变换流c,事务分析和变换分析的设计步骤是大体相似的A,a B,b C,c D,b和c进行需求分析可利用多种工具,但(B)是不适用的.A,数据流图B,PAD图C,判定表D,数据词典在详细设计阶段,常常采用的工具有(A).A,PAD B,SA C,SC D,DFD详细设计的结果大体决定了最终程序的(C)A,代码的规模B,运行速度C,质量D,可保护性利用白盒测试方式时,肯定测试数据应按照(A)和指定的覆盖标准. A,程序的内部逻辑B,程序的复杂程度C,该软件的编辑人员D,程序的功能三,多项选择题(每题2分,共10分.注:正确得2分,漏选得1分,多选,错选不得分.)(ABCD)可以作为模块.A,子程序B,函数C,进程D,编译文件下面哪些测试属于黑盒测试(BCD).A,路径测试B,等价类划分C,边界值分析D,错误推测E,循环测试下列属于气宇效益方式的是(ABCD).A,货币的时间价值B,投资回收期C,收入D,投资回报率软件保护的策略包括(BCD).A,按期检测保护B,更正性保护C,适应性保护D,完善性保护下列属于软件测试进程的是(ABE).A,单元测试B,组装测试C,内核测试D,法律验证E,确认测试四,简答题(每题6分,共24分)1、耦合性和内聚性有几种类型其耦合度,内聚强度的顺序如何答案:低:非直接耦合,数据耦合,标记耦合,控制耦合,外部耦合,公共耦合,内容耦合:高强:功能内聚,信息内聚,通信内聚,进程内聚,时间内聚,逻辑内聚,偶然内聚:弱2、请举例说明什么是多态,什么是重载答案:多态性是指子类对象可以像父类对象那样利用,一样的消息既可以发送给父类对象也可以发送给子类对象.也就是说,在类品级的不同层次中可以共享(公用)一个行为(方式)的名字,但是不同层次中的每一个类却各自按自己的需要来实现这个行为.当对象接收到发送给它的消息时,按照该对象所属于的类动态选用在该类中概念的实现算法.3、重载是指一个类中有多个同名的方式,但在操作数个数或类型上有区别.例: public class A{int age;String name;public void setValue(int i) {age=i; }public void setValue(String s) {name=s; }4、什么是数据字典简述数据字典与数据流图的关系.答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的概念与说明,是数据流程图的补充工具.(2分)数据流图和数据字典一路组成系统的逻辑模型,没有数据字典数据流图就不严格, 但是没有数据流图数据字典也难于发挥作用. 数据流图和对数据流图中每一个元素的精准概念放在一路,才能一路组成系统的规格说明.(3分)5、简述编码风格的重要性.答案:阅读程序是软件开发和保护进程中的一个重要组成部份,程序实际上也是一种供人阅读的文章.应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间.良好的编码风格有助于编写出靠得住而又容易保护的程序,编码的风格在很大程度上决定着程序的质量.面向对象的测试和传统开发方式的测试有什么不同答案:(1)二者都可以分成四个阶段进行.但传统测试最小单元是模块,而在面向对象环境下,最小的可测试的单元是封装了的类或对象,而不是程序模块.(2)因为面向对象软件没有一个层次的控制结构,所以传统的自顶向下和自底向上的组装策略意义不大. 每次将一个操作组装到类中(像传统的增殖式组装那样)常常行不通,因为在组成类的各个部件之间存在各类直接的和非直接的交互.对于面向对象系统的组装测试,存在两种不同的测试策略.软件工程期末试卷(2)(开放教育本科)计算机科学与技术专业《软件工程》试题B一、填空题(每空1分,共20分)1.软件生存周期一般可分为__问题概念__、可行性研究、__需求分析_、设计编码、_测试_、运行与保护阶段。
软件工程题库多选多选题题库第一章:软件开发过程模型1.在软件工程中,所谓软件开发过程模型是指()A.一个开发软件的通用流程,用于指导软件项目的进行B.一个具体的软件项目开发流程,包括需求分析、设计、编码、测试等阶段C.一个软件开发团队的组织结构和分工D.一个软件开发工具的集合2.瀑布模型是一种()A.迭代开发模型B.敏捷开发模型C.渐进开发模型D.串行开发模型3.敏捷开发模型的重要特点是()A.强调大量的分析和设计工作B.响应变化和面对风险的能力C.严格按照计划执行工作流程D.一次性开发出最终产品第二章:需求分析与规格说明4.在需求分析阶段,以下哪个活动是不可或缺的()A.需求收集和文档撰写B.需求验证和确认C.需求设计和构建D.需求分析和建模5.在需求分析中,用例是用来()A.描述系统的具体功能B.确定软件的开发成本C.分析项目进度和资源配备D.确定软件所需硬件设备6.用例图是用来()A.描述用例和角色之间的关系B.分析用户需求的技术工具C.确定系统的功能点和业务流程D.对软件工程进行过程图表建模第三章:软件设计7.在软件设计中,以下哪个是不正确的()A.结构化设计是一种自顶向下的设计方法B.面向对象设计强调数据和行为的封装C.设计模式是一种常见的软件设计实践D.可行性分析是软件设计的主要目标8.在面向对象设计中,以下哪个概念是不正确的()A.继承是用于创建类的机制B.封装是隐藏对象的内部实现细节C.多态性指的是对象具有多个状态D.抽象是对一组类的共同特征进行抽象9.设计模式中的单例模式是指()A.一个类只能有一个实例对象B.通过继承和多态实现对象的复用C.将类的行为分布在多个接口和类中D.使用接口和抽象类进行对象的创建第四章:软件测试10.在软件测试中,以下哪个是不正确的()A.单元测试是对软件的最小功能单元进行测试B.集成测试是测试各个模块之间的接口和关联C.系统测试是验证整个软件系统的功能和性能D.用户验收测试是由开发人员进行的测试11.在黑盒测试中,以下哪个是不正确的()A.用例执行的结果不关心内部的实现细节B.测试人员只关心系统的输入和输出C.着重测试系统的错误处理和边界条件D.需要了解系统的内部结构和算法12.黑盒测试中的等价类划分是指()A.将测试用例划分为若干个等价的类别B.使用随机数测试数据C.验证系统的错误处理功能D.着重测试系统的边界条件附件:无法律名词及注释:1.软件工程:指将系统化、规范化和可量化的方法应用于软件的开发、运行和维护过程的一门工程学科。
软件工程试题库1.采用工程的概念、原理、技术和方法来()和()软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
A、开发测试B、运行管理C、开发管理D、开发维护2.软件是程序、数据及相关文档的完整集合,其中“开发、使用和维护程序所需要的图文资料”指的是()A、程序B、数据C、文档D、以上都不是3.计算机系统经历了几个不同的发展阶段,具有以下特点指的是()发展时期:小规模团队开发,但仍然沿用早期形成的个体化开发软件的方法。
A、个体软件B、软件作坊C、软件危机D、软件工程4.以下( )不是软件危机的表现形式。
A、开发的软件不满足用户的需要B、开发的软件可维护性差C、开发的软件价格便宜D、开发的软件可靠性差5.软件产品与物质产品有很大区别,软件产品是一种()产品A、有形B、消耗C、逻辑D、文档6.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是()。
A、喷泉模型B、增量模型C、瀑布模型D、螺旋模型7.下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是()。
C、原型模型B、瀑布模型C、基于知识的智能模型D、变换模型8.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是()。
A、原型模型B、瀑布模型C、喷泉模型D、螺旋模型9.下列软件开发模型中,()只有在开发人员具有风险分析和排除风险的经验及专门知识时,才能获得成功。
A、原型模型B、瀑布模型C、喷泉模型D、螺旋模型10.()是用户和设计交换最频繁的方法。
A、原型模型B、瀑布模型方法C、螺旋模型方法D、构件组装模型11.传统的()要求,必须等前一阶段的工作完成之后,才能开始后一阶段的工作;前一阶段的输出文档,就是后一阶段的输入文档。
C、原型模型B、瀑布模型C、螺旋模型D、喷泉模型12.下列叙述中不属于软件生命周期模型的是( )A、瀑布模型B、快速原型模型C、风险模型D、原子模型13.“为了解决这个问题,目标系统必须做什么?”这是生命周期中()阶段要确定的事。
2024年软件工程开发等专业技能知识考试题库(附含答案)一、单选题1.数据流图是进行软件需求分析的常用图形工具,其基本图形符号是( )。
A.输入、输出、外部实体和加工B.变换、加工、数据流和存储C.加工、数据流、数据存储和外部实体D.变换、数据存储、加工和数据流参考答案:C2.集成测试的主要方法有两个,一个是()一个是()。
A.白盒测试方法、黑盒测试方法B.等价类划分方法、边缘值分析方法C.渐增式测试方法、非渐增式测试方法D.因果图方法、错误推测方法参考答案:C3.软件文档是软件工程实施的重要成分,它不仅是软件开发各阶段的重要依据,而且也影响软件的( )。
A.可用性B.可维护性C.可扩展性D.可移植性参考答案:B4.面向对象设计阶段的主要任务是系统设计和( )。
A.结构化设计B.数据设计C.面向对象程序设计D.对象设计参考答案:D5.包含风险分析的软件工程模型是( )。
A.喷泉模型B.瀑布模型C.增量模型D.螺旋模型参考答案:D6.Jackson方法根据()来导出程序结构。
A.数据流图B.数据间的控制结构C.数据结构D.IPO图参考答案:C7.需求工程的主要目的是( )。
A.系统开发的具体方案B.进一步确定用户的需求C.解决系统是“做什么的问题”D.解决系统是“如何做的问题”参考答案:C8.只有类的共有界面的成员才能成为使用类的操作,这是软件设计的( )原则。
A.过程抽象B.信息隐藏C.功能抽象D.共享性参考答案:B9.下列哪项不是风险管理的过程?( )。
A.风险规划B.风险识别C.风险评估D.风险收集参考答案:D10.在分层体系结构中,( )实现与实体对象相关的业务逻辑。
A.表示层B.持久层C.实体层D.控制层参考答案:D11.下列选项中不属于CI管道的是()。
A.构建B.模拟C.单元测试D.集成测试参考答案:B12.应该在( ),确定对象类中应有的服务。
A.建立对象模型之时B.建立动态模型和功能模型之后C.建立功能模型之后D.建立动态模型之后参考答案:B13.需求分析的主要方法有( )。
软件工程复习题库带答案完整版一、选择题1、白盒测试法是通过分析程序的(C)来设计测试用例的。
A.应用范围B.功能C.内部逻辑D.输入数据2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。
A.风险产生的原因B.风险监控技术C.风险能否消除D.风险发生所产生的后果3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。
A.好的计划B.不断的发布C.反馈和勇气D.持续集成4、等价分类法的关键是(C)。
A.确定等价类的边界条件B.按照用例来确定等价类C.划分等价类D.确定系统中相同和不同的部分5、下列不属于黑盒测试的技术是(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能6、为了提高模块的独立性,模块之间最好是(D)耦合。
A.控制耦合B.公共耦合C.内容耦合D.数据耦合7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。
A.角色B.活动C.制品D.工作流8、功能性注释嵌入在源程序内部,它是用来说明(A)。
A.程序段或语句的功能 B.模块的接口C.数据的名称和用途 D.模块的功能9、在结构化分析方法中,数据字典是重要的文档。
对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。
A.只有结构化语言 B.有结构化语言和判定树C.有结构化语言、判定树和判定表 D.有判定树和判定表10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。
A.正确性 B.适应性C.完善性 D.预防性11、软件危机的主要原因是(A)。
A软件本身特点与开发方法B对软件的认识不够C软件生产能力不足D软件工具落后12、13、下列关于面向对象分析与设计说法错误的是(C)。
A.面向对象的设计以面向对象分析为基础归纳出类B.建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象C.面向对象的设计是面向对象分析的另一种思维方式D.面向对象的设计是面向对象分析进一步的细化和更高的抽象14、在软件的可行性分析中,可以从不同的角度对软件进行研究,其中(B)是从软件的功能可行性角度考虑的。
全国2024年下半年高等教育自考试软件工程考题一、单项选择题1、RUP的迭代、增量式开发过程中,需要估算成本、进度,并能够减少次要的错误风险,至少需要完成______。
A.初始阶段B.精化阶段C.构造阶段D.移交阶段2、软件生存周期是指______。
A.开发软件的全部时间B.使用软件的全部时间C.开发和使用软件的全部时间D.从形成概念开始到最后淘汰让位于新的软件产品的时间3、在常见的软件开发模型中,主要用于支持面向对象技术软件开发的是______。
A.喷泉模型B.螺旋模型C.增量模型D.瀑布模型4、下列不属于需求规约的基本性质是______。
A.可重复的B.重要性和稳定性程度C.完整的D.一致的5、类的状态机一般有几种不同的运行状态,其中处于等待接收事件,接收处理完事件后又进入等待状态,通常采用______。
A.IdleB.InitializingC.CommandD.Active6、指一个模块内部各成分之间相互关联程度的度量是______。
A.耦合B.内聚C.扇入D.扇出7、在销售管理系统需求文档中出现下列描述,属于设计约束范畴的是______。
A.系统应能产生月销售报表B.系统应在5分钟内计算出给定季度的总销售税C.对要构建的账户接收系统,必须为月财务状况系统提供更新信息D.任取1秒钟,一个特定应用所消耗的可用计算能力平均不超过50%8、RUP设计阶段的主要活动不包含______。
A.程序设计B.体系结构设计C.用况设计D.类设计9、需求规约的基本性质包括重要性和稳定性程度、一致的、完整的和______。
A.可修改的B.可复用的C.可测试的D.无歧义的10、软件工程在20世纪60年代末到80年代初获得的主要成果有______。
A.CASE产品B.面向对象语言C.瀑布模型D.软件生存周期过程11、下列可用于概念模型和软件模型的动态结构的是______。
A.类图B.对象图C.部署图D.用况图12、集成化能力成熟度模型(CMMI)中有22个过程域,分为4类:项目管理类、工程类、过程管理类和______。
2023软件工程导论期末考试题库及参考答案一、选择题(每题2分,共20分)1. 以下哪个不是软件工程的三个基本目标?A. 可维护性B. 可用性C. 可靠性D. 高效性参考答案:D2. 软件生命周期中,以下哪个阶段是软件开发过程的核心阶段?A. 需求分析B. 设计C. 编码D. 测试参考答案:C3. 以下哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 逻辑编程参考答案:A4. 在软件工程中,以下哪个方法用于估算软件项目的成本和进度?A. COCOMOB. WBSC. SDLCD. CASE参考答案:A5. 以下哪个是软件工程中的一个重要原则?A. 分而治之B. 一次性编写C. 重用D. 模块化参考答案:D6. 以下哪个不是软件工程的基本活动?A. 软件规格B. 软件开发C. 软件验证D. 软件测试参考答案:C7. 以下哪个是软件工程中用于提高软件质量的技术?A. 设计模式B. 重构C. 代码审查D. 单元测试参考答案:C8. 以下哪个不是软件工程的五大基本过程?A. 软件规格B. 软件开发C. 软件维护D. 软件项目管理参考答案:D9. 以下哪个是软件工程中的一个重要概念,用于描述软件系统中的各个组件之间的关系?A. 耦合B. 内聚C. 模块化D. 重用参考答案:A10. 以下哪个是软件工程中的一个重要原则,用于指导软件开发过程?A. 迭代B. 增量C.螺旋D. 模型驱动参考答案:A二、填空题(每题2分,共20分)11. 软件工程的三要素是:方法、工具和______。
参考答案:过程12. 软件生命周期包括:需求分析、设计、编码、______和软件维护。
参考答案:测试13. 软件工程中的面向对象方法包括:封装、继承和______。
参考答案:多态14. 软件工程中的 CASE 工具主要用于支持______。
参考答案:软件设计和开发15. 软件工程中的敏捷开发方法强调______、可维护性和可扩展性。
一、选择题1.在软件开发的各种资源中,( D )是最重要的资源。
A 开发工具B 方法C 硬件环境D 人员2.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是(D )。
A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档3.软件是一种(B )产品。
A、有形B、逻辑C、物质D、消耗4.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C )A.软件工程B.软件周期C.软件危机D.软件产生5.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了(A )A.软件危机B.软件工程C.程序设计革命D.结构化程序设计6.“软件危机”产生的主要原因是( A )。
A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件7.软件的复杂性是(A ),它引起人员通信困难、开发费用超支、开发时间超时等问题。
A 固有的B 人为的C 可消除的D 不可降低的8.软件危机是指在软件开发和(C )过程中遇到的一系列严重问题。
A 开发B 使用C维护D更新9.为了解决软件危机人们提出了用(B )的原理来设计软件,这就是软件工程诞生的基础。
(A) 运筹学(B) 工程学(C) 软件学(D) 数学10.在软件工程时期,决定软件质量的主要因素是( A )A.管理水平 B.个人程序技术C.小组技术水平D.硬件的发展11.以下哪一项不是软件危机的表现形式( C )(A)成本高(B)生产率低(C) 技术发展快(D)质量得不到保证12.软件管理工作涉及到的直接对象不包括( B )。
A.软件开发人员 B.硬件设备 C.项目经费 D.软件项目13.软件工程方法学有三个要素,它们是(A )A.方法、工具和过程B.质量、进度和成本C.顺序、分支和循环D.入口、过程、出口14.软件工程中描述生命周期的瀑布模型一般包括计划、( A )、设计、编码、测试、维护等几个阶段。
A.需求分析 B.需求调查 C.可行性分析 D.问题定义15.瀑布模型把软件生存周期划分为软件计划、软件开发与(C )三个阶段,而每一阶段又可分为若干更小的阶段。
一、选择题软件(2)1.在软件开发的各种资源中,( D )是最重要的资源。
A 开发工具B 方法C 硬件环境D 人员2.软件的复杂性是( A ),它引起人员通信困难、开发费用超支、开发时间超时等问题。
A 固有的B 人为的C 可消除的D 不可降低的3.3:软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是( D )。
A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档4.软件是一种( B )产品。
A、有形B、逻辑C、物质D、消耗软件危机(1)5.1:开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C )A.软件工程B.软件周期C.软件危机D.软件产生6.2:在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了( A )A.软件危机B.软件工程 C.程序设计革命D.结构化程序设计7.3:以下哪一项不是软件危机的表现形式( C )(A)成本高(B)生产率低(C) 技术发展快(D)质量得不到保证8.4:“软件危机”产生的主要原因是( A )。
A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件9.5:软件危机是指在软件开发和( C )过程中遇到的一系列严重问题。
A 开发B 使用 C维护D更新软件工程(2)10.1:为了解决软件危机人们提出了用(B )的原理来设计软件,这就是软件工程诞生的基础。
(A) 运筹学(B) 工程学 (C) 软件学(D) 数学11.2.在软件工程时期,决定软件质量的主要因素是( A )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展12.3. 软件管理工作涉及到的直接对象不包括( B )。
A.软件开发人员 B.硬件设备 C.项目经费 D.软件项目13.4. 软件工程方法学有三个要素,它们是( A )A.方法、工具和过程B.质量、进度和成本C.顺序、分支和循环D.入口、过程、出口生命周期及模型(5)14.1:软件工程中描述生命周期的瀑布模型一般包括计划、( A )、设计、编码、测试、维护等几个阶段。
1.软件生命周期中所花费用最多的阶段是()A、详细设计B、软件编码C、软件测试D、软件维护2.采用工程的概念、原理、技术和方法来()和()软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
A、开发测试B、运行管理C、开发管理D、开发维护3.软件是程序、数据及相关文档的完整集合,其中“开发、使用和维护程序所需要的图文资料”指的是()A、程序B、数据C、文档D、以上都不是4.以下()不是软件危机的表现形式。
A、开发的软件不满足用户的需要B、开发的软件可维护性差C、开发的软件价格便宜D、开发的软件可靠性差5.软件产品与物质产品有很大区别,软件产品是一种()产品A、有形B、消耗C、逻辑D、文档6.从瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大()。
A、详细设计阶段B、概要设计阶段C、需求分析阶段D、测试和运行阶段7.传统的()要求,必须等前一阶段的工作完成之后,才能开始后一阶段的工作;前一阶段的输出文档,就是后一阶段的输入文档。
A、原型模型B、瀑布模型C、螺旋模型D、喷泉模型8.下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是()。
A、原型模型B、瀑布模型C、基于知识的智能模型D、变换模型9.()是用户和设计交换最频繁的方法。
A、原型模型B、瀑布模型方法C、螺旋模型方法D、构件组装模型10.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是()。
A、原型模型B、瀑布模型C、喷泉模型D、螺旋模型11.下列软件开发模型中,()只有在开发人员具有风险分析和排除风险的经验及专门知识时,才能获得成功。
A、原型模型B、瀑布模型C、喷泉模型D、螺旋模型12.()引入了“风险驱动”的思想,适用于大规模的内部开发项目。
A、增量模型B、喷泉模型C、原型模型D、螺旋模型13.下列叙述中不属于软件生命周期模型的是()A、瀑布模型B、快速原型模型C、风险模型D、原子模型14.“为了解决这个问题,目标系统必须做什么?”这是生命周期中()阶段要确定的事。
Test 11.1软件是如何不同于其他工程学科产生的产品?答:参考p2页最后一段。
1.2软件与硬件有哪些区别?答:(1)软件是设计开发的,而不是传统意义上生产制造的。
(2)软件不会磨损。
(3)多数软件是定制的而不是组件组装出的。
(虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需要定制的)1.3列出过程模型可能在哪三个方面彼此不同?答:(1)活动,动作和任务的总体流程,以及相互依赖关系。
(2)在每一个活动框架中,动作和任务细化的程度。
(3)工作产品的定义和要求的程度。
(4)质量保证活动应用的方式。
(5)项目跟踪和控制活动应用的方式。
(6)过程描述的详细程度和严谨程度。
(7)客户与利益相关者对项目参与的程度。
(8)软件团队所赋予的自主权。
(9)队伍组织和角色明确程度。
1.4请解释计算机软件并不需要随着时间的推移而进化这一概念是错的。
答:(1)软件需要进行适应性调试,从而可以满足新的计算环境或者技术的要求。
(2)软件必须升级以实现新的商业要求。
(3)软件必须扩展使之具有与更多新的系统和数据库互操作的能力。
(4)软件架构必须进行改建使之能适应多样化的网络环境。
Test22.1描述软件开发阶段的原型模型答:p26的2.2.3的第五段。
开始于沟通,定义软件的总体目标,明确已知的需求,并大致勾画以后再进一步定义的东西。
然后迅速策划一个原型开发迭代并进行建模(以快速设计的方式)。
快速设计生产一个原型。
对原型进行部署,然后由利益相关者进行评价,根据反馈信息进一步细化软件的要求。
2.2基于组件的过程模型在软件工程中主要优点是什么?答:基于组件的过程模型促进软件重用并且可重用性有可能使开发周期减少70%,项目成本减少84%和提高70%的生产率。
2.3个人软件过程为什么没有被行业广泛采用?答:个人软件过程是一个智力挑战,需要一定程度的智力保证(例如昂贵和周期长的培训要求)这并不总是能被接受的。
此外,所要求的的测量水平,对大多数的软件从业者是有一定的困难的。
2.4在现在的环境下,为什么演化模型被许多人认为是最好的软件开发方法?答:由于现代软件开发的时间线越来越短,客户日趋多样化(对需求理解更难)。
需求变更变得更为普遍(交付前),我们需要一种方法提供增量或进化的交付。
这种模型在进化过程中可容纳的不确定性优于大多数过程模型,允许部分解决方案在一个有秩序,有计划的方法中交付,最重要的是反映出到底在建立复杂的系统时,发生了什么。
Test44.1需求工程的六个步骤是什么?答案(4.1)起始导出精化协商规格说明需求确认4.2描述需求工程师如何实现利益相关者协同合作的工作?答案(4.2.3)需求工程师的工作是标识公共区域(即所有利益相关者都同意的需求)和矛盾区域(即某个利益相关者提出的需求和其他利益相关者的需求相矛盾)以及期望的需求或特性不一致的区域区域。
4.3使用分析模式在模型的分析建立过程中有什么好处?答案(4.5.2)这些分析模式在特定的应用领域内提供了一些解决方案(如类、功能、行为)。
首先,分析模式提高了抽象分析模型的开发速度,通过提供可重复使用的分析模型捕获具体问题的主要需求。
其次,通过建议的设计模式和可靠的通用问题解决方案,分析模式有利于把分析模型转变到设计模型。
4.4在需求工程进程工作中有什么产品?答案(4.1)需求工程的目的在于为各方面提供关于问题的一个书面理解。
不过依然可以得到工作产品:用户场景、功能和特征列表、需求模型或规格说明。
Test 55.1描述域分析的目的。
答:软件域分析是识别、分析和详细说明某个特定应用领域的公共需求,特别是那些在该应用领域内被多个项目重复使用的需求。
[面向对象的域分析是]在某个特定应用领域内,根据通用的对象、类、部件和框架,识别、分析和详细说明公共的、可复用的能力。
5.2 哪种UML(统一建模语言)在基于场景的建模图中有作用?答:用例图、泳道图、活动图。
5.3 描述数据属性和数据关系的区别。
答:数据属性描述数据对象本身的属性。
数据关系描述数据对象如何彼此相连。
5.4 描述CRC卡片三个部分的角色。
答:卡片分为三部分。
识别独特数据对象的类名。
职责是类的属性和操作。
协作者是这些类必须提供的信息是这个类需要完成的职责。
5.5 列举需求模型动作产生的模型类型并解释每种模型类型的作用。
答:场景模型:出自各种系统“参与者”观点的需求。
数据模型:描述问题信息域的模型。
面向类的模型:表示面向对象类(属性和操作)的模型,其方式为通过类的协作获得系统需求。
面向流程的模型:表示系统的功能元素并且描述当功能元素在系统中运行时怎样进行数据变换的模型。
行为模型:描述如何将软件行为看做是外部“事件”后续的模型。
Test 66.1描述创建一个数据流图的一般过程。
答:(1)第0层的数据流图应将软件或系统描述为一个泡泡。
(2)应仔细标记主要的输入和输出。
(3)通过把选定的处理,数据对象和数据存储分离为下一层表示而开始精化过程。
(4)应使用有意义的名称标记所有的箭头和泡泡。
(5)当从一个层转到另一个层时要保持信息流连续性。
(6)一次精化一个泡泡。
6.2建立行为模型所需要的步骤是什么?答:(1)评估所有的用例,以保证完全理解系统内的交互顺序。
(2)识别驱动交互顺序的事件,并理解这些事件如何与特定的对象相互关联。
(3)为每个用例生成序列。
(4)创建系统状态图。
(5)评审行为模型以验证准确性和一致性。
6.3描述应用内容,功能、交互和配置模型的内容。
答:内容模型——结构元素表示应用内容要求。
功能模型——用户可观察到的行为,分析类中包含的交付给最终用户的操作来实现类的行为.。
交互作用模型——表明用户如何利用应用内容和功能。
配置模型——可能是服务器端和客户端属性列表所需的应用6.4 解释控制规格说明与处理规格说明。
答:处理规格说明用于描述出现在求精过程中最终层次的所有流程模型的处理。
处理规格说明的内容可以包括叙述性正文、处理算法的程序设计语言描述、数学方程、表或UML活动图。
控制规格说明使用两种不同的方式表现系统的行为。
CSPEC包含一个状态图,该图是行为的序列说明,也可能包括程序激活表即行为的组合说明。
Test77.1.列出三个可以作为一个评估设计价值的指南的特点答案(Section 7.2.1):(1)设计实现了所有包含在需求模型中的明确要求,而且必须满足利益相关者期望的所有隐含要求。
(2)对于那些生成代码的人和那些进行测试以及随后维护软件的人而言,设计必须是可读的,可理解的指南。
(3)设计必须提供软件的一全貌,从实现的角度说明数据域,功能域和行为域。
7.2说明如何通过各个模块功能独立实现有效的进行模块化设计?答案(Section 7.3.5):模块功能的独立的实现是通过与其它模块或系统元件模块独立(高内聚),并防止过度交互(低耦合)。
独立的模块更易于开发,维护和测试,因为副作用的影响被降低了(比如错误的传播)。
这也使得它更容易执行并行执行模块。
7.3描述信息隐藏适用于软件设计的原则。
答案(7.3.6):信息隐藏的原则意味着模块相互共享的信息只有在“需要知道”的基础上实现一些特定的软件功能。
隐藏强制限制两个模块程序的细节并且模块的任何数据结构都是本地的。
期末考试题7.4列出所需的软件设计和每个角色的完整规范的四个设计模型。
答案(7.4):数据设计元素——创建在高抽象级上描述用户的数据观点或信息观点。
体系结构设计元素——显示特定的软件分析模型与硬件元素之间的关系和协作。
接口设计元素——接口描述了一组描述外部可见的类的行为的和提供对业务访问的操作。
构件级设计元素——描述了每一个软件构件的内部细节。
Test 88.1体系结构风格的组成元素有哪些?答:执行所需系统功能的一组组件。
允许组件之间相互通信的一组接口。
用于描述组件集成形成系统可能方式的约束条件。
使设计者通过分析构件的已知属性以明白系统整体性能的语义模型。
8.2什么是原型?答:原型是表示核心抽象的类或模式,该抽象对于目标系统体系结构的设计非常关键。
8.3在数据流图中如何区分事务中心与变换中心?答:事务中心把外部信息流转换成系统内部的许多动作路径之一。
事务中心把流入的外部信息映射到流出的外部世界信息中。
期末考试问题:8.4描述存在于结构设计中类型的依赖关系。
答:共享依赖——表示使用相同资源的消费者或为相同消费者生产的生产者之间的依赖关系。
流依赖——表示资源的生产者和消费者间的依赖关系。
约束依赖——表示在一组活动间相关控制流上的约束。
Test99.1从面向对象的观点和传统观点上看构件级设计有什么不同?答案(Section 9.1.1 and 9.1.2):面向对象的视角注重细化来自于问题域和基础设施与的设计类。
类需要被细化,确定合适接口、细化属性并定义实现它们的数据结构,描述每个操作的处理流程。
传统的视角细化三种构件:控制构件,问题域模块和基础设施模块。
这需要足够详细的表示出程序模块的数据结构、接口和算法,以指导生成用编程语言书写的源代码。
9.2用软件工程术语描述内聚性与耦合性的不同。
答案(9.2.3节和9.2.4节):内聚性意味着构件或者类只封装那些相互关联密切,以及与构件或类自身有密切关系的属性和操作。
耦合是类之间彼此联系程度的一种定性度量9.3描述WEB应用的构件级设计答案(9.4.1和9.4.2节):WebAPP构件级设计通常包括内容设计元素的功能设计元素。
构件级内容设计关注内容对象,以及包装展示给WebApp最终用户的方式。
功能体系结构描述了关键的功能构件和这些构件时如何进行交互的。
9.4在基于构件的软件工程中领域工程的目的是什么?答案(9.6.1节):领域工程的目的是识别、构件、分类和传播一组软件构件,这些构件再某一特定的应用领域中可以使用于现有的和未来的软件。
9.5软件开发中完成构件级设计的步骤答案(9.3节):(1).标识出所有与问题与相对应的设计类(2)确定所有与基础设施与相对应的设计类(3).细化所有不需要作为可复用构件的设计类(4)说明持久数据源(数据库和文件)并确定管理数据源所需要的类(5)开发并且细化类或构件的行为表示(6)细化部署图以提供额外的实现细节(7)考虑每个构建及设计表示,并且时可考虑其他可选方案9.6描述一下在构件级设计中构件合格性检验、适应性修改与组合完成了什么?答案(9.6.2节):(1)构件合格性检验功能是检查库构件并且确保功能适合新的应用程序。
(2)构件适应性修改是通过构建包装处理在向新应用程序中加入库构件时发生的冲突(3)构建组装经过合格性检验的、适应性修改的以及开发的构件组装到新的应用系统的体系结构中Test1010.1列举出建立用户界面时所需要遵循的3条准则。