软件工程学幻灯片.ppt
《软件工程学幻灯片.ppt》由会员分享,可在线阅读,更多相关《软件工程学幻灯片.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程学软件工程学第1页,共50页,编辑于2022年,星期三总总目目录录第第1 1章章 软件工程学概述软件工程学概述第第2 2章章 系统分析系统分析第第3 3章章 需求分析需求分析第第4 4章章 软件设计方法软件设计方法第第5 5章章 用户界面设计用户界面设计第第6 6章章 编码编码第2页,共50页,编辑于2022年,星期三总总目目录录第第7 7章章 测试测试第第8 8章章 软件维护软件维护第第9 9章章 面向对象技术面向对象技术第第1010章章 软件质量管理软件质量管理第第1111章章 软件项目管理软件项目管理第3页,共50页,编辑于2022年,星期三第第1章章 软件工程学概述软件工程学概
2、述1.1 1.1 什么是软件什么是软件1.2 1.2 软件危机软件危机1.3 1.3 软件工程软件工程1.4 1.4 软件生命周期软件生命周期1.5 1.5 软件过程软件过程第4页,共50页,编辑于2022年,星期三软件软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。程序是按事先设计的功能和性能要求执行的指令序列数据数据是使程序能正常操纵信息的数据结构文档是与程序开发,维护和使用有关的图文材料是与程序开发,维护和使用有关的图文材料1.1 什么是软件第5页,共50页,编辑于2022年,星期三 软件是一种软件是一种逻辑实体,而不是具体的物理实体。因,而不是具体
3、的物理实体。因而它具有抽象性而它具有抽象性 软件的生产与硬件不同,在它的开发过程中软件的生产与硬件不同,在它的开发过程中没有明显没有明显的制造过程的制造过程在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题1.1.1 软件的特点第6页,共50页,编辑于2022年,星期三软件的开发和运行常受到计算机系统的限软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性制,对计算机系统有着不同程度的依赖性软件的开发至今软件的开发至今尚未完全摆脱手工艺的开尚未完全摆脱手工艺的开发方式发方式软件本身是复杂的软件本身是复杂的 实际问题的复杂性实际问题的复杂性 程序逻辑结构的复杂性程序逻辑
4、结构的复杂性 软件成本相当昂贵软件成本相当昂贵相当多的软件工作涉及到社会因素相当多的软件工作涉及到社会因素第7页,共50页,编辑于2022年,星期三按软件的功能进行划分:系统软件 操作系统 数据库管理系统 设备驱动程序 通信处理程序等1.1.2软件的分类第8页,共50页,编辑于2022年,星期三 支撑软件文本编辑程序文件格式化程序磁盘向磁带向数据传输的程序程序库系统支持需求分析、设计、实现、测试和支持管理的软件第9页,共50页,编辑于2022年,星期三 应用软件 商业数据处理软件 工程与科学计算软件 计算机辅助设计制造软件 系统仿真软件 智能产品嵌入软件 医疗、制药软件 事务管理、办公自动化软
5、件 计算机辅助教学软件第10页,共50页,编辑于2022年,星期三按软件规模进行划分:类别 参加人员数 研制期限 源程序行数 微型微型 1 14周 0.5k 小型 1 16月 1k1k2k2k中型中型 25 12年 5k5k50k大型 5 52020 2 23年 50k100k甚大型 1001000 45 5年年 1M(=1000k)极大型极大型 20005000 510年 1M10M第11页,共50页,编辑于2022年,星期三按软件工作方式划分:实时处理软件 分时软件 交互式软件 批处理软件按软件服务对象的范围划分:项目软件 产品软件第12页,共50页,编辑于2022年,星期三通常把在计算机
6、软件的开发与维护过程中所遇到的一系列通常把在计算机软件的开发与维护过程中所遇到的一系列通常把在计算机软件的开发与维护过程中所遇到的一系列通常把在计算机软件的开发与维护过程中所遇到的一系列严重问题笼统地称为软件危机。这些问题绝不仅仅是不能严重问题笼统地称为软件危机。这些问题绝不仅仅是不能严重问题笼统地称为软件危机。这些问题绝不仅仅是不能严重问题笼统地称为软件危机。这些问题绝不仅仅是不能正常,运行的软件才具有的。实际上,几乎所有软件都不正常,运行的软件才具有的。实际上,几乎所有软件都不正常,运行的软件才具有的。实际上,几乎所有软件都不正常,运行的软件才具有的。实际上,几乎所有软件都不同程度地存在这
7、些问题。同程度地存在这些问题。同程度地存在这些问题。同程度地存在这些问题。概括地说,软件危机包含下述两方面的问题:概括地说,软件危机包含下述两方面的问题:(1)(1)如何开发软件以满足社会对软件日益增长的需求;如何开发软件以满足社会对软件日益增长的需求;(2)(2)如何更有效地维护数量不断膨胀的已有软件。如何更有效地维护数量不断膨胀的已有软件。如何更有效地维护数量不断膨胀的已有软件。如何更有效地维护数量不断膨胀的已有软件。1.2.1 软件危机简介第13页,共50页,编辑于2022年,星期三具体地说,软件危机主要有以下一些典型表现:具体地说,软件危机主要有以下一些典型表现:(1)(1)对开发软件
8、成本和进度的估计常常很不准确对开发软件成本和进度的估计常常很不准确(2)(2)经常出现用户对经常出现用户对“已完成的已完成的”软件产品不满意的情况软件产品不满意的情况(3)(3)软件产品的质量往往达不到要求软件产品的质量往往达不到要求(4)软件往往没有适当的文档资料软件往往没有适当的文档资料(5)软件成本在计算机系统总成本中所占的比例逐年上升软件成本在计算机系统总成本中所占的比例逐年上升(6)(6)软件开发生产率提高的速度远远不能满足社会对软件产品日益软件开发生产率提高的速度远远不能满足社会对软件产品日益软件开发生产率提高的速度远远不能满足社会对软件产品日益软件开发生产率提高的速度远远不能满足
9、社会对软件产品日益增长的需求增长的需求增长的需求增长的需求鉴于软件危机周期长且难于预测,把它为鉴于软件危机周期长且难于预测,把它为鉴于软件危机周期长且难于预测,把它为鉴于软件危机周期长且难于预测,把它为“软件萧条软件萧条软件萧条软件萧条”或或或或“软件困扰软件困扰软件困扰软件困扰”可能更恰当一些。可能更恰当一些。可能更恰当一些。可能更恰当一些。第14页,共50页,编辑于2022年,星期三1.客观原因客观原因软件是计算机系统中的逻辑部件而不是物理部件,其显软件是计算机系统中的逻辑部件而不是物理部件,其显软件是计算机系统中的逻辑部件而不是物理部件,其显软件是计算机系统中的逻辑部件而不是物理部件,其
10、显著特点是缺乏著特点是缺乏著特点是缺乏著特点是缺乏“可见性可见性可见性可见性”,因此,管理和控制软件开发过程,因此,管理和控制软件开发过程,因此,管理和控制软件开发过程,因此,管理和控制软件开发过程相当困难。此外,软件维护通常意味着改正或修改原有的设相当困难。此外,软件维护通常意味着改正或修改原有的设相当困难。此外,软件维护通常意味着改正或修改原有的设相当困难。此外,软件维护通常意味着改正或修改原有的设计,从而使得软件较难维护。计,从而使得软件较难维护。计,从而使得软件较难维护。计,从而使得软件较难维护。软件的另一个突出特点是规模庞大,而程序复杂性将随软件的另一个突出特点是规模庞大,而程序复杂
11、性将随软件的另一个突出特点是规模庞大,而程序复杂性将随软件的另一个突出特点是规模庞大,而程序复杂性将随着程序规模增加以指数上升。软件可能具有的状态数通常都着程序规模增加以指数上升。软件可能具有的状态数通常都着程序规模增加以指数上升。软件可能具有的状态数通常都着程序规模增加以指数上升。软件可能具有的状态数通常都是天文数字,无法完全预见软件可能遇到的每一种情况。是天文数字,无法完全预见软件可能遇到的每一种情况。是天文数字,无法完全预见软件可能遇到的每一种情况。是天文数字,无法完全预见软件可能遇到的每一种情况。1.2.2 产生软件危机的原因第15页,共50页,编辑于2022年,星期三2.2.主观原因
12、主观原因 在计算机系统发展的早期阶段开发软件的个体化在计算机系统发展的早期阶段开发软件的个体化特点,使得许多软件工程师对软件开发和维护有不少特点,使得许多软件工程师对软件开发和维护有不少糊涂认识,在实际工作中或多或少地采用了错误的方糊涂认识,在实际工作中或多或少地采用了错误的方法,这是使软件问题发展成软件危机的主要原因。法,这是使软件问题发展成软件危机的主要原因。错误的认识和做法主要表现为,忽视软件需求分错误的认识和做法主要表现为,忽视软件需求分析的重要性,认为软件开发就是写程序,轻视软件维析的重要性,认为软件开发就是写程序,轻视软件维护。护。事实上,对用户的需求没有完整准确的认识就匆事实上,
13、对用户的需求没有完整准确的认识就匆忙着手编写程序,是许多软件开发工程师失败的主要忙着手编写程序,是许多软件开发工程师失败的主要原因之一。原因之一。第16页,共50页,编辑于2022年,星期三必须认识到,软件开发和维护要经历一个漫长的时期必须认识到,软件开发和维护要经历一个漫长的时期(称为软件生命周期),编写程序只是软件开发过程中的一(称为软件生命周期),编写程序只是软件开发过程中的一个相对来说比次要的阶段。个相对来说比次要的阶段。另一方面还必须认识到,程序只是完整的软件产品的另一方面还必须认识到,程序只是完整的软件产品的一个组成部分,一个软件产品必须由一个完整的配置组成。一个组成部分,一个软件
14、产品必须由一个完整的配置组成。软件配置主要包括程序、文档和数据等部分。软件配置主要包括程序、文档和数据等部分。严酷的事实是,在软件开发的后期阶段引入一个变动比在严酷的事实是,在软件开发的后期阶段引入一个变动比在早期引如同一个变动所需付出的代价高早期引如同一个变动所需付出的代价高几百倍甚至上千倍几百倍甚至上千倍。所谓软件维护,就是在软件开发工作结束后,在使用现场对所谓软件维护,就是在软件开发工作结束后,在使用现场对软件进行修改,是极端艰巨复杂的工作,需要花费很大代价。软件进行修改,是极端艰巨复杂的工作,需要花费很大代价。由此可见,轻视软件维护是一个最大的错误。软件工程的一由此可见,轻视软件维护是
15、一个最大的错误。软件工程的一个重要目标就上提高软件的可维护性,减少软件维护的代价。个重要目标就上提高软件的可维护性,减少软件维护的代价。第17页,共50页,编辑于2022年,星期三引入同一变动付出的代价随时间变化的趋势引入同一变动付出的代价随时间变化的趋势第18页,共50页,编辑于2022年,星期三 首先应该树立对计算机软件的正确的认识。软件是首先应该树立对计算机软件的正确的认识。软件是首先应该树立对计算机软件的正确的认识。软件是首先应该树立对计算机软件的正确的认识。软件是程序、数据程序、数据及及及及文档文档文档文档的完整集合。其中,的完整集合。其中,的完整集合。其中,的完整集合。其中,程序程
16、序是能够是能够完成预定功能和性能的可执行的指令序列;完成预定功能和性能的可执行的指令序列;数据数据是使程序能够适当地处理信息的数据结构;是使程序能够适当地处理信息的数据结构;文档文档文档文档是开发、使用和维护程序所需要的图文资料。是开发、使用和维护程序所需要的图文资料。1.2.3 消除软件危机的途径第19页,共50页,编辑于2022年,星期三软件开发应该是组织良好、管理严密、各类人员团软件开发应该是组织良好、管理严密、各类人员团软件开发应该是组织良好、管理严密、各类人员团软件开发应该是组织良好、管理严密、各类人员团结协作共同完成的工程项目。必须充分吸取和借鉴人类结协作共同完成的工程项目。必须充
17、分吸取和借鉴人类结协作共同完成的工程项目。必须充分吸取和借鉴人类结协作共同完成的工程项目。必须充分吸取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、长期以来从事各种工程项目所积累的行之有效的原理、长期以来从事各种工程项目所积累的行之有效的原理、长期以来从事各种工程项目所积累的行之有效的原理、概念、技术和方法,并研究能更有效地开发软件的技术概念、技术和方法,并研究能更有效地开发软件的技术概念、技术和方法,并研究能更有效地开发软件的技术概念、技术和方法,并研究能更有效地开发软件的技术和方法。和方法。和方法。和方法。应该积极开发和使用计算机辅助软件工程(应该积极开发和使用计算机辅助软件工
18、程(应该积极开发和使用计算机辅助软件工程(应该积极开发和使用计算机辅助软件工程(CASE)工具。工具。工具。工具。第20页,共50页,编辑于2022年,星期三总之,为了消除软件危机,既要有技术措施(方总之,为了消除软件危机,既要有技术措施(方总之,为了消除软件危机,既要有技术措施(方总之,为了消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程法和工具),又要有必要的组织管理措施。软件工程法和工具),又要有必要的组织管理措施。软件工程法和工具),又要有必要的组织管理措施。软件工程正是从技术和管理两方面研究如何更好地开发和维护正是从技术和管理两方面研究如何更好地开发和维
19、护正是从技术和管理两方面研究如何更好地开发和维护正是从技术和管理两方面研究如何更好地开发和维护软件的一门新兴的工程学科。软件的一门新兴的工程学科。软件的一门新兴的工程学科。软件的一门新兴的工程学科。第21页,共50页,编辑于2022年,星期三软件工程是指导计算机软件开发的维护的一门软件工程是指导计算机软件开发的维护的一门工程学科,该学科的目的是生产出能按期交付工程学科,该学科的目的是生产出能按期交付的、在预算范围内的、满足用户需求的、质量的、在预算范围内的、满足用户需求的、质量合格的软件产品。合格的软件产品。1.3 软件工程 1.3.1 软件工程简介第22页,共50页,编辑于2022年,星期三
20、软件工程具有下述本质特性:软件工程具有下述本质特性:软件工程关注于大型程序的构造。软件工程关注于大型程序的构造。软件工程的中心课题是控制复杂性。软件工程的中心课题是控制复杂性。软件工程的中心课题是控制复杂性。软件工程的中心课题是控制复杂性。软件产品交付使用后仍然需要经常修改。软件产品交付使用后仍然需要经常修改。开发软件的效率非常重要。开发软件的效率非常重要。开发人员和谐地合作是成功地开发软件的关键。开发人员和谐地合作是成功地开发软件的关键。开发人员和谐地合作是成功地开发软件的关键。开发人员和谐地合作是成功地开发软件的关键。软件必须有效地支持它的用户。软件必须有效地支持它的用户。软件必须有效地支
21、持它的用户。软件必须有效地支持它的用户。在软件工程领域中通常由具有一种文化背景的人替具有在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。另一种文化背景的人创造产品。第23页,共50页,编辑于2022年,星期三用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理 坚持进行阶段评审坚持进行阶段评审坚持进行阶段评审坚持进行阶段评审实行严格的产品控制实行严格的产品控制实行严格的产品控制实行严格的产品控制采用现代程序设计技术采用现代程序设计技术采用现代程序设计技术采用现代程序设计技术结果应能清楚地审查结果应能清楚地审查结果应能清楚地审查结果应能清楚地审查 开发小组的人
22、员应该少而精开发小组的人员应该少而精开发小组的人员应该少而精开发小组的人员应该少而精承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性1.3.2 软件工程的基本原理第24页,共50页,编辑于2022年,星期三软件工程软件工程方法方法方法方法为软件开发提供了为软件开发提供了“如何做如何做”的技术的技术软件软件工具工具工具工具为软件工程方法提供了自动的或半自动的软为软件工程方法提供了自动的或半自动的软件支撑环境件支撑环境 软件工程软件工程软件工程软件工程过程过程定义了:定义了:定义了:定义了:方法使用的顺序方法使用的顺序
23、要求交付的文档资料要求交付的文档资料要求交付的文档资料要求交付的文档资料 为保证质量和适应变化所需要的管理为保证质量和适应变化所需要的管理为保证质量和适应变化所需要的管理为保证质量和适应变化所需要的管理软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑软件开发各个阶段完成的里程碑1.3.3 软件工程方法学第25页,共50页,编辑于2022年,星期三概括地说,软件生命周期由概括地说,软件生命周期由软件定义、软件开发和运行软件定义、软件开发和运行维护(也称为软件维护)维护(也称为软件维护)3 3个时期组成,通常把两个时期个时期组成,通常把两个时期个时期组成,通常把
24、两个时期个时期组成,通常把两个时期再进一步划分成若干个阶段。再进一步划分成若干个阶段。再进一步划分成若干个阶段。再进一步划分成若干个阶段。软件定义时期软件定义时期的基本任务是:确定软件开发工程的总目标;的基本任务是:确定软件开发工程的总目标;的基本任务是:确定软件开发工程的总目标;的基本任务是:确定软件开发工程的总目标;研究该项目的可行性;分析确定客户对软件产品的需求;估研究该项目的可行性;分析确定客户对软件产品的需求;估研究该项目的可行性;分析确定客户对软件产品的需求;估研究该项目的可行性;分析确定客户对软件产品的需求;估算完成该项目所需的资源和成本,并且制定工程进度表。这算完成该项目所需的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 工程学 幻灯片
限制150内