软件过程能力评估模型知识和软件能力成熟度模型知识软件工程专题讲座 基础篇课件.ppt
《软件过程能力评估模型知识和软件能力成熟度模型知识软件工程专题讲座 基础篇课件.ppt》由会员分享,可在线阅读,更多相关《软件过程能力评估模型知识和软件能力成熟度模型知识软件工程专题讲座 基础篇课件.ppt(82页珍藏版)》请在三一办公上搜索。
1、软件工程基础知识,赛宝认证中心,内容,基础篇第一章 软件工程概念第二章 软件开发模型第三章 软件开发技术管理篇第四章 软件风险管理第五章 软件项目管理与计划第六章 软件过程改进,基础篇-第一章 软件工程概念,软件发展现状软件危机软件工程及其发展阶段软件工程框架软件发展趋势(软件产业化),1.1 软件发展现状,(1)已经存在大量正在运行的软件:金融、电信、航空航天等(2)软件的应用范围不断扩大。商务、交通、家电等,软件无处不在(3)软件的规模与复杂性持续增加:非常大规模系统:从50万行增加到1000万行,扩大了20倍;复杂性:a.子系统数目越来越多; b.计算机应用从数值计算开始发展到几百万条指
2、令的大型企业业务应用,再发展到几千万终端用户直接交互工作的网络应用。 (4)出现了大量与软件相关的标准:CORBA、UML、XML、TMN、CWM等。 (5)软件危机仍然存在(软件脱节)1968-至今:软件效率、质量、进度、预算无法控制。,1.1 软件发展现状2,问题:1.没有“计算机”和“软件”,世界会是什么样子? 人们的生活已经无法离开计算机软件。2.如何更多、更快、更方便、更好地开发出软件? 工程化地管理软件开发。(1968年NATO提出软件工程的概念) SE:倡导以工程的原理、原则和方法进行软件开发,以期解决当时出现的“软件危机”。3.如何重用过去的经验呢? 软件体系结构风格、设计模式
3、、部件等。4.在分布式网络环境下如何提高软件的适应能力呢? CORBA、COM/DCOM、Java Beans等;EAI。,1.2 软件危机,1.什么是软件危机? 指在计算机软件开发和维护过程中所遇到的一系列问题。(1)软件开发无计划性:不能正确估计软件开发成本和进度,无法估计工作量,难于控制开发进度。(2)软件需求不充分:需求是设计的基础,需求不充分直接导致软件产品不可靠,满足不了用户的需求,甚至无法使用。(3)软件开发过程无规范性:各行其是,没有文档。(软件工程过程中的四个基本活动:规格说明、开发、确认、演进)(4)软件无评测手段:软件质量无法保证。(软件产品质量度量、软件过程质量控制和保
4、证),1.2 软件危机,2.什么原因导致软件危机的?(1)软件的固有特征:软件是复杂的。 实际问题的复杂性、感知接受的复杂性、理性表达的复杂性。(另外,软件规模不断扩大。)(2)外部原因: 软件开发范型(模型) 软件设计方法(方法) 软件开发支持(工具) 软件开发管理(过程),1.3 软件工程及其发展阶段,软件工程是一类求解软件的工程,它应用计算机科学、数学(用于构造模型和算法)和管理科学(用于计划、资源、质量和成本等的管理)等原理,借鉴传统工程(用于制定规范、设计范型、评估成本、权衡结果)的原则和方法,创建软件以达到提高质量、降低成本的目的。软件工程是一门指导计算机软件开发和维护的工程学科。
5、,1.3 软件工程及其发展阶段,软件工程经历了30多年的历史,其发展大致可以划分为两个阶段:1、60年代末80年代初状况:软件系统的规模、复杂性以及在关键领域的广泛应用,促进了软件开发过程采纳工程化的方法进行管理。研究:开发模型、支持工具、开发方法。成果:瀑布模型、结构化语言(pascal等)、结构化方法、各种管理方法(如费用估算、文档复审)。事件:前期主要研究系统实现技术;后期则开始强调管理和软件质量。焦点:软件项目,1.3 软件工程及其发展阶段,2、80年代初现在状况:“软件工厂”的概念已经提出。研究:软件生产技术,特别是软件复用技术和软件生产管理的研究和实践。成果:提出了具有广泛应用前景
6、的面向对象方法和相关的编程语言。事件:软件过程改进。在工业实践中建立起一种量化的评估程序,判定软件组织成熟的程度。焦点:软件过程,1.3 软件工程及其发展阶段,近几年:研究从过程管理转向产品开发,更加注重新的程序开发范型和软件生产。范围:面向agent语言、复用技术、需求分析规格说明的形式化研究、高智能、高自动化的CASE成为热点。,1.4 软件工程框架,软件工程的框架是由软件工程目标、软件工程活动和软件工程原则三个方面的内容构成的。,软件工程活动维,软件工程目标维,软件工程原则维,1.4.1 软件工程目标,目标:生产具有正确性、可用性以及开销适宜的软件产品。正确性:软件产品达到预期功能的程度
7、。可用性:软件基本结构、实现及文档为用户可用的程度。开销适宜:软件开发、运行的整个开销满足用户要求的程度决定:软件过程、过程模型和工程方法的选择。,1.4.2 软件工程活动,活动:生产一个最终满足需求且达到工程目标的软件产品所需要的步骤。1、需求:问题分析:需求获取和定义,又称软件需求规约。 需求分析:生成软件功能规约。2、设计:概要设计:建立整个软件的体系结构,包括子系统、模块以及相关层次的 说明、每一模块的接口定义等。 详细设计:产生程序员可用的模块说明,包括每一模块中数据结构说明及 加工描述。3、实现: 把设计结果转换为可执行的程序代码。4、确认: 贯穿整个开发过程,对完成的结果进行确认
8、,保证产品 满足用户的要求。5、支持: 修改和完善活动。,1.4.3 软件工程原则,软件工程的四条基本原则:1、采取适宜的开发模型,控制易变的需求;2、采用合适的设计方法:需要软件模块化、抽象与信息隐藏、局部化、一致性以及适应性等,需要合适的设计方法的支持。3、提供高质量的工程支持:软件工具和环境对软件过程的支持。4、重视开发过程的管理:有效利用可用的资源、生产满足目标的软件产品、提高软件组织的生产能力等。,1.5 软件发展趋势,(1)遗留(legacy)软件将继续发挥作用。(2)软件应用范围将继续扩大,成为信息社会的基础设施。(3)网络化软件将是发展重点。(4)软件的可靠性与安全性日趋重要。
9、(5)工业化生产是必由之路。,1.5 软件发展趋势,软件工业化生产时代的基础技术:1、软件过程技术:以软件过程改进为中心软件过程成熟度模型CMM/CMMI个体软件过程PSP群体软件过程TSP建造支持软件过程的环境2、面向对象技术3、构件重用技术,基础篇-第二章 软件开发模型,软件生命周期瀑布模型演化模型螺旋模型喷泉模型,2.1 软件生命周期,软件生命周期:制定计划、需求分析和定义、软件设计、程序编写、软件测试、运行/维护等六个步骤。软件开发模型:是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。,2.2 瀑布模型,2.2
10、瀑布模型,1970年,W.Royce提出瀑布模型。特征:活动的输入来自上一活动的输出;完成该项活动的内容;活动的输出传给下一活动;对活动的实施工作进行评审。适合:需求明确的任务。优点:以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,从而保证了软件产品及时交付,并达到预期的质量要求。缺点:成品时间长;缺乏灵活性。,2.3 演化模型,项目开发初始阶段对需求的认识不够清晰,使得开发工作出现再开发在所难免。经验告诉我们:开发“两次”后的软件能较好地满足用户的要求。第一次:试验开发,目的是探索可行性,弄清楚项目的需求。第二次:在第一次的原型基础上进行开发,从而获得较为满意的软件产品。,2.
11、3 演化模型,适合:事先不能清晰和完整定义需求的软件开发。,需求分析,软件设计,程序编码,软件测试,软件集成,软件评审,需求分析,软件设计,程序编码,软件测试,软件集成,软件评审,反馈,“第一次”,“第二次”,2.4 螺旋模型,对于大型项目而言,事先不能完整清晰地定义需求是常事,而且开发一个原型是远远不能解决问题的,需要开发内容逐步丰富的多个原型。大型项目的规模和复杂性增加,软件开发过程中必然存在着许多风险问题,风险分析是保证项目成功的必要手段。,2.4 螺旋模型,2.4 螺旋模型,螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:制定计划确定软件目标,选定实施方案,弄清项目开发
12、的限制条件风险分析分析所选方案,考虑如何识别和消除风险实施工程实施软件开发客户评估评价开发工作,提出修正建议,2.5 喷泉模型,软件开发的固有特征:1、迭代 多次重复、演进。2、无间隙 各阶段间无明显的界限。支持分析和设计结果的自然复用。适用:面向对象的软件开发过程。,2.5 喷泉模型,基础篇-第三章 软件开发技术,软件开发过程软件开发的基本原则需求分析软件体系结构软件设计软件测试软件维护,3.1 软件开发过程,定义:软件过程是指将用户的要求转变成软件产品的过程,是人们用于开发和维护软件及其相关产品(项目计划、设计文件、编程代码、测试、用户手册)的一系列活动、方法、实践和改造。软件过程的规划由
13、不同开发机构针对不同应用项目确定,是由一组有组织的活动组成,通常包括四种基本的活动: 1.软件规格说明:规定软件的功能及其运行限制; 2.软件开发:产生满足规格说明的软件; 3.软件确认:确认软件能够完成客户提出的要求; 4.软件演进:为满足客户的变更要求而进行演进。,3.1 软件开发过程,软件过程的研究重点:软件生产和管理。因此,不仅要有工程的观点,还要有系统的、管理的、运行的、用户的观点。软件过程的分类: 1.基本过程:与软件生产直接相关的过程 2.支持过程:支持软件生产的过程 3.组织过程:与软件生产组织有关的过程 4.剪裁过程:将上述过程和活动剪裁到具体应用中的过程。,3.1.1 基本
14、过程类,3.1.2 支持过程类,3.1.3 组织过程类,3.1.4 剪裁过程类,定义:针对特定领域的软件工程,对选定的过程模型和标准进行剪裁,以形成这一工程的模型及标准,形成该工程的各个软件过程和活动。步骤:1.指明工作环境; 2.收集信息; 3.选取任务、活动、过程; 4.编制文档。,3.2 软件开发的基本原则,原则是指有关软件工程的一些基本事实、规则和一些假定,超越具体技术、工具和语言之上,普遍适用。原则涉及软件开发过程,也涉及软件产品本身。仅有原则不够,软件开发还需要技术方法、方法学、工具的支持。,3.2 软件开发的基本原则,严格性和形式化原则:约束创造性。分隔原则:时间、质量指标、视图
15、、规模、产品与开发方法分离。模块化原则:功能、逻辑、状态三个属性。抽象原则:过程、数据和控制抽象。预期变动原则:算法、数据结构、体系结构、外部设备、社会环境。通用/复用性原则:软件重用。递增式原则:不要求在开发前就有一个完整的需求定义。,3.3 需求分析,需求分析任务需求分析的过程需求分析的方法结构化分析方法面向对象分析方法需求分析方法的比较,3.3.1 需求分析的任务,3.3.2 需求分析的过程,需求获取 确定客户或用户的要求是什么的信息收集过程。 研究可行性分析报告和系统实施计划,明确系统的目标要求。 建立分析所需要的通信途径,保证需求获取得顺利进行。,3.3.2 需求分析的过程,需求分析
16、 从用户最初的非形式化需求到满足用户要求的软件产品需求的映射过程。功能性需求:说明系统各功能部件与环境之间的相互作用的本质非功能性需求:反映系统质量和特性的额外要求,3.3.2 需求分析的过程,编写需求分析文档 清晰准确地表达已经确定下来的需求。软件需求规格说明书:功能和性能要求数据要求说明书:软件输入输出的要求初步的用户手册:用户界面和使用要求,3.3.2 需求分析的过程,需求分析评审验证 对需求的正确性、完整性和清晰性以及其他需求给予评价。SRS应该具备的质量: 正确性;无二义性;完整性;可验证性;一致性;非计算机人员能够理解;可修改性;可跟踪性;注释。,3.3.3 需求分析方法,按照信息
17、的流向、结构、和内容三个方面可以将现有的需求分析方法划分为:面向信息流向:结构化分析方法面向信息结构:Jackson分析方法面向信息内容:面向对象分析方法描述系统需求时可以从系统的功能、行为和信息三个方面进行,侧重点可以不一样。,3.3.4 结构化分析方法,结构化分析(Structured Analysis,SA)由美国YOURDON公司提出采用自顶向下、逐层进行功能分解的系统分析方法来定义系统的需求。适用于分析大型的数据处理系统。方法的特点:利用数据流图(Data Flow Diagram,DFD)来帮助理解问题,对问题进行分析。一般工具:DFD、数据字典、结构化英语、判定表、判定树等。,3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件过程能力评估模型知识和软件能力成熟度模型知识软件工程专题讲座 基础篇课件 软件 过程 能力 评估 模型 知识 成熟度 软件工程 专题讲座 基础 课件
链接地址:https://www.31ppt.com/p-1848035.html