




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
判断第一章概述1由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。()2由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。()3购买大多数计算机系统所需的硬件比软件更昂贵。()4大多数软件产品在其生命周期中不需要增强功能。()5大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。()6一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。()第二章软件过程3软件需求规格说明书在软件开发过程中具有重要的作用,它是软件可行性分析的依据。()软件项目管理2项目管理在现代软件开发中是不太重要的,因为大多数项目能够及时完成并成功交付。()13随着项目计划的不断形成,产品分解和过程分解经常是同时发生的。()15估算不可靠的唯一原因是估算人员缺乏经验。()16由于软件项目估算不完全可靠,所以项目开始后可以忽略这些估算。()19估计待开发软件产品的规模必须基于像代码行等直接度量单位。()24功能点不能用于估算面向对象的软件。()25软件项目延迟是不可避免的,而且无法解释其原因。()26将开发团队人数增加一倍可以保证项目完成时间减少一半。()28主动的风险管理有时被描述为救火。()34软件工作产品一旦成为基线就不能再更改了。()35如果开发小组使用自动化的项目数据库工具,那么就不需要变更控制。()需求工程1在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做什么。()2软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的依据。()6目前存在一个很普遍的现象,即不同的客户提出的需求是相互矛盾的,但每个人都争辩自己是正确的。()7利益相关者(STAKEHOLDERS)是将来购买所开发软件系统的人。()11需求工程师的任务是将所有利益相关者的信息进行分类以便允许决策者选择一个相互一致的需求集。()13开发人员与客户创建用例以帮助软件团队理解有多少类型的最终用户将使用这些功能。()16用例参与者总是人员而不是系统设备。()17在需求确认过程中需求模型被评审以保证其技术可行性。()面向对象基础1模型是对现实的简化,建模是为了更好地理解所开发的系统。()2UML语言支持面向对象的主要概念,并与具体的开发过程相关。()面向对象分析1面向对象分析的核心在于建立一个描述软件系统的模型。()5分析类用于描述系统中概念层次的对象。()7在基于用例的面向对象分析过程中,定义交互行为的关键在于通过描述分析类实例之间的消息传递将用例的职责分配到分析类中。()10需求评审人员主要由开发人员组成,一般不包括用户。()面向对象设计1面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型。()2系统设计的主要任务是细化分析模型,最终形成系统的设计模型。()3关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。()4用户界面设计对于一个系统的成功是至关重要的,一个设计得很差的用户界面可能导致用户拒绝使用该系统。()软件实现1在程序设计中使用括号以改善表达式的清晰性。()2在程序设计中应尽可能对程序代码进行优化。()3不要修补不好的程序,要重新写。()4程序中的注释是可有可无的。()5对递归定义的数据结构不要使用递归过程。()软件测试1在软件开发的过程中,若能推迟暴露其中的错误,则为修复和改正错误所花费的代价就会降低。()2好的测试是用少量测试用例运行程序,发现被测程序尽可能多的错误。()3好的测试用例应能证明软件是正确的。()4白盒测试仅与程序的内部结构有关,完全可以不考虑程序的功能要求。()5等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。()软件演化1只有质量差的软件产品才需要维护。()2遗留系统是许多年以前开发的且已经没有商业价值的计算机系统。()3更换遗留系统是有业务风险的。()4软件的维护成本通常比开发成本低。()选择第一章概述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()是软件生存期中的一系列相关软件工程活动的集合,它由软件规格说明、软件设计与开发、软件确认、软件改进等活动组成。(A)A软件过程B软件工具C软件产品D软件工程2软件过程的基本活动是()。(A)A分析、设计、实现、测试、演化B沟通、计划、建模、构造、部署C计划、分析、设计、实现、调试D沟通、风险管理、度量、产品化、评审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软件项目管理的“4P”是()。(C)APEOPLE,PERFORMANCE,PAYOFF,PRODUCTBPEOPLE,PRODUCT,PERFORMANCE,PROCESSCPEOPLE,PRODUCT,PROCESS,PROJECTDPEOPLE,PROCESS,PAYOFF,PRODUCT3在软件开发的各种资源中,()是最重要的资源。(C)A开发工具B方法C硬件环境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在攻克技术难题时,最佳的开发团队组织模型是()。(A)A民主式结构B主程序员式结构C技术管理混合式结构D以上所有选项都不是9在选择开发团队组织结构时应考虑()因素。(E)A沟通的复杂程度B最终程序的规模大小C发布日期的严格程度D项目预算的多少E选项A,B和C10在软件开发过程中避免受挫的最佳方法之一是()。(A)A给予团队成员对于过程和技术决策的更多控制权B给予团队成员对于过程和技术决策的更少控制权C向团队成员隐瞒坏消息直到事情有所改善D根据生产效率奖励团队成员11下面的()软件特性不是引起项目协调困难的一个因素。(B)A互操作性B性能C规模D不确定性12在进行项目范围活动时,问题分解的主要范围是()。(E)A客户工作流程B需要发布的功能C用于发布功能的过程D软件过程模型E选项B和C14为了将项目失败的风险减少到最小,项目经理需要采取()。(D)A将项目团队规模增加一倍B要求更大的预算C顺利地开始D跟踪过程E选项B和C17软件项目规划的目的是()。(C)A使客户相信项目是可行的B使用历史项目数据C使项目管理者合理地估算成本和进度D在投标项目之前确定大概的利润边界18软件项目所需的人数应该()。(D)A在估计开发需要的努力之后决定B由项目预算数量决定C从评价系统复杂性来决定D以上所有选项19()估计待开发软件产品的规模必须基于像代码行等直接度量单位。(B)A真B假20代码行估算技术需要以()为基础进行问题分解。(C)A信息域值B项目进度C软件功能D软件过程活动21功能点估算技术需要以()为基础进行问题分解。(A)A信息域值B项目进度C软件功能D软件过程活动22经验估算模型是基于()。(C)A专家基于过去项目经验的判断B期望值估计的细化C来自历史项目数据的回归模型D反复试验决定参数和系数23COCOMOII是现代经验估算模型的一个实例,它需要以()为单位的程序规模信息。(B)A功能点B代码行C工作量D以上任何选项27任务集是()的集合。(A)A工作任务、里程碑、工作产品B任务分配、成本估算、度量单位C里程碑、可交付物、度量单位D责任、里程碑、文档29软件风险总是包括()两个特性。(C)A救火和危机管理B已知的和未知的风险C不确定和损失D安置人员和预算30风险的三种主要类型是()。(B)A商业风险、人员风险、预算风险B项目风险、技术风险、商业风险C计划风险、技术风险、人员风险D管理风险、技术风险、设计风险31下面的()是有效的软件配置项。(E)A软件工具B文档C可执行程序D测试数据E以上所有选项32下面的()配置对象通常不包括在项目数据库中。(C)A设计规格说明书B可执行程序C组织结构描述D测试计划33基线(BASELINE)是指在项目生命周期的不同时间点上,一个或一组配置项通过()而进入正式受控的一种状态。(C)A存取控制B质量控制C正式评审D变更管理36下面的()不是软件配置管理的任务。(C)A变更控制B配置状态报告C统计质量控制D版本控制37配置状态报告的主要目的是()。(C)A允许项目经理修改项目进度和成本估算B评估软件开发人员和组织的绩效C确保变更信息传达到受影响的团体D选项A和CE选项A、B和C需求工程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以上所有选项8需求规格说明描述了()。(A)A计算机系统的功能、性能及其约束B每个指定系统的实现C软件体系结构的元素D系统仿真所需要的时间9组织需求评审的最好方法是()。(D)A检查系统模型的错误B让客户检查需求C将需求发放给设计团队去征求意见D使用问题列表检查每一个需求10使用跟踪表有助于()。(C)A在后续的检查运行错误时调试程序B确定算法执行的性能C识别、控制和跟踪需求的变化D以上选项都不是12下面的()不是在项目启动阶段被提出的“与环境无关”的问题。(B)A成功的解决方案将带来什么样的经济收益B谁反对该项目C谁将为该项目付款D谁将使用该解决方案14在各种不同的软件需求中,()描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明,()是从各个角度对系统的约束和限制,反映了应用对软件系统质量和特性的额外要求。(B,C)A业务需求B功能需求C非功能需求D用户需求15需求导出后产生的工作制品将依赖于()而不同。(B)A预算多少B将要构建的产品规模C正在使用的软件过程D利益相关者的需要18在需求开发过程中,软件工程师应与客户合作共同定义()。(E)A客户可见的使用场景B重要的软件特性C系统的输入与输出D选项A和BE选项A、B和C面向对象基础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封装7UML是()的缩写。(B)AUNIFIEDMODULELANGUAGEBUNIFIEDMODELINGLANGUAGECUNIVERSALMODULELEVELINGDUNIVERSALMODULELANGUAGE8顺序图反映对象之间发送消息的时间顺序,它与()是同构的。(C)A用例图B类图C协作图D状态图9()定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。(A)A用例图B类图C活动图D状态图10状态图包括()。(E)A类的状态B状态之间的转换C类执行的动作D触发类的动作的事件E所有选项面向对象分析2关于面向对象分析,下列的()是正确的。(A)A它是系统需求建模的方法B它是分析系统设计的技术C可以从分析直接编写代码D在软件生命周期中,它出现在面向对象设计之后3下列的()不是分析建模的目的。(C)A定义可验证的软件需求B描述客户需求C开发一个简单的问题解决方案D建立软件设计的基础4下列的()不属于面向对象分析模型。(C)A用例图B类图C实体关系图D顺序图6在分析类中,()用于描述一个用例所具有的事件流控制行为。(D)A实体类B界面类C接口类D控制类8开发人员使用()可以将用例的行为分配到所识别的分析类中。(B)A用例图B顺序图C类图D状态图9分析模型一般采用()方式进行验证。(C)A总结B阶段性报告C需求分析评审D转化成设计模型面向对象设计5内聚表示一个模块()的程度,耦合表示一个模块()的程度。(B,D)A可以被更加细化B仅关注在一件事情上C能够适时地完成其功能D联接其他模块和外部世界6良好设计的特征是()。(E)A模块之间呈现高耦合B实现分析模型中的所有需求C包括所有组件的测试用例D提供软件的完整描述E选项B和DF选项B、C和D7()是选择合适的解决方案策略,并将系统划分成若干子系统,从而建立整个系统的体系结构;()细化原有的分析对象,确定一些新的对象、对每一个子系统接口和类进行准确详细的说明。(A,B)A系统设计B对象设计C数据库设计D用户界面设计8下面的()界面设计原则不允许用户保持对计算机交互的控制。(D)A允许交互中断B允许交互操作取消C对临时用户隐藏技术内部信息D只提供一种规定的方法完成任务软件实现6为了使程序能在不同的计算机上运行,程序应当具有较好的()。(A)A可移植性B可重用性C可维护性D可适用性7对于开发面向数据库应用的软件,应当选择的程序设计语言是()。(C)ACBPASCALCSQLDJAVA8下面对提高程序编码效率没有影响的是()。(D)A选择良好的设计方法B选择良好的算法C选择良好的数据结构D变量名的使用9为了保证软件的质量,使其具有较好的可维护性,关键在于()。(B)A选择合适的程序设计语言B选择好的程序设计风格C具有好的数据结构D选择好的运行环境10下面的()不是良好编码的原则。(C)A在开始编码之前建立单元测试B建立一种有助于理解的直观布局C保持变量名简短以便代码紧凑D确保注释与代码完全一致软件测试6使用独立测试团队的最好理由是()。(C)A软件开发人员不需要做任何测试B测试人员在测试开始之前不参与项目C测试团队将更彻底地测试软件D开发人员与测试人员之间的争论会减少7类的行为应该基于()进行测试。(D)A数据流图B用例图C对象图D状态图8下面的()说法是正确的。(C,D,E)A恢复测试是以各种方式迫使软件失效从而检测软件是否能够继续执行的一种系统测试。B安全测试是检测系统中的保护机制是否可以保护系统免受非正常的攻击。C压力测试是检测在极限环境中使用系统时施加在用户上的压力。D功能测试是根据软件需求规格说明和测试需求列表,验证产品的功能实现是否符合需求规格。E安装测试是保证应用程序能够被成功地安装软件演化5逆向工程(REVERSEENGINEERING)通常用在软件生命周期的()阶段,它是从源代码或目标代码中提取设计信息。(D)A需求分析B软件设计C软件测试D软件维护概念第一章概述1软件与其他工程学科所产生的制品有什么根本区别答(1)软件是人类思维和智能所延伸的产物,其数据、状态和逻辑关系的组合以及人类思维的复杂性和不确定性导致它本身具有极高的复杂性;(2)软件具有不可见性,它是抽象的,形式化和逻辑化的。(3)软件具有可变性,有用的软件需要不断地修改和扩展,但是频繁的修改可能导致软件的退化;(4)软件的开发在很大程度上依然是手工作坊式的,难以实现工厂化的生产。2软件工程包括哪些基本要素请简要说明这些要素及其作用。答软件工程包括过程、方法和工具三个要素。1软件工程过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理,从而将人员、技术、组织与管理有机地结合在一起,实现在规定的时间和预算内开发高质量软件的目标;2软件工程方法为软件开发提供了“如何做”的技术,通常包括某种语言或图形的模型表示方法、良好的设计实践以及质量保证标准等;3软件工程工具为软件工程方法提供了自动的或半自动的软件支撑环境,辅助软件开发任务的完成。现有的软件工具覆盖了从需求分析、系统建模、代码生成、程序调试和软件测试等多个方面,形成了集成化的软件工程开发环境CASE3结合IEEE/ACM软件工程职业道德和职业行为准则,试分别距离阐述每一项原则。答(1)公众软件工程人员应始终与公众利益保持一致;(2)客户和雇主在与公众利益保持一致的原则下,软件工程人员应满足客户和雇主的最大利益;(3)产品软件工程人员应当确保他们的产品及其改进符合尽可能高的专业标准;(4)判断软件工程人员应当具备公正和独立的职业判断力;(5)管理软件工程管理者和领导者应拥护和倡导合乎道德的有关软件开发和维护的管理方法;(6)职业在与公众利益一致的原则下,软件工程人员应当提高职业的信誉;(7)同行软件工程人员对其同行应保持平等和支持的态度;(8)自我软件工程人员应当终身学习专业知识,促进合乎道德的职业实践方法。4软件工程是以系统的、可控的、有效的方式产生高质量的软件,请说明你对“高质量软件”含义的理解。答软件质量是软件产品与明确的和隐含的需求相一致的程度,它通常由一系列的质量特性来进行描述,包括正确性、可靠性、有效性、可用性、复用性、可维护性、可移植性等。例如,除了要求软件正确运行之外,人们可能还希望软件运行的响应时间符合要求、软件使用方便快捷、程序代码易于理解等,而“程序代码易于理解”往往是一种用户没有明确提出的需求,但却是影响软件演化的重要因素。5有人认为“软件工程过于耗费时间,并且妨碍开发人员的编程效率。”你是否认同这种观点请阐述理由。答这一观点是不正确的。软件开发远不只是编程,管理不当导致的混乱、工作重复、交流不畅等才是大多软件项目效率低下的主要原因。虽然直接编程在开发前期看来效率高,但是不完整的、不清晰的或错误的需求和设计将导致在开发后期反复地修改程序,反而降低了整个开发效率,其质量也无法保证,甚至导致软件开发最终失败的结果。软件工程是帮助人们在有限的时间、金钱预算和人力、物力资源的约束下开发出质量尽量高的软件的一系列理论和工具,虽然它在编程之外的工作上花费了大量时间,但所耗费的时间与精力并不像其表面上所看起来的那样冗余与低效,而是从总体上做好整个体系的设计与把握,全方位地规划开发过程,对节省成本、提高效率、保证最终产品质量起到了事半功倍的作用。第2章软件过程1请简要说明软件过程的概念和基本元素。答软件过程是软件工程人员为了获得软件产品在软件工具支持下实施的一系列软件工程活动,它应该明确定义以下元素过程中所执行的活动及其顺序关系每一个活动的内容和步骤团队人员的工作和职责2请描述快速原型过程模型的各个阶段。答快速原型方法的目的是解决软件需求不明确给开发带来风险的问题,其关键在于尽可能“快速”地建造原型,通过用户对原型的评价最终确定系统的需求。快速原型过程模型包括以下阶段原型需求分析分析和提炼所收集到的客户需求;原型开发基于初步的需求快速建造一个可以运行的软件原型,实现客户或未来的用户与系统的交互;原型评价由用户或客户对该原型进行评价,需要的话再进一步细化待开发软件的需求,并继续调整原型直至需求确定下来为止。3对于下列每一个过程模型,分别列举一个可以适用的具体软件项目,并说明在开发中如何应用该模型。(1)瀑布模型(2)快速原型模型(3)增量模型(4)形式化方法模型(5)基于组件的开发模型答(1)瀑布模型项目举例某项目需要在一种新型机器上,为一种已知语言开发一个普通的编译器。选用分析由于该项目的语言是已知的,需求是明确的和稳定的,整个系统属于中小规模,因此适合采用瀑布模型进行软件开发。阶段说明略。(2)快速原型模型项目举例某公司需要给火车站开发一个交互式火车车次查询系统,这是火车站首次使用该系统。选用分析本项目的主要问题在于用户需要方面,该系统与最终用户的交互是十分关键的,但是在项目初期用户的需求基本上是不知道的,因此适合采用快速原型方法来确定用户需求,在需求确定的基础上再开发最终系统。阶段说明略。(3)增量模型项目举例某公司开发一个通用CAD软件产品,产品需求是逐步完善的,某些需求在一定范围内是明确的,某些需求需要进一步细化,但是迫于市场竞争的压力产品需要尽快上市。选用分析通用CAD软件产品具有一定的成熟度,总体需求和软件系统结构是可以确定的,但是实现该产品所有功能需要比较长的开发周期。为了尽快上市可以采用增量模型实行多版本的发布策略,既可以很快占领市场又可以为后续版本的需求定义奠定基础。阶段说明略。(4)形式化方法模型项目举例某公司开发一个汽车防抱死刹车控制系统。选用分析由于该系统对安全性和可靠性要求极高,需要在系统运行之前进行相关性能的检验,因此适合采用形式化方法开发该系统。阶段说明略。(5)基于组件的开发模型项目举例某公司开发企业管理ERP系统,包括销售、库存、生产、财务、物流、人力资源等部分,在系统实施过程中不同的企业具有一定的需求差异。选用分析企业ERP系统具有组件化的结构,在不同企业实施时应该尽量重用已有的组件,因此适合采用基于组件的开发模型开发该系统,在直接应用或者修改使用的基础上,最终进行组件开发和系统集成。阶段说明略。4在螺旋模型中,风险分析的作用是什么答在螺旋模型中,软件开发是在风险等级的指导下进行的。首先确定该阶段的目标,完成这些目标的选择方案及其约束条件;其次从风险角度分析方案的开发策略,努力排除各种潜在的风险,在需求不适当的情况下可能需要建造原型系统;如果某些风险不能排除,该方案可能立即终止,否则继续启动下一步的软件开发和验证工作,并再次通过风险分析规定过程遵循的策略;最后,评价该阶段的结果,并规划下一个迭代。从上述过程中可以看出,风险分析的作用是通过识别项目中的高风险问题,使开发人员制定适当的开发策略消除这些风险。5某大学准备开发一个新的学生注册选课系统,以替换一个现有的系统。请设计一个适用于该系统开发的过程模型,并进一步描述该模型。答假设原有的学生注册课程系统是由学生手工提交书面选课单,教师手工提交成绩单,教务管理人员在客户端录入学生选课结果和课程成绩;而在新的选课系统中,所有用户在自己的计算机上通过INTERNET访问和操作该系统,该软件系统需要更新服务器和数据库等系统,并扩充一些新功能和提高系统性能。从该系统的具体情况来看,系统的需求是比较容易明确的,整个系统的结构需要重新设计,但是原有的遗留系统中有些部分是可以重用的,因此我们可以采用组件模型实施软件开发系统需求分析由于该系统是现有系统的扩展,因此首先可以经过一个简单的需求分析阶段,从而确定新系统的需求。遗留系统分析在需求确定的基础上,开发人员分析遗留系统并研究新系统的总体结构,选择重用原有的课程信息管理部分,重新开发选课部分,必要时适当修改系统需求,最终确定系统需求和总体结构。设计开发阶段开发人员进一步设计相关子系统,将原有的课程信息管理部分封装为子系统,重新开发学生选课子系统,并实现与外部付费系统的接口。系统测试阶段开发人员将所有子系统集成在一起,交给测试人员开始全面的功能测试和性能测试。根据所报告的测试问题,开发人员调试和修改程序。系统交付阶段测试通过后,开发人员将系统及其相关文档交付用户验收。6请举例说明不同的过程模型组合使用的情况。答在前面提到的企业管理ERP系统项目中,可以将快速原型方法、组件开发模型和增量模型组合在一起使用,即在需求分析阶段采用原型方法确定需求,采用组件化的结构设计整个系统,并采用增量方式逐步交付整个系统。软件项目管理2某个软件项目需要30名开发人员,现有两种人员组织方案(1)将30人划为一个开发组统一管理;(2)按每个小组6人的方式,将30人分为5个小组。请分析比较上述两种方案的优缺点。参考答案由于软件规模的增大,需要多人组成开发小组共同参与一个项目的开发。但是当多个人共同承担软件开发项目中的某一任务时,人与人之间必须通过交流来解决各自承担任务之间的接口问题,这就产生了所谓沟通复杂性的问题。沟通需要花费时间和代价,也会引起软件错误的增加,降低开发效率。(1)优点30人集中在同一个开发小组,人员任务的分配和调度相对容易;缺点沟通复杂性高,从而导致人员之间配合混乱,开发效率低。(2)优点30人划分成5个小组,降低了沟通复杂性,提高开发效率;缺点小组之间的协调配合难度大。3在选择人员进行软件项目开发时,应该考虑哪些因素参考答案需求工程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在某些紧急情况下,软件可能在需求变更请求被批准之前就进行修改。请给出一个修改过程模型,确保需求文档和系统实现不会产生不一致。答一般来说,应该尽量避免在需求变更请求被批准之前就直接修改程序的情况,这很容易导致变更失控而且需求描述与系统实现不一致。一旦出现这种情况,必须在系统变更完成后重新执行需求跟踪控制。8请给出以下问题描述的用例模型。一个新的音像商店准备采用计算机系统向比较广泛的人群销售或租借录像带和光碟。该音像商店将存有大约1000盘录像带和500张光碟,这些订购涉及多家订购商。所有的录像带和光碟都有一个条码,可以使用条码扫描仪来支持销售和返还,客户会员卡也同时条码化。客户可以预定录像带并在指定日期来取。系统必须拥有灵活的搜索机制来回答客户的询问,包括关于该音像商店还没有进货的电影(但可能是已经请求订购了)。参考答案面向对象基础1请解释下列术语,并举例说明之。对象、类、属性、操作、关联、泛化、聚合、依赖参考答案(1)对象(OBJECT)对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。举例中国就是一个对象。(2)类(CLASS)类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,包括属性和服务两个主要部分。举例学生、人、树木等都是类。(3)属性(ATTRIBUTE)属性是用来描述对象静态特征的一个数据项。举例学生具有姓名、性别、年龄等属性。(4)操作(OPERATION)操作是类的实例被要求执行的服务,具有名字和参数列表。举例学生具有入学注册、选课等操作。(5)关联(ASSOCIATION)关联是一种结构关系,说明一个事物的对象与另一个事物的对象之间的联系。举例学生与课程之间的关系就是关联,一个学生可以选修多门课程,一门课程也可以被多个学生选修。(6)泛化(GENERALIZATION)泛化是一种一般事物(父类)和特殊事物(子类)之间的关系。举例学生与研究生之间是泛化关系,研究生是一类特殊的学生。(7)聚合(AGGREGATION)聚合是一种特殊类型的关联,描述了整体和部分间的结构关系。举例学校和系之间存在聚合关系,系是学校的一个组成部分。(8)依赖(DEPENDENCY)依赖是一种使用关系,描述了一个事物发生变化会影响到另一个使用它的事物。举例课程表使用课程,二者之间是依赖关系。2请简要说明类图和顺序图的组成。参考答案在系统中,类图由类、类的属性和操作以及类之间的各种联系所组成。下图显示了计算机及其组成部分,如处理器、内存、键盘、硬盘、显示器等。时序图表示对象之间的交互顺序,它由角色、对象、生命线和消息组成,其中角色代表与系统交互的外部事物。下图显示了时序图的一种通用表示方法。3在软件开发过程中为什么需要建立模型答案要点在软件开发过程中,建立软件模型具有十分重要的作用,主要体现在以下方面1有助于问题的简化,通过抽象降低复杂性;2有助于和其他开发小组成员、各种用户以及系统相关者进行交流;3有助于维护人员了解软件设计的思路和细节,为以后的维护和升级提供了文档。4UML关系包括关联、聚合、泛化、实现、依赖等5种类型,请指出下面关系的类型,并采用UML符号表示这些关系。(1)在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是什么关系(2)类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是什么关系(3)接口及其实现类或构件之间是什么关系(4)一个汽车有四个轮子,那么类“汽车”和“轮子”之间是什么关系(5)学生与研究生之间是什么关系参考答案(1)关联(2)依赖(3)实现(4)聚合(5)泛化5请根据下面的描述,给出表示一本书的类图。一本书由许多部分组成,而这些部分又由许多章组成,章由节组成。一本书包括出版商、出版日期和ISBN;一部分包括一个标题和一个序号;一章包括一个标题、一个序号和一个摘要;一节包括一个标题和一个序号。参考答案6考虑习题5的类图,注意部分、章和节等类都包括标题和序号属性,请修改类图,添加一个抽象类和一个泛化关系,将标题和序号这两个属性提取到抽象类中。参考答案7请在习题48生成的用例图中选择一个用例,画出该用例的顺序图。参考答案8请根据以下描述,给出电话应答机的状态图。电话应答机能够记录来电的信息并在LED显示屏上显示来电号码。系统允许话机的使用者键入一串数字进行拨号,并能使记录的信息重放出来。参考答案面向对象分析1面向对象分析包括哪些活动应该建立哪些类型的模型参考答案面向对象分析的主要活动包括理解用例模型、识别分析类、定义交互行为、建立分析类图以及评审分析模型等。面向对象分析应该建立功能模型、分析对象模型和动态模型等三种类型,其中功能模型由用例和场景表示,分析对象模型由类图和对象图表示,动态模型由状态图和顺序图表示。2什么是实体类、边界类和控制类为什么将分析类划分成这三种类型参考答案实体类用于描述必须存贮的信息及其相关行为;边界类用于描述外部参与者与系统之间的交互;控制类用于描述一个用例所具有的事件流控制行为。将分析类划分成这三种类型的好处在于所产生的类更小更专门化;这种划分将易变的外部界面与系统基本功能进行了屏蔽,使分析模型更易于变化。3请考虑下图的对象模型,运用你对GREGORIAN日历的知识,指出该模型存在的所有问题,并给出修改后的正确模型。4请考虑下图表示的系与教师之间关系的类图(1)类图中显示了哪些关系(2)一个教师可以同时在多个系工作吗请说明理由。参考答案(1)类图显示了两个关系“学校”与“系”之间的一对多关联“系”与“教师”之间的多对多关联(2)一个教师可以同时在多个系工作,因为它们之间是多对多关联。5如下图所示,SCHEDULEOFFERINGINFO被称作什么类其作用是什么参考答案SCHEDULEOFFERINGINFO被称为关联类,它表示两个类之间的关联关系,但本身具有与之相关的属性和操作。关联类的主要作用是处理多对多关系,通常将这种关系转变成两个一对多关系。面向对象设计1面向对象设计与面向对象分析的区别是什么设计包括哪些活动答面向对象分析是重点考虑系统“做什么”的问题,即运用面向对象方法对问题域进行分析和理解,建立系统的分析模型;面向对象设计重点考虑系统“怎样做”的问题,即在分析模型的基础上形成实现环境下的设计模型。面向对象设计主要涉及系统设计、对象设计(或详细设计)、数据库设计和用户界面设计等活动。2在类设计中,为什么建议使用SET方法和GET方法进行属性设置和读取答案要点目的在于降低类之间的耦合度。3下图显示了某个学校课程管理系统的部分类图,其中一个学生(STUDENT)可以知道所有注册的教师(INSTRUCTOR),一个教师也可以知道所有注册课程的学生。现在提出一个新的需求“一个教师也可以是某些课程的学生”,那么下面设计AE中哪一个是最好的为什么(请务必说明理由)参考答案设计A这个设计使用了一个自返关联,但其中的REGISTEREDCANDIDATE()方法有问题。如果一个人既是学生又是老师,那么要想同时获得他作为学生对应的所有老师,以及他作为老师对应的所有学生,GETREGISTEREDCANDIDATES()方法得到的CANDIDATE数组中并不能区分上述的两种结果。设计B这个设计使用了一个泛化关系,但它并没有解决题中给出的新的要求。事实上,这个设计只是在题中已有设计之上的改进,实质还是一样的,并不能描述一个教师也可以是某些课程的学生的情况。设计C这个设计定义了一个ROLE类,学生和教师是ROLE类的两个子类。如果一个CANDIDATE对象是教师,可以调用INSTRUCTOR类的GETREGISTEREDCANDIDATES()方法获得所对应的所有学生;如果这个对象是学生,可以调用STUDENT类的GETREGISTEREDCANDIDATES()方法获得所对应的所有教师;如果这个对象既是教师又是学生,那么分别调用INSTRUCTOR类的GETREGISTEREDCANDIDATES()方法和STUDENT类的GETREGISTEREDCANDIDATES()方法即可。设计D整个设计有着与B中类似的问题,即一个CANDIDATE对象要么是一个学生,要么是一个老师,不能同时都是,无法满足新的需求。设计E这个设计与D基本一致,只是把CANDIDATE类与ROLE类之间的关联关系改成了聚集关联,同样无法满足新的需求。综上所述,设计C是最好的。4什么是三层体系结构它的优缺点是什么答案要点三层体系结构将系统划分成表示层、应用逻辑层和数据存储层,其中表示层由客户机上的浏览器处理,应用逻辑层交给独立的应用服务器处理,数据存储层则放在数据服务器上这种结构的优点如下1浏览器与应用服务器之间是松耦合关系,二者通过标准的HTML语言进行交互,客户端的维护代价几乎是零;2应用服务器与数据服务器之间是松耦合关系,应用服务器可以通过标准的数据访问接口如(JDBC和ODBC)灵活地访问不同厂商和不同平台的数据库3应用逻辑层可以部署在由多个服务器节点组成的集群上,集群可以提供复制、负载平衡和故障切换等功能,保证了应用的性能、可靠性和可伸缩性。4这种结构的缺点是应用服务器与技术平台耦合紧密,因此基于不同平台的应用服务器依然是信息孤岛5下图是MORTGAGEAPPLICATION对象的状态图,假设有一个要求,即增加一个“CANCELLED”状态,图中除“CLOSED”状态外的任何状态都可以转换到该状态。请画出修改后的状态图(请考虑不同的修改方法中哪种方法最好)方法2引入了组合状态和子状态,从而可以在组合状态RUNNING中加入更多的子状态,以保证组合状态的可扩展性。所以说,方法2相对于方法1更好一些。6请举例说明用户界面设计的基本原则。参考答案(1)用户控制用户应当感觉系统的运行在自己的控制之下。在图形界面或基于WEB的界面中,用户指导程序的每一步执行;即使在程序进行某些处理或用户等待输出结果时,用户同样保持对控制的敏感度。举例当程序进行某些需要占用较长时间的处理时,需要为用户提供及时的反馈信息,诸如一个沙漏、一个等待的指示器或其他类似的东西。(2)界面一致性一致性要求用户界面遵循标准和常规的方式,让用户处在一个熟悉的和可预见的环境之中,这主要体现在命名、编码、缩写、布局以及菜单、按钮和键盘功能在内的控制使用等。举例一个运行在WINDOWS平台上的三维几何造型系统应当采用WINDOWS图形窗口的“外观和感觉”,与OFFICE类型软件保持一致的界面风格和操作方式。(3)界面容错性一个好的界面应该以一种宽容的态度允许用户进行实验和出错,使用户在出现错误时能够方便地从错误中恢复。举例MICROSOFTWORD系统允许撤消用户对文档的许多最近操作,从而处理用户的误操作问题。(4)界面美观性界面美观性是视觉上的吸引力,主要体现在具有平衡和对称性、合适的色彩、各元素具有合理的对齐方式和间隔、相关元素适当分组、使用户可以方便地找到要操作的元素等。举例清华大学软件学院综合信息服务系统的WEB界面在平衡和对称、色彩、元素分组、用户方便地查找信息等方面进行了良好的设计。(5)界面可适应性界面可适应性是指用户界面应该根据用户的个性要求及其对界面的熟知程度而改变,即满足定制化和个性化的要求。所谓定制化是在程序中声明用户的熟知程度,用户界面可以根据熟知程度改变外观和行为;所谓个性化是使用户按照自己的习惯和爱好设置用户界面元素。举例系统允许用户选择语言类型(中文、英文、意大利文等),并系统根据用户定制的语言类型显示不同语种的用户界面。软件实现1列出三种常见的专用程序设计语言,并说明它们的应用领域。参考答案(1)J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程预制围墙维修方案(3篇)
- 2025建筑工程木材供应合同内容
- 施工现场建筑垃圾处置方案(2025新版)
- 委托加工印制合同3篇
- 2025年度检验科生物安全考试题(附答案)
- 施工方案模板范本
- 2025年医疗卫生人员洗手知识技能考核真题及答案解析
- 砖砌体拆除施工方案
- 2025消毒灭菌试题及答案大全
- 2025法律合同范本:著作权许可使用协议书
- 风险管理2025年风险管理师考试试题及答案
- 2025年电动车电子刹车器项目可行性研究报告
- 高级月嫂培训课件
- 酒吧店长聘用协议书
- 2025-2030中国钽电解电容器市场营运格局分析与全景深度解析报告
- 晋副主任护师的述职报告
- 广西田林八渡金矿 资源储量核实报告
- 《消化性溃疡诊疗》课件
- CISA国际注册信息系统审计师认证备考试题库(600题)
- iso28000-2022供应链安全管理手册程序文件表单一整套
- DB21∕T 3149-2019 玉米秸秆还田机械化作业技术规程
评论
0/150
提交评论