软件开发实践计划 软件开发项目计划书 - 电脑 - 【南平电脑网】_南平电脑维修_南平笔记本电脑维修_监控安装_市区上门维修
公司动态

软件开发实践计划 软件开发项目计划书

摘要:软件开发项目计划的目的与作用是什么呢? 项目计划目的与作用 根据软件能力成熟度模型集成CMMI1 1,软件开发项目计划的目的是:建立和维护定义项目活动的计划。项目计划属于CMMI的第2级,其过程域包括...

发布日期:2020-08-21

软件开发实践计划

软件开发项目计划的目的与作用是什么呢?

项目计划目的与作用 根据软件能力成熟度模型集成CMMI1.1,软件开发项目计划的目的是:建立和维护定义项目活动的计划。

项目计划属于CMMI的第2级,其过程域包括开发项目计划、与相关人员交流、获取对计划的承诺、维护计划;项目计划为实施和监控项目活动提供了基线。

项目计划的第一个目的是建立估计值,即建立和维护项目计划因素的估计值。

为此应该确定项目范围,即通过建立高层工作分解结构来估计项目范围;监理工作产品和任务属性的规模与复杂度;确定项目的生命周期阶段、以此来限定计划范围;基于估算的原理进行对工作产品和任务的项目工作量和成本的估算。

项目计划的第二个目的是开发项目计划文档,即文档化项目计划,维护项目计划,并以此作为项目管理的基线。

为此应该建立和维护项目的预算和进度表;要识别和分析项目风险;确定如何采集和管理项目数据;确定实施计划所需要的各种资源;确定项目实施所必需的知识和技能;确定各项任务或活动的承担人;编写项目计划文档。

项目计划的第三个目的是获得并维持所有项目干系人对项目的承诺。

为此应当评审影响项目的所有计划使所有项目干系人理解项目承诺;必要时调整项目计划以适应有效的和已经估计的资源;获取所有项目干系人特别是项目任务或活动的承担人对项目计划的承诺。

项目计划是项目实施的基础。

通过所有项目干系人认可的项目计划形成文件,便于本企业高层领导、相关管理部门粮道、相关参与部门领导、项目组成员、客户、协作单位、分包单位等等所有项目干系人之间的交流沟通。

项目计划是项目组为实现项目目标而科学地预测并确定项目生命周期的行动方案。

任何项目计划都是为了解决三个问题:一是确定项目目标,二是确定为了达成项目目标的各项行动的顺序和时间,三是确定项目中每项行动所需要的资源。

所以制定项目计划就是在明确项目目标的基础上,确定项目行动方案,分配相关资源的项目综合管理过程,就是通过对历史的、当前的、项目或组织内部的和项目或组织外部的有关信息进行分析和评价,对项目生命周期过程中可能的发展进行评估、预测,对新项目实施工作进行的各项活动做出尽可能周密的安排,最终形成一个所有项目干系人认可的、约定项目各项活动、作为项目实施工作基础的文件—项目计划。

项目计划围绕项目目标的完成系统地确定项目的任务、安排任务进度、编制完成任务所需的资源预算等,从而保证项目能够在合理的工期内,用尽可能低的成本达到尽可能高的项目质量要求。

在制定项目计划过程中必须明确五个基本问题:做什么、如何做、何时做、谁去做、需要多少资源。

简单地说,项目计划可以起到如下作用: 1、 确定完成项目目标所需的各项任务范围,落实责任,制定各项任务的时间表,明确各项任务所需的人力、物力、财力; 2、 确定项目的工作规范,遵循的标准,成为项目实施的依据和指南; 3、 明确项目组各成员及其工作责任范围以及相应的职权;使项目组成员明确自己的工作目标、工作方法、工作途径、工作期限要求; 4、 保证项目进行过程中项目组成员和项目干系人之间的交流、沟通与协作,使得项目各项工作协调一致,增加客户满意度; 5、 为项目的跟踪控制提供基础。

6、 项目计划在项目中起到承上启下的作用,计划批准后应当作为项目的工作指南。

软件项目开发计划是什么?

.1编写目的【阐明编写开发计划的目的,指出读者对象。

】 1.2项目背景【可包括:a.项目的委托单位、开发单位和主管部门.b.该软件系统与其他系统的关系。

】 1.3定义【列出本档中用到的专门术语的定义和缩写词的原文。

】 1.4参考资料【可包括:a.项目经核准的计划任务书、合同或上级机关的批文;b.文档所引用的资料、规范等;列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源。

】 2.项目概述 2.1工作内容【简要说明项目的各项主要工作,介绍所开发软件的功能、性能等。

若不编写可行性研究报告,则应在本节给出较详细的介绍。

】 2.2条件与限制 【阐明为完成项目应具备的条件、开发单位已具备的条件以及尚需创造的条件。

必要时还应说明用户及分合同承包者承担的工作、完成期限及其他条件与限制。

】 2.3产品 2.3.1程序【列出应交付的程序名称、使用的语言及存储形式。

】 2.3.2文档【列出应交付的文档。

】 2.4运行环境【应包括硬件环境、软件环境。

】 2.5服务【阐明开发单位可向用户提供的服务。

如人员培训、安装、保修、维护和其他运行支持。

】 2.6验收标准 3.实施计划 3.1任务分解【任务的划分及各项任务的负责人。

】 3.2进度【按阶段完成的项目,用图表说明开始时间、完成时间。

】 3.3预算 3.4关键问题【说明可能影响项目的关键问题,如设备条件、技术难点或其他风险因素,并说明对策。

】 4.人员组织及分工 5.交付期限 6.专题计划要点 【如测试计划、质量保证计划、配置管理计划、人员培训计划、系统安装计划等。

软件开发项目的进度安排方式有哪些?

软件开发项目的进度安排可以有两种考虑方式。

第一种,系统最终交付使用的日期已经确定,软件开发机构必须在合同规定的时间内安排;第二种,只确定了大致的年限,最后交付使用的日期由软件开发机构根据具体情况确定。

后一种考虑能够对软件开发任务进行细致的分析;能够最好地利用资源,合理地分配工作量,但实际工作中常常遇到第一种情况,问题是软件管理人员如何在规定的期限内分配人力和安排进度。

进度安排的好坏往往影响整个项目的按期完成和用户的使用,如不能按期完成,用户就会不满,而且需向用户赔偿损失。

如作为商品,将会失去市场竞争力。

进度安排的精确性有时比成本估算更重要。

在商品生产的社会中,某种商品的损失往往还可以通过其他商品或分期偿还来承担。

而进度拖延的损失是无法弥补的。

下面就软件开发项目进度安排中的几个问题进行讨论。

1.软件工作的特殊性 制定软件进度与其他工程没有很大的区别,因此使用一般的通用技术和工具即可。

但重点要强调的是软件产品是逻辑产品,这与其他工程不同。

因此当几个人共同完成某项任务时,人与人之间就有一个思想交流问题,称之为通信关系。

通信是要付出代价的,不只是要花时间,同时由于通信中的疏忽常常会使错误增加。

如一个组有4个软件工程师,两两之间进行通信联系,通信路径有6条;对6个软件工程师,则通信路径增加至14条。

因此所付的代价就必然会增加,所以工作组的人员不宜太多,一般3—5人为好,目前国外一般采用主程序员组的制度。

另一点要强调的是软件工作切忌中间临时加人,必须在安排进度时就考虑周到。

2.各阶段工作量的分配 估算出总的工作量以后,就需要一个可以进行各阶段工作量分配的模型。

某一阶段工作量所占的百分比必须根据经验数据确定。

这里要再一次强调,在开发过程中保存的记录将增加经验数据库存,而且将改善今后估算的准确性。

R.S.Pessman提出一种称作40-20-40的工作量分配规则,即前期工作(计划、需求分析、概要设计和详细设计阶段)和后期工作(测试阶段)各占40%,编码阶段占20%。

应该强调要重视前期和后期工作。

前期工作容易被忽视,主要原因是:管理人员认为不开始编码工作就算没有进行,他们不了解前期工作的重要性;技术人员往往也急于编码,认为写出代码任务就算完成了。

后期工作也容易被忽视,认为编码出来就完事了,对测试工作要占这么大的工作量没有思想准备。

所以要制定好进度计划,就要研究软件工作的规律,前期基础工作没做好,将会给后期工作带来很大困难,往往使工程进度一拖再拖,难以坚持,有的不得不中途夭折。

3.制定开发进度 需要涉及的下一个未知量是开发进度。

进度安排是软件计划工作中一项最困难的任务,计划人员要把可用资源与项目工作量协调好;要考虑各项任务之间的相互依赖关系,并且尽可能地平行进行;预见可能出现问题和项目的“细脖子”,并提出处理意见;以及规定进度,评审和应交付的文档。

假设用作变量的开发时间TD按线性变化,而且已经得到了总的开发工作量估算值ED,要求在规定的时间TD内完成,在项目中最好有参加工作的人员平均值M,即M=EDTD,这将是一个非常有用的数据。

遗憾的是在上述算式中,项目的工作量和开发时间不能作为独立的变量。

Books定律描述了这种现象的最极端情况:为误期的软件项目增加人员将会使其进度更慢。

来源:www.examda.com (四) 软件开发组织 有多少个软件开发机构,几乎也就有多少人员的组织机构。

不管这些组织机构是好或坏,一般是不可能轻易改变的。

尽管组织机构的改变不属于软件计划人员的职责范围内的事。

不过,在一个新的软件项目中直接涉及人员的组织问题却是可以,也应该在软件计划阶段加以认真考虑的。

软件开发为什么需要最佳实践呢?

与许多古老的职业相比,人们从事软件开发的时间并不长。

但就在这短短的几十年中,人们根据软件行业的经验,并从其他行业(如建筑业、制造业)借鉴,总结了不少最佳实践。

特别是最近十年以来,这些最佳实践似乎分裂成为两大阵营:重型方法学和敏捷方法学。

这两大阵营的拥护者都不少,并且领军人物都是德高望重。

软件项目的目标 在讨论这些最佳实践之前,先明确一下软件项目的目标,因为所有的最佳实践都是为实现项目目标服务的。

Alistai Cockun在他的著作《敏捷软件开发》中指出,软件项目的目标有两个,取得当前项目的成功并进行积累,为后续的项目做准备。

关于第一个目标,一个比较麻烦的事情就是如何定义成功。

一般来说,大家认为在预算范围和进度计划之内交付客户想要的产品,项目就算是成功的。

但这样的理解似乎过于初级。

Dewys Lasdon曾指出,我们的工作不是用限定的费用及时地给客户他想要的东西,而是给他从未梦想过的东西当他得到的时候,他意识到这就是他一直想要的东西。

&dquo如果你结合iPod取得的成功来看,就能很好地理解这段话的含义了。

[考试大提供] 关于第二个目标,主要有两层意思。

第一层意思是锻炼队伍。

在项目中,团队共同工作一段时间,进行了许多战术配合&dquo方面的练习,大家相互之间更有默契。

对于个人来说,通过具体的开发实践,学习了不少新知识,也积累了经验。

第二层意思是为后续项目提供积累。

后续项目可能是运维项目,也可能是产品的下一个版本,或其他项目。

不少项目开发工作对于后续项目有重要意义,如项目文档和回归测试套件等。

如果你曾接手过别人的项目,或者只是花时间读过别人的程序,就一定会对此深有感触。

顺便提一下,项目的第二个目标不一定是次要目标。

对于某些领航项目或概念验证项目来说,为后续项目提供经验积累就是项目的首要目标,也是项目成功的衡量标准之一。

RUP 根据IBM的官方说法,Rational Unified Pocess是一个灵活的软件开发流程平台。

借助它可配置的构架,RUP 使你能够只选择和部署项目的每个阶段需要的流程构件。

RUP 平台以业界公认的软件工程最佳经验为核心,它包含配置 RUP 以满足项目特定需求的工具。

从这种意义上说,RUP 是一个软件开发方法框架,以及一个公认的、灵活的、实用的流程平台,用于成功的软件项目。

RUP提出了六项最佳实践: 1. 迭代的开发软件 2. 需求管理 3. 使用基于构件的体系结构 4. 可视化软件建模 5. 验证软件质量 6. 控制软件变更 让我们来看看其中的需求管理。

一项调查(James Matin An Infomation Systems Manifesto,Pentice Hall,1984)表明56%的缺陷其实是在软件需求阶段被引入的。

而这其中的50%是由于需求文档编写有问题、不明确、不清晰、不正确导致的。

剩下的50%是由于需求的遗漏导致的。

更重要的是,许多需求缺陷直到很晚才被发现。

而缺陷发现得越晚,修复缺陷所需的代价就越大。

所以在传统软件工程方法中,非常重视需求工作,甚至称这部分工作为需求工程。

需求工程的主要出发点是减少需求中的缺陷,从而降低项目风险。

Joel Spolsky 指出:“首先,没有编写规格说明是软件项目中你所承担的一个最大的、不必要的风险。

”特别是在外包项目中,绝大多数客户都不会同意没有需求规格说明书的开发方式,因为这样做风险太大,实在不值得冒这个险。

需求工程的另一项重要使命是发现机会,即发现创新的产品,为用户提供更多价值的机会。

如果你草率对待需求工作,将丧失这种机会。

例如,在我们进行业务流程分析时,应该适当关注企业流程再造,业务管理创新,实现更多客户价值的机会。

只有这样,才能可能做出Dewys Lasdon所说的“客户从未梦想过的东西”。

需求工程中的一个重要方面是管理需求的可追踪性,即从项目的总体目标追踪到业务用例,再追踪到实现用例和具体需求,最后追踪到实现和测试的能力。

如果忽视了这个方面,项目的开发可能会偏离方向。

我们在写需求时,常常会用到一些文档模板,如需求规格说明书模板和用例模板。

某些模板非常全面、细致,以至于某些部分我们初看上去甚至觉得可以忽略掉。

但是当你打算忽略掉模板中的这些部分时,千万要小心,因为模板的主要作用之一就是降低遗漏需求的风险。

有一次一名项目经理打算在开发团队中引入用例模板,查找了一些资料之后,写了一个草稿让我复查一下。

我发现他的模板中没有用例的使用频度,问他时他说,觉得没有太大作用就裁掉了。

于是我告诉他,用例使用的频度对系统的设计和实现有很大的影响,这属于系统的非功能需求,不能省略。

如果你想进一步了解需求工程,推荐你读一下《掌握需求过程》这本书。

XP 在各种敏捷方法学中,极限编程(XP)是知名度最高的一种。

XP的主要实践有:Sit Togethe(坐在一起)、Whole Team(完整团队)、Infomative Wokspace(信息化工作场所)、 Enegized Wok(精力充沛地工作)、Pai Pogamming(结对编程)、Stoies(用户故事)、Weekly Cycle(每周开发循环)、Quately Cycle(每季度开发循环)、Slack(松弛计划)、Ten-Minute ...

项目开发计划与软件测试有哪些呢?

要适当文档化,"源代码就是设计"体现在业务流程细节上,大方面业务流程、特殊算法、产品功能规划、系统设计、开发计划与优先级等,一定要文档化;老是把这些东西保存在开发人员和测试人员的大脑里,是一个管理混乱的表现,随着人员流动,新人需要从代码和测试慢慢明白系统的各种业务流程,是极大的浪费资源。

要更加强调软件测试,特别是开发人员的单元测试。

考试大(www.Examda。

com) 很多时候,开发人员特别是JAVA开发人员,喜欢做出漂亮的WEB界面,然后告诉你完成了,当你细细一点按钮来测试功能,却发现这也不行,那也不行----典型的好看不好用。

靠测试人员来保证软件质量是正确的,所谓QA,但是中国软件公司不注重测试是一个难以改变的现实,小公司就更严重了,全职的测试人员比例太小了,所以想依靠测试组来保证系统质量在小公司是不怎么现实的。

软件开发计划制定中的几个问题是什么?

1.1 详细设计不彻底 详细设计的不彻底,导致开发计划制定后执行的空洞,从而无法真正实现计划的实现和监控,大多的情况是在不断的弥补,或者进度的追赶,从导致代码的质量无法保证,甚至亦无法保证功能的实现。

1.1.1 详细的设计的不足 很多开发人员在接到开发任务后,担心不能及时完成任务,在匆忙做完了概要设计(其实此时的概要设计可能根本不能满足需要),以没有时间为借口,直接进入到编码阶段,没有对软件系统进行更为详细的设计,从而导致了对开发中出现的问题没有做出相应的应对措施。

而且在出现问题后,对问题认识的不足(包括担心问题的出现会使自己的技能被别人否定等),和解决方法的缺乏,从而导致了问题的堆积和时间的流失,到最后使得项目的进度不得不发生了延迟。

众多公司的项目和产品中普遍存在这个问题。

1.1.2 详细设计应该达到的地步 详细设计应该能够达到一个这样的地步,比如,在一个模块所需要实现的功能基础上,对此模块再次进行的详细设计,以至不可再分,甚至可以细化到可以实现的某一个具体的函数、类、属性等之上。

而且不遗漏细节! 比如页面设计 可以以页面为单位进行详细设计,从而细化到每个页面大概需要实现的基本要素,包括多少个按钮、列表框、输入框等,以及每个页面中的功能点,包括需要连接的数据库等。

这样每个页面的具体时间就能准确的确定,并被执行。

且需要做出一个网页的设计图样,共项目评审使用。

比如图形制作可以以每幅图为单位进行详细设计,从而可以细化到每个可能需要实现的基本要素,包括道路等各项图形要素,以及功能点等。

这样每副图形制作的具体时间就能准确的确定,并被执行。

亦可以做评审使用。

1.1.3 重物的称量 试想,我们需要称量一个重物,如果没有磅秤,只有弹簧称,那么我们只能将此重物进行分割,方能知道此重物的重量,而且需要保证在分割的过程中没有损耗。

否则就需要进行一个定量的、适度的估算,比如百分比等,以弥补分割过程的损耗。

在这个比喻中,我们把重物看成是个项目,分割重物的人是项目经理或系统分析人员,称量的人则是实施开发的人员,分割过程则是项目开发过程。

如果在分割重物的人,没有具备分割的能力,重物的重量将会远远偏离其实际目标。

如果称量重物的人,没有具备称量的能力,重物的重量也会偏离其实际目标,只不过相对于分割重物的人的不称职,离目标可能会近些。

1.1.4 西瓜籽的计算 有时候我们开发项目的过程也想一个计算西瓜籽的过程。

看下面的过程,根据西瓜向阳一面多籽的特性,确立西瓜的中心线,然后将西瓜籽分解成阳面、阴面的两部分,再根据中心线与阳面、阴面的距离,将西瓜进行多次分块,直到我们能够较容易得数出西瓜中的西瓜籽。

这样我们可以对所有的西瓜块进行分类,这样就能够很快的得出西瓜籽的数量。

如果我们对西瓜的结构很是了解,那么即使有些误差,但也会相差无几。

在这里,西瓜是我们需要建立的系统,西瓜籽是我们所需要实现的功能,西瓜籽的数目则是我们的时间,对西瓜的分块和分类则是我们的进度安排。

而我们只有采用科学的方法,才能快捷的获得一个较为准确的项目进度计划。

急求计算机软件开发专业的社会实践报告,2000字以上!

(一)自我分析: 1)优点:喜欢挑战和让自己兴奋的事情,聪慧,许多事情都比较拿手,致力于自己才干和能力的增长;有很强的创造性和主动性,绝大多数是事业型的。

好奇心强,喜欢新鲜事物,关注事物的意义和发展的可能性。

通常把灵感看得比什么都重要,多才多艺,适应性强且知识渊博,很善于处理挑战性的问题。

善于快速抓住事物的本质,喜欢从新的角度和独到的方式思考问题,对问题经常有自己独到的见解。

机警而坦率,有杰出的分析能力,并且是优秀的策略家。

不喜欢条条框框的限制和因循守旧的工作方式,习惯便捷的问题解决方法。

喜欢自由的生活并善于发现其中的乐趣和变化;认为“计划赶不上变化”,并以实际行动证明大部分规定和规律都是有弹性,可伸缩的,通常会超出被认可和期望的限度。

善于理解,而非判断他人。

乐观,善于鼓舞他人,能用自己的热情感染他人。

2)可能的盲点: 总是充满热情的寻找新鲜事物,但行事缺少稳定的计划和流程,经常依靠临场发挥,可能因为忽视必要的准备工作,而草率地身陷其中。

注意力容易游移,对目标的韧性和坚持性不够,缺乏足够的耐心,有时不能贯彻始终。

一旦主要问题被解决了,就会转移到下一个目标,而不能坚持将一件事完完整整地结束。

非常注重创造力和革新,容易忽略简单、常规的方法和一些重要的细节,不愿遵守规则和计划。

建议多关注解决问题的常规方法。

通常同时展开多项任务与活动,不愿丢掉任何一种可能性,致力于寻找新的变化,可能使别人的计划和时间安排受到影响。

要好好考虑一下自己的行动给他人带来的影响,这有助使自己变得更可靠。

有天生的直觉和预知能力,会误认为知道了别人的想法。

应当认真倾听他人,避免表现的不耐烦。

(2).职业兴趣探索报告:职业兴趣前三项是企业型(8.0)、艺术型(8.0)、社会型(6.1)。

1)有明显的艺术趣味,喜欢和人打交道,对经营性活动很感兴趣,乐于施展自己的口才,喜欢去影响别人,喜欢创造性活动,性格外向、冒险、抱负心强。

2)在工作中,有热情,喜欢在工作自由展开想象,做事倾向于追求完美,但也追求新意;胆大,爱冒险,希望有独立主见;对过程和目的都有兴趣,但对教条的制度并不感兴趣,喜欢随机应变,往往根据环境变化而变化个人的策略,具有强烈的内心感受性和言语表达能力;喜欢出入公共社交场所,喜欢说服和劝导他人的活动。

3)适应的工作环境:有创造性、要求人际交往、有自由度而不过分约束的环境,能发挥个人智慧和支配性。

(3)学习风格探索报告:行动型(9.2,非常强烈的偏好)1)能从新体验、新问题、新机遇中学习,在以下活动中学习效果最佳:全神贯注于短时间、当时当地的活动,诸如商业游戏、竞赛型的团队任务等练习;能引人注目,如主持会议,主导讨论或进行陈述;思维活跃,适合尝试一下。

2)在以下活动中学习效果最差:听讲座,阅读,分析及解释杂乱的数据等。

(4)技能报告(最擅长的五项技能):人员管理 积极倾听 监测 时间管理 口头表达(5)职业价值观:崇尚独立,注重关系1)期望在工作中能够独立工作、独立决策,而且能够表现出自己的创新,发挥自己的责任感、自主性。

而且能够以自我监督的形式使自己的工作按照自己的计划顺利进行。

2)期望工作的内容是能够给予别人帮助,并希望在这样的职位上同事之间关系融洽,大家都有积极的道德观念和社会服务意识。

自我分析小结:一个人应该学会取长补短。

精力旺盛、热情、性情平和、乐于助人、忠诚、责任心强、富于创新精神、工作和生活井然有序是我的优点;可也存在着有时过于理想话,据个人价值观进行判断,容易做出草率的决定和对于批评比较脆弱的缺点。

我会不断的去完善自己(二)职业分析:人才素质测评报告给出了很多建议,结合相关书籍、老师和这次测评报告,我对影响职业选择的外部环境进行了系统分析,分析结果成为了职业定位考。

1.家庭环境分析:爸爸、妈妈和我组成了这三口之家,爷爷和奶奶不和我们一起住。

父亲是一名油漆工人,月收入2000;母亲是一个小型机械厂的普通工人,月收入1000。

家里并不富裕,父母一直给我以关爱和生活上的支持与鼓励!爸妈对我的期望就是将来能够像大鹏鸟一样展翅飞翔!2、学校环境分析:1)学校:我现在就读的南京交通职业技术学院是一所专科层次普通高等学校,隶属于江苏省交通厅。

学院设有汽车工程系、公路工程系、管理工程系、信息工程系、机电工程系、建筑工程系、人文社科系和体育部等“七系一部”。

学院实行毕业生“双证书”制,学院国家职业技能鉴定所为“江苏省职业技能鉴定基地”,连续多年被评为省优秀鉴定所。

多年来为交通行业及其相关产业培养了两万多名高素质高技能人才。

2005年,学院以优秀等次通过了教育部高职高专院校人才培养工作水平评估。

将在江苏省交通厅的正确领导努力把学院建设成国家示范性高职院校。

2)专业:我学习的专业是电子信息工程技术,该专业的目标是培养具有一定的电子信息技术基础理论知识;熟练掌握电子信息工程技术的应用、电子信息设备的维护技术和电子信息产品研发技术...

软件计划过程包括哪些步骤?

项目计划制定的原则 1、 目的性。

任何项目计划的制定应当围绕项目目标的实现展开。

制订计划的第一步就是必须分析目标、进而找出为了完成目标所要完成的所有任务。

2、 系统相关性。

项目计划由一系列子计划组成,如范围计划、人力资源计划、进度计划、资源计划、质量管理计划、风险管理计划等等。

各个子计划不是孤立存在的,彼此之间相对独立,又紧密相关,应当形成一个有机的整体。

构成项目计划的任何子计划的变化都会影响到其它子计划的制定和执行,进而影响到项目计划的正常实施。

3、 经济性。

项目不仅要有较高的效率,而且要有较高的效益,因此计划过程是对多种选择权衡、优化的过程。

考试大整理 4、 动态性。

由于项目环境一般处在变化之中,特别是软件开发先把棺木的多变性,经常使计划的实施偏离项目的基准计划,因此项目计划要随作环境和条件的变化不断调整和修改,以保证项目目标的完成。

如何防止项目计划多变,对出现的问题及时加以处理以保证进度按原计划实现,在一定的意义上说甚至是更为重要的。

防止项目计划多变,就要改进计划的编制工作,提高计划的质量,这首先要求项目经理和项目计划制定人员应当较好地掌握项目的环境条件,对各种条件进行深入的调查落实并做出有根据的预测,据以制定实施方案,适当留有余地,以使编制的项目计划切实而可行。

其次就是要使这种计划能够得到贯彻执行,因为再好的计划,如果不能认真执行,也不过是毫无意义的一纸空文。

根据各方面的经验,实行各种不同形式的责、权、利机制是保证计划实现的关键。

通过长期的软件开发实践,人们总结出了哪些模块设计的启发式规则

Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。

IEEE在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究 Fritz Bauer在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。

目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

《计算机科学技术百科全书》中的定义:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。

软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。

其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。

软件工程学的内容 软件工程学的主要内容是软件开发技术和软件工程管理. 软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。

软件工程基本原理 著名软件工程专家B.Boehm综合有关专家和学者的意见并总结了多年来开发软件的经验,于1983年在一篇论文中提出了软件工程的七条基本原理。

(1)用分阶段的生存周期计划进行严格的管理。

(2)坚持进行阶段评审。

(3)实行严格的产品控制。

(4)采用现代程序设计技术。

(5)软件工程结果应能清楚地审查。

(6)开发小组的人员应该少而精。

(7)承认不断改进软件工程实践的必要性。

B.Boehm指出,遵循前六条基本原理,能够实现软件的工程化生产;按照第七条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。

软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。

(1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。

正确性指软件产品达到预期功能的程度。

可用性指软件基本结构、实现及文档为用户可用的程度。

开销合宜是指软件开发、运行的整个开销满足用户要求的程度。

这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。

(2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。

软件工程过程主要包括开发过程、运作过程、维护过程。

它们覆盖了需求、设计、实现、确认以及维护等活动。

需求活动包括问题分析和需求分析。

问题分析获取需求定义,又称软件需求规约。

需求分析生成功能规约。

设计活动一般包括概要设计和详细设计。

概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。

详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。

实现活动把设计结果转换为可执行的程序代码。

确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。

维护活动包括使用过程中的扩充、修改与完善。

伴随以上过程,还有管理过程、支持过程、培训过程等。

(3)软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。

软件工程必须遵循什么原则 围绕工程设计、工程支持以及工程管理已提出了以下四条基本原则:(1)选取适宜的开发模型 该原则与系统设计有关。

在系统设计中,软件需求、硬件需求以及其它因素间是相互制约和影响的,经常需要权衡。

因此,必需认识需求定义的易变性,采用适当的开发模型,保证软件产品满足用户的要求。

(2)采用合适的设计方法 在软件设计中,通常需要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。

合适的设计方法有助于这些特征的实现,以达到软件工程的目标。

(3)提供高质量的工程支撑 工欲善其事,必先利其器。

在软件工程中,软件工具与环境对软件过程的支持颇为重要。

软件工程项目的质量与开销直接取决于对软件工程所提供的支撑质量和效用。

(4)重视软件工程的管理 软件工程的管理直接影响可用资源的有效利用,生产满足目标的软件产品以及提高软件组织的生产能力等问题。

因此,仅当软件过程予以有效管理时,才能实现有效的软件工程。

软件工程是指导计算机软件开发和维护的工程学科。

采用工程的概念、原理、 技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够 得到的最好的技术方法结合起来,这就是软件工程。