个体软件设计PPT课件_第1页
个体软件设计PPT课件_第2页
个体软件设计PPT课件_第3页
个体软件设计PPT课件_第4页
个体软件设计PPT课件_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 个体软件过程PersonalSoftwareProcess计算机科学与技术学院 2 PSPCourseObjectives 目标 1Introduceyoutoaprocess basedapproachtodevelopingsoftware介绍开发软件的基于过程的方法2ShowyouhowtomeasureandanalyzeyourPersonalSoftwareProcess PSP 3Improveyoursoftwaredevelopmentskills fasterdevelopment速度更快 fewererrors i e bettersoftware 错误更少 morepredictable moreaccurateestimatesoftimerequiredtocompleteaproject 预见能力高4Showyouhowtousedatatoimproveyourpersonalperformance利用已有数据提高改进自己 3 WattsS Humphrey卡内基梅隆 CarnegieMellon 大学软件工程研究所 SEI 曾是SEI的软件过程计划的主任 负责开发改良软件过程计划方法 与软件行业和政府的软件工程师合作 帮助他们实现这些改良后的方法 在IBM工作27年 担任过各种技术和管理方面的职务SEI和IEEE的高级会员美国计算机协会 ACM 的成员国家质量奖评审委员会的成员 NationalQualityAwardBoardofExaminers 4 一 软件过程 softwareprocess 软件过程研究的是如何将人员 技术和工具等组织起来 通过有效的管理手段 提高软件生产的效率 保证软件产品的质量 软件过程改善是当前软件管理工程的核心问题 50多年来计算事业的发展使人们认识到要高效率 高质量和低成本地开发软件 必须改善软件生产过程 5 二 软件过程的三个流派 1 CMU SEI的CMM PSP TSP 2 ISO9000质量标准体系ISO9001ISO9000 3ISO9004 2ISO9004 4ISO90023 ISO IEC15504 SPICE 信息技术软件过程评估 6 CMM CapabilityMaturityModel 能力成熟度模型 CMM本质是软件工程管理的一个部分 CMM是对软件组织在定义 实现 度量 控制和改善其软件过程的进程中各个发展阶段的描述 CMM框架用5个不同的等级表示 CMM概述 7 初始级 第一级 是混沌的过程可重复级 第二级 是经过训练 有纪律的软件过程已定义级 第三级 是标准一致的软件过程已管理级 第四级 是可预测的软件过程优化级 第五级 是能持续改进的软件过程CMM提供的框架 用来测量一个组织的软件过程成熟度和评价其软件过程能力 CMM框架 8 美国1995年调查初始级70 特征 软件开发过程不能预测 风险度高 可重复级15 特征 软件开发过程需小心谨慎能够避免失败 定义级 10 特征 软件开发过程相当稳定 进展顺利且可以预测 管理级 5 特征 软件过程预测准确 值得信赖 优化级 1 特征 软件过程能够持续改进 软件产业成熟程度 9 CMM PSP TSP的关系 CMM TSP PSP 组织能力 高质量的产品 个人技能 建立 建立 生产并交付 原则 费用和期限 技能 CMM PSP TSP组成的软件过程框架 10 CMM改进组织能力 重点是管理TSP改进小组性能 重点是小组和产品PSP改进个人技能 重点是个人 11 人才需求结构呈金字塔形塔尖的领军人物是企业发展的灵魂要求各项综合素质较高 塔型中间是企业持续发展的中坚力量 是大批的优秀的程序员 要求计算机技能过硬 塔型底层是企业的基础支撑力量 是普通的维护管理人员 相对工作的技术含量要求不高 要求的人文素质和管理技能较高 人才需求的层次 12 精英人才 优秀的程序员 维护管理人员 13 企业人才需求不同 高校人才培养的层次和内容也不同 如对技能的培养 按照企业对技术人才的需求可分为三大类 技术管理型人才研究开发型人才工程实现型人才 14 是带领大批软件开发人员开展工作的骨干和生产管理者能够有效地组织产品开发和软件工程项目 发挥技术团队的软件生产力 达到预期目标 既具备计算机领域的综合知识 又有一定的管理技能和水平 1 技术管理型 15 主要从事技术基础理论研究 开发新一代的技术产品及其软件核心技术技术理论基础扎实创新意识和工作能力强有某一领域技术的深入研究能力和经验 2 技术开发型 16 主要从事软件产品或软件工程项目的开发和实现实践能力和动手能力强 具有独立解决问题的能力计算机的各项应用技术非常熟练具备沟通 合作精神 具备持续学习的能力 具备承受压力的素质 他们是企业的生产者 软件工程的实现者 是企业发展的基础力量 主要工作在程序员岗位上 3 工程实现型 17 以软件从业人员近60万人 其中专业人才约有34万人 其中高级人才4万人 中级人才20万人 初级人才10万人 人才结构呈两头小中间大的 橄榄形 不仅缺乏高层次人才 也缺少大量从事基础性开发软件的人员 但是如果按照国际软件的人才配比规律1 4 7计算 年我国需要高级人才6万人 中级软件人才28万人 初级软件人才46万人 全国计算机应用专业人才需求将增加近百万人 与软件人才缺口巨大相反 众多计算机专业毕业生仍然徘徊在企业大门之外 呈现出IT毕业生 过剩 的怪现象 过剩与匮乏 18 1 运用知识能力 2 持续学习能力 3 沟通合作能力 4 踏实敬业能力 5 良好品行能力 企业人才标准 19 2000年至2009年高等学校毕业生就业人数 20 三 个体软件过程 管理是影响软件研发项目全局的因素 而技术只影响局部 美国国防部曾立题调查 70 的项目因为管理不善而失败 而并不是因为技术实力不够 21 四 软件项目失败的主要原因 需求定义不明确 缺乏一个好的软件开发过程 没有一个统一领导的产品研发小组 子合同管理不严格 没有经常注意改善软件过程 对软件构架很不重视 软件界面定义不善且缺乏合适的控制 软件升级暴露硬件的缺点 关心创新而不关心费用和风险 标准太少并且不够完善等 22 软件项目失败的主要原因 在商用软件产业中 1995年 美国共取消810亿美元的软件项目 其中 1 31 的项目未做完就取消 2 53 的软件项目进度通常要延长一半的时间 3 通常只有9 的软件项目能够及时交付并且费用也不超支 23 五 软件项目管理的特殊性 软件是知识产品 进度和质量都难以度量 生产效率也难以保证 软件系统的复杂程度也是超乎人们的想象 例如 宇宙飞船的软件系统源程序代码多达2000万行 如果按过去的生产效率一个人一年只能写1万行代码的话 那么需要2000万人年的工作量 因为软件如此复杂和难以度量 软件研发项目管理发展还很不成熟 24 六 PSP能告诉我们什么 CMM提供一个软件过程改进框架提供 应该做什么 PSP提供应该怎样做 提供有关实现关键过程域所需要的具体知识和技能 时间管理 timemanagement 进度管理 managingschedules 程序缺陷 programdefects 代码复查 codepreview 产品质量 productquality 25 七 应用PSP的好处 根据对参加培训的104位软件人员的统计数据表明 应用PSP软件中总的缺陷减少58 0 测试阶段发现的缺陷减少71 9 生产效率提高20 8 26 八 PSP定义 定义 是一种可用于控制 管理和改进个人工作方式的自我持续改进过程 是一个包括软件开发表格 指南和规程的结构化框架 27 PSP与具体的技术 程序设计语言 工具或者设计方法 相对独立 1 说明个体软件过程的原则 2 帮助软件工程师作出准确的计划 3 确定软件工程师为改善产品质量要采取的步骤 4 建立度量个体软件过程改善的基准 5 确定过程的改变对软件工程师能力的影响 28 PSP的定义 续 CMM1 1的18个关键过程域中有12个与PSP有关 1 软件项目开发成本的70 取决于软件开发人员个人的技能 经验和工作习惯 2 统计数据表明 应用PSP后 软件中总的差错减少了58 在测试阶段发现的差错减少71 生产效率提高20 29 PSP的定义 续 PSP3循环开发 个体度量过程 个体规划过程 个体质量管理过程 PSPPROCESSEVOLUTION 个体循环过程 30 九 psp的知识域 1 个体度量过程PSP0和PSP0 1PSP0建立个体过程基线 学会使用PSP的各种表格采集过程的有关数据执行软件开发单位的当前过程 包括计划 开发 包括设计 编码 编译和测试 以及后置处理三个阶段测定软件开发时间 按照选定的缺陷类型标准 度量引入的缺陷个数和排除的缺陷个数等 用作为测量在PSP的过程中进步的基准 31 PSP0 1增加编码标准 程序规模度量和过程改善建议等三个关键过程域过程改善建议表格 随时记录过程中存在的问题解决问题的措施以及改进过程的方法提高软件开发人员的质量意识和过程意识 1 个体度量过程PSP0和PSP0 1 32 2 个体规划过程PSP1和PSP1 1 PSP1的重点是个体计划引入基于估计的计划方法PROBE PROxyBasedEstimating 用历史数据来预测新程序的大小和需要的开发时间 并使用线性回归方法计算估计参数 确定置信区间以评价预测的可信程度 PSP1 1增加任务和进度的规划 33 3 个体质量管理过程PSP2和PSP2 1 PSP2重点是个体质量管理根据程序的缺陷建立检测表按照检测表进行设计复查和代码复查及早发现缺陷修复缺陷的代价最小随着个人经验和技术的积累 还应学会怎样改进检测表以适应自己的要求 PSP2 1论述设计过程和设计模板介绍设计方法 并提供设计模板并不强调选用什么设计方法强调设计完备性准则和设计验证技术 34 4 个体循环过程PSP3 PSP3目标将个体开发小程序所能达到的生产效率和生产质量延伸到大型程序 方法采用螺旋式上升过程 即迭代增量式开发方法 把大型程序分解成小的模块 对每个模块按照PSP2 1所描述的过程进行开发 最后将模块逐步集成为完整的软件产品 应用PSP3开发大型软件系统 必须采用增量式开发方法 并要求每一个增量都具有很高的质量 在新一轮开发循环中 可以采用回归测试的方法 考察新增加的这个 这些 增量是否符合要求 在PSP2中进行严格的设计复查和代码复查 并在PSP2 1中遵循设计结束准则 35 10 PSP的原理 软件系统的质量取决于系统中最差的构建质量构建质量取决于构建的开发者governedbythatperson s Knowledge知识 Discipline纪律 Commitment承诺 36 Chapter01thesoftwareengineer sjob软件工程师的任务 37 1 Whatissoftwareengineering 软件工程师的任务 在预定的时间和进度下交付高质量的软件产品 进行有效的工作 从三方面开始 计划工作按照计划完成工作生成高质量的产品 38 2 Whyisgoodengineeringimportant 软件工程一直存在的问题Businessfailures业务失败Contractdispute合同纠纷Badname不好的声誉Lawsuits法律诉讼Customerinconvenience客户投诉 39 3 PSPisthedisciplineofhigh qualityworkPSP是高质量工作的规范 PSP提供结构化的框架和方法来提高个人技能 例如 LOGS日志FORMS表单SCRIPTS脚本SUMMARY总结 40 4如何提高工作质量 了解自己 跟踪 分析自己的工作经验中学习提高自己在个人实践中使用本课程中的知识 41 问题描述示例说明问题 1使用测量诊断一个问题 了解中靶和脱靶 2客观地分析测量数据 射击的各个步骤 3自身的改变 过程改进最重要但非常困难 Watts射击练习提高过程 42 Goal ImproveProcess 射中靶子 了解过程 43 PSP的目标 明确质量目标 度量产品质量 度量当前过程 对过程进行调整 度量风险效果 将结果与目标进行比较 持续改进 44 Chapter02TimeManagement时间管理 45 2 1Thelogicoftimemanagement时间管理的逻辑 2 1 1原理 逻辑1Plan youwilllikelyspendyourtimethisweekmuchthewayyouspenttimelastweek Especiallyforstudent 2跟踪时间 Surprisedbyactualdata Timerelativism 3写成文档与实际情况比较 做计划是一种技能 学习制订好的计划 第一步是先做计划 46 4Analyzeandadjust tomakemoreaccurateplans determinewhereyourpreviousplanswereinerrorsandwhatyoucouldhavedonebetter 分析和调整计划 制定更准确的计划5Tomanagetime Planyournewtimeandfollowthenewplan制定时间分配计划并按照计划执行 47 2 1 2好处1了解计划存在的错误 有助于更好地计划下一个项目2按照计划好的方式完成工作3按照计划工作会改变个人工作方式和行为 提高效率 48 2 2了解时间使用情况 Categorizeyourmajoractivities 分类主要活动 Focusonthefewthingsthataremostimportant 3 5categoriesshouldbeenoughRecordthetimespentoneachmajoractivity 记录每项主要活动所花费的时间 Consistentlyrecordtime坚持记录 Recordatthestartandend记录开始和结束Recordtimeinastandardway 用标准方法记录时间 by timelog describedinchap3 Keepthetimedatainaconvenientplace将时间数据保存在合适的地方 Engineeringnotebook 工程记事本 49 2 3EngineeringNotebook 本课程将使用工程记事本来记录时间的使用情况记事本用途 记录时间花费情况 记录作业 跟踪所承诺的工作 作课堂笔记等 软件专业人员 记录时间 设计方案 还可作为遵循正确的工程实施方案的凭证 保护知识资产 养成好的学习习惯 50 2 4TheNotebookDesign Note 给记事本写上编号 姓名地址等 记事本里面每页的编号 留出前两页作为目录 工程记事本封面 51 2 5EngineeringNotebookExample 工程记事本目录示例 52 工程记事本页的示例 53 2 6Summary 总结 计划和管理时间的第一步清楚现在如何利用时间 要把活动分成几个主要的类 用一种标准的方法把每项活动所花费的时间记录下来 采用工程记事本记录和查阅数据 54 人的时间感觉是最不可靠的 德鲁克询问一个公司的董事长 日常的时间安排 这位董事长非常肯定地说他的时间大致分布 1 3用于与公司高级管理人员研讨业务 1 3用于接待重要客户 其余1 3则用于参加各种社会活动 德鲁克建议 让他记录下自己的时间分配情况 结果发现在上述三个方面 他几乎没有花什么时间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论