软件过程与管理知识回顾和个人总结
一、概论
软件工程的三要素。
软件工程以关注软件质量为目标,包括过程、方法和工具三个要素
过程:支持软件生命周期的所有活动
方法:为软件开发过程提供“如何做”的技术
工具:为软件开发方法提供自动的或半自动的软件支撑环境
软件过程的定义。
软件过程是用于软件开发及维护的一系列活动、方法及实践。
软件工程的定义
将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,即工程化应用到软件上。
常见的软件过程分类。常见的软件过程。
IEC12207软件过程分类:主要过程,支持过程,组织过程
ISO/IEC15504软件过程分类:客户-供应商过程,工程过程,支持过程,管理过程,组织过程。
二、软件质量管理
软件质量的定义。
软件质量是软件产品满足明确或隐含需要能力的性能和特性的总体。
2. 软件度量
对软件开发项目、过程及其产品进行定量化的过程,目的在于对其加以理解、预测、评估、控制和改善。
ISO/IEC 9126的结构
4.六个一级质量特性
①功能性,与一组功能及其指定性质有关的一组属性;
②可靠性,与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性;
③易使用性,与一组规定或潜在的用户为使用软件所需做的努力和对这样的使用所做的评价有关的一组属性;
④效率,与在规定的条件下,软件的性能水平与所使用资源量之间关系有关的一组属性;
⑤可维护性,与进行指定的修改所需的努力有关的一组属性;
⑥可移植性,与软件可从某一环境转移到另一环境的能力有关的一组属性。
5.一级特性对应的二级特性(理解)。
朱兰质量管理三部曲。
质量计划:确定项目应达到的质量标准,以及如何满足质量标准的计划安排和方法
质量保证:确保项目达到有关标准,而开展的有计划、有组织的工作活动
质量控制:是确定项目结果与质量标准是否相符,并及时纠正产品缺陷的过程。
质量计划方法:试验设计、基准对照、质量成本分析(CoQ)、流程图方法、因果分析图
质量保证方法:正规的质量评价(质量审计);通常在项目执行的过程中进行
总结性质量评价(质量改进):通常在项目结束时进行
质量控制方法:
静态方法:评审(技术评审、代码评审)
动态方法:测试(单元测试、集成测试、确认测试)
缺陷跟踪
4.缺陷密度
缺陷率=缺陷数/软件大小
两个计算方式(通常千行源代码数KLOC、功能点)
5.ISO9126-1:2001 一级特性(10个)
内部质量和外部质量
功能性、可靠性、有效性、可维护性、可移植性和可使用性
使用质量
有效性、生产率、安全和满意度
6.质量管理
质量管理是指确定质量方针、目标和职责,并通过质量体系中的质量策划、控制、保证和改进来使其实现的全部活动。
7.质量成本
质量成本是为了达到产品或服务的质量而付出的所有努力的总成本
包括三部分
预防成本:为防止将缺陷引入软件而进行的预防工作所消耗的费用
评价成本:检查软件是否包含缺陷的功能所消耗的成本
失效成本:修复缺陷工作所消耗的成本
三、软件项目管理
基本概念:
项目;
项目是为完成某一独特的产品、服务或成果所做的一次性努力
项目管理;
项目管理就是在项目活动中运用相关知识、技能、工具和技术满足项目的要求。
项目管理的五大过程组;
启动、计划、执行、控制和收尾
项目管理的十大知识领域。集范时成质,人沟风采利
项目集成管理
项目范围管理
项目时间管理
项目成本管理
项目质量管理
项目人力资源管理
项目沟通管理
项目风险管理
项目采购管理
项目利益相关者管理
2.软件的特点
复杂性、可变性、不可见性
可行性分析:
给定贴现率R计算公式为:净现值=
1.0/(1+r)t为第t年的贴现因子
一般的,初始投资是没有贴现的。
净现值的优点。
第一,适用性强,能基本满足项目年限相同的互斥投资方案的决策。
第二,能灵活地考虑投资风险。
使得净现值为0的贴现率称之为内部回报率。
内部回报率不唯一,采用最低值,不会做内部回报率低于利率的项目。
原文地址:https://www.cnblogs.com/dongao/p/14907140.html
上一篇: 软件缺陷度量、分析和统计
下一篇: 软件质量的评估和改进:实用指标和方法
推荐阅读
-
软件过程与管理知识回顾和个人总结
-
像首席技术官一样思考:如何高效管理 30 人的研发团队?-管理越多越轻松。好的研发团队,应该是上拨下用,即下级对上级的向上管理;而不是反过来,总是向下管理,甚至是 CTO 做经理的事,经理做工程师的事,工程师最终会被当成实习生。如果是这样,就会越管越累,不仅团队无法成长,而且团队整天很忙还效率低下,问题一大堆。 有这样一个小故事:一位高级经理下班后帮忙倒垃圾,结果被老板训斥了一顿。这就好比首席技术官做了实习生自己该做的事。事情本身没有对错之分,只是从不同的角度有不同的理解。 古人云:"用人不疑,疑人不用"。在面对自己的研发团队时,应该相信他们能做好,授权一线开发人员充分发挥专业特长,不要限制他们的工作。但在相信他们的同时,也要进行二次确认,始终秉持 "我相信,但我要确认 "的原则和严谨的精神。因为每个人都会犯错和疏忽,通过发挥团队的智慧,团队犯错的机会就会大大减少。比如回归测试、代码审查、开发演示、变更审批等等。 如前所述,每个人都难免会犯错。但作为管理者,你所设计和商定的流程不能出错。管理者的每一个决定和沟通都应该经过深思熟虑。就像红绿灯的交通设计,某辆车不小心闯红灯可能会扣分,但红绿灯的设计一定要正确、人性化、统一。再比如,开发人员可能会因为疏忽大意写出 bug,但研发流程的设计和上线流程的发布不能有任何差错。因此,流程体系的设计,一方面要结合当前团队规模、业务特点和需要重点解决的问题来设计,另一方面也要在人员防错、效率提升、发挥团队集体智慧等维度进行综合考量。应该站在更高更抽象的角度去思考,不断思考一个倍受欢迎的园区应该如何设计,思考一个灵动、经典、永恒的建筑应该遵循怎样的模式,思考一个成功、优秀、卓越的研发团队应该需要怎样的流程和制度。 最后,反馈很重要。向上汇报很重要,向下反馈也很重要。能够保持顺畅的双向反馈和闭环管理,对研发团队的协作和沟通有着非常明显的积极作用。在向上汇报方面,要培养团队在正式汇报、会议汇报、私下沟通、书面总结、非正式场合等方面的沟通能力,提醒下属报喜也要报忧。凡事先记录,再跟进,最后反馈。反馈很重要,主动汇报更难得。 另一方面,同时也不要忽视向下反馈。好的爱,是双向的。团队也是如此,没有严格的上下级之分,只是分工和角色不同而已。作为管理者,不必总保持一种 "神秘感",让人 "捉摸不透 "才是牛。当团队做得好或有人做得好时,要记得在公开或私下场合给予肯定和赞许。业务有增长、业绩有提升时,别忘了给团队一些鼓励,或者安排一次下午茶或聚餐。在例会或正式会议上,也可以同步向大家传达一些重要信息和高层指示。"欲速则不达,欲远则同行"。 当向上汇报、向下反馈的沟通闭环形成后,同时结合前面研发过程的管理闭环,双管齐下,就能形成良性循环。如此反复,持之以恒,优秀卓越的研发团队,必将呈现。 能力、产出和效率 接下来,继续重复关于能力、产出和效率的话题。 站在不同的角色,以及一个企业经营、生存和发展所需要的基础上,我把研发生产力分为三个层次,分别是:一线员工关心的研发能力、管理层关心的软件产出和操作人员关心的企业生产效率。简单概括就是:既要把工作做好,又要能出成果,还要能帮企业赚钱。