- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程 第一章 概述 软件工程的概念 定义:研究如何应用一些科学理论和工程上的技术来指导软件的 开发,用较少的投资获得高质量的软件的一门学科。 基本内容:包括理论、结构、方法、工具、环境与规范等。 目标:以较少的投资获得易维护、易理解、可靠和高效率的软件 产品。 原则:即分解、抽象和信息隐蔽、一致性和确定性。 原理:工程化和系统化。 软件工程 软件的分类 基于软件功能的划分 系统软件、支撑软件、应用软件 基于软件工作方式的划分 实时处理软件、分时软件、交互式软件、批处理软件 基于软件规模的划分 微型软件、小型软件、中型软件、大型软件、巨大型软件、极大型软件 基于软件失效的影响进行划分 基于软件服务对象的范围进行划分 定制软件 、产品软件 软件工程 软件危机:指计算机软件的开发和维护过程中所遇到的 一系列严重问题。 具体表现: 产品不符合用户的实际需要。 软件开发生产率不高,不能满足客观需要。 软件产品质量差。 对软件开发成本和进度的估计不准确。 可维护性差。 软件的文档资料不完整和不合格。 软件成本逐年上升。 软件工程 如何克服软件危机 用工程的方法进行软件生产 软件工程:用工程、科学和数学的方法和原则来研制、维护计 算机软件的有关技术及管理方法。 软件工程 软件工程的三要素 方法、工具、过程 软件工程 软件开发的生命周期 基本原则 (1)用户参与的原则; (2)“先逻辑,后物理”的原则; (3)“自顶向下”的原则; (4)工作成果描述标准化的原则。 软件工程 第2章 软件生命周期过程模型 软件生命周期的六个阶段 1、问题的定义及规划 :此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。 2、需求分析:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。 3、软件设计:此阶段主要根据需求分析的结果,对整个软件系统进行设计,软件设计一般分为总体设计和详细设计。好的软件设计将为软件程序编写打下良好的基础。 4、程序编写:此阶段是将软件设计的结果转换成计算机可运行的程序代码。 5、软件测试在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。 6、运行维护:软件维护是软件生命周期中持续时间最长的阶段。 软件工程 螺旋模型 1988年,Barry Boehm正式发表了软件系统开发的“螺旋模型” 它将瀑布模型和演化模型结合起来,强调了其它模型所忽视的风 险分析,特别适合于大型复杂的系统。 螺旋模型沿着螺线进行若干次迭代: (1) 制定计划:确定软件目标,选定实施方案,弄清项目开发的 限制条件; (2) 风险分析:分析评估所选方案,考虑如何识别和消除风险; (3) 实施工程:实施软件开发和验证; (4) 客户评估:评价开发工作,提出修正建议,制定下一步计划。 软件工程 螺旋模型 优势 通过原型的建立,使软件开发在每个迭代的最初明确方向; 通过风险分析,最大程度地降低软件彻底失败造成损失的可能性; 在每个迭代阶段植入软件测试,是每个阶段的质量得到保证; 整体过程具备很高的灵活性,在开发过程的任何阶段自由应对 变化; 每个迭代阶段累计开发成本,使支出状况容易掌握; 通过对用户反馈的采集,与用户沟通,以保证用户需求的最大 实现; 缺陷 过分依赖风险分析经验与技术,一旦在风险分析过程中出现偏 差将造成重大损失; 过于灵活的开发过程不利于已经签署合同的客户与开发者之间 的协调; 由于只适用大型软件,过大的风险管理支出会影响客户的最终 收益; 软件工程 第三章 需求分析 需求分析的任务 需求分析指的是在建立一个新的或改变一个现存的系统或产品时,确定新系统的目的、范围、定义和功能时所要做的所有工 作。需求分析是软件工程中的一个关键过程。 需求分析就是分析软件用户的需求是什么,用规范的格式表达出来。 需求分析虽处于软件开发过程的初期阶段,但它对于整个软件开发过程以及软件产品质量是至关重要的。随着软件系统复杂性的提高及规模的扩大,需求分析在软件开发中的所处的地位愈加突出,从而也愈加困难。 简而言之,需求分析的任务就是解决做什么的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求. 软件工程 需求的类型 通常的需求分为两种类型:功能性需求和非功能性需求。 功能性需求是用来描述系统能够提供哪些功能来解决用
文档评论(0)