1项目经理级的分析员JinBojb21cn@zju.edu.cnCollegeofComputerScienceandTechnologyZhejiangUniversity2绪论•商业环境中,应该如何开发信息系统?•什么是系统开发生命周期?•什么是项目管理的原则?•项目管理中,系统分析员的角色和地位是什么?•项目经理级系统分析员的责任是什么?•遵循项目开发管理的原则,了解项目开发生命周期各阶段的活动,定义项目的作用域,预估并比较项目开发各方案的成本及预期收益,编制项目日程……是项目经理的重要工作内容3系统开发项目和SDLC–什么是项目:•项目“是为了实现一个独特目的(产品或服务)而进行的临时性任务”(PMBOK®Guide2000,p.4)–项目的重要属性主要有:目标性、相关性、周期性、独特性、约束性、不确定性、结果的不可逆转性4项目分类improving改善Contract契约Development发展Sourcefromenterprisestrategy企业策略Sourcefromcontract契约Sourcefromefficiency效率requirement需求5BigProject,ProjectandsubprojectBPP2P1SP2SP16项目管理的三项约束•Everyprojectisconstrainedindifferentwaysbyits–范围目标:Whatistheprojecttryingtoaccomplish?–进度目标:Howlongshouldittaketocomplete?–成本目标:Whatshoulditcost?•成功的项目管理就意味着同时实现这三个目标,并能够让发起人满意7项目管理的三项约束8项目管理的4个基本构成C=function(P,S,T)•C=Cost成本•P=Performance履行能力•S=Scope范围•T=Time进度STCP9项目的5个主要角色(Humphrey2000)•Teamleader•Developmentleader•Planningmgr.•Quality/processmgr.•Supportmgr.Project=event(cultural,engineering)Cultural:项目承担组织的企业文化10项目管理的主要行为•可行性研究–Investigatewhetheraprojectisworthdoing•E.g.economicevaluation•计划编制–Foralargeproject,outlineforwholeproject+detailedplanforthe1ststage.•项目实施–Design=thinkanddecideaboutpreciseformoftheproducts(e.g.externalappearanceofsoftware:-useri/f,-internalarchitecture.)可行性研究计划编制项目实施Isitworthdoing?Howdowedoit?Doit!Designimplement12什么是管理?•基本的管理包括下列行为:–Planning计划-decidingwhatistobedone–Organizing组织-makingarrangements–StaffingHR-selectingtherightpeopleforthejob–Directing指导-givinginstructions–Monitoring检视-checkingonprogress–Controlling控制-takingactiontoremedyhold-ups–Innovating创新-comingupwithnewsolutions–Representing反馈-liaisingwithusers,etc.13与其它流程之间的关系•可能会和配置管理、问题管理、变更管理、服务级别管理、可用性管理、能力管理等其它管理流程发生各种可能的关系•一旦发生关系,应该判断、评估其对事件管理流程的影响,应在确保服务质量、维护组织利益的前提下,处理好和其它流程之间的关系14项目管理涉及9大关键知识领域•Knowledgeareasdescribethekeycompetenciesthatprojectmanagersmustdevelop–4个和项目品质有关的核心知识领域(scope,time,cost,andquality)–4个有助于项目成功的辅助功能知识领域(humanresources,communication,risk,andprocurementmanagement)–1个实施整体功能的项目综合管理的知识领域(affectsandisaffectedbyalloftheotherknowledgeareas)•涵盖5个过程组–启动、计划、实施、控制、收尾15项目管理的框架16活动•要使系统开发项目取得成功,分析员必须有详尽的计划•成功的系统开发,很大程度上取决于有组织、有计划、有方法地完成一系列的活动和任务,最终获取一个可靠、强大、高效的信息系统17系统开发生命周期•任何新的信息系统的开发过程通常都会要求有三组重要的活动:分析活动、设计活动、实施活动•分析活动:全面了解商业的信息需求,其重点是商业需求•设计活动:定义一个新系统的体系结构和构造,以满足商业需求。–此时,分析员的工作重点就是要构思一个计算机解决方案•实施活动:实际建立、测试和安装信息系统•在信息系统的语境中,上述每一组活动就是一个阶段18Activitiesoftheprojectplanningphase.SDLC19什么是阶段?•阶段的属性–有期限–可检查–阶段入口、出口和终止点可以被用来完成阶段的管理评审20系统开发生命周期(SDLC)•因此,系统开发生命周期就是一个用来描述信息系统开发和维护工作不同阶段的框架计划分析设计实施支持ProjectPhase21系统开发生命周期(SDLC)的几个阶段•SDLC可以把任何类型的项目简单地组成几个阶段•通常,任何成功的大型开发项目都使用一整套有组织、完整的系统开发方法•SDLC的阶段划分法,使得其自身成为良好的系统开发方法•因为,作为一种方法论,SDLC提供了确保开发成功所需的结构、方法、控制和评审表体系•如果没有SDLC方法提供的结构和组织,项目往往会面临贻误工期、增加预算和最终沦为低质量系统的严重风险221.SDLC的计划阶段•主要目标是确定新系统的作用域、确保项目的可行性、制定项目进度表、分配项目资源并进行项目预算•计划阶段包括五个主要活动:–定义问题–确认项目的可行性–制定项目的进度–为项目分配资源–启动项目•所以,计划阶段就是SDLC的最初阶段,其目标是规划项目范围并制定项目计划•其中最主要的活动应该是准确定义商业问题和所需解决问题的范围•另一个要点就是确认项目是可行的•由于这个阶段的工作总是在系统实现前进行的,所以对分析员的要求较高232.SDLC的分析阶段•主要目标是明确新系统的商业需求和处理要求,并编档•分析的本质是一个发现的过程,因此推动其活动的关键就是发现和理解•分析阶段的主要活动有六个:–收集信息–确定系统需求–建立需求发现的原型–划分需求优先级–产生并评估可替换方案–与管理人员一起审查建议•收集信息被认为是分析阶段的一个基本部分。在这一活动中,分析员被要求应尽可能多地接触用户以了解问题域24SDLC的分析阶段•所谓“问题域”,是用户的商业领域,为此而正在开发一个系统•它需要研究用户的商业领域,并提出一个信息系统解决方案•通常需要分析员有职业能力通过观察完成商业观察的用户、访问调查和询问用户问题、阅读有关过程的已有文件、商业规则和工作职责、评审现有系统等,来获取有关问题域的信息•收集信息被认为是发现和了解的核心活动•信息收集之后,更多重要的工作是对刚刚获取的信息进行检查、分析和结构化,以便对新系统的要求作全面了解和明确25SDLC的分析阶段•接下来的一个重要活动是为用户检查创建部分新系统的原型•原型通常可以更好地帮助用户表达需求,也可以很好地帮助分析员得到更有价值的理解和启发•然后,是对获取的需求划分优先级,以确定需求的重要程度•最后,需要对分析阶段的工作结果进行总结编档,并选择一个方案推荐给高层决策者263.SDLC的设计阶段•设计阶段是利用分析阶段获得的信息开展工作,其目标是设计解决方案的系统•高层次的设计活动包括制定软件程序、数据库、用户界面和操作环境的体系结构•低层次的设计活动需要制定详细的算法和程序开发所需的数据结构•设计阶段包含七个主要的活动–设计并集成网络–设计应用程序结构–设计用户界面–设计系统界面–设计并集成数据库–设计细节的原型化–设计并集成系统控制27SDLC的设计阶段•设计阶段的各种设计活动往往是互相联系的,一般都会有实质性的部分重叠•在设计阶段,验证所提交的设计方案的可使用性经常是必要的,其方法之一是创建部分系统的工作原型,以确信其在新系统工作环境下能准确运作•分析员通常会通过建立这样的原型,来测试和检验可选的设计策略284.SDLC的实施阶段•实施阶段的主要活动是建立、测试和安装最后的系统•其目标不仅要建立一个可靠的系统,还要确保培训所有用户,并使商业受益•所有原先的活动都集合在这一阶段,以达成一个有效的系统•实施阶段主要有六个活动:–构造软件部件–检验与测试–开发调整原型–转换数据–培训与文档–安装系统29SDLC的实施阶段•在实施阶段,分析员可能需要创建补充的原型,以检验不同的实施战略和确保系统可调,以便在系统投入使用后,能控制事务处理量•几乎每个新系统都是替换现有系统的,或是较早的自动系统,或是纯手工的系统。其中,往往涉及重要的数据转换•培训工作是新系统最终真正发挥作用的最为重要的一项活动。只有用户熟悉并正确使用新系统,新系统的开发工作才是成功的305.SDLC的支持阶段•支持阶段的目标是,在系统初始安装后的最初几年保持其有效运行•支持阶段的主要活动分为两类:–提供对最终用户的支持–维护和增强系统•对最终用户的帮助,在现阶段主要会通过CallCenter进行,早期主要是通过一个帮助台完成•无论是CallCenter或帮助台,其要旨就是技术人员或支持人员帮助用户解决涉及系统的任何技术的或数据处理的问题•系统维护会根据工作性质的不同,而分成错误改正、系统健壮性提升、局部升级、全面升级等几类31项目阶段进度安排•上图是采用瀑布法进行项目开发的示意图,其特征是顺序进展。即从计划、分析、设计……一个阶段到下一个阶段•瀑布法的缺点之一是,阶段之间相互串联,阶段及阶段中的各项活动相互之间也基本都是串联关系,因此,资源利用率较低、开发效率也较低32项目阶段进度安排•提高项目开发效率的一个方法就是将阶段活动进行重叠•下图表示的是一个有3项活动重叠的开发过程AnalyzeDesignImplementTestEvaluate====Cycle1:AnalyzeDesignImplementTestEvaluate====Cycle3:AnalyzeDesignImplementTestEvaluate====Cycle2:1MonthDuration•活动重叠的好处是:效率33开发Iterative迭代Development,ScopeControlandCustomerParticipationSW需求工程TimeRequirementsarebaselined&re-baselinedwithcustomerandusersintimatelyinvolved示范体系结构系统开发系统整合1ArchitectureDevelopmentIntegration2Iterationsaremini-waterfallsthatimplementthereqinstagesCustomergetsincreasingvisibilityintoprogressandresults