中国科学院软件研究所2008年软件工程真题研究.docVIP

中国科学院软件研究所2008年软件工程真题研究.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中国科学院软件研究所2008年软件工程真题研究

1.目前那些主流的软件过程模型,并比较这些模型的方法、优点、弱点。 (可以这样理解该题目:让你写一篇关于软件过程模型的论文) 瀑布模型:它提出了一个系统的、顺序的软件开发方法,从用户需求规格说明开始,通过策划建模构建和部署的过程,最终提供一个完整的软件并提供持续的技术支持 优点:它在每个阶段都生成文档,而且它与其他工程过程模型相一致 弱点: 它将项目生硬的分解成这些确认的阶段,委托事项一定要在过程的早期阶段清晰给出,这意味着它难以响应用户需求的变更 它的线性特性会导致软件开发过程的阻塞状态,而这在开始和结束时候更容易发生 进化式开发:开发出一个原型系统给用户使用,通过用户反馈意见来不断修改补充系统知道最后成熟,它不主张将描述、开发和有效性验证等顺序进行,而是让这些活动并行执行,同时让这些活动能得到快速的反馈信息。 优点:描述可以不断地补充完善,当用户对系统需求有更深刻理解时,能很快在软件系统中得到反映。 弱点: 过程不可见 管理者需要经常性的交付来把握进度,如果系统开发速度很快,要产生每个版本的文档来反映变更就很不划算。 系统结构通常较差 这是因为连续的变更损坏了系统结构,越往后变更系统越困难,而且成本逐渐上升。 进化式开发模型主要包括原型开发和螺旋式开发。 原型开发: 快速设计产生一个原型,对原型进行部署,然后由客户或者用户进行评价,根据反馈,进一步细化软件的需求,在这个过程中开发者逐步清楚用户的需求,并通过迭代技术不断调整系统以满足用户的需求。 优点:因为原型是为定义规则服务的,所以可以软件工程过程中尽早的定义出该软件 缺点: 软件开发管理往往会陷入失效,因为客户经常混淆原型系统和工作版本的差别,要求对原型稍加修改就投入使用 开发者为尽快实现原型而使用不合适的操作系统或编程语言等,随着软件工程的开展,开发者可能会适应这些选择而将这些不合适的地方变成了系统的组成部分。 螺旋式开发:在软件开发过程通过螺旋线来表示,在螺旋线中,每个回路表示软件过程的一个阶段,这个阶段有四个部分连接而成:目标设定,风险评估和规避,开发和有效性验证,规划。 优点 因为该模型沿着螺旋通过一系列的迭代不断地演进,所以它永远保持可操作性,当 软件有变更时,过程总能够在合适的入口点启动 螺旋模型要求项目的所有阶段始终考虑技术风险,它把原型开发作为降低风险的机 制,并将瀑布模型中逐步细化的方法纳入一种迭代的框架,从而使在演进的每一个层次上,开发者和客户可以更好的理解和对应风险 弱点:难以说服客户演进的方法是可控的,因为它依赖大量的风险评估专家来保证成功, 如果遗漏了较大的风险,肯定会发生问题 基于组件的软件工程:依赖可以存取的可复用的软件组件以及能继承这些组件的框架进行软件开发 优点:减少了需要开发的软件数量,从而降低了软件开发成本,同时也降低了风险。通常可以使软件快速的交付。 弱点:需求妥协是不可避免的,而且这又可能导致一个不符合用户真正需要的系统,此外,对系统进化的控制也不起作用,因为可复用的组件版本是不受机构控制的。 增量式开发:软件描述、设计、实现活动被分散成一系列的增量,然后轮流开发这些增量。 优点: 软件可以马上使用,因为第一个增量可以满足他们大多数的关键需求 客户可以将早期增量作为原型,从中获得对后面系统增量的需求经验 项目总体失败的风险比较低。可能一些增量会出现问题,但是其他增量将会成功的交付给客户 因为具有最高优先权的服务被首先交付,这就使得最重要的系统服务肯定接受了最多的测试,从而保证了该部分系统服务的高可靠性。 弱点: 因为增量规模的限制,很难将客户需求映射到适当规模的增量上 大多数系统需要一组在系统许多部分都用到的基本服务。但是由于增量实现前需求不能被详细定义,所以,明确所有增量都会用到的基本服务比较困难 2.简述验证和确认的关系和区别,在软件工程活动中有哪些典型的验证和确认活动?试分别举例说明你所熟悉的验证活动和确认活动的方法、目标以及主要的技术难点或者存在的问题 关系: 验证和确认的最终目标是要确立软件系统“达到设计目标”的信心。 区别: 验证是检查软件是否满足功能需求和非功能需求。确认不仅检查系统是否符合它的描述,更要说明软件是否最终满足了客户的要求。 验证保证软件正确地实现了一特定功能。进行验证活动所处的环境是模拟的客户环境。确认保证所生产的软件可追溯到用户需求。进行确认活动所处的环境是真实的客户环境。 典型的验证活动 单元测试 发现构件中内部处理逻辑和数据结构的错误(自动化测试) 1.白盒测试 2.黑盒测试 集成测试 发现与接口有关的错误,最终目标是利用已经通过单元测试的构件建立 设计中描述的程序结构(自动化测试) 1.基于场景的测试 2.从行为模型中导出的测试 冒烟测试

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档