网站大量收购闲置独家精品文档,联系QQ:2885784924

1软件工程概述.pptx

  1. 1、本文档共129页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1软件工程概述剖析

软件工程;1 概述;问题提出;从何开始? 采用什么技术? 需要多少时间? 需要多少人?哪些角色?能否并行、协作地开发?人力应该如何高效率的投入? 开发计划? 直接编码? 需求? 设计方案和模型? 人机交互的界面? 功能优先级? ;开发风险? 可扩展性? 复用? 设计模式? 编码规范? 需求变更? 测试? 开发过程? 软件度量? 最后期限? ;软件是计算机的灵魂 软件是广大使用者与计算机之间的桥梁 软件是人类在各个领域中积累的知识的结晶 软件是人类文明与知识得以延续的新的载体 软件是人类进一步成为一个整体,得以进一步相互联系的纽带 ;计算机发展的初期,硬件的设计和生产是主要问题,那时所谓软件就是程序,甚至是机器指令程序,它们处于从属的地位。 现在对软件的正确理解:软件是计算机系统中与硬件相互依存的部分,它包括程序及其相关文档;程序是计算机任务的处理对象,和处理规则的描述;文档是为了理解程序所需的阐述性资料。 软件:程序以及开发、使用和维护程序需要的所有文档。(软件=程序+文档);软件:是程序、数据及相关文档的完整集合。 程序:是能够完成预定功能和性能的可执行的指令序列。 数据:是使程序能够适当地处理信息的数据结构。 文档:开发、使用和维护程序所需要的图文资料。 ;1983年,IEEE为软件下的定义: 计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必需的数据。方法、规则通常是在文档中说明,在程序中实现的。 ;与硬件相比: a: 表现形式:无形无色,看不见摸不着 b: 生产方式:人的智力的高度发挥,无明显 的制造过程,对软件的质量控 制必须立足于软件开发过程 c: 维护:不存在磨损、老化问题,存在需要 更新的问题 ;?No silver bullet: essence and accidents of software engineering –Fred Brooks,IBM OS360 项目经理 –1999 年图灵奖获得者 “没有任何技术或管理上的进展,能够独立地许诺十年内使生产率、可靠性或简洁性获得数量上的进???。” ? 软件的本质特性 –复杂性(Complexity ) –一致性(Conformity ) –可变性(Changeability ) –不可见性(Invisibility ) ;–软件在规模上可能比任何由人类创造的其他实体都要复杂,复杂性是软件的本质特性。 –软件的复杂性是必要属性 ?大量的组合状态 ?丰富的结构和相互依赖性 ?良好的接口用以封装内部的复杂性 –开发问题也会增加复杂性 ?重用通用化的组件意味着复杂的状态连接 ;–软件必须遵从人为的惯例并适应已有的技术和系统 软件必须遵循各种接口、协议和标准 有些情况下,兼容性是软件开发的目标 –软件需要随接口的不同而改变,随时间的推移而变化,而这些变化是不同的人设计的结果。 –许多复杂性来自保持与其他接口的一致,对软件的任何再设计,都无法简化这些复杂特性。 ;–软件产品扎根于文化的母体中,如各种应用、用户、自然及社会规律、计算机硬件等,后者持续不断地变化着,这些变化无情地强迫着软件随之变化。 –所有成功的软件都会发生变更! ?当人们发现软件很有用时,会在原有应用范围的边界,或者在超越边界的情况下使用软件; ?功能扩展的压力主要来自那些喜欢基本功能,又对软件提出了很多新用法的用户们。 –人们总是认为软件是容易修改的,但忽视了修改所带来的副作用,不断的修改最终导致软件的退化。 ;–软件是不可见的和无法可视化的 ?软件的客观存在不具有空间的形体特征 ?定义“需要做什么”成为软件开发的根本问题 –人们一直试图使用不同的技术进行软件可视化 ?控制流程、数据流、依赖关系、UML、…… ?这些技术仍然无法给出准确的、完整的描述 –软件仍然保持着无法可视化的固有特性,从而剥夺了一些具有强大功能的概念工具的构造思路。这种缺憾不仅限制了个人的设计过程,也严重地阻碍了相互之间的交流。 ;按软件的功能分类: a: 系统软件:能与计算机硬件紧密配合,使计算机系统的各个部件、相关的软件和数据协调高效的工作的软件。 如:OS DBMS 设备驱动程序 通信处理程序 b: 支撑软件:协助用户开发应用软件的工具性软件。 c: 应用软件:在特定领域内开发,为特定目的服务的软件。 ;按软件的规模分类 ;按软件的工作方式分类 a: 实时处理软件:在数据产生时立即对其处理,并及

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档