




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3章章 信息系统建设概论信息系统建设概论本章主要内容本章主要内容l3.1 信息系统建设是复杂的社会过程信息系统建设是复杂的社会过程l3.2 信息系统建设的一般方法信息系统建设的一般方法l3.3 信息系统的生命周期信息系统的生命周期l3.4 基于生命周期的开发方法(信息系统开发过程)基于生命周期的开发方法(信息系统开发过程)l3.5 基于开发技术的开发方法(信息系统开发技术)基于开发技术的开发方法(信息系统开发技术)l3.6 信息系统开发的组织管理信息系统开发的组织管理l3.7 信息系统开发工具(信息系统开发工具(CASE工具)工具)3.1 信息系统建设是复杂的社会过程信息系统建设是复杂的社
2、会过程1. 信息系统的复杂性体现在:信息系统的复杂性体现在:技术手段复杂技术手段复杂内容复杂,目标多样内容复杂,目标多样投资密度大,效益难以计算投资密度大,效益难以计算环境复杂多变环境复杂多变技术的复杂性技术的复杂性l计算机硬、软件技术计算机硬、软件技术l数据通讯与网络技术数据通讯与网络技术l各种信息采集与存贮各种信息采集与存贮l各种控制与决策方法各种控制与决策方法l建模与仿真技术建模与仿真技术l人工智能技术人工智能技术l技术方案难以检验证明技术方案难以检验证明( (样品?实物模型?样品?实物模型?) )内容的复杂性内容的复杂性l一个组织的管理与业务信息量大、面广,形式多样、一个组织的管理与业
3、务信息量大、面广,形式多样、来源繁杂,信息内容和处理要求又涉及到广泛的学来源繁杂,信息内容和处理要求又涉及到广泛的学科和事业领域。科和事业领域。l一个组织的信息系统必是一个规模庞大,结构复杂,一个组织的信息系统必是一个规模庞大,结构复杂,具备多种功能、实现多个目标的大系统具备多种功能、实现多个目标的大系统l一个组织内各类机构和人员的信息需求不尽相同,一个组织内各类机构和人员的信息需求不尽相同,有些需求可能相互冲突,需求的不确定性和可变性有些需求可能相互冲突,需求的不确定性和可变性非常大。非常大。l组织和外部环境之间的数据交换难以控制。组织和外部环境之间的数据交换难以控制。投资的密集性投资的密集
4、性l信息系统的建设,需要巨额投资,是一种资金密集型信息系统的建设,需要巨额投资,是一种资金密集型的建设项目的建设项目l智力密集型或者知识密集型智力密集型或者知识密集型l需用大量人工,是劳动密集型项目需用大量人工,是劳动密集型项目l效益难以计算效益难以计算信息系统建设的统计数据信息系统建设的统计数据l据国外据国外19951995年对年对365365家公司的调查:家公司的调查:3131的信息系统项目在完成之前被取消的信息系统项目在完成之前被取消5353的项目没有达到预定功能的项目没有达到预定功能在在36823682个项目中只有个项目中只有1212的项目按时和按预算完成的项目按时和按预算完成l据某顾
5、问公司据某顾问公司20042004年报告年报告( (对对4 4万个信息系统项目的万个信息系统项目的调查调查) )ERPERP失败率达到失败率达到70%70%成功项目只能达到成功项目只能达到34%34%有争议的项目达到有争议的项目达到51%51%失败项目达到失败项目达到15%15%成功的含义:在规定的时间内,以规定的预算完成规定的目标。成功的含义:在规定的时间内,以规定的预算完成规定的目标。环境的复杂性环境的复杂性l涉及到组织内部各级机构、管理人员涉及到组织内部各级机构、管理人员l涉及组织面临的外部环境及发展趋势涉及组织面临的外部环境及发展趋势l要考虑管理体制、管理思想、管理方法和管理手段要考虑
6、管理体制、管理思想、管理方法和管理手段的相互匹配、相互促进的相互匹配、相互促进l考虑人的习惯、心理状态及现行的制度、惯例和社考虑人的习惯、心理状态及现行的制度、惯例和社会、政治诸因素会、政治诸因素信息系统开发是一个社会过程信息系统开发是一个社会过程l问题描述和方案验证不同于一般技术工程问题描述和方案验证不同于一般技术工程技术工程问题明确,可以模拟,或制作实物模型、样品进技术工程问题明确,可以模拟,或制作实物模型、样品进行验证,信息系统的问题确定性差,难以提前验证解决方行验证,信息系统的问题确定性差,难以提前验证解决方案。案。l人的影响人的影响信息系统是人机系统,有来自于人的障碍。如了解、沟通、
7、信息系统是人机系统,有来自于人的障碍。如了解、沟通、实施困难。实施困难。l社会环境的影响社会环境的影响如政策、竞争、文化观念等对信息系统影响力很大,不同如政策、竞争、文化观念等对信息系统影响力很大,不同于纯技术工程。于纯技术工程。3.2 信息系统建设的一般方法信息系统建设的一般方法l3.2.1 早期方法的不足早期方法的不足l早期,早期,人们对信息系统的复杂性缺乏足够的认识,人们对信息系统的复杂性缺乏足够的认识,认为信息系统无非是认为信息系统无非是“大程序大程序”,缺乏,缺乏科学的科学的开发方开发方法法:目标含糊目标含糊通信误解通信误解步骤混乱步骤混乱缺乏管理控制缺乏管理控制3.2.2 系统方法
8、的应用系统方法的应用l系统科学方法为人们提供了新的思维模式,是研究系统科学方法为人们提供了新的思维模式,是研究复杂系统的有效工具。复杂系统的有效工具。l钱学森曾指出钱学森曾指出“系统工程是组织管理系统的规划、系统工程是组织管理系统的规划、研究、制造、试验和使用的科学方法,使一种对所研究、制造、试验和使用的科学方法,使一种对所有系统都具有普遍意义的方法有系统都具有普遍意义的方法”。l系统方法在信息系统建设中的应用:系统方法在信息系统建设中的应用:还原论与整体论相结合还原论与整体论相结合微观分析与宏观综合相结合微观分析与宏观综合相结合定性判断与定量计算相结合定性判断与定量计算相结合严格生命周期阶段
9、与反复迭代相结合严格生命周期阶段与反复迭代相结合3.2.3 系统建模系统建模/模型化模型化分析研究复杂系统问题,建模是一种基本手分析研究复杂系统问题,建模是一种基本手段。段。建模(建模(modeling)就是为描述系统的构成和)就是为描述系统的构成和行为,对现实系统的各种因素进行适当筛选,行为,对现实系统的各种因素进行适当筛选,用一定方式(数学公式、符号、图形、图像用一定方式(数学公式、符号、图形、图像等)表示现实系统的过程。等)表示现实系统的过程。建模也称模型化。建模也称模型化。1. 系统模型的概念系统模型的概念l系统模型是指以某种确定的形式(如文字、符号、系统模型是指以某种确定的形式(如文
10、字、符号、图表、实物、数学公式等),对系统某一方面本质图表、实物、数学公式等),对系统某一方面本质属性的描述。属性的描述。l一个适用的系统模型应该具有如下一个适用的系统模型应该具有如下3个特征:个特征:它是现实系统的抽象或模仿;它是现实系统的抽象或模仿; 它是由反映系统本质或特征的主要因素(要素)构成的;它是由反映系统本质或特征的主要因素(要素)构成的; 它集中体现了这些主要因素之间的关系。它集中体现了这些主要因素之间的关系。l根据抽象程度:概念模型、逻辑模型和物理模型。根据抽象程度:概念模型、逻辑模型和物理模型。l根据对时间的依赖:静态模型和动态模型。根据对时间的依赖:静态模型和动态模型。l
11、全面彻底地描述一个系统,通常需要使用多个模型。全面彻底地描述一个系统,通常需要使用多个模型。2. 管理系统模型管理系统模型l管理模型描述组织的状况,包括:管理模型描述组织的状况,包括:组织的静态特征,如组织结构图、实体关系图组织的静态特征,如组织结构图、实体关系图动态特征,如任务分解图、状态转换图、甘特图、动态特征,如任务分解图、状态转换图、甘特图、PERTPERT图图业务流程,如流程图业务流程,如流程图业务规则,如决策树、决策表业务规则,如决策树、决策表管理系统管理系统静态特征静态特征( (组织机构、对象、角色组织机构、对象、角色) )动态特征(行为动态特征(行为/ /事件事件/ /行动行动
12、/ /状态状态)业务流程业务流程业务规则业务规则. .模型模型3. 信息系统模型信息系统模型l信息系统模型描述计算机信息系统的状况。信息系统模型描述计算机信息系统的状况。l每种模型都有其标准符号、惯例、语法规则和用途,当这一组每种模型都有其标准符号、惯例、语法规则和用途,当这一组符号和规则形成了一套完整严谨的表示语言,就形成建模语言。符号和规则形成了一套完整严谨的表示语言,就形成建模语言。l因为信息系统是为管理服务的,因此有些模型在管理系统和信因为信息系统是为管理服务的,因此有些模型在管理系统和信息系统中通用,如流程图、状态图息系统中通用,如流程图、状态图 、决策树、决策树/决策表等。决策表等
13、。模型名称模型名称用途用途业务流程图业务流程图描述不同职能部门业务活动分工和活动过程的模型描述不同职能部门业务活动分工和活动过程的模型数据流图数据流图描述数据的产生、处理、存储和去向的信息处理模型描述数据的产生、处理、存储和去向的信息处理模型程序流程图程序流程图描述程序完成顺序、分支、循环等处理过程的模型描述程序完成顺序、分支、循环等处理过程的模型实体关系图实体关系图描述系统中有价值的实体及其关系的数据模型描述系统中有价值的实体及其关系的数据模型模块结构图模块结构图描述软件功能模块及其调用关系的层次模型描述软件功能模块及其调用关系的层次模型判定表、判定树判定表、判定树描述决策条件及其行动关系的
14、模型描述决策条件及其行动关系的模型UMLUML( (类图、用例图、顺序图类图、用例图、顺序图等等) )描述软件系统结构及行为的一组模型描述软件系统结构及行为的一组模型信息系统模型的作用信息系统模型的作用l建立信息系统模型有以下主要作用:建立信息系统模型有以下主要作用:对复杂问题进行简化描述,帮助有关人员快速、简单直观、对复杂问题进行简化描述,帮助有关人员快速、简单直观、准确地了解系统;准确地了解系统;建模的过程使得分析师和设计师能更全面地研究系统,深建模的过程使得分析师和设计师能更全面地研究系统,深思熟虑,减少遗漏,以形成更成熟的方案;思熟虑,减少遗漏,以形成更成熟的方案;各阶段产生的模型为后
15、续阶段的有关人员提供了工作依据;各阶段产生的模型为后续阶段的有关人员提供了工作依据;为项目各类人员提供了统一的交流工具,利于沟通和团队为项目各类人员提供了统一的交流工具,利于沟通和团队合作;合作;为项目验收和将来的维护工作提供了文档依据;为项目验收和将来的维护工作提供了文档依据;利用工具将模型映射为特定平台的可执行代码(利用工具将模型映射为特定平台的可执行代码(MDDMDD,Model-Driven DevelopmentModel-Driven Development),减少开发人员工作量。),减少开发人员工作量。4. 统一建模语言统一建模语言UMLl统一建模语言统一建模语言UML(unif
16、ied modeling language)是由单一元模型支持的一组图示法。这些图示法)是由单一元模型支持的一组图示法。这些图示法有助于表达与设计软件系统,特别是采用面向对象有助于表达与设计软件系统,特别是采用面向对象方法构造的软件系统。方法构造的软件系统。lUML通过不同的图来描述系统的结构(通过不同的图来描述系统的结构(structure)、行为(、行为(behavior)、交互过程()、交互过程(interaction)。)。lUML 2.2中一共定义了中一共定义了14种图(种图(diagram):):系统结构:类图、对象图、包图、构件图、部署图等系统结构:类图、对象图、包图、构件图、部
17、署图等系统行为:活动图、状态图、用例图系统行为:活动图、状态图、用例图交互过程:通信图、顺序图、计时图等交互过程:通信图、顺序图、计时图等3.3 信息系统的生命周期信息系统的生命周期l信息系统开发围绕信息系统生命周期来进行,有时信息系统开发围绕信息系统生命周期来进行,有时也称系统开发生命周期(也称系统开发生命周期(SDLCSDLC,System System Development Life CycleDevelopment Life Cycle),体现系统工程的思想。),体现系统工程的思想。l包含包含5 5个阶段:个阶段:规划、分析、设计、实施、运维规划、分析、设计、实施、运维生命周期的阶段
18、生命周期的阶段可行性可行性研究研究开发开发请求请求详细详细调查调查系统系统转换转换总体总体设计设计逻辑逻辑设计设计审批审批初步初步调查调查验收验收系统系统维护维护系统系统评价评价详细详细设计设计审查审查编程编程调试调试审查审查运行维护运行维护系统规划系统规划系统实施系统实施系统分析系统分析系统设计系统设计1. 阶段任务阶段任务2. 设计文档设计文档各阶段任务各阶段任务l系统规划系统规划确定信息系统的发展规划;企业业务流程的识别、改革与确定信息系统的发展规划;企业业务流程的识别、改革与创新;对建设新系统的需求作出初步研究,确定信息系统创新;对建设新系统的需求作出初步研究,确定信息系统的总体结构;
19、确定系统的备选方案,对这些方案进行可行的总体结构;确定系统的备选方案,对这些方案进行可行性分析性分析 l系统分析系统分析详细调查,确定系统的基本目标和逻辑功能要求详细调查,确定系统的基本目标和逻辑功能要求l系统设计系统设计根据系统说明书中规定的功能要求,考虑实际条件,具体根据系统说明书中规定的功能要求,考虑实际条件,具体设计实现逻辑模型的技术方案设计实现逻辑模型的技术方案 l系统实施系统实施计算机等设备的购置、安装和调试;编写、调试和测试程计算机等设备的购置、安装和调试;编写、调试和测试程序;人员培训;数据准备或转换;系统调试与转换序;人员培训;数据准备或转换;系统调试与转换 l系统维护系统维
20、护运行情况的记录;必要的修改;评价和总结等运行情况的记录;必要的修改;评价和总结等信息系统开发方法信息系统开发方法生命周期是指导性方针,很抽象,具体的信息生命周期是指导性方针,很抽象,具体的信息系统开发方法有很多,主要研究方向有两类:系统开发方法有很多,主要研究方向有两类:l针对开发过程针对开发过程不同的信息系统开发过程模型。关注整个开发采取哪些步不同的信息系统开发过程模型。关注整个开发采取哪些步骤,每个步骤包含哪些任务,由什么人完成,任务的成果骤,每个步骤包含哪些任务,由什么人完成,任务的成果如何体现等如何体现等也称为不同的生存周期模型也称为不同的生存周期模型l针对开发技术针对开发技术不同的
21、建模方法,从不同的观点来反映系统的全貌,并采不同的建模方法,从不同的观点来反映系统的全貌,并采用不同技术手段予以实现用不同技术手段予以实现3.4信息系统开发过程模型信息系统开发过程模型(基于生命周期的开发方法)(基于生命周期的开发方法)l开发过程的研究和经验的总结:开发过程的研究和经验的总结:瀑布模型(开发方法)瀑布模型(开发方法)原型模型(开发方法)原型模型(开发方法)增量模型(迭代开发方法)增量模型(迭代开发方法)螺旋模型(开发方法)螺旋模型(开发方法)喷泉模型(开发方法)喷泉模型(开发方法)敏捷开发过程(开发方法)敏捷开发过程(开发方法)3.4.1 瀑布模型瀑布模型l强调阶段的划分和阶段
22、严格的顺序强调阶段的划分和阶段严格的顺序l各阶段工作任务明确,要求文档完备性各阶段工作任务明确,要求文档完备性l是一种严格线性的按阶段顺序的、逐步细化的开发是一种严格线性的按阶段顺序的、逐步细化的开发模式,消除了软件开发的随意性模式,消除了软件开发的随意性规划规划分析分析设计设计编程编程测试测试维护维护瀑布模型的特点瀑布模型的特点l简单易用,容易理解简单易用,容易理解l开发的进程一个顺着一个,没有反馈过程,需要严开发的进程一个顺着一个,没有反馈过程,需要严密控制密控制l允许基线和配置早期接收控制允许基线和配置早期接收控制l一个新的项目不适合这个模型一个新的项目不适合这个模型l用户直到项目结束才
23、能看到质量如何用户直到项目结束才能看到质量如何l不允许或者严格限制变更不允许或者严格限制变更瀑布模型(后来实际)瀑布模型(后来实际)实际的瀑布模型瀑布模型的不足瀑布模型的不足l需求:客户常常难以表达真正的需求,而这种模型需求:客户常常难以表达真正的需求,而这种模型却要求严格的阶段性成果,返工困难,变更代价很却要求严格的阶段性成果,返工困难,变更代价很大大l风险:客户要等到开发周期的晚期才能看到程序运风险:客户要等到开发周期的晚期才能看到程序运行的测试版本,这时若发现大的错误,可能引起客行的测试版本,这时若发现大的错误,可能引起客户的惊慌,其后果也可能是灾难性的户的惊慌,其后果也可能是灾难性的l
24、效率:因为前后任务的依赖关系,成员不能并行工效率:因为前后任务的依赖关系,成员不能并行工作,有可能花在等待的时间比开发的时间要长,即作,有可能花在等待的时间比开发的时间要长,即所谓的所谓的“堵塞状态堵塞状态”适用于一些需求已明确并且变化较少的信息系统适用于一些需求已明确并且变化较少的信息系统3.4.2 原型开发方法原型开发方法l原型原型快速建立起来的可以在计算机上运行的快速建立起来的可以在计算机上运行的程程序序,通常选取信息系统中某个关键功能作为原型。,通常选取信息系统中某个关键功能作为原型。编程测试编程测试分析分析定义需求定义需求设计设计原型原型实施完成实施完成再构造再构造原型方法的基本思想
25、和开发步骤原型方法的基本思想和开发步骤l基本思想基本思想 在投入大量的人力、物力之前,在限定的时间内,在投入大量的人力、物力之前,在限定的时间内,用最经济的方法构造一个系统原型,使用户尽早看用最经济的方法构造一个系统原型,使用户尽早看到系统的概貌,在系统原型的实际运行中与用户一到系统的概貌,在系统原型的实际运行中与用户一起发现问题,提出修改意见,不断完善原型,使它起发现问题,提出修改意见,不断完善原型,使它逐步满足用户要求逐步满足用户要求l开发步骤开发步骤明确用户基本信息需求明确用户基本信息需求建立初始原型(集成原则、最小系统原则)建立初始原型(集成原则、最小系统原则)评价原型评价原型修改和完
26、善原型修改和完善原型快速原型的开发工具快速原型的开发工具l第四代技术第四代技术l可复用软件构件可复用软件构件l形式化规约和原型环境形式化规约和原型环境快速原型的类型快速原型的类型l抛弃式原型。将开发原型看做是沟通工具,永远也抛弃式原型。将开发原型看做是沟通工具,永远也不会将一次式原型引入正式运行环境中。主要解决不会将一次式原型引入正式运行环境中。主要解决需求的不确定性,二义性,不完整性等。需求的不确定性,二义性,不完整性等。l进化式原型。会在未来的系统中包含的原型。这种进化式原型。会在未来的系统中包含的原型。这种方法能够将最大量的工作投入到正式系统中。方法能够将最大量的工作投入到正式系统中。l
27、水平原型也称为行为原型,用来探索预期系统的一水平原型也称为行为原型,用来探索预期系统的一些特定行为,并达到细化需求的目的。水平原型通些特定行为,并达到细化需求的目的。水平原型通常只是功能导航,并未真实实现功能。主要用在用常只是功能导航,并未真实实现功能。主要用在用户界面上。户界面上。l垂直原型也称为结构化原型,实现了一部分功能。垂直原型也称为结构化原型,实现了一部分功能。主要用在复杂的算法实现上。主要用在复杂的算法实现上。抛弃式原型模型抛弃式原型模型演化式原型模型演化式原型模型是是交付目标系交付目标系统统建立建立/完善原型完善原型系统充分吗系统充分吗?否否软件过程的演化式原型模型软件过程的演化
28、式原型模型使用原型系统使用原型系统需求抽象描述需求抽象描述快速原型的典型应用快速原型的典型应用快速原型的评价快速原型的评价l这个原型所实现的功能与你所期望的一致吗?这个原型所实现的功能与你所期望的一致吗?l有遗漏的功能吗?有遗漏的功能吗?l有多余的功能吗?有多余的功能吗?l你能考虑一下这个原型所没有涉及到的一些出错情你能考虑一下这个原型所没有涉及到的一些出错情况吗?况吗?l这些功能导航的逻辑性和完整性如何?这些功能导航的逻辑性和完整性如何?l有更简单的方法来完成这一任务吗?有更简单的方法来完成这一任务吗?原型模型的特点和应用场合原型模型的特点和应用场合l用户积极参与用户积极参与l原型的开发没有
29、严密的阶段性原型的开发没有严密的阶段性l短期获得测试版本,降低风险短期获得测试版本,降低风险应用于以下场合:应用于以下场合:需求含糊,用户不能标识出详细的输入、需求含糊,用户不能标识出详细的输入、处理和输出需求处理和输出需求设计方案不明确,开发人员不能确定算法设计方案不明确,开发人员不能确定算法的有效性、操作系统的适应性或人机交互的有效性、操作系统的适应性或人机交互的有效性的有效性原型模型的不足原型模型的不足l降低风险的同时,引入了其他风险:降低风险的同时,引入了其他风险:用户随意无止境的需求变化,因为用户容易产生误解,认用户随意无止境的需求变化,因为用户容易产生误解,认为系统很容易被构造和修
30、改为系统很容易被构造和修改如果采用原型基础上继续构造,由于修补过度,软件质量如果采用原型基础上继续构造,由于修补过度,软件质量不易于保证不易于保证开发人员为了快速构造原型,可能会采用不合适的操作系开发人员为了快速构造原型,可能会采用不合适的操作系统、语言、算法等,造成后期风险,如系统适应性差、维统、语言、算法等,造成后期风险,如系统适应性差、维护困难等护困难等3.4.3 迭代开发过程迭代开发过程l一条直线一次性到达目的总是困难的。一条直线一次性到达目的总是困难的。l紧迫的市场期限和快速变化使得难以一次性完成整紧迫的市场期限和快速变化使得难以一次性完成整个软件产品,解决方法是先提交一个有限的版本
31、,个软件产品,解决方法是先提交一个有限的版本,细节部分逐步增加,即多次迭代后完成系统。融合细节部分逐步增加,即多次迭代后完成系统。融合了瀑布方法和原型方法。了瀑布方法和原型方法。l整个开发工作被组织为一系列的短小的、固定长度整个开发工作被组织为一系列的短小的、固定长度的小项目,被称为一系列的迭代。的小项目,被称为一系列的迭代。l有两种迭代:有两种迭代:迭代增量:迭代周期完成一个增量,然后集成迭代增量:迭代周期完成一个增量,然后集成迭代进化:迭代周期内包含演化和完善迭代进化:迭代周期内包含演化和完善增量模型(增量迭代)增量模型(增量迭代)增量模型增量模型融合了瀑布模型的基本成分和原型的迭融合了瀑
32、布模型的基本成分和原型的迭代特征。采用随着日程时间的进展而交错的线性序代特征。采用随着日程时间的进展而交错的线性序列。列。搭积木的方式,如按子系统划分增量搭积木的方式,如按子系统划分增量分析分析分析分析分析分析分析分析设计设计设计设计设计设计设计设计编码编码编码编码编码编码编码编码测试测试测试测试测试测试测试测试增量增量1增量增量2 增量增量3增量增量4 功能功能时间时间增量模型(增量迭代)的特点增量模型(增量迭代)的特点l以功能递增的方式进行软件开发(可并行化)以功能递增的方式进行软件开发(可并行化)l能较快地产生可操作的系统能较快地产生可操作的系统l在每一步递增中,都可以把用户在每一步递增
33、中,都可以把用户/ /开发者的经验结合开发者的经验结合到不断求精的下一个增量中到不断求精的下一个增量中l可改善测试效果和降低软件开发总成本。可改善测试效果和降低软件开发总成本。l这个过程好比搭积木。这个过程好比搭积木。进化迭代的特点进化迭代的特点l进化迭代与增量迭代的区别是在每个迭代周期是对进化迭代与增量迭代的区别是在每个迭代周期是对上一次迭代的演化和完善。上一次迭代的演化和完善。l比如可以将一个软件功能的编程划分了多个迭代周比如可以将一个软件功能的编程划分了多个迭代周期,每个迭代是对该功能的补充和进化。期,每个迭代是对该功能的补充和进化。l这个过程好比滚雪球。这个过程好比滚雪球。 增量模型的
34、应用场合增量模型的应用场合l项目开始,明确了需求的大部分,但是需求可能会项目开始,明确了需求的大部分,但是需求可能会发生变化发生变化l对于市场和用户把握不是很准,需要逐步了解对于市场和用户把握不是很准,需要逐步了解l对于有庞大和复杂功能的系统进行功能改进,本身对于有庞大和复杂功能的系统进行功能改进,本身就需要一步一步实施的。就需要一步一步实施的。迭代开发过程示例迭代开发过程示例l例子:设计一个字处理软件例子:设计一个字处理软件增量增量1 1:实现软件的基本需求,提供最核心:实现软件的基本需求,提供最核心的功能。的功能。增量增量2 2:提供更完善的编辑和文档生成功能。:提供更完善的编辑和文档生成
35、功能。增量增量3 3:实现拼写和语法检查功能。:实现拼写和语法检查功能。增量增量4 4:完成高级的页面排版功能。:完成高级的页面排版功能。迭代开发过程的应用场合迭代开发过程的应用场合l项目开始,明确了需求的大部分,但是需求可能会项目开始,明确了需求的大部分,但是需求可能会发生变化发生变化l对于市场和用户把握不是很准,需要逐步了解对于市场和用户把握不是很准,需要逐步了解l对于有庞大和复杂功能的系统进行功能改进,本身对于有庞大和复杂功能的系统进行功能改进,本身就需要一步一步实施的。就需要一步一步实施的。3.4.4 螺旋模型螺旋模型l螺旋方法螺旋方法把软件开发过程定义成不断上升的螺把软件开发过程定义
36、成不断上升的螺旋周期,每个周期划分为计划、旋周期,每个周期划分为计划、风险分析、实施和风险分析、实施和评价四个方面。沿螺线自内向外每旋转一圈便开发评价四个方面。沿螺线自内向外每旋转一圈便开发出更为完善的一个新的软件版本。出更为完善的一个新的软件版本。 这里的原型不是用于验这里的原型不是用于验证的原型系统,而是最证的原型系统,而是最终要交付的成品系统。终要交付的成品系统。螺旋模型的特点和应用场合螺旋模型的特点和应用场合l风险驱动,可以在生命周期早期强制性的确定项目风险驱动,可以在生命周期早期强制性的确定项目中存在的风险中存在的风险l需要开发人员具有相当丰富的风险评估经验和专门需要开发人员具有相当
37、丰富的风险评估经验和专门知识知识l要求用户参与阶段评价,对用户要求较高要求用户参与阶段评价,对用户要求较高 适用于:适用于:单位内部开发的大规模软件项目单位内部开发的大规模软件项目风险是项目的主要制约因素风险是项目的主要制约因素可能会发生重大变更可能会发生重大变更采用新技术采用新技术3.4.5 喷泉模型喷泉模型l喷泉模型喷泉模型主要用于主要用于面向对象技术面向对象技术的软件开发项的软件开发项目,它克服了瀑布模型不支持软件重用和多项开发目,它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性。性和无间隙性。
38、喷泉模型以面向对象的软件开发方法为基础,喷泉模型以面向对象的软件开发方法为基础,以用户需求作为喷泉模型的源泉,属于面向对象的以用户需求作为喷泉模型的源泉,属于面向对象的软件过程模型。软件过程模型。 喷泉模型特点:各阶段相互重叠,它反映了软件过程并行性的特点体现认识事物的往返过程强调增量开发,整个过程是一个迭代的逐步提炼的过程。开发活动之间的无间隙性和循环迭代性适用于面向对象的开发过程强调无明显的活动阶段划分 集成和测试集成和测试阶段阶段编码阶段编码阶段面向对象设面向对象设计阶段计阶段面向对象分面向对象分析阶段析阶段需求阶段需求阶段进一步开发进行状态维护期3.4.6 敏捷开发过程敏捷开发过程l敏
39、捷过程(敏捷过程(agile process)是一系列轻量的过程模)是一系列轻量的过程模型的总称,致力于在无过程和过于繁琐的过程中达型的总称,致力于在无过程和过于繁琐的过程中达到一种平衡,强调对需求变化的敏捷响应,以不多到一种平衡,强调对需求变化的敏捷响应,以不多的步骤过程获取满意的结果。的步骤过程获取满意的结果。l敏捷软件开发宣言:敏捷软件开发宣言:1 1个体和交互胜过过程和工具个体和交互胜过过程和工具2 2可以工作的软件胜过面面惧到的文档可以工作的软件胜过面面惧到的文档3 3客户合作胜过合同谈判客户合作胜过合同谈判4 4响应变化胜过遵循变化响应变化胜过遵循变化虽然右项也有价值,但我们认为左
40、项具有更大的价值。虽然右项也有价值,但我们认为左项具有更大的价值。l基于迭代开发方法探索出的成功实践。基于迭代开发方法探索出的成功实践。开发过程的代表产品开发过程的代表产品一些公司或团体纷纷推出规范化的过程产品:一些公司或团体纷纷推出规范化的过程产品:lIBM统一过程统一过程RUP(Rational Unified Process,迭,迭代过程的代表,重量级过程)代过程的代表,重量级过程)l微软微软MSF(Microsoft Solutions Framework )l敏捷:敏捷:极限编程极限编程、Scrum(轻量级过程)(轻量级过程)l练习题练习题l假设要开发一个软件,该软件的功能是对特定项
41、目假设要开发一个软件,该软件的功能是对特定项目进行一项验证计算(假定计算方法十分确定、成进行一项验证计算(假定计算方法十分确定、成熟),一旦实现后将用于该项目的测试验证中,由熟),一旦实现后将用于该项目的测试验证中,由于项目的特殊性,所以,该软件产品在完成使命后于项目的特殊性,所以,该软件产品在完成使命后将被抛弃。将被抛弃。软件需求明确,算法确定、成熟,故无须原型来验证。软件需求明确,算法确定、成熟,故无须原型来验证。一旦验证完成之后将被抛弃,故无须使用提高软件可一旦验证完成之后将被抛弃,故无须使用提高软件可维护性的迭代模型和螺旋模型。维护性的迭代模型和螺旋模型。综上所述,为了开发此软件,使用
42、瀑布模型即可。综上所述,为了开发此软件,使用瀑布模型即可。3.5 信息系统开发技术信息系统开发技术(基于开发技术的开发方法)(基于开发技术的开发方法)l信息系统通常十分复杂,通常会借助于模型对它进信息系统通常十分复杂,通常会借助于模型对它进行研究、认识、描述和设计。行研究、认识、描述和设计。l本节从模型化的角度探讨信息系统不同开发方法的本节从模型化的角度探讨信息系统不同开发方法的形成和各自特点。形成和各自特点。3.5.1 管理模型到信息模型管理模型到信息模型l信息系统模型最核心的是信息处理模型,应考虑两信息系统模型最核心的是信息处理模型,应考虑两个方面:个方面:信息处理模型最核心的是软件结构模
43、型,而软件模型由信息处理模型最核心的是软件结构模型,而软件模型由计算机程序语言的特性来决定。计算机程序语言的特性来决定。机器语言、汇编语言、机器语言、汇编语言、C、C+1.1.信息处理模型来源于管理模型,而管理系统模型包含以信息处理模型来源于管理模型,而管理系统模型包含以下方面:下方面:管理系统管理系统静态特征静态特征( (对象、属性、关系对象、属性、关系) )动态特征(行为动态特征(行为/ /事件事件/ /行动行动/ /状态状态)业务流程业务流程业务规则业务规则. .模型模型信息处理模型信息处理模型l管理模型抽象描述了需要解决的管理问题(问题空管理模型抽象描述了需要解决的管理问题(问题空间)
44、,而信息处理模型则回答信息系统将如何解决间),而信息处理模型则回答信息系统将如何解决问题(解空间)问题(解空间)l这个求解过程中最这个求解过程中最核心的内容核心的内容在于在于信息处理模型中信息处理模型中的的软件软件系统系统。管理领域及问题管理模型信息处理模型系统实现条件信息系统技术环境信息系统学科信息处理模型信息处理模型l信息系统包含硬件、软件、信息等组成要素。信息系统包含硬件、软件、信息等组成要素。l但其中软件系统的状态比硬件系统的状态往往要多但其中软件系统的状态比硬件系统的状态往往要多若干数量级,只有找到控制和降低软件复杂性的方若干数量级,只有找到控制和降低软件复杂性的方法,才能根本地控制
45、和降低信息系统复杂性。法,才能根本地控制和降低信息系统复杂性。l人们不断研究新的软件开发技术,试图缩小计算机人们不断研究新的软件开发技术,试图缩小计算机世界和现实世界之间的鸿沟,从而让管理模型与信世界和现实世界之间的鸿沟,从而让管理模型与信息处理模型有更高的一致性,易于转换和实现。息处理模型有更高的一致性,易于转换和实现。 设计优秀的软件结构设计优秀的软件结构l优秀的软件结构应具有以下特性:优秀的软件结构应具有以下特性:能真实、充分地反映现实世界,包括事物和事物之间的联能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求;系,能满足用户对数据的处理要求;易于理解,方
46、便开发人员之间、开发人员与用户之间交换易于理解,方便开发人员之间、开发人员与用户之间交换意见;意见;易于更改,当应用环境和应用要求改变时,能容易地对系易于更改,当应用环境和应用要求改变时,能容易地对系统进行修改和扩充;统进行修改和扩充;易于向计算机支持的数据结构转换。易于向计算机支持的数据结构转换。l软件结构从简单到复杂,走过了从机器指令、语句、软件结构从简单到复杂,走过了从机器指令、语句、模块封装到类封装、再到构件和服务封装的历史发模块封装到类封装、再到构件和服务封装的历史发展过程,不同的开发技术和软件结构催生了不同的展过程,不同的开发技术和软件结构催生了不同的开发方法。开发方法。软件结构设
47、计的基本原则软件结构设计的基本原则l抽象第一抽象第一抽象是人类认识世界的基本法则之一。对实际的事物进行抽象是人类认识世界的基本法则之一。对实际的事物进行处理,抽取所关心的、共同的、本质特征的属性,并对这处理,抽取所关心的、共同的、本质特征的属性,并对这些事物及其特征属性进行描述。由于抽取的是共同的、本些事物及其特征属性进行描述。由于抽取的是共同的、本质特征的属性,从而大大降低了系统元素的绝对数量。质特征的属性,从而大大降低了系统元素的绝对数量。l层次划分层次划分复杂系统可以先分解为子系统,逐层分解。分解的每个子复杂系统可以先分解为子系统,逐层分解。分解的每个子集互不相交,能使注意力集中与某个子
48、集内部及与其他子集互不相交,能使注意力集中与某个子集内部及与其他子集的联系。层次和每层子集的数目为短时记忆最大容量集的联系。层次和每层子集的数目为短时记忆最大容量7 72 2的范围之内。的范围之内。l模型化模型化提出以模型代替真实系统进行模拟实验,达到认识真实系提出以模型代替真实系统进行模拟实验,达到认识真实系统特性和规律性的方法。统特性和规律性的方法。信息系统的开发技术信息系统的开发技术l信息系统的开发技术(基于软件技术的开发方法):信息系统的开发技术(基于软件技术的开发方法):结构化开发技术结构化开发技术面向数据开发技术面向数据开发技术面向对象开发技术面向对象开发技术面向服务开发技术面向服
49、务开发技术3.5.2 结构化开发技术结构化开发技术l结构化方法论(结构化方法论(Structured Methodology)是计算)是计算学科的一种典型的系统开发方法论。学科的一种典型的系统开发方法论。它采用了系统科学的思想方法,从它采用了系统科学的思想方法,从层次的角度,自顶向下层次的角度,自顶向下地分析和设计系统,即地分析和设计系统,即抽象与分解抽象与分解。系统可用高级的抽象概念来理解和构造系统可用高级的抽象概念来理解和构造, , 这些高级的抽象这些高级的抽象概念又可用较低级的抽象概念来理解和构造,如此进行下概念又可用较低级的抽象概念来理解和构造,如此进行下去,直到最低层次的模块可以表示
50、成某种程序设计语言的去,直到最低层次的模块可以表示成某种程序设计语言的语句为止。语句为止。结构化开发技术结构化开发技术l也称为也称为 面向功能面向功能/ /面向过程面向过程/ /面向数据流面向数据流 的软件开的软件开发方法发方法l结构化方法包括结构化分析(结构化方法包括结构化分析(Structured Analysis,简称简称SA)、结构化设计()、结构化设计(Structured Design,简,简称称SD)和结构化程序设计()和结构化程序设计(Structured Program,简称简称SP)三部分内容:)三部分内容:结构化分析(结构化分析(SASA)对软件进行需求分析,以数据流图表
51、示对软件进行需求分析,以数据流图表示结构化设计(结构化设计(SDSD)进行总体设计,以结构图表示进行总体设计,以结构图表示结构化编程(结构化编程(SPSP),以程序流程图表示,以程序流程图表示结构化开发方法的形成结构化开发方法的形成/1l结构化程序设计结构化程序设计SP方法的产生方法的产生结构化方法起源于结构化程序设计语言。在使用结构化方法起源于结构化程序设计语言。在使用SPSP之前,之前,程序员都是按照各自的习惯和思路来编写程序,没有统一程序员都是按照各自的习惯和思路来编写程序,没有统一的标准,这样编写的程序可读性差,更为严重的是程序的的标准,这样编写的程序可读性差,更为严重的是程序的可维护
52、性极差,经过研究发现,造成这一现象的根本原因可维护性极差,经过研究发现,造成这一现象的根本原因是程序的结构问题。是程序的结构问题。19661966年,年,C.BC.Bhmhm和和G.JacopiniG.Jacopini提出了关于提出了关于“程序结构程序结构”的理论,并给出了任何程序的逻辑结构都可以用顺序结构、的理论,并给出了任何程序的逻辑结构都可以用顺序结构、选择结构和循环结构来表示的证明。在程序结构理论的基选择结构和循环结构来表示的证明。在程序结构理论的基础上,础上,19681968年,戴克斯特拉提出了年,戴克斯特拉提出了“GOTOGOTO语句是有害的语句是有害的”的问题,并引起普遍重视,的
53、问题,并引起普遍重视,SPSP逐渐形成,并成为计算机软逐渐形成,并成为计算机软件领域的重要方法,对计算机软件的发展具有重要的意义。件领域的重要方法,对计算机软件的发展具有重要的意义。伴随着伴随着SPSP的形成,相继出现了的形成,相继出现了Modula-2Modula-2、C C以及以及AdaAda等结构等结构化程序设计语言。化程序设计语言。结构化开发方法的形成结构化开发方法的形成/2l结构化设计方法结构化设计方法SD的形成的形成结构化程序设计需要事先设计好每一个具体的功能模块,结构化程序设计需要事先设计好每一个具体的功能模块,然后将这些设计好的模块组装成一个软件系统。然后将这些设计好的模块组装
54、成一个软件系统。源于结构化程序设计思想的结构化设计方法就是要解决模源于结构化程序设计思想的结构化设计方法就是要解决模块的构建问题。块的构建问题。19741974年,年,W.StevensW.Stevens、G.MyersG.Myers和和L.ConstantineL.Constantine等人在等人在IBMIBM系统系统(IBM SystemIBM System)杂志上)杂志上发表了发表了结构化设计结构化设计(Structured DesignStructured Design)论文,为)论文,为结构化设计方法奠定了思想基础。结构化设计方法奠定了思想基础。l结构化分析方法结构化分析方法SA的形
55、成的形成结构化设计方法建立在系统需求明确的基础上。如何明确结构化设计方法建立在系统需求明确的基础上。如何明确系统的需求,就是结构化分析所要解决的问题。系统的需求,就是结构化分析所要解决的问题。结构化分析方法产生于结构化分析方法产生于2020世纪世纪7070年代中期,最初的倡导者年代中期,最初的倡导者有有Tom DemarcoTom Demarco、Ed YourdonEd Yourdon等人。等人。结构化分析在结构化分析在2020世纪世纪8080年代又得到了进一步的发展,并随年代又得到了进一步的发展,并随着着Ed YourdonEd Yourdon于于19891989年所著的年所著的现代结构化
56、分析现代结构化分析(Modern Structured AnalysisModern Structured Analysis)的出版而流行开来。现)的出版而流行开来。现代结构化分析更强调建模的重要性。代结构化分析更强调建模的重要性。结构化方法五个基本原则结构化方法五个基本原则l面向用户的观点面向用户的观点l严格区分工作阶段,每个阶段有明确的任务和应得严格区分工作阶段,每个阶段有明确的任务和应得的成果的成果l按照系统的观点,自顶向下地完成系统的研制工作按照系统的观点,自顶向下地完成系统的研制工作l充分考虑变化的情况充分考虑变化的情况l工作成果文献化、标准化工作成果文献化、标准化结构化分析结构化分
57、析数据流图数据流图顾客顾客编编 辑辑订货单订货单订货单订货单配件库存配件库存1.11.1确确 定定顾顾 客客订订 货货1.21.21.31.3业务业务员员产产 生生暂暂 存存订货单订货单1.41.4不合格不合格顾客顾客D D2 2D D3 3可发可发订货订货不满足不满足的订货的订货暂存订货单暂存订货单D D4 4销售历史销售历史D D5 5应收款明细账应收款明细账D D1010合格的订货单合格的订货单检检 索索库库 存存1.51.5经理经理查询请求查询请求库库 存存状状 态态开发货单开发货单并并修改库存修改库存顾客顾客发货单发货单模型中的某个功能的分解图:模型中的某个功能的分解图:结构化设计结
58、构化设计模块结构图模块结构图销售子系统暂存订货单处理登记订货单查询打印发货单作废订货单查询订货单查询库存暂暂存存处处理理修修改改库库存存冲账结构化模型结构化模型数据流图数据流图模型的层次和分解:模型的层次和分解:结构化模型结构化模型模块结构图模块结构图图书馆管理系统图书馆管理系统图书管理图书管理读者管理读者管理借还书管理借还书管理新新书书登登记记旧旧书书淘淘汰汰读读者者登登记记读读者者删删除除借借书书查查询询还还书书书书目目查查询询借借阅阅排排行行根根据据卡卡号号查查读读者者根根据据书书号号查查图图书书判判读读者者结结束束资资格格保保存存借借书书记记录录删删除除读读者者记记录录3.5.3 面向
59、对象开发方法面向对象开发方法l面向对象面向对象(object-oriented)方法具有很强的类和对方法具有很强的类和对象的概念,因此它就能很自然地直观地模拟人类认象的概念,因此它就能很自然地直观地模拟人类认识客观世界的方式,包括:识客观世界的方式,包括:客观世界的任何事物都是对象客观世界的任何事物都是对象(object)(object)。它们都有一些静。它们都有一些静态态特征特征和有关和有关行为行为。对象之间有抽象与具体、群体与个体、整体与部分等几种对象之间有抽象与具体、群体与个体、整体与部分等几种关系,这些关系构成对象的网络结构关系,这些关系构成对象的网络结构。抽象的对象所具有的性质,自然
60、地成为抽象的对象所具有的性质,自然地成为具体对象具体对象的性质的性质,而不必说明(而不必说明(继承性继承性,inheritance)inheritance)。对象之间可以互送消息对象之间可以互送消息(message)(message),通过消息进行交互和,通过消息进行交互和协作。协作。面向对象方法举例面向对象方法举例l比如:比如:汽车作为一个对象,有排量、颜色、行驶里程等数据,有汽车作为一个对象,有排量、颜色、行驶里程等数据,有启动、行驶、停止、熄火等行为,驾驶员的点火事件可以启动、行驶、停止、熄火等行为,驾驶员的点火事件可以触发汽车的启动操作,踩下油门事件会触发汽车行驶,行触发汽车的启动操作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房地产买卖合同与房地产买卖合同
- 药物治疗了吗练习卷附答案
- 第31讲 概率 2025年中考数学一轮复习讲练测(广东专用)
- 出国劳务经营合同范本
- 2025年车辆买卖定金合同模板
- 品牌命名策划合同范本
- 鸭霸王加盟合同范本
- 烟草专卖内管培训
- 断桥门窗安装合同范本
- 摆摊整体转让合同范本
- 课题申报书:医学院校研究生“导学思政”创新实践路径研究
- 2025年游泳教练资格认证考试理论试题集(初级)
- 高二入团考试试题及答案
- 河南郑州大学第二附属医院招聘笔试真题2024
- GB/T 45315-2025基于LTE-V2X直连通信的车载信息交互系统技术要求及试验方法
- 《中国脑卒中防治报告(2023)》
- 吉林省吉林市2024-2025学年高三下学期3月三模试题 政治 含答案
- 湖北省圆创教育教研中心2025届高三三月联合测评物理试题及答案
- 五下语文期中复习知识点
- 城市轨道交通轨道设备运营维保方案终稿
- 陈仓《我有一棵树》阅读答案
评论
0/150
提交评论