上海财经大学信息管理与工程学院系统分析与设计_第1页
上海财经大学信息管理与工程学院系统分析与设计_第2页
上海财经大学信息管理与工程学院系统分析与设计_第3页
上海财经大学信息管理与工程学院系统分析与设计_第4页
上海财经大学信息管理与工程学院系统分析与设计_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

系统分析与设计

系统开发过程fast开发过程开发路线和方法自动化工具和技术本讲主要内容系统开发过程什么是过程?一系列有序活动的集合。什么是系统开发过程?一组活动、方法、最佳实践、交付成果和自动化工具,系统关联人员用它们开发和维护信息系统及软件。可以看成是完成系统开发所需要完成的任务框架。为什么要使用标准开发过程?信息系统是复杂产品;涉及各种要素和关联人员。缺乏标准开发过程的系统项目失败率高。通过使用开发过程能够把复杂问题简单化。系统开发过程使用系统开发过程的优点?提高效率,管理层可以在项目之间调动资源;产生一致的文档,减少维护系统的生命周期费用;改善质量,满足质量管理要求。能力成熟度模型产生的背景?为了保证软件产品的质量,80年代中期,美国联邦政府提出对软件承包商的软件开发能力进行评估的要求。1987年9月,美国卡内基-梅隆大学软件工程研究所(cmu/sei)发布了软件过程成熟度框架,并提供了软件过程评估和软件能力评估两种评估方法和软件成熟度提问单。1991年,sei将软件过程成熟度框架进化为软件能力成熟度模型(capabilitymaturitymodelforsoftware,简称sw-cmm)。1991年8月,sei发布了最早的sw-cmmv1.0。经过两年的试用,1993年sei正式发布了sw-cmmv1.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.★

实施保证(执行承诺)▲

实施能力♣

执行活动◆

度量分析.♠实施验证(评审与审计).关键过程域活动需求管理软件项目计划项目追踪与监督软件子合同管理软件质量保证软件配置管理目标★制定组织策略♣制定规程▲组织▲获取需求文档▲提供资源▲培训♣指导kpi实施◆度量与报告♠评审活动系统开发过程cmmprojectstatisticsforaprojectresultingin200,000linesofcodeorganization’scmmlevelprojectduration(months)projectperson-monthsnumberofdefectsshippedmediancost($millions)lowestcost($millions)highestcost

($millions)130600615.51.8100+218.5143121.3.961.7315807.728.518.933实施cmm的效果?资料来源:mastersystems公司系统开发过程思考:实施cmm存在哪些问题和障碍?系统开发过程lifecyclestage使用系统选择的it系统开发使用系统开发方法学运行与维护lifecyclestage报废转换系统生命期系统生命周期系统开发方法什么是系统开发方法?是一个十分正式且精确的系统开发过程。为系统开发人员和项目经理定义了一组活动、方法、最佳实践、交付成果和自动化工具。用来开发和维护大部分或者所有的信息系统和软件。使用系统开发方法的优点?提供一个一致而且可再生的方法应用于所有项目。降低了错误风险。为各项目产生完整且一致的文档。所有用户都使用同样过程,可以在项目间灵活分配系统人员。虽然开发团队和成员不断变化,但后者可以方便获得和理解以前的工作。系统开发方法系统开发有哪些基本原理?让用户参与使用一套问题解决步骤确立开发阶段和开发活动在开发过程中记录文档建立标准管理过程和项目将信息系统作为重要投资不害怕取消和返工分而治之设计系统时考虑到增长和变化系统开发方法fast项目确定项目阶段跨生命周期活动系统开发方法项目如何确定?项目的推动力解决问题利用机会执行指示pieces框架性能performance信息information经济economics控制control效率efficiency服务service项目指导委员会的作用?项目指导委员会是由系统所有者和it经理组成的管理机构。主要职责是给候选的系统开发项目排序,并批准相应项目。系统开发方法fast方法的经典项目阶段?范围定义阶段问题分析阶段需求分析阶段逻辑设计阶段决策分析阶段物理设计和集成阶段构造和测试阶段安装和发布阶段系统开发方法系统开发方法有哪些跨生命周期的项目活动?调查研究(信息收集和数据收集)记录文档和演示汇报可行性分析项目管理和过程管理系统开发方法系统开发方法学和策略分类系统开发方法开发路线有哪些主要的开发路线?模型驱动开发路线快速应用开发路线商用应用软件包开发路线混合开发路线开发路线模型驱动开发路线模型驱动开发路线优点:需求分析更全面更好地文档化更容易确定、概念化和分析多种技术方案系统设计更合理、稳定、适应性使用全面规格说明,容易正确地构造系统模型驱动开发路线缺点:项目持续时间长,需要时间收集事实、绘制和验证模型模型能达到的需求理解程度最多和用户理解程度一样降低用户在项目中的主动参与不够灵活,用户在设计之前必须完全说明需求,设计必须完全记录下技术说明才能构造开发路线模型驱动开发技术?过程建模流程图结构图数据建模实体关系图数据库设计对象建模对象开发路线开发路线快速应用开发路线radrad基本思想:让用户主动参与到分析、设计和构造活动中让系统开发组成重点突出的研讨会,让所有关联人员一同参与通过一种迭代的构造方法加速需求分析与设计阶段提前用户看到工作系统的时间什么是原型?小规模、有代表性的或者可工作的模型,这个模型反映了信息系统的用户需求或者建议设计。任何原型都可能忽略某些功能和特征,直到原型最终完全进化成需求的可接受实现模型为止。开发路线时间盒

–在一段不能延长的时间内(通常60-90天),系统的某个版本必须在这个时间段内投入运行。优点:有规律向用户和管理层发布运行系统,提高和保持管理者和用户对项目的热情,因为系统工作版本按照有规律的模式进行发布。开发路线rad优点:

适用于用户需求不确定不明确的项目鼓励用户和管理层主动参与项目具有较高可视性和支持程度用户和管理层看到可工作的方案更快些错误和遗漏更早发现测试和培训是原型法的自然副产品迭代方法更自然,因为变化是必然的rad缺点:可能增加运行、支持和维护费用省略问题分析阶段rad可能不鼓励分析员考虑其他更有价值的技术方案对速度的重视可能会破坏质量抛弃原型可能被视为产品的时间和精力的损失开发路线建议申报书requestforproposal(rfp)与软件供应商交流业务、技术和支持需求的正式文档,这些软件供应商希望竞争销售应用软件包和服务。报价申报书requestforquotation(rfq)

与单个软件供应商交流业务、技术和支持需求的正式文档,该软件供应商已经被选中提供应用软件包和服务。差距分析gapanalysis

将商用软件包的业务和技术需求与特定商用软件包的功能特征比较,以定义不能够满足的需求。开发路线商用软件包路线优点更快实现系统将开发费用平摊到客户软件供应商负责对软件进行改进和修改利用同行业的相似性,减少重复开发商用软件包路线缺点

形成对供应商的依赖购买系统很少能反映理想方案改善业务过程以适应软件会遇到阻力开发路线商用软件包开发路线开发路线混合开发路线开发路线假设我们要开发一个某大学的人事管理系统,该大学的组织结构如下:该大学有10个学院,以及学生处、教务处等机构;每个学院有4个年级的本科生,每个年级有10个班,每个班级有30个左右的本科生。其中牵涉到的范围有上万名学生的学籍管理,上千名教职工的教务、科研管理等工作。开发时间要求一年左右。你打算采用哪种软件生命周期模型?为什么?课堂讨论假定你被任命为一家软件公司的项目负责人,你的工作是管理该公司已经被广泛使用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并已经对外公布。你打算采用哪种软件生命周期模型?为什么?课堂讨论自动化工具和技术计算机辅助系统工程应用开发环境过程和项目管理器computer-aidedsystemsengineering(case)

–使用支持系统模型的绘图和分析的自动化工具。有些case工具提供原型和代码产生能力。case资料库(caserepository

)–系统开发人员的数据库,存储系统模型、详细描述和说明、以及系统其他开发产品的地方。也称字典或者百科全书。forwardengineering–case工具的一种能力,能够直接从系统模型生成初始的软件或者数据库代码。reverseengineering–case工具的一种能力,能够直接从软件或者数据库代码生成初始的系统模型。自动化工具和技术自动化工具和技术case工具包括:作图工具字典工具设计工具质量管理工具文档记录工具设计和代码生成工具自动化工具和技术sdlc阶段关键活动case工具使用项目的确认和选择显示和结构化高层组织信息用图表和矩阵工具来创建和结构化信息项目的启动和规划开发项目的范围和可行性用知识库和文档生成器来开发项目计划分析确定和结构化系统需求用图来表示流程、逻辑及数据模型逻辑和物理设计创建新的系统设计利用窗体和报告生成器进行原型设计;利用分析和文档生成器定义规范实施设计转化为信息系统利用代码生成器来分析、窗体和报告生成器来开发系统;利用文档生成器来开发用户文档维护信息系统的发展、演化所有的工具都被使用(生命周期的重复)自动化工具和技术传统的系统开发与基于case的开发

传统的系统开发

基于case的开发

强调编码和测试

强调分析和设计

基于书面的规范

快速交互的原型技术

人工编码

自动化的编码生成

手工文档

自动化的文档生成

密集的软件测试

自动化的设计检测

维护代码和文档

维护设计规范自动化工具和技术case工具分类:需求分析工具:国产系列playcase;国外系列bpwin;rationalrose软件设计工具:microsoftvisio;powerdesigner;rationalrose数据库设计工具:数据库设计工具:erwin;er/studio数据库开发工具:oracle/form,oracle/developer;objectbrowserfororacle自动化工具和技术case工具分类:项目管理工具:项目管理工具:microsoftproject配置管理工具:visualsourcesafe;wincvs;rationalclearcase程序设计工具:ms系列:visualstudio.net;borland系列:jbuilder;c++builder;delphi;其他powerbuilder,macromedia系列测试工具:自动化系列:panorama;非自动化系列softice;junit自动化工具和技术应用开发环境

(ades)–集成化的软件开发工具,提供了以最快速度和最高质量开发新系统程序所需要的全部工具。也称集成开发环境

(ide)ade包含哪些工具?程序语言或者解释器界面构造工具中间件测试工具版本控制工具帮助文件著作工具资料库链接自动化工具和技术某大型电气公司erp会计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论