第三章-信息系统的获取、开发和实施(上)_第1页
第三章-信息系统的获取、开发和实施(上)_第2页
第三章-信息系统的获取、开发和实施(上)_第3页
第三章-信息系统的获取、开发和实施(上)_第4页
第三章-信息系统的获取、开发和实施(上)_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

A、业务实现A1、项目组合与项目群管理项目的概念(Project)项目是在特定条件下,具有特定目标的一次性任务,是在一定时间内,满足一系列特定目标的多项相关工作的总称;项目群项目群(ProjectProgram)可以看成是由一系列项目(Project)和有时间边界的任务(Task)组成,这些项目和任务通过共同的目标、共同的预算、相互交织的日程和策略等紧密地联系在一起;项目群也具有一定的时间框架和组织边界,但项目群更复杂,具有更长的工期和更高的预算,面临更高的风险,同时具有更高的战略重要性。一个典型的项目群就是实施大型ERP系统,例如SAP,另一个非IT的项目群的例子就是企业的并购。成功地实施项目群,需要对以下内容进行有效管理:♦项目群的发起人(Sponsor)向项目群经理和项目群团队发布任务书;♦确定项目群的范围、财务(成本、资源和资金流等)、日程安排、目标及交付物;♦项目群所处的环境;♦项目群的沟通与文化;♦项目群的组织与角色,包括项目群所有者、项目群管理者、项目群团队和项目群办公室、专家组等;♦可利用综合性管理工具,例如项目管理指南、标准的项目计划和项目管理的市场指标。项目组合在一个给定的时间点上,组织中正在进行的所有项目集合称为项目组合(Projectportfolio);项目组合由某一个时间点上的多个项目群和项目松散组合而成。但即使是松散结合在一起的项目组合也需要进行管理;对项目组合进行管理的目的是:♦优化项目组合的结果(不是针对单个项目的结果)♦对项目进行优先级排列,并进行日程安排♦协调对资源的使用(内部或外部资源)♦项目中知识的传递项目组合、项目群和项目之间的比较(略)P139业务效益分析与管理层批准规划IT项目时都需要先进行业务效益(Businesscase)分析,组织可以获得的业务利益才是实施IT项目的源动力;项目可行性分析就是一种业务效益分析,对有关问题进行的早期研究,以评估解决方法是否可行;无论在项目的哪个阶段,如果业务效益分析表明由于成本增加或预期的利益不能实现使得项目不再有意义时,项目发起人或指导委员会应当考虑是否要中止项目的执行;项目实施中业务效益发生变化时,应当通过部门规划和审批流程对项目重新进行评估和批准。业务利益的实现对利益实现不应当只局限于项目周期,应当放眼于更长的阶段中来观察项目可能给组织带来的利益;进行阶段性的评估是实现利益过程的重要因素。经常要在系统实施6-18个月后进行实施后评审,以评价利益实现的程度;如果计划中的项目利益无法实现,组织应当及时检查和调整策略。这个概念称为利益管理或利益实现。A2.项目管理结构项目管理项目管理就是把各种资源应用于目标,以实现项目的目标,满足各方面既定的需求;项目管理的四个要素:环境、资源、目标、组织;项目管理的方式是目标管理;项目的组织通常是临时性、柔性和扁平化的组织;管理过程贯穿着系统工程的思想;管理的方法、工具和手段具有先进性和开放性,用到多学科的知识和工具;项目管理结构(略)项目环境项目环境关系的设计是项目管理活动之一,其目的就是要确定项目的所有相关环境,这些环境因素对项目的规划与成功具有重要影响。♦组织中项目的重要性;♦组织战略和项目之间的联系;♦与其他项目之间的关系;♦项目与业务效益分析之间的关系。项目组织形式职能式单列式矩阵式各种项目形式的比较项目的组织结构P142项目沟通与文化沟通方式♦一对一的会见♦项目启动会议♦项目初期的研讨会♦以上方式的综合使用项目文化♦积极的项目文化的可以促进团队成员更好地理解预期的目标和行动的方向;♦建设项目文化的方法有:–明确对项目使命的声明;–建立正式的项目名称和标识;–制定项目团队成员的会面规则及沟通约定;–妥善处理与项目有关的社会事务等。项目目标定义项目目标的方法就是建立对象分解结构(ObjectBreaksownStructure—OBS),对象分解结构由项目解决方案的各个组件及组件之间的等级关系组成;建立项目工作分解结构(WorkBreaksownStructure—WBS),对满足OBS要求的所有工作进行结构化管理;WBS代表了项目中可管理和可控制的工作单元,既成为项目的重要沟通工具,又构成了成本预算和资源规划的基线;与OBS相比,WBS并不包括要实施的解决方案中的基本元素,而是表示为各种工作包(WorkPackages—WPs)。每一个WP必须有明确的所有者,并列出主要目标,同时也可能列出相关的附加目标和抽象目标;WP规范应当清楚地描述对其他WP的依赖性,并定义评价绩效和获得的目标的方法;为了更好地沟通,通常要制定出行动列表(To-doLists),其中记载了与WP相关的要完成的工作,并分配了一定的职责和完成任务的最后期限。项目中的团队及个人的角色和职责高级管理层-承诺对项目负责,并批准完成该项目所必须的资源,来自于高层的承诺有助于推动项目的完成。用户管理部门-拥有项目和最终系统的所有权,分派合格的用户代表到项目团队中,积极地参与系统的需求定义、验收测试和用户培训。项目指导委员会-项目指导委员会对项目工作提供总体指导,并确保对项目有影响的各方都能参与到项目决策中来;项目发起人-为项目提供基金,并与项目经理配合工作以定义项目成功的衡量标准;系统开发管理部门-为有效地开发、安装和运行所要求的应用系统,要对软件和硬件环境提供必要的技术支持;项目经理-对项目进行日常管理工作,确保项目中的每一项活动与整体的方向保持一致;系统开发项目小组-目标是完成分配的开发任务;用户项目小组-目标是完成分配的工作任务(主要是配合需求调查和进行验收测试);安全主管-基于公司安全政策和程序的数据分类,确保系统控制和支持过程可以提供有效的保护水平;质量保证-在每一个开发阶段期间和阶段结束时,评价结果及其交付物,并确认与需求的符合性。A3、项目管理实务目标对项目实施进行管理、遵守项目需求;平衡范围、时间、成本、质量和风险等方面的不同要求,生产出高质量的产品;调整产品规格,计划和管理体系,以满足不同项目干系人的需求,并管理他们的期望;项目管理过程♦启动过程-定义一个项目或项目阶段的工作与活动,在项目启动文件PID和项目请求文件PRD得到批准后正式启动项目;♦计划过程-一拟订、编制和修订一个项目或项目阶段的工作目标、任务、工作计划方案、资源供应计划、成本预算、计划应急措施等工作;♦执行过程-组织和协调人力资源及其他资源,组织和协调各项任务与工作,激励项目团队完成既定的工作计划,生产项目产出物等工作;♦控制过程-制定标准、监督和测量项目工作的实际情况、分析差异和问题、采取纠偏措施等工作;♦收尾过程-制定一个项目或项目阶段的移交与接收条件,并完成项目或项目阶段成果的移交,从而使项目顺利结束。项目各过程的关系A4.项目管理技术软件规模评估确定需开发软件的相对大小,以指导资源分配、时间及成本估算。方法:♦源代码行(SLOC)的单点估算方法–简单易用,但不精确。♦功能点分析(FPA)–它在大型商业系统开发的复杂度估算中广泛采用,但在操作系统软件、过程控制软件、通过、工程等软件的规模估算并不适用♦COCOMO2、DeMarco、Walston-felix软件工作量估算系统开发计划应该根据评估每个任务所需要的功能工作量进行分析。♦先计算项目所消耗的人力时间和机器时间♦两种时间按一定比率折合相加,得到总资源需求度量♦每一个阶段都需求进行资源核算,以便管理与控制。软件成本估算项目的成本估算包括许多因素:♦人力成本、办公费用、管理费用、设备和软件等的购置费用、场地租金、旅差费等等。项目成本的估算取决于组织所采用的成本核算方法。♦一般是从历史数据求出生产率度量和每行成本,即行/PM(人月)和元/行,则LOC的值与元/行相乘得到成本,用LOC值与行/PM相除得到工作量。–例如:1999年美国软件开发人员开发效率是9kloc/人年,据些可推算出人力成本♦其他项目成本的估算取决于公司所采用的成本核算方法。有的公司某些费用并没有计入项目成本中,而是按管理费用等分摊。软件项目计划根据工作量制定项目计划,包括人员安排、工作量分解、开始和完成时间等等。可以根据历史数据或行业模型决定所需的资源并落实到项目计划。计划中的进度安排是在一系列项目任务之间建立的顺序关系进度安排的准确程度可能比成本估算的准确程度更重要。几种常用的开发进度管理方法甘特图、网络分析技术(关键路径法CPM、项目评审技术PERT)甘特图用水平线段表示任务的工作阶段;线段的起点和终点分别对应着任务的开工时间和完成时间;线段的长度表示完成任务所需的时间。网络分析技术PERT项目评审技术♦把工程计划的各项活动、之间的联系和约束(各活动之间在物理上、工程上和逻辑上的制约)经过组合分解、统筹安排,构成一个有机的整体,用网络模型形象地反映出来,力求在一定资源约束条件下,使得工期最短。♦PERT可以根据定期分析反馈的信息经常进行调整,逐渐接近和达到目标。关键路径法CPM♦为每个最小任务单位计算工期、定义最早开始和结束日期、最迟开始和结束日期、按照活动的关系形成顺序的网络逻辑图,找出必须的最长的路径,即为关键路径。大型项目的工期估算和进度控制非常复杂,往往需要将CPM和PERT结合使用时间盒管理时间盒管理是一种项目管理新技术它的应用前提是一个不可变更的短期开发时间采用这种技术时,必须寻求软件质量和在时间盒内完成工作的平衡点这种项目管理对需求有着某种程度的弹性,但对于质量没有弹性时间盒管理方法很适合于原型法或快速应用开发这种类型的项目,但不适合传统的SDLC总的来说,这种方法可以防止时间和经费超支A5.项目管理的一般事务项目管理软件的应用可以通过自动化的软件来管理项目事项和估算成本,并对项目管理中的某些活动进行预测、报告。这类软件可以提供从人员需求到预算管理的各种功能,也集成了PERT和CPM技术。常用软件有:PrimaveraProjectPlanner(P3)、CA-SuperProject、Project2003等文档可以通过自动化的软件来处理系统和程序文档的产生、确认和维护。可以根据用户输入自动产生程序描述和流程图办公自动化办公自动化软件可以减少开发人员处理日常办公事务的时间。最有效的办公自动化功能是电子邮件、语音信息系统、时间自动管理工具、自动库管理系统、文件归档与检索系统等。B业务应用系统的开发B1业务应用系统面临的风险商业风险:♦不符合用户需求,不符合企业战略♦应用系统缺乏适应组织的快速变更需求的机制技术风险♦威胁到待开发软件的质量和预定的交付时间♦设计、实现、接口、检验和维护方面的缺陷♦技术上的不确定性、技术陈旧、不成熟最新技术项目风险♦预算、进度、个人、资源、用户和需求♦项目复杂性、规模和结构的不确定性控制应用系统风险的主要措施业务定义-需求识别、业务建模、数据标准化技术手段-采用成熟的开发方法、技术、工具项目管理-进度、系统规模及工作量估算、经费、组织机构和人员、风险、作业和环境配置质量管理-ISO9126、CMM、CMMI对应用系统开发风险控制的有效手段-信息系统审计开展内部审计或独立的第三方的审计,可以为软件开发提供公正的控制评价,有利于控制机制的完善。审计师必须理解系统开发、获取和维护所采用的方法、技术和过程,并在开发的各个阶段进行审计,越早参与,就越能降低应用系统开发过程中的风险如果控制松散,或者过程无序,信息系统审计师就应该就这些问题向项目组及高级经理提出提议,及时采用适当的控制过程使传统的“事后控制”逐渐向“事中控制”、“事前控制”转移。软件的特点软件是计算机系统中与硬件相互依存的另一部分,包括程序,数据及其相关文档。软件本身是复杂的、软件成本相当昂贵软件需求不明确将导致开发后期矛盾集中暴露如果开发过程没有统一的、公认的方法论和规范指导,软件就很难维护未能在测试阶段充分做好检测工作,提交用户的软件质量差,在运行中暴露出大量的问题。摆脱软件风险的方法-软件工程按工程化的原则和方法组织软件开发工作,这是摆脱软件危机的一个主要出路。软件工程是一种层次化的技术,包括方法、工具与过程。软件工程的过程是将软件工程的方法和工具综合起来以达至合理、有效地进行软件开发的目的。软件工程的目标付出较低的开发成本达到要求的软件功能取得较好的软件性能开发的软件易于移植需要较低的维护费用能按时完成开发工作,及时交付使用软件的生命周期软件的孕育、诞生、成长、成熟、衰亡的生存过程生命周期模型从软件项目需求定义直至软件经使用后废弃为止,跨越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架瀑布模型、演化模型、螺旋模型、喷泉模型智能模型等B1.传统的系统开发生命周期法SDLC什么是SDLCSDLC也被称为瀑布式开发技术,这是开发应用系统使用最广泛、最古老的方法。SDLC是一种系统的、顺序式的软件开发方法,从可行性研究开始,通过需求定义、设计、开发、实施和实施后维护等阶段而逐步发展。SDLC的特点SDLC各步骤或阶段都有预定义的目标和活动,并建立了相应的责任、预期的结果和完成目标的日期。SDLC的方法适用于在开发工作的早期建立总体的系统构架。当一个项目的需求稳定、定义准确时,SDLC的方法使用起来最有效,当商品化的软件包越来越普遍时,SDLC中传统的设计与开发阶段逐渐被选择与配置阶段所替代。SDLC中的测试方法(P155)生命周期中的测试错误的方法称为V模型,这种方法保证在每一个阶段对错误加以验证与控制,而不是等到用户验收阶段再来测试错误,它强调开发阶段与测试阶段的相互关系。SDLC的局限性无法预料的事件-因为真实的项目很少会遵循所描述顺序流程,软件实施过程中总会发生各种反复、产生各种新的问题。按照这个方法的要求,对用户需求的准确定义是非常重要的,但在开发初期从用户那里获得一个完整的、清晰的需求是很困难的。需要用户有足够的耐性。在这个方法的要求下,一个可工作的系统程序版本要到项目生命周期的最后才能得到,用户在项目的最后阶段才能接触和使用软件。在软件正式开发完成前,组织业务环境的改变能够引起用户需求的变化。B2.集成的资源管理系统概念越来越多的组织逐渐从传统的一个个单独的应用系统过渡到综合的集成解决方案,这些方案又可称为企业资源计划(ERP)ERP是在MRPII的基础中发展起来的,建立在信息技术基础上,利用现代企业的先进管理思想,全面地集成了企业所有资源信息,为企业提供决策、计划、控制与经营业绩评估的全方位和系统化的管理平台。实施前高级管理层应当对系统结构、技术方向、从原有系统到新系统的迁移策略、信息系统预算等问题进行详细评估,并对业务变革进行审批。ERP的模块与流程ERP的风险根据不完全统计,我国实施ERP项目的企业已经超过1600家,“70%的ERP项目失败,30%的ERP项目成功”,“美国ERP项目也只有50%的成功率”这些都是媒体上经常看到的报道,更有甚至有“ERP项目在我国的成功率为零”的说法。ERP的高风险使得企业高度关注如何预测、管理与控制ERP风险。主要ERP厂商国外国内♦用友、金蝶、和佳、启明、利玛、浪潮、开思等B3.传统的SDLC各阶段描述可行性研究(FeasibilityStudy)可行性研究是指在当前组织内外部的具体条件下,系统开发工作必须具备的资源和条件,看其是否满足系统目标的要求。进行可行性研究,对于保证资源的合理使用,避免浪费和一些不必要的失败,都是十分重要的可行性研究要完成下列任务:♦确定解决方案的时间表;♦确定在技术方面、经济方面、社会方面的可行性;♦确定需要的信息资源或者满足业务需要的、基于风险评估的最佳解决方案。♦确定现有系统是否能够进行调整或者是否需要改进;♦确定供应商的产品是否能够提供解决问题的方案;♦确定开发新系统和解决问题的适宜成本;♦确定解决方案是否符合业务战略目标。系统开发计划(DevelopmentsPlanning)系统开发计划是对整个开发过程进行有效管理的主要依据和成功的保证。计划阶段为成功开发奠定基础,影响到今后几个阶段的实施效果,系统开发计划要遵循整体性、阶段性、客观可行性、全面性的原则系统开发计划的主要内容:需求定义(RequirementsDefinition)需求定义第一步是对组织内部的整体管理状况和信息处理过程进行分析,并侧重于从业务全过程的角度进行分析。第二步是将用户的需求及其解决方法确定下来,这些需要确定的结果包括:♦开发者关于现有组织管理状况的了解;♦用户对信息系统功能的需求;♦数据和业务流程;♦管理功能和管理数据指标体系;♦新系统拟改动和新增的管理模型等需求分析的任务♦借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。♦逻辑模型:业务模型、数据模型、功能模型需求分析需要建立的沟通途径(上面右图)需求分析的一般过程需求分析方法之一:结构化分析方法♦结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止♦结构化分析方法使用工具:数据流图,数据词典,结构化英语,判定表与判定树♦结构化分析方法中,采用ERD用于数据建模,DFD用于功能建模,STD用于行为建模数据字典♦数据字典可以定义数据元素的属性及使用方式,并可对存储数据进行数据完整性检查,便于强化数据/编程标准。♦数据词典精确地、严格地定义了每一个与系统相关的数据元素,并以字典式顺序将它们组织起来,使得用户和分析员对所有的输入、输出、存储成分和中间计算有共同的理解。♦在数据词典的每一个词条中应包含以下信息:–名称:数据对象或控制项、数据存储或外部实体的名字。–别名或编号。–分类:数据对象?过程?数据流?数据文件?外部实体?控制项(事件∕状态)?–描述:描述内容或数据结构等。–何处使用:使用该词条(数据或控制项)的加工。数据流图DFD(图略)♦DFD可以表达数据处理过程的数据流动情况,DFD用于功能建模♦需要按照系统的层次结构进行逐步分解,并以分层的数据流图反映系统的结构关系,能清楚地表达和容易理解整个系统实体关系图ERD(图略)♦ERD数据模型包括三种互相关联的信息:数据对象,描述对象的属性,描述对象间相互连接的关系。行为建模STD♦行为建模给出需求分析方法的所有操作原则♦通过状态-迁移图(STD)或状态-迁移表描述系统或对象的状态,以及导致系统或对象的状态改变的事件,从而描述系统的行为。程序的基本控制结构(如上右图)IDEF1X标准♦1993年美国国家标准与技术学会发布了IDEF1X信息系统建模标准,它用在需求分析时对所建系统的信息资源进行分析和交流,IDEF1X是对ERD的一种扩展。♦IDEF1X通常用来:–确定组织中当前管理的是什么信息;–对需求分析过程中发现的问题确定哪些是由于缺乏合适的信息引起的;–指定在将来进行的实施中,哪些信息需要管理。♦IDEF1X建模奠定了数据库设计基础,给出了信息结构定义,提供了反映基本信息需求的需求说明,IDEF基本符号如下:其他需要注意的问题♦面向对象方法中与ERD等价的概念是类图–即使是使用面向对象的模型和技术来开发应用系统,应用系统产生和使用的数据一般还是要存储到关系型数据库中去,因此,系统开发中有必要把类图映射成ERD。♦信息系统审计师在需求分析阶段要确定:–应用系统是否定义了充分的安全需求以保证系统的机密性、完整性和可用性;–是否定义了完备的审计踪迹作为系统的必要组成部分,审计踪迹是审计师未来进行信息安全与绩效评估的重要依据。软件设计(SoftwareDesign)根据前一阶段系统需求分析的结果,在已经获得批准的系统分析报告的基础上,进行新系统设计。系统设计包括两个方面,首先是总体结构的设计,其次是把系统分解成一个个具体模块与组件。系统设计的主要目的就是为下一阶段的系统实现(如编程、调试、试运行等)制定蓝图。系统设计阶段的主要任务就是在各种技术和实施方法中权衡利弊、精心设计、合理使用各种资源,最终规划出新系统的详细设计方案。设计步骤♦根据用数据、功能和行为模型表示的软件需求,采用某种设计方法进行数据设计、体系结构设计、接口设计和过程设计。软件基线管理(SoftwareBaselining)(如上右图)♦基线是软件生存期中各开发阶段末尾的特定点,又称里程碑,它的作用是把各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检验和肯定阶段成果。♦如果不能很好地通过软件基线来管理需求,将会带来很大的风险。最主要的是边界蔓延,即在开发过程中不断报改变需求♦在系统设计阶段的基线上建立变更管理控制,在系统开发生命周期内的各个阶段提出需求变更时,都要使用变更控制过程。设计过程的用户参与♦在软件设计过程中,用户过多参与是不合适的,用户一般对软件的设计方法与技术缺乏了解。♦但是设计人员应当向用户解释软件结构是如何满足用户业务需要的,并强调关键设计方案的合理性。♦另外,系统的设计可能涉及到特定硬件的选择和软件的配置,这要引起利益相关者的注意设计阶段审计师的关注点♦设计阶段检查安全需求是否有足够的控制已集成到系统定义和测试计划中;连续性的在线审计功能是否集成到系统中♦在系统设计阶段的基线上是否建立变更管理控制♦检查相关文档是否齐全开发(Development)软件开发目的是通过编程实现开发者在系统分析和系统设计中提出的管理方法和处理构想。编程目的是为了得到最终软件产品,在这个阶段编程的责任主要落在编程人员和设计系统的分析员身上。开发阶段实施的关键活动包括:♦程序编码和开发程序文档、系统文档♦程序调试和程序测试♦开发程序以从旧系统转换数据到新系统中♦创建用户迁移计划,实现用户到新系统的顺利转移♦对使用新系统的用户进行培训♦如果是对购买的商品化软件包进行定制开发,确保对程序代码的修改记录在案,并把修改内容准确完整地应用到供应商的原始软件代码中去,以保证供应商将来的升级版本包含了这些己更新代码。集成开发环境(IDE)♦针对某一编程语言而专门设计的、界面友好的可视化环境,一般整合源代码编辑器、调试器、编译器和资源编辑器。如MSVC++、VB,BorlandDelphi等♦联网的集成开发环境可以降低开发成本,保持快速响应时间,提供共享的程序资源,但同时容易受非授权访问的影响而出现错误,应当通过访问控制软件来控制这类风险。典型的联网集成开发环境:RationalRose、VisualStudio.NET软件工程学对软件开发方法与技术的要求♦可靠性-程序、系统及程序运行的安全可靠性♦规范性-系统的划分,书写的格式,变量的命名等等都按统一规划♦可读性-可读性即程序清晰,没有太多繁杂的技巧,能够使他人容易读懂。♦可移植性-源程序应具有可移植性,应严格地遵守ISO或ANSI、GB的标准。♦可维护性-可维护性即程序各部分相互独立,没有和子程序以外的其他数据牵连。源程序的可读性,语言自身的文档化特性也是影响到可维护性的重要因素。♦其他-详细设计应能直接地容易地翻译成代码程序,尽可能应用代码生成的自动工具,编译程序应具有较高的效率编程语言♦高级通用编程语言,例如:COBOL、C语言♦面向对象的编程语言,例如:C++、OO-Basic、Eifell、Java♦脚本语言,例如:SH(SHELL)、Perl、TCL、Python、JavaScript、VBScript、CGI♦为特定处理器设计的低级汇编语言♦第四代高级编程语言(4GLs),例如:FOCUS、Natural和dBase♦决策支持与专家系统,例如:Express、LISP、PROLOG编程调试(ProgramDebugging)♦在生成正式软件产品前,检测出程序中的异常中止和程序编码错误,并对错误进行纠正。♦主要调试方法有:逻辑路径监测、内存转储、输出分析测试软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。测试过程中的要素♦测试计划–自底向上(Bottomup)–向顶向下(Topdown)♦实施测试和报告测试结果♦解决测试中发现的问题其他类型的测试♦α测试和β测试-评价软件产品的FURPS(即功能、可使用性、可靠性、性能和支持)♦黑盒测试-测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求分析规格说明,检查程序的功能是否符合它的功能说明♦白盒测试-利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。♦模拟测试-对系统的某些特定的或预定义的内容进行预备性的测试。♦回归测试-测试计划或测试场景的某些内容重新进行测试,目的是为了保证最近对软件所做的变更和修改没有引入新的错误♦功能/确认测试-验证软件的功能和性能及其它特性是否与用户的要求一致。♦平行测试-把一套测试数据同时输入到被测试系统和对比系统中去运行,比较两个系统的输出结果,以判断被测试系统的正确性。♦社交性测试-证实新系统在目标环境中运行时,不会给其他系统带来负面影响。系统文档可行性研究报告;项目开发计划;软件需求规格说明书;数据要求说明书;测试计划;概要设计说明书;详细设计说明书;数据库设计说明;操作手册;用户手册;测试分析报告;模块开发卷宗;开发进度月报;项目开发总结报告;维护修改日志实施策略-实施实施过程中的资源、角色、责任、实施团队与用户间沟通方法、培训方法、各种用例的规划。转换-定义转换数据到新应用的过程。指旧系统人工或自动向新系统转换的过程,即新系统的转换。文档-要建立系统和用户文档,易于学习与培训,保证平稳过渡实施。培训-有效培训能够使员工的错误与问题都明显减少,从而使支持成本减少3—6倍。支持-包括帮助台,问题报告等。维护系统实施后要进行维护,校正程序错误或改进系统。维护分成以下三类:♦校正维护-纠正包括软件错误,进行紧急程序修复以及日常检测♦适应性维护-由于规则、其他环境变更或使用软件的方法引起♦完善性维护-用户持续改善文档,重新编码以提高效率运行系统日常运行管理主要包括:♦系统运行管理的组织机构♦基础数据的管理♦运行管理制度♦记录系统运行状况B4.与软件开发相关的风险主要风险如前所述,软件开发面临商业风险、技术风险、项目风险等。信息系统审计师应当评价与项目相关管理要求项目符合公司的业务目标包括了有效的资源和时间的估计的项目计划如果不存在软件基线管理,就需要控制开发范围膨胀,防止用户需求的不断变化使开发过程失去控制。管理层对软件设计和开发活动的追踪与监控高级管理层对软件项目的设计和开发的支持在每一个项目阶段进行阶段性的审核和风险分析B5.结构化的分析、设计和开发技术的使用结构化方法的作用与SDLC方法紧密相关,提供一种从抽象到具体的实现框架,通过在不同的抽象水平使用不同的图形符号来表示应用程序的数据和程序组件,直到其达到一种能够使程序员可以编码的抽象水平。系统功能的开发一般是以模块化的方式自顶向下进行的,这将有助于程序员用线性方式来对模块进行系统化开发和测试。当使用传统的SDLC的方法来进行业务应用系统开发的时候,审计师应当关心这种结构化方法的过程是否被良好定义、记录和遵循。P179B6.其他的系统开发方法SDLC的缺点不可预料的事件♦一个实际的应用项目很少能够完全按照预先设计的进行,这时候所出现的一些反复会给这种这种方法带来问题。对需求定义要求很高♦准确的需求定义,才能开发出有效的系统,然而用户的需求表达常常不是非常清楚。需要用户有足够的耐心♦只有在项目开发的后期才有可能向用户提供一个可工作的版本,在这期间用户只有耐心等待。SDLC的软件开发方法当前面临挑战一是系统的复杂性在日益增加,二是组织普遍要求快速实施新系统,在业务发生变化前就从系统中获得利益。在某种程度上,SDLC几乎对所有的软件开发项目都适用。但不同的项目所采用的系列步骤、重复次数、持续时间和所使用的方法都有显著的变化。随着系统复杂性的增加,应当考虑如何更好地组织软件项目并采用更有效的开发策略,使软件开发向不断优化的方向演进。一些新的开发方法增量开发或渐进式开发-系统内嵌到各阶段或版本中,而不是在开发完成后整体交付。迭代开发-这种方法涉及使用迭代或增量来构建系统♦演化式开发(Evolutionarydevelopment)–开发项目难于做到一次成功,出现返工再开发在所难免–先做试验开发,目标只是在于探索可行性,弄清软件需求–然后在此基础上获得较为满意的软件产品–通常把第一次得到的试验性产品称为“原型”,这种开发方法通常称为原型法。♦螺旋式开发(Spiraldevelopment)–对于复杂的大型软件,开发一个原型往往达不到要求。–螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的风险分析–螺旋模型沿着螺线每旋转一圈便开发出更为完善的一个新的软件版本♦敏捷开发(Agiledevelopment)–项目被分解成相对较短的时间段(time-boxed)进行迭代开发。–从最早期的迭代开始,开发重点就是快速生产出可工作的功能性产品面向数据的开发方法(DOSD)面向数据的开发方法是通过数据和数据结构来表达软件需求的一种开发方法;不像基于传统的SDLC的结构化分析方法,面向数据的开发方法把数据与处理数据的过程加以分离,只考虑数据,不考虑处理数据的过程;这种方法必须与其他开发方法给合起来使用,才能有效地开发出适合的业务解决方案。面向对象开发方法(OOSD)面向对象的定义♦面向对象=对象+类+继承+消息通信。如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。♦一个面向对象的程序的每一成份应是对象,计算是通过新的对象的建立和对象之间的消息通信来执行的。面向对象优势:♦面向对象的技术建立的模型与客观世界一致,因而便于理解;♦适应变化的需要,修改局限在模块中;♦可复用性。面向对象与面向过程系统的区别面向对象的基本概念♦类和对象–类封装了对描述某些现实世界实体的内容和行为所需的数据和过程的抽象,即对一组对象的集合。–对象是一组数据和处理的结合体,是类的一个实例。♦属性–属性依附于类和对象,用以描述对象的静态特征♦方法–对象内封装的处理数据的算法称为方法♦消息–消息是对象间交互的手段,消息刺激接收对象产生某种行为,通过操作的执行来完成相应的行为。面向对象系统的三个特征♦封装–数据和过程的内部实现细节对外隐蔽–数据结构和对它们的操作被合并在单个名字的实体中,便于构件复用。♦继承–便于复用–高层的变化可以立即传播到系统的其他部分♦多态–各种对象之间具有统一、方便、动态的消息传递机制–减少扩展现有系统的工作量面向对象技术♦面向对象分析(OOA)♦面向对象设计(OOD)♦面向对象编程和实现(OOP)♦面向对象的测试(OOT)面向对象优点:♦管理的数据类型多样性的能力,对复杂关系进行建模的手段,对不断变化的环境需求的适应性♦解决了传统方法中客观世界描述工具和软件结构不一致的问题,缩短开发周期。♦面向对象的方法中的继承机制,支持了模型与代码在一个系统中的重用,提高了开发效率。♦面向对象的封装性简化了开发过程,有利于大型复杂系统开发时系统开发人员的分组独立工作,对一个类的修改会自动传播到它所属的子类。♦由于多态性的支持,可以无须对系统进行修改,这减少了错误和开发的工作量,使系统对环境变化的适应性增强。统一的OOA方法-UML♦UML允许软件工程师使用由一组语法的语义的实用的规则支配的符号来表示分析模型。基于组件的开发方法基于组件的开发方法是面向对象法的拓展,通过定义接口集成可执行的软件包,从而完成一定的服务。优点p215组件的类型p214基于Web应用开发方法基于Web的应用开发是正在形成的一种重要的软件开发方法,它使得企业内部或企业之间的代码模块能够更容易、更有效地集成。基于Web的应用开发以及与之相联系的XML能够使得代码与程序更加容易集成和标准化。基于Web的应用开发中需求解决的另一个问题是避免用重复的代码来完成重复的计算任务WebServicesWebservice平台是一套标准,它定义了应用程序如何在Web上实现互操作性。可以用任何你喜欢的语言,不同的平台中编写Webservice,而通过Webservice的标准来对这些服务进行查询和访问在WebServices中,XML是数据的格式,SOAP是调用WebServices的协议,WSDL是描述WebServices的格式,而UDDI是WebServices登记,查找和利用的组合。四个方面组成了整个WebServices架构WebServices正是利用了标准协议解决了困扰互联网发展的两大问题:数据传送和平台异构,从而为开发者提供了一个统一的编程接口,使用者提供了一个百分之百的互联网络模型。原型法原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。在获得一组基本需求说明后,通过快速分析构造出一个小型的软件系统,满足用户的基本要求。用户可在试用原型系统的过程中得到亲身感受和受到启发,做出反应和评价。然后开发者根据用户的意见对原型加以改进。随着不断试验、纠错、使用、评价和修改,获得新的原型版本如此周而复始,逐步减少分析和沟通中的误解,弥补不足之处,进一步确定各种需求细节,适应需求的变更,从而提高了最终产品的质量。原型法的两种基本方法♦建立设计用的原型♦采用适用的4GL逐步构造一个最终可投入运行的系统原型法的优点♦遵循人们认知规律,采用循序渐进的过程去开发和认识系统;♦将模拟手段引入系统分析,便于用户和系统分析人员之间沟通;♦充分利用最新工具软件,减少系统开发时间和费用,提高效率。原型法潜在的风险在于:♦完成的系统在控制机制方面一般较弱,可能会丢失一些传统开发方法的控制,如备份和恢复,安全和审计轨迹等;♦变更控制也变得更加复杂。需求和设计的需求变更很快,很少被文档化,也很少被批准,导致系统进入不易维护的状态;♦对于大量运算、逻辑性强的程序模块,原型法很难构造出适宜模型,以供用户评价;♦对于大型系统如果没有系统地进行整体性划分,很难进行模拟。♦信息系统审计师应该认识到原型法有关的风险,也应该意识到这种方法给组织带来的省时、节约的好处

温馨提示

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

评论

0/150

提交评论