软件项目的管理涉及都整个软件工程,其主要是整个软件过程进行项目范围的确定以及评估,风险、资源的评估,以及确定要完成的任务等,目的是为了保证任务的按时按质完成,同时减少不必要的开销和开发周期,做的是初期的整体规划。由于刚涉及这个领域,也就看了看几篇文章以及相关的资料,故对此的总结难免带点自己的观点,如有雷同,纯属巧合。
我认为软件项目的管理应该包括如下几个方面:1.风险评估、2.成本预算、3.客户的沟通过程、4.需求分析、5.面向对象的程序设计、6.开发管理、7.产品交付。
1.风险评估:
软件项目的风险指的是在整个项目的周期中所涉及到的成本预算,开发进度,技术难度,经济可行性以及安全管理等方面的问题。这些问题能够对整个项目的实现构成影响。软件项目风险则分为产品规模风险、需要风险、相关性风险、技术风险、管理风险、安全风险等六个方面。
规模风险:软件规模的大小和整个软件风险的大小成正比关系,如何确定复用软件的多少,如何保证软件各模块之间的通信无误等问题与产品的风险息息相关。需求风险:往往在软件确定之初,软件的需求就不确定,更何况在整个软件的开发过程中,软件的需求也可能会发生一定的变化,如何一开始就能比较准确的确定软件的需求,这是一个难点。相关性风险:有些风险则是有项目的外部条件所决定的,比如市场的变化性,人员的可得性,团队成员等等因素都能使项目风险变大,控制外部的风险能够有效缓解决策的失策。技术风险:技术风险往往是因为团队成员缺乏相应的培训,对新技术新方法新工具新领域的不了解等。管理风险:人往往对自己所犯的错误视而不见,因此对于一些存在先天不足的项目经理写的项目风险管理计划而言,或多或少存在一些固有的缺陷:对于计划和任务的定义不够清晰,对于实际的项目并不是十分的了解,过高的估计了团队的能力,以及对底层员工的信息交流不够及时等。安全风险:对于一款软件而言,其本身就是集众人之所成,是一个创造性的产品,防止被别人所窃取对于公司有时是一个生死存亡的大事,因此对其的法律保护就显得很重要,同时也应该避免出现侵犯他人知识产权的现象。
2.成本预算:
成本预算的方法分为两种:一种是自顶向下的方法,一种是自底向上的方法。前者是通过高层根据经验指定相应的任务并分配给下面的员工,底层的员工只是被动的接受任务完成任务,并不能实际参与都项目的制定管理过程,一旦上层制定的目标出现偏差,带来的损失将是十分的巨大。而后者则是通过对现有的资源进行配置的,能够利用手中资源进行合理的分解,故而能达到节约开销的目的,但是此过程往往比前者更花时间。
3.客户的沟通过程:
客户的沟通阶段可以分为如下几个过程:需求识别阶段,方案制定阶段,项目实施阶段,结束阶段。在需求识别阶段通过与客户进行实际的交谈或者是调查问卷、标准化文档展示等多种方式了解客户的大概需求,并制定相应的需求文本分析给客户审核。实际参与了解客户业务的逻辑,针对不同用户设计合理的用户界面并及时多次与客户沟通以便得到更加准确的需求文档,同时也应该规范化需求文档,以便客户的可读并实时告诉客户开发的情况以及实际的成本。方案制定阶段的主要任务就是与客户共同制定一个前期可操作性的项目计划,同时考虑到规避风险。项目实施阶段通过软件团队和客户共同领导,实时让客户参与软件的评价,并根据客服的要求修改,告诉客户修改后的后果以及各种风险进而达到减少需求更改的目的。结束阶段该阶段主要进行项目成果的移交,并把系统交付给维护人员,帮助客户实现商务目标,结清各种款项。完成这些工作后应该进行项目评估,审核此项目的成果并总结项目经验。
4.需求分析:
需求分析阶段主要的任务就是确定对系统的综合需求,制作相应的文档并从中提取软件的需求规格说明书,分析系统的数据需求包括概念模型、数据字典、规范化,导出系统具体的逻辑模型,开发原始系统。
5.面向对象的程序设计:
设计的原则应该是,保证类的单一原则,确保每个类只做一个事情,保证每个类、模块和函数都有相应的借口,使得有很好的扩展,应该保证类内高耦合,类间低耦合。UML建模:(1) 业务对象的提取 (2) 根据SRS、CRC等实现用况建模 (3) 实现业务顺序图 (4) 建立类图,根据用例图建立对象之间的关联 (5) 绘制活动图、实现协作图、状态图
6.开发管理:
开发过程中的管理首先应该建立相应的项目计划,设立总体的架构,控制项目的可扩展性,建立起项目启动时的基础并分配好开发的任务,部署好相应项目的开发进度,同时做好项目的测试工作以便保证项目的准确性。确保开发团队的合理性和效率性,实时监督项目的质量,并做适当的项目修改。
7.产品交付:
在项目最后完成交付用户之前,应该对项目进行后期的质量审查,邀请典型用户对产品进行体验,确保项目能按质交付,在交付产品之后应制定出产品的最终报告,这份报告应该包括:项目初期时的项目视图,对项目的评估以及支持性的信息,项目的范围、开发流程、项目开发过程中的会议记录、项目的变更报告及其理由、项目的沟通过程文件、项目的审核和客户的验收报告,项目的成员表象,项目的最终结果。此外还应该包括该项目的总结。