- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程 第一章 绪论 郑斌 前言 参考教材介绍 清华版《软件工程导论》(第五版) 北大版《软件工程》(第三版) 机械版《软件工程》Ian Sommerville (第八版) 网页介绍 / Software Engineering Institute of Carnegie Mellon University 迄今为止,计算机系统已经经历了4个不同的发展阶段(60年代前“定制”,至70年代“作坊”,至80年代“微处理器”,至现在“网络”),但是,我们仍然没有彻底摆脱“软件危机”的困扰,软件已经成为限制计算机系统发展的瓶颈。 为了更有效地开发与维护软件,软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科——计算机软件工程学(通常简称为软件工程)。 1.1 软件工程概念的提出与发展 (1) 软件危机 20世纪60年代以来,随着计算机的广泛应用,软件生产率、软件质量远远满足不了社会发展的需求,称为社会、经济发展的制约因素。这一现象称为“软件危机”。 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 概括地说,软件危机包含下述两方面的问题: 如何开发软件,以满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。 在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。 软件特点: 软件缺乏“可见性”,软件在运行过程中不会因为使用时间过长而被“用坏” 。 规模庞大,程序复杂。更重要的是必须有严格而科学的管理。 软件开发维护不正确方法: 对软件开发和维护还有不少糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。(软件就是编程序,需求的把握,生命周期,软件配置) 轻视维护工作,这是一个观念问题,特别是在目前国内现在的环境。据统计,维护费用要占到总费用的55%~70%(数据来自清华版教材) 图0.1 引入同一变动付出的代价随时间变化的趋势 软件工程概念的提出,其目的是倡导以工程的原理、原则和方法进行软件开发,以期解决出现的“软件危机” (2)软件工程概念 定义:软件工程是应用计算机科学理论和技术以及工程管理原理和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科。 采用工程的原理、原则和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 思考:计算机科学与软件工程?计算机系统工程? 软件工程的适用范围和研究意义? 软件工程的发展大体划分为两个阶段: 20世纪60年代末-80年代初:软件工程化的开发和管理。主要围绕软件项目,开展有关开发模型、开发方法和支持工具的研究。 成果 特征:前期主要研究系统实现技术,后期开始关注软件质量和软件工程管理。 20世纪80年代以来:主要围绕软件工程过程的支持,开张有关软件生产技术,特别是软件复用技术和软件生产管理方面的研究和实践。 成果 近年成果 1.2 软件开发的本质 计算机软件是指计算机系统中的程序、文档以及对应的相关数据。 程序:计算机任务的处理对象和规则的描述; 文档:是为了理解程序所需的阐述性资料; 数据:是支持程序运行的基础数据及数据结构。 软件是对一个特定问题域的抽象,是被开发出的一种逻辑实体,而不是一种“有形”的物理部件。 软件开发的目标是将问题域中概念映射为运行平台层面上的概念(如变量、常量、表达式等),把问题域中的处理逻辑映射为运行平台层面上的处理逻辑(如顺序、选择、循环语句)。 --软件开发的本质是什么? 运行平台:可直接支持软件执行的系统软件、支撑软件以及硬件等的集合体。 软件开发就是要“弥补”问题域与运行平台之间的“距离” 随着技术的进步, “距离”会越来越小,但难以实现自动化 距离将长期存在 从问题域想运行平台直接映射,势必存在一定复杂性。为控制复杂性,需要确定多个抽象层,如需求层、设计层、实现层、部署层。 每个抽象层有自己的特定术语,形成该抽象层的一个术语空间。 概念和处理逻辑的逐层映射: 问题域——需求层——设计层——……——运行平台 软件开发的本质 不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射”。 在需求层上创建的系统概念模型是对客观事物系统的抽象,即标识要解决的问题,或称问题定义 软件模
文档评论(0)