欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    个人开发技术和流程.ppt

    • 资源ID:6237780       资源大小:245KB        全文页数:32页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    个人开发技术和流程.ppt

    1,PSP(Personal Software Process)程序效能分析单元测试,个人开发技术和流程,2,本 章 内 容,理论和知识点:个人软件开发流程PSP效能分析单元测试与回归测试,3,PSP(Personal Software Process)程序效能分析单元测试与回归测试,个人开发技术和流程,4,一、PSP,1.CMU PSP简介2.软件工程师的任务清单3.个人项目耗时对比记录表,5,软件工程包括了开发,运营,维护软件的过程中有很多技术,做法,习惯,和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”。软件开发流程不光指团队的流程,软件团队是由个人组成的。在团队的大流程中,是每一个具体的个人在做开发,测试,用户界面设计,管理,交流等工作。因此,个人在软件团队中也有个人的流程。,6,1.CMU PSP简介,Personal Software Process(PSP)CMU的专家们针对软件工程师的一套模型,7,PSP的目的记录工程师如何实现需求的效率,而不是记录顾客对产品的满意度。工程师可能很高效地开发出一个顾客不喜欢的软件,那这个工程师还是一个优秀的工程师么?,8,PSP的特点:不局限于某一种软件技术(如编程语言),而是着眼于软件开发的流程,这样不同应用的工程师可以互相比较。不依赖于考试,而主要靠工程师自己收集数据,然后统计提高。在小型,初创的团队中,高质量的项目需求很难找到,这意味着给程序员的输入质量不高,在这种情况下,程序员的输出(程序/软件)往往质量不高,然而这并不能全部由程序员负责。PSP依赖于数据需要工程师输入数据,记录工程师的各项活动,这本身需要不小的代价。如果数据不准确或有遗失,怎么办?让工程师编造一些?如果一些数据不利于工程师本人(例如:花很多时间修改缺陷),我们怎么能保证工程师能如实地记录这些数据呢?,9,2.软件工程师的任务清单,10,3.个人项目耗时对比记录表,数据来源:Senior Student:在中科大“现代软件工程”课程中,每个学生记录了自己在完成个人项目时所花费的时间(学生情况:大学4年级上学期,计算机/电子/数学专业)。SDE:一群平均工作时间在3年左右,平均毕业学位为硕士的职业软件工程师(Software Design Engineer)的匿名调查.,11,12,结果分析SDE比Senior Student多读了3年书,多工作了3年.两类人任务的质量要求也不全一样SDE在“需求分析”和“测试”这两方面明显地要花更多的时间(多60%以上);但是在具体编码上,SDE要少花1/3强的时间。,13,PSP(Personal Software Process)程序效能分析单元测试与回归测试,个人开发技术和流程,14,二、程序效能分析,1.效能与效能分析含义2.效能分析方法,15,1.效能与效能分析含义,Performance 让自己的程序跑得又快又好时间上:最好是比别的同学快一个数量级,别人的程序是O(N2),而我的程序是O(n*logN),或者是O(N)。空间上Performance Analysis找到程序的效能瓶颈,以改进程序。重复进行“效能测试,分析,改进,再效能测试”的流程,逐渐提高程序的效能和自身的编程水平。,16,效能分析的相关名词,17,Performance Analysis写一个程序,分析一个文本文件中各个词出现的频率,并且把频率最高的10个词打印出来。,18,DoIt()ProcessFile()/store all words in a big bufferProcessBuffer()/calculate and store the frequency of each wordOutputResult()/output top 10ProcessBuffer()GetOneWord()/get one word from bufferFreqOneWord()FreqOneWord(word)Find the word in the array list,If(found)Update the frequencyIf(not found)Add the word in the array list with frequency=1OutputResult()ArrayList.Sort()/sort the arrayOutput Top 10 entry;,19,2.效能分析方法,(1)抽样(Sampling)(2)代码注入(Instrumentation)一般的做法是,先用抽样的方法找到效能瓶颈所在,然后对特定的模块用代码注入的方法进行详细分析。,20,2.效能分析方法,(1)抽样(Sampling)当程序运行时,时不时看一看这个程序运行在哪一个函数内,并记录下来,程序结束后,得出一个关于程序运行时间分布的大致的印象。优点:不需要改动程序,运行较快,可以很快地找到瓶颈。缺点:但是不能得出精确的数据,代码中的调用关系(CallTree)也不能准确表示。,21,2.效能分析方法,(2)代码注入(Instrumentation)将检测的代码加入到每一个函数中。优点:程序的一举一动都被记录在案,程序的各个效能数据都可以被精准地测量。缺点是程序的运行时间会大大加长,还会产生很大的数据文件,数据分析的时间也相应增加。同时,注入的代码也影响了程序真实的运行情况(这有点像量子物理学中的“测试的光线干扰了测试物体本身”的现象)。,22,PSP(Personal Software Process)程序效能分析单元测试与回归测试,个人开发技术和流程,23,三、单元测试与回归测试,1.单元测试2.回归测试,24,1.单元测试,又称模块测试是针对软件设计的最小单位 程序模块,进行正确性检验从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应。,25,创建单元测试函数的主要步骤(1)设置数据(2)使用被测试模块的功能(3)比较实际结果和预期的结果,26,好的单元测试的标准单元测试应该在最低的功能/参数上验证程序的正确性。单元测试必须由最熟悉代码的人(程序的作者)来写。单元测试过后,机器状态保持不变。单元测试要快(一个测试运行时间是几秒钟,而不是几分钟)。单元测试应该产生可重复、一致的结果。独立性,单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。单元测试应该覆盖所有代码路径,包括错误处理路径,为了保证单元测试的代码覆盖率,单元测试必须测试公开的和私有的函数/方法。单元测试应该集成到自动测试的框架中。单元测试必须和产品代码一起保存和维护。,27,2.回归测试Regression Testing,在单元测试的基础上,我们就能够建立关于这一模块的回归测试(Regression Test).Regress 的英语定义是:return to a worse or less developed state。是倒退、退化、退步的意思。在软件项目中,如果一个模块或功能以前是正常工作的,但是在一个新的构建中出了问题,那这个模块就出现了一个“退步”(Regression),从正常工作的稳定状态退化到不正常工作的不稳定状态。,28,回归测试的情形:在新版本上运行所有已通过的测试用例以验证有没有“退化”情况发生,这个过程就是一个“Regression Test”。如果这样的“倒退”是由于模块的功能发生了正常变化(由于设计变更的原因)引起的,那么测试用例的基准就要修改,以便和新的功能保持一致。针对一个Bug Fix,也要作Regression Test。(1)验证新的代码的确把缺陷改正了。(2)同时要验证新的代码没有把模块的现有功能破坏,没有Regression。,29,对于“回归测试”中的“回归”,我们可以理解为“回归到以前不正常的状态”。回归测试最好要自动化,因为这样就可以对于每一个构建快速运行所有回归测试,以保证尽早发现问题。单元测试是回归测试的基础.,30,在一个模块的功能逐步完成的同时,与此功能有关的测试用例也同样在完善中。一旦有关的测试用例通过,我们就得到了此模块的功能基准(Baseline),一个模块的所有单元测试就是这个模块最初的Baseline。,31,本 章 小 结,PSP程序效能分析单元测试与回归测试,32,实 践 作 业,1、分组,35人一组,选出每组组长,课代表汇总后统一提交2、注册Github,开始管理自己的源代码创建一个Github仓库,命名为test。给出课本P37页编程基本功的代码,并提交至Github的test仓库中。地址提交至本组小组长3、建立个人及团队博客(35人)个人博客内容:团队博客内容:当前主流的单元测试工具汇总由每组组长汇总后将地址提交到网络平台,

    注意事项

    本文(个人开发技术和流程.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开