软件工程习题与参考答案计算机 2010.doc_第1页
软件工程习题与参考答案计算机 2010.doc_第2页
软件工程习题与参考答案计算机 2010.doc_第3页
软件工程习题与参考答案计算机 2010.doc_第4页
软件工程习题与参考答案计算机 2010.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

软件工程习题与参考答案计算机 2010-10-18 17:35:39 阅读334 评论0 字号:大中小 订阅 第1章 概述(习题与参考答案)判断题1. 由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。()2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。()3. 购买大多数计算机系统所需的硬件比软件更昂贵。()4. 大多数软件产品在其生命周期中不需要增强功能。()5. 大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。()6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。()选择题1. ( )因素促使计算机系统越来越复杂。(D)A. 计算机内存和存储容量上的巨大增长B. 外部输入输出选项的更加多样性C. 计算机体系结构方面的深刻变化D. 以上所有选项2. 下面的( )不再是现代软件工程师关注的问题。(A)A. 为什么计算机硬件的成本这么高?B. 为什么软件需要很长时间才能完成?C. 为什么开发一个软件的成本这么高?D. 为什么不能在产品发布前去除软件错误?3. 软件会逐渐退化而不会磨损,其原因在于( )。(C)A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在使用之后C. 不断的变更使组件接口之间引起错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其原因在于( )。(C)A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法使用C. 软件在不使用其他组件的情况下很容易构造出来D. 商业组件在很多应用领域中可以得到5. 下面的( )说法是正确的。(C)A. 软件危机在20世纪70年代末期全面爆发B. 当前先进的软件工程方法已经解决了软件危机的问题C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的基本目标是( )。(B)A. 消除软件固有的复杂性B. 开发高质量的软件C. 努力发挥开发人员的创造性潜能D. 更好地维护正在使用的软件产品7. ( )是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。(D)A. 软件产品B. 软件过程C. 软件测试D. 软件工程8. 软件工程的基本要素包括方法、工具和( )。(C)A. 软件系统B. 硬件环境C. 过程D. 人员9. 软件工程师在从事软件工作时应使用下面的( )准则。(E)A. 从来不为个人获利而窃取数据B. 从来不散布或出售项目中自己工作的信息C. 从来不故意毁坏或修改别人的程序、文件或数据D. 从来不侵犯个人、小组或组织的隐私E. 以上所有选项练习题1. 软件与其他工程学科所产生的制品有什么根本区别?答案要点:(1) 软件是人类思维和智能所延伸的产物,其数据、状态和逻辑关系的组合以及人类思维的复杂性和不确定性导致它本身具有极高的复杂性;(2) 软件具有不可见性,它是抽象的,形式化和逻辑化的。(3) 软件具有可变性,有用的软件需要不断地修改和扩展,但是频繁的修改可能导致软件的退化;(4) 软件的开发在很大程度上依然是手工作坊式的,难以实现工厂化的生产。2. 软件工程包括哪些基本要素?请简要说明这些要素及其作用。答案要点:软件工程包括过程、方法和工具三个要素。? 软件工程过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理,从而将人员、技术、组织与管理有机地结合在一起,实现在规定的时间和预算内开发高质量软件的目标;? 软件工程方法为软件开发提供了“如何做”的技术,通常包括某种语言或图形的模型表示方法、良好的设计实践以及质量保证标准等;? 软件工程工具为软件工程方法提供了自动的或半自动的软件支撑环境,辅助软件开发任务的完成。现有的软件工具覆盖了从需求分析、系统建模、代码生成、程序调试和软件测试等多个方面,形成了集成化的软件工程开发环境CASE。3. 软件工程是以系统的、可控的、有效的方式产生高质量的软件,请说明你对“高质量软件”含义的理解。答案要点:软件质量是软件产品与明确的和隐含的需求相一致的程度,它通常由一系列的质量特性来进行描述,包括正确性、可靠性、有效性、可用性、复用性、可维护性、可移植性等。例如,除了要求软件正确运行之外,人们可能还希望软件运行的响应时间符合要求、软件使用方便快捷、程序代码易于理解等,而“程序代码易于理解”往往是一种用户没有明确提出的需求,但却是影响软件演化的重要因素。4. 有人认为“软件工程过于耗费时间,并且妨碍开发人员的编程效率。”你是否认同这种观点?请阐述理由。答案要点:这一观点是不正确的。? 软件开发远不只是编程,管理不当导致的混乱、工作重复、交流不畅等才是大多软件项目效率低下的主要原因。虽然直接编程在开发前期看来效率高,但是不完整的、不清晰的或错误的需求和设计将导致在开发后期反复地修改程序,反而降低了整个开发效率,其质量也无法保证,甚至导致软件开发最终失败的结果。? 软件工程是帮助人们在有限的时间、金钱预算和人力、物力资源的约束下开发出质量尽量高的软件的一系列理论和工具,虽然它在编程之外的工作上花费了大量时间,但所耗费的时间与精力并不像其表面上所看起来的那样冗余与低效,而是从总体上做好整个体系的设计与把握,全方位地规划开发过程,对节省成本、提高效率、保证最终产品质量起到了事半功倍的作用。 第2章 软件过程(习题与参考答案)选择题1. ( )是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。(A)A. 软件过程B. 软件工具C. 软件产品D. 软件工程2. 软件过程的基本活动是( )。(A)A. 分析、设计、实现、测试、演化B. 沟通、计划、建模、构造、部署C. 计划、分析、设计、实现、调试D. 沟通、风险管理、度量、产品化、评审3. ( )软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的依据。(B)A. 真B. 假4. 软件开发的瀑布模型是( )。(A)A. 适用于需求被清晰定义的情况B. 一种需要快速构造可运行程序的好方法C. 最适合于大规模团队开发的项目D. 已不能用于现代环境的过时模型5. 软件开发的增量模型是( )。(B)A. 适用于需求被清晰定义的情况B. 一种需要快速构造核心产品的好方法C. 最适合于大规模团队开发的项目D. 一种不适用于商业产品的创新模型6. 快速原型开发模型是( )。(B)A. 适用于客户需求被明确定义的情况B. 适用于客户需求难以清楚定义的情况C. 最适合于大规模团队开发的项目D. 很难产生有意义产品的一种冒险模型7. 演进式软件过程模型( )。(D)A. 本质上是迭代的B. 可以很容易适应需求的变化C. 通常不会抛弃所产生的系统D. 以上所有选项8. 螺旋模型( )。(C)A. 在软件产品发布时结束B. 比增量模型更加混乱C. 在每一次迭代过程中包含项目风险评价D. 以上所有选项9. 基于组件的开发模型( )。(C)A. 只适用于计算机硬件设计B. 不能支持可重用组件的开发C. 在面向对象技术获得支持的情况下应用得更好D. 增加了开发风险和成本10. 形式化方法模型是将数学方法用于( )。(D)A. 定义计算机系统的规格说明B. 开发无错误的计算机系统C. 验证计算机系统的正确性D. 以上所有选项11. 下面的( )不是RUP模型的阶段。(D)A. 启动阶段B. 精化阶段C. 构造阶段D. 确认阶段练习题1. 请简要说明软件过程的概念和基本元素。答案要点:软件过程是软件工程人员为了获得软件产品在软件工具支持下实施的一系列软件工程活动,它应该明确定义以下元素:? 过程中所执行的活动及其顺序关系? 每一个活动的内容和步骤? 团队人员的工作和职责2. 请描述快速原型过程模型的各个阶段。答案要点:快速原型方法的目的是解决软件需求不明确给开发带来风险的问题,其关键在于尽可能“快速”地建造原型,通过用户对原型的评价最终确定系统的需求。快速原型过程模型包括以下阶段:? 原型需求分析:分析和提炼所收集到的客户需求;? 原型开发:基于初步的需求快速建造一个可以运行的软件原型,实现客户或未来的用户与系统的交互;? 原型评价:由用户或客户对该原型进行评价,需要的话再进一步细化待开发软件的需求,并继续调整原型直至需求确定下来为止。3. 对于下列每一个过程模型,分别列举一个可以适用的具体软件项目,并说明在开发中如何应用该模型。(1) 瀑布模型(2) 快速原型模型(3) 增量模型(4) 形式化方法模型(5) 基于组件的开发模型答案要点:(1) 瀑布模型项目举例:某项目需要在一种新型机器上,为一种已知语言开发一个普通的编译器。选用分析:由于该项目的语言是已知的,需求是明确的和稳定的,整个系统属于中小规模,因此适合采用瀑布模型进行软件开发。阶段说明:略。(2) 快速原型模型项目举例:某公司需要给火车站开发一个交互式火车车次查询系统,这是火车站首次使用该系统。选用分析:本项目的主要问题在于用户需要方面,该系统与最终用户的交互是十分关键的,但是在项目初期用户的需求基本上是不知道的,因此适合采用快速原型方法来确定用户需求,在需求确定的基础上再开发最终系统。阶段说明:略。(3) 增量模型项目举例:某公司开发一个通用CAD软件产品,产品需求是逐步完善的,某些需求在一定范围内是明确的,某些需求需要进一步细化,但是迫于市场竞争的压力产品需要尽快上市。选用分析:通用CAD软件产品具有一定的成熟度,总体需求和软件系统结构是可以确定的,但是实现该产品所有功能需要比较长的开发周期。为了尽快上市可以采用增量模型实行多版本的发布策略,既可以很快占领市场又可以为后续版本的需求定义奠定基础。阶段说明:略。(4) 形式化方法模型项目举例:某公司开发一个汽车防抱死刹车控制系统。选用分析:由于该系统对安全性和可靠性要求极高,需要在系统运行之前进行相关性能的检验,因此适合采用形式化方法开发该系统。阶段说明:略。(5) 基于组件的开发模型项目举例:某公司开发企业管理ERP系统,包括销售、库存、生产、财务、物流、人力资源等部分,在系统实施过程中不同的企业具有一定的需求差异。选用分析:企业ERP系统具有组件化的结构,在不同企业实施时应该尽量重用已有的组件,因此适合采用基于组件的开发模型开发该系统,在直接应用或者修改使用的基础上,最终进行组件开发和系统集成。阶段说明:略。4. 在螺旋模型中,风险分析的作用是什么?答案要点:在螺旋模型中,软件开发是在风险等级的指导下进行的。首先确定该阶段的目标,完成这些目标的选择方案及其约束条件;其次从风险角度分析方案的开发策略,努力排除各种潜在的风险,在需求不适当的情况下可能需要建造原型系统;如果某些风险不能排除,该方案可能立即终止,否则继续启动下一步的软件开发和验证工作,并再次通过风险分析规定过程遵循的策略;最后,评价该阶段的结果,并规划下一个迭代。从上述过程中可以看出,风险分析的作用是通过识别项目中的高风险问题,使开发人员制定适当的开发策略消除这些风险。5. 某大学准备开发一个新的学生注册选课系统,以替换一个现有的系统。请设计一个适用于该系统开发的过程模型,并进一步描述该模型。答案要点:假设原有的学生注册课程系统是由学生手工提交书面选课单,教师手工提交成绩单,教务管理人员在客户端录入学生选课结果和课程成绩;而在新的选课系统中,所有用户在自己的计算机上通过Internet访问和操作该系统,该软件系统需要更新服务器和数据库等系统,并扩充一些新功能和提高系统性能。从该系统的具体情况来看,系统的需求是比较容易明确的,整个系统的结构需要重新设计,但是原有的遗留系统中有些部分是可以重用的,因此我们可以采用组件模型实施软件开发:? 系统需求分析:由于该系统是现有系统的扩展,因此首先可以经过一个简单的需求分析阶段,从而确定新系统的需求。? 遗留系统分析:在需求确定的基础上,开发人员分析遗留系统并研究新系统的总体结构,选择重用原有的课程信息管理部分,重新开发选课部分,必要时适当修改系统需求,最终确定系统需求和总体结构。? 设计开发阶段:开发人员进一步设计相关子系统,将原有的课程信息管理部分封装为子系统,重新开发学生选课子系统,并实现与外部付费系统的接口。? 系统测试阶段:开发人员将所有子系统集成在一起,交给测试人员开始全面的功能测试和性能测试。根据所报告的测试问题,开发人员调试和修改程序。? 系统交付阶段:测试通过后,开发人员将系统及其相关文档交付用户验收。6. 请举例说明不同的过程模型组合使用的情况。答案要点:在前面提到的企业管理ERP系统项目中,可以将快速原型方法、组件开发模型和增量模型组合在一起使用,即在需求分析阶段采用原型方法确定需求,采用组件化的结构设计整个系统,并采用增量方式逐步交付整个系统。 第4章 需求工程(习题与参考答案)选择题1. ( )在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做什么。(A)A. 真B. 假2. ( )软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的依据。(B)A. 真B. 假3. 在项目初始阶段,开发任务的目标是( )。(A)A. 理解基本问题B. 确定所需的解决方案C. 确定需要解决方案的人员D. 以上选项都不是E. 选项A、B和C4. 下面的( )将造成需求获取困难的问题。(E)A. 预算(budgeting)B. 范围(scope)C. 理解(understanding)D. 挥发性(volatility)E. 选项B、C和D5. 需求分析的结果是产生定义下面( )问题域的分析模型。(D)A. 信息B. 功能C. 性能D. 以上所有选项6. ( )目前存在一个很普遍的现象,即不同的客户提出的需求是相互矛盾的,但每个人都争辩自己是正确的。(A)A. 真B. 假7. ( )利益相关者(stakeholders)是将来购买所开发软件系统的人。(B)A. 真B. 假8. 需求规格说明描述了( )。(A)A. 计算机系统的功能、性能及其约束B. 每个指定系统的实现C. 软件体系结构的元素D. 系统仿真所需要的时间9. 组织需求评审的最好方法是( )。(D)A. 检查系统模型的错误B. 让客户检查需求C. 将需求发放给设计团队去征求意见D. 使用问题列表检查每一个需求10. 使用跟踪表有助于( )。(C)A. 在后续的检查运行错误时调试程序B. 确定算法执行的性能C. 识别、控制和跟踪需求的变化D. 以上选项都不是11. ( )需求工程师的任务是将所有利益相关者的信息进行分类以便允许决策者选择一个相互一致的需求集。(B)A. 真B. 假12. 下面的( )不是在项目启动阶段被提出的“与环境无关”的问题。(B)A. 成功的解决方案将带来什么样的经济收益?B. 谁反对该项目?C. 谁将为该项目付款?D. 谁将使用该解决方案?13. ( )开发人员与客户创建用例以帮助软件团队理解有多少类型的最终用户将使用这些功能。(B)A. 真B. 假14. 在各种不同的软件需求中,( )描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,( )是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。(B,C)A. 业务需求B. 功能需求C. 非功能需求D. 用户需求15. 需求导出后产生的工作制品将依赖于( )而不同。(B)A. 预算多少B. 将要构建的产品规模C. 正在使用的软件过程D. 利益相关者的需要16. ( )用例参与者总是人员而不是系统设备。(B)A. 真B. 假17. ( )在需求确认过程中需求模型被评审以保证其技术可行性。(B)A. 真B. 假18. 在需求开发过程中,软件工程师应与客户合作共同定义( )。(E)A. 客户可见的使用场景B. 重要的软件特性C. 系统的输入与输出D. 选项A和BE. 选项A、B和C练习题1. 请举例说明使用自然语言描述用户需求和系统需求的问题。答案要点:用自然语言描述比较详细的需求时经常暴露以下问题,从而容易引起误解。? 由于自然语言存在二义性,因此人们对同一个术语经常存在语义理解上的偏差。? 用自然语言描述需求存在比较大的随意性,人们对同一个事物有完全不同的方式进行描述。? 自然语言描述需求缺乏模块化,因此很难发现所描述需求之间的相关性。2. 请指出下面需求描述存在的问题,并进行适当的修改。(1) 系统用户界面友好。(2) 系统运行时应该占用尽量少的内存空间。(3) 即使在系统崩溃的情况下,用户数据也不能受到破坏。(4) ATM系统允许用户查询自己银行帐户的现存余额。(5) ATM系统应该快速响应用户的请求。(6) ATM系统需要检验用户存取的合法性。(7) 所有命令的响应时间小于1秒;BUILD命令的响应时间小于5秒。(8) 软件应该用JAVA语言实现。答案要点:(1) 问题:“友好”是不可验证的。改正:具有一年计算机使用经验的用户经过3小时的培训就可以学会使用该系统。(2) 问题:“尽量少”存在歧义。改正:系统运行时所占用的最大内存空间是256MB。(3) 问题:“不能受到破坏”是不可验证的。改正:如果系统发生崩溃,那么该系统重新正常启动后,可以将用户数据恢复到最后未完成操作执行前的状态。(4) 该描述是正确的。(5) 问题:“快速”是不可验证的。改正:ATM系统将在1秒钟之内响应用户的请求。(6) 问题:“如何验证合法性”是存在歧义的。改正:ATM系统将通过用户名和口令验证其存取的合法性。(7) 问题:所有命令中必然会包括BUILD命令,因此这两个需求描述是矛盾的。改正:去掉关于BUILD命令的需求描述。(8) 问题:该描述不是功能需求或非功能需求,应该是对设计实现的一个约束条件。3. 需求工程包括哪些基本活动?每一项活动的主要任务是什么?答案要点:需求工程分为需求开发和需求管理两个部分,而需求开发又可进一步分为需求获取、需求分析、规格说明和需求验证四个阶段。这些基本活动的主要任务包括:(1) 需求获取:采集、识别和提取用户的需求,对问题和需求形成文档化的描述,使各种人员达成一致的理解和认可。(2) 需求分析:分析和综合所采集的信息,建立系统的详细逻辑模型。(3) 需求规格说明:编写软件需求规格说明书,明确、完整和准确地描述已确定的需求。(4) 需求验证:评审软件需求规格说明,以保证其正确性、一致性、完备性、准确性和清晰性。(5) 需求管理:定义需求基线,在整个项目过程中跟踪需求状态及其变更情况。4. 请比较本章介绍的几种主要需求获取技术,说明每一种技术的优缺点和适用场合。答案要点:(1) 用户面谈优点:? 可以与项目相关人员一对一地进行交谈和讨论;? 具有私密性,使被访者可以直率地和无隐瞒地回答问题;? 便于探查一些附加信息或反馈信息;? 有利于与客户建立良好的关系。缺点:? 面谈是一种非常费时和高成本的方式;? 难以解决不同的项目干系人之间的冲突和矛盾;? 在地理位置相距较远的情况下很难实施。适用场合:? 适用于在初步理解整体概念的情况下讨论和交流一些细节问题。(2) 需求专题讨论会优点:? 有助于了解系统需求;? 有利于共享系统开发的成果;? 给用户一种主人的感觉;? 可以与足够多的项目干系人进行讨论和交流,且节省时间;? 支持头脑风暴式的讨论。缺点:? 需要占用参与人员比较长的整块时间;? 主持人的能力和会议的准备工作必须是非常好的,否则结果很糟。适用场合:? 适用于讨论和审查软件系统方案和模型,解决不同项目干系人之间的冲突和矛盾。(3) 观察用户工作流程优点:? 通过直接观察的方式提取用户或系统的特性;? 有助于理解难以用语言描述清楚的复杂业务。缺点:? 观察可能使用户紧张,从而表现得与往常不同。适用场合:? 适用于理解难以用语言描述清楚复杂业务过程。(4) 原型化方法优点:? 通过一个可以运行的软件原型直观地理解和澄清问题,便于使开发人员与用户达成共识。缺点:? 用户容易产生误解,认为软件系统可以在原型的基础上很容易地构建,但实际上该原型的内部结构和程序质量比较差。适用场合:? 适用于用户需求不明确或描述不清楚的情况。5. 哪些人应该参与需求评审?请画出一个需求评审的组织过程模型。答案要点:通常情况下,参与需求评审的人员应该包括需求分析员、项目经理、体系架构设计师、软件设计工程师、系统测试工程师、质量保证员、用户或市场代表、文档编写人员、领域专家和技术支持代表。制定评审计划初始 需求文档 准备工作需求跟踪修改跟踪基线需求文档6. 在某些紧急情况下,软件可能在需求变更请求被批准之前就进行修改。请给出一个修改过程模型,确保需求文档和系统实现不会产生不一致。答案要点:一般来说,应该尽量避免在需求变更请求被批准之前就直接修改程序的情况,这很容易导致变更失控而且需求描述与系统实现不一致。一旦出现这种情况,必须在系统变更完成后重新执行需求跟踪控制。回溯检查跟踪链评估变更影响实施统一变更验证变更结果结束 开始 成功 失败 生成临时版本程序变更7. 请补充本章MiniLibrary系统的非功能需求和其他需求,并使用4.2.3节给出的模板编写该系统的需求规格说明文档。参考答案:1 简介1.1 目的本文档描述了一个小型图书资料管理系统MiniLibrary V1.0版本的软件功能需求和非功能需求,其阅读对象是本项目的客户、开发和维护系统的开发团队成员。1.2 范围小型图书资料管理系统MiniLibrary是一个基于WEB的应用软件,它允许读者在线搜索图书资料信息,并且可以预订目前借不到的图书资料。同时,图书管理员使用计算机实现对学院图书资料的登记、借出、归还、查询等管理。关于项目描述参见MiniLibrary系统前景与范围文档V1.0,其版本1的描述列出了本文档实现的全部特性。1.3 定义、缩写词以及简写缩写和术语说明MiniLibrary本软件的名称。(略)(略)1.4 参考文献1 MiniLibrary系统前景与范围文档 V1.02 (略)2 综合描述2.1 产品前景MiniLibrary系统是一个应用计算机的新系统,它取代了当前在某学院图书资料室以手工方式管理图书资料的过程,可以提高学院图书资料管理的工作效率,并为读者带来便利。该系统有图书管理员和普通读者两种用户,普通读者必须首先进行注册才可以使用该系统。图书管理员负责添加、更新和删除系统中的图书资料信息,并登记和查询图书资料的借出或归还情况。普通读者可以按照作者或者主题检索图书资料信息,并且可以预订目前借不到的图书资料。一旦预订的图书资料被归还或已购买,系统将立即通知预订者。该系统应该是可定制的,图书管理员可以设置图书管理规则;该系统的设计应该支持扩展性,希望可以演化成若干版本,最终实现对各种图书资料的完整管理,并能够适用于更大范围的图书资料管理。2.2 产品功能特性1:设置图书资料管理规则。特性2:创建、修改、删除和查询图书资料。特性3:创建、修改、删除和查询读者信息。特性4:登记借书记录。特性5:登记归还记录。特性6:预订目前借不到的图书资料。特性7:取消已有的预订。特性8:邮件通知预定者借阅所预订的图书资料。特性9:邮件催促读者归还到期图书资料通知。特性10:用户可以通过Internet访问系统。2.3 用户特征用户类说明读者是学院的教师和学生,他们希望能够在线搜索图书资料信息,并且可以预订目前借不到的图书资料。大约每年有3000人,其中估计有1000人预计平均每星期每人使用MiniLibrary系统2次(来源:根据当前图书资料的使用数据)。所有的读者都可以从办公室、实验室、宿舍、家庭等访问互联网,读者希望系统能够通知预订图书已可借阅,或者催还到期的图书,并能够取消已有的预订。读者学院目前有2名图书管理员,他们负责添加、更新和删除系统中的图书资料信息,登记和查询图书资料的借出或归还情况。图书管理员需要接受培训,学会如何使用计算机、WEB浏览器和MiniLibrary系统。图书管理员预订请求图书信息图书信息 还书记录 图书管理员 图书资料管理系统MiniLibrary 读者 邮件系统 借书通知催还通知借书记录 管理规则 读者信息 预订取消2.4 一般性限制2.4.1 运行环境? 系统应该运行在Windows XP以及以上版本的平台上;? 支持Microsoft IE 5.0和6.0版本的浏览器;? 服务器采用Windows NT 2003操作系统。2.4.2 设计和实现约束? 系统的开发文档将遵循公司的开发标准V1.0? 软件开发语言为ASP.NET和C#,数据库系统为SQL Server 20032.4.3 用户文档? 系统将提供在线联机帮助系统。3 详细需求3.1 功能需求MiniLibrary系统的整体功能见如下的用例图。“登录”用例:使用此系统的人员需要进行登录,以验证其身份和权限。“查询浏览”用例:用户可以检索图书资料信息、读者注册信息和读者借还书记录等。“预订图书”用例:读者预订目前借不到的借书。“取消预订”用例:读者取消已有的预订。“管理读者”用例:图书管理员维护普通读者的注册信息。“管理图书资料”用例:图书管理员增加、修改和删除图书资料的基本信息。“管理书目”用例:图书管理员增加、修改和删除书目信息。“登记借书”用例:图书管理员登记普通读者的借书记录。“登记还书”用例:图书管理员登记普通读者的还书记录。有关上述用例的详细描述参见“附录C:MiniLibrary用例描述”。3.2 外部接口需求3.2.1 用户界面? 系统对所显示的每个HTML页面都提供帮助链接,说明该页面的操作。? WEB页面的操作除了综合使用鼠标和键盘共同完成之外,还可以只通过键盘来完成。3.2.2 硬件接口无。3.2.3 软件接口? 与现有的邮件系统连接给读者发送通知邮件。3.2.4 通信接口无。3.3 性能需求? 在每周15的上午9:0011:00和下午3:005:00是高峰时间,系统将能适应5000个用户同时使用,平均每个会话估计持续10分钟。? 系统的所有WEB页面在百兆的光纤网上全部显示时间的最大值是10秒钟。? 系统对用户请求的最大响应时间是5秒钟,在此时间内将响应结果显示在屏幕上。? 用户必须使用用户名和口令登录系统成功后才可以执行系统其他操作。? 系统只允许读者查看自己的借还记录,而不能查看别人的记录。? (略)3.4 质量属性? MiniLibrary系统将在每周7天每天24小时的95%时间可用。? 如果在借书、还书、预订等操作执行完成之前,用户和系统的连接中断,MiniLibrary系统将恢复到操作执行之前的状态。4 支持信息附录A 词汇表附录B 图书管理规则附录C MiniLibrary用例描述附录D MiniLibrary系统分析模型8. 请给出以下问题描述的用例模型。一个新的音像商店准备采用计算机系统向比较广泛的人群销售或租借录像带和光碟。该音像商店将存有大约1000盘录像带和500张光碟,这些订购涉及多家订购商。所有的录像带和光碟都有一个条码,可以使用条码扫描仪来支持销售和返还,客户会员卡也同时条码化。客户可以预定录像带并在指定日期来取。系统必须拥有灵活的搜索机制来回答客户的询问,包括关于该音像商店还没有进货的电影(但可能是已经请求订购了)。参考答案:下面给出参考的用例图,其中有关用例描述省略。 第5章 面向对象基础(习题与参考答案)选择题1. ( )模型是对现实的简化,建模是为了更好地理解所开发的系统。(A)A. 真B. 假2. ( )UML语言支持面向对象的主要概念,并与具体的开发过程相关。(B)A. 真B. 假3. 类的结构是( )。(E)A. 由代码来表示B. 由属性和关系来表示C. 由操作来表示D. 由对象的交互来表示E. 选项B和C4. 类的行为是( )。(A)A. 由一组操作决定B. 由类的属性决定C. 对类的每一个对象唯一的D. 由父类决定E. 选项A和B5. ( )是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。(C)A. 多态性B. 继承C. 封装D. 消息6. ( )意味着一个操作在不同的类中可以有不同的实现方式。(A)A. 多态性B. 多继承C. 消息D. 封装7. UML是( )的缩写。(B)A. Unified Module LanguageB. Unified Modeling LanguageC. Universal Module LevelingD. Universal Module Language8. 顺序图反映对象之间发送消息的时间顺序,它与( )是同构的。(C)A. 用例图B. 类图C. 协作图D. 状态图9. ( )定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。(A)A. 用例图B. 类图C. 活动图D. 状态图10. 状态图包括( )。(E)A. 类的状态B. 状态之间的转换C. 类执行的动作D. 触发类的动作的事件E. 所有以上选项练习题1. 请解释下列术语,并举例说明之。对象、类、属性、操作、关联、泛化、聚合、依赖参考答案:(1) 对象(Object)对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。举例:中国就是一个对象。(2) 类(Class)类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,包括属性和服务两个主要部分。举例:学生、人、树木等都是类。(3) 属性(Attribute)属性是用来描述对象静态特征的一个数据项。举例:学生具有姓名、性别、年龄等属性。(4) 操作(Operation)操作是类的实例被要求执行的服务,具有名字和参数列表。举例:学生具有入学注册、选课等操作。(5) 关联(Association)关联是一种结构关系,说明一个事物的对象与另一个事物的对象之间的联系。举例:学生与课程之间的关系就是关联,一个学生可以选修多门课程,一门课程也可以被多个学生选修。(6) 泛化(Generalization)泛化是一种一般事物(父类)和特殊事物(子类)之间的关系。举例:学生与研究生之间是泛化关系,研究生是一类特殊的学生。(7) 聚合(Aggregation)聚合是一种特殊类型的关联,描述了整体和部分间的结构关系。举例:学校和系之间存在聚合关系,系是学校的一个组成部分。(8) 依赖(Dependency)依赖是一种使用关系,描述了一个事物发生变化会影响到另一个使用它的事物。举例:课程表使用课程,二者之间是依赖关系。2. 请简要说明类图和顺序图的组成。参考答案:在系统中,类图由类、类的属性和操作以及类之间的各种联系所组成。下图显示了计算机及其组成部分,如处理器、内存、键盘、硬盘、显示器等。 计算机 内存 显示器 键盘 硬盘 处理器时序图表示对象之间的交互顺序,它由角色、对象、生命线和消息组成,其中角色代表与系统交互的外部事物。下图显示了时序图的一种通用表示方法。message3 message2 message1 actor object1 object23. 在软件开发过程中为什么需要建立模型?答案要点:在软件开发过程中,建立软件模型具有十分重要的作用,主要体现在以下方面:? 有助于问题的简化,通过抽象降低复杂性;? 有助于和其他开发小组成员、各种用户以及系统相关者进行交流;? 有助于维护人员了解软件设计的思路和细节,为以后的维护和升级提供了文档。4. UML关系包括关联、聚合、泛化、实现、依赖等5种类型,请指出下面关系的类型,并采用UML符号表示这些关系。(1) 在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是什么关系?(2) 类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是什么关系?(3) 接口及其实现类或构件之间是什么关系?(4) 一个汽车有四个轮子,那么类“汽车”和“轮子”之间是什么关系?(5) 学生与研究生之间是什么关系?参考答案:(1)关联 (2)依赖 (3)实现 (4)聚合 (5)泛化5. 请根据下面的描述,给出表示一本书的类图。一本书由许多部分组成,而这些部分又由许多章组成,章由节组成。一本书包括出版商、出版日期和ISBN;一部分包括一个标题和一个序号;一章包括一个标题、一个序号和一个摘要;一节包括一个标题和一个序号。参考答案:书 出版商 出版日期 ISBN 部分 标题 序号 章 标题 序号 摘要 节 标题 序号 1.n 1 1.n 1 1.n 16. 考虑习题6.5的类图,注意部分、章和节等类都包括标题和序号属性,请修改类图,添加一个抽象类和一个泛化关系,将标题和序号这两个属性提取到抽象类中。参考答案: 单元 标题 序号 书 出版商 出版日期 ISBN 部分 章 摘要 1.n 1 1.n 1 1.n 1 节7. 请在习题4.8生成的用例图中选择一个用例,画出该用例的顺序图。参考答案:8. 请根据以下描述,给出电话应答机的状态图。电话应答机能够记录来电的信息并在LED显示屏上显示来电号码。系统允许话机的使用者键入一串数字进行拨号,并能使记录的信息重放出来。参考答案: 第6章 面向对象分析(习题与参考答案)选择题1. ( )面向对象分析的核心在于建立一个描述软件系统的模型。(B)A. 真B. 假2. 关于面向对象分析,下列的( )是正确的。(A)A. 它是系统需求建模的方法B. 它是分析系统设计的技术C. 可以从分析直接编写代码D. 在软件生命周期中,它出现在面向对象设计之后3. 下列的( )不是分析建模的目的。(C)A. 定义可验证的软件需求B. 描述客户需求C. 开发一个简单的问题解决方案D. 建立软件设计的基础4. 下列的( )不属于面向对象分析模型。(C)A. 用例图B. 类图C. 实体关系图D. 顺序图5. ( )分析类用于描述系统中概念层次的对象。(A)A. 真B. 假6. 在分析类中,( )用于描述一个用例所具有的事件流控制行为。(D)A. 实体类B. 界面类C. 接口类D. 控制类7. ( )在基于用例的面向对象分析过程中,定义交互行为的关键在于通过描述分析类实例之间的消息传递将用例的职责分配到分析类中。(A)A. 真B. 假8. 开发人员使用( )可以将用例的行为分配到所识别的分析类中。(B)A. 用例图B. 顺序图C. 类图D. 状态图9. 分析模型一般采用( )方式进行验证。(C)A. 总结B. 阶段性报告C. 需求分析评审D. 转化成设计模型10. ( )需求评审人员主要由开发人员组成,一般不包括用户。(B)A. 真B. 假练习题1. 面向对象分析包括哪些活动?应该建立哪些类型的模型?参考答案:面向对象分析的主要活动包括理解用例模型、识别分析类、定义交互行为、建立分析类图以及评审分析模型等。 理解用例模型 识别分析类 定义交互行为建立分析类图评审分析模型面向对象分析应该建立功能模型、分析对象模型和动态模型等三种类型,其中功能模型由用例和场景表示,分析对象模型由类图和对象图表示,动态模型由状态图和顺序图表示。2. 什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型?参考答案:实体类用于描述必须存贮的信息及其相关行为;边界类用于描述外部参与者与系统之间的交互;控制类用于描述一个用例所具有的事件流控制行为。将分析类划分成这三种类型的好处在于:? 所产生的类更小更专门化;? 这种划分将易变的外部界面与系统基本功能进行了屏蔽,使分析模型更易于变化。3. 请考虑下图的对象模型,运用你对Gregorian日历的知识,指出该模型存在的所有问题,并给出修改后的正确模型。存在错误“月”与? 其他关系之间的多重性不正确修改结果:(1) 类图中显示了哪些关系?(2) 一个教师可以同时在多个系参考答案:(1) 类图显示了两个关系:? “学校”与“系”之间的一对多关联? “系”与“教师”之间的多对多关联(2) 一个教师可以同时在多个系工作,因为它们之间是多对多关联。5. 如下图所示,ScheduleOfferingInfo被称作什么类?其作用是什么? RegisterForCoursesFormScheduleScheduleOfferingInfoCourseOffering0.n0.nStudent0.n10.n1RegisterController11+currentSchedule0.1参考答案:ScheduleOfferingInfo被称为关联类,它表示两个类之间的关联关系,但本身具有与之相关的属性和操作。关联类的主要作用是处理多对多关系,通常将这种关系转变成两个一对多关系。6. 请在图7.12中应用“联系点”分析模式,并给出修改后的分析类图。参考答案: 第7章 软件体系结构设计(习题与参考答案)选择题1. ( )系统体系结构的最佳表示形式是一个可执行的软件原型。(B)A. 真B. 假2. ( )软件体系结构描述是不同项目相关人员之间进行沟通的使能器。(A)A. 真B. 假3. ( )良好的分层体系结构有利于系统的扩展与维护。(A)A. 真B. 假4. ( )消除两个包之间出现的循环依赖在技术上是不可行的。(B)A. 真B. 假5. ( )设计模式是从大量成功实践中总结出来且被广泛公认的实践和知识。(A)A. 真B. 假6. 程序编译器的体系结构适合使用( )。(A)A. 仓库体系结构B. 模型视图控制器结构C. 客户机服务器结构D. 以上选项都不是7. 网站系统是一个典型的( )。(C)A. 仓库体系结构B. 胖客户机服务器结构C. 瘦客户机服务器结构D. 以上选项都不是8. 在分层体系结构中,( )实现与实体对象相关的业务逻辑。(D)A. 表示层B. 持久层C. 实体层D. 控制层9. ( )可以帮助人们简单方便地复用已经成功的设计或体系结构。(B)A. 商业组件B. 设计模式C. 遗留系统D. 需求规格说明10. ( )用于封装具体的平台,从而使应用程序可以在不同的平台上运行。(A)A. 抽象工厂模式B. 外观模式C. 观察者模式D. 以上选项都不是练习题1. 良好的软件体系结构设计有什么好处?答案要点:软件体系结构设计过程的核心在于建立系统的一个基本框架,即识别出系统的主要组件以及这些组件之间的通信。良好的体系结构设计具有以下主要好处:? 项目相关人员之间的沟通:软件体系结构是系统的一种高层表示,它可以成为不同项目相关人员之间沟通的使能器;? 系统分析:在系统分析过程中确定系统的初步体系结构,将对系统是否满足关键性需求(如性能、可靠性和可维护性等)产生很大的影响;? 大规模复用:体系结构可以在具有相似需求的系统之间互用,从而支持大规模的复用。2. 消除包之间的循环依赖性有哪两种主要方法?参考答案:将PackageA中的循环依赖元素提取到PackageC中PackageA PackageB PackageAPackageBPackageC (1)将PackageC中的循环依赖元素提取到PackageD中PackageA PackageB PackageC PackageD PackageAPackageBPackageC(2)(1) 火车站自动售票系统(2) 三维几何造型系统(3) 网上银行系统答案:(1)这是一个典型的胖与系统的交互,服务器是一个大型主机,运行火车票的数据库。 三维几何造型系统该系统适于采用何数

温馨提示

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

评论

0/150

提交评论