《信息系统开发方法.ppt》由会员分享,可在线阅读,更多相关《信息系统开发方法.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第13131313章章章章 信息系统开发方法信息系统开发方法信息系统开发方法信息系统开发方法本章内容本章内容v信息系统开发方法信息系统开发方法n结构化开发结构化开发n迭代化开发迭代化开发v面向对象思想面向对象思想An Introduction to Database System系统开发过程中的认知方法系统开发过程中的认知方法v人们从事任何一项工程项目时:人们从事任何一项工程项目时:n首先必须了解对象,即明确要做什么;然后考虑怎首先必须了解对象,即明确要做什么;然后考虑怎么做;最后才是实际动手去做。么做;最后才是实际动手去做。v对应于信息系统的开发的三个步骤:对应于信息系统的开发的三个步
2、骤:n系统分析阶段;系统设计阶段;系统实现阶段系统分析阶段;系统设计阶段;系统实现阶段An Introduction to Database System系统开发过程中的认知方法系统开发过程中的认知方法v在传统的系统开发中,由于计算机软硬件设备条件所在传统的系统开发中,由于计算机软硬件设备条件所限,系统开发过程的重心向下;限,系统开发过程的重心向下;v随着计算机技术的进步,应用软件的变成实现越来越随着计算机技术的进步,应用软件的变成实现越来越容易,系统开发过程的重心开始前移。容易,系统开发过程的重心开始前移。建立领导小组建立领导小组组成系统开发组组成系统开发组进行系统规划进行系统规划1 1、系
3、统分析、系统分析3 3、系统实现、系统实现2 2、系统设计、系统设计4 4、系统评价、系统评价项目项目开发开发An Introduction to Database System结构化系统开发方法结构化系统开发方法v1.结构化开发结构化开发(瀑布模型瀑布模型)n结构化系统开发该方法强调从系统的角度出发来分结构化系统开发该方法强调从系统的角度出发来分析问题和解决问题,面对要开发的系统,从层次的析问题和解决问题,面对要开发的系统,从层次的角度,角度,自顶向下地分析和设计系统自顶向下地分析和设计系统。n开发过程强调严格的规范管理和开发过程强调严格的规范管理和系统生命周期系统生命周期,工,工作文档要成
4、文,要标准。作文档要成文,要标准。An Introduction to Database System阶阶 段段主主 要要 活活 动动系系 统统 规规 划划战战略略规规划划:根根据据组组织织的的目目标标和和发发展展战战略略确确定定信信息息系系统统的的发发展战略展战略业业务务流流程程规规划划:根根据据组组织织的的目目标标与与战战略略对对组组织织的的业业务务流流程程进行识别、改革与创新进行识别、改革与创新信信息息系系统统总总体体结结构构规规划划:进进行行组组织织的的信信息息需需求求分分析析、数数据据规规划划、功功能能规规划划与与系系统统划划分分(边边界界确确定定)、信信息息资资源源配配置置规规划划
5、项项目目实实施施与与资资源源分分配配规规划划:根根据据应应用用需需要要和和可可能能将将整整个个系系统统划划分分成成若若干干项项目目,估估计计每每个个项项目目所所需需硬硬件件、软软件件、网网络络、资金、人员等各项资源资金、人员等各项资源系系统统开开发发系系 统统 分分 析析系系统统详详细细调调查查,开开发发项项目目范范围围内内新新系系统统逻逻辑辑模模型型的的提提出出(业务流程图,数据流程图业务流程图,数据流程图)系系 统统 设设 计计系系统统总总体体结结构构设设计计、输输入入设设计计、输输出出设设计计、处处理理过过程程设设计计、数据存贮设计、计算机处理方案选择数据存贮设计、计算机处理方案选择系系
6、 统统 实实 施施软软件件编编程程和和软软件件包包购购置置、计计算算机机和和通通信信设设备备的的购购置置,系系统统的安装、调试与测试,新旧系统的转换的安装、调试与测试,新旧系统的转换系系 统统 运运 行行 与与 维维 护护系系统统运运行行的的组组织织与与管管理理、系系统统评评价价、系系统统纠纠错错性性维维护护、适适应性维护、完善性维护、预防性维护应性维护、完善性维护、预防性维护系系 统统 更更 新新现行系统问题分析、新系统的建设现行系统问题分析、新系统的建设系统开发生命周期系统开发生命周期An Introduction to Database System结构化系统开发方法结构化系统开发方法v
7、 结构化开发的过程:结构化开发的过程:n严格按照生命周期五个阶段:系统规划、系统分析、严格按照生命周期五个阶段:系统规划、系统分析、系统设计、系统实施、系统运行和维护。系统设计、系统实施、系统运行和维护。An Introduction to Database Systemv瀑布模型瀑布模型An Introduction to Database System结构化系统开发方法的优缺点结构化系统开发方法的优缺点优点:整体思路清楚,能够从全局出发,步步为营,优点:整体思路清楚,能够从全局出发,步步为营,减少返工,有利于提高开发质量;设计工作中阶减少返工,有利于提高开发质量;设计工作中阶段性强,段性强
8、,每一阶段均有工作成果出现,且是下一每一阶段均有工作成果出现,且是下一阶段工作的依据阶段工作的依据,工作进度比较容易把握,有利,工作进度比较容易把握,有利于系统开发的总体管理和控制。于系统开发的总体管理和控制。缺点:缺点:1.1.系统开发系统开发周期太长周期太长。风险高风险高。2.2.不符合人们循序渐进认识事物的规律性。不符合人们循序渐进认识事物的规律性。结构化系统开发方法结构化系统开发方法An Introduction to Database System风风险险时间时间传统的瀑布式开发流程传统的瀑布式开发流程Subsystem TestingSystem TestingCode&Unit
9、TestingDesignRequirements AnalysisAn Introduction to Database System瀑布模型无法有效控制项目风险,保证项目进度瀑布模型无法有效控制项目风险,保证项目进度测试时才发现系统性能无法达到预定指标增加的开发活动,整个项目的延误An Introduction to Database System本章内容本章内容v信息系统开发方法信息系统开发方法n结构化开发结构化开发n迭代化开发迭代化开发v面向对象思想面向对象思想An Introduction to Database System迭代化开发方法迭代化开发方法2.2.迭代化开发迭代化开发
10、用户与系统分析设计人员合作,在短期内定义用用户与系统分析设计人员合作,在短期内定义用户的基本需求,开发出一个功能不十分完善的、实户的基本需求,开发出一个功能不十分完善的、实验性的、简易的应用软件验性的、简易的应用软件基本框架基本框架,称为称为原型原型。先运。先运行这个原型,再不断评价和改进原型,使之逐步完行这个原型,再不断评价和改进原型,使之逐步完善。其开发是一个善。其开发是一个分析、设计、编程、测试、运行、分析、设计、编程、测试、运行、评价多次重复评价多次重复,不断演进的过程。,不断演进的过程。An Introduction to Database System迭代化迭代化开发过开发过程程(
11、包含包含了结构了结构化开发化开发)系统申请系统申请运行、评价运行、评价开发一个原型系统开发一个原型系统确定系统的基本要求和主要功能确定系统的基本要求和主要功能确定模型后处理确定模型后处理实际系统运行、维护实际系统运行、维护满意吗满意吗?满意满意不满意不满意主要任务;构主要任务;构造模型的依据造模型的依据修改修改(分析分析/设计设计/实施实施/测试测试/评评价价)An Introduction to Database System迭代化的软件项目生命周期模型迭代化的软件项目生命周期模型v迭代计划的依据:迭代计划的依据:风险驱动风险驱动n把复杂的问题分解成一系列相对简单的问题把复杂的问题分解成一系
12、列相对简单的问题n早期的迭代解决风险最高的问题。早期的迭代解决风险最高的问题。n每次迭代都增加系统的功能并产生一个可运行的结果每次迭代都增加系统的功能并产生一个可运行的结果n每次迭代都包括有测试工作每次迭代都包括有测试工作测试实施施设计分析分析时间Iteration 1 Iteration 2 Iteration 3 测试实施施设计分析分析测试实施施设计分析分析An Introduction to Database System什么是风险什么是风险?常见的风险类型常见的风险类型:n技术技术/架构风险架构风险 未经证实的技术,从未涉足的应用领域未经证实的技术,从未涉足的应用领域n资源风险资源风险
13、 缺乏足够的开发人员、技术、资金缺乏足够的开发人员、技术、资金n商业风险商业风险 竞争对手、竞争对手、ROI、供应商、供应商n进度风险进度风险 无法按时完成项目无法按时完成项目项目经理需要维护一张风险列表来对风险进行跟踪并评估风险的优先等级风险是人是人们目前目前拥有或即将有或即将产生的一种生的一种顾虑,担心某种因素,担心某种因素会会严重影响到重影响到项目的成功。目的成功。An Introduction to Database System迭代式项目的执行迭代式项目的执行v迭代一的目标是开发一个系统迭代一的目标是开发一个系统核心原型核心原型,满足性能需,满足性能需求指标求指标v迭代执行的结果可能
14、实现预定目标,也可能没有达到迭代执行的结果可能实现预定目标,也可能没有达到预定目标预定目标v项目经理项目经理需要对每次迭代结果进行评估需要对每次迭代结果进行评估v根据上一次迭代执行的结果来决定下一次迭代的工作根据上一次迭代执行的结果来决定下一次迭代的工作内容内容An Introduction to Database System 迭代一失败之后,调整过的计划迭代一失败之后,调整过的计划预定的结束日期 8月8日原计划调整过的计划原定一人完成的内容被分为两个人开发An Introduction to Database System时间风险结构化开构化开发的的风险迭代化开迭代化开发的的风险迭代化开发
15、 vs.结构化开发An Introduction to Database SystemBusiness Modeling Workflow在一次迭代中,我们会走过所有的规程(discipline)迭代是按预先计划所进行的一系列开发活动,通过迭代会产生一个软件发迭代是按预先计划所进行的一系列开发活动,通过迭代会产生一个软件发布结果(内部或外部的)布结果(内部或外部的),并且根据预先制定的标准来对该结果进行评估并且根据预先制定的标准来对该结果进行评估什么是迭代什么是迭代(iteration)?An Introduction to Database System迭代化开发的四个阶段迭代化开发的四个阶
16、段建立架构建立架构软件架构软件架构 确定目标和范围确定目标和范围项目目标项目目标 产品可以产品可以移交给客户移交给客户运行能力运行能力 客户验收客户验收项目结束项目结束初启初启初启初启精化精化精化精化构建构建构建构建交付交付交付交付时间An Introduction to Database System初启阶段初启阶段(Inception)v确定项目确定项目开发的目标和范围开发的目标和范围v定义定义主要的需求主要的需求:主要的用例场景:主要的用例场景v估算开发周期和成本估算开发周期和成本v估计潜在的风险估计潜在的风险软件架构软件架构 项目目标项目目标 运行能力运行能力 项目结束项目结束初启初启
17、初启初启ElaborationElaborationConstructionConstructionTransitionTransition时间An Introduction to Database System手机开发项目手机开发项目 初启阶段初启阶段初启迭代1手机功能列表:.通话.短信.地址簿.游戏明确目标和范围An Introduction to Database System精化阶段精化阶段(Elaboration)v尽快稳定并验证软件架构尽快稳定并验证软件架构v定义定义所有的需求所有的需求:所有的用例及用例场景:所有的用例及用例场景v根据主要的需求来根据主要的需求来开发一个基本架构开
18、发一个基本架构(开发,测试开发,测试)v为构建阶段为构建阶段(Construction)制定一个详细的开发计划制定一个详细的开发计划软件架构软件架构 项目目标项目目标 运行能力运行能力 项目结束项目结束初启初启初启初启精化精化精化精化ConstructionConstructionTransitionTransition时间An Introduction to Database System手机开发项目手机开发项目 精化阶段精化阶段初启迭代1手机功能列表:.通话.短信.地址簿.游戏精化迭代1完善细化需求开发实现基本通话功能测试基本通话功能精化迭代2完善细化需求开发实现短信功能测试短信功能建立手
19、机架构明确目标和范围An Introduction to Database System构建阶段构建阶段(Construction)v尽快完成软件产品的开发尽快完成软件产品的开发(开发,测试开发,测试)v尽可能降低开发成本,优化开发资源和避免不必要的返工尽可能降低开发成本,优化开发资源和避免不必要的返工v在保证开发进度的同时达到足够的软件质量在保证开发进度的同时达到足够的软件质量v获得一些获得一些有用的版本有用的版本(alpha,beta等等)软件架构软件架构 项目目标项目目标 运行能力运行能力 项目结束项目结束初启初启初启初启精化精化精化精化构建构建构建构建TransitionTransit
20、ion时间An Introduction to Database System手机开发项目手机开发项目 构建构建 阶段阶段初启迭代1手机功能列表:.通话.短信.地址簿.游戏精化迭代1完善细化需求开发实现基本通话功能测试基本通话功能精化迭代2完善细化需求开发实现短信功能测试短信功能构建迭代1开发实现地址薄和游戏功能测试相关功能建立手机架构明确目标和范围开发其他功能An Introduction to Database System交付阶段交付阶段(Transition)(Transition)v获得涉众的认同:获得涉众的认同:产品部署已经完成并且满足预定的质量标准产品部署已经完成并且满足预定的质
21、量标准v向客户交付产品,进行系统切换向客户交付产品,进行系统切换 软件架构软件架构 项目目标项目目标 运行能力运行能力 项目结束项目结束初启初启初启初启精化精化精化精化构建构建构建构建交付交付交付交付时间An Introduction to Database System迭代化开发四个阶段迭代化开发四个阶段Business Modeling WorkflowAn Introduction to Database System项目的关注点随时间而发生变化项目的关注点随时间而发生变化时间需求设计编码测试部署先启精化构建An Introduction to Database System迭代化开发迭
22、代化开发需求分析概要设计详细设计编码和单元测试功能测试系统测试质量检验点An Introduction to Database System本章内容本章内容v信息系统开发方法信息系统开发方法n结构化开发结构化开发n迭代化开发迭代化开发v面向对象思想面向对象思想An Introduction to Database System面向对象的方法(面向对象的方法(Object Oriented,OO)v客观世界是由各种各样的对象组成的,对象是一个独客观世界是由各种各样的对象组成的,对象是一个独立存在的实体,从外部可以了解它的功能,但其内部立存在的实体,从外部可以了解它的功能,但其内部细节是细节是“隐
23、蔽隐蔽”的,它不受外界干扰。每种对象都有的,它不受外界干扰。每种对象都有各自的内部状态和运动规律,不同的对象之间相互作各自的内部状态和运动规律,不同的对象之间相互作用和联系构成了各种不同的系统。用和联系构成了各种不同的系统。An Introduction to Database System历史历史vOOPL(Object Oriented Programming Language 面向对象程序设计语言)面向对象程序设计语言)v20世纪世纪70年代到年代到80年代年代,美国美国Xerox公司,公司,Palo Alto研究中心(研究中心(PARC)的)的Alan Kay,Adale Goldbe
24、rg和和Dan Ingans等人主持开发的等人主持开发的Smalltalk语语言正式使用了言正式使用了“面向对象面向对象”这个术语。它的问世标志这个术语。它的问世标志着面向对象程序设计方法的正式形成。着面向对象程序设计方法的正式形成。An Introduction to Database Systemv贝尔实验室的贝尔实验室的Bjarne Stroustrup 及其研究小组在当时最及其研究小组在当时最受欢迎的受欢迎的C语言基础上开发的语言基础上开发的C+语言,引入了对面向对象概语言,引入了对面向对象概念的支持。念的支持。vC+语言以其与语言以其与C语言兼容、高运行效率等优良特性,使语言兼容、高
25、运行效率等优良特性,使面向对象程序设计技术受到软件工业界的广泛关注,使之进入面向对象程序设计技术受到软件工业界的广泛关注,使之进入一个全面发展的时期。尽管一个全面发展的时期。尽管C+只能算作一种只能算作一种混合式面向对象混合式面向对象语言语言。但是正是由于大量。但是正是由于大量C程序员通过程序员通过C+的帮助才迅速掌握的帮助才迅速掌握了面向对象的概念和方法,全面促进了面向对象技术的应用,了面向对象的概念和方法,全面促进了面向对象技术的应用,从而使从而使C+成为最有影响的面向对象语言,甚至许多人把成为最有影响的面向对象语言,甚至许多人把C+当作面向对象的代名词。当作面向对象的代名词。历史历史An
26、 Introduction to Database System历史历史v面向对象技术的流行进一步促进了面向对象语言的繁荣。面向对象技术的流行进一步促进了面向对象语言的繁荣。90年年代涌现出了一大批实用的面向对象语言,如代涌现出了一大批实用的面向对象语言,如Object Pascal、Eiffel、Java等等。等等。vJava语言是由语言是由Sun Microsystem公司推出的一种纯面向公司推出的一种纯面向对象语言。对象语言。Java从从C+语言中继承了大量的语言成分,抛弃语言中继承了大量的语言成分,抛弃了了C+语言中冗余的和容易引起问题的功能,它将面向对象、语言中冗余的和容易引起问题的
27、功能,它将面向对象、平台无关性、稳定性、安全性等集于一身,提供了一个良好的平台无关性、稳定性、安全性等集于一身,提供了一个良好的程序设计环境,因而成为适合于分布式计算的程序设计语言。程序设计环境,因而成为适合于分布式计算的程序设计语言。vJava语言于语言于90年代中期的迅速流行与它定位于当时迅速年代中期的迅速流行与它定位于当时迅速发展的发展的Internet的的WWW应用开发有关。展示了面向对象技术应用开发有关。展示了面向对象技术与分布式计算结合的重大前景。与分布式计算结合的重大前景。An Introduction to Database System面向对象的基本思想面向对象的基本思想(1
28、)客观事物都是由)客观事物都是由对象对象组成的组成的n任何复杂的事物都可以通过对象的某种组合构成(2)对象由属性和方法组成)对象由属性和方法组成n属性反映了对象的信息特征,如:特点、值、状态等,方法则是用来定义改变属性状态的各种操作(3)对象之间的联系通过传递)对象之间的联系通过传递消息消息来实现来实现(4)对象可按其属性进行归)对象可按其属性进行归类类n类有一定的结构,类上可以有超类,类下可以有子类,这种对象或类之间的层次结构是靠继承关系维系着的(5)对象是被封装的实体)对象是被封装的实体n封装指严格的模块化。这种封装了的对象满足软件工程的一切要求,而且可以直接被面向对象的程序设计语言所接受
29、 An Introduction to Database System面向对象的基本思想面向对象的基本思想v从计算机软件设计的角度,引入从计算机软件设计的角度,引入类和对象类和对象的概念,将客观世的概念,将客观世界和主观世界中的实体和问题直接界和主观世界中的实体和问题直接映射映射到计算机世界的程序到计算机世界的程序空间。这就是面向对象方法的基本出发点。空间。这就是面向对象方法的基本出发点。v面向对象方法通过对客观世界和问题世界的面向对象方法通过对客观世界和问题世界的直接模拟直接模拟,建立,建立较为准确、自然的程序设计模型,从而获得信息处理的更高较为准确、自然的程序设计模型,从而获得信息处理的更
30、高性能。性能。计算机世界(程序空间)主观世界(问题空间)客观世界(真实空间)An Introduction to Database System面向对象的基本思想面向对象的基本思想v优点:优点:n与人类习惯的思维方法一致与人类习惯的思维方法一致。使用现实世界的概念。使用现实世界的概念抽象的思考问题从而自然的解决问题抽象的思考问题从而自然的解决问题n稳定性好稳定性好。系统的功能需求变化时不会引起软件结。系统的功能需求变化时不会引起软件结构的整体变化,往往仅需要做一些局部的修改构的整体变化,往往仅需要做一些局部的修改n可可重用性好重用性好。n较易开发大型软件产品。可以把一个大型软件产品较易开发大型
31、软件产品。可以把一个大型软件产品分解分解成一系列相互独立的小产品来处理成一系列相互独立的小产品来处理n可维护性好可维护性好。易于理解、修改、测试。易于理解、修改、测试An Introduction to Database System面向对象的思想面向对象的思想对象和类对象和类v对象对象(Object):n猪、狗、猪、狗、,所有动物;,所有动物;n松树、兰花、松树、兰花、.,所有植物;,所有植物;n灯、笔、汽车灯、笔、汽车.,所有物体;,所有物体;现实世界中所有有意义的一切事物!现实世界中所有有意义的一切事物!v对象是现实世界中某个具体的物理实体或概念在计算对象是现实世界中某个具体的物理实体或
32、概念在计算机逻辑中的映射和体现机逻辑中的映射和体现An Introduction to Database System面向对象的思想面向对象的思想对象和类对象和类v类类(Class):具有相同属性和操作的一组对象的集合。:具有相同属性和操作的一组对象的集合。n属性属性:客观事物所具有的:客观事物所具有的性质性质、特征特征的抽象的抽象n方法方法:功能。即对象中所包含的方法实际上就是过程或函数,:功能。即对象中所包含的方法实际上就是过程或函数,是实现对象功能算法的代码块。是实现对象功能算法的代码块。n比如人类,有年龄、性别、身高、体重,健康状态、所属工比如人类,有年龄、性别、身高、体重,健康状态、
33、所属工作单位等特征,即作单位等特征,即属性,是区分不同个体的依据属性,是区分不同个体的依据。n人类还有行为特征人类还有行为特征(方法方法),如吃饭、走路、学习、成长等。,如吃饭、走路、学习、成长等。行为特征是同一个类的所有个体共有的。行为特征是同一个类的所有个体共有的。An Introduction to Database System面向对象程序设计面向对象程序设计对象和类对象和类v类的定义类的定义 Class ATypeName/*Class body*/类具有属性和方法类具有属性和方法 属性:类具有哪些性质属性:类具有哪些性质 方法:类具有什么样的功能方法:类具有什么样的功能An Int
34、roduction to Database SystemJava:vClass Person private int age,hight;/属性 public void move()/方法 .;/方法内容 面向对象程序设计面向对象程序设计对象和类对象和类An Introduction to Database Systemv对象:类的具体实例 ATypeName a=new ATypeName();例如:Person zhangsan=new Person();/新建实例对象zhangsan.age=25;/为对象属性赋值zhangsan.hight=175;/为对象属性赋值zhangsan.m
35、ove();/调用对象的方法面向对象程序设计面向对象程序设计对象和类对象和类An Introduction to Database System面向对象程序设计面向对象程序设计对象和类对象和类v类和对象的区别n共性和个性的区别n类是对象的抽象 对象是类的实例n类是静态的 对象是动态的An Introduction to Database System面向对象程序设计面向对象程序设计类的特性类的特性v类的三大基本特性:封装性、继承性和多态性v封装(Encapsulation):n把内部实现细节隐藏起来,使其他外部对象无法访问,仅仅提供某些功能n使对象形成接口An Introduction to
36、Database System面向对象程序设计面向对象程序设计类的特性类的特性v封装的作用:n数据和过程的内部实现细节对外界隐藏,减少当变化发生时的副作用的传播n数据结构和操纵它们的操作被合并在类中,便于构建复用。n被封装对象间的接口被简化,系统耦合度降低。An Introduction to Database System面向对象程序设计面向对象程序设计类的特性类的特性v继承(Inheritance):n子类具有父类的所有特性n提供了软件复用v继承的类型:n单继承:子类只从一个父类继承n多继承:子类继承多个父类An Introduction to Database SystemvClass
37、Person private int age,hight;/属性 public void move()/方法 .;/方法内容 vClass Student extends Person public void shout().;An Introduction to Database System面向对象程序设计面向对象程序设计类的特性类的特性v多态性(Polymorphism):n不同对象可以调用相同名称的函数,并导致完全不同的行为的现象称为多态性。n也就是说,在类等级的不同层次中可以共用一个方法的名字,然而不同层次中每个类却各自按自己的需要来实现这个行为An Introduction to Database SystemvClass Person public void shout()System.out.println(Im a person.);vClass Student extends Person public void shout()System.out.println(Im a student.);An Introduction to Database System谢谢谢谢An Introduction to Database System
限制150内