曾玲版7软件工程(435KB).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
教学进度 计算机科学与工程系 * 第7章 软件工程 7.1 软件工程学科 7.2 软件生命周期 7.3 软件工程方法 7.4 模块化 7.5 行业工具 7.6 测试 7.7 文档编制 7.8 软件所有权和责任 * 7.1 软件工程学科 1964年,IBM为System/360计算机系统开发操作系统 IBM OS/360 时,发生了软件危机。 软件危机:软件需求分析不明确,开发无计划性, 软件开发过程和文档不规范,软件测试不充分等 。 1968年,北大西洋公约组织科技委员会提出了 软件工程(Software Engineering)的概念,提出用工程化的原则和方法进行软件开发,以提高软件开发的效率和软件产品的质量。 已有一些方法和工具,但仍未彻底解决问题。 原因:可重用的通用软件构件少、对软件系统的复杂度和费用缺少定量的度量指标等。 * 7.1 软件工程学科 CASE工具(计算机辅助软件工程工具): 项目规划系统:用来辅助经费预算、项目调度及人员分配等; 项目管理系统:辅助监控项目的开发进度; 文档工具:辅助编写和组织文档; 原型与仿真系统:辅助开发原型系统; 界面设计系统:辅助图形用户界面的开发; 编程系统:辅助编写和调试系统。 * 7.2 软件生命周期 软件生命周期:从用户需求开始,经过开发、交付使用,在使用中不断地增减修改,直至让位于新的软件的全过程。 修改将一直延续到软件生命周期的结束,因为不断会发现老错误或由于更正老错误而引入的新错误,另外用户的需求经常改变。 有时修改老系统的成本大于重新开发新系统的成本。 7.2.1 周期是个整体 最重要的阶段 * 7.2.2 传统的开发阶段 开发阶段主要步骤:分析、设计、实现、测试。 发现错误的阶段 成本指数 需求分析阶段 1 设计阶段 3-6 编码实现阶段 10 开发测试阶段 15-40 应用测试阶段 30-70 实际运行阶段 40-1000 为了修正一个错误,所要付出的成本比较 * 开发阶段第1步——分析 由系统分析员与用户共同讨论、制订需求说明书,确定软件系统需提供的功能、可靠性、接口要求等,并给出详细的定义和描述。(系统应该做什么) 需求——由用户提出、补充、修正。 规格说明——由需求转换到技术开发层面 软件需求文档——需求说明书。由于用户需求变化及沟通不够,通常会不断改变,以致成本增加和延期交付软件产品。 * 开发阶段第2步——设计 由系统分析员首先进行概要设计,将软件需求说明书中的各项需求转换成一个意义明确的模块; 然后进行详细设计,对每个模块的工作进行具体描述,为程序代码的编写打基础。(系统怎么实现功能) 设计阶段产生的文档是设计说明书。 * 开发阶段第3步——实现 由程序员用程序设计语言把软件设计转换成可以运行的程序代码、建立数据库。 源程序应该结构良好、清晰易懂且与设计一致。 传统的实现方法——自底向上。先编写独立的小模块,再组合起来构成较大的模块。 现在的实现方法——自顶向下。先实现整个系统的框架,然后逐步求精地实现下层模块。 * 开发阶段第4步——测试 测试有两种目标: 确认测试——确认软件是否实现了分析和设计阶段所确定的功能和规格。 缺陷测试——查找和纠正错误。 测试的步骤: 首先对每个模块进行单元测试, 然后将所有模块组装成系统后进行集成测试, 再由用户参与,用用户实际业务数据进行有效性测试后交付使用, 最后在系统实际运行环境中,对整个系统进行系统测试。 * 7.3 软件工程方法(开发模型) 早期的瀑布模型强调各阶段严格按顺序进行。 现在流行增量模型(螺旋模型),先建立一个功能简化的原型系统,经过测试和用户评估后,更多功能递增地加到系统中,形成一个更大的原型……,直到一个完整的系统。 瀑布模型 螺旋模型 * 7.4 模块化 把软件分割成功能简单、相对独立的模块。 在面向对象程序设计中,类和对象是基本的模块。 耦合:模块间的联系应尽量少。 内聚:模块内部各部分的联系应尽量大,即一个模块的一个部分(如对象的一个方法)集中于某一项功能。 构件:使软件走向工业化的一种软件标准件、现成的预制“模板”,可以被装配(重用)成软件系统。如C++、Java、C#都有模板库。 * 7.5 行业工具 较老的工具: 数据流图:从数据流的分析过程中获得信息。 实体-联系图:系统中的实体以及这些实体之间关系。 数据字典:所有数据项的属性、引用信息。 面向对象时代的工具: 统一建模语言UML。 * 7.6 测试 帕累托法则: 一个大型软件系统中会有一小部分模块比其它模块更容易出错。与其对所有模块进行相同力度的、不彻底的测试,不如集中精力对那些容易出错的模块进行彻底的测试,这样可以发现更多的错误。 测试方法: 白盒测试:测试的对象是源程序,给出的测试数据可使每条指令都能至少执行一次。

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档