软件项目管理的内容有那些

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件项目管理的内容有那些相关的知识,希望对你有一定的参考价值。

参考技术A 《软件项目管理的内容》
 软件项目管理的内容主要包括如下几个方面:人员的组织与管理,软件度量,软件项目计划,风险管理,软件质量保证,软件过程能力评估,软件配置管理等。
  这几个方面都是贯穿、交织于整个软件开发过程中的,其中人员的组织与管理把注意力集中在项目组人员的构成、优化;软件度量把关注用量化的方法评测软件开发中的费用、生产率、进度和产品质量等要素是否符合期望值,包括过程度量和产品度量两个方面;软件项目计划主要包括工作量、成本、开发时间的估计,并根据估计值制定和调整项目组的工作;风险管理预测未来可能出现的各种危害到软件产品质量的潜在因素并由此采取措施进行预防;质量保证是保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动;软件过程能力评估是对软件开发能力的高低进行衡量;软件配置管理针对开发过程中人员、工具的配置、使用提出管理策略。因为大家对人力资源管理和软件过程能力比较有兴趣,下面就详细的对这两方面展开讨论。
  从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段。不论是作坊式开发,还是团队协作开发,这六个阶段都是不可缺少的。根据公司实际情况,公司在进行软件项目管理时,重点将软件配置管理、项目跟踪和控制管理、软件风险管理及项目策划活动管理四方面内容导入软件开发的整个阶段。在20世纪80年代初,著名软件工程专家B.W.Boehm总结出了软件开发时需遵循的七条基本原则,同样,在进行软件项目管理时,也应该遵循这七条原则。它们是:
1、用分阶段的生命周期计划严格管理;
2、坚持进行阶段评审;
3、实行严格的产品控制;
4、采用现代程序设计技术;
5、 结果应能够清楚地审查;
6、开发小组地人员应该少而精;
7、承认不断改进软件工程实践的必要性。
参考技术B

用于软件研发的项目管理系统应包括5个基本功能:

1. 项目计划和调度
计划和调度项目流程是基本。用重要事件填写日历、对任务进行排名以及与团队分享所有内容至关重要。

2. 团队协作
支持团队沟通的渠道对于促进协作是必要的。让每个人都在同一页面上,每个人都可以通过简单地查看项目来保持更新。

3. 文件管理
软件研发项目有很多文档,在一个地方访问这些数据会很方便,最好能够实现快速访问。

4. 报告
项目经理必须了解每个任务完成或发生的问题。要了解你在项目中所处的位置,需要一个良好的报告系统或 KPI 仪表板。

5. 资源管理
资源管理包括维护项目开发中使用的其他资源,还有项目预算管理。还需要跟踪资源使用情况以了解它们对项目的价值。

技术每天都在不断改变团队的工作方式,研发管理系统使用得当最终可以使软件开发团队的生产力达到顶峰。

8Manage PM软件项目研发管理系统,能够切入软件研发流程的各个影响成功的因素,覆盖进度、计划、范围、风险、资源、成本、需求、时间、沟通等研发管理全流程,同时也应用四眼原理和实时直通处理来提供及时、准确和完整的项目数据,并提供各种可视化报表,全面推动项目实施成功。
                                                                       
       

软件工程读书笔记——结对编程那些事

 

         现代软件产业经过几十年的发展,已经形成了项目组合作的形式,几乎不存在一个人完成所有工作的情况,一个团队最少有两个人组成,那么两人合作的过程中有什么需要关注的地方呢?

一、            代码风格规范

程序员写的代码是给电脑看的,能运行就是好代码;但对于结对编程来说,能让另一个人理解你的代码,迅速掌握你代码的逻辑关系至关重要,如果代码格式写成下图这种艺术形式,可就让人头疼了。

/*

                           _ooOoo_

                          o8888888o

                          88" . "88

                          (| -_- |)

                          O\  =  /O

                       ____/`---‘\____

                     .‘  \\|     |//  `.

                    /  \\|||  :  |||//  \

                   /  _||||| -:- |||||-  \

                   |   | \\\  -  /// |   |

                   | \_|  ‘‘\---/‘‘  |   |

                   \  .-\__  `-`  ___/-. /

                 ___`. .‘  /--.--\  `. . __

              ."" ‘<  `.___\_<|>_/___.‘  >‘"".

             | | :  `- \`.;`\ _ /`;.`/ - ` : | |

             \  \ `-.   \_ __\ /__ _/   .-` /  /

        ======`-.____`-.___\_____/___.-`____.-‘======

                           `=---=‘

        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

                 佛祖保佑       永无BUG

*/

所以,需要制定一套行之有效的代码风格:简明、易懂、无二异性。

    这里记录一下邹老师总结的代码风格规范:

  1. 缩进使用4个空格,因为tab在不同情况下会显示不同的长度。
  2. 行宽100。
  3. 复杂表达式中用括号表达优先级,使逻辑清晰。
  4. 断行使用如下格式:

If(condition)

{
    DoSomething();

}

Else

{

    DoSomethingelse();

}

  1. 一条语句放一行方便调试时设置断点。

接下来着重讲一下命名方案:匈牙利命名法,基本原则是:变量名=属性+类型+对象描述。举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,变量全称应该为 frmSwitchboard。这样可以很容易从变量名看出Switchboard是一个表单,同样,如果此变量类型为标签,那么就应命名成 lblSwitchboard。同时注意要避免过多的描述,如果信息可以从上下文中得到,那么此类信息就不必写在变量名中。

 

二、            代码设计规范

  1. 函数,最重要的原则:只做一件事。
  2. 函数需要有单一出口,可以借助goto达到这一目的,有助于程序逻辑的清晰体现。
  3. 错误处理:对传入参数验证正确性,对指针验证其正确性。
  4. 如果只是对数据进行封装,用struct即可不必使用class。
  5. New之后记得要delete。

 

三、            结对编程的优势

1、互相鼓励,不容易沮丧:团队工作能增加成员的工作积极性。因为在面对问题的时候,会有人一起分担,共同尝试新的策略。

2、互相监督,不容易偷懒:两个人一起工作需要互相配合,如果想偷懒去干别的,就会拖延工作进度。

3、互相学习编程技巧:在编程中,相互讨论,可以更快更有效地解决问题,互相请教对方,可以得到能力上的互补。

4、可以培养和训练新人:让资深开发者和新手一起工作,可以让新人更快上手。

5、多双眼睛,少点 bug:两人互相监督工作,可以增强代码和产品质量,并有效的减少 BUG。

 

 

         在学校中较难实现真正意义上的结对编程,只能实现两人合作,合作过程中出现分歧,如何高效解决,给对方积极的反馈。三明治法是一个不错的选择:“三明治”式的批评,是指对某个人先表扬、再批评、接着再表扬的一种批评方式。由于这种批评方式并不是一味地采取批评的手段,而是在二层厚厚的表扬之间夹杂着批评,因此被称为“三明治”式的批评。

例如电视剧《西游记》中,在孙悟空保护唐僧取经的过程中,佛祖曾说过三句话:

你这泼猴,一路以来不辞艰辛保护师傅西天取经。

这次何故弃师独回花果山,不信不义。

去吧,我相信你定能发扬光大,保护师傅取得真经。

这三句话褒中有贬,既肯定了孙悟空前面保护唐僧的所作所为,又批评了他这次的不信不义,最后提出目标和期望,恰到好处地激励了孙悟空的斗志。

在团队合作中掌握了适当的建议方式,使团队能和睦融洽,才是生存之道。

以上是关于软件项目管理的内容有那些的主要内容,如果未能解决你的问题,请参考以下文章

软件project—思考项目开发那些事

供应链管理软件实施价值有那些

Apache软件基金会核心项目Tomcat的那些事

题目3:那些流行的项目版本管理软件

软件设计项目进展10 2019/8/28

软件开发的那些坑-目标的重要性