资源预览内容
第1页 / 共54页
第2页 / 共54页
第3页 / 共54页
第4页 / 共54页
第5页 / 共54页
第6页 / 共54页
第7页 / 共54页
第8页 / 共54页
第9页 / 共54页
第10页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
系统分析与设计,系统开发过程 FAST开发过程 开发路线和方法 自动化工具和技术,本讲主要内容,系统开发过程,什么是过程? 一系列有序活动的集合。 什么是系统开发过程? 一组活动、方法、最佳实践、交付成果和自动化工具,系统关联人员用它们开发和维护信息系统及软件。 可以看成是完成系统开发所需要完成的任务框架。 为什么要使用标准开发过程? 信息系统是复杂产品;涉及各种要素和关联人员。 缺乏标准开发过程的系统项目失败率高。 通过使用开发过程能够把复杂问题简单化。,系统开发过程,使用系统开发过程的优点? 提高效率,管理层可以在项目之间调动资源; 产生一致的文档,减少维护系统的生命周期费用; 改善质量,满足质量管理要求。,能力成熟度模型产生的背景? 为了保证软件产品的质量,80年代中期,美国联邦政府提出对软件承包商的软件开发能力进行评估的要求。 1987年9月,美国卡内基-梅隆大学软件工程研究所 (CMU/SEI)发布了软件过程成熟度框架,并提供了软件过程评估和软件能力评估两种评估方法和软件成熟度提问单。 1991年,SEI将软件过程成熟度框架进化为软件能力成熟度模型(Capability Maturity Model For Software,简称SW-CMM)。1991年8月,SEI发布了最早的SW-CMM v1.0。 经过两年的试用,1993年SEI正式发布了SW-CMM v1.1,这是目前使用最为广泛的版本。 目前,CMM认证已经成为世界公认的软件产品进入国际市场的通行证。,系统开发过程,能力成熟度模型的基本出发点? 软件产品质量很大程度上取决于软件开发和维护过程的质量。 软件过程是人员密集和设计密集型的作业过程,从业人员如果缺乏严格训练,难以建立成功改进软件过程的基础。 CMM框架勾画了从无定规的混沌过程向训练有素的成熟过程的演进途径。 软件能力成熟度模型基于众多软件专家的实践经验,是组织进行软件过程改善和软件过程评估的一个有效的指导框架。,系统开发过程,CMM的主要作用? 用于帮助事先确定承包商的软件能力; 用于软件组织的过程改进。 思考:软件能力评估与软件过程评估的区别? CMM涵盖的主要内容? CMM1.1版包括两个部分: 软件能力成熟度模型:描述模型的结构,并给出该模型的基本构件的定义。 能力成熟度模型的过程目标:详述每个“关键过程域”涉及的“过程目标” 。,系统开发过程,CMM模型,系统开发过程,第1级初始级: 系统开发项目没有规定的过程可以遵循 开发成败主要取决于项目团队的经验和技能 项目开发过程不可预测、不可重复 项目之间的文档不一致 第2级可重复级: 建立项目管理过程和实践跟踪项目成本、进度、功能 组织采用开发过程,但项目与项目之间的开发过程可能不同 开发成败仍主要取决于项目团队的经验和技能. 可以重复早期项目的成功经验,系统开发过程,第3级已定义级: 标准化系统开发过程 (有时称为 “方法学”) 所有项目都使用这个过程的裁减版本来开发和维护系统或软件 每个项目都产生一致且高质量的文档和交付成果 开发过程稳定、可预测、可重复 第4级已管理级: 建立可度量的质量和生产率目标 标准系统开发过程和产品质量的度量数据存在数据库里,并根据数据提高项目管理水平 管理层主动而不是被动应对系统开发问题 系统遇到不可预期问题时,开发过程仍可以根据对问题的影响的预测和度量进行调整,系统开发过程,第5级优化级: 根据4级建立的度量和数据分析,对标准化过程进行持续监督和改进。 调整开发过程中的技术和最佳实践,包括调整开发过程本身。 经验教训在组织内共享,保证质量,并消除低效率。 注意,每个等级都是下一等级的先决条件。 思考: 成熟度分级的优点是什么?,系统开发过程,CMM的过程目标 关键过程域一组关联活动,通过执行这些活动可以实现既定的过程能力。 过程目标是使关键过程方面得以有效实现和制度化的基础设施和活动。 各过程目标按照每个关键过程域的5个公共特性归类,逐一详细描述。 达到某等级的衡量标准是什么? 达到某个关键过程的全部过程目标就认为实现了该关键过程,实现了某成熟度及其低于各级所含的全部关键过程,就认为达到了该级。,系统开发过程,能力成熟度模型的结构,系统开发过程,系统开发过程,含121个过程目标,增含108个过程目标,增含32个过程目标,增含59个过程目标,关键过程域有哪些公共特性? 实施保证(执行承诺)为了建立实施相应KPA必须采取的活动。包括制定企业范围内的政策和高层管理者的责任。 实施能力实施KPA的前提条件,满足条件后才可能实施。实施能力主要包括资源保证、人员培训等。 执行活动描述执行KPA所要求的必要角色和步骤。包括任务计划、执行、执行情况跟踪等。 度量分析描述过程的度量与分析要求,确定执行活动的状态和有效性 实施验证 (评审与审计)验证执行活动是否与建立的过程一致。涉及管理评审、审计、质量保证活动。 执行活动是唯一与项目执行相关的属性。 其余四项属性涉及到软件CMM能力基础设施的建立。,系统开发过程,e.g. 实施保证(执行承诺) 实施能力 执行活动 度量分析. 实施验证 (评审与审计).,系统开发过程,实施CMM的效果?,资料来源:Master Systems公司,系统开发过程,思考:实施CMM存在哪些问题和障碍?,系统开发过程,系统生命周期,系统开发方法,什么是系统开发方法? 是一个十分正式且精确的系统开发过程。 为系统开发人员和项目经理定义了一组活动、方法、最佳实践、交付成果和自动化工具。 用来开发和维护大部分或者所有的信息系统和软件。 使用系统开发方法的优点? 提供一个一致而且可再生的方法应用于所有项目。 降低了错误风险。 为各项目产生完整且一致的文档。 所有用户都使用同样过程,可以在项目间灵活分配系统人员。 虽然开发团队和成员不断变化,但后者可以方便获得和理解以前的工作。,系统开发方法,系统开发有哪些基本原理? 让用户参与 使用一套问题解决步骤 确立开发阶段和开发活动 在开发过程中记录文档 建立标准 管理过程和项目 将信息系统作为重要投资 不害怕取消和返工 分而治之 设计系统时考虑到增长和变化,系统开发方法,FAST 项目确定 项目阶段 跨生命周期活动,系统开发方法,项目如何确定? 项目的推动力 解决问题 利用机会 执行指示 PIECES框架 性能Performance 信息Information 经济Economics 控制Control 效率Efficiency 服务Service 项目指导委员会的作用? 项目指导委员会是由系统所有者和IT经理组成的管理机构。 主要职责是给候选的系统开发项目排序,并批准相应项目。,系统开发方法,FAST方法的经典项目阶段? 范围定义阶段 问题分析阶段 需求分析阶段 逻辑设计阶段 决策分析阶段 物理设计和集成阶段 构造和测试阶段 安装和发布阶段,系统开发方法,系统开发方法,有哪些跨生命周期的项目活动? 调查研究(信息收集和数据收集) 记录文档和演示汇报 可行性分析 项目管理和过程管理,系统开发方法,系统开发方法学和策略分类,系统开发方法,开发路线,有哪些主要的开发路线? 模型驱动开发路线 快速应用开发路线 商用应用软件包开发路线 混合开发路线,开发路线,模型驱动开发路线,模型驱动开发路线优点: 需求分析更全面更好地文档化 更容易确定、概念化和分析多种技术方案 系统设计更合理、稳定、适应性 使用全面规格说明,容易正确地构造系统 模型驱动开发路线缺点: 项目持续时间长,需要时间收集事实、绘制和验证模型 模型能达到的需求理解程度最多和用户理解程度一样 降低用户在项目中的主动参与 不够灵活,用户在设计之前必须完全说明需求,设计必须完全记录下技术说明才能构造,开发路线,模型驱动开发技术? 过程建模 流程图 结构图 数据建模 实体关系图 数据库设计 对象建模 对象,开发路线,开发路线,快速应用开发路线 R A D,RAD基本思想: 让用户主动参与到分析、设计和构造活动中 让系统开发组成重点突出的研讨会,让所有关联人员一同参与 通过一种迭代的构造方法加速需求分析与设计阶段 提前用户看到工作系统的时间 什么是原型? 小规模、有代表性的或者可工作的模型,这个模型反映了信息系统的用户需求或者建议设计。 任何原型都可能忽略某些功能和特征,直到原型最终完全进化成需求的可接受实现模型为止。,开发路线,时间盒 在一段不能延长的时间内(通常60-90 天),系统的某个版本必须在这个时间段内投入运行。 优点: 有规律向用户和管理层发布运行系统,提高和保持管理者和用户对项目的热情,因为系统工作版本按照有规律的模式进行发布。,开发路线,RAD优点: 适用于用户需求不确定不明确的项目 鼓励用户和管理层主动参与 项目具有较高可视性和支持程度 用户和管理层看到可工作的方案更快些 错误和遗漏更早发现 测试和培训是原型法的自然副产品 迭代方法更自然,因为变化是必然的 RAD缺点: 可能增加运行、支持和维护费用 省略问题分析阶段 RAD可能不鼓励分析员考虑其他更有价值的技术方案 对速度的重视可能会破坏质量 抛弃原型可能被视为产品的时间和精力的损失,开发路线,建议申报书Request for proposal (RFP) 与软件供应商交流业务、技术和支持需求的正式文档,这些软件供应商希望竞争销售应用软件包和服务。 报价申报书Request for quotation (RFQ) 与单个软件供应商交流业务、技术和支持需求的正式文档, 该软件供应商已经被选中提供应用软件包和服务。 差距分析Gap analysis 将商用软件包的业务和技术需求与特定商用软件包的功能特征比较,以定义不能够满足的需求。,开发路线,商用软件包路线优点 更快实现系统 将开发费用平摊到客户 软件供应商负责对软件进行改进和修改 利用同行业的相似性,减少重复开发 商用软件包路线缺点 形成对供应商的依赖 购买系统很少能反映理想方案 改善业务过程以适应软件会遇到阻力,开发路线,商用软件包开发路线,开发路线,混合开发路线,开发路线,假设我们要开发一个某大学的人事管理系统,该大学的组织结构如下:该大学有10个学院,以及学生处、教务处等机构;每个学院有4个年级的本科生,每个年级有10个班,每个班级有30个左右的本科生。其中牵涉到的范围有上万名学生的学籍管理,上千名教职工的教务、科研管理等工作。开发时间要求一年左右。 你打算采用哪种软件生命周期模型?为什么?,课堂讨论,假定你被任命为一家软件公司的项目负责人,你的工作是管理该公司已经被广泛使用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并已经对外公布。你打算采用哪种软件生命周期模型?为什么?,课堂讨论,自动化工具和技术,计算机辅助系统工程 应用开发环境 过程和项目管理器,Computer-aided systems engineering (CASE) 使用支持系统模型的绘图和分析的自动化工具。有些CASE 工具提供原型和代码产生能力。 CASE 资料库(CASE repository ) 系统开发人员的数据库,存储系统模型、详细描述和说明、以及系统其他开发产品的地方。也称字典或者百科全书。 Forward engineering CASE工具的一种能力,能够直接从系统模型生成初始的软件或者数据库代码。 Reverse engineering CASE工具的一种能力,能够直接从软件或者数据库代码生成初始的系统模型。,自动化工具和技术,自动化工具和技术,CASE工具包括: 作图工具 字典工具 设计工具 质量管理工具 文档记录工具 设计和代码生成工具,自动化工具和技术,自动化工具和技术,传统的系统开发与基于CASE的开发 传统的系统开发 基于CASE的开发 强调编码和测试 强调分析和设计 基于书面的规范 快速交互的原型技术 人工编码 自动化的编码生成 手工文档 自动化的文档生成 密集的软件测试 自动化的设计检测 维护代码和文档 维护设计规
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号