欢迎来到速发表网,咨询电话:400-838-9661

关于我们 登录/注册 购物车(0)

期刊 科普 SCI期刊 投稿技巧 学术 出书

首页 > 优秀范文 > 软件项目论文

软件项目论文样例十一篇

时间:2022-02-25 08:36:34

序论:速发表网结合其深厚的文秘经验,特别为您筛选了11篇软件项目论文范文。如果您需要更多原创资料,欢迎随时与我们的客服老师联系,希望您能从中汲取灵感和知识!

软件项目论文

篇1

当我们的办公室内堆满了杂乱无章的文件时,恐怕无法知道对于我们真正有用的文件在哪里,当我们的软件相目中收集了各种需求、意见、问题时,我们也很难从中估算出整个项目的规模、工作量以及成本。因此,在估算之前我们首先要对众多信息进行整理、归类分析,从而得到一个条理清晰的项目计划,在这个计划提供的框架内,才可能开始正确的估算。精心的规划是任何一个软件开发项目成功与否的关键,有了规划就有如成竹在胸,之后无论风云变幻,都有应对入流的方法。当然只有正确的规划,才能给软件开发指引正确的方向。

软件项目规划的重点是对人员角色、任务进度、经费、设备资源、工作成果等等做出合适的安排,制定出一些计划(包括高层的和细节的),使大家按照计划行事,最终顺利地达到预定的目标。

1.1、规划的第一步:确定软件范围

确定软件范围,就是确定目标软件的数据和控制、功能、性能、约束、接口以及可靠性。这项工作和需求分析是很类似的,如果之前已经达成需求分析规约,那么可以直接从《需求分析说明书》中把有用的部分拿来使用。如果还没有开始需求分析,关于确定软件范围的方法方面,我们可以采用许多需求分析技术(如需求诱导),从客户那里得到一个具体的软件范围。当然如果是一次全新的软件边界探索,就应当考虑软件本身可行性问题,包括团队是否具备在技术、财务、时间、资源上游可靠的保障,软件本身在市场上是否有可靠的竞争优势,等等。

获得软件范围,最直接最可靠的来源就是用户对软件的需求描述。例如,在开发一个C/S架构的铁路供电段数据上报系统中,客户向我们提供了以下的目标软件需求描述:

在供电站总部每天结束前要审核下属节点操作员(30~40个)的供电安全数据报表,要求每个节点必须在下午5:30~6:00之间上传数据。总部系统通过自动分析,整理出整个区内的安全形势报表,并自动反馈到每个节点。各个节点之间通过调制解调器拨号(MODEM)用内部电话线相连,每个节点电脑主机配备一个MODEM。上传数据为制式报表出了制式信息外,系统自动附加操作员姓名、上报时间、上报节点名称。信息一旦上传,节点端就不可以对已提交信息进行修改、删除,只能阅读、查询。节点间数据互相隔离,只有总部才具备对各个节点数据的管理权限,但是对于归档数据(一旦审核完毕的数据,就进行归档)总部不具备删改的权限。系统设置数据库管理员,独立于审核权限,其职责是对历史数据的清理维护。

通过上面的描述,我们通过提炼和简化,得到软件的一下功能:

节点数据录入、查询、上传

总部数据汇总、查询、反馈

总部与节点的互联项目管理培训

总部数据库存储

节点数据的本地存储项目管理论坛

在本例中,软件的性能是潜在的。客户虽然没有明确提出,但是由于数据本身的重要性,要求系统在数据上传、反馈、存储过程中安全可靠。客户要求使用MODEM进行拨号连接,那么鉴于MODEM连接过程中可能会出现,由于拨号断开而道导致的数据丢失,在节点本地存放一份数据副本是有必要的。由于系统要求每天上传数据,总部数据库应当是7X24小时不间断服务的,再加上目前总部只有该系统运行接受数据任务,各节点数据量并不大,那么在建议用户选择服务器时,应当考虑性能稳定可靠,但并不一定要购买大容量磁盘阵列和高性能双CPU主机。由于每天上传数据接近下班时间,那么总部汇总数据应当是自动进行的,一旦分析发现重大问题,可以通过与外部网络的设置,向值班人员发送手机讯息、E-MAIL或其他警示。由于不同人员对于上报数据的权限不同,对于系统用户实行分级管理。不同级别的用户,具有对数据的不同管理权力,从而保证在软件使用过程中不发生混乱。

那么现在一个较为清晰的软件模型已经构造完毕,接下来我们需要进入计划的第二步:确定工作所需资源。

1.2、规划的第二步:确定工作所需资源

软件工作所需资源包括:工作环境(软硬件环境、办公室环境)、可复用软件资源(构件、中间件)、人力资源(包括不同各种角色的人员:分析师、设计师、测试师、程序员、项目经理……)。这三种资源的组成比例,可以看作一个金字塔的模式,最上面是人力资源、其次是可复用软件资源、最下面是工作环境。最上面的是组成比例最小的,最下面的是组成比例最大的部分。

■人力资源

一个项目到底需要多少种职务的人员构成、多少数量的人员总量,再能成为最有创造力的团队呢?这恐怕是最让项目经理头疼的事情了。任何一个软件工程,都必须在确定软件的工作量之后,才能清楚地知道究竟需要多少人力才能以最小成本和最高效率完成任务。在这之前,不能盲目地进行人力扩充,而且绝对不能为了给公司抬高门面,盲目招收高学历。

■可复用软件资源

这是一个容易在计划阶段被忽视的重要资源,很多人总是进入编码阶段才发现可复用资源的价值和存在。经过长期的项目积累或是购买,公司的软件资源库中或许已经积累了大量的可复用资源,但在当前任务中,只能选择有价值的资源。根据不同的应用、时间、来源,可复用软件资源被分为以下几种:

可直接使用的构件:已有的,能够从第三方厂商获得或已经在以前的项目中开发过的软件。这些构件已经经过验证及确认且可以直接用在当前的项目中。

具有完全经验的构件:已有的为以前类似于当前要开发的项目建立的规约、设计、代码、或测试数据。当前软件项目组的成员在这些构件所代表的应用领域中具有丰富的经验。因此,对于这类构件进行所需的修改其风险相对较小。

具有部分经验的构件:已有的为以前与当前要开发的项目相关的项目建立的规约、设计、代码、或测试数据,但需做实质上的修改。当前软件项目组的成员在这些构件所代表的应用领域中仅有有限的经验,因此,对于这类构件进行所需的修改会有相当程度的风险。

新构件:软件项目组为满足当前项目的特定需要而必须专门开发的软件构件。

在采用构件的时候,应当以低成本、低风险为使用前提。如果任何一个漂亮的构件的应用,可能会带来潜在出错的风险或者必须经过复杂修改或者效率低下时,我们都应当毫不犹豫地把它抛弃。我们只采用那些能够满足项目的需要且可直接使用的构件,或者具有完全经验的构件,或者经过稍微修改便可使用的构件。项目经理博客

■环境资源

“工欲善其事,必先利其器”,要得到高效的开发过程,就必须向工作人员提供良好的软硬件环境,包括开发工具、开发设备、工作环境、管理制度。一般管理人员都会购买可以满足需要的软件开发工具和硬件平台,但是工作环境和管理制度往往被忽视。项目管理者联盟

站在人件的角度看,向工作人员提供更轻松自在、安静舒适的办公环境的公司员工往往比整天在狭小隔间中工作的公司员工,产生更高的工作效率。而那些拥有灵活人性化的管理制度的公司,比整天加班的公司更能留住高技术的人才。所以如何在有限资金中,规划一个合理的环境是很重要的事情。转

到此为止,估算前的项目计划已经完成,我们已经形成一个工程开发框架。这是一个有界限的框架,虽然还不够精确,但足以进行估算的工作。

2、估算的对象

目前为止,一个较为准确的软件项目估算的定义是:在给定公差范围内,对于姚开发的软件规模的预测,以及对开发软件所需的工作量、成本和日历事件的预测。这个概念指出了一个事实,即估算是一种大约的估计,是将误差限定在一定范围内的估计。

估算主要包括以下几个重要内容:

规模估算

软件估算首先要将整个工程的规模估算出来,才能进行下面的其他估算。规模,就是一个工程可量化的结果,是用具体数字来体现项目的描述。规模估算的信息来源是清晰、有界限的用户需求。

工作量估算

这是对开发软件所需的工作时间的估算,它和进度估算一起决定了开发团队的规模和构建。通常以人时、人天、人月、人年的单位来衡量,这些不同单位之间可以进行合理的转换。

进度估算

进度时项目自始至终之间的一个时间段。进度以不同阶段的里程碑作为标志。进度估算是针对以阶段为单位的估算,而不是对每一个细小任务都加以估算,对任务的适当分解很重要,分解得越细反而会不准确。因为任何一个软件工程,在各个方面都有与生俱来的不确定性。

成本估算

包括人力、物质、有形的、无形的支出成本估算,其中以人力成本为主要部分。比较容易被忽视的使学习成本、软件培训成本、人员变动风险成本、开发延期成本等,一些潜在成本消耗。

3、估算的策略

在软件估算的众多方法中,存在着“自顶向下”和“自底向上”两种不同的策略,两种策略的出发点不同,适应于不同的场合使用。项目管理培训

3.1、自顶向下的策略

这是一种站在客户的角度来看问题的策略。它总是以客户的要求为最高目标,任何估算结果都必须符合这个目标。其工作方法是,由项目经理为主的一个核心小组根据客户的要求,确定一个时间期限,然后根据这个期限,将任务分解,将开发工作进行对号入座,以获得一个估算结果。项目管理者联盟文章

当然由于这完全是从客户要求出发的策略,而由于软件工程是一个综合项目,几乎没有哪个项目能完全保质保量按照预定工期完工,那么这样一个策略就缺少了许多客观性。但是由于这样完成的估算比较容易被客户、甚至被项目经理所接受,在许多公司我们看到这样一个并不科学的策略仍然被坚定地执行着。项目管理培训

3.2、自底向上的策略

与自顶向下的策略完全相反,自底向上的策略是一种从技术、人性的角度出发看问题的策略。在这样一个策略指引下,将项目充分讨论得到一个合理的任务分解。在将每个任务的难易程度,每个任务依照项目成员的特点、兴趣特长进行分配,并要求进行估算。最后将估算加起来就是项目的估算值。

显然自底向上的这种策略具有较为客观的特点,但是它的缺点就是这样一来项目工期就和客户的要求不一致了。而且由于其带来的不确定性,许多项目经理也不会采用这种方法。项目经理圈子

4、估算的方法项目管理者联盟

显然估算是建立在客观实际上,对未来尽可能合理的一种预测。那么估算本身的不确定性,决定了它不可能是百分之百准确无误的。在项目刚开始时,人们对产品需求、技术、市场预期、人员素质等因素的了解还远远不够,在这种情况下人们很难作出准确的估计。但是依据某种方法进行估计显然比瞎猜好得多。项目管理者联盟文章

估算方法有很多,大致分为基于分解的技术和基于经验模型两大类。基于分解的技术的方法包括功能点估算法、LOC估算法、MARKII等;基于经验模型的方法包括IBM模型、普特南模型、COCOMO模型等。

4.1、FP功能点估算法项目管理论坛

功能点估算法是一种在需求分析阶段基于系统功能的一种规模估计方法。通过研究初始应用需求来确定各种输入、输出、计算和数据库需求的数量和特性。这种方法的计算公式是:功能点=信息处理规模x技术复杂度。信息处理规模包括各种输入、输出、查询、内部逻辑文件数、外部接口文件数等等;技术复杂度包括性能复杂度、配置项目复杂度、数据通信复杂度、分布式处理复杂度、在线更新复杂度等等。项目管理论坛

4.2、LOC估算法

这是一种从技术的角度来估算的方法总称,其中又包含许多方法。这类方法以代码(LOC)作为软件工作量的估算单位,在早期的系统开发中较为广泛使用。基于LOC的估算,又有点也有缺点。优点在于方便计算、容易监控、能反映程序员的思维能力;缺点在于代码行数的含糊不清,不能正确反映一项工作的难易程度以及代码的效率。因此在传统的LOC方法进行了许多改进。其中不断被使用,且不断演化的方法包括以下:

PERT功能点估算法:PERT对各个项目活动的完成时间按三种不同情况估计:一个产品的期望规模,一个最低可能估计,一个最高可能估计。用这三个估计用来得到一个产品期望规模和标准偏差的Pert统计估计,Pert估计可得到代码行的期望值和标准偏差SD。项目管理论坛

类比估算法:类比法适合评估一些与历史项目在应用领域、环境和复杂度的相似的项目,通过新项目与历史项目的比较得到规模估计。类比法估计结果的精确度取决于历史项目数据的完整性和准确度,因此,用好类比法的前提条件之一是组织建立起较好的项目后评价与分析机制,对历史项目的数据分析是可信赖的。

Delphi估算法:Delphi法是一种专家评估技术,在没有历史数据的情况下,这种方式适用于评定过去与将来,新技术与特定程序之间的差别。对于需要预测和深度分析的领域,依赖于专家的技术指导,可以获得较为客观的估算。通过专家们的互相讨论,还可以博取众长

系统分解:将系统分成若干个易于用LOC估算的部分,将其各个估算结果累加就是LOC的总规模。其中关键是建立起SBS(系统分解结构),它描述了系统的不同组件。SBS还被使用在其他重要的地方,如系统设计、系统分析等。在进行分解的时候,可以采用自由讨论的形式,可以获得更合理的SBS构成。项目经理圈子

4.3、IBM模型估算法

该模型是Watson和Felix在1977年的,是基于IBM联合系统分布负责的60个项目的总结而得到的模型。该模型是一个静态模型,而参考数据只有60多个项目,因此有很大的局限性。

4.4、COCOMO估算法转自项目管理者联盟

Boehm在其经典著作“软件工程经济学”(softwareengineeringconomics)中,介绍了一种软件估算模型的层次体系,称为COCOMO(构造性成本模型,COnstructiveCOstMOdel),它代表了软件估算的一个综合经验模型。项目经理博客

COCOMO模型是适用于三种类型的软件项目:(1)组织模式——较小的、简单的软件项目,有良好应用经验的小型项目组,针对一组不是很严格的需求开展工作(如,为一个热传输系统开发的热分析程序);(2)半分离模式——一个中等的软件项目(在规模和复杂性上),具有不同经验水平的项目组必须满足严格的及不严格的需求(如,一个事务处理系统,对于终端硬件和数据库软件有确定需求);(3)嵌入模式——必须在一组严格的硬件、软件及操作约束下开发的软件项目(如,飞机的航空控制系统)。

4.5、软件方程式估算法项目管理论坛

软件方程式是一个多变量模型,它假设在软件开发项目的整个生命周期中的一个特定的工作量分布。该模型是从4000多个当代的软件项目中收集的生产率数据中导出的公式。初期的方程式较为复杂,通过,Putnam和Myers的努力又提出一组简化的方程式。当然这种方法也是基于长期的参考数据的积累而得到的。

4.6、WBS估算法w

这是一种基于WBS(工作任务分解)的方法,即先把项目任务进行合理的细分,分到可以确认的程度,如某种材料,某种设备,某一活动单元等。然后估算每个WBS要素的费用。采用这一方法的前提条件或先决步骤是:项目管理者联盟

对项目需求作出一个完整的限定。

制定完成任务所必需的逻辑步骤。

编制WBS表。

项目需求的完整限定应包括工作报告书、规格书以及总进度表。工作报告书是指实施项目所需的各项工作的叙述性说明,它应确认必须达到的目标。如果有资金等限制,该信息也应包括在内。规格书是对工时、设备以及材料标价的根据。它应该能使项目人员和用户了解工时、设备以及材料估价的依据。总进度表应明确项目实施的主要阶段和分界点,其中应包括长期定货、原型试验、设计评审会议以及其他任何关键的决策点。如果可能,用来指导成本估算的总进度表应含有项目开始和结束的日历时间。

除了以上介绍的几种方法外,还有一些其他的方法:类比估算、推测估算、Standard-component估算法、普特南估算法等。当然不同的方法适用于不同的具体环境,有些方法虽然很好但并不一定适合当前的任务。只有量体裁衣,具体问题具体分析,才能得到尽量合理的估算。

5、估算的戒律项目管理者联盟

记住:应该满足于事物的本性所能容许的精确度,当只能近似于真理时,不要去寻求绝对的准确??——亚里斯多德

对于任何一个项目经理,都知道要慎重估算,但是我们仍然会看到人力资源的浪费和财力资源的匮乏,在许多项目中存在。对于宝贵的资源,我们不是用得太多,就是根本不够用。因此,有以下前人总结出来的一些经验以供借鉴。

不要追求完美:就像没有人能预测出未来,如果还没有完成,就不要企图完美的结果。更何况估算的太精确,反而会失去灵活机动的空间。

不要为满足预算而估算:如果这个项目的预算根本不能完成100%的任务,那么就不要让你的团队委曲求全。正确地反映客观现状,不仅可以争取应得的权利,而且是完成任务的前提。

不要随意削减估算结果:有很多老板喜欢把项目经理递交的估算,不假思索地砍掉一部分。这是一种不负责任的做法,如果要削减一定要有理由。

客观地估算,不贪多不偷减:就像老板不能随便削减你的估算一样,你也同样不能在估算的时候,贪多或是偷减。贪多必然导致会浪费,偷减必然导致不足。这两个结果恐怕都不是一个合格的项目经理的作为。

篇2

一项工程的具体工作涉及到人员的管理,工作任务的分配,责任内容的明确,因此人员的组织及管理是工程项目的关键因素,要把注意力集中在项目组人员的构成、优化。

1.2软件质量管理

软件质量管理在工程项目实施过程中决定着质量方针与责任的范畴,包括质量计划设计制定,项目质量检测保证和项目质量控制等程序。通过保证手段在质量过程中有效进行。

1.3软件配置管理

英文简称SCM,是在开发者中,标识,控制和管理软件变更的一种管理。配置管理的使用取决于项目规模和复杂性以及风险水平。软件配置管理针对开发过程中人员、工具的配置、使用提出管理策略。记录软件项目产品的更新过程,从而保证研发者在软件项目周期的各个阶段能够获得准确的产品配置。对项目开展过程软件开发进行有效调控和有效预测具有重要作用。

1.4编写软件项目计划书

它是软件项目管理组的首要任务,主要包括工作量、成本、开发时间的估计。并根据估计值制定和调整项目组的工作,详细记录了开发日程安排,资源供需,项目管理等各项情况。使从事该项目的人员了解该项目的大致情况。

1.5软件风险管理

软件工程风险管理是预测工作中可能出现的各种危害到软件产品质量的潜在因素的问题,对风险产生的后果进行分析评估。计算机软件风险预测的准确性评估与有效防范措施的应用都利于提高软件工程的效益,降低风险带来的经济损失,有效保证相关利益业主的权益。这几个方面都是相互贯穿、交织于整个软件开发过程中的。

2软件工程项目管理中存在的现实问题及解决方案

2.1人员工作安排不明确,应建立团队合作意识

在工程项目开发过程中是需要每个岗位人员的相互协调及无障碍交流,没有团队协作意识是无法有效的利用时间和资源开展各项工作。因此我们要提高一个工程项目的工作效率,就要合理安排人员的工作分配,强化每个工作人员的团队协作意识,有效避免管理团队中存在的分工不明确,不合作的问题。只有相互协作和相互信任的情况下才能高效的完成一件优质的软件工程项目。建立一套完善的人事考核制度,加强对员工的职位升降,工资奖金分配管理,有利于提高员工开发软件工作的积极性。

2.2缺乏实践性调研报告,应纳入到软件项目计划书

软件开发工程不仅要创新变革,也要考虑到它的实用性,以往出现的多个工程项目没有对实际项目建设中的需求实体和实际进行要求,以及实际项目建设的数据进行合理有效的调研,导致出现设计完整的软件产品运用与实际偏差较大,造成不必要的人员和资源浪费。因此要在软件设计前给予项目调研工作高度重视,对实际软件项目的需求及要求严格调查,应将软件项目调研报告附于项目计划书中,引起重视。

2.3风险管理意识不够,应该强化提高人员对风险管理的认知

风险的发生很可能会造成不可估量的损失,但是风险的发生是具有可控性的,如果能有效控制就会避免发生风险事故。可往往在计算机软件工程项目管理中的工作人员却很少知道风险管理的重要性,于是在软件开发中应提高项目主要负责人的风险管理理念,提高自身对风险管理预测能力的水平。只有了解了风险管理理论与风险管理体系,定期对项目实施中可能发生的风险进行有效排除,把控好风险管理前后的形势。

篇3

2软件工程的项目控制跟踪

2.1项目跟踪内容

依据软件项目计划,必须要对软件的产品规模(或更改后的规模)、软件的成本与工作量、所使用的重要计算机资源、项目软件日程、软件工程技术活动、项目费用、技术风险等内容与软件在开发前计划的相应内容进行比较。

2.2项目跟踪过程

软件项目的控制跟踪过程分为:

(1)项目跟踪人员要对软件度量的实际数据与再计划数据进行记录;

(2)负责人要根据文档里记载的程序在指定的地点审查项目成果;

(3)对软件的监控活动和项目的跟踪予以必要的检查。

2.3项目跟踪存在的问题

(1)控制与跟踪的频度,控制与跟踪在项目开发工程中的关键点有多个,这就需要我们找到一个好的频度去跟踪,若跟踪点少,就不能保证问题及时被纠正;若跟踪点多,在人力物力上的花费就会增多,对总体效率的影响很大。控制与跟踪的频度关系着软件项目的规模,大型项目设置的关键点相应较多。

(2)项目计划的修改,控制与跟踪软件开发过程以后,可能会发现软件项目有些地方会不符合实际,需要制定相应的修改计划,但其他组的活动就会受到修改后计划的影响,因此,没有得到相关组的同意,就不能对项目计划随意修改。

3软件工程的预测

3.1软件预测的意义

软件工程项目最关键的环节就是对软件进行预测,如果测试环节出现了问题或者测试不细致,那么将直接导致生产出的软件质量不过关,在应用软件的过程中也会逐渐发现软件存在的问题。问题不严重的,只是需要长期对软件进行修改,单单影响用户的应用;而问题严重的,会导致整个项目的失败,生产出的软件也无法投入使用。如果在投入使用前,没有经过测试,那就不知道用户有什么样的需求,也不知道软件存在什么隐患。尤其是有一些不经过测试就无法发现的隐患,一经投入使用,将会对用户造成巨大的损失。

3.2软件预测的内容

(1)文档审查,软件项目的验收需要提供一些文档,这些文档包括:经济分析报告、项目技术报告、用户手册、维护手册、项目总计报告、测试总结报告等,主要对文档的可理解性、正确性、完整性进行审查,还要对编写的规范程度进行审查。如果文档扫描不清晰、数量不齐全、甚至错误都将给用户造成不必要的麻烦,而且还可能导致软件无法升级。

(2)安装测试,安装测试第一个目的,是验证软件安装在最基本的配置下能否正常的运行;第二个目的,是验证软件安装在非正常的情况下,程序能否给用户足够的提示。非正常条件指内存不够、磁盘空间不足、不能自由创建目录。

篇4

TRIZ是俄语теориирешенияизобретательскихзадач的英文音译缩写,其中文全称是发明问题解决理论。TRIZ理论是由前苏联以阿列赫舒列尔(G•S•Altshuller)为首的研究人员在研究了近250万件涉及各学科领域的发明专利的基础上总结出来的。TRIZ理论成功地揭示了发明创造的内在规律和原理,它是一种创新方法理论体系,运用TRIZ理论可大大加快人们创造发明的进程而且能得到高质量的创新产品。运用TRIZ理论的工具和手段改进教学方法,将TRIZ理论与学生创新能力培养相结合,最终用以进行软件设计类课程创新性教学的实践。这些都将为学生未来的专业发展提供广阔空间,以应对激烈的行业竞争。

2.项目导向教学方式对软件设计类课程教学的作用

项目导向教学方式是在案例教学法之上发展起来的。只不过单纯的案例教学法中案例零散,相互之间没有联系或联系不大。而项目导向教学方式则在整个课程体系中以统一的项目进行引导,对课程内容体系中涉及的所有知识点作为小项目整合入大项目开发中。类似的教学法均属于建构主义理论指导下的教学方法。因为建构主义的观点认为,学生是学习的主体,知识获得的方法主要依靠学生去发现,教师为学生获得知识创设情境,引导和帮助学生通过意义建构获得知识,让学生在意义建构的过程中进行创造。在软件设计类课程中项目导向的教学方式较好地模拟了真正软件项目开发的全过程,能够给学生以任务的刺激,将帮助学生提高学习兴趣,增强主动学习意识,同样有助于学生创新意识的培养。

二、TRIZ理论与项目导向教学方式在软件

设计类课程中的应用对于学生软件设计能力的培养,高等学校计算机相关专业通常都有较为完整的课程体系。一般包括三个层次,即软件工程方面的基础理论课、培养学生软件设计思维的基础语言课、当前流行的软件设计开发工具课程(java、MyEclipse、NET等)。笔者所在院系的教研团队在计算机相关课程中一直采用项目导向的教学方式,并且,通过自己所承担的课程针对TRIZ理论在相应教学环节中进行了一定的实践应用,取得了一定的成果。TRIZ理论与项目导向教学方式在教学中的综合应用对教师教学思维的拓展,对学生学习兴趣、自主学习能力、创新意识和创新能力的培养都起到了较为积极的作用。其相应的应用不仅要具体建立在某门课程中,更应自始至终贯穿在所有的教学与学习环节中。

1.TRIZ理论与项目设计思维在教学中的引入

(1)软件项目的开发过程与重点。任何项目的开发与市场应用均离不开“解决问题的意识”、“针对问题的思考”、“围绕问题的设计”、“具体环节的实施”、“成形项目的市场运作”、“市场反馈与项目支持”以及“对应问题的继续关注”等多个环节的内容。目前的项目教学重点以关注“具体环节的实施”这一步骤为主,从人才系统培养这一角度上来讲显然是片面的、较低级的。因为人才的培养贵在具有解决问题的意识和设计上的创新思想,然后才是通过软件设计类课程中所设计的软件来解决实际的问题。因此,教师在课堂中要不断引导学生在生活中发现问题的习惯。通过TRIZ理论的问题解决策略对问题进行梳理整合,运用软件工程等方面的理论知识进行软件系统的设计,通过相应的语言来实现。这样不仅培养和锻炼了学生创新的思维,同时对学生创新能力的培养起到了推动作用。(2)问题的叠加与解决对学生创新思维的影响。学生学习兴趣与创新意识的引导源头在于“问题”。学贵有疑,小疑则小进,大疑则大进。TRIZ理论与项目设计思维对于学生的影响应该建立在自入学开始的学习与生活中,针对地方高校理工类学生的特点,相应思维方式与意识的引入更应贴进学生生活。例如,在入学第一学期的“计算机文化基础”课程教学过程中,通过与学生日常生活的交流,会发现学生常常抱怨课间时等待电梯时间过长这一情况。那么,教师就可以引导学生进入对这一问题的思考,即你知道电梯的工作原理是什么吗?以及对这一问题最简单的创新解决方法是什么?此时,就可以给出“操作系统的工作原理”以及“TRIZ方法论中的发明原理、冲突矩阵、物场分析等工具”。通过这些内容具体地引导学生了解他们的专业可以解决的问题,深化学生对于其专业知识的理解和应用。

2.软件设计类具体课程中项目的构思与设计过程

(1)项目设计对学生能力的促进。通过有针对性的引导与训练,学生发现问题的主动意识与创新的能力将会有很大程度的提高。此时,教师就可以在相应的软件设计类课程中给出某些不太复杂但针对性较强的项目。项目应符合复杂的现实环境,与实际生活紧密相关,只有这样才能真实反映出完整项目所包含的事件本身、其产生的原因、目前所存在的问题、挑战解决的途径以及资源限制等。学生通过项目必将真正了解工程师在实际设计中所面临的复杂境地以及艰难的抉择。这种项目式教学,既可以增强该课程的整体教学效果,可以运用TRIZ的相关理论进行训练和巩固。学生有针对性的对项目进行分析研究,经过对项目的分析、讨论、决策等环节,进而建立起系统的实践方案。在对项目的构思与设计过程中,学生学习了相关信息的搜集、整理,以及运用TRIZ方法对解决方案进行评估和最终决策的知识。这样的学习有助于训练和提高学生在复杂环境下运用TRIZ来解决实际工程问题的能力。(2)设计团队的组建对学生创新能力和学习效果的影响。现阶段的学生个性差异较大,类别明显,主要分为不同的两种类型:第一种学生思维活跃,易于接受新事务,但与计算机相关的理工类基础知识薄弱。第二种学生思维习惯传统,但相关基础知识掌握的较为系统。目前在地方高校中,第一种学生所占比例为多。教师通过实验教学过程很快就能够掌握学生的不同特性,在软件开发实践环节就可以将不同类型的学生进行整合。由于TRIZ理论来源于大量的专利,对各种场、参数和原则等概念能够真正理解的人才能更好运用TRIZ理论解决实际问题。因此,每个设计小组都由小部分“第二种”学生和大部分的“第一种”学生组成,根据任务的大小进行人数的分配。通过这一方式的应用,学生在系统设计的实践环节所完成大作业的创新性、可转化程度以及设计的质量较之以前按学号分组等情况都有了很大的提高。(3)合理划分项目工作以刺激学生参与意识。地方高校中学生自主学习意识较弱,对项目不能积极参与。针对这种情况,在对指定项目的实施过程中需要按设计小组中的每个人为单位对项目进行合理的划分与整合。例如,在教学楼里排课系统的设计中,小组成员为10人。首先,要选定设计小组长。小组长不一定在技术上全面或某项技术上突出,但应该具备良好沟通能力,并对本小组成员的特点非常了解,这样才能协助教师作好分工协作与管理。然后,通过组长的协助,将项目不同设计周期的任务进行划分。为自主学习意识不强的学生划分简单、技术性不强但非常重要的工作,如对教学楼中的教室面积、桌椅数量、是否是多媒体教室、所属院系等内容进行统计,或者将统计的数据录入数据库、建立数据表等基础且重要的工作。其他成员可根据其特长和能力对项目工作进行划分。通过项目合理的划分就可以使学生在学习的过程中,充分利用现有专业知识选择有效的方法和技术,以项目为对象有兴趣、有责任参与到项目开发和研究的全过程中。学生在参与项目的过程中,运用TRIZ理论的知识方法,从系统的角度处理好整体和局部,集体和个人的关系。(4)积极选取突出的项目设计案例进行成果转化。培养学生发现问题和创新思维意识以及对软件项目设计的能力,其主要动力来源应该是积极促使团队设计成果的转化。可以联系相关部门试用产品,对软件进行市场跟踪。相应的学生对软件工程中软件的整个生命周期会有更深入的了解。

3.注重课程实践对学生创新思维和开发能力的培养

(1)整合课程内容为加大实践课时占比做铺垫。对计算机专业课程,尤其是软件设计类课程的课程内容进行的大胆整合,将整合后让出的理论课时替换为课程实践。例如,原有的C语言、C++和Java分三学期连续讲授。讲的多练的少,学生的思考仅为片段式思考,对三个软件之间的连续性没有深刻认识,对学生创新意识、创新思维和创新开发能力的培养效果并不突出。为此,我们尝试了课程内容的整合,将三学期的教学内容压缩为两个学期。在学生基本掌握了程序设计的思维方式与相应软件的设计方法后,就给出课程设计的任务。只在实践教学引导中给出软件的特色、核心以及需要注意的内容即可,这样不仅加强了课程实践,为学生到企业实训倒出时间,更重要的是能够引发学生自主思考,突出了学生创新能力的培养。(2)教师在课程设计中注重培养自身与学生的创新思维和能力。青年学生思维活跃,作为软件设计专业任课教师一定突破年龄,保持积极活跃的思维才能够在教学的各个环节,尤其是课程设计的环节中有效地发现和引导学生的创新思维和能力。在更高一层次上,教师可以结合教学经验,通过对TRIZ相关内容的不断学习实践,进而合理有效地在实践课中穿插使用TRIZ理论中ARIZ算法等教学工具,引导部分学生在实践过程中对理论内容进行总结与验证,对教材中的现有内容及项目案例进行改进与创新。

篇5

软件行业是一个极具挑战性和创造性的行业,软件开发是一项复杂的系统工程,牵涉到各方面的因素,在实际工作中,经常会出现各种各样的问题,甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。

1.项目管理在软件开发中的应用的成因

目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成完全适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件后期的维护、升级出现麻烦,同时最终也会损害用户的利益。

随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。

2.软件项目管理常见问题及解决方案

(1)缺乏项目管理系统培训

在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理,被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。

解决方案:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。

(2)项目计划意识问题

项目经理对总体计划、阶段计划的作用认识不足,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。

解决方案:计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。

(3)管理意识问题

部分项目经理不能从总体上把握整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。

解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。

(4)沟通意识问题

在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。解决方案:制定有效的沟通制度和沟通机制,提高沟通意识;采取多种沟通方式,提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如:除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。

(5)风险管理意识问题

有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。

解决方案:通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法,掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。

(6)项目干系人问题

在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求;或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。超级秘书网

解决方案:项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。

(7)项目团队内分工协作问题

项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象;有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务,不愿意与他人协作。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。

篇6

1软件和软件业现存问题

1.1软件项目的特点软件项目是以软件为产品的项目。软件产品的特质决定了软件项目的管理和其他领域的项目管理有着截然的不同之处。

1.1.1抽象性软件是脑力劳动的结果,是一种逻辑实体,具有抽象性。在软件项目的开发过程中没有具体的物理制造过程,因而不受物理制造过程的限制,其结束以软件产品交付用户为标志。软件一旦研制成功,就可以大量复制,因此软件产品需要进行知识产权的保护。

1.1.2缺陷检测的困难性在软件的生产过程中,检测和预防缺陷是很难的,需要进行一系列的软件测试活动以降低软件的错误率。即使如此,软件缺陷也是难以杜绝的。这就像一些试验科学中的系统误差,只能尽量避免,但不能够完全根除。

1.1.3高度的复杂性软件的复杂性可以很高。有人甚至认为,软件是目前为止人类所遇到的最为复杂的事物。软件的复杂性可能来自实际问题的复杂性,也可能来自软件自身逻辑的复杂性。

1.2我国软件行业软件项目现存问题

1.2.1项目管理人才匮乏分析我国的软件产品,可以发现我国真正生存期比较长的成功产品为数不多,很多开发人员甚至项目管理人员多年下来,也没有参与过一次真正意义上成功产品的项目运作。这种现状反过来又导致我国软件企业项目管理缺乏项目经验积累,产业项目运作长期无法规范化。造成我国虽然有大批具有优秀基础的软件工程师人才,却开发不出高质量的产品,大批软件人才外流的现实情况。

1.2.2管理制度不健全随着我国软件行业的日益发展和不断进步,企业开始陆续引进并实施了“事业部制/项目制”等专业划分,即:按照其所负责行业或业务系统的不同,成立多个事业部,各个事业部只负责其所属行业内的项目和工程。每个事业部内部按照不同的产品和项目划分产品线和项目组,并且会确定相应的产品经理、项目经理,以对其所负责的整个项目的全过程负责。但实际情况是,由于大型软件系统项目过大,开发时间过长,参与单位和人员过多,最终出现以下问题:

(1)组织构架不合理,项目管理、质量管理、职能管理划分混乱。项目经理与项目严重脱节,导致项目实施失控,项目经理、质量经理等众多头衔,职责不清甚至很多项目经理都成了虚设的行政头衔,管理协调行政事物,脱离项目。

(2)项目管理和质量保证体系使用棍乱,项目组无统一目标、方针、流程,导致项目工作效率低下。多套项目流程混杂不清,实施人员面对多种要求和多种流程疲于奔命,多个部门无法按照规范协同合作,项目经理和实施人员陷入混乱的流程漩涡,导致项目停工或工期延误等后果。(3)项目团队尤其是项目经理的责权不清,授权不合理,导致其工作无法开展。尤其是一些规模较大的企业多个项目存在耦合,项目内又划分子项目的情况下,项目经理的责权划分经常很难清晰。

2项目管理和大型软件系统项目管理

2.1主流管理体系

2.1.1项目管理所谓项目管理,就是项目的管理者在有限的资源约束下,运用系统的观点、方法和理论,对项目涉及的全部工作进行有效地管理。即从项目的决策开始到项目结束的全过程进行计划、组织、指挥、协调、控制和评价,以实现项目的目标。

2.1.2项目管理的基本内容划分(1)项目质量管理。项目质量管理包括保证项目满足其需求所需要的过程。包括确定质量方针、目标和职责并在质量体系中通过诸如质量计划、质量控制、质量保证和质量改进使其实施的全面管理职能的所有活动。(2)项目时间管理。项目时间管理包括为确保项目按时完成所必要的过程。包括工序定义、工序排序、工序工期估计、制定进度计划、进度控制等。(3)项目成本管理。项目成本管理包括确保在批准的预算内完成项目所需要的诸过程。包括成本管理主要过程:资源规划、费用估算、费用预算、费用控制等。(4)项目采购管理。项目采购管理包括需要从执行组织以外获得货物和服务的过程。包括采购计划编制、招标计划编制、招标、选择来源、合同管理等。(5)项目人力资源管理。项目人力资源管理包括需要最有效地利用涉及项目人员的过程。包括所有项目受益者、组织的计划编制、人员招聘、队伍开发等。(6)项目沟通管理。项目沟通管理包括保证及时、适当地产生、收集、、储存和最终处理项目信息所需的过程。以下为主要过程:信息计划编制,信息,执行情况汇报,行政收尾。(7)项目风险管理。项目风险管理包括对项目风险的识别、分析和应对过程。包括风险识别、风险量化、风险应对措施开发、风险应对控制。

2.1.3大型软件系统项目管理阶段划分大型软件系统项目管理阶段按照定义项目分为以下六大阶段:项目需求阶段;项目选择阶段;项目计划阶段;项目执行阶段;项目控制阶段;项目收尾阶段。

2.1.2大型软件系统项目管理

2.2.1大型软件系统项目概念大型软件系统是指基于大中型计算机、通信网络等现代化的工具和手段,收集、储存、处理和输出信息,以提供信息服务为主要目的的数据密集型、人机交互的计算机应用系统。

2.2.2大型软件系统项目的特点(1)项目持续时间较长和阶段交叉性相结(2)项目成员复杂。参与项目实施的成员虽然主要来自承包商的多个职能部门的人员,还包括来自用户不同部门或下属结构的业务人员,还有一些分包商和供货商的人员参与。参与项目的人员通常要由计算机、网络、通信、电子、管理等不同专业背景的专家、工程技术等人员共同合作,才能保证项目的实施。由于大型软件系统牵涉范围广,所以参与项目的成员全部集中在某一地区不是很现实的事情,而是往往分布在全国各地,甚至需要在国外人员的合作参与。

2.3大型软件系统项目的管理问题

2.3.1项目责任范围界定不清一是项目初期客户对自身需求不清晰;二是项目实施过程中客户需求自身发生变动;三是需求分析人员和客户对需求的理解有误;四是缺少客户业务部门参与。

2.3.2项目团队缺少有效管理一是团队沟通意识差;二是团队欠缺分工合作;三是项目成员的流动频繁。

3提高大型软件系统项目质量的具体方法

3.1真实需求的获取最终用户真实需求的获取就是需求分析的过程,它是一个项目的基石。在以往信息系统集成项目失败的案例中,大部分是由于需求分析的不明确而造成的,因此对于一个信息系统集成项目成功的关键因素之一,就是对需求分析的把握程度。只有确确实实地把握客户的需求和方向,才能做好后续的工作,这也是项目范围管理的重点。需求分析需要安排专门的人员组成项目需求分析小组,这个小组员的组成除了要有专业的需求分析人员和系统设计人员外,还必须包括用户方代表。用户方代表应为用户各项业务的代表,他们能够提出用户的一些真实需求,或者通过他们能够了解到最终用户的真实需求。需求分析小组要制定详细的需求调研计划,确定需求调研的方法。为了便于需求调研双方的充分合作理解,在需求调研开始前进行一些培训工作是必要的,这些培训包括调研方法的培训、用户业务流程的培训等。

3.2利用WBS分解项目工作分解结构(WorkBreakdownStructure,WBS),是一种面向可交付成果的项目元素分组,这个分组组织并定义了全部的项目工作范围;每下降一级都表示一个更加详细的项目工作的定义。分解是指把主要可交付成果分成较小的、便于管理的组成部分,直到可交付成果定义明晰到足以支持各项项目活动(计划、实施、控制和收尾)的制定。使用WBS的最大优点是可以监控以及预测成本、进度等不同的项目信息,并且给所有的项目参与者员提供了一个均可与之作对比的一致基准。

3.3范围的验证项目范围验证不应该仅仅发生在项目结项的时候,这样做往往会流于形式。比较理想的做法是在项目各个阶段,至少是里程碑的阶段,由项目需求分析小组的成员(特别是用户方代表)、项目经理、该阶段可交付成果的负责人组成评估小组,由阶段工作成果的负责人进行宣讲,评估小组一起进行评审和验证。

3.4项目团队管理对于大型信息系统集成项目而言,项目团队组建是由项目主要干系人采用协商方式来完成,而不是由单方指定的;而项目的管理采用的是项目管理委员会领导下的项目经理负责制,而不是项目经理个人责任制。项目管理委员会一般是由项目各主要干系方指派的项目负责人组成,项目经理由项目管理委员会成员通过充分的沟通协商指定。这样做的主要目的是平衡项目干系方的满意度,保证项目目标的实现。

3.5项目团队的成长项目团队要建立起整体形象,需要明确方向,并且试图对要完成的工作明确划分和制订计划。项目经理对于项目成员要采取预期激励、信息激励和参与激励的激励方式。项目团队成长与激励关系示意图3.6软件项目的估算在项目计划阶段或项目进度调整时,对项目的规模、工作量、进度和费用进行估算,便于掌握项目的进度,控制项目的成本。而且这些估算的数据可作为其他项目估算的参考,同时也将作为项目跟踪与监控的度量基准。估算主要包括规模和工作量的估算。首先要进行的就是规模估算,规模估算应该与项目需求一致,以便确定该项目的工作量、成本和进度。每个规模属性应附上有关的难度和复杂度,然后结合项目成员的平均生产性,进行工作量估算,进而安排任务的时间进度。超级秘书网

4结语

当今我国软件企业实施软件项目管理的许多技术还不成熟,软件项目延期、超出预算、品质低劣甚至项目失败等现象十分严重。在大型软件系统开发过程中,做好项目管理是软件开发能否成功的核心问题之一。笔者希望通过对大型软件系统项目的项目管理进行的研究,为项目管理者对项目的评估、计划、控制提供一套标准化、系统化、定量化和切实可行的方法体系,为国内软件企业的软件项目管理在实际中的应用提供参考。

参考文献

[1]美国项目管理协会.项目管理知识体系指南[M].2版.卢有杰,王永,译.北京:电子工业出版社,2005.

篇7

2模型具体步骤划分

通过对模型进行深入分析和研究,并结合软件项目特征,能够确定责任范围,对整个项目进行结构分解,得到WBS集;软件项目的开发需要将用户需求作为核心,进而通过模型进行分解,获得PBS集;最后,要制定与项目开发相关的部署,确保每一个环节都能够顺利进行,保证项目进度,为工作提供依据,通过这种方式,不仅能够确保工作有条不紊进行,还能够有效提高工作质量和效率,从而促进软件开发工作进一步发展。

3模型主要应用流程

WBSR模型在软件项目管理中的应用主要涉及对项目的分解、工作目标的确认及更新。首先,建立工作小组,工作人员作为软件项目管理的核心,其成员综合素质直接影响工作能否顺利进行,基于此,小组成员一般选择项目经济、技术人员等,还可以增加用户代表等,以此来确保软件开发的合理、科学性;其次,工作、产品等结构分解,工作分解作为模式应用的基础,应结合实际情况进行合理分解,切勿盲目性,还需要结合成员经验等因素,为工作顺利开展提供支持;软件产品作为参与市场竞争的关键,分解产品开发,能够深度挖掘员工潜力,提高产品适应力,与客户达成共识;最后,还需要结合实际情况对项目范围进行及时调整,如果范围发生变化,相对应的工作流程也需要进行调整,实现统一、系统发展目标。

4模型应用情况

将软件项目管理与WBSR模式结合,将各个工作进行细致划分,能够为软件计划、预估等工作提供依据,确保工作顺利开展,在一定程度上推动了软件项目进一步发展,与此同时,在项目开展过程中,负责人加大对实际工作的监督和控制力度,能够及时发现不足之处,并采取有针对性措施,确保软件产品开发质量,该模式的应用,能够直观的反映组内成员的实际表现,为日后进行绩效考核奠定了基础,从而有效提高管理水平,促进企业可持续、健康发展。

5模式性能评价

通过对WBSR模式在软件项目管理中应用情况调查可知,模式对工作过程及产品开发从不同角度进行合理分解,提高了项目范围的精准性及有效性,避免工作失误情况的发生,并且将工作细化至每一个人受众,形成良性循环,促使员工能够认真、负责完成工作,起到了积极地促进作用。因此,面对社会发展新形势下,企业软件项目管理可以大力推广和普及WBSR模式,提高产品适应力及质量,从而实现企业经济效益最大化目标。

篇8

关键词:软件项目管理软件产品质量因素

在软件和信息科技行业,项目管理经常决定了一个产品或者企业能否成功。项目管理得到越来越多的企业和政府部门的重视,例如中国于2002年4月召开了有关项目管理的首次国际研讨会。具体操作与项目最根本的不同在于具体操作是具有连续性和重复性的,而项目则是有时限性和唯一性的。本文由中国收集整理。项目是一项为了创造某一唯一的产品或服务的时限性工作。所谓时限性是指每一个项目都具有明确的开端和明确的结束;所谓唯一是指该项产品或服务与同类产品或服务相比在某些方面具有显著的不同。各种层次的组织都可以承担项目工作。项目有时只涉及一个组织的某一部分,有时则可能需要跨越好几个组织。项目是执行组织商业战略的关键。

一、软件产品项目管理的重要性

20世纪80--90年代,许多大型企业管理信息系统MIS的开发都以失败而告终。这是为什么?一个重要原因是软件项目管理水平上不去,尤其是需求分析管理水平上不去,使得项目快要验收或交付时,却出了大问题:要么发现用户需求获取不准确,要么发现用户需求变了,致使做好的系统不能用或不好用。20世纪90年代初,上海一家公司在青岛做一个港口MIS项目,北京有一个单位在天津做一个港口MIS项目,都是因为甲乙双方软件工程基本知识不具备,使得项目管理不到位,导致2个大型项目不成功。现在软件应用领域空前广阔,深人到社会和科学研究等领域的各个方面。软件的需求也比以往更加多,软件系统设计也空前复杂。软件的项目管理问题也就因此而产生了。90年代中期,软件项目管理不善的问题仍然严重。据美国软件工程状况调查,只有10%的项目能够在预定的费用和进度下交付。于是软件项目管理成为软件项目发展中最重要的核心问题。为了使软件项目开发获得成功,必须对软件开发项目的工作范围、可能遇到的风险、需要的资源(人、硬件、软件)、要实现的任务、经历的里程碑、花费的工作量(成本),以及进度安排等做到心中有数。软件项目管理的目的就是提供这些信息,分析信息,并根据分析结果对项目做出调整。软件项目管理开始于技术工作之前,在软件开发的整个过程中持续进行,最后中止于软件过程结束。

二、软件项目管理体系

随着软、硬件技术以及通信技术的日益成熟,软件技术可以与所有的传统产业相结合,促进产品的更新换代,大幅度提高产品的附加值,提高劳动生产率,推动产业结构与产品结构的调整。因此,软件的开发以及应用不仅仅是软件开发机构的任务,更深地涉及软件使用者的切身利益,尤其像管理信息系统MIS(ManagcmentInformationSystem)、计算机集成制造系统CIMS(ComputerIntegrationManufacturingSystem)、企业资源计划ERP(EnterpriseResourcePlanning)及商业智能BI(BusinessIntelligence)等大型的复杂软件更是综合了管理科学、计算机科学、通信技术以及数学等各方面的知识,需要各类人员的协调工作才能完成。因此也就有必要从项目管理的角度去管理软件的开发和运行。从用户的角度来看,软件项目的生命周期应该包括项目前期的论证工作、项目计划、软件开发、运行、维护以及项目后评价。由此可见软件项目管理的范围不仅包括传统的软件开发过程,还应该包括开发之前的准备工作以及运行中的维护工作和对项目的总结工作。同时,在软件项目生命周期中存在着许多活动。根据活动之间的相关性,可以将软件项目的各种活动分为九大类。

(1)战略管理。根据用户的经营目标制定软件项目的策略,以便为其他各方面的活动提供指导。在制定项目策略的时候应该充分考虑用户和其他利益相关者的实际需求和市场因素。另外创造和谐的项目环境和连续改进也是战略管理的重要任务

(2)范围管理。其目的是控制软件项目的全部活动过程都在需求范围内,以确保项目各种资源的高效利用。成功的项目管理离不开用户、软件开发队伍和项目经理的一致理解和协调配合

(3)成本管理。软件项目的成本不仅包括开发成本,也包括开发之前立项阶段以及软件在运行中的费用。操作者的培训费用和项所使用的各种硬件设施费用也都是整个项目成本的一部分。这些成本都需要很好地计划和控制。

(4)时间管理。其内容有确定各项活动之间的时间相关性;估计各项活动的持续时间,跟踪各项活动的进展情况,动态调筷各项活动之间在时间上的协调。本文由中国收集整理。

(5)人力资源管理。在软件项目中应该为软件开发人员和管理人员等各类项目人员创造一个和谐良好的工作氛围。使他们能感到项目成功的把握和积极的工作心态,确保项目队伍的稳定性和连续性。

(6)沟通管理。沟通管理是一个收集、存储、配置和项目生命周期内所形成的各种信息的过程为了让每个项目相关人员及时得到所需的信息,需要很好地解决“什么时候、向什么人礼报什么的”的问题,此外软件开发队伍和用户之间的沟通也是沟通管理中的一项重要工作。

(7)风险管理。由于软件项目中存在着很多的不确定因索,也就必然存在着各种风险而且风险有可能造成不良的结果,对风险进行分析和监控贯穿于整个软件项目生命周期。

(8)质量管理。目前软件的质量还是一个模糊的概念并且难以衡量由于软件质量主要是在开发阶段形成的,因此软件项目质量管理的重点应放在系统分析、系统设计和编码阶段,走查、评审、调试和测试是保证软件质量的重要手段软件工程能力成熟度模型CMM(CapabilityMaturityModel)较好地解决了软件开发过程中的质量管理问题。

综合管理。综合管理的任务是对前面讨论的各类管理活动进行协调和控制,使这些活动相互配合。其核心任务是对各种方案进行评价,协调各方面的利益冲突确保项目总体标的最终实现。

三、软件项目管理的核心是全面客户满意

当前,不少软件业管理人上认为,软件开发的问题主要在软件开发的工程化、规范化和软件开发管理体制。他们按照CMM(CapabilityMaturityModel),IS09002的标准来建立他们的管理体系。这里有商业竞争的因素在起作用。但是,他们忽略了商业竞争中取胜最重要的因素—客户满意。他们没有考虑到他们的管理方法能否满足客户不断变化的需求。从长远来看,软件项目真正的成功是客户的全面满意。以客户满意为中心的质量是必需的。漠视质量或只关心产品/服务是否符合需要的方法再也不足以留住和获得客户。因此,软件开发项目组织必须先确定什么产品/服务可以让顾客满意,然后再努力满足客户的需求和期望。要实现此目标,组织必须识别对软件产品的各种特性中哪些是对客户的满意起决定作用的要素。例如,服务器操作系统软件,需要长时间稳定连续工作。稳定性则是该软件产品的关键要素。因此系统的开发管理围绕着这一关键要素来展开。尽管不少的组织明白没有客户一个组织就不能生存和发展,或者说没有客户就没有组织,但在项目实施过程中,仍然存在着客户满意的障碍:

(1)项目管理组织没有发展和完善对客户不断变化的需求和期望作出快速响应的能力。

(2)项目管理组织没有听取客户意见和建议的能力。

篇9

论文摘要:软件项目管理的核心是全面客户满意。其管理体系包括:战略管理、范围管理、成本管理、时间管理、人力资源管理、沟通管理、风险管理和质量管理。

在软件和信息科技行业,项目管理经常决定了一个产品或者企业能否成功。项目管理得到越来越多的企业和政府部门的重视,例如中国于2002年4月召开了有关项目管理的首次国际研讨会。具体操作与项目最根本的不同在于具体操作是具有连续性和重复性的,而项目则是有时限性和唯一性的。项目是一项为了创造某一唯一的产品或服务的时限性工作。所谓时限性是指每一个项目都具有明确的开端和明确的结束;所谓唯一是指该项产品或服务与同类产品或服务相比在某些方面具有显著的不同。各种层次的组织都可以承担项目工作。项目有时只涉及一个组织的某一部分,有时则可能需要跨越好几个组织。项目是执行组织商业战略的关键。

一、软件产品项目管理的重要性

20世纪80--90年代,许多大型企业管理信息系统MIS的开发都以失败而告终。这是为什么?一个重要原因是软件项目管理水平上不去,尤其是需求分析管理水平上不去,使得项目快要验收或交付时,却出了大问题:要么发现用户需求获取不准确,要么发现用户需求变了,致使做好的系统不能用或不好用。20世纪90年代初,上海一家公司在青岛做一个港口MIS项目,北京有一个单位在天津做一个港口MIS项目,都是因为甲乙双方软件工程基本知识不具备,使得项目管理不到位,导致2个大型项目不成功。现在软件应用领域空前广阔,深人到社会和科学研究等领域的各个方面。软件的需求也比以往更加多,软件系统设计也空前复杂。软件的项目管理问题也就因此而产生了。90年代中期,软件项目管理不善的问题仍然严重。据美国软件工程状况调查,只有10%的项目能够在预定的费用和进度下交付。于是软件项目管理成为软件项目发展中最重要的核心问题。为了使软件项目开发获得成功,必须对软件开发项目的工作范围、可能遇到的风险、需要的资源(人、硬件、软件)、要实现的任务、经历的里程碑、花费的工作量(成本),以及进度安排等做到心中有数。软件项目管理的目的就是提供这些信息,分析信息,并根据分析结果对项目做出调整。软件项目管理开始于技术工作之前,在软件开发的整个过程中持续进行,最后中止于软件过程结束。

二、软件项目管理体系

随着软、硬件技术以及通信技术的日益成熟,软件技术可以与所有的传统产业相结合,促进产品的更新换代,大幅度提高产品的附加值,提高劳动生产率,推动产业结构与产品结构的调整。因此,软件的开发以及应用不仅仅是软件开发机构的任务,更深地涉及软件使用者的切身利益,尤其像管理信息系统MIS(ManagcmentInformationSystem)、计算机集成制造系统CIMS(ComputerIntegrationManufacturingSystem)、企业资源计划ERP(EnterpriseResourcePlanning)及商业智能BI(BusinessIntelligence)等大型的复杂软件更是综合了管理科学、计算机科学、通信技术以及数学等各方面的知识,需要各类人员的协调工作才能完成。因此也就有必要从项目管理的角度去管理软件的开发和运行。从用户的角度来看,软件项目的生命周期应该包括项目前期的论证工作、项目计划、软件开发、运行、维护以及项目后评价。由此可见软件项目管理的范围不仅包括传统的软件开发过程,还应该包括开发之前的准备工作以及运行中的维护工作和对项目的总结工作。同时,在软件项目生命周期中存在着许多活动。根据活动之间的相关性,可以将软件项目的各种活动分为九大类。

(1)战略管理。根据用户的经营目标制定软件项目的策略,以便为其他各方面的活动提供指导。在制定项目策略的时候应该充分考虑用户和其他利益相关者的实际需求和市场因素。另外创造和谐的项目环境和连续改进也是战略管理的重要任务

(2)范围管理。其目的是控制软件项目的全部活动过程都在需求范围内,以确保项目各种资源的高效利用。成功的项目管理离不开用户、软件开发队伍和项目经理的一致理解和协调配合

(3)成本管理。软件项目的成本不仅包括开发成本,也包括开发之前立项阶段以及软件在运行中的费用。操作者的培训费用和项所使用的各种硬件设施费用也都是整个项目成本的一部分。这些成本都需要很好地计划和控制。

(4)时间管理。其内容有确定各项活动之间的时间相关性;估计各项活动的持续时间,跟踪各项活动的进展情况,动态调筷各项活动之间在时间上的协调。

(5)人力资源管理。在软件项目中应该为软件开发人员和管理人员等各类项目人员创造一个和谐良好的工作氛围。使他们能感到项目成功的把握和积极的工作心态,确保项目队伍的稳定性和连续性。

(6)沟通管理。沟通管理是一个收集、存储、配置和项目生命周期内所形成的各种信息的过程为了让每个项目相关人员及时得到所需的信息,需要很好地解决“什么时候、向什么人礼报什么的”的问题,此外软件开发队伍和用户之间的沟通也是沟通管理中的一项重要工作。

(7)风险管理。由于软件项目中存在着很多的不确定因索,也就必然存在着各种风险而且风险有可能造成不良的结果,对风险进行分析和监控贯穿于整个软件项目生命周期。

(8)质量管理。目前软件的质量还是一个模糊的概念并且难以衡量由于软件质量主要是在开发阶段形成的,因此软件项目质量管理的重点应放在系统分析、系统设计和编码阶段,走查、评审、调试和测试是保证软件质量的重要手段软件工程能力成熟度模型CMM(CapabilityMaturityModel)较好地解决了软件开发过程中的质量管理问题。

综合管理。综合管理的任务是对前面讨论的各类管理活动进行协调和控制,使这些活动相互配合。其核心任务是对各种方案进行评价,协调各方面的利益冲突确保项目总体标的最终实现。

三、软件项目管理的核心是全面客户满意

当前,不少软件业管理人上认为,软件开发的问题主要在软件开发的工程化、规范化和软件开发管理体制。他们按照CMM(CapabilityMaturityModel),IS09002的标准来建立他们的管理体系。这里有商业竞争的因素在起作用。但是,他们忽略了商业竞争中取胜最重要的因素—客户满意。他们没有考虑到他们的管理方法能否满足客户不断变化的需求。从长远来看,软件项目真正的成功是客户的全面满意。以客户满意为中心的质量是必需的。漠视质量或只关心产品/服务是否符合需要的方法再也不足以留住和获得客户。因此,软件开发项目组织必须先确定什么产品/服务可以让顾客满意,然后再努力满足客户的需求和期望。要实现此目标,组织必须识别对软件产品的各种特性中哪些是对客户的满意起决定作用的要素。例如,服务器操作系统软件,需要长时间稳定连续工作。稳定性则是该软件产品的关键要素。因此系统的开发管理围绕着这一关键要素来展开。尽管不少的组织明白没有客户一个组织就不能生存和发展,或者说没有客户就没有组织,但在项目实施过程中,仍然存在着客户满意的障碍:

(1)项目管理组织没有发展和完善对客户不断变化的需求和期望作出快速响应的能力。

(2)项目管理组织没有听取客户意见和建议的能力。

篇10

2用软件工程的思想贯穿各门主干课程的教学实践,系统化培养学生软件实践能力

在现有的课程体系下,我们试图找出其中最直接影响学生软件开发能力的各门主干课程,将软件工程的思想贯穿其中,用软件开发生命周期的5个阶段(系统规划、分析、设计、实施、运行和维护)指导各门课程的教学实践,并着重研究每门课程在整个生命周期中的重要地位和作用,以及该门课程应该承担的具体培养工作。在此基础上,重点研究各门课程之间如何更好地衔接,系统化地构架学生的软件开发知识体系。

3用科研指导专业教学的具体实践

高校科研机构所承担的科研项目是一项宝贵的财富,学生也迫切希望早日加入到科研队伍中来,而承担科研项目的骨干力量与学生的教授者之间往往密不可分,甚至是同一批人。这给我们带来新的启示,现有的科研项目正是对学生进行实践教学的生动教材。然而,实际的科研项目往往都是相对复杂的大型系统,对初学者来说难以理清头绪。如何按照各门课程的特点将大型科研项目分解、简化成一个个子系统,渗透在各门主干课程的教学实践中,让学生循序渐进地参与到大型科研项目的开发中,既便于学生学习掌握,也有利于随时采用科研项目实战训练,修正课堂教学方法及方向,实现教学与科研的相互协调,最终达到以培养软件工程型人才为目标的闭环控制,这是亟待解决的问题。

3.1科研项目的开发分解成子系统渗透到各门主干课程的教学实践中,细化各门课程实验环节的开设,形成项目驱动的软件人才培养方案

实施过程中,我们选取智能工程实验室完成的石化行业大型智能建模优化软件平台作为经典案例。该平台是一个集数据预处理、过程建模、过程优化等多项功能,面向石化行业的智能集成化系统平台。教师首先从功能上对其分解,梳理出数据采集、预处理、输入解析、数据建模、优化算法、数据挖掘等模块,将这些模块渗透到各门主干课程的教学中,以子系统的形式作为各门课程实践环节中的重要训练项目。下面以数据预处理模块为例,介绍模块与课程之间的关系。对采集到的数据需要进行初步的处理,并存储到数据库中,这一工作可以放在数据库原理、算法与数据结构、程序设计等课程中作为实例讲解。由于采集来的数据是真实的工业过程数据,这些数据受到各种噪声的干扰、仪表故障或者数据传输错误等原因的影响,存在很多噪声数据、冗余数据、缺失数据和不一致数据,因此,需要采用各种算法进行预处理,如记录删除法、均值填充法、中值填充法和K最邻近距离填充法等。这些都可以渗透到算法设计课程中。处理好的数据如何进行存储这部分知识可以渗透到数据库原理课程中讲解。教师根据后续的应用需求向学生介绍选择哪种数据库工具、采用什么样的存储方式、怎样设计数据库等。在这一过程中,必然涉及程序设计的内容,如均值填充法、中值填充法等相对简单的算法,可以让学生了解基本算法原理后,进行程序设计的实现。带着这些实际的问题进行课程的学习,显然会大大提高学生的学习效率。

3.2做好子系统的集成与拼装,用大型项目的科研实践完善学生的学习过程

在软件方向的学习进程中,随着各门主干课程学习的完成,各子系统逐个开发出来,这些子系统可以作为后续软件工程系列课程的重要实践内容。例如建模优化平台项目总体上采用了三层结构,这将成为软件体系结构课程中重要的典型实例,并以此集成整个系统。软件工程等课程的开设将从理论的层面更系统地对前序课程中渗透的软件工程思想予以科学的总结归纳和提高,同时补充大量前序课程中还未涉及的工程化知识,查漏补缺,为走入工作岗位或进一步的科学研究打下坚实的基础。

4关键问题的解决

在整个方案的实施过程中,指导思想的落实是重中之重,需要学院、系部等行政机构给予必要的支持和配合,才能整合整个计算机课程体系,充分协调好教师与教师之间、课程与课程之间的关系。在学校的实践过程中,我们组织全系大大小小的相关课程研讨、集体备课多达20余次,大会确定思路,小会细化方案,真正将软件工程的思想落实到各门主干课程的教学与实践环节中,最终保证方案的有效实施。其次,学校组织专门的骨干力量对经典的大型工程项目进行合理的分解和集成。完成此项工作需要相关人员既熟悉工程项目,又宏观把握整个计算机教学体系。在此基础上,对全系相关课程教师进行培训和研讨,将正常知识点的教学与工程素养的培养相结合,从而将实际企业工程项目转化为教学资源,真正实现科技创新对教学的促进。

篇11

软件行业在现在的众多行业里是一个极具挑战性和创造性的行业,体现了软件开发者的智慧和汗水,同时软件开发是一项复杂的系统工程。牵涉到许多方面的因素,在实际工作中,经常会出现各种各样的问题,甚至会面临失败。如何总结、分析失败的原因。得出有益的教训,对于项目开发人员来说,是在今后的项目中取得成功的关键。

一、软件开发中实行项目管理的意义

项目管理就是在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求,实际上就是通过项目各方干系人的合作,把各种资源应用于项目,以实现项目的目标,满足项目干系人的需求,其本质就是对时间、质量和成本的管理。

随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,项目开发的管理日益受到重视。

二、目前在软件项目管理中存在的误区

现在大多数企业都认识到了在项目中进行管理的重要性,但是仍然有许多企业在实施项目管理的过程中存在着这样那样的误区,主要表现在:

1项目经理不够专业。在软件企业中,缺乏专业的项目管理人员来实施项目管理及担任项目经理,通常被任命的项目经理主要是因为他们能够在技术上独当一面,但是他们在管理方面特别是项目管理方面的知识比较缺乏。

2项目计划缺乏纲领性。项目经理对总体计划、阶段计划的作用认识不足,因此制定总体计划时比较随意,不少事情没有仔细考虑:阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。

3缺乏有效的管理意识。部分项目经理不能从总体上把握整个项目,而是埋头于具体的技术工作,造成项目组成人员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。

4缺乏有效的沟通制度和机制。在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失:有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。

5风险管理意识淡泊。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。

6项目干系人的不确定性。在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求:或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付:项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。

7缺乏项目团队的合理分工。项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象;有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务,不愿意与他人协作。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。三、解决软件项目管理中存在的误区的有效策略

要想解决上面描述的误区,归根到底还是要从管理学的角度入手,即在软件项目的开发过程中加入过程管理的内容,这样我们可以在软件开发中对各个过程的质量加以控制,从而达到保证软件产品质量的目的。为了有效提高管理水平,我们应该努力做到:

1项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。

2计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。

3加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。

4制定有效的沟通制度和沟通机制,提高沟通意识:采取多种沟通方式,提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如:除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。

5通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法,掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。