第4章信息系统建设概论本章计划学时:4学时本章主要内容•信息系统建设的特点•信息系统的生命周期•信息系统开发过程方法•信息系统建模的概念和建模方法•信息系统开发的组织管理4.1信息系统建设是复杂的社会过程信息系统的复杂性体现在:1.技术手段复杂2.内容复杂,目标多样3.投资密度大,效益难以计算4.环境复杂多变信息系统建设的统计数据•据国外1995年对365家公司的调查:–31%的信息系统项目在完成之前被取消–53%的项目没有达到预定功能–在3682个项目中只有12%的项目按时和按预算完成•据某顾问公司2004年报告(对4万个信息系统项目的调查)–ERP失败率达到70%–成功项目只能达到34%–有争议的项目达到51%–失败项目达到15%成功的含义:在规定的时间内,以规定的预算完成规定的目标。信息系统开发是一个社会过程•问题描述和方案验证–技术工程问题明确,可以模拟,或制作模型、样品进行验证,信息系统的问题确定性差,难以提前验证解决方案•人的影响–信息系统是人机系统,有来自于人的障碍。如了解、沟通、实施困难•社会环境的影响–如政策、竞争、文化观念等对信息系统影响力很大,不同于纯技术工程4.2信息系统的生命周期信息系统开发围绕信息系统生命周期来进行,有时也称系统开发生命周期(SDLC,SystemDevelopmentLifeCycle)•生命周期按阶段划分,提出的是组织、管理和控制信息系统开发过程的一种基本框架,原则性地指导两部分工作:1.管理:强调进程安排、资源分配、评估、控制、反馈2.开发:强调任务和开发文档生命周期的5个阶段可行性研究开发请求详细调查系统转换总体设计逻辑设计审批初步调查验收系统维护系统评价详细设计审查编程调试审查运行维护系统规划系统实施系统分析系统设计信息系统开发方法生命周期是指导性方针,很抽象,具体的信息系统开发方法有很多,主要研究方向有两类:•针对开发过程–不同的信息系统开发过程模型。关注整个开发采取哪些步骤,每个步骤包含哪些任务,由什么人完成,任务的成果如何体现等–也称为不同的生存周期模型•针对开发技术–不同的建模方法,从不同的观点来反映系统的全貌,并采用不同技术手段予以实现4.3信息系统开发过程模型•开发过程的研究和经验的总结–瀑布开发方法–原型开发方法–增量开发方法–螺旋开发方法–……4.3.1瀑布模型•强调阶段的划分和阶段严格的顺序•各阶段工作任务明确,要求文档完备性•是一种严格线性的按阶段顺序的、逐步细化的开发模式,消除了软件开发的随意性规划分析设计编码测试维护瀑布模型的特点•简单易用,容易理解•开发的进程一个顺着一个,没有反馈过程,需要严密控制•允许基线和配置早期接收控制•一个新的项目不适合这种模型•用户直到项目结束才能看到质量如何•不允许或者严格限制变更瀑布模型的不足1.需求:客户常常难以表达真正的需求,而这种模型却要求严格的阶段性成果,返工困难,变更代价很大2.风险:客户要等到开发周期的晚期才能看到程序运行的测试版本,这时若发现大的错误,可能引起客户的惊慌,其后果也可能是灾难性的3.效率:因为前后任务的依赖关系,成员不能并行工作,有可能花在等待的时间比开发的时间要长,即所谓的“堵塞状态”适用于一些需求已明确并且变化较少的信息系统4.3.2原型模型原型——快速建立起来的可以在计算机上运行的程序,通常选取信息系统中某个关键功能作为原型。编程测试分析定义需求设计原型实施完成再构造原型方法的特点和应用场合•用户积极参与•原型的开发没有严密的阶段性•短期获得测试版本,降低风险应用于以下场合:–需求含糊,用户不能标识出详细的输入、处理和输出需求–设计方案不明确,开发人员不能确定算法的有效性、操作系统的适应性或人机交互的有效性原型方法的不足降低风险的同时,引入了其他风险:–用户随意无止境的需求变化,因为用户容易产生误解,认为系统很容易被构造和修改–如果采用原型基础上继续构造,由于修补过度,软件质量不易于保证–开发人员为了快速构造原型,可能会采用不合适的操作系统、语言、算法等,造成后期风险,如系统适应性差、维护困难等4.3.3增量模型•一条直线一次性到达目的总是困难的。•紧迫的市场期限使得难以完成一个完善的软件产品,缓解压力的方式是先提交一个有限的版本,细节部分逐步增加。增量模型——融合了瀑布模型的基本成分和原型的迭代特征。采用随着日程时间的进展而交错的线性序列。–搭积木的方式,如按子系统划分增量增量模型的特点•以功能递增的方式进行软件开发•能较快地产生可操作的系统•在每一步递增中,都可以把用户/开发者的经验结合到不断求精的产品中•可改善测试效果和降低软件开发总成本分析分析分析分析设计设计设计设计编码编码编码编码测试测试测试测试增量1增量2增量3增量4功能时间增量模型的应用场合•项目开始,明确了需求的大部分,但是需求可能会发生变化•对于市场和用户把握不是很准,需要逐步了解•对于有庞大和复杂功能的系统进行功能改进,本身就需要一步一步实施的。4.3.4螺旋模型•螺旋模型——把软件开发过程定义成不断上升的螺旋周期,每个周期划分为计划、风险分析、实施和评价四个方面。沿螺线自内向外每旋转一圈便开发出更为完善的一个新的软件版本。螺旋模型的特点和应用场合•风险驱动,可以在生命周期早期强制性的确定项目中存在的风险•需要开发人员具有相当丰富的风险评估经验和专门知识•要求用户参与阶段评价,对用户要求较高适用于:–单位内部开发的大规模软件项目–风险是项目的主要制约因素–可能会发生重大变更–采用新技术开发过程的代表产品一些公司或团体纷纷推出规范化的过程产品:•IBM统一过程RUP(RationalUnifiedProcess,迭代过程的代表)•微软MSF(MicrosoftSolutionsFramework)•极限编程XP(eXtremeProgramming,敏捷软件开发联盟)•……4.4信息系统建模方法•信息系统通常十分复杂,很难直接对它进行分析设计,借助模型来设计分析系统。•模型——是现实世界中的某些事物的一种抽象表示。–模型是理解、分析、开发或改造事物原型的一种常用手段。例如,生产汽车前常先做汽车模型,以便在批量生产前就能使人们对未来的车型有一个十分清晰的感性认识,显然,汽车模型还可以用来改进汽车的设计方案。•对事物认识的角度不同,可以有不同的建模方法信息系统模型•信息系统模型本质是建立信息处理模型,而信息处理模型来源于管理模型•管理模型的建立,应考虑以下方面:现实世界静态特征(对象、属性、关系)动态特征(行为、事件、行动)业务流程商务规则…….模型信息系统建模方法•模型的表示根据认识观的不同而不同•信息系统建模方法:–面向过程的建模方法,也称结构化方法–面向数据的建模方法–面向对象的建模方法4.4.1结构化方法•也称为面向功能/面向过程/面向数据流的软件开发方法•结构化分析(SA)对软件进行需求分析,以数据流图表示•结构化设计(SD)进行总体设计,以模块结构图表示•结构化程序设计(SP),以程序流程图表示•结构化方法的基本思想:从系统功能出发,自顶向下,按照层次逐步分解求精结构化分析——数据流图顾客编辑订货单订货单配件库存1.1确定顾客订货1.21.3业务员产生暂存订货单1.4不合格顾客D2D3可发订货不满足的订货暂存订货单D4销售历史D5应收款明细账D10合格的订货单检索库存1.5经理查询请求库存状态开发货单并修改库存顾客发货单模型中的某个功能的分解图:结构化设计——模块结构图销售子系统暂存订货单处理登记订货单查询打印发货单作废订货单查询订货单查询库存修改库存暂存处理冲账4.4.2面向对象方法•面向对象的分析方法以对象的观点来观察世界。–它认为一个系统可以被看成一系列相互作用的对象组成,每个对象拥有自己的数据结构和行为方式,以及能触发对象的某种操作(行为)而改变其状态(数据结构)的事件。•比如:–汽车作为一个对象,有排量、颜色、行驶里程等数据,有启动、行驶、停止、熄火等行为,驾驶员的点火事件可以触发汽车的启动操作,踩下油门事件会触发汽车行驶,行驶里程发生改变。对应到在计算机里,可以将汽车设计为一个软件对象(面向对象的程序设计)。面向对象模型图——类图•面向对象分析(OOA)、设计(OOD)和程序设计(OOP)最重要的模型图是对象图/类图订货单顾客配件配件名称配件代码查询库存修改库存1拥有1..*记录11..*配件库存仓库地点库存数量增加库存量减少库存量包含10..*暂存订货单作废订货单可发订货单打印发货单作废订货单对象名/类名对象属性对象操作两种主流方法的比较•结构化方法–容易理解和交流,对于大系统可以从全局逐步展开到局部,整体性较好。•面向对象–稳定可靠,有利于维护和重用,并容易实现多层分布式结构,技术先进,但对前期分析设计人员要求较高,用户理解模型有困难。过程方法和建模方法的关系•二者不矛盾,相互没有包含关系•建模方法不限定使用于特定的过程模型中–比如面向对象方法既可以使用在瀑布模型中,也可以用在螺旋模型中•开发过程的各时期可以使用不同的建模方法(不建议)–比如系统分析使用结构化方法,系统设计使用面向对象方法–但要注意不同方法之间模型的衔接4.5信息系统开发的组织管理信息系统建设要执行有计划的管理:1.了解组织中信息系统的状态2.建立信息系统的基础条件3.做好准备工作4.选择开发方式5.开展项目管理4.5.1了解信息系统发展现状•信息系统遵循从初级到成熟的发展规律(诺兰模型),要根据企业的信息系统发展现状制定开发策略预算费用初装数据管理蔓延控制成熟集成诺兰模型的经验总结:模型中的各个阶段是不能跳跃的。“欲速则不达”4.5.2建立信息系统的基础条件•领导重视,业务人员积极性高•有一定的科学管理基础•由不同层次人员组成的技术队伍•具备必要的资源4.5.3系统开发的准备工作•有效的组织机构•各类人员的配备和分工厂长X总师信息系统委员会系统分析组系统设计组程序设计组硬件小组操作员组数据管理组经济模型组……..……4.5.4选择开发方式•根据资源情况选择适合的开发方式:–自行开发–委托开发–联合开发–购买现成软件产品4.5.5信息系统的项目管理•信息系统项目遵循项目管理的一般理论和方法,但也存在自身的特点,管理内容包括:–进度管理–成本估算和经费管理–质量管理–文档管理–人员管理–其他:需求管理、风险管理、软件配置管理详细内容在《软件项目管理》课程或书籍中讨论。