西安电子科技大学网络学院课程第三章需求分析与项目管理(主讲:刘志镜教授)2003年2月6日西安1第三章需求分析与项目管理软件需求分析有5方面的工作问题识别(1)确定对目标系统的综合要求,即软件的需求,包括功能需求、性能需求、环境需求、可靠性需求、安全保密需求、用户的需求、资源使用需求、软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标。(2)建立分析所需要的主要的通信途径,以保证能顺利的对问题进行分析。2第三章需求分析与项目管理2. 评价和综合(Evaluation and Synthesis)细化所有的软件功能,找出系统各元素之间的联系,接口特性和设计上的限制,分析他们是否满足功能需求。最终合成系统的解决方案,给出目标系统的详细逻辑模型。常用的分析方法:(1)面向数据流的结构化分析方法(SA)(2)面向数据结构的Jackson方法(JSD)(3)面向对象的分析方法(OOA)以及用于建立动态模型的状态迁移图或Petri网31
第三章需求分析与项目管理3. 建模(Modeling)建立相关的数学模型4. 规格说明(Specification)建立确定的需求应得到清晰准确的描述5. 评审(Review)需求分析是软件工程的一个重要任务,它是系统层软件配置与软件设计间的桥梁,分析员要努力去做:z研究系统规格说明和项目计划(Project plan)软件工作是进行各种估算的基础。4第三章需求分析与项目管理z确保对问题的识别,必须为分析建立通信关系。分析员必须与用户和软件开发机构的管理和技术人员进行接触。项目管理员可作为协调员来保证通信渠道的畅通。分析员的目标是弄清用户已经理解的基本问题的元素。z评价和解释的综合是另一项重要工作分析员必须评价信息流和信息内容,定义和详细描述全部软件功能,熟悉影响系统时间前后关系的软件行为,建立系统界面的特征,以及解释设计限制。核心:“做什么”,而不是“怎样做”实际上,分析员必须较好地弄清数据流,控制流功能处理过程、行为操作和信息内容的情况下,建立系统模型。5第三章需求分析与项目管理z模型建立模型将作为软件设计的基础和编写软件规格说明的依据一般的说明,在需求分析阶段要写出详细的规格说明是不可能的。因为,用户对什么是正确的需求没有把握,开发人员对怎样正确的完成所要取得功能和性能也没把握,所以需求分析选择原型开发方法。理想状态:用户给出一份完整的软件需求分析规格说明,它实际上是由用户与开发人员共同完成的。1.需求分析文档(规格说明与用户手册)他是作为用户和开发人员进行评审的基础。2.需求评审它经常导致软件功能、性能、信息表达式、限制和确认准则的修改。项目计划也由此得到评价。62
第三章需求分析与项目管理分析员分析原有多种称谓:系统分析员,系统工程师,主系统设计师,程序员,分析员….其具备的条件如下:1.能掌握抽象概念(abstract concepts)并能把其整理为逻辑划分(logical divisions)以及根据每一个逻辑划分综合为解(solution)的能力。2.能从冲突(conflict)或混乱(confusions)中吸取恰当事实的能力。3.弄清用户环境的能力。4.能把硬件和软件系统用于用户环境的能力5.能用较好的书面和口头形式进行通信的能力。6.“从树木见森林”的能力。即经常有New Idea)7第三章需求分析与项目管理软件需求必须用自顶而下的方式揭示主要功能、接口和信息,逐层的定义各下层的细节。建模(modeling)的目的1. 更好的了解系统信息、功能和行为,使分析更系统化2. 模型是评审的焦点,是确定系统完整性(completeness),一致性(consistency)和规格说明准确性(accuracy)的关键3.模型是设计的基础,能给设计人员一种软件基本表达式。它可映射成为实现的正文。模型是更好的理解要建立的实体。它主要说明系统必须作什麽,而不是怎麽作。通常用图形符号表示的方法来描述信息处理系统行为而其他特性则使用性质不同和公认的图符表示。模型的另一些部分可以是纯数字形式需求的描述可以用自然语言或专用语言。8第三章需求分析与项目管理划分(Partitioning)1.分层中,按垂直方向逐层细化2.分层中,按水平方向对功能进行分解。93
第三章需求分析与项目管理 规格说明它是一种过程的表示方式,共有如下几条原则:1.从实现中说出功能2.要求一个面向过程的系统规格说明语言。3.一个规格说明必须围绕整个系统,而软件只是它的一个组成部分4.一个规格说明必须围绕整个系统的操作环境5.一个规格说明必须是可操作的6.一个规格说明必须是容许它是不完整的和可扩展的7.一个规格说明必须是局部化的和松散耦合的z局部化是当信息改变时,只有一些简单的碎片(理想的)需要修改;z松散耦合结构是碎片可以方便的加入或取出,是结构自动调整。10第三章需求分析与项目管理11第三章需求分析与项目管理典型的符合国家标准GB856D-88规定的规格说明格式1.引言1.1编写说明1.2背景1.3定义1.4参考资料2.任务概述2.1目标2.2用户的特点2.3假定与约束3.需求规定3.1对功能的规定3.2对性能的规定124
第三章需求分析与项目管理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 控制13第三章需求分析与项目管理分析过程结构化分析方法(SA法)它是面向数据流自上而下逐步求精进行需求分析的方法。有可行性研究得出目标系统的高层数据流图。需求分析的目的之一是把数据流和存贮定义到元素级。下面给出需求分析的基本过程14第三章需求分析与项目管理数据流图的回溯沿数据流图从输出端往输入端回推,确定每个数据元素的来源,通常把分析过程中得到的有关数据元素的信息记录在数据字典中。把算法的简明描述记录在IPO图中(IPO——输入/处理/输出图)。用户复查系统设计师必须请用户进行仔细的复查。数据流图是帮助复查的极好工具,分析员借助数据流图以及数据字典和简明的算法描述向用户解释输入数据怎样变成输出数据的。根据用户意见及时修改补充数据流图,数据字典,IPO图。细化数据流图。细化数据流图按照功能对数据流进行更细致的划分。修改开发计划155
第三章需求分析与项目管理书写文档根据需求分析阶段的基本任务,完成下述四种文档资料①系统规格说明②数据要求③用户系统描述④修正开发计划 审查和复查概念模型和规范化软件系统的整个开发过程都必须考虑两方面的问题:“数据”及对数据的“处理”,为了把用户的数据要求清晰明确的表达出来,系统分析员要建立概念性的数据模型(也称信息模型)它也是一种面向问题的数据模型,是按用户的观点来对数据和信息建模。采用的方法是:实体---联系方法(Entity—Relationship Approach)即ER模型。16第三章需求分析与项目管理模型实体ER 联系属性①实体是可相互区分的事物:例如职工、学生、课程、教师②联系是事物间的联系:教师与课之间“教”的联系,学生与课之间“学”的联系此联系有3类:一对一(1:1)例如部门与经理;一对N(1:N)某教师上多门课;多对多(M:N)一个学生学多门课,而每门课有多各学生上。③属性属性是实体或联系所具有的性质,通常一个实体由若干个属性来刻画。如:学生实体有姓名、性别、系、年级。教师-----职称、职务联系也可能有属性。例如:学生“学”某门课程取得的成绩。请参见P44 图 某学校教学管理ER图17第三章需求分析与项目管理范式(Normal Forms)用范式定义消除数据冗余的程度。第一范式(1NF)数据冗余程度最大。第五范式(5NF)数据冗余程度最小。1.范式级别越高,存贮同样数据就需要分解成更多张表。2.随着范式级别的提高,数据的存储结构与基于问题域的结构间的匹配程度也随之下降。因此,在需求变化时数据的稳定性越差。3.范式级别提高则需要访问的表增多,性能(速度)将下降。从实用角度看,在大多数场合选用第三种范式都比较恰当。请参见教材P45页给出了第一‾第三范式的定义下面我们给出一个范式的例子,供大家理解186
第三章需求分析与项目管理19第三章需求分析与项目管理20第三章需求分析与项目管理图形工具在描绘复杂的关系时,图形比文字叙述优越的多、直观。下面介绍三中图形工具1.方框图层次方框图采用树形结构的一系列多层次的矩形框来描绘数据的层次结构。随着结构的细化,层次方框图对数据结构也描绘的越来越详细。该模式非常适合于需求分析阶段的需要。请参见教材P46页,图.Warnier图Warnier是法国计算机科学家,是他提出的一种信息层次结构的图形工具。用Wariner图可表明信息的逻辑组织。他可以指出一类信息量是重复出现的,也可以表示特定信息在某类信息中是有条件的出现,因为重复和条件约束是说明软件处理过程的基础,极容易将Warnier图转变成软件设计的工具。请参见教材P46页,图 是Warnier 图的一个例子。217
第三章需求分析与项目管理3.IPO图IPO 输入/处理/输出图简称。是IBM公司发展完善的一种图形工具。他能够方便的描绘输入数据、对数据的处理和数据输出之间的关系。它的基本形式是左边框中列出有关输入数据,中间框内列出主要的处理,右边框内列出产生的输出数据,处理框内列出处理的次序暗示了执行的顺序,但这些基本符号还不足以精确描述执行处理的详细情况。粗大箭头清楚的指出数据通信的情况。请参见教材P47,图 , 给出了IPO 图的例子22第三章需求分析与项目管理验证软件需求从几方面验证软件需求的正确性一般来说,一应该从四个方面进行验证:z一致性:所有需求必须一致z完整性:需求必须是完整的,规格说明书应包括用户需要的每个功能或性能z现实性:制定的需求应该是用现有硬件技术和软件技术,基本上是可以实现的。z有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。23第三章需求分析与项目管理 验证软件需求的方法(请参见教材P48)248
第三章需求分析与项目管理结构化分析方法结构化分析(Structured Analysis,SA)由美国YOURDON公司提出。采用自顶向下、逐层进行功能分解的系统分析方法来定义系统的需求。适用于分析大型的数据处理系统。方法的特点:利用数据流图(Data Flow Diagram,DFD)来帮助理解问题,对问题进行分析。一般工具:DFD、数据字典、结构化英语、判定表、判定树等。25第三章需求分析与项目管理功能分析工具:DFD、DD、结构化英语、判定表和判定树。行为分析工具:状态迁移图、Petri网等。数据分析工具:ER图或者EER(扩展ER)图。SA主要针对数据处理领域,因此,系统分析的侧重点在于功能分析和数据分析,而行为分析使用得较少。26第三章需求分析与项目管理结构化分析方法的一些弊病:1.基于功能分析和数据分析,将功能和数据分离,与人类现实世界环境不一样,和人的自然思维也就不一致了。2.以功能为主,数据只是被动的信息载体。当系统行为发生变化时,系统维护非常困难。中不涉及系统的控制信息,因此,SA不适合于分析以控制信息为主的系统需求。279
第三章需求分析与项目管理面向对象分析方法面向对象分析不是从功能上进行系统分解,而是从系统的组成上来进行分解。利用类和对象作为基本构造单元,以更接近人类思维的方式建立问题域模型。面向对象思想的一些基本性质:抽象(继承)性、封装(信息隐藏)性、多态性、滞后联编等。28第三章需求分析与项目管理面向对象分析的一般思路:1.进行需求获取,建立系统问题域模型(domain model)。2.从问题域中抽取对象,发现对象之间的各种关系(聚集、概括、关联),建立对象模型。3.从一些重要的活动场景的描述中发现对象间的协作关系,了解对象的责任。并针对重要的对象建立状态模型。4.表达静态建模和动态建模的结果。29第三章需求分析与项目管理需求分析方法的比较1.结构化分析方法以系统的功能分析为主,而功能是易变的;面向对象分析方法以组成系统的对象分析为主,而对象是比较稳定的。2.结构化分析方法主要针对数据处理领域,而面向对象分析方法同样适用于以控制为主的系统。3.面向对象分析具有更好的扩展性,因为对象的结构和关系相对于系统的功能而言更稳定,功能的变化通过更新对象的操作加以适应。3010
第三章需求分析与项目管理 项目管理概述项目管理是第二次世界大战后期发展起来的重大新管理技术之一。虽然在此之前项目管理已广泛应用于许多事业领域,如工程建设项目和新产品开发,但直到第二次世界大战期间以及战后,它作为管理技术复杂的活动,或需要多学科协作的活动的一种特殊工具的价值,才完全被认识,其结果使项目管理成为一种相对来说较新的管理方法,得到迅速发展和不断完善。31第三章需求分析与项目管理项目管理主要是从开始和生产大型、高费用、进度要求严的复杂系统的需要中发展起来的。美国在60年代只有航空、航天、国防和建筑工业才愿意采用项目管理。70年代项目管理在新产品开发领域中扩展到了复杂性略低、变化迅速、环境比较稳定的中型企业中。到70年代后期和80年代,愈来愈多的中小企业也开始注目项目管理,将其灵活地运用于企业活动的管理中,项目管理技术及其方法本身也在此过程中逐步发展和完善。到80年代,项目管理已经被公认为是一种有生命力并能实现复杂的企业目标的良好方法。32第三章需求分析与项目管理中印软件只差一步:项目管理印度软件业近5年的年均增长率达56%。印度大软件公司的项目按合同完成率在95%以上,而麦肯锡公司不久前的一项调查表明,全球软件开发项目中只有16%能按计划完成。全球通过CMM-5认证的52家软件企业中,印度就占了42家。在班加罗尔、诺伊达软件园区的Infosys、TCS、Wipro三家印度最大的软件企业。印度软件企业发展出乎意料,他们最突出的特点有几个:第一、是市场客户大。印度软件企业瞄准全球重要的北美市场、欧洲市场,拥有一批像美国通用、波音那样的著名大客户。美国通用公司前CEO韦尔奇甚至表示: 你不可能发现比他们更理想的合作伙伴。3311
第三章需求分析与项目管理第二、是企业规模大。印度目前有软件公司7500家,从业人员41万,其中5000人以上的公司16家,1万人以上的公司6家,印度软件企业的上百家分支机构分布于欧美国家。我们考察的Wipro公司,其年产值近7亿美元,股市市值达60多亿美元。第三、是发展速度快。一些大软件公司,在人均产值近5万美元、公司近万人规模的基础上仍能保持年均40%到70%的增长速度。印度软件业近5年的年均增长率达56%。34第三章需求分析与项目管理第四、是管理能力强。其软件项目按合同完成率高达96%以上,Wipro达到了%。他们对时间、质量、成本的控制能力的确非常强。此前我们研究印度软件业的发展,大都讲印度人有语言优势、人才优势、成本优势,还有产业定位准确、国际市场机遇把握准确、政府大力支持等等。其实最重要的则是印度软件企业极强的管理能力、极强的项目管理和项目控制能力。印度软件企业之所以能够走向国际市场,其真正的杀手锏就是强大的项目管理能力,以及与此相配套的规范的质量保证体系。印度大软件公司的项目按合同完成率在95%以上,而麦肯锡公司不久前的一项调查表明,全球软件开发项目中只有16%能按计划完成。中创软件是国内较早实施项目管理的软件企业,其按计划完成率也不过70%左右。35第三章需求分析与项目管理一、项目以及项目管理。什么叫项目?项目一种一次性的工作,它应当在规定的时间内,由为此专门组织起来的人员来完成;它应有一个明确的预期目标;还要有明确的可利用的资源范围,它需要运用多种学科的知识来解决问题;没有或很少有以往的经验可以借鉴。项目可以是建造一栋大楼,一座工厂,或一座大水坝,也可以是解决某个研究课题,例如研制一种新药,设计、制造一种新型设备或产品,如一种新型计算机。这些都是一次性的,都要求在一定的期限内完成,不得超过一定的费用,并有一定的性能要求等。所以,有人说项目是新企业、新产品、新工程、新系统和新技术的总称。3612
第三章需求分析与项目管理由此可见,在各种不同的项目中,项目内容可以说是千差万别的。但项目本身有其共同的特点,这些特点可以概括如下:1.项目由多个部分组成,跨越多个组织,因此需要多方合作才能完成;2.通常是为了追求一种新产物才组织项目;3.可利用资源预先要有明确的预算;4.可利用资源一经约定,不再接受其他支援;5.有严格的时间界限,并公之于众;6.项目的构成人员来自不同专业的不同职能组织,项目结束后原则上仍回原职能组织中;7.项目的产物其保全或扩展通常由项目参加者以外的人员进行。37第三章需求分析与项目管理二、项目管理及其特点与项目的概念相对应,项目管理可以说是在一个确定的时间范围内,为了完成一个既定的目标,并通过特殊形式的临时性组织运行机制,通过有效的计划、组织、领导与控制,充分利用既定有限资源的一种系统管理方法。项目管理具有以下基本特点:1、项目管理是一项复杂的工作。项目管理一般由多个部分组成,工作跨越多个组织,需要运用多种学科的知识来解决问题;项目工作通常没有或很少有以往的经验可以借鉴,执行中有许多未知因素,每个因素又常常带有不确定性;还需要将具有不同经历、来自不同组织的人员有机地组织在一个临时性的组织内,在技术性能、成本、进度等较为严格的约束条件下实现项目目标等等。38第三章需求分析与项目管理2、项目管理具有创造性由于项目具有一次性的特点,因而既要承担风险又必须发挥创造性。这也是与一般重复性管理的主要区别。项目的创造性依赖于科学技术的发展和支持,而近代科学技术的发展有两个明显的特点:一是继承积累性,体现在人类可以沿用前人的经验,继承前人的知识、经验和成果。在此基础上向前发展;二是综合性,即要解决复杂的项目,往往必须依靠和综合多种学科的成果,将多种技术结合起来,才能实现科学技术的飞跃或更快的发展。因此,在项目管理的前期构思中,要十分重视科学技术情报工作和信息的组织管理,这是产生新构思和解决问题的首要途径。3913
第三章需求分析与项目管理创新总是带有探索性的,会有效高的失败概率。有时为了加快进度和提高成功的概率,需要有多个试验方案并进。例如在新产品、新技术开发项目中,为了提高其质量和水平,希望新构思越多越好,然后再严格的审查、筛选和淘汰,以确保优良性能或质量。而筛选淘汰下来的方案也并不完全是没用的,它们可以成为企业内部的技术储备,这种储备越多,企业越能应付外界条件的变化和具有应变能力。“科学探索是一件十分辛苦的工作,如果我们能够探索到新的想法,哪怕是一点点,可能就是一种创新的初级阶段。”刘志镜40第三章需求分析与项目管理3、项目有其寿命周期。项目管理的本质是计划和控制一次性的工作,在规定期限内达到预定目标。一旦目标满足,项目就失去其存在的意义而解体。因此项目具有一种可预知的寿命周期。项目在其寿命周期中,通常有一个较明确的阶段顺序。这些阶段可通过任务的类型来加以区分,或通过关键的决策点来加以区分。根据项目内容的不同,阶段的划分和定义也有所区别。但一般认为项目的每个阶段应涉及管理上的不同特点并提出需完成的不同任务。41第三章需求分析与项目管理项目管理需要集权领导和建立专门的项目组织。项目的复杂性随其范围不同变化很大。项目愈大愈复杂,其所包括或涉及的学科、技术种类也愈多。项目进行过程中可能出现的各种问题多半是贯穿于各组织部门的,它们要求这些不同的部门作出迅速而且相互关联、相互依存的反应。但传统的职能组织不能尽快与横向协调的需求相配合,因此需要建立围绕专一任务进行决策的机制和相应的专门组织。这样的组织不受现存组织的任何约束,由各种不同专业、来自不同部门的专业人员构成。因此,复杂而包含多种学科的项目,大都以矩阵方式来组织,这是一种着眼于取得项目和职能组织形式两者的好处的组织方式。4214
第三章需求分析与项目管理项目负责人(或称项目经理)在项目管理中起着非常重要的作用。项目管理的主要原理之一是把一个时间有限和预算有限的事业委托给一个人,即项目负责人,他有权独立进行计划、资源分配、指挥和控制。项目负责人的位置是由特殊需要形成的,因为他行使着大部分传统职能组织以外的职能。项目负责人必须能够了解、利用和管理项目的技术逻辑方面的复杂性,必须能够综合各种不同专业观点来考虑问题。但只有这些技术知识和专业知识仍是不够的,成功的管理还取决于预测和控制人的行为的能力。因此项目负责人还必须通过人的因素来熟练地运用技术因素,以达到其项目目标。也就是说项目负责人必须使他的组织成员成为一支真正的队伍,一个工作配合默契、具有积极性和责任心的高效率群体。43第三章需求分析与项目管理 项目管理中的项目组织结构一、项目组织基本理论项目组织是保证工程项目正常实施的组织保证体系,就项目这种一次性任务而言,项目组织建设包括从组织设计、组织运行、组织更新到组织终结这样一个生命周期。项目管理要在有限的时间、空间和预算范围内将大量物资、设备和人力组织在一起,按计划实施项目目标,必须建立合理的项目组织。1、项目组织特征(1)组织目标单一,工作内容庞杂(2)项目组织是一个临时性机构(3)项目组织应精干高效(4)项目经理是项目组织的关键44第三章需求分析与项目管理2、项目组织设置原则.org(1)有效幅度管理原则(2)权责对等原则(3)才职相称原则(4)命令统一原则(5)效果与效率原则(6)适时重组原则3、项目组织机构的类型(1)工程指挥部型:从1964年以来,我国大型工程项目主要采取这种形式,目前仍然被广泛采用。优点是对项目实施过程中所出现的相互间协作配合问题的解决具有决策快、效率高的特点;缺点是该形式是行政管理的方式,许多方面不能符合市场经济的规律。现代项目管理中所采用的工程指挥部型项目组织,无论是形式上还是内容上都比早期的工程指挥部型有了很大的改进。4515
第三章需求分析与项目管理(2)职能组织型:该结构呈金字塔形,高层管理者位于金字塔的顶部,中层和底层管理者则沿着塔身向下分布。公司的经营活动按照设计、生产、营销和财务等职能划分成部门;一个项目可以作为公司中某个职能部门的一部分,这个部门应该是对项目的实施最有帮助或最有可能使项目成功的部门,例如开发一个新产品项目可以被安排在技术部门的下面,直接由技术部门经理负责。(3)项目组织型:在这种组织形式中,每个项目就如同一个微型公司那样运作,项目组的成员来自不同的部门,完成每个项目所需的资源完全分配给这个项目,专门为该项目服务。(4)矩阵组织型:现代大型项目中应用最广泛的新型组织形式,它是职能组织型和项目组织型的结合,将职能组织型的纵向优势和项目组织型的横向优势有效结合起来。一个矩阵组织型由垂直的职能部门和水平的不同项目组结合而成一个矩阵,把集权和分权结合起来,从而加强了各职能部门同各项目之间的协作关系。46第三章需求分析与项目管理4、项目组织结构的变化系列(1)项目组织结构的变化系列职能组织型、项目组织型和矩阵组织型可以表示为一个变化系列,基于工作人员在自己部门的工作时间和在项目组中的工作时间之比,列出上图所示组织结构变化系列图。(2)常用项目组织特点47第三章需求分析与项目管理5、影响项目组织选型的因素4816
第三章需求分析与项目管理6、项目组的组建(1)项目组的组成成员1)项目经理:包括业主项目经理、设计单位项目经理和实施单位项目经理。2)项目工程师:主管产品的设计开发,负责产品的功能分析、规格说明、图纸、费用估算、质量、工程变更及技术文档。3)制造工程师:为项目工程师的设计成果组织有效的生产过程,包括设计和安装相应的生产设备、安排生产进度以及其他的生产活动。4)现场经理:负责在产品交付用户使用时的现场支持、包括安装调试等。49第三章需求分析与项目管理5)合同管理员:负责项目的所有正式书面文件,对用户变更、提问、投诉、法律方面、成本及其他授权给项目的关于合同方面的事务保持跟踪。6)项目管理员;负责记录项目的日常收支情况,包括成本变化、劳务费用、日常用品及设备状况等;还要定期做一些报表,并与项目经理和公司领导保持密切联系。7)支持服务经理:负责产品的服务支持,与分包商的联系、信息处理等。50第三章需求分析与项目管理(1)建立项目组沟通计划:通常可以采用会议、书面情况报告、电子邮件或其混合形式来加强项目组成员间的信息沟通和相互交流。(2)项目启动会议:目的是召集项目有关人员开会,介绍项目目标、实施策略及计划安排,宣布有关项目管理中的有关规程;出席人员包括项目发起人、客户代表、公司主观领导、有关职能部门经理和全体项目组成员,该会议的结束标志着项目正式启动。5117
第三章需求分析与项目管理52第三章需求分析与项目管理项目的组织结构是实施项目管理的一个基本手段,也是开展项目管理工作的基础。针对具体的项目情况和实施要求选择合适的组织结构至关重要,随着当前项目管理形式的发展,项目组织结构理论可能会更趋丰富,新的适合项目管理需求的结构形式必将出现,这也是大家的期待。53第三章需求分析与项目管理5418
第三章需求分析与项目管理55第三章需求分析与项目管理项目成功的12个关键原则1、项目经理必须关注项目成功的三个标准简单地说,一是准时;二是预算控制在既定的范围内;三是质量得到经理和用户们的赞许。项目经理必须保证项目小组的每一位成员都能对照上面三个标准来进行工作。2、任何事都应当先规划再执行就项目管理而言,很多专家和实践人员都同意这样一个观点:需要项目经理投入的最重要的一件事就是规划。只有详细而系统的由项目小组成员参与的规划才是项目成功的唯一基础。当现实的世界出现了一种不适于计划生存的环境时,项目经理应制定一个新的计划来反映环境的变化。规划、规划、再规划就是项目经理的一种生活方式。56第三章需求分析与项目管理3、项目经理必须以自己的实际行动向项目小组成员传递一种紧迫感由于项目在时间、资源和经费上都是有限的,项目最终必须完成。但项目小组成员大多有自己的爱好,项目经理应让项目小组成员始终关注项目的目标和截止期限。例如,可以定期检查,可以召开例会,可以制作一些提醒的标志置于项目的场所。4、成功的项目应使用一种可以度量且被证实的项目生命周期标准的信息系统开发模型可以保证专业标准和成功的经验能够融入项目计划。这类模型不仅可以保证质量,还可以使重复劳动降到最低程度。因此,当遇到时间和预算压力需要削减项目时,项目经理应确定一种最佳的项目生命周期。5719
第三章需求分析与项目管理5、所有项目目标和项目活动必须生动形象地得以交流和沟通项目经理和项目小组在项目开始时就应当形象化地描述项目的最终目标,以确保与项目有关的每一个人都能记住。项目成本的各个细节都应当清楚、明确、毫不含糊,并确保每个人对此都达成了一致的意见。6、采用渐进的方式逐步实现目标如果试图同时完成所有的项目目标,只会造成重复劳动,既浪费时间又浪费钱。俗话说,一口吃不成个胖子。项目目标只能一点一点地去实现,并且每实现一个目标就进行一次评估,确保整个项目能得以控制。58第三章需求分析与项目管理7、项目应得到明确的许可,并由投资方签字实施在实现项目目标的过程中获得明确的许可是非常重要的。应将投资方的签字批准视为项目的一个出发点。道理很简单:任何有权拒绝或有权修改项目目标的人都应当在项目启动时审查和批准这些项目目标。8、要想获得项目成功必须对项目目标进行透彻的分析研究表明,如果按照众所周知记录在案的业务需求来设计项目的目标,则该项目多半会成功。所以,项目经理应当坚持这样一个原则,即在组织机构启动项目之前,就应当为该项目在业务需求中找到充分的依据。59第三章需求分析与项目管理9、项目经理应当责权对等项目经理应当对项目的结果负责,这一点并不过分。但与此相对应,项目经理也应被授予足够的权利以承担相应的责任。在某些时候,权利显得特别重要,如获取或协调资源,要求得到有关的中小企业的配合,做相应的对项目成功有价值的决策等等。10、项目投资方和用户应当主动介入,不能被动地坐享其成多数项目投资方和用户都能正确地要求和行使批准(全部或部分)项目目标的权力。但伴随这个权力的是相应的责任——主动地介入项目的各个阶段。例如,在项目早期要帮助确定项目目标;在项目进行中,要对完成的阶段性目标进行评估,以确保项目能顺利进行。项目投资方应帮助项目经理去访问有关的中小企业和目标顾客的成员,并帮助项目经理获得必要的文件资料。6020
第三章需求分析与项目管理11、项目的实施应当采用市场运作机制在多数情况下,项目经理应将自己看成是卖主,以督促自己完成投资方和用户交付的任务。项目计划一旦批准项目经理应当定期提醒项目小组成员该项目必须满足的业务需求是什么,以及该怎样工作才能满足这些业务需求。12、项目经理应当获得项目小组成员的最佳人选最佳人选是指受过相应的技能培训,有经验,素质高。对于项目来说,获得最佳人选往往能弥补时间、经费或其它方面的不足。项目经理应当为这些最佳的项目成员创造良好的工作环境,如帮助他们免受外部干扰,帮助他们获得必要的工具和条件以发挥他们的才能。人员选择十分重要!!61第三章需求分析与项目管理《程序员特征的描述与分析》软件程序员俗称“搞软件的”,他们有许多明显的特征,要进行管理就必须有所了解.(1)表面现象:白天睡觉,晚上干活、吃青春饭、……..。(2)实际上程序员真的是与普通的人太不相同了,他们一贯而行的特点已经成为人们的笑柄:迂腐、吝啬、书生气,然而这些是表面上容易分辩的差异。62第三章需求分析与项目管理有一位敏锐的观察家珀·布劳森(Po Bronson)总结了高级软件工程人员的七种习惯,尽管有些夸张,但还是比较准确的:1、在他们的自私中体现着慷慨——不愿意直接提提供源代码,却可以告诉你思路或不完善的思路;2、目光短浅使得他们想象力丰富——有贪图小便宜之嫌;3、他们不但会搬起石头砸雇主的脚,也会砸自己的脚;4、他们会极力维护自己不修边幅的形象;5、他们会把未坏的东西修到坏了为止——修改软件时,事与愿违;6、“不是我回答的不对,是你的问题提得不对”——强调别人的错误,不愿怀疑自己;7、无过便是功;6321
第三章需求分析与项目管理《程序员的心理学》1、程序员用可控制性来换取简单性控制的代价是付出更多的努力和不断的增加的复杂性,普通的人们只愿意付出适度的努力去换取适度的控制;但程序员却更愿意也更有能力去掌握那些极具复杂性的东西,去熟悉和管理那些由许多人机交互因素组成的系统,并让系统运转自如,这正是对程序员有吸引力的工作之一。例如飞机驾驶仓的仪表盘上布满了仪表、旋钮和控制杆,而程序员却对这种令人沮丧的复杂性乐此不疲,而普通人则更愿意以乘客身份去坐飞机。64第三章需求分析与项目管理又例如,Windows 98中的“搜寻文件”可以让我们得到对整过程的控制,可以指定搜索区域、类型等一些参数,从程序员的观点看,这是相当方便的,若再多花些精力和脑筋,可以搜索更快速、更有效,而真正的用户并不会认为这有多美妙。因为他们必须按搜索的区域、文件类型、文件内容、文件名来搜索。普通人,他们宁愿牺牲一些电脑运行时间,也不愿意去子解搜索功能是如何工作的。2、程序员只想求知而不要成功程序员通常会被一种不可抗拒的求知欲所驱使,他想知道所有事情是如何动作的。相反,普通人有一种强烈的成功愿望,当然程序员也想成功,但有时他们为了搞清楚一些事而宁愿付出失败的代价65第三章需求分析与项目管理3、程序员注重可能性而不是合理性程序员有着象数学家一样的抽象思维,所以毫不奇怪他们为什么总是以有别于常人的方式来看待问题。人们把一些事件发生可能性以概率进行统计,程序员把这种百万分之一的可能性称为“边缘状况”。但如果准备工作没有做好,小概率的事件一但发生,程序便会崩溃。业余爱好者与专业程序员之间最大区别就是为这种边缘状况所做的充足的准备。这种为可能性作准备的狂热,会难以避免也降低程序的合理性,其结果是在界面中夹杂着大量很少用到或根本用不到的控制参数,用户们最普遍的抱怨就是软件太难用。因为界面中有太多的搞不明白的选择项。6622
第三章需求分析与项目管理4、程序员像捣蛋鬼捣蛋鬼这个词包含了不成熟、自私、好斗、四肢发达、头脑简单等多重含义。在竞争中,他们对比他还瘦弱的同仁同样不会表示同情,而对那些比他强壮的男孩,会在私下里(因为他没有能力公开)嘲笑他们的蠢笨。他的态度同样是粗野而且简单的,“胜者王侯败者贼”。在较量中赢不了他的人会被他抛弃,他丝毫不会顾及那些失败的感情,也不会考虑他们是否还有其他方面的才能。他们价值观是以头脑的聪明度为基础的,他对那些不是捣蛋鬼的态度是:如果我能在智力方面战胜你,那我就比你强。67第三章需求分析与项目管理尽管像编程这样的个人运动竞争是无形的,千万别被他们表面上的斯文所迷惑,程序员都是一个好斗的人,而且真正好的程序员对待竞争应该像每一个参加奥运会的运动员一样地狂热。在当今的信息社会里,能够以智慧来征服别人的人掌握着巨大的权力。在人们看来,用高深莫测的软件来控制别人,或者在自动取款机前嘲笑那么绞尽脑汁却取不出现金的人们,都是可以接受的行为。68第三章需求分析与项目管理《编程文化》的探索编程在一定程度上来说是非常有吸引力的。软件工程师用特殊的语言在一个特定的文化氛围中相互交流。下面将讲述编程文化是如何影响软件产品的特性的。一、编程的文化不同的人和他所在的文化中的思维方式和价值是不同的。举例:一对美国夫妇退休回到墨西哥雇一位美国建筑师来设计他们理想的房子,然后又雇一位墨西哥建筑商来建,并给了蓝图,蓝图上标明该房子顶楼有两个窗户,每个窗户的厂家和牌号都标明。房主发现实际的墙上是两个来自于不同厂家,外观尺寸与蓝图都不一样。当质问墨西哥建筑商时,他耸耸肩说:“这些是窗户呀,图上说这面墙上有窗户呀,难道有什么不对吗?”。6923
第三章需求分析与项目管理美国用户心中构想的房屋建筑师心中构想的房屋70第三章需求分析与项目管理房屋主人与建筑师来自同一背景文化具有相同的价值观,而建筑商却不是。评价问题的角度的视角也不同。显然他买这些窗户既省钱又省事,这在他的生活中是头等重要的。美国人认为蓝图就是完整而准确的要求,而墨西哥人却认为蓝图仅是个建议而不是必须按它来做。《重复使用代码》软件的一个显著特点是:任何一个程序都可以被一个简单的命令调用。而被调用的程序的长度是无限的。换句话说,只要是现成的程序,要使用它只要一个简单命令就行。因此每一段已经编好的代码对程序员而言是一份天赐的礼物。他们只要直接插入这段代码到他的程序中就行,根本不用管它的内部是如何运转的。程序员不仅对使用代码很吝啬,而且不愿花时间去思考或测试。他们认为代码复用比其他的编程技术重要的多。71第三章需求分析与项目管理著名的UNIX大师艾里克·雷曼说:好的程序员知道怎么去写程序,而一个优秀的程序员知道怎么去重复使用程序。造成这种现象的原因:第一、并不是因为用户界面的设计者们都想作成这个样子,而是因为这些工作已经由其他程序员用别人的预算完成了。第二,代码复用的一个突出功能是,程序员常常采纳一些来源不可靠的代码。一些没有经验的程序员往往会为脑海中闪现的想法傻干一场,而一旦完成以后,这段代码将成为很多后续工作的基础,因为代码复用风气太重了。7224
第三章需求分析与项目管理以Windows为例,其中内部的核心处理程序是由真正有经验的程序员编写的,然而给外部开发人员提供的第一个用户交互的应用程序样本却是由许多在微软公司的夏季实习生或青少年爱好者完成的。互联网也是一样,业余爱好者们埋头苦干做出的第一个网站被后面的人克隆了,然后他们的网站又被不断的克隆。第三,由于程序员已经非常依赖代码复用,有时即使没有可以复用的代码,他们也会复制一些现成的思路,这对于趋向保守的程序员而言是很自然的。73第三章需求分析与项目管理《共同的文化》共同的心理功能造就了软件开发文化,这就是为什么照相机、跑车、自动柜员机和巡洋舰这些形形色色的不同产品,全都以一种类似的电脑方式运行的原因。这种文化的一个特点就是对技术技能的尊重。在电脑早期,那些受训练的程序员对那种自我封闭的设计工作还是胜利的。随着电脑进入消费市场,程序员依然延续这一传统。负责人会想:“为什么我要给那么多交互设计人员工资,而这些工作是由我的程序员来做的话则是免费的。”74第三章需求分析与项目管理问题问得好,但前提是错误的。他不可能从程序员那里获得真正的免费的交互设计。他所得到的界面只适用于它的作者:那些经特殊培训,拥有非凡个性和才能的人。对技术技能的尊重还带来了另一个后果,大多数人会认为编程比设计更具有技术性,其典型结论是:在开发过程中编程总是先于设计而产生的。其结果就是强行让用户去适用技术。相反,如果界面设计先于编程,那技术就可以与用户目标相适应了。7525
第三章需求分析与项目管理Microsoft Project 2000 简介Microsoft Project 2000是一个功能强大而灵活的工具,设计用来帮助你管理项目。计划和紧密跟踪所有的任务--使用Microsoft Project Central,这个基于Web的Microsoft Project 2000伴侣,来和你的团队和上级部门交换项目信息。76第三章需求分析与项目管理创建项目计划Microsoft Project 2000将根据你提供的有关任务、资源和代价方面的信息,帮你创建项目计划。自定义大纲代码是一个功能强大的新特点,允许你根据自己公司的工作细目分类结构创建项目大纲结构。Deadline Dates功能可以根据你提供的信息设置任务期限。使用任务日历可以根据相关因素,例如计划冲突或者设备停工,来创建项目计划。77第三章需求分析与项目管理管理项目一旦创建好一个项目,你就可以很容易地使用Microsoft Project 2000中的高级管理特性察看和分析项目进度。自定义域允许你输入项目特定的数据;视图和表可以精确地显示你想要察看的信息;过滤器和组则可以帮助你区分优先次序,把注意力集中在最重要的问题上。7826
第三章需求分析与项目管理网络图的增强允许你定制网络图的显示,并可以察看特定信息而不需要任何附加工具。交换项目信息需要和你的团队或者其他风险承担者一起共享项目相关的信息吗?只需要把你的计划保存成.html文件并出版到Web服务器上,那么任何人就都可以使用浏览器来察看它。79第三章需求分析与项目管理Microsoft Project Central 是一个基于Web的程序,它作为Microsoft Project 2000的伴侣可以被安装在公司的Intranet或Internet上,来获取关于项目的最新信息。它可以在团队成员执行任务的时候同步升级计划,并给予了每个人关于项目状态的空前的可见性。80第三章需求分析与项目管理Microsoft Project 2000把项目信息和Microsoft Outlook集成起来,并可以和Outlook任务列表共享项目相关的任务,从而给用户提供了统一的界面。8127
第三章需求分析与项目管理在工作时获取帮助在需要时可以很容易地获得帮助。选择使用以下的资源来最大限度地利用你的时间。教学:初次使用者可以通过示范教学文件来学习。项目图:这个基本的以目标为中心的工具覆盖了项目管理周期中的各个典型阶段。82第三章需求分析与项目管理83第三章需求分析与项目管理布置作业:第2章作业(1)教材P36 页上:第一题(2)教材P36 页上:第二题,并增加下面内容:“给出相应的数据流图和数据字典”。(3)试画出微软公司出品的WORD软件相应的主要部分的数据流图。第3章作业教材P52 页上:第一题,并需要修改内容是:将“针对习题二第2 题至第5 题所描述的四个系统,分别…..”,更改为“针对习题二第2 题所描述的系统,分别…..”。8428
本章结束!8529