版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目开发指南项目开发指南开发文档将为网上商城项目实训的参与者讲述在此项目中的软件过程。在学习此文档之前,请参与者先了解统一软件开发过程(RUP)和统一建模语言(UML)方面的知识。在本项目中,将采用剪裁的统一软件开发过程(RUP)来规范整个项目的开发过程,同时,采用UML来作为项目的分析设计和建模语第一章RUP和UML在详细描述本项目的开发过程之前,大家一起了解一下什么是RUP,什么是UML。RUP的定义RUP是Rational公司针对软件过程的一个核心定义,也是00软件开发方法的一个很好的实现.它使用了迭代进度方式,是原型法的扩展,贯穿于整个软件过程当中,在各个阶段Rational都提供了相应的企业化工具。它具有以下的内涵:一种迭代的、以架构为中心的、用况驱动的软件开发方法一种具有明确定义和结构的软件工程过程一个过程产品,提供了可定制的软件工程的过程框架,以指导系统分析员、开发人员、测试人员、项目经理、配置经理、数据分析员和其他成员共同开发软件。UML的定义UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言它融合了Booch、0MT和00SE方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因而,UML必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言;其次,UML不仅仅是上述方法的简单汇合,而是在这些方法的基础上广泛征求意见,集众家之长,几经修改而完成的,UML扩展了现有方法的应用范围;第三,UML是标准的建模语言,而不是标准的开发过程。尽管UML的应用必然以系统的开发过程为背景,但由于不同的组织和不同的应用领域,需要采取不同的开发过程。作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。UML语义:描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。UML表示法:定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。更详细的UML和RUP的知识请学员们自行查阅本项目中其它的两部分学习内容一一统一软件过程和UML的学习内容。第二章项目的组织架构本文档是为了辅助学员掌握团队合作的方式方法,帮助学员迅速适应软件开发过程中团队开发的氛围,确立学员团队合作的习惯和能力而编制的指导性文档。本文档将分成以下四个部分来进行描述:第一部分将描述在本次实训项目中本次学员将涉及的团队角色;第二部分将描述每一个学员在项目中所需要承担的任务;第三部分将描述在团队工作过程中的一些制度;第四部分将讲述团队工作中的合作技巧。统一软件过程项目参与角色描述在统一软件过程中,整个过程的参与者可以分为四类角色:•分析员•开发人员测试员经理下文将逐一描述各类角色在整个过程中所需要承担的任务和责任。分析员分析员通常负责定义系统需求。它是组织中主要从事需求获取和研究的集合。它可以分为以下几类角色:业务流程分析员业务设计员业务模型复审员需求复审员系统分析员用例阐释者•用户界面设计员业务流程分析员:业务流程分析员通过概括和界定作为建模对象的组织来领导和协调业务用例建模。例如,确定存在哪些业务主角和业务用例,他们之间如何进行交互。
sTarg^-UrgariizatioriAssessmentBBBusinessVIsionBEu^iness.ArchitmetureDorijmeritBEu^ines^Rul&=:Business-ModelingGuidelinesre^onsiblAforDefinetheBusinessArchitectureFindBusinessActorsandUseCasesDeveIop CaBBBusinessVIsionBEu^iness.ArchitmetureDorijmeritBEu^ines^Rul&=:Business-ModelingGuidelinesre^onsiblAforDefinetheBusinessArchitectureFindBusinessActorsandUseCasesDeveIop CaptureaBusiness・hModElingCommonEn_Gin&5EGuide|jnes VocabularyAssessTargetOrganizationMaintainBusinessRulesSetandAdjustGzQE:usines=:-ProcessAnalystStructuretheBusinessLlse-CaseWudeIaE:usinessBusiness5upplementaryIJ-'n---'IJGlossaryUs&CasekfodelBusiness 閘口日曰Specification担任业务流程分析员的人员应该善于简化工作,并且具有良好的沟通技巧。担任此角色的人员中必须要有具备业务领域知识的人才,但这种知识并不是所有人都必备的。业务流程分析员应该准备好开展以下工作:•评估将在其中部署项目最终产品的目标组织的情况。了解客户与用户的需求、策略和目标。协调目标组织的建模工作。在必要时对业务工程工作进行讨论和协调。对目标组织中所建议的任何变更进行成本效益分析。与项目最终产品的营销和销售人员进行讨论并向其提供支持。业务设计员:业务设计员通过描述一个或几个业务用例的工作流程来详细说明组织中某一部分的规约。他通过描述一个或几个业务用例的工作流程来详细说明组织中某一部分的规约。他指定实现业务用例所需的业务角色及业务实体,并且将业务用例的行为分配给这些业务角色及业务实体。业务设计员定义一个或几个业务角色和业务实体的责任、操作、属性和关系。
BijsinessWorkerBusinessurganizati□nEntity UnitBusinessUseCaseFindBusinessWorkersandBusinessEntitiesDefineAutomationF:equiremerit:DetailaBusinessE「BijsinessWorkerBusinessurganizati□nEntity UnitBusinessUseCaseFindBusinessWorkersandBusinessEntitiesDefineAutomationF:equiremerit:DetailaBusinessE「itityDetailaBusinessUseCaseBusinessAutorBusinessDesignerresponsibleforDetailaBi-Einess_Worii:er人员配备担任业务设计员的人员应该善于协调,并且具有良好的沟通技巧。他最好具有业务领域的知识,但这并不是担任此角色的所有人都必需的。业务设计员需要熟悉用于获取业务模型的工具。业务流程分析员应该准备好开展以下工作:了解客户与用户的需求、策略和目标。•协调目标组织的建模工作。在必要时对业务工程工作进行讨论和协调参与确定对项目最终产品的需求。业务模型复审员:业务模型复审员参与对业务用例模型和业务对象模型的正式复审。Bi-EinessMudeI
Reviaiiier匚>匚>Bi-EinessMudeI
ReviaiiierF:evieiii.ithe F:evieirijtheBusiness _BusinessUse-CaseModelObjectModel人员配备在大多数情况下,担任业务模型复审员的人员都需要具备业务领域的基本知识,或者对将用来实现业务自动化的技术具备基本的知识。业务模型复审员应该具备的另一种技能是详细了解所应用的业务工程技术。4)需求复审员需求复审员负责计划并执行对用例模型的正式复审。人员配备在大多数情况下,担任需求复审员的人员需要具备业务或技术领域的基本知识。需求复审员应该具备的另一种技能是详细了解所应用的辅助技术和建模技术。5)系统分析员系统分析员通过概括系统的功能和界定系统来领导和协调需求获取及用例建模。例如,确定存在哪些主角和用例,以及他们之间如何交互。它包含以下职责:•制定需求管理计划,其目的在于:记录需求、需求属性以及记录可追踪性和产品需求管理的指南。对有待解决的问题达成一致。确定系统的涉众。定义系统边界。说明系统的主要特性。了解项目涉众的组成。收集对系统应满足的需要的请求。确定涉众请求的优先级。对项目需求的属性和可追踪性进行管理,以便协助管理项目规模和变更需求。制定用例建模指南定义可用于系统的所有文本说明,尤其是可用于用例说明的常用词汇。概述系统的功能。定义在系统内处理的内容和在系统外处理的内容。定义与系统进行交互的对象(人或事物)。将模型分为主角包和用例包。制作用例模型图。撰写用例模型调查。有些业务用例需要作为抽象业务用例考虑,并从中提取行为。这类行为的示例包括公用行为、可选行为、异常行为以及将在以后的迭代过程中开发的行为。查找新的抽象主角,它们定义了与其他几个主角共享的角色。
人员配备担任系统分析员的人员应该善于协调,并且具有良好的沟通技巧。担任此角色的人员中必须要有具备业务和技术领域知识的人才,但这些知识并不是所有人都必须具备的。6)用例诠释者用例诠释者通过描述一个或几个用例的需求状况以及其他支持软件的需求,详细说明系统功能某一部分的规约。用例阐释者还可负责用例包,并保持用例包的完整性。建议负责用例包的用例阐释者同时负责用例包所包含的用例和主角。respurtiblefaUseCaseIJse-Ca^pF'acl-ageSoft/vareRequirements申ecificaticriDetaitheSolb.iiiareFrespurtiblefaUseCaseIJse-Ca^pF'acl-ageSoft/vareRequirements申ecificaticriDetaitheSolb.iiiareF:equirementsUse-CaseSpecifierDetailaUseU王eMil人员配备担任用例阐释者的人员应该具有良好的人际沟通和书面沟通技巧。他最好具备业务和技术领域的知识,但这些知识并不是担任此角色的所有人都必需的。用例阐释者需要熟悉用来获取需求工作流程结果的所有工具。7)用户界面设计员用户界面设计员通过以下方法领导和协调用户界面的原型设计和正式设计分析对用户界面的需求,包括可用性需求;•构建用户界面原型;•邀请用户界面的其他涉众(如最终用户)参与可用性复审和使用测试会议;•对用户界面的最终实施方案(由设计员和实施员等其他开发人员创建)进行复审并提供相应的反馈。人员配备用户界面设计员不应实施用户界面。用户界面设计员的工作重点和时间都应集中在用户界面的设计和“可视化成形”,原因如下:用户界面设计员所需的技能通常需要为当前的项目和应用程序类型(可能具有独特的可用性需求)而加以改进和优化,这需要投入时间并集中工作重点。应该限制因“一心二用”而带来的风险,即用户界面设计员不应该因为实施方面的考虑(相对于可用性方面的考虑而言)而受到过多的影响。开发人员开发人员角色集主要是用于组织主要从事软件设计与开发的各种角色。它包含以下的角色:构架设计师构架复审员封装体设计员代码复审员数据库设计员设计复审员设计员•实施员•集成员下文将一一论述这些角色的具体职责。1)构架设计师
构架设计师负责在整个项目中对技术活动和工件进行领导和协调。构架设计师要确立每个构架视图的整体结构:视图的详细组织结构、元素的分组以及这些主要分组之间的接口。因此,与其他角色相比,构架设计师的见解重在广度,而不是深度。ArchitectureDoclimentDescribeDistributionevelopesign©uidelinssHiDeployment
ModelIdentiiyDesignMechanismsIdentifyDesignElementsAjchrtecturalAnalysisDescribetheRun-timeArchitectureArchitectureDoclimentDescribeDistributionevelopesign©uidelinssHiDeployment
ModelIdentiiyDesignMechanismsIdentifyDesignElementsAjchrtecturalAnalysisDescribetheRun-timeArchitecture人员配备“理想的建筑师应该既是文学家又是数字家,他还应通晓历史,热衷于哲学研究精通音乐,懂得医药知识,具有法学造诣,深谙天文学及天文计算。”---维特鲁威(古罗马建筑师),约公元前25年。简而言之,构架设计师必须多才多艺、成熟练达、洞察力强、经验丰富。这样,他才能在无法获得完整信息的情况下迅速领会问题并根据经验作出审慎的判断。更准确地说,构架设计师(或者构架团队的成员)必须兼具以下技能:•经验:既包括在问题领域的经验(通过彻底了解需求),也包括在软件工程领域的经验。对于一个构架团队,这些素质要求可由各团队成员来分别承担,但其中至少要有一名构架设计师能够把握项目的全局。领导才能:能够推动各个团队的技术进展,并能在压力下作出关键性的决策然后将其贯彻到底。要提高效率,构架设计师和项目经理必须紧密协作。构架设计师主要负责解决技术问题,项目经理主要负责解决行政管理问题。构架设计师必须有权在技术问题上作出决定。沟通:能够赢得他人的信任,以对其进行说服、激励和指导。构架设计师不能靠命令进行领导,而必须要赢得项目中其他人员的赞同。为了提高效率,构架设计师必须赢得项目团队、项目经理、客户、用户群体以及管理团队的尊敬。以目标为中心、积极主动,不懈地追求成效。构架设计师是推动项目发展的技术动力,而不是空想家。在其职业生涯中,成功的构架设计师一直都要在捉摸不定和承受压力的情况下作出折衷决定。构架设计师只有将注意力集中在该做的事情上,才能在项目中取得成功。从专业角度看,构架设计师必须具备角色:设计员的所有能力。团队:如果项目较大,需要组建一个构架团队,则应尽量广聚贤才,使该团队既拥有广泛的经验,又对软件工程流程具有一致的认识。构架团队不应该是由各团队、领域或承包商的代表组成的委员会。软件构架设计是一项长期的工作,始终都需要配备专职人员。2)构架复审员一般而言,构架复审员负责计划并执行对软件构架的正式复审。ArchitectureArchitectureReviexoer人员配备构架复审员角色的人员配备要求与角色:构架设计师的人员配备要求相同,但前者更加注重于技术问题。虽然对领导才能、成熟程度、实用主义及注重结果这些方面的重视程度稍低,但这些方面仍然重要:复审员可能会发现构架方面的缺陷,并且有可能会因为影响项目的进度而不受欢迎。尽管如此,最好还是在问题可以解决的时候及早提出关键性的问题,而不是盲目地追随进度,致使项目团队步入歧途。构架复审员需要根据成本对风险加以权衡,并对影响项目成功的概括性问题保持一定的敏感性。构架复审员还需是善于说服的沟通者,他应该能够提出并讨论对他人来说比较敏感的问题。3)封装体设计员封装体设计员的主要工作是根据并行需求确保系统能够及时地对事件作出响应解决这些问题的主要工具是工件:封装体。CaPsule DesignD&=:ignerCapsule人员配备封装体设计员的技能与角色:设计员(封装体设计员实际上是设计员的一种)的技能相似,但封装体设计员需要在处理并行问题方面具有更多的经验。封装体设计员必须充分了解并行程度较高的交互系统中出现的问题的类型,以及解决这些问题的各种方法。所需的技能包括了解在创建、销毁和同步操作系统进程和线程时所涉及的资源问题。此外,封装体设计员还需要了解如何处理软件系统中与状态相关并由事件驱动的行为。
4)代码复审员代码复审员负责确保源代码的质量,并且计划和执行源代码复审。在复审活动中代码复审员还负责有关返工的任何反馈意见。5)数据库设计员5)数据库设计员数据库设计员定义表、索引、视图、约束条件、触发器、存储过程、表空间或存储参数,以及其他在存储、检索和删除永久性对象时所需的数据库专用结构。相关信息记录在工件:数据模型中。DatabaseDesignerDatabaseDesignDatabaseDesignerDatabaseDesignresponsibleforjDataMode!人员配备数据库设计员必须在以下方面具有扎实的应用知识:•数据库和面向对象的分析设计技术•系统构架,包括数据库和系统性能调整,以及硬件和网络负载平衡数据库管理了解实施语言和环境6)设计复审员设计复审员计划并进行工件:设计模型的正式复审Design Desi9Design Desi9nReviewer人员配备设计复审员的人员配备要求与角色:构架设计师的人员配备要求相同,但前者更加侧重于技术问题。虽然对领导才能、成熟程度、实用主义及注重结果这些方面
的重视程度稍低,但这些方面仍然重要:复审员可能会发现设计方面的缺陷,并且有可能会因为影响项目的进度而不受欢迎。。尽管如此,最好还是在问题可以解决的时候及早提出关键性的问题,而不是盲目地追随进度,致使项目团队步入歧途。设计复审员需要根据风险对成本加以权衡,并对影响项目成功的概括性问题保持一定的敏感性。设计复审员还需是一个善说服的沟通者,他应该能够提出并讨论对他人来说比较敏感的问题。从技术知识的观点来看,设计复审员应该具有与角色:设计员相同经验。7)设计员UseCase
Realization目Analysis
ClassQDesign
Subsystem■TestClassUse-CaseAnaf^sis匚>Use-Case
DesignnUseCase
Realization目Analysis
ClassQDesign
Subsystem■TestClassUse-CaseAnaf^sis匚>Use-Case
DesignnDesignerSubsystem
DesignoDesignTest
Packagesand
Classes■■Design
ClassDesignPacka口e人员配备设计员必须在以下方面具有扎实的应用知识:•用例建模技术。•系统需求。软件设计技术,包括:面向对象的分析设计技术。统一建模语言。实施系统时将利用的技术。此外,设计员还必须:了解工件:软件构架文档中所述的系统构架。了解测试在系统中的作用。•具有配置管理原理的一般应用知识,以及工件:CM计划的特殊应用知识。
8)实施员实施员负责按照项目所采用的标准来进行构件开发与测试,以便将构件集成到更大的子系统中。如果必须创建驱动程序或桩模块等测试构件来支持测试,那么实施员还要负责开发和测试这些测试构件及相应的子系统。其职责如下:•依据设计模型编写源代码。•核实单元规约。核实单元内部结构。修复缺陷实施测试专用功能生成所有必需的软件,以实现迅速、简便、安全地安装与卸装产品,同时又不会影响其他应用程序或系统特征。ImplementComponentPerformUnitTests:ImplementTestComponentsandSubsystemsDFixaImplementComponentPerformUnitTests:ImplementTestComponentsandSubsystemsDFixaDefectDevelopInstallationArtifacts人员配备实施员应具备的相应技能和知识包括•了解系统或所测试的应用程序•熟悉测试及测试自动化工具•编程技能建议负责实施子系统的实施员同时应负责该子系统所包含的构件。9)集成员实施员将经测试的构件交付到集成工作区,由集成员在集成工作区将构件组合起来,生成一个工作版本。集成员还负责制定集成计划。集成在子系统和系统级别进行,每次集成均有独立的集成工作区。正如经测试的构件从实施员的专用开发工作区交付到子系统集成工作区一样,已集成的实施子系统也从子系统集成工作区交付到系统集成工作区。人员配备有时,担任集成员的个人还可以担任角色:测试员。例如,如果项目较小,或者是在子系统级别上进行集成,就可以让同一个人兼任集成员和测试员,以做到有效地利用人力资源。实际上,对于子系统级别的集成(和测试),一个人就可以兼任实施员、集成员和测试员的角色。但是,对于系统级别的集成,建议应由独立的团队来执行集成和测试。测试员测试员通常负责评估系统的性能是否能达到预期效果。它主要用于组织主要从事软件测试的各种角色。它包含以下角色:•测试设计员•测试员1)测试设计员测试设计员是测试中的主要角色。该角色负责对测试进行计划、设计、实施和评估,包括:生成测试计划和测试模型执行测试过程评估测试范围和测试结果,以及测试的有效性生成测试评估摘要
ooF:espaaPlanTestDesignTestImplementTestVij'uAf.IoadAnah/seDucument(F'erfurmanc:eTestingUnh<■)ooF:espaaPlanTestDesignTestImplementTestVij'uAf.IoadAnah/seDucument(F'erfurmanc:eTestingUnh<■)TstProceduresEvaluateTestTestGuidelinesTestPlanDevelopTestGuidelinesTmmtEvaIuatiun缶■邪SummaryTestScriptsTestDesignerTestModelTestCass人员配备测试设计员应具备的相应技能和知识包括:了解系统或所测试的应用程序了解测试及测试自动化工具具备诊断和解决问题的技能编程技能(最好具备)2)测试员测试员负责执行测试,其职责包括:设置测试评估测试执行过程并修改错误执行测试并获取测试结果人员配备测试员应具备的知识和技能可能会因为他们所执行的测试类型和/或测试阶段的不同而有所差异。例如,在执行性能测试或集成阶段的测试时,需要更高级的技能。在执行功能测试或系统测试阶段的测试时,则不需要太高级的技能。以下是测试员所需知识和技能的一些标准:高级测试员:了解系统或所测试的应用程序了解联网和系统构架了解测试及测试自动化工具具备诊断和解决问题的技能编程技能(必备)初级测试员:了解系统或所测试的应用程序了解测试及测试自动化工具具备诊断和解决问题的技能编程技能(最好具备)经理经理通常负责调配资源并确保项目中的一致性了,常用于组织主要从事软件工程流程的管理与配置的各种角色。它包含以下角色:变更控制经理•配置经理•部署经理流程工程师项目经理•项目复审员以下分别论述经理的各类角色.1) 变更控制经理变更控制经理这一角色负责对变更控制过程进行监督。此角色通常由配置(或变更)控制委员会(CCB)来担任,该委员会应该由有关各方(包括客户、开发人员和用户)的代表组成。在小型项目中,项目经理或软件构架设计师一人即可承担此角色。变更控制经理还负责定义应在CM计划中记录的变更请求管理流程。2)配置经理配置经理负责为产品开发团队提供全面的配置管理(CM)基础设施和环境。CM的作用是支持产品开发行为,使开发人员和集成员有适当工作区来构建和测试其工件,并且使所有工件均可根据需要包含在部署单元中。配置经理还必须确保CM环境有利于进行产品复审、更改和缺陷跟踪等活动。配置经理还负责撰写CM计划并汇报基于“变更请求”的进度统计信息。□>EstablishCMPoliciesPerform□>EstablishCMPoliciesPerformConfigurationAudits:SetupCM
EnvironmentDresponsibleforProjectRepositoiyReportonConfigurationConfigurationManagerCMPlanConfigurationAuditFindingsCreateDeployment
Unit3)DresponsibleforProjectRepositoiyReportonConfigurationConfigurationManagerCMPlanConfigurationAuditFindingsCreateDeployment
Unit3)部署经理resppnsorManageBetaTestWriteReleaseNotesProvideAccesstoDownIoadSiteManageAcceptanceTestReleasetoManufacturingDefinsBillofMaterialsVerifyManufacturedProductooDevelopDeplaymentPlansDeploymentManagerresppnsorManageBetaTestWriteReleaseNotesProvideAccesstoDownIoadSiteManageAcceptanceTestReleasetoManufacturingDefinsBillofMaterialsVerifyManufacturedProductooDevelopDeplaymentPlansDeploymentManagerBlDeploymentPlsnProductsRelease
NotesasRelease
NotesBillofMarterials4)流程工程师流程工程师对软件开发流程本身负责。其职责包括在项目开始前配置流程,并在开发工作过程中不断改进流程。/JODDOAssessCurnentDevielop Devel叩 LaunchProcess Organization DevelopmentPraject-SpedficDe'vielopmentEngineer、、、_ Case Templates Case/\x圜li圜Development-DevelupmentPruject-bpecificUrganizatiun Case Templates.Assessmerit人员配备担任流程工程师的人员需要具有广博的软件开发知识。良好的沟通技巧是对担任此角色的人员的基本要求。5)项目经理项目经理负责分配资源,确定优先级,协调与客户和用户之间的沟通。总而言之,就是尽量使项目团队一直集中于正确的目标。项目经理还要建立一套工作方法,以确保项目工件的完整性和质量。具体有以下几点:•确立开发产品的经济理由。•确定、分析项目风险并确定其优先级,还要制定相应的风险管理策略。更新风险列表,反映项目当前状态。为团队配备人员,该团队将制定项目计划并确定项目是否成功的评测标准确定用来监测与控制项目进展、质量和风险的信息与流程。估计项目的总体规模、工作量和成本。•制定粗略的项目计划,重点放在产品生命周期中的主要里程碑和关键可交付工件。定义各项目阶段内的一组迭代,并确定各次迭代的目标。制定项目的时间表和预算。制定项目的资源计划。为有序地完成项目定义相应的活动协调所有与软件开发计划主体文档中发布的计划和内容相关的开发。定义项目的组织结构根据对工作量的估计,可以很有把握地确定下一次迭代的人员配备要求(包括人员数量、类别及经验水平),以便着手配备所需人员(甚至还可以确定后续迭代的人员配备需求,但是这样做的把握性就比较低,而且存在风险)。制定客户与项目团队一致通过的书面过程材料,以此确定是否可接受项目可交付工件。明确一个双方均认可的流程,照此来解决产品验收中发现的问题为确定、分析风险并按优先级排序创建一个存档备查的计划。为重大项目风险制定风险管理策略。制定一个可以存档备查的计划,为管理和解决项目中遇到的问题提供事先确定的过程为项目的质量保证活动创建一个存档备查的计划。根据质量、进度与改进情况确定管理目标决定为支持这些目标应定期进行哪些评测制定每一次迭代的精细计划为项目投入人力资源将可获得的人力资源与项目需要的技能集合一一对应。将可获得的人力资源集合成相对独立但是相互协作的团队将人员和其他资源分配给为当前迭代所确定的工作包确定迭代是否成功记取教训,据此修改项目或改进流程为项目做好阶段收尾的准备,并准备好生命周期里程碑复审的材料。完成与项目验收和收尾有关的手续,重新分配项目人员并转移其他的项目资源。获取项目的当前状态对照计划评估状态调整适应迭代过程中发生的对产品和流程经过批准的变更(缺陷、扩展)。对项目状态进行定期更新,以备项目复审委员会(PRA)复审。提交超过项目经理权限的问题,以便PRA解决。对项目中出现的问题与异常事件采取适当的纠正操作Identify
and
.AssessRisksXDefine
Monitoring
andControl
ProcessesandIterationsoDevelop
Product
Acceptance
PlanDeveloQualityAssiPlanDevelopBusinessCaseInitiateProjectProjectStartDevelop
IterationPlanAcquire
StaffAssessheraitionCompileSoftware
DevelopmentPlanDefineProject
Organization
andStaffingDevelopmentPlanningInitiate
IterationPreparefor
PhaseClose-OutPrepareforProjectClose-OutiterationStart-EndProjectManagerResponsibleforDevelop
Problem
ResolutionPlanDe^elopRkkManagement
PlanOtherPlansDMonitor
Project
StatusDevekMeasureiPlanDSchedule
andAssign
WorkReportStatusRoutineManagement匚HandlExceptionProbleiIdentify
and
.AssessRisksXDefine
Monitoring
andControl
ProcessesandIterationsoDevelop
Product
Acceptance
PlanDeveloQualityAssiPlanDevelopBusinessCaseInitiateProjectProjectStartDevelop
IterationPlanAcquire
StaffAssessheraitionCompileSoftware
DevelopmentPlanDefineProject
Organization
andStaffingDevelopmentPlanningInitiate
IterationPreparefor
PhaseClose-OutPrepareforProjectClose-OutiterationStart-EndProjectManagerResponsibleforDevelop
Problem
ResolutionPlanDe^elopRkkManagement
PlanOtherPlansDMonitor
Project
StatusDevekMeasureiPlanDSchedule
andAssign
WorkReportStatusRoutineManagement匚HandlExceptionProbleiBIterion
AssessmentafterartionPlanillKiBBusinessCaseQualityAssurancePlanSoft\^reDevelopmentPlanProject
MeasurementsStatusAssessmentWorl□rdeEncloEuresoftheSoftwareDevelopmentPlanthaarethedirectresponsibilityoftheProjectManageaMeasurementPlaniiRlsk RiskListManagementPlanProblem
Resolution
PlanaProduct
Acceptance
Pla-i6)项目复审员项目复审员负责在项目生命周期中的主要复审点处评估项目计划工件和项目评估工件。在这些复审点发生的是非常重要的复审事件,因为在它们所标志的时间点处,如果计划不够充分或者进展无法令人满意,项目很可能会就此取消。ProjectReviewerProjectPlanningReviewIterationPlanReviewPRAProjectRwiewProject
Approval
ReviewIterationIterationUfecycleEvaluationAcceptanceMilestoneCriteriaReviewProjectReviewerProjectPlanningReviewIterationPlanReviewPRAProjectRwiewProject
Approval
ReviewIterationIterationUfecycleEvaluationAcceptanceMilestoneCriteriaReviewReviewReviewoooProjectAcceptance
Review人员配备项目复审员应具有多年的业务(包括合同制订及谈判)、技术和软件项目管理的经验,并具有业务管理级别的决策能力。项目复审员还应对风险管理原理具有出色的理解力,并且善于在信息不全或不明确的环境下进行评估。实际项目使用角色描述根据实际的项目情况,以及所选择的开发方法,我们在本次实训项目中将所有的参与人员分成四类角色,这四类角色分别为:项目经理,分析师、程序员和测试员。它们的详细职责描述如下:•项目经理:项目经理负责分配资源,确定优先级,协调与客户和用户之间的沟通。总而言之,就是尽量使项目团队一直集中于正确的目标。项目经理还要建立一套工作方法,以确保项目工件的完整性和质量。具体而言,就是要能够很好的控制好项目中的资源、计划、风险以及目标方向。分析师:分析师通过阅读和分析原始需求,从而概括系统的功能和界定系统来领导和协调需求获取及用例建模。例如,确定存在哪些主角和用例,以及他们之间如何交互。除此之外,分析师还需要通过描述一个或几个业务用例的工作流程来详细说明组织中某一部分的规约。他通过描述一个或几个业务用例的工作流程来详细说明组织中某一部分的规约。他指定实现业务用例所需的业务角色及业务实体,并且将业务用例的行为分配给这些业务角色及业务实体。业务设计员定义一个或几个业务角色和业务实体的责任、操作、属性和关系。程序员:程序员负责定义一个或几个类的职责、操作、属性及关系,并确定应如何根据实施环境对它们加以调整。此外,程序员可能要负责一个或多个设计包或设计子系统,其中包括设计包或子系统所拥有的所有类。除此之外程序员负责按照项目所采用的标准来进行各类模块开发与测试,以便将模块集成到更大的子系统中。如果必须建驱动程序或桩模块等测试构件来支持测试,那么程序员还要负责开发和测试这些测试模块及相应的子系统。测试员:测试员负责对测试进行计划、设计、实施和评估,他需要设置和执行测试,并且能够评估测试执行过程并修改错误。第三章项目的软件开发过程在本实训项目中,因为部涉及要立项的过程和实施维护过程,所以,整个项目所经历的RUP阶段将被裁剪为两个阶段:细化阶段和构建阶段。在细化阶段,本项目需要完成需求的确定、系统的分析与设计这两个基本的工作流。在构建阶段,本项目需要完成项目的实现、项目的单元测试、项目的集成与项目的功能测试四个部分的内容。同时,在整个两个阶段内,都需要进行项目管理的相关工作。具体的软件开发过程示意图如下:
从图上可以看到,整个项目有两个阶段,每个阶段都有两个流程,每个流程都有自己相应的活动。3.1细化阶段在细化阶段有两个流程需要执行:需求流程和分析设计流程。3.1.1需求流程需求流程包含三个活动:需求调研,需求分析和需求评审。它们之间存在着顺序关系,如图所示。需求调研活动是需求分析活动的开始,需求分析所使用的资料基础是需求调研的成果;需求分析的成果将成为需求评审的重要内容,需求分析的结束是需求评审活动开始的重要标示。需求评审活动是整个需求流程结束的重要标示。下文将详细描述各个活动的内容、参与者和其所产生的结果。需求调研:需求调研活动将由项目经理和分析员参与。它的主要工作是与客户进行交流,了解客户对于系统的期望。它的最终成果是要提交一份项目的原始需求,一般我们将采用《需求调研报告》文档来表示需求调研的结果。它里面最重要的内容就是客户原始需求的描述,一般如下:•建立强大的商场会员管理体系,能够帮助商场管理购物者的信息;•建立强大的商品信息发布平台,帮助商场以最人性化的方式,将商品发布在互联网上,便于购物者的选购;建立强大的后台管理体系,帮助商场管理商品发布、会员、订单和库存;建立购物辅助工具,方便购买者挑选和购买商品;建立强大的订单处理系统,能够支持从用户提交订单到发货之间的一系列工作流处理。建立完善的商品购买体系,购买者能够通过此商品购买体系来进行商品的购买,以及送货和支付方式的定制。在进行需求调研的时候,要注意,客户给的需求往往是一些模糊的描述,所以,要尽量记录客户的原话,然后要在调研结束前逐条确认。需求调研活动的组成如下:参与者:项目经理和分析员。步骤:需求交流和原始需求确认。•产品:《需求调研报告》2) 需求分析需求分析所要做的事情是对《需求调研报告》中所描述的原始需求进行分析,形成详细的结构化的用户需求。在需求调研活动中,我们所获取的需求往往是模糊的,它并不足以支持我们的开发,同时,也并不能作为开发商与用户之间的开发内容协议。所以要对这些原始需求进行精确化,将用户的需求的边界、过程、操作和用户分析清楚,并且,利用一些需求建模工具建立需求模型,利用此模型,与用户进行需求的确认,从而形成一份用户与开发商之间的开发内容规约。在本项目中,采用UML中的user_case(用例)来进行需求建模。根据上面的需求调研,我们选择下面的需求作为举例:建立完善的商品购买体系,购买者能够通过此商品购买体系来进行商品的购买,以及送货和支付方式的定制。那么,首先我们所需要做的是分析此需求的边界、过程、操作和用户。边界是此需求执行的前后置条件,前置条件是此需求能够得到运行的基础,即,它是启动此需求的条件;后置条件是此需求执行完毕的标示。在本需求中,其前置条件和后置条件如下:前置条件:购买者必须是已登录的商场会员。后置条件:购买者已经完成了订单所需要的所有信息的录入,并且符合系统所要求的格式。用户是本需求的执行者,在本部分需求中,很明显,它只有一个用户,那就是购买者,在前置条件中,我们规定,只有商场会员才能够购买商品,那么也就是说在本需求中,其用户是商场会员。操作是需求中涉及的用户动作,在本需求中,其操作主要是送货信息、送货方式和支付方式的定制。也就是说,他需要输入自己的送货信息、送货方式和支付信息。过程是需求中用户动作的秩序,在本需求中,用户输入完送货信息后才能够确定送货方式,在确定好送货方式后才能够确定支付方式。综合上述,此需求的模型应该如下:用例名称商品购买主要参与者注册用户前置条件用户购物车中有商品,并且用户已经登录到系统中后置条件用户将信息完整的订单发送到商场,商场可以根据此订单上的信息进行送货和结算的处理主要成功场景用户输入收货人的地址信息用户确认收货人的详细信息用户输入送货方式用户输入结算方式扩展当信息更新过程中发生错误时,系统将捕获异常,同时将失败信息反馈给游客特殊需求无其UML图例如下:*.'inducE?>*.*.'inducE?>*.UML图例其中商品会员有商品购买这么一个用例,这个用例包含三个子用例:送货地址录入,送货方式确认,支付方式确认。需求分析最终的成果是《需求规格说明书》,本项目需求分析后的规格说明书请查阅《项目需求规格说明书》文档。3)需求评审需求是项目中用户与开发商之间就项目实施内容的规约,所以,在需求流程中,最后所需要做得工作就是需要让用户和开发商共同确认需求分析的结果。需求评审的最主要的内容是《项目需求规格说明书》,需要用户和分析人员、项目经理之间通过需求评审会议的方式来进行逐条确定。需求评审最终的产品是需求评审报告,它的样例格式如下:项目名称评审日期项目编号-评审方式项目类型□合同项目:自主项目:1、特殊项目 2、一般项目 3、小型项目评审意见:经办人: 日期: 年月曰评审结论评审负责人: 日期: 年月曰批准意见:批准人: 日期: 年月曰3.1.2分析设计流程分析设计流程是在需求流程之后,开展的将用户需求转换成为未来系统设计模型的流程。在本项目中,将分析设计流程分成四个活动:概要设计、概要设计评审、详细设计和详细设计评审。其中概要设计主要的内容是完成整个系统的架构选择和系统中各个功能部分的序列图和活动图的分析和建模。它的产品是《概要设计说明书》概要设计评审主要是对《概要设计说明书》的确认和评审。详细设计主要的内容是进行系统的类的设计和页面的设计。它需要完成系统中的类模型,类模型中包含所有的公用方法和全局属性的描述。页面设计需要将所有的页面之间的结构和跳转关系设计清晰,建立页面流模型。1)概要设计概要设计主要完成系统的功能设计和对外接口设计。在功能设计中,最重要的是对每个功能的执行过程以及对象交互的分析。在本项目中,功能的执行过程选择采用UML的活动图进行描述,而对象交互关系的模型采用UML的序列图来进行描述。下面我们将通过用户购物模块为例来讲解整个概要设计的过程。用户购物管理子系统能够处理商场会员购物的整个过程。它为用户购物提供两个入口:商品信息检索以及商品收藏夹。用户可以通过检索商品以及对收藏夹中商品的浏览发起购物活动。在进行购物的时候,用户需要通过用户购物管理子系统来完善自己的基本信息,送货方式、结算方式的信息。最后,用户购物管理子系统能够将用户的商品选购信息、用户的基本信息、用户的送货信息以及结算方式信息自动生成用户订单,通过与用户的交互确认,从而形成一次用户购物活动。以上是用户购物管理模块的功能概述,它描述了用户的整个购物过程。但是,这个描述过于笼统,它不足以描述出整个用户管理功能的详细过程以及所涉及对象之间的交互。所以,我们要对它进行进一步的分析。•功能过程分析(活动图)首先我们分析其功能的执行过程,在整个用户购物过程中,共包含以下的活动:•用户在购买商品的过程中,首先一步是要正确登录,只有正确登录后才能进行商品的购买。•用户登录成功后,有多个活动可供选择o用户打开收藏夹,浏览原先已经放进里面的商品o通过输入关键字,对商品进行全库搜索o直接在商品列表里查阅商品•在经过上述活动之后,都可以找到指定的商品,如果是通过1、2种方式找到的商品,可以通过商品名进入商品详细信息的查阅,然后就可以购买,如果是每三种方式,则可以直接购买或者先查看一下商品详细信息,然后购买。•对用户已经确定购买的商品,下一个活动就是填写收货人的地址,地址信息会初始化成用户填写的地址,但是用户也可以修改。•紧接着用户要选择送货的方式。•用户确认购买商品支付的方式。•系统给出一张用户购买商品的详细订单,用户可以查看,对有些项目如有不正确,可以修改,待确认之后,提交订单•用户提交订单。根据以上的描述,可以得到用户购物功能的活动图如下:用户购物的活动图•对象交互关系描述(序列图)接下来我们分析其功能的执行过程中的各个对象交互的关系,在整个用户购物过程中,共包含以下的对象交互关系:本序列图描述了一个完整的选购商品,发出订单的过程,其间会使用到相关的对象如下:•用户:已经在系统中注册的购买者。•用户管理:系统管理当前系统中的注册用户,对用户的登录请求进行用户名及密码的验证。•商品管理:系统当前商品的管理,记载着每件商品的详细信息供用户查阅,管理对象提供多个接口供用户查找商品。•购物车:每个登录的用户都有一个购物车,用于存放选中的商品,可以从购物车中直接进入收银台,以便发出订单。•订单管理:对于每一个用户,想要购买商品,都必需提交一个订单,本对象就是对订单的信息进行管理以及提供接口对订单进行处理。在用户购买商品的交互过程中,会涉及到很多的步骤,基本描述如下:•第一步:对于每一个想购买商品的用户来说,必需首先成功登录。用户的输入信息由用户管理对象进行验证处理,如果输入的用户名或者密码不正确,则需要重新输入,如果输入都正确,则用户正确登录系统。•第二步:用户登录成功后,可以浏览商品,也可以对商品进行检索找到自己指定的商品,具体找商品的方法有发下几种:o在商品的列表中直接选中商品,查看其详细信息o通过输入关键字在系统中搜索找到商品,查看其详细信息o在自己的收藏夹中找到指定商品,查看其详细信息•第三步:对用户想购买的商品,放入购物车中,用户这时可以直接进入订单管理对象进行订单处理,也可以重复第二步继续查找商品。•第四步:对已经放入购物车中的商品,用户可以发出购买这些物品的订单,具体又分以下几个步骤o系统调出用户注册里的详细地址信息,用户可以确认信息,或者更改地址信息o用户选择商品的配送方式o用户选择货款的支付方式•第五步:当用户都完成上述操作之后,会显示一个详细的订单情况,里面有刚才输入的所有信息汇总,用户可以在这里接着修改相关的选项,如果没有什么问题,则用户执行下一步。•第六步:用户发出订单到网上商城。•经过这一系列的步骤,用户就完成了一次购买商品的订单操作。根据以上的对象分析和交互关系分析,可以得到以下的活动图:曲品告址□f43:-PutU=iOI I根据以上的对象分析和交互关系分析,可以得到以下的活动图:曲品告址□f43:-PutU=iOI I■"T11呵"0I II| 2:Inquti^O|对象交互关系在概要设计分析完毕后,将会产生一个成果《概要设计说明书》,此说明书将详细记录各功能的情况,本项目的概要设计成果请见《项目概要设计说明书》。它是概要评审的主要内容。概要评审概要评审是对概要设计是否能够符合合理性要求进行评审。本项目概要评审活动的参与者包含:项目经理,系统分析员、软件工程师组长、测试组组长。经过这些评审人员对《概要设计报告》中的内容逐条核对和评审,能够发现《概要设计报告》中的问题,并且得到一份确认稿的《概要设计报告》。对于有问题的部分,
需要回溯和重新变更,并且进行再次评审,一般评审过程将被记录在《概要设计评审表》中,它的格式示意如下:项目名称评审日期项目编号评审方式□项目类型□合同项目:自主项目:1、特殊项目 2、一般项目 3、小型项目评审意见:经办人: 日期: 年月曰评审结论评审负责人: 日期: 年月曰批准意见:批准人: 日期: 年月曰3)详细设计在RUP中,详细设计的内容需要结合面向对象的应用软件开发来确定。一般来说,在实际的项目开发中,详细设计的内容主要是确定项目中所使用的类。并且将这些类中的属性和方法设计出来。在本项目中,系统管理的类图设计如下图:SystemManager-SystemManagerlD:integer-SystemManagerName:string-SystenManagerPwd:string-SystemManagerType:integer-SystemManagerText:string-SystemManagerCheck:integer-SystemManagerVisitCount:integer-SystemManagerLastVisitTime:datetime-SystemManagerLastVisitlP:string-SystemManagerCreateTime:datetime+SystemManagerlDlnfoManage:boolean+GoodsTypeManage:void+GoodsBorderManage:void+GoodslnfoManage:void+GoodsSavalnfoManage:void+GoodsSaveAIIManage:void+GoodsSaveAlertManage:void+OrderManage:void+StatManage:void系统管理类图_通过此类图,我们可以清晰地描述出系统管理功能所使用的类的名称,类中所涉及的属性,已经它所能够提供的所有的方法。3)详细设计评审详细设计的评审相对比较简单,它仅仅是对类的设计合理性进行评审,它的评审会议的参与者保护系统分析员、项目经理和软件工程师。其评审将产生一个评审表,以记录所有类设计的评审情况。详细设计评审的记录表格如下:项目名称评审日[
期 |项目编号评审方式□项目类型□合同项目:自主项目:1、特殊项目 2、一般项目 3、小型项目评审意见:经办人: 日期: 年月曰评审结论评审负责人: 日期: 年月曰批准意见:批准人: 日期: 年月曰构建阶段构建阶段是系统编码实现和系统测试的重要阶段,它将把上个阶段的成果转换成为一个符合用户需求的、可运行的应用系统。本阶段包含两个主要的流程:实现流程以及测试流程。其中,实现流程主要是软件工程师编码对整个系统进行实现,并且,每一个软件工程师都将对自己所做的模块进行单元测试,确保自己所实现的功能无误。同时,它还需要将所有各工程师编码实现的成果集成到一起,形成一个完整的信息系统。测试流程主要是测试人员对已经集成好的系统进行测试。其中,白盒测试将采用代码检查的方式来完成,它将检查所有工程师的代码,找出其中不合理的实现进行修改;黑盒测试主要进行功能测试和性能测试,它能够保证系统所实现的功能符合用户需求的要求,同时还能够保证系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026安康投资面试题目及答案
- 2026爱国合唱团面试题及答案
- 登高梯台安全评价检查内容培训课件
- 工程创优细部做法施工工艺施工方案
- 教案19- 项目八 汽车操纵稳定性测评-任务一 汽车操纵稳定性测评方法与指标
- 公司入职需要签外包合同
- 上海市电商库房外包合同
- 2025年氢气管网压力测试标准
- 智慧公厕人流计数器维护服务续费管理2025年的合同协议
- 2025年矿山企业安全生产应急管理规定
- 2026江苏苏州市姑苏区机关事务管理中心招聘公益性岗位人员2人考试参考试题及答案解析
- 2026江苏南京六合经济开发区所属国有企业招聘6人笔试历年参考题库附带答案详解
- 第13课 每个人都有梦想 课件(内嵌视频)2025-2026学年道德与法治二年级下册统编版
- 2026年高考数学终极押题猜想(上海专用)(原卷版)
- 2026年中考道德与法治模拟考试卷(附答案)
- 2026年中考历史考前冲刺:小论文 满分方法指导讲义
- 2026年中职舞蹈教师考试试题
- 2025年新课标卷高考理科综合试卷真题答案详解(精校打印版)
- 水利水电工程单元工程施工质量检验表与验收表(SLT631.5-2025)
- 2025年北京第二次高中学业水平考试化学试卷真题(含答案详解)
- 《新能源汽车整车控制技术》课件-项目1 整车控制器系统概述
评论
0/150
提交评论