软件工程﹝李浪﹞课件1.ppt

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

第1章 概述 目录 1.1 软件 1.1.1 软件的定义和特点 1.1.2 软件的发展 1.2软件危机 1.2.1 软件危机的主要特征 1.2.2软件危机的具体体现 1.2.3软件危机产生的原因 1.2.4软件危机的解决途径 1.3软件工程 1.3.1软件工程的定义 1.3.2 软件工程的背景和历史 1.3.3 软件工程的基本原理 1.3.4 软件工程工具 1.1 软件 1.1.1 软件的定义和特点 1. 软件的定义 软件是计算机系统中与硬件相互依存的另一部分。它包括程序、数据及其相关文档的完整集合。一种公认的软件传统定义为: 软件 = 程序 + 数据 +文档 其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能够正确地处理信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。 2.软件的特点 (1)软件是一种逻辑实体,不是具体的物理实体形态特性(形态特性) (2)软件与硬件的生产方式不同(生产特性) (3)软件与硬件的维护不同(维护特性) (4)软件是复杂的(复杂特性) 软件的复杂性一方面来自它所反映的实际问题复杂性;另一方面也来自程序结构的复杂性。软件技术的发展明显落后于复杂的软件需求,这个差距日益加大。如图1-2所示。 (5)软件是复杂的智力产品(智能特性) (6)软件产品的质量控制存在实际困难(质量特性) (7)软件开发和运行对计算机系统环境有一定的依赖(环境特性) (8)软件的管理特性 (9)软件的废弃特性 (10)软件应用极其广泛(应用特性) (11)软件成本相当昂贵 1.1.2 软件的发展 软件工程是在克服20世纪60年代出现的“软件危机”过程中逐渐形成和发展的。在50年的时间里,软件工程在理论和实践方面都取得了长足的进步。它的发展已经经历了四个重要阶段。 (1)第一代软件技术 (2)第二代软件技术 (3)第三代软件技术 (4)第四代软件技术 1.2软件危机 1.2.1 软件危机的主要特征 (1)软件开发进度难以预测。软件开发过程中的拖延工期想象并不罕见,这种想象降低了软件开发组织的信誉。 (2)软件开发成本难以控制。软件开发中投资一再追加,往往是实际成本比预算成本高出一个数量级。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地引起用户的不满。 (3)产品功能难以满足用户需求。开发人员和用户之间很难沟通、矛盾很难统一,往往是软件开发人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。在双方不充分了解的情况下,就仓促上阵设计系统、匆忙着手编写程序,这种“闭门造车”的开发方式必然导致最终的产品不符合用户的实际需要。 (4)软件产品质量无法保证。系统中的错误很难消除。软件是逻辑产品,质量问题很难以统一的标准度量,因而造成质量控制困难。软件产品并不是没有错误,而是盲目检测很难发现错误,而隐藏下来的错误往往是造成重大事故的隐患。 (5)软件产品难以维护。软件产品本质上是开发人员的代码化的逻辑思维活动,他人难以替代。除非是开发者本人,否则很难及时检测、排除系统故障。为使系统适应新的硬件环境,或根据用户的需要在原系统中增加一些新的功能,又有可能增加系统中的错误。 (6)软件缺少适当的文档资料。文档资料是软件必不可少的组成部分。缺乏必要的文档资料或者文档资料不合格,将给软件开发和维护带来许多严重的困难和问题。 1.2.2软件危机的具体体现 软件危机主要表现在两个方面: (1)软件产品质量低劣,甚至在开发过程中就夭折。 (2)软件生产率低,不能满足要求。 1.2.3软件危机产生的原因 用户需求不明确。主要体现在:在软件被开发出来之前,用户自己也不清楚软件开发的具体需求;用户对软件开发需求的描述不精确,可能有遗漏、有二义性甚至有错误;在软件开发过程中,用户还提会出修改软件开发功能、界面、支撑环境等方面的要求;软件开发人员对用户需求的理解与用户的本来愿望有差异。 缺乏正确的理论指导。由于软件开发不同于大多数其他工业产品,其开发过程是复杂的逻辑思维过程,其产品很大程度上依赖于开发人员高度的智力投入。 过分地依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件开发产品的个性化,也是发生软件开发危机的一个重要原因。 软件开发规模越来越大。随着软件开发应用范围的扩大,软件开发规模也越来越大。大型软件开发项目需要组织一定的人力共同完成,而多数管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理方面的经验。各类人员的信息交流不及时、不准确、有时还会产生误解。软件开发项目开发人员不能有效地、独立自主地处理大型软件开发的全部关系和各个分支,因此容易产生疏漏和错误。 软件开发复杂度越来越高。软件开发不仅仅是在

文档评论(0)

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

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

1亿VIP精品文档

相关文档