第一章练习题一、填空题1、软件工程三要素是:方法、工具、过程。
2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。
二、名词(术语)解释:1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。
可靠性是衡量软件质量的一个重要目标。
2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。
三、问答题1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。
(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。
2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。
(2)软件开发简单,易学、易上手。
(3)专业或非专业人员都能参与软件开发活动。
第二章练习题一、填空题:1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。
2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。
3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。
4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。
二、简答题:1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规范的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。
2、瀑布模型的缺点是什么?答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。
2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。
3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。
3、原型模型适应什么场合?答:原型模型比瀑布模型更符合人们认识事物的过程和规律,是一种较实用的开发框架。
它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。
第三章练习题一、填空题1、COCOMO II的3个阶段是:应用组装、早期设计、后体系结构。
2、分析任务图中的里程碑路径被称为关键路径。
3、项目的特征:唯一性、一次性、整体性、多目标性、寿命周期阶段性。
二、简答题1、什么是里程碑?答:在制定项目进度计划时,在进度时间表上设立一些重要的时间检查点,这样一来,就可以在项目执行过程中利用这些重要的时间检查点来对项目的进程进行检查和控制。
这些重要的时间检查点被称作项目的里程碑(Milestone)。
2、请扼要描述Boehm的十大风险事项。
答:Personnel shortfalls人员短缺Unrealistic schedules and budgets不现实的进度和预算Developing the wrong functions开发了错误功能Developing the wrong user interfaces开发了错误的用户界面Gold-plating华而不实Continuing stream of requirements changes不断的需求改变Shortfalls in externally-performed tasks外部执行的任务不符合要求Shortfalls in externally-furnished components外部提供的组件不符合要求Real-time performance shortfalls实时性能不符合要求Straining computer science capabilities超出了计算机科学的能力3、如何成功管理风险?答:建立恰当的机制选择有效的识别方法选择有效评估发生可能性方法选择有效评估风险影响方法建立预防措施开发风险应对措施确定紧迫性确定风险的责任人4、什么是项目管理?答:两种含义管理活动:一种有意识地按照项目管理的特点和规律,对项目进行组织管理的活动管理学科:以项目管理活动为研究对象的一门学科,它是探索项目活动科学组织管理的理论与方法。
5、什么是软件项目管理?答:软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。
软件项目管理的对象是软件工程项目,他所涉及的范围覆盖了整个软件工程过程。
第4章练习题四、填空题1、需求可分解为4个层次:业务需求、用户需求、功能需求和非功能需求。
2、用户需求:用户需求是用户使用该软件要完成的任务。
3、功能需求:功能需求定义了软件必须实现的功能。
4、需求分析阶段的工作有以下四个方面:引发、分析、编制需求分析阶段文档——规格说明、确认。
5、软件项目中40%-——60%的问题都是在需求阶段埋下的祸根!2、简答题1、IEEE在软件工程标准词汇表中的需求定义是什么?答:⑴用户解决问题或达到目标所需的条件或权能(Capability)。
⑵系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。
⑶一种反映上面(1)或(2)所描述的条件或权能的文档说明。
2、需求分析的目标是什么?答:构造一个完全地、精致地目标系统逻辑模型;确定设计约束和定义软件有效性要求。
3、需求分析的任务是什么?答:需求分析阶段研究的对象是软件项目的用户要求,其任务是借助当前系统的逻辑模型,调查研究、分析综合,并通过抽象思维、逻辑推理导出目标系统的逻辑模型,解决系统“做什么”的问题,并将结果准确表达。
4、请你扼要描述需求分析的实现步骤。
答:(1)分析现实世界,充分理解当前系统,并用一个具体模型描述,获得当前系统的物理模型。
(2)在理解当前系统“怎么做”的基础上,抽取“作什么”的本质,抽象出系统的逻辑模型。
(3)分析目标系统与当前系统逻辑上的差别,导出目标系统的逻辑模型。
(4)对目标系统逻辑模型进行补充,以求完整地描述。
5、需求规格书明书的主体内容包括哪些?答:1)概述:软件需求的简要说明2)界面描述:软件系统的实现环境3)模型分析:系统模型的形式规定、限制和说明4)质量评审要求5)其他6、需求规格说明书的基本要求是什么?答:1)完整:考虑细致2)一致:前后内容一致3)精确:数据、任务要精确4)无二义性:不提模棱两可的问题5)符合标准:按国家、国际标准书写6)易维护:应便于修改三、术语解释:聚合关联--------一个类是另一个类的所有物或元素,用一端带有空心菱形的关联来表示,“has-a”关系。
组装关联--------是一种特殊类型的聚合,复合类的实例是物理上由成分类的实例组成的(如,自行车由轮子、手把组成),用实心菱形的聚合表示。
概化关联———一个子类继承父类的所有属性、操作和关联,用一端带有三角形的关联表示,“is-a”关系。
第5章练习题一、填空题:1、健壮性:如果系统包含了适应环境以及从环境中或其他单元中的问题中恢复的机制,那么我们称该系统是健壮的。
2、原型化分为两种类型是:抛弃型原型和快速原型化。
二、简答题:1、满足质量属性有哪7个方面?答:可修改性、性能、安全性、可靠性、健壮性、易使用性、商业目标2、体系结构模式有哪6种?---P161答:理解系统复用以前系统元素展示构建系统蓝图推测系统将会如何演变分析依赖关系为管理决策提供支持3、造成设计崩溃的原因有哪些?答:缺少具体的设计方案缺少设计过程的元方案问题优先级选择不合理在定义解决方案时,难以考虑所有的约束难以在脑海中用多个步骤或多个用例对设计进行模拟难以跟踪和报告解决方案已经推迟的子问题难以从子问题进行扩展,以形成完整的解决方法第6章练习题一、填空1、6条设计原则是:模块化、接口、信息隐藏、增量式开发、抽象、通用性。
2、模块的扇入定义为:指直接调用该模块的上级模块的个数。
扇入大表示模块的复用程序高。
3、模块的扇出定义为:是指该模块直接调用的下级模块的个数。
扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。
扇出过大一般是因为缺乏中间层次,应该适当增加中间层次的模块。
扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。
设计良好的软件结构,通常顶层扇出比较大,中间扇出小,底层模块则有大扇入。
4、设计模式的4个基本要素是:名称、要解决的问题、解决方案、应用后的效果。
二、简答题1、模块耦合有哪6种类型?答:内容耦合公共耦合控制耦合标记耦合数据耦合非直接耦合3、模块内聚有哪7种类型?答:巧合内聚:部分各不相关。
逻辑内聚:只通过代码的逻辑结构关联。
时态内聚:设计被划分成几个用来表示不同执行状态的模块:初始化、读写输入、计算、打印输出,在一个任务中被使用而形成内聚。
过程内聚:按照每个确定的顺序执行一系列的功能。
通信内聚:某些功能操作或生成同一个数据集。
功能内聚:一个模块中包含了所有必须的元素,每个处理元素对于执行单个功能来说都是必须的。
信息内聚:在功能内聚的基础上,将其调整为数据抽象化和基于对象的设计。
三、术语解释信息隐藏------每个模块的实现细节对于其它模块来说是隐蔽的。
也就是说,模块中包含的信息(过程和数据)不允许其它不需要这些信息的模块使用。
第8-9章练习题一、填空1、测试用例的设计方法大体可分为两类:白盒测试和黑盒测试。
2、语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个可执行语句都至少执行一次。
3、边界值总结为三句话是:刚刚等于;刚刚大大于;刚刚小于。
4、单元测试又称模块测试,它着重对软件设计的模块(软件构件或模块)进行验证。
5、常用的系统测试包括恢复测试,安全测试,压力测试,性能测试。
6、安全测试用来验证集成在系统中的保护机制能否实际保护系统不受非法侵入。
二、简答题1、软件测试的目的是什么?答:测试是一个为了发现错误而执行程序的过程一个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例一个成功的测试是指揭示了迄今为至尚未发现的错误的测试2、什么是白盒测试(又称为结构测试)?答:把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作。
3、什么是黑盒测试?答:(又称行为测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。
4、什么是等价类?答:等价类是指输入域的某个子集,该子集中的每个输入数据对揭露软件中的错误都是等效的,测试等价类的某个代表值就等价于对这一类其他值的测试。