1、3.13.1系统开发过程系统开发过程3.2 FAST3.2 FAST开发过程开发过程3.3 3.3 开发路线和方法开发路线和方法3.43.4自动化工具和技术自动化工具和技术坚持使用现代的严格的方法学可以在两年坚持使用现代的严格的方法学可以在两年内使内使70%70%的系统开发组织的生产率至少提的系统开发组织的生产率至少提高高30%30%。使用一致的系统开发过程:使用一致的系统开发过程:提高效率,管理层可以在项目之间调动资源;提高效率,管理层可以在项目之间调动资源;产生一致的文档,减少维护系统的生命期费用;产生一致的文档,减少维护系统的生命期费用;改善质量改善质量初始级初始级:系统开发项目没有规定
2、的过程可以遵循系统开发项目没有规定的过程可以遵循开发成败主要取决于项目团队的经验和技能开发成败主要取决于项目团队的经验和技能项目开发过程不可预测、不可重复项目开发过程不可预测、不可重复项目之间的文档不一致项目之间的文档不一致可重复级可重复级:建立项目管理过程和实践跟踪项目成本、进度、功能建立项目管理过程和实践跟踪项目成本、进度、功能组织采用开发过程,但项目与项目之间的开发过程可能不组织采用开发过程,但项目与项目之间的开发过程可能不同同开发成败仍主要取决于项目团队的经验和技能开发成败仍主要取决于项目团队的经验和技能.可以重复早期项目的成功经验可以重复早期项目的成功经验已定义级已定义级:标准化系统
3、开发过程标准化系统开发过程 (有时称为有时称为“方法学方法学”)所有项目都使用这个过程的裁减版本来开发和维护系统或所有项目都使用这个过程的裁减版本来开发和维护系统或软件软件每个项目都产生一致且高质量的文档和交付成果每个项目都产生一致且高质量的文档和交付成果开发过程稳定、可预测、可重复开发过程稳定、可预测、可重复已管理级已管理级:建立可度量的质量和生产率目标建立可度量的质量和生产率目标标准系统开发过程和产品质量的度量数据存在数据库里,标准系统开发过程和产品质量的度量数据存在数据库里,并根据数据提高项目管理水平并根据数据提高项目管理水平管理层主动而不是被动应对系统开发问题管理层主动而不是被动应对系
4、统开发问题系统遇到不可预期问题时,开发过程仍可以根据对问题的系统遇到不可预期问题时,开发过程仍可以根据对问题的影响的预测和度量进行调整影响的预测和度量进行调整优化级优化级:根据根据4 4级建立的度量和数据分析,对标准化过程级建立的度量和数据分析,对标准化过程进行持续监督和改进。进行持续监督和改进。调整开发过程中的技术和最佳实践,包括调整开调整开发过程中的技术和最佳实践,包括调整开发过程本身。发过程本身。经验教训在组织内共享,保证质量,并消除低效经验教训在组织内共享,保证质量,并消除低效率。率。注意,每个等级都是下一等级的先决条件。注意,每个等级都是下一等级的先决条件。CMM Project S
5、tatistics for a Project Resulting in 200,000 Lines of CodeOrganizations CMM LevelProject Duration(months)Project Person-MonthsNumber of Defects ShippedMedian Cost($millions)Lowest Cost($millions)Highest Cost($millions)130600615.51.8100+218.5143121.3.961.7315807.728.518.933系统开发过程对质量影响系统开发过程对质量影响Life
6、cycle stage使用系统选择的IT系统开发使用系统开发方法学运行与维护Life cycle stage报废转换系统生命期系统生命期系统生命周期 系统开发方法系统开发方法是一个十分正式且精确的系统开发过程,它是一个十分正式且精确的系统开发过程,它为系统开发人员和项目管理者定义了一组活动、方法、最为系统开发人员和项目管理者定义了一组活动、方法、最佳实践、交付成果和自动化工具,用来开发和维护大部分佳实践、交付成果和自动化工具,用来开发和维护大部分或所有的信息系统和软件。或所有的信息系统和软件。系统开发方法确保:系统开发方法确保:提供一个一致且可再生的方法提供一个一致且可再生的方法 降低了错误的
7、风险降低了错误的风险 为各个项目生成完整且一致的文档为各个项目生成完整且一致的文档 由于所有人都使用同样的过程,所以可以在项目之间灵活的分配由于所有人都使用同样的过程,所以可以在项目之间灵活的分配系统分析员、设计人员和构造人员系统分析员、设计人员和构造人员 后来者可以方便的获得和理解以前的工作成果。后来者可以方便的获得和理解以前的工作成果。让用户参与:系统用户的参与对于成功的系统开让用户参与:系统用户的参与对于成功的系统开发是必需的。交流不畅和误解仍是系统开发中存发是必需的。交流不畅和误解仍是系统开发中存在的主要问题。在的主要问题。使用一套问题解决步骤:问题包括真正的问题、使用一套问题解决步骤
8、:问题包括真正的问题、改进的机会、来自管理层的指示改进的机会、来自管理层的指示研究并理解问题、问题的上下文和问题的影响研究并理解问题、问题的上下文和问题的影响定义方案必须满足的需求定义方案必须满足的需求确定满足需求的侯选方案,并选择最佳方案确定满足需求的侯选方案,并选择最佳方案设计和设计和/或实现选出的方案或实现选出的方案观察并评估该方案的影响,相应的细化该方案观察并评估该方案的影响,相应的细化该方案 确立开发阶段和开发活动:不同的作者、确立开发阶段和开发活动:不同的作者、专家以及公司对开发阶段和开发活动的数专家以及公司对开发阶段和开发活动的数量和范围的描述都不尽相同。量和范围的描述都不尽相同
9、。在开发过程中记录文档:为了促进不断变在开发过程中记录文档:为了促进不断变化的关联人员之间的有效交流,文档必须化的关联人员之间的有效交流,文档必须随同整个系统开发工作同时展开。随同整个系统开发工作同时展开。建立标准:为了实现或者改进系统集成,组织需建立标准:为了实现或者改进系统集成,组织需要遵从标准。要遵从标准。数据库技术数据库技术 软件技术软件技术 接口技术接口技术 管理过程和项目管理过程和项目 过程管理确保一个组织选定的过程在所有项目中得到过程管理确保一个组织选定的过程在所有项目中得到一致的运用。过程管理还定义和改进选定的过程。一致的运用。过程管理还定义和改进选定的过程。项目管理确保以最小
10、的开销、在规定的时间内、以可项目管理确保以最小的开销、在规定的时间内、以可接受的质量开发信息系统。接受的质量开发信息系统。将信息系统作为重要的投资看待将信息系统作为重要的投资看待 成本效益分析在整个系统开发过程中都要进行成本效益分析在整个系统开发过程中都要进行 分阶段的系统开发方法提供了几次重新评价成本效益、风险和可分阶段的系统开发方法提供了几次重新评价成本效益、风险和可行性的机会行性的机会 大多数系统所有者想从其系统中获得超出投资范围之外的功能大多数系统所有者想从其系统中获得超出投资范围之外的功能 不必害怕取消和返工不必害怕取消和返工 建立多个可行性检查点建立多个可行性检查点 在每个检查点上
11、,所有的费用都被认为是过去的,所以它们同决在每个检查点上,所有的费用都被认为是过去的,所以它们同决策无关策无关 在每个检查点上,分析员应考虑在每个检查点上,分析员应考虑 如果项目不再可行就取消它;如果项目不再可行就取消它;如果项目范围增加了,就重新评价并调整费用和进度;如果项目范围增加了,就重新评价并调整费用和进度;如果不能改变项目预算和进度,并且项目预算和进度不足以实现所有如果不能改变项目预算和进度,并且项目预算和进度不足以实现所有的项目目标,就减少范围。的项目目标,就减少范围。分而治之:通过不断的将一个大系统分解分而治之:通过不断的将一个大系统分解成更容易管理的小系统,分析员可以简化成更容
12、易管理的小系统,分析员可以简化问题解决的过程问题解决的过程 设计系统时应考虑到增长和变化:企业在设计系统时应考虑到增长和变化:企业在不断的变化,业务需求在变,业务的优先不断的变化,业务需求在变,业务的优先次序在变。相应的,支持业务的信息系统次序在变。相应的,支持业务的信息系统也必须不断变化。也必须不断变化。FASTFAST3.2.13.2.1项目确定项目确定3.2.23.2.2项目阶段项目阶段3.2.33.2.3跨生命周期活动跨生命周期活动项目的推动力项目的推动力解决问题解决问题利用机会利用机会执行指示执行指示PIECESPIECES框架框架性能性能PerformancePerformance
13、信息信息InformationInformation经济经济EconomicsEconomics控制控制ControlControl效率效率EfficiencyEfficiency服务服务ServiceService经典项目阶段:经典项目阶段:范围定义阶段范围定义阶段问题分析阶段问题分析阶段需求分析阶段需求分析阶段逻辑设计阶段逻辑设计阶段决策分析阶段决策分析阶段物理设计和集成阶段物理设计和集成阶段构造和测试阶段构造和测试阶段安装和发布阶段安装和发布阶段调查研究(信息收集和数据收集):调查研究调查研究(信息收集和数据收集):调查研究对于一个项目的早期阶段至关重要。对于一个项目的早期阶段至关重要。
14、记录文档和演示汇报:这两种沟通技术在系统记录文档和演示汇报:这两种沟通技术在系统开发项目中很常见。开发项目中很常见。可行性分析:技术可行行、运行可行性、经济可行性分析:技术可行行、运行可行性、经济可行性、进度可行行、风险可行性可行性、进度可行行、风险可行性项目管理和过程管理:过程管理定义了每个项项目管理和过程管理:过程管理定义了每个项目使用的方法。项目管理则是把管理方法应用于目使用的方法。项目管理则是把管理方法应用于单个项目时的实例。单个项目时的实例。顺序开发:要求每个阶段在另一个阶段之后完成,顺序开发:要求每个阶段在另一个阶段之后完成,直到信息系统终结。直到信息系统终结。瀑布开发方法:各个阶
15、段可以在时间上一定程度瀑布开发方法:各个阶段可以在时间上一定程度地相互重叠地相互重叠 迭代(增量)开发方法:完成足够的分析、设计迭代(增量)开发方法:完成足够的分析、设计和实现以便能够完全开发新系统的一部分并将其和实现以便能够完全开发新系统的一部分并将其尽快投入运行。一旦系统的这个版本实现了,该尽快投入运行。一旦系统的这个版本实现了,该策略就进行另外的分析、设计和实现,以便发布策略就进行另外的分析、设计和实现,以便发布系统的下一个版本。系统的下一个版本。系统开发方法学和策略分类系统开发方法学和策略分类3.3.1 3.3.1 模型驱动开发路线模型驱动开发路线3.3.2 3.3.2 快速应用开发路
16、线快速应用开发路线3.3.3 3.3.3 商用应用软件包开发路线商用应用软件包开发路线3.3.4 3.3.4 混合开发路线混合开发路线优点:优点:w需求分析更全面更好地文档化需求分析更全面更好地文档化w使用图形比使用语言更容易验证业务需求和系统设计使用图形比使用语言更容易验证业务需求和系统设计w更容易确定、概念化和分析多种技术方案更容易确定、概念化和分析多种技术方案w设计说明更合理、稳定、适应性设计说明更合理、稳定、适应性w使用全面规格说明,容易正确地构造系统使用全面规格说明,容易正确地构造系统缺点:缺点:w项目持续时间长,需要时间收集实事、绘制和验证模型项目持续时间长,需要时间收集实事、绘制
17、和验证模型w模型能达到的需求理解程度最多和用户理解程度一样模型能达到的需求理解程度最多和用户理解程度一样w降低用户在项目中的主动参与降低用户在项目中的主动参与w不够灵活,用户在设计之前必须完全说明需求,设计必须完全记录不够灵活,用户在设计之前必须完全说明需求,设计必须完全记录下技术说明才能构造下技术说明才能构造三种流行的模型驱动开发技术:三种流行的模型驱动开发技术:过程建模过程建模流程图流程图数据流图数据流图数据建模数据建模实体关系图实体关系图对象建模对象建模对象对象RADRAD基本思想:基本思想:让用户主动参与到分析、设计和构造活动中让用户主动参与到分析、设计和构造活动中将系统开发组织成重点
18、突出的研讨会,让所有关联人员一同参与将系统开发组织成重点突出的研讨会,让所有关联人员一同参与通过一种迭代的构造方法加速需求分析与设计阶段通过一种迭代的构造方法加速需求分析与设计阶段提前使用户看到可工作系统提前使用户看到可工作系统原型原型 小规模、有代表性的或者可工作的模型,这个模型反映了信息小规模、有代表性的或者可工作的模型,这个模型反映了信息系统的用户需求或者建议设计。任何原型都可能忽略某些功能和特系统的用户需求或者建议设计。任何原型都可能忽略某些功能和特征,直到原型最终完全进化成需求的一个可接受的实现系统为止。征,直到原型最终完全进化成需求的一个可接受的实现系统为止。时间盒时间盒 在一段不
19、能延长的时间内(通常在一段不能延长的时间内(通常60-90 60-90 天),系统天),系统的某个版本必须在这个时间段内投入运行。的某个版本必须在这个时间段内投入运行。优点:优点:有规律向用户和管理层发布运行系统,提高和保持有规律向用户和管理层发布运行系统,提高和保持管理者和用户对项目的热情,因为系统工作版本按管理者和用户对项目的热情,因为系统工作版本按照有规律的模式进行发布。照有规律的模式进行发布。RADRAD优点:优点:适用于用户需求不确定不明确的项目适用于用户需求不确定不明确的项目鼓励用户和管理层主动参与鼓励用户和管理层主动参与项目具有较高可视性和支持程度项目具有较高可视性和支持程度用户
20、和管理层看到可工作的方案更快些用户和管理层看到可工作的方案更快些错误和遗漏更早发现错误和遗漏更早发现测试和培训是原型法的自然副产品测试和培训是原型法的自然副产品迭代方法更自然,因为变化是必然的迭代方法更自然,因为变化是必然的RADRAD缺点:缺点:可能增加运行、支持和维护费用可能增加运行、支持和维护费用省略问题分析阶段省略问题分析阶段RADRAD可能不鼓励分析员考虑其他更有价值的技术方案可能不鼓励分析员考虑其他更有价值的技术方案对速度的重视可能会破坏质量对速度的重视可能会破坏质量抛弃原型可能被视为产品的时间和精力的损失抛弃原型可能被视为产品的时间和精力的损失 为了实现业务需求,必须仔细地选择封
21、装为了实现业务需求,必须仔细地选择封装式软件方案式软件方案 封装式软件方案不仅需要花钱购买,而且封装式软件方案不仅需要花钱购买,而且也可能更需要花钱实现也可能更需要花钱实现 软件包通常必须定制并集成到企业中软件包通常必须定制并集成到企业中 软件包很少能实现让用户完全满意的所有软件包很少能实现让用户完全满意的所有业务需求业务需求优点优点更快实现系统更快实现系统许多企业没有能力提供人力和专业知识开发内部许多企业没有能力提供人力和专业知识开发内部方案方案将开发费用平摊到客户将开发费用平摊到客户软件供应商负责对软件进行改进和修改软件供应商负责对软件进行改进和修改利用同行业的相似性,减少重复开发利用同行
22、业的相似性,减少重复开发缺点缺点 形成对供应商的依赖形成对供应商的依赖购买系统很少能反映理想方案购买系统很少能反映理想方案改善业务过程以适应软件会遇到阻力改善业务过程以适应软件会遇到阻力 任何一个项目都可以选择使用多条开发路线的组任何一个项目都可以选择使用多条开发路线的组合合 使用什么开发路线总是在范围定义阶段期间进行使用什么开发路线总是在范围定义阶段期间进行选择,并作为工作陈述的一部分进行协商选择,并作为工作陈述的一部分进行协商 一种常见的混合了模型驱动开发路线和快速应用一种常见的混合了模型驱动开发路线和快速应用开发路线的策略是增量开发策略开发路线的策略是增量开发策略。3.4.1 3.4.1
23、 计算机辅助系统工程计算机辅助系统工程3.4.2 3.4.2 应用开发环境应用开发环境3.4.3 3.4.3 过程和项目管理器过程和项目管理器 Computer-aided software engineering(CASE)使用支持系统模型的绘图和分析的自动化工具。有些使用支持系统模型的绘图和分析的自动化工具。有些CASE CASE 工具提供原型和代码产生能力。工具提供原型和代码产生能力。CASE 资料库(资料库(CASE repository)系统开发人员的数据库,存储系统模型、详细描述和说系统开发人员的数据库,存储系统模型、详细描述和说明、以及系统其他开发产品的地方。也称字典或者百科明、
24、以及系统其他开发产品的地方。也称字典或者百科全书。全书。正向工程正向工程 CASE CASE工具的一种能力,能够直接从系统模型生成初始工具的一种能力,能够直接从系统模型生成初始的软件或者数据库代码。的软件或者数据库代码。逆向工程逆向工程 CASE CASE工具的一种能力,能够直接从软件或者数据库代工具的一种能力,能够直接从软件或者数据库代码生成初始的系统模型。码生成初始的系统模型。应用开发环境应用开发环境 Application development Application development environments(ADEsenvironments(ADEs)集成化的软件开发工具,提
25、供了以最快速度和最高质集成化的软件开发工具,提供了以最快速度和最高质量开发新系统程序所需要的全部工具。也称集成开发环量开发新系统程序所需要的全部工具。也称集成开发环境境 integrated development environment(IDE)integrated development environment(IDE)ADE ADE 工具工具:程序语言或者解释器程序语言或者解释器界面构造工具界面构造工具中间件中间件测试工具测试工具版本控制工具版本控制工具帮助文件著作工具帮助文件著作工具资料库链接资料库链接过程管理软件过程管理软件 Process manager application P
26、rocess manager application 自动化工具,帮助记录文档并管理方法学和路线及自动化工具,帮助记录文档并管理方法学和路线及其交付成果和质量管理标准。也称其交付成果和质量管理标准。也称methodwaremethodware.项目管理软件项目管理软件 Project manager application Project manager application 自动化工具,帮助规划系统开发活动、估计和分派自动化工具,帮助规划系统开发活动、估计和分派资源(人力和经费)、调动活动和资源、按照进度和资源(人力和经费)、调动活动和资源、按照进度和预算监控进展、控制和修改进度资源、以及报告项目预算监控进展、控制和修改进度资源、以及报告项目进展。进展。