《软件工程教案--软件过程2016》由会员分享,可在线阅读,更多相关《软件工程教案--软件过程2016(81页珍藏版)》请在金锄头文库上搜索。
1、1重庆理工大学计算机科学与工程学院 李梁()重庆理工大学 计算机科学与工程学院李梁 65263075 软件工程 第二章 软件过程*2重庆理工大学计算机科学与工程学院 李梁()l什么是软件工程?l什么是工程化思想?l什么是软件过程?有哪些过程模型?l如何建立过程模型?l什么是统一过程?自学l什么是敏捷过程?有哪些模型? 自学l什么是软件工程实践?第一部分 软件工程与过程*3重庆理工大学计算机科学与工程学院 李梁()第2章 软件过程2.1 什么是软件过程?2.2 什么是软件生命周期?2.3 软件过程评估:能力成熟度模型是什么?软件过程评估:CMM、CMMI、ISO9001:2000 等2.4 理
2、解敏捷过程自学(含极限编程、结对编程)2.5 开展软件过程实践*4重庆理工大学计算机科学与工程学院 李梁()l概念软件过程是为了开发出软件产品,或者是为了完成软件工程 项目而需要完成的有关软件工程的活动通常使用生命周期模型简洁地描述软件过程每项活动可分为一系列工程任务,科学的软件过程是一组适 合软件项目特点的任务集合,任务集合包括一组软件工程任 务、里程碑、应交付的产品。l层次软件工程是一门建立在以质量焦点为基础,分过程、方法和 工具三个层次的综合技术(三要素)工具方法过程质量焦点2.1 软件过程*5重庆理工大学计算机科学与工程学院 李梁()2.1 软件过程l软件工程过程:一个软件机构针对某一
3、类软件产品为自己规 定的工作步骤。l软件规格说明:规定软件的功能及其运行的限制l软件开发:产生满足规格说明的软件l软件确认:确认软件能够完成客户提出的要求l软件演进:为满足客户的变更要求,软件必须在使用的过 程中演进l软件工程过程定义了:l方法使用的顺序l要求交付的文档资料l为保证质量和适应变化所需要的管理l软件开发各个阶段完成的里程碑*6重庆理工大学计算机科学与工程学院 李梁()软件过程框架 P15表2-1p框架是实现整个软件开发活动的基础,软件过程框架定义了若干小的框架活动,与过程有关的角色、职责的定义以及实现也都离不开框架的支持。实际上就是软件过程的工程模板内容组织及管理框架:实现过程活
4、动涉及到的角色与职责技术及工具框架:实现过程活动的自动化及需要的设备与工具2.1 软件过程-软件过程框架*7重庆理工大学计算机科学与工程学院 李梁()2.1 软件过程-软件工程目标l目标l可修改性l有效性l可靠性l可理解性l可维护性l可重用性l可适应性l可移植性l可追踪性l可互操作性 基本目基本目标标标标: 付出付出较低较低的开发成本达到要求的软件的开发成本达到要求的软件 功能取得功能取得较好较好的软件性能的软件性能 开发的软件易于移植需要开发的软件易于移植需要较低较低的的维护维护 费用费用能能按时按时完成开发工作及时交付使完成开发工作及时交付使 用用软软软软件工程件工程的目的目标标标标是提高
5、是提高软软软软件的件的质质质质量量与与生生产产产产 率率,最,最终实现软终实现软终实现软终实现软 件的件的工工业业业业化化生生产产产产。从短期效益看,追求高质量会延长软件开发 时间并且增大费用,似乎降低了生产率。对开发人员而言,如果非得在质量与生产率 之间分个主次不可,那么应该是质量第一, 生产率第二。*8重庆理工大学计算机科学与工程学院 李梁()l l从传统工业生产过程的知识发现从传统工业生产过程的知识发现( (补补) )从传统工厂生产组织方法的启示:能否将软件开发作为工厂的产品, 按照工厂产品的生产组织方式组织软件开发工作?参考参考啤酒生产过程啤酒生产过程阶段划分阶段划分 清楚清楚过程控制
6、过程控制 严格严格流程执行流程执行 规范规范质量有保障质量有保障2.1 软件过程*9重庆理工大学计算机科学与工程学院 李梁()向传统工业学习什么?任务明确、组织有序、纪律严明、整体优化2.1 软件过程*10重庆理工大学计算机科学与工程学院 李梁()软件过程模型:就是把软件生命周期中各项开发活动的流程 用一个合理的框架(开发模型)来规范描述。软件生命周期模型p软件生命周期划分为发生-定义、发展-开发和灭亡-运行与维护三个部分细分为六个阶段:问题的定义及规划需求分析软件设计程序编码软件测试运行维护2.1 软件过程-软件过程模型系统规划系统分析系统设计系统实施运行支持*11重庆理工大学计算机科学与工
7、程学院 李梁()l软件生命期 Software life cyclel软件产品从形成概念开始,经过开发、使用和维护 ,直到最后退役的全过程称为软件生存周期l软件有一个孕育、诞生、成长、成熟、衰亡的生存 过程。这个过程即为计算机软件的生存周期l生命周期阶段的划分原则:l各阶段的任务相对独立l同一阶段任务的性质相同l软件定义(系统分析):可行性研究(软件计划)、需求分 析l软件开发(系统设计):概要设计、详细设计、软件实现 (编码、单元测试)、软件测试(组装测试、确认测试)l软件使用、维护和退役2.2 软件生命周期*12重庆理工大学计算机科学与工程学院 李梁()基于SDLC的瀑布模型发生发展灭亡l
8、软件系统开发生命周期(Systems Development Life Cycle, SDLC) 是建立软件系统的一个过程,是管理和控制软件系统开发 过程的一种基本框架,是确保软件系统开发成功的一种必要措施 和手段。2.2 软件生命周期*13重庆理工大学计算机科学与工程学院 李梁()l可行性研究l确定要开发软件系统的总目标l给出功能、性能、可靠性以及接口等方面的要求l完成该软件任务的可行性研究l估计可利用的资源 (硬件,软件,人力等)、成本、 效益、开发进度l制定出完成开发任务的实施计划,连同可行性研究 报告,提交管理部门审查l需求分析和定义l对用户提出的要求进行分析并给出详细的定义l编写软件
9、需求说明书或系统功能说明书及初步的系 统用户手册l提交管理机构评审2.2 软件生命周期*14重庆理工大学计算机科学与工程学院 李梁()l概要设计 把各项需求转换成软件的体系结构。结构中 每一组成部分都是意义明确的模块,每个模块都和某些需 求相对应,编写设计说明书,评审l详细设计 对每个模块要完成的工作进行具体的描述, 为源程序编写打下基础,编写设计说明书,提交评审l软件实现(编码、程序设计)l把软件设计转换成计算机可以接受的程序代码,即写 成以某一种特定程序设计语言表示的“源程序清单”; 写出的程序应当是结构良好、清晰易读的,且与设计 相一致的。l单元测试,查找各模块在功能和结构上存在的问题并
10、 加以纠正 2.2 软件生命周期*15重庆理工大学计算机科学与工程学院 李梁()l软件测试l组装测试,将已测试过的模块按一定顺序组装l按规定的各项需求,逐项进行有效性确认测试,决 定已开发的软件是否合格,能否交付用户使用l软件运行:操作培训、模拟数据试运行、并行运行、系 统转换l软件维护l改正性维护:运行中发现软件中的错误需要修正l适应性维护:为了适应变化了的软件工作环境,需 做适当变更l完善性维护:为了增强软件的功能需做变更2.2 软件生命周期*16重庆理工大学计算机科学与工程学院 李梁()阶段关键问题结束标准(任务)问题定义问题是什么?关于规模和目标的报告书可行性研究是否可行?系统的高层逻
11、辑模型; 数据流图;成本/效益分析需求分析系统必须做什么?系统的逻辑模型;数据流图; 数据字典,算法描述概要设计任何解决问题?系统流程图;成本/效益分析 层次图和结构图详细设计怎样具体的实现HIPO或PDL编码和单元 测试正确的程序模块源程序清单;单元测试方案和 结果测试符合要求的软件综合测试方案和结果; 完整一致的软件配置 运行、维护持久地满足用户需要完整准确的维护记录*17重庆理工大学计算机科学与工程学院 李梁()系统分析系统设计系统实施逻辑模型物理模型1个儿童房 1个主卧 厨房、卫生间等等系 统 需 求软件生命周期总结*18重庆理工大学计算机科学与工程学院 李梁()软件过程评估:评价软件
12、过程中的各种活动(管理、技术方法 、控制、计划等)是否满足软件工程成功所需的基本过程标准 要求。 作用:检验和识别软件过程风险,促进软件过程改进,提高软 件开发能力。CMM:分析或诊断软件或软件团队的相对成熟度CMMI:在CMM基础上集成了工程方面的评价指标,包括启 动、诊断、建立、执行和学习,主要用于软件企业。ISO9001:2000:国际通用标准(质量保证体系),用于软件 产品、系统或服务的整体质量评估,采取“计划-实施-检查-行动 ”循环,将其应用于软件项目的质量管理环节,可直接应用于软 件团队和软件企业。SPICE标准:定义软件过程评估的一系列要求,帮助团队建 立客观的评价体系,评估软
13、件过程的有效性。2.3 软件过程评估*19重庆理工大学计算机科学与工程学院 李梁()CMM(Capability Maturity Model):能力成熟度模型,用于评价 软件机构的软件过程能力成熟度的模型。是指对过程计划或定义水 平、过程实施水平、过程管理和控制水平、过程改善潜力等指标的 综合评价。美国卡内基-梅隆大学软件工程研究所开发。建立此模型的初始目的,是为大型软件项目的招标活动提供一种 全面而客观的评审依据,发展到后来此模型又同时被应用于许多软 件机构内部的过程改进活动中。核心:把软件开发视为一个过程,并根据这一原则对软件开发和 维护进行过程监控和控制,使其更加科学化、标准化。在无规
14、则和混乱的管理之下,先进的技术和工具并不能发挥出应 有的作用,改进对软件过程的管理才是消除软件危机的突破口,再 也不能忽视在软件过程中管理所起的关键作用了。CMM为软件企业的过程能力提供一个阶梯式的改进框架阶梯式的改进框架,它基 于过去所有软件工程过程改进的成果,吸取以往软件工程的经验教 训,提供一个基于过程改进的框架。2.3 能力成熟度模型-CMM*20重庆理工大学计算机科学与工程学院 李梁()l lCMMCMM是一是一种通过种通过严格定义、实施、控制和不断改进软件严格定义、实施、控制和不断改进软件 过程的方法来保证软件质量的分层模型。过程的方法来保证软件质量的分层模型。l lCMMCMM是对是对软件开发组织或项目的软件过程能力进行评软件开发组织或项目的软件过程能力进行评 估的一个基本框架。估的一个基本框架。l lCMMCMM是是指导软件开发组织或项目逐步改进其软件能力指导软件开发组织或项目逐步改进其软件能力 成熟度的一个指南。成熟度的一个指南。l lCMMCMM只回答只回答“ “做什么?做什么?” ”,具体地,具体地“ “如何做?如何做?” ”由开发组由开发组 织自己定。织自己定。l l软件过程是一个可管理、可测量和可改进的过程。软件过程是一个可管理、可测量和可改进的过程。l l软件过程的质量受其支持技术的影响。软件过程的质量受其支持技