收藏 分销(赏)

个体软件设计.ppt

上传人:a199****6536 文档编号:2404287 上传时间:2024-05-29 格式:PPT 页数:57 大小:1.20MB 下载积分:14 金币
下载 相关 举报
个体软件设计.ppt_第1页
第1页 / 共57页
个体软件设计.ppt_第2页
第2页 / 共57页


点击查看更多>>
资源描述
1 11 Introduce you to a process-based approach to developing software 介介绍开开发软件的基于件的基于过程的方法程的方法2 Show you how to measure and analyze your Personal Software Process(PSPPSP)3 Improve your software development skillsskills:faster development 速度更快 fewer errors(i.e.better software)错误更少 more predictable(more accurate estimates of time required to complete a project)预见能力高4 Show you how to use data to improve your personal performance 利用已有数据提高改进自己2 2 Watts S.HumphreyWatts S.Humphrey 卡内基梅隆(Carnegie Mellon)大学 软件工程研究所(SEI)曾是SEI的软件过程计划的主任,负责开发改良软件过程计划方法。与软件行业和政府的软件工程师合作,帮助他们实现这些改良后的方法。在IBM工作27年,担任过各种技术和管理方面的职务 SEI和IEEE的高级会员 美国计算机协会(ACM)的成员 国家质量奖评审委员会的成员 (National Quality Award Board of Examiners)3 3软件过程研究的是如何将人人员、技、技术和工具和工具等组织起来,通过有效的管理手段,提高软件生产的效率,保证软件产品的质量。软件过程改善是当前软件管理工程的核心问题。50多年来计算事业的发展使人们认识到要高效率、高质量和低成本地开发软件,必须改善软件生产过程。4 41.CMU-SEI的CMM/PSP/TSP;2.ISO 9000质量标准体系 ISO9001 ISO9000-3 ISO9004-2 ISO9004-4 ISO90023.ISO/IEC 15504(SPICE)信息技术软件过程评估5 5CMM(Capability Maturity Model)能力成熟度模型。CMM本质是软件工程管理的一个部分。CMM是对软件组织在定义、实现、度量、控制和改善其软件过程的进程中各个发展阶段的描述。CMM框架用5个不同的等级表示6 6初始级(第一级)是混沌的过程可重复级(第二级)是经过训练、有纪律的软件过程已定义级(第三级)是标准一致的软件过程已管理级(第四级)是可预测的软件过程优化级(第五级)是能持续改进的软件过程 CMM提供的框架,用来测量一个组织的软件过程成熟度和评价其软件过程能力。7 7美国美国19951995年年调查初始初始级 70%70%特征:特征:软件开件开发过程不能程不能预测,风险度高;度高;可重复可重复级 15%15%特征:特征:软件开件开发过程需小心程需小心谨慎能慎能够避免失避免失败;定定义级 10%10%特征:特征:软件开件开发过程相当程相当稳定,定,进展展顺利且可以利且可以预测;管理管理级 5%5%特征:特征:软件件过程程预测准确、准确、值得信得信赖;优化化级 1%1%特征:特征:软件件过程能程能够持持续改改进。8 8CMM TSP PSP组织能力能力高高质量的量的产品品个人技能个人技能建立建立建立建立生生产并交付并交付原原则费用和期限技能技能CMM、PSP、TSP组成的成的软件件过程框架程框架9 9CMM 改进组织能力,重点是管理TSP改进小组性能,重点是小组和产品PSP改进个人技能,重点是个人1 10 0人才需求结构呈金字塔形塔尖的领军人物是企业发展的灵魂 要求各项综合素质较高;塔型中间是企业持续发展的中坚力量,是大批的优秀的程序员,要求计算机技能过硬;塔型底层是企业的基础支撑力量,是普通的维护管理人员,相对工作的技术含量要求不高,要求的人文素质和管理技能较高。1 11 1精英人才精英人才优秀的程序秀的程序员维护管理人管理人员1 12 2企业人才需求不同,高校人才培养的层次和内容也不同。如对技能的培养,按照企业对技术人才的需求可分为三大类:技术管理型人才 研究开发型人才 工程实现型人才1 13 3是带领大批软件开发人员开展工作的骨干和生产管理者能够有效地组织产品开发和软件工程项目,发挥技术团队的软件生产力,达到预期目标。既具备计算机领域的综合知识,又有一定的管理技能和水平。1 14 4主要从事技术基础理论研究,开发新一代的技术产品及其软件核心技术技术理论基础扎实创新意识和工作能力强有某一领域技术的深入研究能力和经验1 15 5 主要从事软件产品或软件工程项目的开发和实现 实践能力和动手能力强,具有独立解决问题的能力 计算机的各项应用技术非常熟练 具备沟通、合作精神,具备持续学习的能力,具备承受压力的素质。他们是企业的生产者,软件工程的实现者,是企业发展的基础力量。主要工作在程序员岗位上。1 16 6以软件从业人员近60万人,其中专业人才约有34万人(其中高级人才4万人、中级人才20万人、初级人才10万人)。人才结构呈两头小中间大的“橄榄形”,不仅缺乏高层次人才,也缺少大量从事基础性开发软件的人员。但是如果按照国际软件的人才配比规律1:4:7计算,年我国需要高级人才6万人,中级软件人才28万人,初级软件人才46万人。全国计算机应用专业人才需求将增加近百万人。与软件人才缺口巨大相反,众多计算机专业毕业生仍然徘徊在企业大门之外,呈现出IT毕业生“过剩”的怪现象。1 17 7(1)运用知识能力(2)持续学习能力。(3)沟通合作能力。(4)踏实敬业能力。(5)良好品行能力1 18 81 19 9“管理是影响软件研发项目全局的因素,而技术只影响局部。”美国国防部曾立题调查:70的项目因为管理不善而失败,而并不是因为技术实力不够。2 20 0 需求定义不明确;缺乏一个好的软件开发过程;没有一个统一领导的产品研发小组;子合同管理不严格;没有经常注意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的控制;软件升级暴露硬件的缺点;关心创新而不关心费用和风险;标准太少并且不够完善等。2 21 1在商用软件产业中,1995年,美国共取消810亿美元的软件项目,其中:(1)31的项目未做完就取消;(2)53的软件项目进度通常要延长一半的时间;(3)通常只有9的软件项目能够及时交付并且费用也不超支。2 22 2软件是知识产品,进度和质量都难以度量,生产效率也难以保证。软件系统的复杂程度也是超乎人们的想象。例如,宇宙飞船的软件系统源程序代码多达2000万行,如果按过去的生产效率一个人一年只能写1万行代码的话,那么需要2000万人年的工作量。因为软件如此复杂和难以度量,软件研发项目管理发展还很不成熟。2 23 3CMM 提供一个软件过程改进框架 提供“应该做什么”。PSP 提供 应该怎样做?提供有关实现关键过程域所需要的具体知识和技能。时间管理 (time management)进度管理 (managing schedules)程序缺陷 (program defects)代码复查 (code preview)产品质量 (product quality)2 24 4根据对参加培训的104位软件人员的统计数据表明:应用PSP 软件中总的缺陷减少 58.0%测试阶段发现的缺陷减少 71.9%生产效率提高 20.8%2 25 5定义:是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。2 26 6PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立。(1)说明个体软件过程的原则;(2)帮助软件工程师作出准确的计划;(3)确定软件工程师为改善产品质量要采取的步骤;(4)建立度量个体软件过程改善的基准;(5)确定过程的改变对软件工程师能力的影响。2 27 7CMM1.1的18个关键过程域中有12个与PSP有关。(1)软件项目开发成本的70%取决于软件开发人员个人的技能、经验和工作习惯。(2)统计数据表明,应用PSP 后,软件中总的差错减少了58,在测试阶段发现的差错减少71,生产效率提高20。2 28 8PSP0当前当前软件件过程程工作工作时间记录程序缺陷程序缺陷记录缺陷缺陷类型型标准准PSP0.1 编码标准准软件件规模度量模度量过程改善建程改善建议PSP1 程序程序规模估模估计测试报告告PSP1.1任任务规划划进度安排度安排PSP2代代码评审设计评审PSP2.1设计模板模板PSP3循循环开开发个体度量个体度量过程程个体个体规划划过程程个体个体质量管理量管理过程程nPSP PROCESS EVOLUTION个体循个体循环过程程2 29 9(1)(1)个体度量个体度量过程程 PSP0PSP0和和PSP0.1PSP0.1PSP0 建立个体过程基线:学会使用学会使用PSPPSP的各种表格采集的各种表格采集过过程的有关数据程的有关数据 执执行行软软件开件开发单发单位的当前位的当前过过程程,包括包括计计划、开划、开发发(包(包括括设计设计、编码编码、编译编译和和测试测试)以及后置)以及后置处处理三个理三个阶阶段段 测测定定软软件开件开发时间发时间,按照,按照选选定的缺陷定的缺陷类类型型标标准、度量准、度量引入的缺陷个数和排除的缺陷个数等,用作引入的缺陷个数和排除的缺陷个数等,用作为测为测量在量在PSPPSP的的过过程中程中进进步的基准。步的基准。3 30 0PSP0.1增加编码标准、程序规模度量和过程改善建议等三个关键过程域 过程改善建议表格:随随时记录过时记录过程中存在的程中存在的问题问题 解决解决问题问题的措施以及改的措施以及改进过进过程的方法程的方法 提高提高软软件开件开发发人人员员的的质质量意量意识识和和过过程意程意识识3 31 1PSP1的重点是个体计划 引入基于估计的计划方法PROBE(PROxy Based Estimating),用历史数据来预测新程序的大小和需要的开发时间,并使用线性回归方法计算估计参数,确定置信区间以评价预测的可信程度。PSP1.1增加任务和进度的规划。3 32 2PSP2重点是个体质量管理 根据程序的缺陷建立检测表 按照检测表进行设计复查和代码复查 及早发现缺陷 修复缺陷的代价最小随着个人经验和技术的积累,还应学会怎样改进检测表以适应自己的要求。PSP2.1论述设计过程和设计模板 介绍设计方法,并提供设计模板 并不强调选用什么设计方法 强调设计完备性准则和设计验证技术3 33 3PSP3目目标标 将个体开发小程序所能达到的生产效率和生产质量延伸到大型程序;方法方法 采用螺旋式上升过程,即迭代增量式开发方法,把大型程序分解成小的模块,对每个模块按照PSP2.1所描述的过程进行开发,最后将模块逐步集成为完整的软件产品。应用PSP3开发大型软件系统,必须采用增量式开发方法,并要求每一个增量都具有很高的质量。在新一轮开发循环中,可以采用回归测试的方法,考察新增加的这个(这些)增量是否符合要求。在PSP2中进行严格的设计复查和代码复查,并在PSP2.1中遵循设计结束准则。3 34 4软件系统的质量取决于系统中最差的构建质量构建质量取决于构建的开发者governed by that persons:Knowledge 知识 Discipline 纪律 Commitment 承诺3 35 5 Chapter01Chapter01 the software engineers job软件工程师的任务3 36 6软件工程件工程师的任的任务:在预定的时间和进度下交付高质量的软件产品。进行有效的工作,从三方面开始:计划工作按照计划完成工作生成高质量的产品3 37 7 软件工程一直存在的问题Business failures 业务失败 Contract dispute 合同纠纷Bad name 不好的声誉Lawsuits 法律诉讼Customer inconvenience 客户投诉3 38 8PSP 提供结构化的框架和方法来提高个人技能,例如:LOGS 日志FORMS 表单SCRIPTS 脚本SUMMARY 总结3 39 9 了解自己。跟踪、分析自己的工作 经验中学习提高自己 在个人实践中使用本课程中的知识。4 40 0问题描述示例说明问题:1 使用测量诊断一个问题(了解中靶和脱靶)2 客观地分析测量数据(射击的各个步骤)3 自身的改变(过程改进最重要但非常困难)4 41 1n射射中中靶靶子子n了了解解过程程4 42 2明确明确质量目量目标度量度量产品品质量量度量当前度量当前过程程对过程程进行行调整整度量度量风险效果效果将将结果与目果与目标进行比行比较持持续改改进4 43 3Chapter02 Chapter02 Time Management时间管理4 44 42.1.1 2.1.1 原理原理/逻辑1 1 PlanPlan-you will likely spend your time this week-you will likely spend your time this week much the way you spent time last week;much the way you spent time last week;Especially for student!Especially for student!2 2 跟踪跟踪时间 Surprised by actual data!Surprised by actual data!Time relativism.Time relativism.3 3写成文档与写成文档与实际情况比情况比较 做做计划是一种技能划是一种技能 学学习制制订好的好的计划划,第一步是先做第一步是先做计划划4 45 54 4 Analyze and adjust-to make more accurate Analyze and adjust-to make more accurate plans,determine where your previous plans plans,determine where your previous plans were in errors and what you could have done were in errors and what you could have done better.better.分析和分析和调整整计划划,制定更准确的制定更准确的计划划5 5 To manage time Plan your new time and To manage time Plan your new time and follow the new planfollow the new plan制定制定时间分配分配计划并按照划并按照计划划执行行4 46 62.1.2 好处1 了解计划存在的错误,有助于更好地计划下一个项目2 按照计划好的方式完成工作3 按照计划工作会改变个人工作方式和行为,提高效率4 47 7Categorize your major activities;Categorize your major activities;分分类主要活主要活动 Focus on the few things that are most importantFocus on the few things that are most important 3-53-5 categories should be enough categories should be enoughRecord the time spent on each major activity;Record the time spent on each major activity;记录每每项主要活主要活动所花所花费的的时间 Consistently record time Consistently record time 坚持持记录 Record at the start and end Record at the start and end 记录开始和开始和结束束Record time in a standard way;Record time in a standard way;用用标准方法准方法记录时间(by“time log”described in chap 3);(by“time log”described in chap 3);Keep the time data in a convenient place Keep the time data in a convenient place 将将时间数数据保存在合适的地方据保存在合适的地方 Engineering notebook(Engineering notebook(工程工程记事本事本).).4 48 8本课程将使用工程记事本来记录时间的使用情况记事本用途:记录时间花费情况,记录作业,跟踪所承诺的工作,作课堂笔记等;软件专业人员:记录时间、设计方案,还可作为遵循正确的工程实施方案的凭证;保护知识资产。养成好的学习习惯。4 49 9Note:给记事本写上编号、姓名地址等;记事本里面每页的编号,留出前两页作为目录。工程记事本封面5 50 0工程记事本目录示例n页码n目目录主主题n日期日期n3 3npsppsp的作的作业n9/9-169/9-16n4 4npsppsp的笔的笔记,课程程讲座座n9/9-139/9-13n8 8n设计笔笔记,第一个程序,第一个程序n9/119/11n9 9n电话等等n9/119/11n1010npsppsp的笔的笔记(续),),课程程讲座座n9/13-9/13-5 51 1工程工程记事本事本页的示例的示例 日 期9/9PSP作业,9/16提交制作一个工程记事本阅读课本第1章9/11PSP作业,9/20提交程序设计练习,第1章9/13PSP作业,9/23提交阅读课本,第2章9/16PSP作业,9/23提交按时完成时间记录使用时间记录日志时间日志放在工程记事本的后面阅读课本第3章的例题5 52 2 2.6 Summary(总结)计划和管理时间的第一步清楚现在如何利用时间。要把活动分成几个主要的类。用一种标准的方法把每项活动所花费的时间记录下来。采用工程记事本记录和查阅数据。5 53 3人的时间感觉是最不可靠的。德鲁克询问一个公司的董事长,日常的时间安排,这位董事长非常肯定地说他的时间大致分布:1/3用于与公司高级管理人员研讨业务;1/3用于接待重要客户;其余1/3则用于参加各种社会活动。德鲁克建议,让他记录下自己的时间分配情况。结果发现在上述三个方面,他几乎没有花什么时间。他所说的三类工作,只不过是他认为“应该”花时间的工作而已。实际记录显示他的时间大部分都花在调度工作上,例如处理他认识的顾客的订单,打电话给工厂催货。真正要做的事和实际所做的事相差甚远。所以,有效的管理者要知道,如果要管理好自己的时间,做到真正卓有成效,首先应该了解自己的时间实际是怎么耗用的。5 54 4 2.7 Assignment 2 Make an engineering notebook for the work youll do in this course.If you have a PDA,an electronic engineering notebook is accepted.Ill randomly check your engineering notebooks in the process of the course learning5 55 5编程作业:利用C、Java或其他语言编写,个人编写,不需要小组合作。在时间管理的其他作业中加入对编程活动的时间统计及安排。1、输入n个数(实数或整数),输出其最大最小值。2、输入n个数和一个整数K,输出n个数中第K个最大最小值。要求有输入错误判断及相应错误信息。3、输入n个数,用任意算法对其进行排序并按从小到大顺序输出。5 56 6 4、对给定一个英文文本文件,统计并输出26个英文字母(不区分大小写)的出现频率,并统计定冠词the的出现次数及频率。5、任意输入一个带有+,-,x,/和()的算术表达式,输出表达式的值。6、给定一九格图,1-8八个数字随机被放入其中8个格内,编程序在方格内移动数字,使8个数字在九格图周围8个格内顺序(逆时针,顺时针均可)排列。任一数字,只有当其周围四连通的格之一为空格时,与空格交换位置。5 57 7
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服