




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 软件方法与过程第第1章章 绪论绪论第一章 绪论19461946年世界上第一台电子计算机诞生至今,年世界上第一台电子计算机诞生至今,计算机软件发展的三个阶段计算机软件发展的三个阶段 n第一阶段第一阶段程序设计程序设计阶段阶段 n时间:时间:六十年代六十年代 n特点:特点:n软件工作:程序设计软件工作:程序设计 (+程序结构说明和使程序结构说明和使用说明用说明 )n软件质量:程序设计软件质量:程序设计=数据结构数据结构+算法,编算法,编程技巧程技巧第一章 绪论 n第二阶段第二阶段软件工程软件工程阶段阶段 n时间:时间:七十年代七十年代 九十年代九十年代 n特点:特点:软件危机软件危机n软件工作:
2、软件工作: 代码编写代码编写+需求分析、测试、维持等等需求分析、测试、维持等等 软件工程软件工程 n软件质量:软件质量:编程技巧编程技巧 可读性、可理解性、可测试性和易修改性等工程化可读性、可理解性、可测试性和易修改性等工程化的原则的原则 第一章 绪论 n第三阶段第三阶段软件过程软件过程阶段阶段 n时间:时间:九十年代九十年代 n特点:特点:n软件工作:软件工作: 软件开发过程软件开发过程 +软件管理过程软件管理过程 n软件质量:软件质量: + +软件开发的效率软件开发的效率 第一章 绪论 n1.1 1.1 现代软件产业的困境现代软件产业的困境 n1.2 1.2 软件生命周期模型及其局限性软件
3、生命周期模型及其局限性 n1.3 1.3 走出困境走出困境软件过程模式软件过程模式 n习题习题 1.1 现代软件产业的困境 1.1.1 1.1.1 困境中的现代软件产业困境中的现代软件产业市场变幻莫测、需求日趋复杂、技术日新月异市场变幻莫测、需求日趋复杂、技术日新月异 市场许可的期限市场许可的期限 有限资源有限资源 需求的产品需求的产品 企业 成功 现代软件产业的总体情况并不理想n 案例案例 square-cal 3.0 版本将要在版本将要在2.0版本上市后的版本上市后的10个月内发布。项目经理个月内发布。项目经理mickey和上司和上司kim讨论后决定:他们将为项目组成员提供私人办公室、最新
4、型讨论后决定:他们将为项目组成员提供私人办公室、最新型的计算机以及免费的碳酸饮料,并且要求开发者在前的计算机以及免费的碳酸饮料,并且要求开发者在前8个月按照预先设计好的接个月按照预先设计好的接口各自开发,口各自开发,8个月之后进行可视化锁定,在最后个月之后进行可视化锁定,在最后2个月内完成系统集成个月内完成系统集成一一个完美的计划。于是项目组成员各自做着自己的工作。随着可视化锁定日期的个完美的计划。于是项目组成员各自做着自己的工作。随着可视化锁定日期的来临,他们开始进行代码集成。他们在可视化锁定最终截止日期前一天的下午来临,他们开始进行代码集成。他们在可视化锁定最终截止日期前一天的下午两点开始
5、工作,但很快发现程序不能编译通过,更不用说运行了。代码在编译两点开始工作,但很快发现程序不能编译通过,更不用说运行了。代码在编译时有数十个错误,而似乎每处理一个错误就会产生十个以上的新错误。他们一时有数十个错误,而似乎每处理一个错误就会产生十个以上的新错误。他们一直干到午夜也没有结果,只好决定第二天再说。但测试发现问题的速度远比开直干到午夜也没有结果,只好决定第二天再说。但测试发现问题的速度远比开发人员解决问题的速度快,处理系统这一部分的错误经常会导致其它部分的问发人员解决问题的速度快,处理系统这一部分的错误经常会导致其它部分的问题。项目超期了,项目组成员在巨大的压力下工作,士气逐渐低落。最后
6、整个题。项目超期了,项目组成员在巨大的压力下工作,士气逐渐低落。最后整个软件开发过程花了软件开发过程花了15个月的时间,即超过了项目计划时间的个月的时间,即超过了项目计划时间的0%,公司错过,公司错过了最佳的发布日期。产品发布后,用户对了最佳的发布日期。产品发布后,用户对square-cal 3.0版本反映冷淡,几个版本反映冷淡,几个月的时间内月的时间内其市场份额从第二位下降到第四位。其市场份额从第二位下降到第四位。 现代软件产业的总体情况并不理想n 一组统计数据一组统计数据 53%16%31%中途取消的项目出现问题的项目顺利完成的项目进度延期、成本超出预算、而且运行经常不可靠进度延期、成本超
7、出预算、而且运行经常不可靠 软件开发的滑铁卢(软件开发的滑铁卢(software runaways)死亡之旅(死亡之旅(death march) 1.1 现代软件产业的困境 1.1.2 1.1.2 陷入困境的根源陷入困境的根源 沿用二、三十年前的软件组织方式和开发方法沿用二、三十年前的软件组织方式和开发方法 开发当今用户需求的复杂软件产品开发当今用户需求的复杂软件产品 n不完整、不现实的项目需求描述不完整、不现实的项目需求描述 缺乏用户参与缺乏用户参与 、交流模糊、交流模糊 不完整、不准确、需求项过不完整、不准确、需求项过多、难度过高多、难度过高n对需求的变更束手无策对需求的变更束手无策 需求
8、变更是现实世界变化的反映需求变更是现实世界变化的反映 对需求变更无应对能力对需求变更无应对能力 1.1 现代软件产业的困境 n脆弱的构架脆弱的构架 程序块间互不兼容,不易扩展、裁剪和移植程序块间互不兼容,不易扩展、裁剪和移植 n采用不成熟的技术采用不成熟的技术 新技术不具有要求的功能新技术不具有要求的功能 新技术存在局限性新技术存在局限性 新技术是问题的错误解决方案新技术是问题的错误解决方案n测试的不充分性测试的不充分性 未检测出需求、设计和实现三者之间的不一致未检测出需求、设计和实现三者之间的不一致 1.1 现代软件产业的困境n拙劣的进度计划和评估拙劣的进度计划和评估 过于乐观过于乐观 霍夫
9、斯塔特(霍夫斯塔特(hofstadterhofstadter)定律)定律 : 开发软件的开发软件的 时间总比想象的时间长,即使注意了霍夫斯塔特定时间总比想象的时间长,即使注意了霍夫斯塔特定律也是如此。律也是如此。 1.1 现代软件产业的困境 n缺乏资源缺乏资源 经费、人员、场地、时间经费、人员、场地、时间 尤其是资深人员尤其是资深人员 n不具备项目管理方法不具备项目管理方法 风险的预估和驾驭风险的预估和驾驭 软件质量的度量软件质量的度量1.1 现代软件产业的困境 n缺少管理层的支持缺少管理层的支持 企业高层的支持的必要性企业高层的支持的必要性n需要获取足够的资源需要获取足够的资源n需要获取对项
10、目特殊要求的审批需要获取对项目特殊要求的审批n需要与其他部门人员进行合作需要与其他部门人员进行合作n需要在某些时候得到适当的指导和帮助需要在某些时候得到适当的指导和帮助 符合企业总体的发展规划和经营目标符合企业总体的发展规划和经营目标 1.2 软件生命周期模型及其局限性 1.2.1 1.2.1 困境中的消极态度困境中的消极态度 项目项目遇到遇到障碍障碍指责:指责:老板老板项目管理人员项目管理人员用户用户颓废颓废 :死亡之旅死亡之旅 不相干的事不相干的事 恶性循环恶性循环 相信自己相信自己是完美的是完美的1.2 软件生命周期模型及其局限性 1.2.2 1.2.2 困境中的积极探索困境中的积极探索
11、 思考、反省思考、反省53%16%31%中途取消的项目出现问题的项目顺利完成的项目1.2 软件生命周期模型及其局限性 n 例证例证1 1:微软公司:微软公司 年份年份 人员人员数目数目 营业营业额额 1975 3 名 16000 美元 1989 8000 名 80 亿美元 2000 35000 名 240 亿美元 利润 150 亿美元 n例证例证2 2:嵌入式软件产品与服务的提嵌入式软件产品与服务的提供商供商 风河(风河(wind riverwind river)公司)公司 1.2 软件生命周期模型及其局限性 1.2.2 1.2.2 困境中的积极探索困境中的积极探索 ?微软等?微软等成功经验成
12、功经验失败教训失败教训演变为体系演变为体系化研究成果化研究成果 软件软件生命生命周期模型周期模型 软件过程软件过程 软件开发软件开发实践经验总结实践经验总结 汇总汇总新的软件新的软件项目开发项目开发指导指导1.2 软件生命周期模型及其局限性1.2.3 1.2.3 软件过程软件过程 1 1定义定义 定义定义1-1 1-1 软件过程软件过程是从软件项目需求是从软件项目需求定义开始直至软件经使用后废弃为止的跨定义开始直至软件经使用后废弃为止的跨越软件整个生存期内的系统开发、运行和越软件整个生存期内的系统开发、运行和维护等全部活动及相关项的总和。维护等全部活动及相关项的总和。1.2 软件生命周期模型及
13、其局限性2 2内容内容 软件过程包括:软件过程包括:5 5个主要过程、个主要过程、8 8个支持过程和个支持过程和4 4个组织过程。个组织过程。n5 5个主要过程为:获取过程、供应过程、开发过个主要过程为:获取过程、供应过程、开发过程、运行过程、维护过程。程、运行过程、维护过程。n8 8个支持过程为:文档编制过程、配置管理过程、个支持过程为:文档编制过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审质量保证过程、验证过程、确认过程、联合评审过程、审核过程、问题解决过程。过程、审核过程、问题解决过程。n4 4个组织过程为:管理过程、基础设施过程、改个组织过程为:管理过程、基础设施过程、
14、改进过程、培训过程。进过程、培训过程。 1.2 软件生命周期模型及其局限性3 3软件过程能力评估标准和改进方案软件过程能力评估标准和改进方案 三种最具影响力的软件过程能力评估标准和改进三种最具影响力的软件过程能力评估标准和改进方案方案: :ncmm (capability maturity model) cmm (capability maturity model) :n起源:起源:19871987年由美国卡内基梅隆大学提出年由美国卡内基梅隆大学提出n适用范围适用范围: :国际贸易中的软件国际贸易中的软件n内容:软件能力成熟度从低到高分为五级内容:软件能力成熟度从低到高分为五级初始级、可重复初
15、始级、可重复级、已定义级、已定量管理级、优化级,软件企业可按这五级级、已定义级、已定量管理级、优化级,软件企业可按这五级对其软件过程进行持续改进对其软件过程进行持续改进niso9000iso9000:n起源:起源:19871987年由国际标准化组织颁布年由国际标准化组织颁布n适用范围:国际贸易中的软件适用范围:国际贸易中的软件+ +国际贸易中的硬件和服务国际贸易中的硬件和服务。 1.2 软件生命周期模型及其局限性n六西格玛(六西格玛(six sigmasix sigma, 6 6 ) :n历史历史 起源于制造业,质量度量管理方法起源于制造业,质量度量管理方法 2020世纪世纪9090年代中期,
16、通用电气公司的企业过程设计、年代中期,通用电气公司的企业过程设计、 改造和改造和优化的方法体系,各个行业优化的方法体系,各个行业 n内容:内容:采用统计学技术的质量度量和管理方法采用统计学技术的质量度量和管理方法 将所有工作作为一种过程或流程,采用量化的方法分析过程中将所有工作作为一种过程或流程,采用量化的方法分析过程中影响质量的因素,找出最关键的因素加以改进,从而达到更影响质量的因素,找出最关键的因素加以改进,从而达到更高的客户满意度高的客户满意度 1.2 软件生命周期模型及其局限性1.2.4 1.2.4 软件生命周期模型及其局限性软件生命周期模型及其局限性 1 1定义定义 定义定义1-2
17、1-2 软件生命周期模型软件生命周期模型是软件过是软件过程中全部活动生命周期结构框架的一种形程中全部活动生命周期结构框架的一种形式化描述,也称为式化描述,也称为软件生存期模型软件生存期模型。 1.2 软件生命周期模型及其局限性 2 2种类种类 n瀑布模型瀑布模型n内容:各阶段活动内容:各阶段活动n特征:特征:n瀑布状:瀑布状:自上而下,相互衔接自上而下,相互衔接n各阶段及其活动各阶段及其活动 : 多种模型的基本细粒度元素多种模型的基本细粒度元素n适用范围适用范围 需求较明确、且较稳定需求较明确、且较稳定 n演化模型(原型模型)演化模型(原型模型)n内容:内容:n第一步:原型第一步:原型 弄清需
18、求并探索可行性弄清需求并探索可行性 n第二步:开发产品第二步:开发产品 n特征及适用范围:特征及适用范围:减少了需求不明确带来的风险减少了需求不明确带来的风险 1.2 软件生命周期模型及其局限性1.2 软件生命周期模型及其局限性n螺旋模型螺旋模型 n内容:内容:螺线旋转一圈螺线旋转一圈 ( (笛卡儿坐标笛卡儿坐标四个象限四个象限) )一个原型一个原型 1.2 软件生命周期模型及其局限性n螺旋模型螺旋模型 n特征特征n加入风险分析加入风险分析 n迭代演化迭代演化识别每个演化层的风险识别每个演化层的风险 n自上而下自上而下( (见右图见右图 ) )n适用范围适用范围需求不太稳定需求不太稳定 1.2
19、 软件生命周期模型及其局限性n喷泉模型喷泉模型 n内容:内容:面向对象的分析设计方法面向对象的分析设计方法 n特征:特征:n喷泉状:自底向上喷泉状:自底向上 n迭代演化迭代演化n对象对象统一范式统一范式 无缝衔接,复用,并行与集成无缝衔接,复用,并行与集成 n适用范围适用范围 需求较不稳定需求较不稳定 1.2 软件生命周期模型及其局限性 3 3总体局限性总体局限性 定义定义1-1 1-1 软件过程软件过程是从软件项目需求定义开始直至软件经是从软件项目需求定义开始直至软件经使用后废弃为止的跨越软件整个生存期内的系统开发、运行使用后废弃为止的跨越软件整个生存期内的系统开发、运行和维护等全部和维护等
20、全部活动活动及及相关项相关项的总和。的总和。 定义定义1-2 1-2 软件生命周期模型软件生命周期模型是软件过程中全部是软件过程中全部活动生命周活动生命周期结构框架期结构框架的一种形式化描述,也称为软件生存期模型。的一种形式化描述,也称为软件生存期模型。?活动的相关项?活动的相关项(执行者执行者 、方法方法和工具、目标和工具、目标) )软件生命软件生命周期模型周期模型较差的较差的可操作性可操作性 寻求寻求 新的新的1.3 走出困境软件过程模式 1.3.1 1.3.1 软件过程模式定义软件过程模式定义 n 定义定义1-3 1-3 软件过程模式软件过程模式从成功或失败从成功或失败的软件开发实践中总
21、结而成,是软件过程的软件开发实践中总结而成,是软件过程中生命周期、人员、方法、产品四大类要中生命周期、人员、方法、产品四大类要素的有机关联整体。素的有机关联整体。 1.3 走出困境软件过程模式 n 定义理解:定义理解: 谁、为实现什么、如何、做什么,其中谁、为实现什么、如何、做什么,其中n人员:表示人员:表示“谁谁”;n产品:表示产品:表示“为实现什么为实现什么”;n方法:表示方法:表示“如何如何”;n生命周期:表示生命周期:表示“(何时)做什么(何时)做什么”。n 关系:软件生命周期模型关系:软件生命周期模型 软件过程模式软件过程模式 1.3 走出困境软件过程模式 n 过程模式定义的补充说明
22、过程模式定义的补充说明n过程模式过程模式一书一书(process patternsprocess patterns:building large-scale systems building large-scale systems using object technology. scott w.amblerusing object technology. scott w.ambler)模式模式:对一个常见问题的通用解决方案的描述,:对一个常见问题的通用解决方案的描述,从中可以确定针对具体问题的细节化的解决方案;从中可以确定针对具体问题的细节化的解决方案;软件开发模式有多种形式,包括分析模式、
23、设计软件开发模式有多种形式,包括分析模式、设计模式和过程模式等,但不限于这些。模式和过程模式等,但不限于这些。过程模式过程模式:一种模式,描述了已被证实为成功的:一种模式,描述了已被证实为成功的软件开发的方法或一系列的行为。软件开发的方法或一系列的行为。n 尚无统一定义,仅供参考尚无统一定义,仅供参考 1.3 走出困境软件过程模式 1.3.2 1.3.2 几种典型的软件过程模式几种典型的软件过程模式 符合定义符合定义1-41-4且目前在软件界影响较大的三且目前在软件界影响较大的三种软件过程模式种软件过程模式 : :nrationalrational统一过程(统一过程(ruprup,ration
24、al unified rational unified processprocess) n敏捷过程(敏捷过程(apap,agile processagile process) n微软过程(微软过程(mpmp,microsoft processmicrosoft process) n 1. rational 1. rational统一过程(统一过程(ruprup,rational unified processrational unified process)n起源:起源:nrationalrational公司推出的软件过程产品公司推出的软件过程产品n三位杰出的专家三位杰出的专家grady bo
25、ochgrady booch、james rumbaughjames rumbaugh和和ivar jacobsonivar jacobson 面向对象领域面向对象领域 +uml+uml的创立者的创立者 ericsson 方法 (1967) rational 方法 其它一些因素 rational 统一过程 5.0 (1998) rational 对象工厂过程 4.1 (19961997) 对象工厂过程 1.03.8 (19871995) uml 1.3 走出困境软件过程模式 n应用领域:全球有上千家公司已经在使用应用领域:全球有上千家公司已经在使用 n电信业:电信业:ericssonerics
26、son、alcatelalcatel、mcimcin交通、航空、国防;交通、航空、国防;lockheed-martinlockheed-martin、british aerospacebritish aerospacen制造业:制造业:xeroxxerox、volvovolvo、intelinteln金融业:金融业:visavisa、merrill lynchmerrill lynch、schwabschwabn系统集成业:系统集成业:ernst youngernst young、oracleoracle、deloitte & touche deloitte & touche rup rup的
27、多功能性和广泛的适用性的多功能性和广泛的适用性 1.3 走出困境软件过程模式 n内容:从软件过程模式的角度内容:从软件过程模式的角度 n生命周期:生命周期: 迭代与增量的二维生命周期结构迭代与增量的二维生命周期结构n横轴:生命周期的四个阶段横轴:生命周期的四个阶段先启、精化、先启、精化、构建和产品化构建和产品化n纵轴:九个核心工作流程纵轴:九个核心工作流程业务建模、需求、业务建模、需求、分析设计、实施、测试、部署、配置与变更管分析设计、实施、测试、部署、配置与变更管理、项目管理、环境理、项目管理、环境 n人员人员 :n角色角色及及活动活动 1.3 走出困境软件过程模式 n方法方法 :numlu
28、ml可视化建模可视化建模 n基于用例驱动基于用例驱动 n以构架为中心以构架为中心 n一整套支持开发工具一整套支持开发工具rational solutionsrational solutions, 如如umluml建模工具建模工具roserose、文档自动生成工具、文档自动生成工具sodasoda、测试工具、测试工具purifypurify和和qualityquality、配置管理工具、配置管理工具clearcaseclearcase、变更管理工具、变更管理工具clearquestclearquest等等 n产品产品 :n工件定义工件定义 ,工件类型规范工件类型规范 ,提供,提供工件模板工件模板
29、1.3 走出困境软件过程模式 n 2 2敏捷过程(敏捷过程(apap,agile processagile process)n起源:起源: 矫正某些官僚烦琐的软件过程矫正某些官僚烦琐的软件过程 20012001年年2 2月,月,1717个方法学家发起成立了敏捷个方法学家发起成立了敏捷 软件开发联盟(软件开发联盟(),), 简称为敏捷联盟(简称为敏捷联盟(agile allianceagile alliance)。)。 4 4条价值观条价值观+12+12条原则条原则1.3 走出困境软件过程模式 n内容:从软件过程模式的角度内容:从软件过程模式的角度 n生命周期:生命周期: “经常性地交付可用软件
30、,从几个星期到几个月,尽可能经常性地交付可用软件,从几个星期到几个月,尽可能做到较短的时间间隔做到较短的时间间隔” n人员人员 :n“个体和交互胜过过程和工具个体和交互胜过过程和工具” n强调客户的重要性强调客户的重要性“客户合作胜过合同谈判客户合作胜过合同谈判” 1.3 走出困境软件过程模式 n方法方法 :n简单化方法简单化方法 “ “简单简单把不做的工作最大化的艺术把不做的工作最大化的艺术是最关键的是最关键的” ” n面对面的交流面对面的交流 n产品:产品:n“可以工作的软件胜过面面俱到的文档可以工作的软件胜过面面俱到的文档” ” 1.3 走出困境软件过程模式 n 3. 3. 微软过程(微
31、软过程(mpmp,microsoft processmicrosoft process) n起源:起源: 微软三十多年的软件开发实践经验总结微软三十多年的软件开发实践经验总结 msfmsf(microsoft solution framework microsoft solution framework )n 应用:应用: 微软自身的成功实践史微软自身的成功实践史 可实践性与有效性可实践性与有效性 1.3 走出困境软件过程模式 n内容:从软件过程模式的角度内容:从软件过程模式的角度 n生命周期:生命周期:n过程分为五个阶段过程分为五个阶段构想、计划、开发、构想、计划、开发、稳定和发布,里程碑稳
32、定和发布,里程碑n采用递进的版本发布策略采用递进的版本发布策略n人员人员 :n六种角色:产品管理、六种角色:产品管理、程序管理程序管理、开发、测、开发、测试、用户体验、发布管理试、用户体验、发布管理n人员的组织结构人员的组织结构 矩阵结构模式矩阵结构模式 1.3 走出困境软件过程模式 n方法方法 :n需求分析方面需求分析方面以产品特性及优先级指导整以产品特性及优先级指导整个项目个项目n设计方面设计方面模块化和水平化的设计结构,并模块化和水平化的设计结构,并使项目结构反映产品结构使项目结构反映产品结构n实现方面实现方面源代码控制与每日编译源代码控制与每日编译n测试方面测试方面手工测试与自动化测试,零缺陷手工测试与自动化测试,零缺陷管理管理 n产品:产品:n产品规范包括:项目前景产品规范包括:项目前景/ /范围说明书、功能说范围说明书、功能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度联营股本借款合同全文
- 2025铝合金门窗制作合同
- 2025商务合作合同模板
- 2025全新版委托维修合同
- 2025年签订股权转让合同的要点分析及合同范本
- 2025年上海房屋租赁合同范本
- 2025年:探讨合同规范化管理对企业发展的长远意义
- 《危重患者的观察要点》课件
- 《艺术史概述:唐宋元明清》课件
- 《供应链管理》课件
- 劳动保障协理员试题
- 安徽中等专业学校毕业生登记表
- 《多边形的面积》单元整体作业设计
- 同济大学《高等数学》第七版上、下册答案(详解)
- 三一sy215c8零件手册SY215C8液压挖掘机零部件图册
- 2023年和田地区体育教师招聘笔试题库及答案
- GB/T 25150-2010工业设备化学清洗中奥氏体不锈钢钝化膜质量的测试方法蓝点法
- 肉毒毒素作用机制理论测试
- GB/T 20641-2006低压成套开关设备和控制设备空壳体的一般要求
- GB/T 18618-2002产品几何量技术规范(GPS)表面结构轮廓法图形参数
- GB/T 10183.1-2018起重机车轮及大车和小车轨道公差第1部分:总则
评论
0/150
提交评论