软件工程PSP实践例程设计与验证开题报告.pdf
0/8 页数:7页 学院本科生开题报告 学号:姓名:所 在 单 位:指 导 教 师:2013年2月28日 1/8 开题题目:软件工程PSP实践例程设计与验证 一、选题描述 一)课题背景和意义 软件能力成熟度模型(Capability Maturity Mode,CMM)是对软件工程的工业实践所需的有关目标、方法和实践的最佳有效描述。但是在软件工程的实践中如何确保按CMM规则来开发软件,CMM并没有给出答案。CMM是一个致力于组织过程改进的框架,如何才能确保CMM使工作有效而且便利,CMM 没有提供有关实现关键过程所需要的具体知识和技能。为了解决这些问题,个体软件过程PSP(Personal Software Process)也就应运而生。个体软件过程(Personal Software Process,PSP)是由美国 Carnegie Mellon 大学软件工程研究所(CMU/SEI)的 Watts s.Humphrey 领导开发的,于1995 年它的推出,在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。PSP是一种可用于控制、管理和改进个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。在软件设计阶段,PSP 的着眼点在于软件缺陷的预防,其具体办法是强化设计结束准则,而不是设计方法的选择。根据对参加培训的 104 位软件人员的统计数据表明,在应用了PSP后,软件中总的差错减少了58.0,在测试阶段发现的差错减少了71.0,生产效率提高了 20.0。PSP 的研究结果还表明,绝大多数软件缺陷是由于对问题的错误理解或简单的失误所造成的,只有很少一部分是由于技术问题而产生的。而且根据多年来的软件工程统计数据表明,如果在设计阶段注入一个差错,则这个差错在编码阶段引发3-5个新的缺陷,要修复这些缺陷所花的费用要比修复这个设计缺陷所花的费用多一个数量级。个体软件过程的魅力日益凸现,软件工业化生产证实,工程小组高效开发高质量软件产品的能力,在很大程度上取决于个体工程师如何进行时间管理、进度管理、质量管理,取决于他们用规范化的方法开发程序的能力。PSP主要涉及软件项目规划和软件产品质量问题。具体包括规模测量、规模估计、如何基于历史数据来估计规模和资源以及如何进行过程测量问题,还包括缺陷管理、设计过程、设计验证、如何将psp应用于大型项目、如何进行过程开发问题。因此,PSP保障软件产品质量的一个重要途径是提高设计质量。1、个体软件过程PSP 软件工程(Software Process)是人们用来开发和维护软件及附属产品(如项目计划、设计文档、代码、用户手册等等)的活动、方法和实践。PSP制定了一系列软件过程来指导软件工程师提高工作效率和保证软件质量。(1)PSP的原理 PSP设计是基于下述计划和质量原理进行的;每一个工程师都是不同的,他们都有自己的特点;为了能发挥自己最大的工作效率,每个工程师们必须自己工作计划,而且必须依据他们自己的个人数据来做他们的计划;为了协调一致的改进他们的性能,工程师们必须使用精心定义和度量的过程;为了生产高质的产品,工程师们必须对他们的产品负责,好的产品时无缺陷生产的,所以每个工程师们必须致力于高质量的工作;在过程的早期发现和修改的效率高得多;用的最少的花费、最快的速度做最多的事情。(2)PSP特点 CMM提供了一个软件过程改进的框架与策略,但缺少实现关键过程所需的具体知识技能和基本方法。因此研究人员将CMM5级过程中的成功经验用来改进个体的过程意识和过程能力提出了个体软件过程(Personal Software Process,PSP)4,为软件工程师提供了发展个人技能的结构化框架和必须掌握的方法。PSP也随着CMM的发展不断升级,于2005年发布了PSP BOK1.0版5,目前最新的是2009年8月发布的2.0版6。2/8(3)PSP框架 个体软件过程是一种可用于控制、管理和改进个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP为个体的能力也提供了一个阶梯式的进化框架,每一级别都包含了更低一级别中的所有元素,并增加了新的元素。PSP过程结构流程如图所示 脚本计划设计设计检查编码编码检查编译测试后置处理脚本日志计划概要表指导时间错误计划结果需求产品项目与过程数据报告 图1 规范过程框架 以需求描述开始,第一步是计划,有一个指导这项目的计划脚本和记录规划数据的计划总结表。PSP脚本为W.EdwardsDeming称为操作过程,也是用户在使用这些脚本工作时,他们按时记录所用时间和缺陷数据及缺陷日志,并在工作最后,在后置处理阶段,从日志记录中总结作用时间和缺陷数据,测量程序规模,并把它们添入项目计划总结表中。所有这些完成后,连同完成的计划总结表一起交付给最终产品。PSP过程框架的7个过程级别,如图2所示,其中后在一个级别在前一级别的基础之上,引入一些新的方法和元素如此直到PSP的最高级别PSP3 3/8 图2 PSP进化框架 1 个体度量过程PSP0和PSP0.1。PSP0的目的是建立个体过程基线,通过这一步,学会使用PSP的各种表格采集过程的有关数据,此时执行的是该软件开发单位的当前过程,通常包括计划,开发(包括设计、编码、编译和测试)以及后置处理三个阶段,并要做一些必要的试题,如测定软件开发时间,按照选定的缺陷类型标准、度量引入的缺陷个数和排除的缺陷个数等,作为测量在 PSP的过程中进步的基准。PSP0.1 增加了编码标准、软件规模度量和过程改善建议等三个关键过程域,其中过程改善建议表格用于随时记录过程中存在的问题、建议问题的措施以及改进过程的方法,以提高软件开发人员的质量意识和过程意识。2 个体规划过程PSP1和PSP1.1。PSP1的重点是个体计划,引入了基于估计的计划方法PROBE(PROxy Based Estimating),用自己的历史数据来预测新程序的大小和需要的开发时间,并使用线性回归方法计算估计参数,确定置信区间以评价预测的可信程度。PSP1.1增加了对任务和进度的规划。在PSP1阶段应该学会编制项目开发计划,这不仅对承担大型软件的开发十分重要,即使是开发小型软件也必不可少。因为,只有对自己能力有客观的评价,才能做出更加准确的计划,才能实事求是的接受和完成客户委托的计划。3 个体质量管理过程PSP2 和 PSP2.1。PSP2 的重点是个体质量管理,根据程序的缺陷数建立检测表,按照检测表进行设计复查和代码复查,以便及早发现缺陷,使修复缺陷的代价最小。随着个人经验和技术的积累,还应学会怎样改进检测表以适应自己的要求。PSP2.1 则论述设计过程和设计模板,设计介绍方法,并提供了设计模板。但 PSP 并不强调选用什么设计方法,而强调设计的完备性准则和设计验证技术。实施 PSP 的一个重要目标就是学会在开发软件的早期实际地,客观的处理由于人们的疏忽所造成的程序缺陷问题。人们都期盼获得高质量的软件,但是只有高素质的软件开发人员并遵循合适的软件过程,因此,PSP2 引入并着重强调设计复查和代码复查技术,一个合格的软件开发人员必须掌握这两项基本技术。4 个体循环过程 PSP3。PSP3 目标是个体开发小程序所能达到的生产效率和生产质量,延伸到大型程序。其方法是采用螺旋式上升过程,即迭代增量式开发方法,首先把大型程序分解成小的模块,然后对每个模块按照PSP2.1所描述的过程进行开发,最后把这些模块逐步集成为完整的软件产品。应用PSP3开发大型软件系统,必须使用增量式开发方法,并要求每个增量都具有很高的质量。在这样的前提下,在新一轮开发循环中,可以采用回归测试的方法,集中力量考察新增加的这个(这些)增量是否符合要求,因此,要求在 PSP2 中进行严格的设计复查和代码复查,并在 PSP2.1 中努力遵循设计结束准则。从对个体软件过程框架的描述中可以看到,如何做好项目规划和如何保证产品质量,是如何软件开发过程中最基本的问题。二)研究目标 1、熟悉Windows Microsoft Visual C+6.0编程环境,熟练使用在MFC(Microsoft Foundation Classes 微软基础类)框架下用C+语言编写调试程序并实现功能。2、通过实例训练,了解PSP训练的具体方法、基本流程以及实现软件工程规范化与标准化 3、经过完整的PSP训练后,了解PSP训练对于提高产品开发水平的优越性和有效性。三)研究内容 1、基于Visual C+6.0编程工具使用的研究(1)Visual C+采用的框架是MFC。MFC是一种Application Framework,随微软Visual C+开发工具发布。该类库提供一组通用的可重用的类库供开发人员使用。大部分类均从 CObject 直接或间接派生,只有少部分类例外。MFC早在Windows 3.x的时代就出现了,那时的Visual C+还是16位的。经过这些年的不断补充和完善,MFC已经十分成熟。4/8(2)Visual C+的易用性非常好。VC有Class Wizard、Source Browser等一系列工具,还附带Visual SourceSafe、Visual Modeler等强大的工具,易用性非常好。它所带的MSDN这部“开发者的百科全书”更是让你“没有找不到的,只有想不到的”。2、软件工程PSP实践例程-数据库软件设计。数据库是利用Visual C+与Windows Microsoft Access 相互连接,来实现数据库的查询、输入、删除等功能。在 Windows Microsoft Access 项目中,根据一个完整的数据定义创建和装载一个数据库然后利用已有的视图设计来使用查询向导完成逐渐向导的查询。在数据库软件设计的过程中,按照PSP个体软件过程训练的标准过程,完整的实现一遍,记录PSP训练过程中的各种问题,完成各个级别的记录表格,验证训练环节、注意事项和效果。通过数据库实例的学习,完成PSP的训练。最终总结形成教学案例,作为以后课程实践教学环节应用的依据和参考 四)运行环境 Windows XP 操作系统,Windows Microsoft Visual C+6.0编程环境,Windows Microsoft Access工具,Windows MFC框架。五)国内外相关领域研究现状的分析 当今计算机工业发展迅速,软件产业更是如此,软件开发质量与效率要求的不断增高常令技术人员和管理人员感到明显的压力。我国信息技术产业的蓬勃发展促使各种先进技术和产品广泛应用,为国内的软件开发注入了活力。然而,值得注意的是,各种先进的操作系统,开发工具等在带来效益的同时,也使得我们的开发环境日益复杂化。无组织的开发环境会导致潜在问题的产生,甚至影响整个系统。比如:团队沟通困难,软件重用率低下,开发人员各自为政,代码冗余度高,文档不健全等;结果造成数据丢失,开发周期漫长,产品可靠性差,质量低劣,软件维护困难,用户抱怨使用不便,项目风险增加等。事实已经表明,随着整个软件业的迅速发展,由于软件开发质量和效率低下所出现的风险和挑战将越来越突出。因此,建立规范化的软件开发环境,早已为西方发达国家软件产业的发展实践证明是解决上述问题的有效途径,并已在软件业发展领先的国家和地区得到普及,基于个体软件过程的软件开发质量和效率的研究与实践显得很有必要。PSP为软件工程师提供了将所需的规范化方法,当把这些规范化方法提供给企业时,必须从大学开始讲授规范化方法。目前,在美国、欧洲和澳大利亚部分大学先后开设了 PSP 的课程,并且亚洲的少部分院校也正在考虑开设PSP课程,北航软件工程研究所从1997年开始在硕士研究生中开始讲授个体软件过程工程引论课程。最近也在本科生的软件工程中讲授 PSP 的内容,并进行了 PSP应用实验。当前为了满足工业界的需要,每年软件工程研究所对一些公司进行几次 PSP 课程的短期培训。软件工程研究所也准予PSP 教师在组织机构中介绍PSP 的相关内容。PSP 也先后在Motorola、HP、AIS等公司推广使用。PSP 是一种相对较新的技术,随着工业界和书生界的不断采用,它将与CMM、TSP 有效的结合起来,达到软件过程持续改进的结果,形成一套更先进、更科学、更新的管理模式。PSP能够指导软件工程师如何保证自己的工作质量,估计和规划自身的工作,度量和追踪个人表现,管理自身的软件过程和产品质量。其核心思想就是通过不断地改进软件的过程,使之不断的得到改善,已达到按时按质地完成软件开发任务。这个事项不但适用于软件工程师开发软件,对于任何人任何工作来说都是适用的,每个人都要虚心地承认自己的不足,不断地改进,以实现自我的不断改善。二、拟解决的关键问题和技术难题 1)VC编程环境的熟悉和掌握,并熟练运用;2)数据库的建立以及连接;3)实现数据库菜单弹出对话框;4)在设计数据库过程中,各种控件按钮的调试以及功能实现 5)PSP训练时数据的规范化和标准化记录;6)recordset记录集的定义 5/8 6/8 三、时间进度安排(可附页)2013年3月8日前,搜集资料。2013年3月15日前,熟悉VC的环境。2013年3月22日前,练习数据库与VC环境的连接 2013年3月30日前,完成开题报告。2013年4月5日前,整理相关文献综述和外文翻译。2013年4月26日前,编写源代码,完成调试并实现功能。2013年4月30日前,初步完成论文的初稿。2013年5月5日前,检查并完成毕业论文初稿。2013年5月10日前,完成毕业论文鉴定。2013年5月20日前,准备毕业答辩。2013年5月 25日前,完成毕业答辩。7/8 四、参考文献(可附页)1孙鑫.vc+深入详解.第三版.电子工业出版社,2006;2陈争光,由坤.Visual C+入门与提高.科学出版社,2008;3陈平.Visual C+6.0实例教程.浦东电子出版社,2001;4潘爱民,王国印.Visual C+技术内幕.第四版.浦东电子出版社,2001;5侯俊杰.深入浅出MFC.第二版.华中理工大学出版社,1996;6颜志军.Visual C+数据库开发典型模块与实例精讲.电子工业出版社,2007;7路游,于玉宗.数据库系统课程设计.清华大学出版社,2009;8何新贵.软件能力成熟度模型.清华大学出版社,2000;9汤庸.软件工程方法与管理.冶金工业出版社,2002;10覃征,何坚,高洪江,李顺东,黄茹.软件工程与管理.人民邮电出版社,2005;11齐治昌.软件工程.第二版.高等教育出版社,1998;12(美)汉弗莱(Humphrey,W.S.).软件工程规范.人民邮电出版社,2002;13 Watts S.Humphrey.Introduction to the Personal Software Process(个体软件过程).吴超英、车向东译.人民邮电出版社,2001;六、导师意见 导师(签章)年 月 日