- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十六章 软件工程导论
16.1 概述近年来随着微电子学技术的飞速发展,计算机硬件性能所格比平均每10年至少提高两个数量级,而且其质量也不断提高。与此同时,计算机软件系统的成本却在逐年上升,规模越来越庞大、结构越来越复杂,出于软件错误而导致灾难件后果的报道屡见不鲜,软件开发的牛产率也越来越满足不了计算机应用日益普及的需求。事实上软件早己成为制约计算机发展的关键因素。在计算机系统发展早期,软件开发基本上沿用“软件作坊”式的个体化方法,这种方法在软件开发和维护过程中遇到了一系列严重问题:程序质量低下,错误频出,进度延误,费用剧增……。这些问题导致了“软件危机”。1968年,北大西洋公约组织的计算机科学家在联邦德国召开国际会议讨论软件危机问题,正式提出并使用了“软件工程”这个名词.从此诞生了一门新兴的工程学科。人们针对“软件危机”现象提出的多种解决方法归纳起来有两类:一是采用工程方法来组织、管理软件的开发过程;二是深入探讨程序和程序开发过程的规律,建立严密的理论,以期能够用来指导软件开发实践。前者导致“软件工程”的出现和发展,而后者则推动了形式化方法的深入研究。1983年IEEE将软件定义为:计算机程序、方法、规则和相关文档资料以及在计算机上运行时所必需的数据。目前对软件比较公认的解释是:程序、支持程序运行的数据以及与程序有关的文档资料的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列,数据是使程序能正常操作信息的数据结构,文档是与程序开发、维护和使用有关的图文材料。软件具有以下一些特点:. 软件是一种逻辑实体,它具有抽象性。. 由于软件是被开发或设计的(不是传统意义上被制造的),所以软件成本集中在开发上,对软件的质量控制必须从软件的开发着手。. 与机械、电子设备不同,软件在运行和使用过程中没有磨损、老化问题。前者在运行和使用中的故障率大都遵循如图1所示的U形曲线(即浴缸曲线);而软件不存在磨损和老化问题,但是它会退化,要多次经过修改或维护,其故障率表现为如图2所示的锯齿形。因此,软件维护要比硬件维护复杂得多。. 软件一旦研制成功,其生产过程就变成复制过程,不像其他工程产品那样有明显的生产制造的特征,但是会出现软件产品版权保护问题和打击盗版问题。. 软件的开发和运行常受到计算机硬件和环境的限制,这导致软件升级和移植的问题,所产生的维护成本通常比开发成本高许多。.. 虽然软件产业正在朝着构件化组地方向发展,但大多数软件仍然是定制的,且软件开发尚未完全摆脱手工开发方式。尽管市场上有辅助开发工具,但最终的核心代码仍必须由程序员手工编写和组织;再加上人们对计算机的依赖程度越来越高,对软件的需求数量和规模越来越大。达一切导致了软件开发人员的工作压力也越来越大。.. 软件本身是复杂的,其复杂性可能来自它所反映的实际问题,也可能来自程序的逻辑结构,还可能会受到软件项目过程管理中主客观因素的影响。涉及因素多。相当多的软件工作不但涉及社会因素,而且涉及人类社会各行各业及其他领域的专门知识。许多软件的开发和运行涉及机构、体制及管理方式等问题,甚至涉及到人的观念和人的心理。所有这些均会直接影响到项目的成败。这对软件工程师提出了很高的要求,最终使得软件开发的分工更加明确、细致。.由于软件研制工作需要投入大量、复杂、高强度的脑力劳动,导致了软件成本昂贵。软件不仅是一种在市场上推销的工业产品,往往又是与文学艺术作品相似的精神作品。与体力劳动相比,精神活动过程的特点是“不可见性”,这大大增加了组织管理上的困难。???????????????????????????????????????? -----摘自《软件工程与管理》覃征 编著16.2 软件生命周期模型1. 软件生命周期 对于一个软件的研制,从问题的提出,经过开发、使用、维护、修订,直到最后终止使用而被另一软件所取代,就像是一个生命体从孕育、出生、成长到最后消亡,软件的这个状态变化的过程称为生命周期(life cycle)。软件生命周期的演化具有阶段性,依据一定的原则,可以把软件生命周期划分为若干不同阶段,相邻的阶段既相互区别又相互联系,每个阶段都以其前一阶段的工作成果作为本阶段工作的基础。软件生命周期的划分有助于软件开发和管理人员根据不同阶段的特点进行软件开发及其管理。软件开发的经验表明,软件开发越到后期,改正前期开发工作的失误越困难,因此在软件开发工作中应该对软件开发工作的阶段性给予充分认识,在前期工作不无分的前提下不应过早地进入软件开发的下一阶段。依据不同的原则对软件生命周期的划分也不同,《软件工程国家标准——计算机软件开发规范》(GB8566—88)中将软件生命周期划分为8个阶段:可行性研究与计划、需求分析、概要设计、详细设计、实现(包括单元测试)、组装测试(集成测
原创力文档


文档评论(0)