软件工程PPT统一完整版课件全套ppt教学教程最全整套电子教案电子讲义(最新) (2).ppt
《软件工程PPT统一完整版课件全套ppt教学教程最全整套电子教案电子讲义(最新) (2).ppt》由会员分享,可在线阅读,更多相关《软件工程PPT统一完整版课件全套ppt教学教程最全整套电子教案电子讲义(最新) (2).ppt(634页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、,第一篇 软件工程学概述,第1章 概述,本章的主要目标是介绍软件工程这门 学科,读完你将了解以下基本内容:,1,2,软件从业人员的道德和职业问 题对软件工程产业的影响。,1,软件工程的相关基本概念:软件、软件危机、软件工程、软件生命周期、软件过程等,具体见下述部分介绍。,1,2,2,2,软件工程的相关基本概念:软件、软件危机、软件工程、软件生命周期、软件过程等,具体见下述部分介绍。,1,当今世界的信息化进程,愈来愈趋向复杂化、人性化和扁平化。 软件工程作为一门工程学科,它的主要目标就是驱使软件系统向高性价比发展。 具有实时动态性 ,抽象、不可触摸 ,它的面向对象目标不受物理因素限制。 软件工程
2、同时又是一门比较年轻的学科。“软件工程”这一概念是在1968年NATO会议上针对“软件危机”的议题提出。,1.1 基本概念,构建这些软件系统的早期经验是:个人英雄主义、作坊式非正规的软件开发并不奏效。投资很大,做得很差。 制作既满足用户要求、又能按期完成并且不超出项目预算的复杂软件仍然存在很多困难。 软件工程自1968年以来已得到了长足的发展。 面向对象、构件、WEB服务及云计算等的扩充和提高已成为现实。,1.1.1 软件,1.1.1.1 软件及组成,计算机软件是与计算机系统操作有关的程序(Program)、规程、规则及任何与之有关的文档和数据。,1. 程序,程序是用程序设计语言描述的、适合于
3、计算机处理的语句序列,软件开发人员根据需求开发出来满足用户。 目前的程序设计语言有三种类型:机器语言和汇编语言、独立于机器的面向过程的语言以及独立于机器的面向问题的语言,后两种类型为高级语言。 用于科学计算的FORTRAN,用于事务处理的COBOL,支持结构化程序设计的PASCAL,支持现代软件开发的C、ADA,支持面向对象设计方法的C+、JAVA等。,面向问题的语言是第四代语言(4GL),也称 为非过程式语言。 数据库查询语言(Structure Query Language, SQL)、报表语言、机床控制专用语言和电路设计 专用语言等都是面向问题的语言。,2. 文档,文档(Document
4、)是一种数据媒体和其上所记录的数据。 最新的计算机软件文档编制规范是GB/T 8567-2006。,1.系统软件,1.1.1.3 软件的分类,1.系统软件,此类软件以数值算法为基础,对数值量进行处理和计算。,4.科学与工程 计算软件,此类软件以数值算法为基础,对数值量进行处理和计算。,4.科学与工程 计算软件,4.科学与工程 计算软件,个人计算机上使用的软件包括系统软件和应用软件两类。,7.个人计算机 软件,个人计算机上使用的软件包括系统软件和应用软件两类。,7.个人计算机 软件,1.1.1.4 软件的发展阶段,第一阶段 (20世纪50年代初至20世纪60年代初)是计算机系统开发的初期阶段。这
5、时的通用计算机由于价格昂贵、体积大、功耗高、机器不稳定和需要专人维护等原因,只能放在公共的实验室内供大家使用。,第二阶段 (20世纪60年代中期至20世纪70年代末)引进了多用户、多道程序和人机交互等新概念。实时系统可以从多路信号源上采集、处理、分析和转换数据,在相当短的时间输出计算结果。,第三阶段 (20世纪70年代中期至20世纪80年代末)分布式系统、计算机网络、嵌入式计算机系统有了很大发展。微处理器、个人计算机、高性能的桌面工作站具有相当高的性价比,广泛走进了人们工作、生活的各个方面。,第四阶段 (自20世纪80年代末期开始至现在)在很多应用领域,人们开始采用面向对象的技术,专家系统、人
6、工智能软件、构件开发、服务化软件、云计算等开始走向实际应用。 20世纪90年代末,Internet技术。 21世纪,电子商务、电子政务,服务化软件、云计算新型软件模式的出现。,1.1.2 软件危机,1.1.2.1 软件危机的表现,20世纪60年代末至20世纪70年代初,“软件危机”直到1968年在原西德加米施(Garmish)召开的国际软件工程会议上才被世人所注目。 计算机生物圈的计算机硬件,却有一个可怕的摩尔定律。 人月神话(The Mythical Man-Month)。 没有银弹(No Silver Bullet)。 软件危机概括地包含下述两方面的问题:如何开发软件、如何维护数量不断膨胀
7、的已有软件。,软件危机主要有以下一些典型表现:,对软件开发成本和进度的估计常常很不准确。 用户对“已完成”的系统不满意很普遍。 软件产品的质量往往靠不住。 软件常常不可维护。 缺失适当的文档资料。 软件成本在计算机系统总成本中的比例逐年上升。 软件开发生产率的速度,远远跟不上计算机的普及 和深入趋势。,1.1.2.2 软件危机的表现,用户对软件需求的描述不精确,存在遗留、二义性、错误的情况经常发生 。 软件开发人员对用户需求的理解与用户的本来愿望有差异 。 大型软件项目需要组织一定的人力共同参与完成 。 软件项目开发人员不能有效、独立自主地处理大型软件的全部关系和各个分支 。 缺乏有力的方法学
8、和工具的支持 。 软件产品的特殊性和人类智力的局限性导致人们无力处理很多复杂问题 。,1.1.2.3 软件危机的克服途径,用现代工程的概念、原理、技术和方法进行软件的开发、管理、维护和更新。计算机科学技术诞生了一个新的研究领域 软件工程,1.1.3 软件工程,1968年,北大西洋公约组织(NATO)召开计算机科学会议,弗里兹.鲍尔(Fritz Bauer)首次提出了“软件工程”的概念 。,1.1.3.1 软件工程的定义,1993年,IEEE对软件工程的定义为:“将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及有关上述方法的研究”。软件工程包括三个基本要素:方法、工具和过
9、程 。,1.1.3.2 软件工程的基本原理,著名的软件工程专家B. W. Boehm综合这些学者们的意见并总结了TRW公司多年开发软件的经验,1983年在一篇论文中提出了软件工程的7条基本原理。,1. 用分阶段的生命周期计划严格管理,2. 阶段评审,3. 严格的产品控制,尽可能重用。,限定每一层的副作用,减少耦合度。,尽可能重用。,4. 现代的程序设计技术,7. 软件工程实践需不断改进,6. 开发人员应少而精,5. 结果应能清楚地审查,1.1.3.3 软件工程的目标,可修改性(Modifiability) 有效性(Efficiency) 可靠性(Reliability) 可理解性(Unders
10、tandability) 可维护性(Maintainability),可重用性(Reusability) 可适应性(Adaptability) 可移植性(Portability) 可追踪性(Traceability) 可互操作性(Interoperability),1.1.3.4 软件工程的原则,抽象(Abstraction) 信息隐藏(Information Hiding) 模块化(Modularity) 局部化(Localization) 一致性(Consistency) 完整性(Completeness) 可验证性(Verifiability),1.1.4 软件生命周期,软件产品从形成概
11、念开始,经过开发、使用和维护,直到最后退役的全过程称为软件生存周期(Software Life Cycle)。,软件生命周期由软件定义、软件开发和软件使用维护退役3个时期 。,1. 问题定义 要解决的问题是什么?,2. 可行性研究 问题定义所确定的问题有行得通的解决 方法吗?此问 题值不值得去解决?,4. 总体设计 概括地说,应该怎样实现目标系统?,3. 需求分析 为了解决这个问题,目标系统必须要做什么?,5. 详细设计 以比较抽象的方式提出解决问题的方法。,6. 编码和单元测试 写出容易理解和容易维护的正确程序模块。,7. 综合测试 通过各种类型的测试使软件达到预定的要求。,9. 软件的维护
12、 维护是对软件产品进行修改或对需求变化做出响应的过程。,8. 软件的使用 软件的使用是软件发挥社会和经济效益的重要 实施阶段。,10. 软件的退役 终止对软件产品的支持,软件停止使用。,1.1.5.1 瀑布模型,瀑布模型(Waterfall Model)也称之为软件生存周期模型,由W.Royce于1970年提出。 此模型根据软件生存周期各个阶段的任务,逐步进行阶段性变换,直至得到用户确认的产品为止。,以充分有效的软件需求有效为前提,具有顺序性、依赖性、推迟时间以及质量保证的特点。它也不是“万能药”,主要体现在:,快速开发原型的本质是“快速”,实现的途径有三种:,1.1.5.2 原型模型,建造原
13、型的过程如图1.5所示。 原型不能称之为软件,UNIX Shell和超文本都是广泛的快速原型语言,近年来,广泛地使用第四代语言(4GL)构建快速原型。,1.1.5.3 增量模型,增量模型(Incremental Model)也称为渐进模型,它把软件产品作为一系列的增量构件来设计、编码、集成和测试。,增量模型的优点体现在:,增量模型分批逐步地向用户提交产品,整个软件产品被分解成许多增量构件,开发人员一个构件接一个构件地向用户提交产品。 增量模型逐步增加产品功能,可以使用户有较充裕的时间学习和适应新产品功能性能,从而减少一个全新的软件可能给客户带来的不适应。,增量模型的实施也存在一些难度:,在把每
14、个新的增量构件集成到现有软件体系结构时,必须不破坏原来已开发出的产品。 在设计软件体系结构时,必须使之利于扩充,向现有产品中加入新构件的过程也要简单、方便,即体系结构必须是开放的。,图1.6描绘了一种高风险的增量模型。,1.1.5.4 螺旋模型,螺旋模型(Spiral Model)是TRW(汤普森-拉美-伍尔德里奇公司,简称为TRW)的B. Boehm于1988年提出的。它基于软件生存周期模型与原型模型的结合 。,螺旋模型主要由四部分组成:需求定义、风险分析、工程实现和评审。,螺旋模型在支持大型软件开发方面具有广泛的应用前景,适用于面向规格说明、面向过程和面向对象的软件开发模型。,1.1.5.
15、5 喷泉模型,喷泉模型(Fountain Model)是一种典型的面向对象软件开发模型,迭代是它的主旨思想。 “喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性,如图1.8。,1.1.5.6 基于四代技术的模型,第四代语言(4GL)是R. Ross于1981年提出,采用四代技术开发软件的模型,如图1.9,1.1.5.7 变换模型,变换模型(Transformational Model)是基于形式化规格说明语言及程序变换的软件开发模型。 软件需求分析确定后,用某种形式化的需求规格说明语言(如VDM的META-IV、CSP和Z)描述,生成形式化的规格说明。,形式化规格说明语言及其变换描述的研
16、究方兴未艾,人们采用的技术手段主要有: 基于模型的规格说明及其变换技术; 基于代数结构的规格说明及其变换技术; 基于时序逻辑的规格说明及验证技术; 基于可视形式化技术的规格说明等等。,1.1.5.8 组合模型,组合的方式有两种: 第一种方式是以一种模型为主,嵌入另外一种或几种模型。 第二种方式是建立软件开发的组合模型。,1269111314的路径规划软件开发,就是生存周期模型 带有原型的生存周期模型,开发路径为13269111314 1327111314是原型模型 1581291314是螺旋模型 14111314是基于四代技术的模型,1.1.6 软件工程面临的挑战,软件工程在21世纪面临以下三
17、大挑战: 遗留系统的挑战 多样性的挑战 交付上的挑战,1.2 软件工程从业人员的职业和道德素养,软件工程人员必须坚持诚实正直的行为准则包括: 机密; 工作能力; 知识产权; 计算机滥用;,在这一方面,职业协会和机构肩负重任。ACM(美国计算机协会)、IEEE(电气和电子工程师协会)和英国计算机协会等组织颁布了职业行为准则或职业道德准则,凡是加入这些组织的成员必须严格遵守。,软件工程人应当遵守以下八条原则:,公众感 ; 客户和雇主 ; 产品 ; 判断力 ; 管理 ; 职业感 ; 同事 ; 自己 ;,在我们的职业生涯中,每个人都会面临这些困惑,幸运的是,在多数情况下,这些困惑要么不严重,要么不难解
18、决。 当雇主的行为不合乎道德时,职业工程人员的处境尤为艰难。安全不是绝对的。 另一个道德问题是军事项目和核项目的参与。雇主和所有雇员事先相互沟通各自的观点非常重要。 软件工程从业人员的道德问题研究最好要联系软件工程的实际,而不是将其作为一个孤立的问题来研究,且不能仅仅归为一个单纯的哲学问题来看待。,习题1,假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师观看,告诉他们及早发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清除它们是不现实的,并向你举例:如果一个故障是编码错误造成的,那么一个人怎么能在设计阶段清除它呢?应该怎么驳斥他? 职业工程人员是否应该
19、像医生或律师一样要颁发资格证书?分组讨论一下。,THANKS,第1篇 软件工程学概述,第2章 计算机系统工程,大多数软件项目都是为了满足某种需求的软件产品而建立起的一个系统化工程过程,这些软件必须在计算机系统的支持下才能工作。,计算机系统工程是指构造基于计算机系统有关的过程、 方法和技术,这是一种问题求解的活动序列。,大多数软件项目都是为了满足某种需求的软件产品而建立起的一个系统化工程过程,这些软件必须在计算机系统的支持下才能工作。,2.1 系统与系统工程,1. 功能特性 2. 非功能特性 系统的复杂性很大程度体现在可靠性上,系统总体的可靠性涉及到三方面: 硬件可靠性; 软件可靠性; 系统操作
20、员可靠性。,2.1.1 系统总体特性,2.1.1 系统总体特性,系统工程师根据系统需求为硬件系统指派任务,产生硬件需求。硬件工程式分为3个阶段 :,第一阶段: 制定开发计划,经评审确定项目成本预算和工程进度; 展开详细需求分析,经评审确定硬件规格说明。,第二阶段: 设计分析,以图的形式展现设计结果; 必要时建造原型,并不断完善测试原型; 制造分析,画出硬件生产图。,第三阶段: 按照质量保证计划和要求生产硬件产品。,2.1.3 软件和软件工程,软件与硬件、软件工程与硬件工程分别是基于计算机系统和基于计算机的系统工程的重要组成部分。 目前,大多数基于计算机系统的软部件,都是软件工程师自行开发的。软
21、部件由源程序、数据和文档三部分组成。 系统软件和应用软件的接口由系统软件决定。无论基于计算机的系统功能和性能如何,它们的结构都可以用IPO(Input Process Output)模型表示。,借助软件工程的过程、方法和工具,软件工程师开发基于计算机的系统。无论是哪种软件工程过程模型,它们都是涵盖软件项目的定义、开发、验证、提交和维护阶段 。,软件定义阶段的任务:,制定项目规划 ; 需求分析与定义 ; 确定软件性能和资源约束; 定义软件要素验收标准 ; 软件开发阶段的任务是完成软件总体结构及 数据设计、过程设计和编码三部分;,软件工程过程的最后阶段是软件验证、提交和维护。验证的任务 :,总体结
22、构设计和数据设计的任务 : 设计模块结构; 定义界面并建立数据结构 ;,软件过程设计的任务 : 详细描述软件规格说明中的每一个模块; 对模块进行评审。通过评审模块的详细描述将构 成详细设计规格说明 ;,软件编码的任务 : 用恰当的编程语言对详细描述模块进行编码,生 成 程序 ;,评审通过后,进行软件提交,主要任务包括 : 对已生成的记录和内部文档进行整理、分类和存档; 开发用户手册、建立适当的配置控制机制 ; 将软件提交给用户,必要时还应负责把软件安装到 用户环境中 ;,2.1.4 人机交互工程,现在,“友好的人机交互”已成为计算机系统的一项重要技术衡量指标,人机工程也已成为基于计算机系统开发
23、的一项重要内容。,人机工程一般包括以下几个步骤: 活动分析 ; 动作定义与设计 ; 人机交互的对话设计 ; 用户环境设计 ; 设计原型 ;,2.1.5 数据库工程,一个基于计算机的系统工程,至少包括三个部分:硬件工程、软件工程和人机交互过程。 开发一个数据库系统是一项复杂而庞大的软件工程项目,一般情况下称之为数据库工程,它主要完成以下任务:,调查用户的信息需求和对信息处理的要求;进行可行性论证;提出成本预算和工作计划等 ; 论证、选择和购置支持数据库系统的硬件和软件 ; 设计与实现 ; 数据库中的数据是按照系统确定的范围和用户的需求收集、整理、储存 ; 数据库管理人员(比如DBA)是数据库工程
24、的重要组成部分 ;,2.2 系统模型与建模活动,输入-处理-输出(IPO)结构是系统建模的基础, 它将基于计算机的系统换算成一个信息变换模型。 同时,Hatley和Pirbhai补充了用户界面、维护及自 测试方面的处理内容。,2.2.1 系统模型,1. 结构图 系统工程师用结构模板开发系统模型。 图2.5是某某传送线在线货物分类系统的总体关系图。,系统工程师借助ACD可以定义各子系统的结构 流图(AFD)。,2. 系统结构规格说明,结构图规格说明(ADS)描述了子系统信息以及子系统之间的控制流和信息流。每个子系统的结构图规格说明都应包括系统模板说明书、系统结构数据字典和系统结构互连图。,2.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程PPT统一完整版课件全套ppt教学教程最全整套电子教案电子讲义最新 2 软件工程 PPT 统一 完整版 课件 全套 教学 教程 整套 电子 教案 讲义 最新
限制150内