软件工程答案_第1页
软件工程答案_第2页
软件工程答案_第3页
软件工程答案_第4页
软件工程答案_第5页
免费预览已结束,剩余6页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 3 章 软件项目管理(习题与参考答案)选择题1. 软件项目管理的“ 4P'是()。(C)A. people , performance , payoff , productB. people,product,performance , processC. people,product,process , projectD. people,process,payoff , product2. ( )项目管理在现代软件开发中是不太重要的,因为大多数项目能够及时完成并成功交付。 ( B)A. 真B. 假3. 在软件开发的各种资源中,( )是最重要的资源。( C)A. 开发工具B. 方法C

2、. 硬件环境D. 人员4. 软件项目规划的第一步是(一步是() 。 ( D)A. 确定项目预算B. 选择团队的组织模型C. 确定项目的约束D. 建立项目的目标和范围5. 下面的()方法最不适合你向团队成员解释他或她为什么表现不合格。( B)A. 个人谈话B. 项目团队会议C. 正式报告D. 电子邮件6. 功能点估算技术需要以()为基础进行问题分解。( A)A. 信息域B. 项目进度C. 软件功能D. 过程活动7. 软件开发团队的每一个成员都应该参与计划活动,以便() 。 ( C)A. 降低计划的粒度B. 深入地分析需求C. 所有成员同意该计划D. 开始设计8. 在攻克技术难题时,最佳的开发团队

3、组织模型是() 。 ( A)A. 民主式结构B. 主程序员式结构C. 技术管理混合式结构D. 以上所有选项都不是9. 在选择开发团队组织结构时应考虑()因素。 ( E)A. 沟通的复杂程度B. 最终程序的规模大小C. 发布日期的严格程度D. 项目预算的多少E.选项A, B和C10. 在软件开发过程中避免受挫的最佳方法之一是() 。 ( A)A. 给予团队成员对于过程和技术决策的更多控制权B. 给予团队成员对于过程和技术决策的更少控制权C. 向团队成员隐瞒坏消息直到事情有所改善D. 根据生产效率奖励团队成员11. 下面的()软件特性不是引起项目协调困难的一个因素。( B)A. 互操作性B. 性能

4、C. 规模D. 不确定性12. 在进行项目范围活动时,问题分解的主要范围是() 。 ( E)A. 客户工作流程B. 需要发布的功能C. 用于发布功能的过程D. 软件过程模型E. 选项 B 和 C13. ( )随着项目计划的不断形成,产品分解和过程分解经常是同时发生的。( A)A. 真B. 假14. 为了将项目失败的风险减少到最小,项目经理需要采取() 。 ( D)A. 将项目团队规模增加一倍B. 要求更大的预算C. 顺利地开始D. 跟踪过程E. 选项 B 和 C15. ( )估算不可靠的唯一原因是估算人员缺乏经验。( B)A. 真B. 假16. ( )由于软件项目估算不完全可靠,所以项目开始后

5、可以忽略这些估算。( B)A. 真B. 假17. 软件项目规划的目的是() 。 ( C)A. 使客户相信项目是可行的B. 使用历史项目数据C. 使项目管理者合理地估算成本和进度D. 在投标项目之前确定大概的利润边界18. 软件项目所需的人数应该() 。 ( D)A. 在估计开发需要的努力之后决定B. 由项目预算数量决定C. 从评价系统复杂性来决定D. 以上所有选项19. ( )估计待开发软件产品的规模必须基于像代码行等直接度量单位。( B)A. 真B. 假20. 代码行估算技术需要以()为基础进行问题分解。( C)A. 信息域值B. 项目进度C. 软件功能D. 软件过程活动21. 功能点估算技

6、术需要以()为基础进行问题分解。( A)A. 信息域值B. 项目进度C. 软件功能D. 软件过程活动22. 经验估算模型是基于() 。 ( C)A. 专家基于过去项目经验的判断B. 期望值估计的细化C. 来自历史项目数据的回归模型D. 反复试验决定参数和系数23. COCOMIOI 是现代经验估算模型的一个实例,它需要以 () 为单位的程序规模信息。( B)A. 功能点B. 代码行C. 工作量D. 以上任何选项24. ( )功能点不能用于估算面向对象的软件。( B)A. 真B. 假25. ( )软件项目延迟是不可避免的,而且无法解释其原因。( B)A. 真B. 假26. ( )将开发团队人数增

7、加一倍可以保证项目完成时间减少一半。( B)A. 真B. 假27. 任务集是()的集合。( A)A. 工作任务、里程碑、工作产品B. 任务分配、成本估算、度量单位C. 里程碑、可交付物、度量单位D. 责任、里程碑、文档28. ( )主动的风险管理有时被描述为救火。( B)A. 真B. 假29. 软件风险总是包括()两个特性。( C)A. 救火和危机管理B. 已知的和未知的风险C. 不确定和损失D. 安置人员和预算30. 风险的三种主要类型是() 。 ( B)A. 商业风险、人员风险、预算风险B. 项目风险、技术风险、商业风险C. 计划风险、技术风险、人员风险D. 管理风险、技术风险、设计风险3

8、1. 下面的()是有效的软件配置项。( E)A. 软件工具B. 文档C. 可执行程序D. 测试数据E. 以上所有选项32. 下面的()配置对象通常不包括在项目数据库中。( C)A. 设计规格说明书B. 可执行程序C. 组织结构描述D. 测试计划33. 基线( Baseline )是指在项目生命周期的不同时间点上,一个或一组配置项通过()而进入正式受控的一种状态。( C)A. 存取控制B. 质量控制C. 正式评审D. 变更管理34. ( )软件工作产品一旦成为基线就不能再更改了。( B)A. 真B. 假35. ( )如果开发小组使用自动化的项目数据库工具,那么就不需要变更控制。( B)A. 真B

9、. 假36. 下面的()不是软件配置管理的任务。( C)A. 变更控制B. 配置状态报告C. 统计质量控制D. 版本控制37. 配置状态报告的主要目的是() 。 ( C)A. 允许项目经理修改项目进度和成本估算B. 评估软件开发人员和组织的绩效C. 确保变更信息传达到受影响的团体D.选项A和CE.选项A、B和C练习题1. 简要说明软件项目管理的过程。参考答案:软件项目管理是为了使软件项目能够按照预定的成本、进度、 质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。软件项目管理的主要过程如下:( 1 )项目启动与建议:在项目启动阶段,定义项目的商业需求,确定项目的目标和实现方

10、法,大致估算项目的成本和进度。( 2) 项目规划与进度:在项目规划阶段,明确项目的各种活动、里程碑和可交付的成果,制定软件开发计划。( 3) 项目组织与执行:根据项目任务的要求选择合适的开发人员,组建项目团队和协调项目资源,按照计划执行和推进整个项目。( 4) 项目监督与评价:在项目执行过程中,密切关注项目的进展情况,综合评价整个项目的实际进展,及时发现和报告实际情况与计划的偏差,在必要的情况下采取纠正行动,同时控制和管理项目的变更。( 5) 项目交付与总结:完成正式的项目交付工作,客户对所交付的软件产品进行验收,项目团队培训用户并移交文档,最后分析和总结项目的经验教训。2. 某个软件项目需要

11、30 名开发人员,现有两种人员组织方案:( 1 ) 将 30 人划为一个开发组统一管理;( 2) 按每个小组6 人的方式,将30 人分为 5 个小组。请分析比较上述两种方案的优缺点。参考答案:由于软件规模的增大,需要多人组成开发小组共同参与一个项目的开发。但是当多个人共同承担软件开发项目中的某一任务时,人与人之间必须通过交流来解决各自承担任务之间的接口问题,这就产生了所谓沟通复杂性的问题。沟通需要花费时间和代价,也会引起软件错误的增加,降低开发效率。( 1 )优点:30 人集中在同一个开发小组,人员任务的分配和调度相对容易;缺点:沟通复杂性高,从而导致人员之间配合混乱,开发效率低。( 3) 优

12、点:30 人划分成5 个小组,降低了沟通复杂性,提高开发效率;缺点:小组之间的协调配合难度大。3. 在选择人员进行软件项目开发时,应该考虑哪些因素?参考答案:参考因素说明 应用领域的经验为了成功地开发系统,开发人员必须了解相关的应用领域。平台的经验在编写底层程序时该因素很重要。编程语言的经验该因素对于短周期的项目是很重要的。教育背景该因素可以显示候选人应该掌握的基础知识和学习能力,由于开发人员的经验可以在项目实践中获得,该因素并非是关键的。沟通能力由于项目成员需要与其他人员、管理者和客户进行口头和书面交流,该因素是十分重要的。适应性 适应性可以通过候选人的各种经历进行判断,该因素反映出一个的学

13、习能力。工作态度项目成员应该有积极的工作态度,乐于学习新技术,该因素很重要但是难以评估。个性 候选人必须与团队成员关系融洽,尚没有软件工程方面的特定个性类型,该因素很重要但是难以评估。第 8 章 面向对象设计(习题与参考答案)选择题1. ( )面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。 ( A)A. 真B. 假2. ( )系统设计的主要任务是细化分析模型,最终形成系统的设计模型。( B)A. 真B. 假3. ( )关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。( B)A. 真B. 假4. ( )用户界面设计对于一个

14、系统的成功是至关重要的,一个设计得很差的用户界面可能导致用户拒绝使用该系统。( A)A. 真B. 假5. 内聚表示一个模块()的程度,耦合表示一个模块()的程度。( B, D)A. 可以被更加细化B. 仅关注在一件事情上C. 能够适时地完成其功能D. 联接其他模块和外部世界6. 良好设计的特征是() 。 ( E)A. 模块之间呈现高耦合B. 实现分析模型中的所有需求C. 包括所有组件的测试用例D. 提供软件的完整描述E. 选项 B 和 DF.选项B、C和D7. ( )是选择合适的解决方案策略,并将系统划分成若干子系统,从而建立整个系统的体系结构;( )细化原有的分析对象,确定一些新的对象、对每

15、一个子系统接口和类进行准确详细的说明。( A, B)A. 系统设计B. 对象设计C. 数据库设计D. 用户界面设计8. 下面的()界面设计原则不允许用户保持对计算机交互的控制。( D)A. 允许交互中断 B. 允许交互操作取消 C. 对临时用户隐藏技术内部信息 D. 只提供一种规定的方法完成任务练习题1. 面向对象设计与面向对象分析的区别是什么?设计包括哪些活动?答案要点:面向对象分析是重点考虑系统“做什么”的问题,即运用面向对象方法对问题域进行分析和理解,建立系统的分析模型;面向对象设计重点考虑系统“怎样做”的问题,即在分析 模型的基础上形成实现环境下的设计模型。面向对象设计主要涉及系统设计

16、、对象设计(或详细设计)、 数据库设计和用户界面设计等活动。 在类设计中,为什么建议使用set 方法和 get 方法进行属性设置和读取?答案要点:目的在于降低类之间的耦合度。下图显示了某个学校课程管理系统的部分类图,其中一个学生( student ) 可以知道所有注册的教师(instructor ) ,一个教师也可以知道所有注册课程的学生。现在提出一个新的需求:“一个教师也可以是某些课程的学生”,那么下面设计AE中哪一个是 最 好 的 ? 为 什 么 ? ( 请 务 必 说 明 理 由 ) Studentname : StringstudentID IntegerregisteredInstr

17、uctors:InstructorgetRegisteredInstructor()InstructorInstructorname : StringinstructorID : IntegerregisteredStudents StudentgetRegisteredStudents() : Student0.* 0.* 设计A:设计B:设计C:设计D: Candicatename : StringcandidateID : Integerstudent : Booleaninstructor :BooleanregisteredCandidate:CandidategetRegister

18、edCandidates()Candidate0.*CandicatecandidateID:IntegernameStringStudentregisteredInstructors: InstructorgetRegisteredInstructor()InstructorInstructorregisteredStudents: StudentgetRegisteredStudents()Student0.*0.*InstructorStudentRoleregisteredCandidate CandidategetRegisteredCandidates()Candicatecand

19、idateID:IntegernameString0.*0.*0.*InstructorStudentCandicatecandidateID: Integername :StringRoleregisteredCandidate : CandidategetRegisteredCandidates()0.*0.*设计E:参考答案:设计A: 这个设计使用了一个自返关联,但其中的registeredCandidate () 方法有问题。如果一个人既是学生又是老师,那么要想同时获得他作为学生对应的所有老师,以及他作为老师对应的所有学生,getRegisteredCandidates () 方法得到

20、的Candidate 数组中并不能区分上述的两种结果。设计B: 这个设计使用了一个泛化关系,但它并没有解决题中给出的新的要求。事实上,这个设计只是在题中已有设计之上的改进,实质还是一样的,并不能描述一个教师也可以是某些课程的学生的情况。设计C:这个设计定义了一个Role类,学生和教师是 Role类的两个子类。如果一个Candidate 对象是教师,可以调用Instructor 类的 getRegisteredCandidates ()方法获得所对应的所有学生;如果这个对象是学生,可以调用Student 类的 getRegisteredCandidates() 方法获得所对应的所有教师;如果这个

21、对象既是教师又是学生,那么分别调用Instructor类的 getRegisteredCandidates () 方法和 Student 类的 getRegisteredCandidates () 方法 即可。设计D:整个设计有着与 B中类似的问题,即一个 Candidate对象要么是一个学生,要么是一个老师,不能同时都是,无法满足新的需求。设计E: 这个设计与D 基本一致,只是把 Candidate 类与 Role 类之间的关联关系改成了聚集关联,同样无法满足新的需求。综上所述,设计C 是最好的。下图是 MortgageApplication 对象的状态图,假设有一个要求,即增加一个“Can

22、celled ”,图中除“ Closed ”状态外的任何状态都可以转换到该状态。请画出修改后的状态图(请不同的修改方法中哪种方法最好)InstructorStudentCandicatecandidateID:Integername:StringRoleregisteredCandidate : CandidategetRegisteredCandidates()0.*0.*参考答案:方法1:方法2:方法2引入了组合状态和子状态,从而可以在组合状态Running 中加入更多的子状态,以保证组合状态的可扩展性。所以说,方法2 相对于方法1 更好一些。5. 请举例说明用户界面设计的基本原则。参考答

23、案:(1)用户控制:用户应当感觉系统的运行在自己的控制之下。在图形界面或基于Web的界面中,用户指导程序的每一步执行;即使在程序进行某些处理或用户等待输出结果时,用户同样保持对控制的敏感度。举例:当程序进行某些需要占用较长时间的处理时,需要为用户提供及时的反馈信息,诸如一个沙漏、一个等待的指示器或其他类似的东西。( 2) 界面一致性:一致性要求用户界面遵循标准和常规的方式,让用户处在一个熟悉的和可预见的环境之中,这主要体现在命名、编码、缩写、布局以及菜单、按钮和键盘功能在内的控制使用等。举例:一个运行在 Windows平台上的三维几何造型系统应当采用Windows图形窗口的“外观和感觉” ,与

24、 Office 类型软件保持一致的界面风格和操作方式。( 3) 界面容错性:一个好的界面应该以一种宽容的态度允许用户进行实验和出错,使用户在出现错误时能够方便地从错误中恢复。举例: Microsoft Word 系统允许撤消用户对文档的许多最近操作,从而处理用户的误操作问题。( 4) 界面美观性:界面美观性是视觉上的吸引力,主要体现在具有平衡和对称性、合适的色彩、各元素具有合理的对齐方式和间隔、相关元素适当分组、使用户可以方便地找到要操作的元素等。举例:清华大学软件学院综合信息服务系统的Web界面在平衡和对称、色彩、元素分组、用户方便地查找信息等方面进行了良好的设计。( 5) 界面可适应性:界

25、面可适应性是指用户界面应该根据用户的个性要求及其对界面的熟知程度而改变,即满足定制化和个性化的要求。所谓定制化是在程序中声明用户的熟知程度,用户界面可以根据熟知程度改变外观和行为;所谓个性化是使用户按照自己的习惯和爱好设置用户界面元素。举例:系统允许用户选择语言类型(中文、英文、意大利文等),并系统根据用户定制的语言类型显示不同语种的用户界面。第 9 章 软件实现(习题与参考答案)选择题1. ( )在程序设计中使用括号以改善表达式的清晰性。( A)A. 真B. 假2. ( )在程序设计中应尽可能对程序代码进行优化。( B)A. 真B. 假3. ( )不要修补不好的程序,要重新写。( A)A. 真B. 假4. ( )程序中的注释是可有可无的。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论