海归网首页   海归宣言   导航   博客   广告位价格  
海归论坛首页 会员列表 
收 藏 夹 
论坛帮助 
登录 | 登录并检查站内短信 | 个人设置 论坛首页 |  排行榜  |  在线私聊 |  专题 | 版规 | 搜索  | RSS  | 注册 | 活动日历
主题: 编译:软件项目管理(节选)
回复主题   printer-friendly view    海归论坛首页 -> 海归商务           焦点讨论 | 精华区 | 嘉宾沙龙 | 白领丽人沙龙
  阅读上一个主题 :: 阅读下一个主题
作者 编译:软件项目管理(节选)   
benfangd
[博客]
[个人文集]




头衔: 海归准将

头衔: 海归准将
声望: 学员

加入时间: 2004/11/05
文章: 656
来自: USA
海归分: 188561





文章标题: 编译:软件项目管理(节选) (807 reads)      时间: 2005-7-15 周五, 04:31   

作者:benfangd海归商务 发贴, 来自【海归网】 http://www.haiguinet.com

一 软件生命周期

软件开发以下八个前后相接的阶段构成,这八个阶段也总称为软件开发生命周期:
1、 需求定义
2、 需求分析
3、 初步设计
4、 具体设计
5、 实现
6、 系统测试
7、 接受测试
8、维护和营运

每个阶段都有一些特定的活动,都有特定的产品。在每一个阶段结束之前,都应该有由预先制定的规则(退出规则)来检验。只有当满足了退出规则后,才能开始进入下个阶段。

在需求定义阶段,有经验的程序员要决定是否可以使用以前的软件模块,要衡量重用以前软件的优缺点。有设计出一个可以接受的结构出来。这些分析要记录下来,放在“系统和操作概念”文档中,并且在做“系统概念纵览”时要拿出来评估。

下面将各阶段作一个简单描述:

1、需求定义阶段。
定义需求的人需要从用户那里得到系统一级的要求。把需求写成文档。把草稿送给组里做软件设计的人手中。这些规格文件定义了数据怎么进入系统,数据怎么流出来,中间要经过哪些转化。

做软件设计的人要完成完整的“需求和规格”文档,这个阶段结束的标记是“系统概念纵览”,在这项活动中,项目组要对“需求和规格”进行评估。


2、需求分析阶段。
在“系统概念纵览”之后,对可行性和需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。

需求分析完成时,开发人员准备总结性的“需求分析报告”,作为初步设计的基础。这个阶段最后,要做一个“软件规格通览”,这时,开发人员阐述他们的分析,供项目经理和分析人员评估。

3.初步设计阶段。
在这一阶段,开发组根据设计能够满足需求的系统结构,根据要求,设计相应的子系统,在各种可采用的方案中,选出最优的,定义所有子系统的内部和外部接口。定义高层的函数和对象。
开发组准备“预设计报告”,其中应包括系统的高层设计。这个阶段结束的标记是做一次“预设计纵览”。

4.具体设计阶段。
在这个阶段,开发人员把前一个阶段的设计深化,详细到单元一级。

单元指的是逻辑上是一个整体的多条程序语句的集合,一个可以单独运行的程序,或者一个库函数,都可以看成是一个单元。
他们通过细化,定义下列条目:
1、基于功能、或者基于对象的设计图
2、所有用户输入,或者系统输出的描述。比如屏幕输出,打印机输出,制表机输出,等等
3、操作过程
4、每个单元的功能和过程描述
5、所有单元之间的内部接口描述

这些内容都应该放在“详细设计文档”中。在这个阶段最后,要做一个“关键设计纵览”。


5.实现阶段。
此阶段是将软件设计的结果转换成计算机可运行的程序代码。包含编码、单元测试和集成等任务。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。

开发组要准备“系统测试计划”,“用户指南”的草案。

当所有编码都经过同僚浏览、测试并集成到系统中后,这个阶段才算完成。

6.系统测试阶段。
在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划,严格按照测试计划进行测试,以减少测试的随意性。

7.接受测试阶段
在这个阶段,系统需要由独立的测试小组来测试,独立小组的测试可以确保系统满足用户的原始要求。

8.维护和营运阶段

在这个阶段,系统成了维护和营运小组的责任。这个阶段的活动,与软件的用途很有关系。

软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。


二 开发软件项目成功的九点应做的事

1、制定和遵守软件开发计划。在项目的开始, 预备好项目的计划书,其中包含其结构和职能划分, 并且选择软件开发的方法,所有与标准程序不一致的地方,要提供清楚的文本说明,制定项目的预估完成时间及其理由。确定什么是中间产品和成品,以及产品完成日期,验收标准, 建立查看进度的机制,辨认风险以及准备后备计划。
把计划作为"活" 文件来维护和使用。不断更新项目估计、风险、方法以及里程碑类的事件。把当前的软件开发计划提供给各队员。周期性的检查队员是否遵守该计划。

2、给项目人员一定权力。人是项目的最重要的资源。允许成员对项目全力贡献。对队员清楚地分配责任,给他们讲解目标,请队员务必了解开发方法和标准。对于与标准软件开发方法不同之处,要向队员解释。

3、把官僚工作减少到最小。把文档和会议减少到最少。过份的会议和文挡工作只能延缓项目进程,而不会增加价值。不要因为通讯不畅而增加更多会议和管理,更多的会议,加上更多的文档,再加上更多的管理,并不等于更大的成功。

4、建立软件基础要求。尽早稳定要求和规格。把所有待定项目详细地罗列出来,并且根据其大小、费用、和规划、以及优先权进行分类。分配适当的人员到待定项目中,随时检查他们的进展以确保这些待定项目能够得到及时解决。对于每一个项目的变化,要及时估计其影响和费用的变化,并记录下来。

5、周期性拍项目的快照, 确定当前项目的状况,如果必要。要重新做计划。把项目的进展、产品, 和处理措施与项目当初的计划相比。并且把本项目与以前做过的类似项目相比。当管理团队有重大分歧时,也要修改计划,根据项目的目标和局限性, 修改雇用的职员, 项目的日程表,规模。需要减少的规模时,不要犹豫。当项目不要犹豫参量口授。当项目极大超出所能完成任务的极限时,停止所有项目活动,确定项目的真实状态, 辨认问题范围。在恢复原计划之前,先看看有什么通融措施,或者准备好应急措施。

6、重新预估系统的规模、职员的努力程度, 项目的每日进度。随着项目的深入,我们得知更多的信息,对问题的大小和复杂度的估计,会有所改变, 而且开发小组人员也可能有变动。当问题出现时,不要坚持维护原来的估计。
在软件开发周期的每一个阶段,都会有新情况出现,要根据新的情况改进对项目的估算,也可以更有效地做计划。
听任新情况的出现而不重新做评估,是错误的。概括来说, 每个月都应该重新评估系统的规模和进度。

7、软件开发分几个阶段。在从一个阶段过渡到另一个阶段时,可能会耗费额外的时间。在每个新阶段的前几个星期、和准备开始下个阶段之前,要回顾总结。让小组成员在每个阶段开始之前,接受一定的训练, 并且为他们制定中间目标。对发展计划的所有变动都要作清楚说明。让资深程序员完成当前阶段的任务, 让组中初级成员先开始下一阶段的工作。
8、 促进团队精神。一个项目的成员,可能来自不同的部门,甚至不同的公司。最大限度地找出大家的共同点,尽量淡化大家的不同点。明确各个人的在团队中的角色, 但同时也要清楚地提供一个共同的整体目标。尽量作一些横向训练。召开全体会议,让大家对全局有个认识。要求大家遵循同样规则,随时通报在项目一级和团队一级的进度。一起克服困难,一起庆祝成功。

9、项目开始时,不要用太多的人。通常让几个资深的成员开始做一个项目。他们也成为项目经理,一开始就确定做项目的方法, 制定优先权和组织工作, 建立合理的进度表, 以及准备软件开发计划。在吸收资浅人员时,把计划告知他们。

三 开发软件项目成功的八点不应做的事

1、 不要允许队员进行以无纪律的方式做事。开发可靠, 优质软件在低成本不是创造性的艺术; 这是一套使用事先定义的原则和方法的实践和技术。请每个组员了解方法并把它应用到项目中,给他们提供一定的训练。

2、 不要制定不合情理的目标。制定不切实际的目标比比没有目标还要糟糕。同样,不合情理的目标有时得到不可能的承诺,也会影响团队士气。目标合理,对于复杂的要求,增设中间目标和进度表。一个小的成功会带来后面更多的成功。

3、不要在没有预估影响和得到适当认同下就实施变动。估计各种变动的费用以及对质量和进度的影响, 既使项目可能容许变化,也要给少量变化计算时间。根据预算和进程表设置优先权。提出和选择变动的人,要将变动过一遍,提供变化的依据,不要正式实施,等到变动被正式实施以后在实施。

4、 不要画蛇添足 。只做要求做的。经常有这种情况,开发人员觉得加一点功能,会稍做一些变化,会把系统做得更好。这些小的变化,慢慢累积起来,也需要不少时间, 可能影响进度。另外, 偏离要求的变化会不满足客户需要。

5、不要过多用人,从一个很小的有资深人员组成的小团队开始。但是, 如果一个项目详尽的分析和要求,需要提供足够的人手。在项目早期,只有必要条件分析和设计报告等软产品, 这时候很难测量整个团队对整个项目的理解深度。所以,在项目开始,务必使用正确的人。

6、不要假设, 在项目过程中有延误会在后面被弥补回来。有些经理会乐观地认为,当一个项目接近尾声时,团队的效率会提高。一个团队的效率是不会持续提高的,特别在项目的最后阶段,很多工作是有顺序的。当完成项目有问题时,需要推迟项目完成日期,或者安排另外的资深成员来加入这个项目。
同样, 不要假设, 在后阶段的代码,不需要象前面的那样需要集成调试,这样的假定只会使得后面的代码质量变差。

7、不要为减少费用而放松标准。为了达到近期的最后期限而放松标准会降低半成品的质量,导致后面更多的工作量,甚至要重做。要让组中每个人都知道,计划比质量更重要。

8、不要假设,文献越多就能保证成功。在开发周期的每个阶段来始时,不一定要求有正式的文件。根据项目大小、来发周期, 和系统寿命来决定文挡的严格程度和数量。




作者:benfangd海归商务 发贴, 来自【海归网】 http://www.haiguinet.com









相关主题
八卦:归网站内短信(节选) 生活风情 2009-9-05 周六, 16:21
没事找事系列:iOS 5 软件更新内容(转帖) 海归茶馆 2011-10-15 周六, 03:35
[原创]班库猎头招聘嵌入式软件项目总监(会日语) 海归职场 2008-6-30 周一, 16:43
惠普全球软件服务中心(上海) 热招!Java(J2EE)软件支持工程师 海归职场 2007-1-04 周四, 16:45
花旗软件技术服务(上海)有限公司大连分公司 Citicorp Softwa... 海归职场 2006-7-11 周二, 18:26
中国某著名公司委托招聘:部件品管专家(SQE Manager) 海归职场 2006-6-30 周五, 09:14
中国某著名公司委托招聘:部件品管专家(SQE Manager) 海归职场 2006-6-30 周五, 09:10
2个软件工程经理(西安) 海归职场 2005-1-28 周五, 11:07

返回顶端
阅读会员资料 benfangd离线  发送站内短信
  • 编译:软件项目管理(节选) -- benfangd - (4361 Byte) 2005-7-15 周五, 04:31 (807 reads)
显示文章:     
回复主题   printer-friendly view    海归论坛首页 -> 海归商务           焦点讨论 | 精华区 | 嘉宾沙龙 | 白领丽人沙龙 所有的时间均为 北京时间


 
论坛转跳:   
不能在本论坛发表新主题, 不能回复主题, 不能编辑自己的文章, 不能删除自己的文章, 不能发表投票, 您 不可以 发表活动帖子在本论坛, 不能添加附件不能下载文件, 
   热门标签 更多...
   论坛精华荟萃 更多...
   博客热门文章 更多...


海归网二次开发,based on phpbb
Copyright © 2005-2024 Haiguinet.com. All rights reserved.