什么是软件项目管理?
软件是程序,是控制硬件功能并指挥其运行的程序、代码和符号语言。
项目是具有明确的起止时间,明确的目标、范围和成本的一次性的工作。
它具有如下特点:(1)明确的开始、结束时间;(2)明确的目标,它规定了具有质量保证的一个或多个目标;(3)限制条件,必须是在给定的进度(时间)、成本下完成的;(4)是一次性的,一个项目不能以同样的方式重复。
管理是将一些理论知识、技能、工具和技巧应用到项目活动中去的行为或艺术。
所以,软件项目管理主要专注于软件项目活动的一些行为分析与管理。
一个项目管理需要考虑的远不止我们想象的那么多,往往需要在众多的、甚至是相互冲突的要求中寻求一种平衡,以达到满足每个团体各方面的利益:范围、时间、成本和质量有不同需求和期望的项目涉及人员明确表示出来的要求(需求)和未明确表达的要求(期望)比如,部门主管可能希望新的项目在成本方面,而系统工程师却更注重技术的完善,而市场人员却希望在尽可能短的时间内完成项目以便尽快满足市场、占有市场份额。
而项目管理者所要做的,就是夹在这不同的需求和利益中,寻求一种解决这些冲突,满足不同需要的适当的方法。
项目管理知识体系主体和项目管理过程图
软件测试的目的是什么?
软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。
它是软件生命周期中一项非常重要且非常复杂的工作,对软件可靠性保证具有极其重要的意义。
在目前形式化方法和程序正确性证明技术还无望成为实用性方法的情况下,软件测试在将来相当一段时间内仍然是软件可靠性保证的有效方法。
软件工程的总目标是充分利用有限的人力和物力资源,高效率、高质量地完成软件开发项目。
不足的测试势必使软件带着一些未揭露的隐藏错误投入运行,这将意味着更大的危险让用户承担。
过度测试则会浪费许多宝贵的资源。
到测试后期,即使找到了错误,然而付出了过高的代价。
E.W.Dijkstra的一句名言说明了这一道理:“程序测试只能表明错误的存在,而不能表明错误不存在。
”可见,测试是为了使软件中蕴涵的缺陷低于某一特定值,使产出、投入比达到最大。
软件项目分析需求
需求分析,我刚做了个项目就用它,不知道是不是你想要的1引言 21.1编写目的 21.2背景 21.3定义 21.4参考资料 22任务概述 22.1目标 22.2用户的特点 32.3假定和约束 33需求规定 33.1对功能的规定 33.2对性能的规定 33.2.1精度 33.2.2时间特性要求 33.2.3灵活性 43.3输人输出要求 43.4数据管理能力要求 43.5故障处理要求 43.6其他专门要求 54运行环境规定 54.1设备 54.2支持软件 54.3接口 54.4控制 5软件需求说明书的编写提示1引言1.1编写目的 说明编写这份软件需求说明书的目的,指出预期的读者。
1.2背景说明:待开发的软件系统的名称;本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;该软件系统同其他系统或其他机构的基本的相互来往关系。
1.3定义 列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
1.4参考资料 列出用得着的参考资料,如:本项目的经核准的计划任务书或合同、上级机关的批文;属于本项目的其他已发表的文件;本文件中各处引用的文件、资料、包括所要用到的软件开发标准。
列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
2任务概述2.1目标 叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。
解释被开发软件与其他有关软件之间的关系。
如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。
如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。
|2.2用户的特点 列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使甩频度。
这些是软件设计工作的重要约束2.3假定和约束 列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。
3需求规定 3.1对功能的规定 用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。
3.2对性能的规定3.2.1精度 说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。
3.2.2时间特性要求 说明对于该软件的时间特性要求,如对:响应时间;更新处理时间;数据的转换和传送时间;解题时间;等的要求。
3.2.3灵活性 说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,如:操作方式上的变化;运行环境的变化;同其他软件的接口的变化;精度和有效时限的变化;计划的变化或改进。
对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。
3.3输人输出要求 解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。
对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。
3.4数据管理能力要求 说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。
3.5故障处理要求 列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。
3.6其他专门要求 如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。
4运行环境规定4.1设备 列出运行该软件所需要的硬设备。
说明其中的新型设备及其专门功能,包括:处理器型号及内存容量;外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;输入及输出设备的型号和数量,联机或脱机;数据通信设备的型号和数量;功能键及其他专用硬件4.2支持软件 列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。
4.3接口 说明该软件同其他软件之间的接口、数据通信协议等。
4.4控制 说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。
开发一个软件什么是开发目标,什么是项目目标,什么是应用目标?
展开全部 我的理解: 应用目标是指使用的层面要达到什么效果,这个是属于比较用户层面的,它与什么技术,什么配置无关。
就是说站在用户的角度,这软件要达到什么使用的效果。
项目目标是指为了完成上边这个应用目标,有哪些要做的,每项要做的事要达到什么目标,以及整体上的工作目标。
开发目标是在项目目标之下的具体某个模块,或整体若干个模块的开发任务要达到什么效果,以及时间要求,这个就更具体了,也更细节了。
开发,是指以荒地、矿山、森林、水力等自然资源为对象进行劳动,以达到利用的目的;开拓;发现或发掘人才、技术等供利用。
发掘、收集、整理、选择文化资源等。
...
急需软件项目管理案例,要案例就行,软件项目的~
A公司是一家美资软件公司在华办事机构,其主要的目标是开拓中国市场、服务中国客户,做一些本地化和客户化的工作。
它的主要软件产品是由总部在硅谷的软件开发基地完成,然后由世界各地的分公司或办事机构进行客户化定制、二次开发和系统维护。
这些工作除了日常销售和系统核心维护之外,都是外包给本地的软件公司来做。
东方公司是A公司在中国的合作伙伴,主要负责软件的本地化和测试工作。
Bob先生是A公司中国地区的负责人,Henry则是刚刚加入A公司的负责此外包项目的项目经理。
东方公司是由William负责开发和管理工作,William本身是技术人员,并没有项目管理的经验。
当Henry接手这项工作后,发现东方公司的项目开发成本非常高,每人每天130美金,但客户的满意度较差,并且每次开发进度都要拖后,交付使用的版本也不尽如人意。
而且,东方公司和A公司硅谷开发总部缺乏必要的沟通 只能把问题反馈给Henry,由Henry再反馈给总部。
但由于Henry本身并不熟悉这个软件的开发工作,也造成了很多不必要的麻烦。
为此,Bob希望Henry和William用项目管理的方法对该项目进行管理和改进。
随后,Henry和William召开了一系列的会议 提出了新的做法。
首先,他们制定了详细的项目计划和进度计划;其次,成立了单独的测试小组,将软件的开发和测试分开;并且,在硅谷和东方公司之间建立了一个新的沟通渠道,一些软件问题可以与总部直接沟通;同时,还采用了里程碑管理。
六个月后,软件交付使用。
但是客户对这个版本还是不满意,认为还有很多问题。
为什么运用了项目管理的方法,这个项目还是没有得到改善? Henry和William又进行了反复探讨,发现主要有三个方面问题:1、软件本地化产生的问题并不多,但A公司提供的底层软件本身存在一些问题;2、软件的界面也存在一些问题,这是由于测试的项目不够详细引起的;3、开发的周期还是太短,没有时间完成一些项目的调试,所以新版本还是有许多的问题。
此时,Henry向Bob提出是否采用公开招标的方式,选择新的、实力更强的合作伙伴。
但Bob认为,与东方公司合作时间已经很长了,如果选择新的伙伴又需要较长的适应期,而且成本可能会更高。
于是,Henry向东方公司提出一些新的管理建议。
首先,他们采用大量的历史数据进行分析,制定出更详细的进度计划;其次,要求东方公司提供详细的开发文档和测试文档 做的工作没有任何文档,给其他工作带来了很多困难);第三,重新审核开发周期,对里程碑进行细化。
又过了六个月,新的版本完成了。
这一次,客户对它的评价比前两个版本高得多,基本上达到项目运行的要求。
但客户还是对项目进度提出了疑问,认为实时推出换代产品不需要那么长的时间。
较常见的做法。
在软件外包工程中,保证质量的进度是很难控制的。
对于项目经理来说需要一整套复杂的能力,比如制定计划、确定优先顺序、干系人的沟通、评价等,每一种能力都与项目的最终结果有直接或者间接的关系。
然而,国内的项目经理大多没有接受过正规训练,缺乏项目管理方面的专业知识的技巧,往往只是凭借以前的少量经验盲目去做,容易出现各种问题。
尤其是在管理外包项目时,缺乏足够的经验和技巧,往往造成进度不断推迟,而质量无法保证的情况。
在这个案例中,我们可以看到现在IT业内许多外包项目的影子。
在该案例中,东方公司没有专门的项目经理,是由技术人员William兼做管理。
这是国内软件公司经常会出现的问题。
最初,出现进度落后的问题时,A公司的Henry与东方公司的William讨论后决定采用项目管理中计划管理等手段,其中包括里程碑管理。
这是控制进度的较常见做法。
里程碑管理的引入 一般来说,在项目开始时,项目组成员都会对项目制定一个详细的计划。
通常情况下,在明确的工作说明书(SOW)和WBS的基础上制定具体的进度计划时,需要采用一些具体的技术。
像这种软件外包项目,最成熟的技术是里程碑管理。
里程碑一般是项目中完成阶段性工作的标志。
不同类型的项目,里程碑也不同。
比如,在开发项目中,可以将需求的最终确认、产品移交等关键任务作为项目的里程碑。
本案例中,Henry在接手项目后采用里程碑进行管理是很恰当的。
不过,要注意的是,每到一个里程碑处,应及时对前段工作进行小结,并对后续工作进行计划调整。
对于一些管理效果明显的领域,可以不必投入较多精力。
而对于下一步管理过程中可能会出现问题的领域,应给予较多的关注。
当然,在软件项目里,进度的变化是较常见的事情。
在本案例中,采用里程碑管理后仍没有达到客户的要求,进度依然拖后。
在这里,就需要考虑另一个因素-质量与进度的关系。
通常,项目管理的前提是保证在预算内、满足质量的前提下,按进度完成项目。
因此,可以看到,保证质量是前提。
那么,如何在满足质量的前提下管理进度呢?单纯从项目管理理论知识中并没有一种有效的方式。
具体步骤为: 首先,尽量利用历史数据。
在本案例中,Henry应该调查之前的项目情况,将会发现可以类比的情况,事先就可以知道需要管理质量和进度的关系。
其次,由...
项目目标的特点
项目的目标的特点:多目标性;优先性;层次性。
对一个项目而言,项目目标往往不是单一的,而是一个多目标系统,希望通过一个项目的实施,实现一系列的目标,满足多方面的需求。
但是很多时候不同目标之间存在着冲突,实施项目的过程就是多个目标协调的过程,由同一个层次目标的协调,也有不同层次总项目目标和子目标的协调,项目目标和组织战略的协调等。
项目目标基本表现为三方面,即时间、成本、技术性能(或质量标准)。
实施项目的目的就是充分利用可获得的资源,使得项目在一定时间内在一定的预算基础上,获得期望的技术成果。
然而这三个目标之间往往存在冲突。
例如,通常时间的缩短要以成本的提高为代价,而时间及成本的投入不足又会影响技术性能地实现,因此三者之间要进行一定的平衡。
项目是一个多目标的系统,不同目标在项目的不同阶段,根据不同需要,其重要性也不一样,例如在启动阶段,可能更关注技术性能,在实施阶段,主要关注成本,在验收阶段关注时间进度。
对于不同的项目,关注的重点也不一样,例如单纯的软件项目可能更关注与技术指标和软件质量。
当项目的三个基本目标发生冲突的时候,成功的项目管理者会采取适当的措施进行权衡,进行优选。
当然项目目标的冲突不仅限于三个基本目标,有时项目的总体目标体系之间也会存在协调问题,都需要项目管理者根据目标的优先性进行权衡和选择。
项目目标的层次性是指对项目目标的描述需要有一个从抽象到具体的层次结构。
即,一个项目目标既有最高层次的战略目标,也要由较低层次的具体目标。
通常明确定义的项目目标按照意义和内容表示为一个递阶层次结构,层次越低的目标描述的应该越清晰具体。
软件过程的关键过程
初始级 (Level1: Initial)(无关键过程区域) 可重复级 ■需求管理(Requirements Management) 需求管理的目的是建立和维护用户和软件项目间的关于该软件如何实现用户需求的共识。
需求管理包括:a. 建立和维护分配该给软件项目的需求的基线。
b.核查该软件项目的计划,活动和正在开发中的产品以确保它们是与分配该给软件项目的需求一致。
■软件项目计划(Software Project Planning) 软件计划的目的是建立合理的计划用作软件开发与软件项目控制。
软件计划包含:a.选择一种软件生命周期 b.建立一个开发工作的分解构造 c.对与开发工作有关的、重要的计划参数进行估计。
d.识别软件项目的风险。
e.作出必要的承诺。
f.制订软件开发工作的计划。
■软件项目控制(Software Project Control) 软件项目控制的目的是为软件项目的过程提供足够的能见度,从而可以在执行过程中发生对计划的严重偏离时能够采取适当的更正行动。
软件项目控制包括:a.追踪软件项目的进展与表现,从而与所作的估计、承诺和计划作出对比。
b.追踪软件项目的风险。
c.在发生对计划的严重偏离时采取更正行动。
■软件获取管理(Software Acuisition Management) 软件获取管理的目的是有效地管理从软件项目外部来源获取软件。
软件获取管理包括:a.找出软件项目对取得外部软件的需要。
b.识别和选择供应者。
c.与供应者达成协议。
d.处理与供应者之间的关系。
e.收取软件项目所需的外部软件。
f.安排对所取得的外部软件的维护与支持。
■软件质量保证(Software Quality Assurance) 软件质量确保的目的是为了客观地核实软件项目的实施行动与开发中的产品遵从于对应的需求、过程描述、标准及规程。
软件质量确保包括:a.客观地核实软件项目的实施行动与开发中的产品遵从于对应的需求、过程描述、标准及规程。
b.找出及记录所发现的不一致的问题。
c.向项目成员与经理提供反馈。
d.确保那些不符的问题得到处理。
■软件组配管理(SoftwareConfiguration Management) 软件结构配置管理(SCM)的目的是贯穿软件生命周期,建立和维持软件项目的产品完整性。
软件结构配置管理包括:a.确定开发中的软件产品在某一特定时刻的结构配置。
b.控制结构配置的组份的变更。
c.从结构配置库中去制作开发的软件产品。
d.贯穿软件生命周期,维持维软件产品基线的完整性。
定义级 ■企业对过程的重视(Organization Process Focus) 企业对过程的重视的目的是建立和维护对企业的软件过程的理解和协调企业的件工程过程的改进活动。
企业对过程的重视包括:a.评估企业和项目的软件过程。
b.建立起一个计划去改进软件过程。
c.对建立、维护、改进和使用整个企业内共有的软件过程的活动进行协调。
■企业过程定义(Organization Process Definition) 企业过程定义的目的是建立与维护一套可用的软件过程资源去改进整个企业的程过程效果及为企业的积累性的长期收益提供一个坚实的基础。
企业过程定义所建立的软件过程资源包括:a.一套企业的标准软件工程过程。
b.对每一种经审核批准用于工程项目的软件生命周期模型的描述。
c.关于如何剪裁企业标准的软件过程以适应具体项目需要的原则和指导方针。
d.企业的软件测量结果数据库。
e.企业的与软件过程有关的文件资料库。
■企业的培训方案(Organization Training Program) 企业的培训计划的目的是增进工作人员的技能和知识,使他们能实质地和高效地担当其软件角色。
企业的培训计划包含:a.找出什么是企业的软件培训需要。
b.取得与提供所需的培训。
■集成化的软件管理(Integrated Software Management) 集成软件管理的目的是把软件工程与管理集成为一个连贯涵接的、详细定义了、基于企业标准软件过程而剪裁出来的软件过程。
集成软件管理包括:a.使用企业的软件过程财富,并对之作出贡献。
b.基于企业标准软件过程而剪裁出详细定义了的软件过程。
c.积极主动地使用这个定义了的软件过程。
d.积极主动地对软件的风险进行管理。
■软件产品工程(Software product Engineering) 软件产品工程的目的是始终如一地执行明确定义了的、集成了所有软件项目的术活动的工程过程,去实质地和高效率地制造正确的、稳定的软件开发产品。
软件产品工程包含:a.按照项目的软件过程,执行工程的各项任务去规定,设计,制品满足其产品技术需求。
■项目间的协调(Project Interface Coordination) 项目界面协调的目的是确保软件工程人员主动地与企业内的其他功能部门交流协调和合作,以便更好地满足客户的需求。
这些功能部门包括技术的功能(例如,系统测试),支持功能(例如,记录),和组上的功能(例如,培训和合同)。
项目界面协调牵涉到经埋与员工,其内容包含:a. 与项目内其他功能部门一道处理系统要求,计划,目标,困难问题和风险。
b. 确定与维持对其他涉及项目的功能部门的承诺。
c. 辨明、跟踪和解决项目内功能间配合的行动与问题。
■交换审核(Peer Reviews) 交互审核的目的是尽早地和有效地从开发中的软件产品中除去缺陷。
一个重要的必然结果是对软件过程和开发中的软件产品有一个更好的理解,从能够预防缺陷产生...
互相伤害啊-