您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 个体软件过程与编码规范001
2009个体软件过程与编程规范2009PSP:个体软件过程PSP包括学习如何编制详细的计划,采集和使用过程数据,用获得的数据跟踪项目,度量和管理产品质量以及定义和使用可操作的过程。2009第一章软件1.1软件的发展1.2软件危机1.3软件工程1.4软件工程师20091.1软件的发展1.几个相关概念计算机软件:程序、数据及相关文档的完整集合。∴软件程序及有关数据—机器可执行;文档(与软件开发、运行、维护、使用、培训有关)——不可执行。程序(program)——用程序设计语言描述的,适合于计算机处理的语句序列。2009文档(document)—一种数据媒体和其上所记录的数据。文档记录软件开发活动和阶段成果,具有永久性,可供人或机器阅读。文档可用于专业人员和用户之间的通信和交流;软件开发过程的管理;运行阶段的维护。20092.发展过程发展阶段开发状态语言技术理论成就工作目标20世纪40~50年代个体化机器语言汇编语言存储器及子程序的反复利用存储程序及自动装置计算模型程序能执行且快结果可接受、最少资源得到最大运算能力20世纪60年代个体化小规模汇编语言高级语言高级语言促进计算机的应用“软件工程”结构化程序设计的理论和方法扩大程序系统规模为用户20世纪70年代小规模CPrologPascal数据结构与算法的独立及结构化开发方法数据结构和算法理论,形式方法,软件开发模型解决软件危机,时间、费用、质量2009发展阶段开发状态语言技术理论成就工作目标20世纪80年代大规模高级语言第四代语言关系型数据库关系型数据库的关系理论及软件过程改进模型扩大系统规模及复杂性,软件复用技术等20世纪90年代网络计算机JAVA设计模式作为复用交互模型在正确的时刻,把握正确信息,安全送出21世纪轻量开发灵活开发安全问题CMMI20091.2软件危机——软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。1.软件危机的表现1)软件项目经常无法按期完成,超出经费预算,软件质量难以控制2)开发人员及开发过程之间管理不规范,约定不严密,书写文档不完整,甚至无法对有些系统进行修改3)缺乏严密有效的质量检测手段4)系统更新换代难度大硬件软件开发软件维护1955年1970年1985年100%80%60%40%20%图1-1-1软件、硬件成本变化趋势20092.产生软件危机的原因软件缺陷的积累与放大效应3.软件危机的解决软件工程的方法,提供规范化的分析设计方法与工具软件,避免或减少软件错误的发生。用现代工程的原理、技术和方法进行软件的开发、管理、维护和更新。20091.3软件工程1.软件工程的定义软件工程——是指导计算机软件开发和维护的工程学科,采用工程上成熟的概念、原理、技术、方法来开发、维护管理软件。软件工程由方法与技术、工具和过程三部分组成,称软件工程的三要素。2009软件工程中的各种方法是完成软件工程项目的技术手段,它们支持软件工程的各个阶段。软件工程使用的软件工具能够自动或半自动地支持软件的开发、管理和文档的生成。软件工程中的过程贯穿于整个工程的各个环节,在这一过程中,管理人员应对软件开发的质量、进度、成本等进行评估、管理和控制,包括计划跟踪与控制、成本估算、人员的组织、质量保证、配置管理等20092.软件工程的目标软件工程的目标是在给定成本、进度的前提下,最终获得项目的成功1).付出较低的开发成本2).达到要求的软件功能3).取得较好的软件性能4).开发的软件易于移植5).需要较低的维护费用6).能按时完成开发工作,及时交付使用20093.软件工程的原则①抽象(abstraction),抽取各个事物中共同的最基本的特征和行为,暂时忽略它们之间的差异。一般采用分层次抽象的方法来控制软件开发过程的复杂性。抽象使软件的可理解性增强并有利于开发过程的管理。②模块化,把问题分解成若干个较小的较易解决的问题。③信息屏蔽(informationhiding),将模块内部的信息(数据和过程)封装起来。其他模块只能通过简单的模块接口来调用该模块,而不能直接访问该模块内部的数据或过程,即将模块设计成“黑箱”。信息屏蔽的原则可使开发人员把注意力集中于更高层次的抽象上。2009④局部化(localization),即在一个物理模块内集中逻辑上相互关联的计算资源。局部化支持信息隐藏,从而保证模块之间具有松散的耦合、模块内部有较强的内聚。这有助于控制每一个解的复杂性。⑤一致性(consistency),整个软件系统(包括程序、数据和文档)的各个模块应使用一致的定义、符号和术语;程序内部接口应保持一致;软件与环境的接口应保持一致。⑥完备性(completeness),软件系统不丢失任何重要成分,完全实现所需的系统功能的程度。为了保证系统的完全性,在软件的开发和维护过程中需要严格的技术评审。2009⑦可验证性(verifiability),开发大型软件系统需要对系统逐层分解。系统分解应遵循易于检查、测试、评审的原则,以使系统可验证。2009软件工程的基本原理:ⅰ.用分阶段的生命周期计划严格管理软件软件开发过程ⅱ.坚持进行阶段评审ⅲ.实行严格的产品控制ⅳ.采用现代软件开发技术ⅴ.结果应该能审核ⅵ.开发小组的人员应该小而精ⅶ.承认不断改进软件工程实践的必要性图1软件生存周期阶段的划分使用与维护验收测试组装测试实现详细设计概要设计需求分析退役开发过程使用与维护过程定义过程可行性研究20091.4软件工程师1.软件工程师的任务1)开发出高质量的软件产品2)在预期的费用内进行工作3)在预定的进度下完成工作要想所做的工作富有成效,需做:a.制定工作计划b.按照此计划进行工作c.尽最大努力生产出高质量的产品20092.高质量工作的重要性作为实际工作中的软件工程师,将来很可能开发较大规模的产品或系统中的某一部分。程序中任何细小的错误也都可能带来破坏性的后果。现代的计算系统每秒可以执行几百万条指令。那么,即使十亿次才出现一次不常见的缺陷,在一天中就可能出现几次。(几百万/秒,1天24小时,十亿次出现一次,那一天呢?)20092.个体软件过程PSP:告诉工程师如何把这些进的工程方法应用到日常的任务中去。它提供详细的估计和计划的方法,告诉他们如何按照计划去跟踪任务的执行情况,向他们详细解释如何利用已定义的过程来指导他们的工作。规范:为掌握或提高某种技能的活动或训练。PSP的规范提供了软件工程师需要的改进个人技能的结构化框架和方法。2009PSP:对个人进行的规范。TSP:(TeaSoftwareProcess,团队软件过程/群组软件过程)是为开发软件产品的开发团队提供指导,TSP的早期实践侧重于帮助开发团队改善其质量和生产率,以使其更好的满足成本及进度的目标。2009PSP不仅是SEI等国际知名大学或软件学院中学生的必修课程,同时在各行业中也有广泛的应用。全世界有越来越多的企业实施了PSP/TSP来增强企业的竞争力,其中软件企业有Microsoft,Quarksoft,BAAN,Intuit,AdvancedInformationServices,Teradyne等,还有诸如集成电路,系统集成等行业的公司,如:ABB,Honeywell,Motorola,AlliedSignal,Boeing,XEROX等。PSP、TSP的实施,为这些组织在软件质量,成本控制等方面带来的显著的成效。微软,作为全球最大的软件供应商,最近有一个项目试运行了SEI个人软件过程(PSP)和团队软件过程(TSP),使一个软件开发团队改变行为、改进过程、从而交付更好的软件。2009案例1.1软件工程师任务示例问题提出:软件工程师应该计划要做的工作,然后按照这个计划来工作。这就能够在规定的预算和时间内开发出高质量的产品。假如有一个学生X,要去听课、编写程序、读教科书,还要做各种各样的家庭作业。有时候还需要为考试做准备。作为家庭作业的一部分,还要编写程序。试描述、计划学生X的这些任务。解决问题的关键是,首先估计X学生的这些任务可能发生的频率,估计在每项任务上要花费的时间。其次对于每周的任务,估计每周要花费的时间。最后对于每月或每学期的任务,按月或学期估计要花费的时间。问题解决:20092009描述、计划X学生的这些任务的一个方法是列一个像表1.1那样的表格。在这里,X学生每周计划花费大约1200分钟学习,另外每学期计划花费300分钟来准备考试。那么,每周的学习时间就是20个小时,此外每学期还要用5个小时来准备考试。总结:个体软件过程(PSP)就是为使工程师更好地工作而设计的一个框架。它指出如何估计和计划工作,如何按照这些计划来跟踪自己的性能,以及如何提高程序的质量。提高质量的方法需要花费一定的时间去学习和实践,但这对你的工程生涯是有益的。为了不断提高工作的质量,必须树立目标,对产品质量进行测量,了解工作的过程,改变并重用这个过程,测量和分析结果,最后要反复地对过程进行持续改进。2009PSP个体软件过程(PersonalSoftwareProcess)是由美国CarnegieMellon大学软件工程研究所(CMU/SEI)的Wattss.Humphrey领导开发的,于1995年它的推出,在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。PSP是一种可用于控制、管理和改进个人工作方式的自我改善过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。在软件设计阶段,PSP的着眼点在于软件缺陷的预防,其具体办法是强化设计结束准则,而不是设计方法的选择。PSP保障软件产品质量的一个重要途径是提高设计质量。PSP能够说明个体软件过程的原则;帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。TSP群组软件过程TSP(TeamSoftwareProcess)指导项目组中的成员如何有效地规划和管理所面临的项目开发任务,并且告诉管理人员如何指导软件开发队伍。始终以最佳状态来完成工作。TSP实施集体管理与自己管理自己相结合的原则,最终目的在于指导开发人员如何在最少的时间内,以预定的费用生产出高质量的软件产品,所采用的方法是对群组开发过程的定义、度量和改进。TSP致力于开发高质量的产品,建立、管理和授权项目小组,并且指导他们如何在满足计划费用的前提下,在承诺的期限范围内,不断生产并交付高质量的产品。
本文标题:个体软件过程与编码规范001
链接地址:https://www.777doc.com/doc-3441943 .html