- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软工程1
软件工程 陈惠明 第1章 绪论 1.1软件危机 1.1.1软件的定义 1.1.2软件的特征 1.1.3软件危机 1.2软件工程学的范畴 1.2.1软件开发方法学 1.2.2软件工具 1.2.3软件工程环境 12.4软件工程管理 1.1软件和软件危机 1.1.1软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括程序正常执行所需的数据,以及有关描述程序操作和使用的文档。 其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。 软件=程序+数据+文档 1.1.2 软件的特征 1.软件开发不同于硬件设计 ①软件设计更依赖于设计人员的业务素质、智力以及人员组织、合作和管理,而硬件设计与人的关系较小; ②硬件设计成本占整个产品成本的一小部分;软件设计成本占整个产品成本的大部分 2.软件生成不同于硬件制造 硬件制造过程复杂,期间可能引入质量问题;软件的制造只是简单的复制过程; 3.软件维护不同于硬件维护 硬件运行初期有较高的故障率,修复故障后故障率下降到一个较低和稳定的水平,随着时间的推移故障率会再次升高,这是因为硬件将受到磨损的损害,达到一定程度就报废; 软件是逻辑产品,不会磨损和老化,但使用过程的维护却比硬件复杂。 1.1.3 软件危机 软件危机产生的原因 ①软件维护费用急剧上升,直接威胁计算机应用的扩大; (纠错性维护 完善性维护 适应性维护) ②软件生产技术进步缓慢是加剧软件危机的重要方面; (缺乏正确的方法论指导软件开发) 我国软件文档规范 《计算机软件开发规范》 《计算机软件需求说明编制指南》 《计算机测试文件编制规范》 《计算机软件配置管理计划规范》 1.2 软件工程学范畴 “软件工程”—1968年北大西洋公约组织在联邦德国提出。 软件工程:把软件当成一种工业产品,采用工程化的原理与方法对软件进行计划、开发和维护。 软件工程学 1.2.1 软件开发方法学 1.2.2 软件工具 编译程序 编辑程序 连接程序 操作系统 1.2.3 软件工程环境 方法与工具相结合,加上配套的软硬件支持就形成了环境。 1.2.4 软件工程管理 软件工程管理的目的是为了按照进度及预算完成软件计划,实现预期的经济和社会效益。包括:成本估算、进度安排、人员组织和质量保证等多方面的内容,还涉及管理学、度量学和经济学多个学科。 1.3软件工程的发展 1.3.1 3种编程范型: 1.过程式编程范型 2.面向对象编程范型 3.基于构件技术的编程范型 1.3.2 3代软件工程 1.从编程范型到软件开发过程 2.软件工程的分代 ①传统软件工程——以结构化程序设计为基础 结构化分析→结构化设计→面向过程编程→软件测试 ②面向对象软件工程——以面向对象程序设计为基础 面向对象分析与对象抽取→对象详细设计→面向对象的编码与测试 ③基于构件的软件工程——以软件复用为目标、领域工程为基础 领域分析与测试计划制定→领域设计→建立可复用构件→按“构件集成模型”查找和集成构件 1.4 软件工程的应用 1.4.1 在各种规模软件开发中的应用 1.4.2 软件工程的成就与发展展望 第2章 软件生存周期与软件过程 2.1 软件生存周期 2.2传统软件工程 2.3软件演化模型 2.4形式化方法模型 2.5统一过程和敏捷过程 2.6软件可行性研究 2.1 软件生存周期 2.2 传统软件过程 2.2.1瀑布模型 1.阶段间的顺序性和依赖性 2.推迟实现的观点 3.保证质量的观点 4.存在问题:只有开发人员能够做出准确的需求分析,才能够得到预期的结果 2.2.2 快速原型模型 首先建立一个能够反映用户主要需求的原型,让用户实际看一下未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。然后将原型反复改进,直至建立完全符合用户要求的新系统。 2.3 软件演化模型 2.3.1增量模型 2.3.2螺旋模型 计划 风险分析 建立原型 用户评审 2.3.3构件集成模型 增量模型 2.4 形式化模型 2.4.1转换模型 2.4.2净室模型 2.5 统一过程和敏捷过程 2.5.1统一过程 描述了软件开发中各个环节应该做什么、怎么做、什么时候做以及为什么做,描述了一组以某种顺序完成的活动。其结果是一组有关系统的文档,例如模型和其它一些描述,以及最初问题的解决方案等。 2.5.2敏捷过程 是一种以人为核心、以迭代方式循序渐进进行开发的方法,其软件开发的过程称为敏捷过程。在这一过程中软件项目被切分成多个子项目,各个子项目的成果都经过测试,具
文档评论(0)