- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程概述 重庆大学计算机学院 曾一 email:zyjckxx@cqu.edu.cn Tel:023o) 第1讲 软件工程概述 1.1 软件危机与软件工程的产生 1.1.1 软件与软件的特点 软件的定义: 软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述程序的操作和使用的文档。 简略地说: 1.1.1 软件与软件的特点 1.1.1 软件与软件的特点 软件的特点 软件是一种逻辑实体,而不是具体的物理实体,它具有抽象性 软件是“开发”出来的,不是“制造”出来的 软件维护不同于硬件维修(参看硬件和软件失效率的对比图) 软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性 软件的开发效率仍相当低,至今尚未完全摆脱手工作坊式的开发方式 软件本身是复杂的,相当多的软件工作还涉及到社会因素。 第3个阶段:软件工程时期(约为20世纪70年代以后)为了摆脱软件危机这一困境,北大西洋公约组织NATO (North Atlantic Treaty Organization ) 于1968年召开软件研讨会(Conference on Software Engineering),并首次提出“软件工程”这个术语,从此诞生了软件工程这个新兴学科。从70年代初开始,软件工作者主要围绕软件过程和开发模型、开发方法和技术、开发工具和环境,开发规范和标准以及软件管理等各个方面的研究和实践,使“作坊式生产方式”,逐步过渡到“软件工厂式的生产方式”,软件的生产步入了系列化、产品化、工程化和标准化的进程。 1.2 软件工程的基本概念 1.2.1 软件工程 软件工程 是指导软件开发和维护的工程类学科,它以计算机科学理论及其他相关学科的理论为指导,采用工程化的概念、原理、方法和技术,进行软件的开发和维护,并与经过时间证明正确的管理方法与措施相结合,以较少的代价获取高质量的软件。 软件生存周期SLC(Software Life Cycle) 一个软件产品通常是从模糊的概念开始,逐步建立起产品的需求,并对需求进行说明,然后进行设计、实现和测试。如果客户是满意的,那么就可安装产品,并且开始运行和维护它。如果产品到达了其有用生命的尽头就会退役、报废或停止使用。这一系列过程,我们称为软件的生命周期。 软件生存周期的各个阶段 从软件跨越的整个生命周期所实施的过程、活动和任务来划分,软件的生命周期可以归结为以下几个主要阶段:软件计划、需求分析、软件设计、编码、测试、维护与运行、退役等。这些阶段互相区别而又有联系。 实际上,每个软件的生命周期有所不同,如有的软件可能在需求阶段花费几年的时间,有的软件在设计和实现阶段只需几个月时间,有的软件则在维护阶段可能长达十几年。 第一个阶段:软件计划(Planning) 确定要解决的“问题是什么”及“解决问题的可行方案” 即确定要开发软件系统的总目标,给出它的功能、性能、可靠性以及接口等方面的概要性要求;从技术方面、经济方面、法律方面探讨解决问题的可能方案,对可利用的资源(如计算机硬件、软件、人力等)、成本、可取得的经济效益、开发的进度做出估计,制定出完成开发任务的实施计划等,提交管理机构评审。 第二个阶段:需求分析和规格说明(Requirement Analysis and Specification) 确定目标系统要“做什么”。 即对软件计划阶段的要求进一步细化和求精,加强并集中软件的需求分析和规格说明,强调软件分析人员与用户、软件分析人员与软件开发人员的交互,充分理解软件的作用域、所需功能、性能及接口、安全与保密、人机工程与人机界面、数据定义及数据库、安装及验收等需求,落实用户所需文档、用户操作和运行需求、用户维护需求,然后写出软件需求规格说明书,提交管理机构评审。 第三个阶段:设计(Software Design) 确定目标系统要“怎么做”。 软件设计是将需求转换成为软件的表示,包括数据结构、软件结构、接口表示和过程细节。通常将前三者划为软件的初步(概要)设计,后者则归为软件的详细设计。例如,可将需求转化为层次化的软件模块结构、模块所用的数据结构或数据库文件表示、模块之间接口描述、模块应完成的功能等,以及每个模块完成相应功能的过程细节如局部变量、内部数据结构、算法等。这些软件表示应该按照规定的标准形式加以描述,形成软件设计规格说明书,提交管理机构评审。 第四个阶段:编码(Coding) 编码体现了目标系统的“具体实现”。 编码是将设计转换成计算机可以接受的语言代码——源程序。如果设计给出的描述很详细,那么编码几乎可以机械地完成。自然,编码必须与设计表示一致、具有结构简单、清晰易读等良好的编码风格。 第五个阶段:
文档评论(0)