信息系统的获取开发和实施上Word文档格式.docx
《信息系统的获取开发和实施上Word文档格式.docx》由会员分享,可在线阅读,更多相关《信息系统的获取开发和实施上Word文档格式.docx(31页珍藏版)》请在冰豆网上搜索。
![信息系统的获取开发和实施上Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/27/f3bceafd-e26d-442b-a9ba-2184f2420363/f3bceafd-e26d-442b-a9ba-2184f24203631.gif)
对利益实现不应当只局限于项目周期,应当放眼于更长的阶段中来观察项目可能给组织带来的利益;
进行阶段性的评估是实现利益过程的重要因素。
经常要在系统实施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
什么是SDLC
SDLC也被称为瀑布式开发技术,这是开发应用系统使用最广泛、最古老的方法。
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)
软件开发目的是通过编程实现开发者在系统分析和系统设计中提出的管理方法