《软件工程概念.pptx》由会员分享,可在线阅读,更多相关《软件工程概念.pptx(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 软件软件软件软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合关文档的完整集合关文档的完整集合关文档的完整集合 程序程序程序程序是按事先设计的功能和性能要求执行的指令序列是按事先设计的功能和性能要求执行的指令序列是按事先设计的功能和性能要求执行的指令序列是按事先设计的功能和性能要求执行的指令序列 数据数据数据数据是使程序能正常操纵信息的数据结构是使程序能正常操纵信息的数
2、据结构是使程序能正常操纵信息的数据结构是使程序能正常操纵信息的数据结构 文档文档文档文档是与程序开发,维护和使用有关的图文材料是与程序开发,维护和使用有关的图文材料是与程序开发,维护和使用有关的图文材料是与程序开发,维护和使用有关的图文材料第1页/共36页软件的特点软件的特点软件的特点软件的特点 软件是一种软件是一种软件是一种软件是一种逻辑实体逻辑实体逻辑实体逻辑实体,而不是具体的物理实体。因而它具有抽象性,而不是具体的物理实体。因而它具有抽象性,而不是具体的物理实体。因而它具有抽象性,而不是具体的物理实体。因而它具有抽象性 软件的生产与硬件不同,在它的开发过程中软件的生产与硬件不同,在它的开
3、发过程中软件的生产与硬件不同,在它的开发过程中软件的生产与硬件不同,在它的开发过程中没有明显的制造过程没有明显的制造过程没有明显的制造过程没有明显的制造过程 在软件的运行和使用期间,在软件的运行和使用期间,在软件的运行和使用期间,在软件的运行和使用期间,没有硬件那样的机械磨损,老化问题没有硬件那样的机械磨损,老化问题没有硬件那样的机械磨损,老化问题没有硬件那样的机械磨损,老化问题第2页/共36页 软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同
4、程度的依赖软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性性性性 软件的开发至今软件的开发至今软件的开发至今软件的开发至今尚未完全摆脱手工艺的开发方式尚未完全摆脱手工艺的开发方式尚未完全摆脱手工艺的开发方式尚未完全摆脱手工艺的开发方式 软件本身是复杂的软件本身是复杂的软件本身是复杂的软件本身是复杂的实际问题的复杂性实际问题的复杂性程序逻辑结构的复杂性程序逻辑结构的复杂性 软件成本相当昂贵软件成本相当昂贵软件成本相当昂贵软件成本相当昂贵 相当多的软件工作涉及到社会因素相当多的软件工作涉及到社会因素相当多的软件工作涉及到社会因素相当多的软件工作涉及到社会因素第3页/共36页
5、第4页/共36页软软软软件的分类件的分类件的分类件的分类按软件的功能进行划分:按软件的功能进行划分:系统软件操作系统操作系统数据库管理系统数据库管理系统设备驱动程序设备驱动程序通信处理程序等通信处理程序等第5页/共36页支撑软件文本编辑程序文本编辑程序文件格式化程序文件格式化程序磁盘向磁带向数据传输的程磁盘向磁带向数据传输的程序序程序库系统程序库系统支持需求分析、设计、实现、支持需求分析、设计、实现、测试和支持管理的软件测试和支持管理的软件第6页/共36页应用软件商业数据处理软件商业数据处理软件工程与科学计算软件工程与科学计算软件计算机辅助设计制造软件计算机辅助设计制造软件系统仿真软件系统仿真
6、软件智能产品嵌入软件智能产品嵌入软件医疗、制药软件医疗、制药软件事务管理、办公自动化软件事务管理、办公自动化软件计算机辅助教学软件计算机辅助教学软件第7页/共36页按软件规模进行划分:按软件规模进行划分:类别类别 参加人员数参加人员数 研制期限研制期限 源程序源程序行数行数 微型微型 1 14周 0.5k 小型小型 1 16月 1k2k中型中型 25 12年 5k50k大型大型 520 23年 50k100k甚大型甚大型 1001000 45年 1M(=1000k)极大型极大型 20005000 510年 1M10M第8页/共36页按软件工作方式划分:按软件工作方式划分:实时处理软件实时处理软
7、件 分时软件分时软件 交互式软件交互式软件 批处理软件批处理软件第9页/共36页按软件服务对象的范围划分:按软件服务对象的范围划分:项目软件项目软件 产品软件产品软件第10页/共36页按使用的频度进行划分:按使用的频度进行划分:一次使用一次使用 频繁使用频繁使用第11页/共36页按软件失效的影响进行划分:按软件失效的影响进行划分:高可靠性软件高可靠性软件 一般可靠性软件一般可靠性软件第12页/共36页软件发展阶段软件发展阶段程序设计阶段程序设计阶段 50 50至至6060年代年代程序系统阶段程序系统阶段 60 60至至7070年代年代软件工程阶段软件工程阶段 70 70年代以后年代以后第13页
8、/共36页软件工程过程软件工程过程 软件规格说明:软件规格说明:软件规格说明:软件规格说明:规定软件的功能及其运行的限制规定软件的功能及其运行的限制规定软件的功能及其运行的限制规定软件的功能及其运行的限制 软件开发:软件开发:软件开发:软件开发:产生满足规格说明的软件产生满足规格说明的软件产生满足规格说明的软件产生满足规格说明的软件 软件确认:软件确认:软件确认:软件确认:确认软件能够完成客户提出的要求确认软件能够完成客户提出的要求确认软件能够完成客户提出的要求确认软件能够完成客户提出的要求 软件演进:软件演进:软件演进:软件演进:为满足客户的变更要求,软件必须在使用的过程中演进为满足客户的变
9、更要求,软件必须在使用的过程中演进为满足客户的变更要求,软件必须在使用的过程中演进为满足客户的变更要求,软件必须在使用的过程中演进第14页/共36页软件工程过程的特性软件工程过程的特性易理解性易理解性可见性可见性可支持性可支持性可接受性可接受性可靠性可靠性健壮性健壮性可维护性可维护性速度速度第15页/共36页软软件生存期件生存期 life cycle软件有一个孕育、诞生、成长、软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过成熟、衰亡的生存过程。这个过程即为计算机软件的生存期程即为计算机软件的生存期软件生存期的六个步骤,即制定软件生存期的六个步骤,即制定计划、需求分析、设计、程序编计划
10、、需求分析、设计、程序编码、测试及运行维护码、测试及运行维护第16页/共36页瀑布模型瀑布模型 第17页/共36页制定计划制定计划制定计划制定计划 确定要开发软件系统的总目标确定要开发软件系统的总目标确定要开发软件系统的总目标确定要开发软件系统的总目标 给出功能、性能、可靠性以及接口等方面的要求给出功能、性能、可靠性以及接口等方面的要求给出功能、性能、可靠性以及接口等方面的要求给出功能、性能、可靠性以及接口等方面的要求 完成该软件任务的可行性研究完成该软件任务的可行性研究完成该软件任务的可行性研究完成该软件任务的可行性研究 估计可利用的资源估计可利用的资源估计可利用的资源估计可利用的资源(计算
11、机硬件,软件,人力等计算机硬件,软件,人力等计算机硬件,软件,人力等计算机硬件,软件,人力等)、成本、效益、开发进度、成本、效益、开发进度、成本、效益、开发进度、成本、效益、开发进度 制定出完成开发任务的实施计划制定出完成开发任务的实施计划制定出完成开发任务的实施计划制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查连同可行性研究报告,提交管理部门审查连同可行性研究报告,提交管理部门审查连同可行性研究报告,提交管理部门审查第18页/共36页需求分析和定义需求分析和定义需求分析和定义需求分析和定义对待开发软件提出的需求进行对待开发软件提出的需求进行分析并给出详细的定义分析并给出详
12、细的定义编写软件需求说明书或系统功编写软件需求说明书或系统功能说明书及初步的系统用户手能说明书及初步的系统用户手册册提交管理机构评审提交管理机构评审第19页/共36页软件设计软件设计软件设计软件设计 概要设计概要设计概要设计概要设计 把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应的模块,每个模块都和某些需求相对应的模块,每个模块都和某些需求相对应的模块,每个模块
13、都和某些需求相对应 详细设计详细设计详细设计详细设计 对每个模块要完成的工作进行具体的描述,为源程序编写打下基础对每个模块要完成的工作进行具体的描述,为源程序编写打下基础对每个模块要完成的工作进行具体的描述,为源程序编写打下基础对每个模块要完成的工作进行具体的描述,为源程序编写打下基础 编写设计说明书,提交评审编写设计说明书,提交评审编写设计说明书,提交评审编写设计说明书,提交评审。第20页/共36页程序编写程序编写程序编写程序编写 把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计把软件设计转换成计算机可以
14、接受的程序代码,即写成以某一种特定程序设计把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的语言表示的语言表示的语言表示的“源程序清单源程序清单源程序清单源程序清单”写出的程序应当是结构良好、清晰易读的,且与设计相一致的写出的程序应当是结构良好、清晰易读的,且与设计相一致的写出的程序应当是结构良好、清晰易读的,且与设计相一致的写出的程序应当是结构良好、清晰易读的,且与设计相一致的第21页/共36页软件测试软件测试软件测试软件测试 单元测试单元测试单元测试单元测试,查找各模块在功能和结构上存在的问题并加以纠正,查找各模块在功能和结构上存在的问题并加以纠正,查找各模块在
15、功能和结构上存在的问题并加以纠正,查找各模块在功能和结构上存在的问题并加以纠正 组装测试组装测试组装测试组装测试,将已测试过的模块按一定顺序组装起来,将已测试过的模块按一定顺序组装起来,将已测试过的模块按一定顺序组装起来,将已测试过的模块按一定顺序组装起来 按规定的各项需求,逐项进行按规定的各项需求,逐项进行按规定的各项需求,逐项进行按规定的各项需求,逐项进行有效性测试有效性测试有效性测试有效性测试,决定已开发的软件是否合格,能否交,决定已开发的软件是否合格,能否交,决定已开发的软件是否合格,能否交,决定已开发的软件是否合格,能否交付用户使用付用户使用付用户使用付用户使用第22页/共36页运行
16、运行运行运行维护维护维护维护改正性维护改正性维护 运行中发现了软运行中发现了软件中的错误需要修正件中的错误需要修正适应性维护适应性维护 为了适应变化了为了适应变化了的软件工作环境,需做适当变的软件工作环境,需做适当变更更完善性维护完善性维护 为了增强软件的为了增强软件的功能需做变更功能需做变更第23页/共36页软软软软件生存期模型件生存期模型件生存期模型件生存期模型 软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、软件生存期模型是跨越
17、整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架活动和任务的结构框架活动和任务的结构框架活动和任务的结构框架瀑布模型瀑布模型演化模型演化模型螺旋模型螺旋模型喷泉模型喷泉模型智能模型智能模型第24页/共36页第25页/共36页演演演演化模型化模型化模型化模型 由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难
18、免。做两次发项目难于做到一次开发成功,出现返工再开发在所难免。做两次发项目难于做到一次开发成功,出现返工再开发在所难免。做两次发项目难于做到一次开发成功,出现返工再开发在所难免。做两次 第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求 第二次则在此基础上获得较为满意的软件产品第二次则在此基础上获得较为满意的软件产品第二次则在此基础上获得较为满意的软件产品第二次则在此基础上获得较为满意的软件产品第26页/共36页螺
19、螺螺螺旋模型旋模型旋模型旋模型 螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:制定计划制定计划制定计划制定计划确定软件目标,选定实施方案,弄清项目开发的限制条件确定软件目标,选定实施方案,弄清项目开发的限制条件确定软件目标,选定实施方案,弄清项目开发的限制条件确定软件目标,选定实施方案,弄清项目开发的限制条件 风险分析风险分析风险分析风险分析分析所选方案,考虑如何识别和消除风险分析所选方
20、案,考虑如何识别和消除风险分析所选方案,考虑如何识别和消除风险分析所选方案,考虑如何识别和消除风险 实施工程实施工程实施工程实施工程实施软件开发实施软件开发实施软件开发实施软件开发 客户评估客户评估客户评估客户评估评价开发工作,提出修正建议评价开发工作,提出修正建议评价开发工作,提出修正建议评价开发工作,提出修正建议第27页/共36页 第28页/共36页喷泉模型喷泉模型喷泉模型喷泉模型迭代迭代重复重复演进演进无间隙无间隙各阶段间无明显界限各阶段间无明显界限第29页/共36页第30页/共36页软软件工程的定义件工程的定义 BoehmBoehmBoehmBoehm:运用现代科学技术知识来设计并构造
21、计算机程序及为开发、运行和维护这运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料些程序所必需的相关文件资料些程序所必需的相关文件资料些程序所必需的相关文件资料 IEEEIEEE:软件工程是开发、运行、维护和修复软件的系统方法软件工程是开发、运行、维护和修复软件的系统方法软件工程是开发、运行、维护和修复软件的系统方法软件工程是开发、运行、维护和修复软件的系统方法 Fritz BauerFritz Bauer:建立并使用完善的工程
22、化原则,以较经济的手段获得能在实际机器建立并使用完善的工程化原则,以较经济的手段获得能在实际机器建立并使用完善的工程化原则,以较经济的手段获得能在实际机器建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法上有效运行的可靠软件的一系列方法上有效运行的可靠软件的一系列方法上有效运行的可靠软件的一系列方法第31页/共36页软件工程三要素:软件工程三要素:软件工程三要素:软件工程三要素:方法、工具和过程方法、工具和过程方法、工具和过程方法、工具和过程软件工程方法为软件开发提供了软件工程方法为软件开发提供了“如何做如何做”的技术的技术软件工具为软件工程方法提供了软
23、件工具为软件工程方法提供了自动的或半自动的软件支撑环境自动的或半自动的软件支撑环境第32页/共36页软件工程过程定义了软件工程过程定义了:方法使用的顺序方法使用的顺序 要求交付的文档资料要求交付的文档资料 为保证质量和适应变化所需为保证质量和适应变化所需要的管理要的管理 软件开发各个阶段完成的里软件开发各个阶段完成的里程碑程碑第33页/共36页软软软软件工程项目的基本目标件工程项目的基本目标件工程项目的基本目标件工程项目的基本目标付出较低的开发成本付出较低的开发成本达到要求的软件功能达到要求的软件功能取得较好的软件性能取得较好的软件性能开发的软件易于移植开发的软件易于移植需要较低的维护费用需要较低的维护费用能按时完成开发工作,及时交付能按时完成开发工作,及时交付使用使用第34页/共36页第35页/共36页感谢您的观看!第36页/共36页