- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]软件工程导论第一章
liang@ 软件工程导论 梁文新 办公室:综合楼108 电 话:liang@ 基于计算机的系统 何谓软件? 软件是基于计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合 程序是按事先设计的功能和性能要求执行的指令序列,是对计算任务的处理对象和处理规则的描述 数据是使程序能正常操纵信息的数据结构 文档是与程序开发,维护和使用相关的图文材料 软件的特点 软件是一种逻辑实体,而非有形的系统元件 因而它具有抽象性,其开发成本和进度难以估算 软件的生产与硬件不同,在它的开发过程中没有明显的制造过程 一旦开发成功只需复制即可使用,但维护工作量大 在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题 但由于软件维护需要修改程序,从而导致故障率升高 软件的分类 系统软件 最靠近计算机硬件的一层 OS、编译程序、设备驱动程序等 支撑软件 支撑软件的开发和维护的软件 DBMS、软件开发工具等 应用软件 应用于特定领域的软件 CAD、办公自动化软件、媒体播放软件等 软件的规模 软件的发展 程序设计阶段 — 1946至1956年 低级语言:机器语言、汇编语言 I/O小,但计算量大 尚未出现“软件”一词 程序系统阶段 — 1956至1968年 高级程序语言出现 I/O大,但计算量小 程序+文档?“软件”?“软件危机”?软件工程 软件工程阶段 — 1968年以后 用工程化方法开发和管理软件 1.1.1 软件危机的介绍 在计算机软件的开发和维护过程中所遇到的一系列严重问题 软件危机所带来的严重后果 仅有少数软件能够及时、不超出预算、无差错地交付,并且能满足客户的需求 Standish Group对2000年完成的280,000个软件项目的分析报告 成功完成:28% 取消:23% 推迟完成、超出预算和/或功能缺失:49% Cutter Consortium在2002年的报告 有78%的信息技术组织卷入纠纷并最终以法律程序解决 其中67%因交付的软件产品的性能或功能无法达标 其中56%承诺的交付日期几次推迟 其中45%所交付的软件存在严重错误以至于无法使用 软件危机的典型表现 软件成本在系统中的比例 1.1.2 产生软件危机的原因 与软件本身特点有关 缺乏“可预见性”,管理和控制软件开发的过程很困难 不可能测试出全部错误,导致软件较难维护 规模庞大,在技术和管理上异常复杂和困难 开发与维护的方法不正确有关 忽视需求分析 轻视软件维护 错误认识的表现 忽视软件需求分析的重要性 急于求成,仓促上马 需求中的错误在需求阶段改正仅需1美元的代价,如果这一错误在交付客户时才发现,纠正该错误将付出1000美元的代价 认为软件开发就是写程序并设法使之运行 典型开发:编码:10%-20%;测试:40%-50% 软件产品的完整配置——程序、文档、数据 轻视软件维护 事实上,用于软件维护的费用占总费用的55-70% 开发每一行源代码耗资25美元,维护每一行源代码需要耗资1000美元 1.1.3 消除软件危机的途径 对计算机软件正确认识:对软件就是程序say no 既要有技术措施(方法和工具),又要有科学的组织管理措施 严密管理,良好组织,发扬团队精神 推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除错误概念和做法 开发和使用更好的软件工具 1.2 软件工程 ——1.2.1 软件工程的介绍 软件工程的定义 Software Engineering Conference, Garmisch, Germany, NATO Science Committee, Oct., 1968 软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理 /PUBLIC_A_to_O/LiangWenxin_Public/Software Engineering/References 软件工程的定义 1993年IEEE关于软件工程的一个更加综合的定义: (1)The application of a systematic, disciplined, quantifiable approach to development, operation and maintenance of software; that is, the application of engineering to software (2) The Study of approaches as in (1) 软件工程的本质特性 1.2.2 软件工程的基本原理 1.2.3 软件工程方法学 在软件生命周期全过程中使用的一整套技术的集合称为方法学(meth
文档评论(0)