1. 首页
  2. 文档大全

软件工程课件之第1章软件工程学(第6版)(张海潘编著)

上传者:2****5 2022-07-22 16:41:37上传 PPTX文件 994.56KB
软件工程课件之第1章软件工程学(第6版)(张海潘编著)_第1页 软件工程课件之第1章软件工程学(第6版)(张海潘编著)_第2页 软件工程课件之第1章软件工程学(第6版)(张海潘编著)_第3页

《软件工程课件之第1章软件工程学(第6版)(张海潘编著)》由会员分享,可在线阅读,更多相关《软件工程课件之第1章软件工程学(第6版)(张海潘编著)(82页珍藏版)》请在文档大全上搜索。

1、为什么要学习这门课程o 正确理解和认识“软件”的概念及其特点n 软件是PC的灵魂o 掌握软件工程的原则、方法和思想来系统地开发软件,尤其是复杂、庞大软件的开发n 从程序员到软件工程师o 了解和接触各种软件开发技术和工具o 软件工程是软件技术和管理人员必备的课程软件开发与人才需求o 现有模式n 小作坊的、一人身兼多职n 英雄式的软件开发o 生产模式n 大规模的软件生产,专业化n 分工越来越细,团队合作开发o 对人才的要求n 除精通开发技术外n 更需要软件工程意识和团队合作精神教程o 软件工程导论(第6版)n 张海藩等编著n 清华大学出版社教学内容o 软件工程概述(第1章)o 可行性研究(第2章)

2、o 需求分析(第3章)o 系统设计(第5章)o 详细设计(第6章)o 系统实现(第7章)o 系统维护(第8章)教学内容o 面向对象方法学引论(第9章)o 面向对象分析(第10章)o 面向对象设计(第11章)o 面向对象实现(第12章)o 软件项目管理(第13章)资源o http:/ 软件工程组织o http:/ 希赛o http:/ 中国最大的开发者技术社区程序员刊物官方网站o http:/ 赛迪教育信息产业部电子教育与考试中心唯一指定软考远程辅导平台o http:/ 软件测试网软件工程概述内容o 软件的定义和特点o 软件危机n 概况、原因和消除途径o 软件工程介绍n 概况、基本原理、软件工程

3、方法学o 软件生命周期o 软件过程n 瀑布模型、快速原型模型、增量模型、螺旋模型等软件o 软件= 程序?o IEEE Standard Glossary of Software Engineering Terminologyn 计算机程序、规程以及运行计算机系统可能需要的相关文档和数据。o 程序:在运行时,能提供所希望的功能和性能的指令序列。o 数据:使程序能够正确运行的数据结构o 文档:描述程序研发过程、方法及使用的文档软件中的文档o 促进对软件的开发,管理和维护;o 便于各种人员(用户,开发人员)的交流软件本质特性o 复杂性n 软件在规模上可能比任何由人类创造的其他实体都要复杂,复杂性是软

4、件的本质特征n 软件的复杂形是必要属性o 大量的组合状态o 丰富的结构和相互依赖性o 良好的接口用以封装内部的复杂性n 开发问题也会增加复杂性o 高效率的代码通常是复杂的o 重用通用化的组件意味着复杂的状态连接o 复杂的代码难以维护,导致设计上的更复杂软件本质特性o 复杂性n Windows95有1000万行代码n Windows2000有5000万行代码n Exchange2000和Windows2000开发人员结构软件本质特性o 一致性n 软件必须遵从人为的惯例并适应已有的技术和系统o 软件必须遵循各种接口、协议和标准o 有些情况下,兼容性是软件开发的目标n 软件需要随接口的不同而改变,随

5、时间的推移而变化,而这些变化是不同的人设计的结果。n 许多复杂性来自保持与其他接口的一致,对软件的任何再设计,都无法简化这些复杂特性。软件本质特性o 可变性n 软件产品扎根于文化的母体中,如各种应用、用户、自然及社会规律、计算机硬件等,后者持续不断地变化着,这些变化无情地强迫着软件随之变化。n 所有成功的软件都会发生变更!o 当人们发现软件很有用时,会在原有应用范围的边界,或者在超越边界的情况下使用软件;o 功能扩展的压力主要来自那些喜欢基本功能,又对软件提出了很多新用法的用户们。软件本质特性o 可变性n 软件退化软件本质特性o 不可见性n 软件是不可见的和无法可视化的o 软件的客观存在不具有

6、空间的形体特征o 定义“需要做什么”成为软件开发的根本问题n 人们一直试图使用不同的技术进行软件可视化o 控制流程、数据流、依赖关系、UML、o 这些技术仍然无法给出准确的、完整的描述n 软件仍然保持着无法可视化的固有特性,从而剥夺了一些具有强大功能的概念工具的构造思路。这种缺憾不仅限制了个人的设计过程,也严重地阻碍了相互之间的交流。软件分类o 按工作方式划分n 实时处理软件n 分时软件n 交互式软件n 批处理软件软件分类o 按功能划分n 系统软件o 与计算机硬件紧密配合在一起,使计算机系统各个部件、相关的软件和数据协调、高效地工作的软件n 支撑软件o 能协助用户开发软件的工具性软件,其中包括

7、帮助程序人员开发软件产品的工具,也包括帮助管理人员控制开发的进程的工具n 应用软件:o 在特定领域内开发,为特定目的服务的一类软件软件分类o 按规模(人力、时间、源程序行数)划分软件分类o 按用途n 通用软件o 面向市场公开销售的独立运行系统。o 例如:操作系统、数据库管理系统、字处理软件等。n 定制软件o 由客户委托,在合同约束下开发的软件o 例如:网上书店、图书管理系统、空中交通管理系统等。软件的发展o 计算机软件发展的三个时期n 程序设计阶段(60年代中期之前)o 硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。n 程序系统阶段(60年代中期-70年代中期)o 出现“软

8、件作坊”、产品软件;“个体化”开发方法。n 软件工程阶段(70年代中期之后)o 软件开发成为一门新兴的工程学科软件工程。软件的发展o 各阶段特点软件危机o 概念n 软件危机指的使软件开发和维护过程中遇到的一系列严重问题,包含两方面的问题:o 如何开发软件,怎样满足对软件的日益增长的需求o 如何维护数量不断膨胀的已有软件软件危机o 软件危机的主要表现n 对软件开发成本和进度的估计不准确n 产品不符合用户的要求n 软件质量不高、可靠性差n 软件常常不可维护、错误难以改正n 缺乏适当的文档资料n 软件成本占系统总成本的比例逐年上升n 软件开发速度跟不上计算机发展速度软件危机o 软件危机-开发成本高软

9、件危机o 软件技术进步落后于需求增长软件危机o 产生软件危机的主要原因n 客观:软件本身特点o 逻辑部件,难以控制质量o 规模庞大,结构复杂n 主观:不正确的开发方法,落后的开发工具o 忽视需求分析o 错误认为:软件开发=程序编写o 轻视软件维护软件危机o 解决软件危机的途径n 技术措施o 使用更好的软件开发方法和开发工具n 组织管理措施o 软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。软件工程o 指导计算机软件开发和维护的一门科学。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和技术方法结合起来

10、,以经济地开发出高质量的软件并有效维护。o 产生n 1968年,北大西洋公约组织(NATO),召开的有关计算机软件会议上正式提出“软件工程”术语。n IEEE 1993年定义软件工程(Software Engineer)软件工程本质特性o 关注大型程序构造o 中心课题:简化复杂性o 变动成本控制o 提高开发效率o 和谐开发o 软件必须有效支持用户n 功能、性能和可用性o 开发者和使用者来自不同文化背景n 连接着的角色软件工程的基本原理o 软件工程的 原则和信条n 100多条o B.W.Boehm的7条基本原理软件工程的基本原理o 用分阶段的生命周期计划严格管理n 经统计表明,不成功的软件项目中

11、有一半左右是由于计划不周造成的。n Boehm认为,在软件的整个生命周期中应制定并严格执行六类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。软件工程的基本原理o 坚持进行阶段评审n 大部分错误是在编码之前造成的n 错误发现与改正得越晚,所需付出的代价越高。n 因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程的错误软件工程的基本原理o 实行严格的产品控制n 在软件开发过程中不要随意改变需求,因为改变某项需求往往需要付出较高的代价,但在实践中用户往往会提出需求变更,因此需要采取科学的产品控制技术。n 目前主要实行基准配置管理:基准配置是指经过阶段评


文档来源:https://www.renrendoc.com/paper/212725420.html

文档标签:

下载地址