欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    软件工程综述(共6页).doc

    • 资源ID:16687522       资源大小:33KB        全文页数:6页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程综述(共6页).doc

    精选优质文档-倾情为你奉上软件工程综述作者:周咲宇单位:宁波工程学院邮政编码:E-mail:frank00963摘要:为方便对软件工程这个领域的系统性了解,本文将介绍软件工程定义及与其他工程差别、软件工程系统需求分析、软件工程方法和技术、模块化及软件工程的新发展。关键词:系统需求分析 方法和技术 模块化 1.引言近年来,由于计算机的应用范围不断扩展,对软件系统的需求和软件自身的复杂度急剧上升,传统的开发方法无法适应用户在质量、效率等方面对软件的需求。这就是所谓的“软件危机”。为解决“软件危机”提出了统一、规范的开发软件的新理论思想,即软件工程采用工程的原理和技术来开发和维护软件,更好地从管理和技术两方面开发和维护软件。2.软件工程综述2.1软件工程定义及与其他工程差别软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴了传统工程的原则和方法,以求高效地开发高质量软件。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。软件的特性与其他工程领域特性之间存在着本质上的不同。差别之一处理常用的预先定制的构件来构建系统的能力。一些传统的工程领域已经长期受益于这种方法,即在构建复杂的设备时,采用各种现成配件。然而,软件工程在这点上是很落后的。过去,以前设计的软件构件一般倾向于用于特定的领域。也就是说,这些构件本质上是为专门的应用而设计的,所以,将它们作为通用构件来使用是受限的。因此,复杂的软件系统历来都是从头做起。但现在这点已经取得了重要的进展,尽管还有很多工作要做。软件工程与其他工程间的另一差别在于缺少度量技术,称为度量学,来衡量软件的属性。对于机器设备,质量的重要量度是平均无故障时间,这是设备的耐损耗性的一个基本的衡量指标。相反,软件没有消耗,所以这种方法在软件工程中并不适用。软件指标不能以定量的方式测量,这也是软件工程和机械、电子工程不同,至今还未找到一个严格、坚实的立足点的原因。因而,现在的软件工程研究在两个层面上进行:实践派的工作指向开发直接应用的技术;理论派则致力于探寻软件工程基础原理和理论,为将来构建更坚实的技术而努力。2.2软件工程系统需求分析需求分析包括提炼、分析和仔细审查已收集到的需求,以确保所有的风险承担者都明白其含义并找出其中的错误、遗漏或其它不足的地方。分析的目的在于开发出高质量的需求,这样就能做出实用的项目估算并可以进行设计、构造和测试。确保所有风险承担者尽早地对项目达成共识并对将来的产品有个相同而清晰的认识。 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。通过对应问题及其环境的理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化、完全化,最终形成需求规格说明,这一系列的活动即构成软件开发生命周期的需求分析阶段。需求分析是获得用户需求的有效途径。开发软件是为用户服务的。为了开发出真正满足用户需求的软件产品首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件。需求分析也是决定项目成功的关键因素,是系统分析和软件设计的桥梁。需求分析过程是确定顾客需求的过程。12.3软件工程方法和技术软件工程的方法对软件产业的发展起到了很大的推动作用。目前软件工程中主要使用的方法和技术可以分成技术和管理两类。2.3.1技术的角度 主要包括:软件开发范型、软件设计方法。软件开发范型关注软件工程的方向,即如何才是正确的编写满足需求的软件;软件设计方法关注软件工程的“途径” ,即研究怎样完成从高层概念模型到低层概念模型的映射。主要的软件过程模型有:瀑布模型,演化模型(如增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。瀑布模型是最早出现的也是应用最广泛的过程模型,对确保软件开发的顺利进行、提高软件项目的质量和开发效率起到重要作用。一个软件系统的整体可能是复杂的,而单个子程序总是简单的,所以可以用瀑布模型来实现。增量模型和迭代模型反映出软件开发采用原型开发这样一种趋势,并加以评估。在增量模型中,演化式原型开发是指将这些原型发展为一个最终的完整系统的过程。抛物式原型开发则是指在一些情况中原型可能会抛弃不用,以使得最后设计有全新的实现的方法。快速原型开发通常属于抛物式原型开发这个范畴。快速原型开发是近年来提出的一种以计算机为基础的系统开发方法,它首先构造一个功能简单的原型系统,然后通过对原型系统逐步求精,不断扩充完善得到最终的软件系统。开放源码开发是演化式原型开发的一种变种方法。这是今天许多自由软件开发采用的一种方式。软件包的开放源码开发遵循以下过程:先是单个作者开发一个初始版本的软件(通常是完成该作者自己的需求),然后将其源代码和相关文档发放到因特网上,其他用户可以免费下载和使用这个软件。由于这些其他用户拥有该软件的源代码和相关文档,那么他们就能修改或增强这个软件的功能,以适合自己的需要,或者改正他们发现的错误。接下来,他们就将这些改动报告给原作者,原作者就将这些改动整合到系统中,得到软件的扩展版本,并可用于进一步的修改。还有一种方法是敏捷方法的方法学集合,是由瀑布模型转化而来的最显著的方法。它们都建议在增量基础上的早期和快速实现,响应需求变更,降低严格需求规格说明和设计的重要性。概括说来,敏捷方法具有灵活性的特点。2.3.2管理的角度 软件项目管理具有一些与其他项目管理不同的特性。软件项目管理中遵循着一些原则,例如:软件项目中需要平衡需求、资源、工期、质量这四个要素之间的关系;大规模的项目要拆分成几个小项目,从而减小项目的管理风险,并且使目标具体明确;依靠一套规范的过程来实时控制项目进度,并确保项目经理能够及时发现问题、解决问题,保证项目具有很高的可见度;针对不同项目的特点,制订不同的项目管理的方针政策;合理控制项目组的规模控制原则;有效的积累知识,做到人员的专业化培养。目前在软件项目管理方面有国际标准化组织专门为软件行业定制的ISO9003 标准,它给出了衡量软件质量的准则;美国卡内基·梅隆大学软件工程研究所提出的CMM(能力成熟度模型)则提供了一整套较为完善的软件研发项目管理的法。22.4模块化模块化就是把软件分割成几个易于处理的单元,通常称为模块,每个模块仅仅承担整个软件的一部分功能。模块化是开发出易于管理的软件的一条途径。当设计一个模块化系统的时候,其目标就应该是做到模块之间的最大独立性,就是使模块之间的联系尽可能少。这种联系称之为模块之间的耦合。同样的,每个模块的内部绑定程度应该最大化。内聚就用来表示内部绑定。2.4.1 耦合模块间的耦合有几种形式。控制耦合出现在一个模块传递控制信息来控制另外一个模块执行时,如过程调用的情况。另一种形式的耦合是数据耦合,这是模块间的数据共享。如果两个模块是通过共享同一个数据项而相互作用的,那么当对一个模块进行修改时,可能会影响到另一个模块,并且对数据本身格式的修改在这两个模块中都会有反映。过程间的数据耦合有两种形式,一种是以参数的形式从一个过程到另一个过程进行显示的数据传送。另一种是以一种隐式的全局数据的形式在模块之间进行共享。2.4.2内聚内聚有逻辑内聚与功能内聚。逻辑内聚是一种内聚度较弱的内聚形式。模块内的逻辑内聚是由其内部元素本质上实现逻辑上相似的活动所引起的。功能内聚是一种内聚度较强的内聚形式。这就表示模块中所有部分都围绕着完成某一项功能。2.5软件测试软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者 发现当前软件开发过程中的缺陷,以便及时改进; 这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性; 没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。2.5.1原则软件测试的几大原则: 1.软件开发人员即程序员应当避免测试自己的程序不管是程序员还是开发小组都应当避免测试自己的程序或者本组开发的功能模块。2. 应尽早地和不断地进行软件测试。3.对测试用例要有正确的态度:第一,测试用例应当由测试输入数据和预期输出结果这两部分组成;第二,在设计测试用例时,不仅要考虑合理的输入条件,更要注意不合理的输入条件。 4.人以群分,物以类聚,软件测试也不例外,一定要充分注意软件测试中的群集现象,也可以认为是“80-20原则”。5.严格执行测试计划,排除测试的随意性,以避免发生疏漏或者重复无效的工作。 6.应当对每一个测试结果进行全面检查。一定要全面地、仔细地检查测试结果,但常常被人们忽略,导致许多错误被遗漏。 7.妥善保存测试用例、测试计划、测试报告和最终分析报告,以备回归测试及维护之用。在遵守以上原则的基础上进行软件测试,可以以最少的时间和人力找出软件中的各种缺陷,从而达到保证软件质量的目的。2.5.2分类软件测试可分为白盒测试、 .黑盒测试 、灰盒测试。白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。 白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。黑盒测试法注重于测试软件的功能需求,主要试图发现下列几类错误。 功能不正确或遗漏; 界面错误; 数据库访问错误; 性能错误; 初始化和终止错误等。灰盒测试,是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。2.6软件工程的新发展Internet平台具有一些传统软件平台不具备的特征:分布性、节点的高度自治性、开放性、异构性、不可预测性、连接环境的多样性等。这对软件工程的发展提出了新的问题。软件工程需要新的理论、方法和技术和平台来应对这个问题。目前投入很大精力研究的中间件技术就是这方面的典型代表。Internet及其上应用的快速发展与普及,使计算机软件所面临的环境开始从静态封闭逐步走向开放、动态和多变。软件系统为了适应这样一种发展趋势,将会逐步呈现出柔性、多目标、连续反应式的网构软件系统的形态。面对这种新型的软件形态,传统的软件理论、方法、技术和平台面临了一系列挑战。从宏观上看,这种挑战为研究软件理论、方法和技术提供了难得的机遇,有可能建立一套适合于Internet开放、动态和多变环境的新型软件理论、方法和技术体系。从微观的角度来看, Internet 的发展将使系统软件和支撑平台的研究重点开始从操作系统等转向新型中间件平台,而网构软件的理论、方法和技术的突破必将导致在建立新型中间件平台创新技术方面的突破。23.结论本文给出了关于软件工程的综合论述,阐明了软件工程的一些基本原理,预测软件工程发展的一些动向。基于本文论述,我们可以看到,软件工程在处理常用的预先定制的构件来构建系统的能力上已经取得了重要的进展。虽然目前软件还在寻找自身的根基,但其在解决诸如缺少预制的构件和衡量标准等问题方面取得很多进展。参考文献【1】余 恺,关于软件工程系统需求的分析探讨,商场现代化2010年3月(下旬刊)总第606期。【2】韩 洋,软件工程的历史及新发展,东方企业文化·公司与产业 2010 年3 月。专心-专注-专业

    注意事项

    本文(软件工程综述(共6页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开