您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > lecture4(项目分析-开发模型)
Chapter4项目分析(技术策划)工程硕士Whattolearn?项目的特征影响项目规划的方法常用的软件开发过程模型工程硕士项目的特征影响项目的规划开发人员的培训需求招聘的人员的类型开发环境——硬件和软件系统维护安排工程硕士项目分析方法:面向对象开发方法(OOD)结构化分析和设计方法(SSADM)Jackson结构化程序设计(JSP)技术:构建应用的环境基于知识的系统工具工程硕士项目分析步骤:1.分析项目是目标驱动的还是产品驱动的2.分析项目的特征3.标识项目的高级别风险4.考虑与实现有关的用户需求5.选择通用的生命周期方法工程硕士项目分析步骤——分析项目特征面向数据(data-oriented),如IS;还是面向过程控制(process-oriented),如ES通用工具,还是应用领域专用工具是否涉及需要专用工具支持的专门技术如并发处理基于知识的系统,如专家系统是否有特殊的安全性要求如系统故障危及人身安全的要创建的系统是用于执行已定义好的服务还是一种兴趣——评价不一样系统运行所需软硬件环境的特点是什么工程硕士练习对下列系统进行分类1.工资支付系统2.控制瓶装设备的系统3.地下水管网设计系统4.支持项目管理的软件5.供律师查询法律条文的系统面向数据或特定领域的应用系统包含嵌入式软件的过程控制或者工业系统使用图形的信息系统通用信息系统软件包信息收集的通用软件包工程硕士项目分析步骤——识别项目的高级别风险产品不确定性:系统需求理解的准确性。用户在开始时有可能对系统应该什么样都无法确定。在某些环境中,精确而有效的需求描述可能迅速变得过时。过程不确定性:在项目开始时需要选择方法或过程模型,或者一种新的工具,原先采用的开发方法的任何变化都将引入不确定性资源不确定性:项目进行中资源的数量可能发生变化,如人力资源工程硕士练习识别学院工资系统中的风险财务部门和人事部门之间的矛盾职员对系统不接受缺少运行该系统的经验缺少管理系统的计算机专业人员需求变化缺少人员(特别是人事部门的人员)对系统的验收工程硕士项目分析步骤(4和5)考虑用户关于实现的需求用户可能在合同中限定了有关实现方面的方法。例如,规定了企业必须具有相应的CMM等级,或者通过了ISO9000方法根据项目的性质,选择通用的生命周期方法控制系统:如并发处理的实时系统采用Petri网技术信息系统:如结构化分析或面向对象的分析通用工具:若针对市场而不是特定的应用领域,考虑结构化分析和设计或面向对象的分析设计专用技术:如专家系统硬件环境:如采用汇编语言安全性关键的系统:如形式化的方法Z方法等。不准确的需求(impreciserequirement):如原型法工程硕士练习概要说明以下每个系统最适合使用的方法:计算特殊疾病病人用药量的系统管理学生贷款计划的系统控制在隧道中通行的火车的系统似乎是基于知识的系统,也是安全性关键的系统,采用基于知识的系统的相关技术大规模的信息系统,采用结构化分析和设计方法安全性非常关键的嵌入式系统,采用如下方法保证可靠性基于数学的规格说明,避免歧义性开发同一软件的类似版本,以便交叉分析软件测试工程硕士技术计划包含的内容1、约束条件的介绍和总结a)待开发系统的特征b)项目的风险和不确定性c)与实现选相关的用户需求2、推荐的方法a)选择方法或过程模型b)开发的方法c)需要的软件工具d)所采用的软硬件环境3、实现a)需要的开发环境b)需要的维护环境c)需要的培训4、牵涉的问题a)项目的产品和活动,这些会影响项目进度和总的项目效果b)用于计算成本的财务报告项目分析产生下一阶段使用的需求技术计划可帮助准备合同的投标,使客户对项目使用的技术方法的合理性留下深刻印象。工程硕士软件过程的概念一个过程定义了为达到某个确定的目标,需要什么人在什么时间以何种方式做何种工作软件过程由关于项目的阶段、状态、方法、技术和开发、维护软件的人员以及相关对象(计划、文档、模型、编码、测试、手册等)组成。过程模型:开发一个软件需要选择开发策略(包括过程,方法和工具)以及确定开发的各个阶段,这些策略和阶段被称为过程模型。过程模型的选择基于项目和应用的特征、使用的工具和方法、所需要的控制方法和交付物。工程硕士软件开发过程软件工程的核心是过程。产品、人员、技术通过过程关联起来。软件开发过程能够将技术集成在一起,从而使软件的开发能够以一种合理而及时的方式完成。过程技术人员产品客户特性业务条件开发环境工程硕士有效的软件过程有效的软件过程可以提高组织的生产能力保证软件开发的基本原则的实现,辅助软件项目管理者作出明智的决定;使软件开发活动标准化,提高软件的可重用性和Team间的协作;有效的软件过程也可以改善软件组织对软件的维护能力通过有效地定义如何管理需求变更,使得变更部分能够在未来的版本中恰当分配,实现平滑过渡;在具体操作和相关支持中定义如何平滑地改造软件,并且这种具体操作和支持是可实施的;不可实施的软件过程被剔除。工程硕士软件开发模型编码修正模型瀑布模型V模型螺旋模型原型开发模型阶段开发模型增量开发模型迭代开发模型工程硕士编码修正模型CodeandFixCodelikeHell(鲁莽编码)从一个大致的想法开始工作,然后经过非正规的设计、编码、调试和测试方法,最后完成工作可能有、可能没有的规范发布(可能)工程硕士编码修正模型好处:成本可能很低只需要很少的专业知识,任何写过程序的人都可以对于一些非常小的、开发完后就会很快丢弃的软件可以采用对于规模稍大的项目,采用这种模型是很危险的工程硕士瀑布模型(WaterfallModel)所有过程模型的祖宗项目从开始到结束按照一定的顺序执行瀑布模型是文档驱动的,各个阶段不连续也不交叉工程硕士瀑布模型RequirementAnalysisSystemDesignCodingTestingMaintenance瀑布模型适应于什么场合?有何优缺点?工程硕士瀑布模型的优点当有一个稳定的产品定义和很容易被理解的技术解决方案时,纯瀑布模型特别合适对一个定义得很好的版本进行维护或将一个产品移植到一个新的平台上,瀑布模型也特别合适。纯瀑布模型能够降低管理费用,因为可以预先完成所有计划。对于那些容易理解但很复杂的项目,采用纯瀑布模型比较合适,因为可以用顺序方法处理问题。在质量需求高于成本需求和进度需求的时候,它尤为出色。当开发队伍的技术力量比较弱或者缺乏经验时,瀑布模型更为适合。工程硕士瀑布模型的缺点纯瀑布模型的缺点是在项目开始的时候,在设计工作完成前和代码写出来前,很难充分描述需求。瀑布模型最主要的问题是缺乏灵活性。必须在项目开始前说明全部需求。但这恰恰是非常困难的。工程硕士瀑布模型变种:V型模型对瀑布模型的修正,强调了验证活动RequirementsAnalysisSystemDesignProgramDesignCodingUnitandIntegrationTestingSystemTestingMaintenanceUserAcceptanceTestingCorrectnessCorrectnessCorrectness工程硕士螺旋模型(Spiral)进化方法迭代开发与风险管理结合以风险为导向的生命期模型风险分析结果决定“go,no-go”B.W.Boehm论文,IEEEcomputer,21(5)工程硕士螺旋模型的四个主要活动每个循环包括四个阶段制定计划:确定软件目标、需求和选定实施方案、明确项目开发的限制条件、确定下步可选方案风险分析:评估所选方案,考虑如何识别和消除风险,进行原型开发工程实施:实施软件开发、编码和测试等客户评估:评价开发工作,提出修改建议,规划下一阶段的任务工程硕士ReviewCommitmentPartitionRiskanaly-sisPrototype1Simulations,models,benchmarksRequirementsplan,life-cycleplanConceptofoperationPrototype2RiskanalysisSoftwarerequirementsRequirementsvalidationDevelop-mentplanRiskanalysisPrototype3SoftwareproductdesignDesignvalidationandverificationIntegrationandtestplanRiskanalysisOperationalprototypeDetaileddesignUnittestCodeIntegrationandtestAcceptancetestImplementationPlannextphasesDevelop,verifynext-levelproductDetermineobjectives,alternatives,constrainsEvaluatealternatives,identify,resolverisksCumulativecostProgressthroughsteps问题:有何优缺点?Spiral模型工程硕士螺旋模型的特点瀑布模型的多次迭代灵活设计用户可以更早看到产品用户可以与开发人员进行紧密地合作可以给开发人员更多的反馈信息可以将每个阶段进行更细的划分通过风险管理进行驱动用户可以不断对产品进行评估项目的投资不用一次性投入工程硕士适合的项目类型风险是主要的制约因素用户对需求不是很明确可能发生一些重大变革的项目采用了新技术的项目规模很大的项目工程硕士原型(prototype)原型是在系统需求阶段快速构建一部分系统的生存期模型,以减少风险和不确定性抛弃型原型:用于试验某些概念,试验完系统无用处进化型原型:原型系统不断被开发和被修正,最终它变为一个真正的系统。工程硕士原型法的特点从实践中学习(Learningbydoing)改善通信改善用户参与需求定义之前快速构建一个原型系统验证描述的一致性和完整性可能可以减少文档减少了维护成本特征约束(利用工具构造原型可以将某些特性落到实处,而非在纸上写的那样容易失误)试验是否能产生期待的结果工程硕士原型法的缺点用户有时误解了原型的角色,例如他们可能误解原型应该和真实系统一样可靠缺少项目标准,进化原型法有点像编码修正缺少控制,由于用户可能不断提出新要求,因而原型迭代的周期很难控制额外的花费:研究结果表明构造一个原型可能需要10%额外花费运行效率可能会受影响原型法要求开发者与用户密切接触,有时这是不可能的。例如外包软件。工程硕士构造原型的对象人机接口系统的功能工程硕士练习:何时引入原型系统保险公司的高层经理需要通过个人计算机上的一个系统来访问管理信息。该系统价格必须合适。很多人怀疑是否经理真需要使用该系统。可行性研究阶段,采用实物模型的方法支持客户销售人员通过电话回答有关客户询问汽车保险价格的系统设计用户对话界面时保险公司考虑实施一个基于MSAccess的电话销售系统,他们不知道Access是否能够开发出相应界面的系统并具备足够快的相应时间。方案设计阶段工程硕士阶段交付阶段交付持续地在确定的阶段向用户展示软件。和渐进原型不同,在阶段交付的时候,你明确地知道下一步要完成什么工作。阶段交付的特点:不会在项目结束的时候一下交付全部软件,而是在项目整个开发过程中持续不断地交付阶段性成果。工程硕士阶段交付优缺点:阶段交付的优点:项目结束交付全部成果前,分阶段将有用的功能交付给用户。阶段交付的主要缺点是:如果管理层面和技术层面上缺乏仔细的规划,工作就无法进行。使用阶段交付的注意点:必须确定每一阶段的交付是对用户有用的必须确保考虑了不同产品组成部分的技术依赖关系工程硕士面向进度的设计类似于阶段交付,但是面向进度的设计
本文标题:lecture4(项目分析-开发模型)
链接地址:https://www.777doc.com/doc-754325 .html