版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章
信息系统开发方法1主要内容1、信息系统开发概述2、面向过程开发方法3、面向数据开发方法4、面向对象开发方法27.1信息系统开发概述信息系统开发——信息系统工程系统思想指导开发:整体思想:整体规划、整体设计、生命周期综合思想:子系统集成、优化思想:多方案设计比较、优化3环境科学社会科学工程技术计算机科学管理科学经济法律知识维(科学技术)逻辑维(方法步骤)时间维(时间进程)明确问题选择目标系统综合系统分析方案优化作出决策付诸实施ABCDEFG654321规划阶段方案阶段研制阶段生产阶段运行阶段更新阶段1、霍尔三维结构42、信息系统生命周期56新系统运行小量修改、维护、评价活动原系统(现行系统)运行系统开发的各个阶段小量修改、维护、评价活动新系统生命周期原系统生命周期系统开发准备可行性研究系统分析(逻辑设计)系统设计(物理设计)系统实施维护评价73、信息系统开发的条件领导重视管理规范工作程序化业务标准化报表统一化资料完善化、代码化84、开发方法的基本思想问题空间(业务系统)求解空间(信息系统)分析(问题定义)解决(问题表达)映射关系过程数据对象过程:结构化、原型法数据:信息系统工程对象:面向对象97.2面向过程开发方法10系统生命周期的管理策略有两种:
瀑布式
迭代式11瀑布式12迭代式131、结构化开发方法(SMStructuredMethod)过程驱动采取瀑布式开发管理策略14可行性分析信息系统规划信息系统分析信息系统开发实施信息系统安装调试信息系统试运行信息系统运行维护信息系统设计信息系统测试提出开发请求CASE工具√√√√√√√√信息系统开发阶段停止信息系统开发步骤停止停止停止15缺点:开发周期过长难以适应迅速变化的环境在开发过程中用户很难参与评价结构化开发方法的优、缺点优点:系统边界清晰,避免系统需求的无计划扩展系统文档完备、论证充分162.快速原型法(PMPrototypingMethod)17系统的种类(1)预先指定的系统系统的需求比较稳定而且能够预先指定例如,传统工业生产过程的计算机控制系统,卫星图象处理系统,空中交通管理系统,火箭发射跟踪系统,操作系统,编译程序、DBMS类的软件。18(2)用户驱动系统系统的需求是模糊的或随时间变化的,通常在安装运行之后,还会由用户驱动对需求进行动态修改。系统的种类19在70年代中期,人们提出了旨在改进生命周期方法缺点的一种开放式方法——原型法(Prototyping)原型法的提出原型法是根据用户提出的需求,由用户与开发者共同确定系统的基本要求和主要功能在较短时间内建立一个实验性的简单的信息系统原型,在用户使用的基础上,不断迭代,最后形成一个相对稳定、较为理想的MIS系统20迭代式管理迭代就是用户对原型系统进行评价后,提出意见,开发人员根据用户的意见进行修改的反复过程。迭代不是简单的反复,每一次迭代都意味着原型系统向着用户需求又前进了一步,迭代是系统开发进展的动力。迭代过程的结束,就是原型的完成。21原型法的开发过程(1)识别基本需求(2)构造初始原型(3)使用和验证原型(4)修正和改进原型(5)判断原型完成(6)生成文档并交付使用强有力的开发工具软件支持环境:CASE工具22CASE工具
ComputerAidedSoftwareEngineering
可以帮助人们进行快速的开发23原型法的开发步骤识别基本需求构造初始原型修正和改进生成文档并交付使用满意吗?放弃?YYNN放弃原型使用验证原型24与传统方法的结合识别基本需求开发工作模型修正和改进模型验证原型满意?YYNN可行性研究需求定义维护及评价等系统分析系统设计系统实施25原型法的使用场合与局限性原型化方法适用于用户需求不清,管理及业务处理不稳定,需求常常变化规模小,不太复杂,而且不要求集中处理的系统有比较成熟借鉴经验的系统开发原型法的最大优点是能提高用户满意度使用原型法开发系统周期短,成本低
26原型化方法不适于开发大的系统原型化方法开发的时候,测试和文档工作常常容易被忽略原型化方法的另一个缺点是运行的效率可能会比较低
原型法的使用场合与局限性277.3
面向数据开发方法
根据系统数据组织与存取要求来建立系统模型的方法。数据驱动的方法实体关系图业务域分析信息模型281、业务域分析第一步,找出用户。并定义这些用户之间的关系。第二步,找出每个用户要做的事,即业务用例第三步,利用业务场景图帮助分析业务流程第四步,绘制用例场景图。第五步,从第三步或第四步中绘制的活动图中找到每一步活动将使用到的或产生的结果292、信息模型数据的静态、动态、交互描述30以对象设计为基础,强调系统重用。具有较强的适应性例:林业权证审批系统结构化:XX证件审批——107个程序对象化:证件数据——107个对象审批操作流程管理——一个程序面向对象=继承+封装+抽象7.4
面向对象开发方法
(OOMObjectOrientedMethod)311、面向对象方法的产生与发展真正的面向对象程序设计(ObjectOrientedProgramming,简称OOP)是由AlanKeyz主持设计的Smalltalk语言面向对象(ObjectOriented,简称OO)的概念应起源于挪威的K.Nyguard等人开发的模拟离散事件的程序设计语言Simula6720世纪80年代面向对象的分析、面向对象的设计等方法和技术才开始兴起
321988年Shlaer和Mellof
首先在其《面向对象的系统分析》(Object-OrientedSystemAnalysis)一书中,集中使用ER模型(Entity-RelationshipModel)来捕捉用户需求信息1991年Coad和Yourdon在《面向对象的分析》一书中提出了OOA方法在1991年,Rumbaugh等人提出了一个用于系统分析和设计的“面向对象的建模技术(Object-OrientedModelingTechnology,简称为OMT)”1992年,Embley等人又提出了OSA(面向对象的系统分析)方法
33传统开发方法存在问题
1.软件重用性差
2.软件可维护性差
3.开发出的软件不能满足用户需342、面向对象的概念——对象(Object)对象是现实世界中的事物,面向对象系统运行过程中的基本实体对象的状态和行为:数据、操作对象是数据与操作的封装体
35面向对象的概念——类(Class)类是具有相同属性和功能的一组对象的集合。它为属于该类的全部对象提供统一的抽象描述类与对象的关系如同一个模具与用这个模具铸造出来的铸件之间的关系。类给出了属于该类的全部对象的抽象定义,而对象则是符合这种定义的一个实体。所以,也有人把类称做对象的模板或对象又称做类的一个实例36面向对象的概念——实例实例就是由某个特定的类所描述的一个具体的对象类是对具有相同属性和行为的一组相似的对象的抽象类在现实世界中并不能真正存在
3738
例如,用类定义一个名为Date的关于日期的抽象数据类型,它能设置年、月、日的具体值,并能判断该年是否为闰年,还能显示年、月、日的具体值39classDate{public://3个公有成员函数
voidsetDate(inty=2000,intm=1,intd=1);//设置具体的年、月、日,其默认值为2000年1月1日
int
isLeapYear(void);//判断该年是否为闰年
voidprintDate(void);//显示具体的年、月、日值private:
intyear,month,day;//3个私有数据成员,保存具体的年、月、日值};40日期类Date的实现部分,即各成员函数的定义部分为:voidDate::setDate(inty,intm,intd){year=y;month=m;day=d;}//判断该年是否为闰年int
Date::isLeapYear(void){return(year%4==0//能被4整除的年份是闰年
&&year%100!=0)//能被100整除不是闰年
||(year%400==0);}//能被400整除又是闰年//显示年、月、日的具体值voidDate::printDate(void)
cout<<year41
#include″tdate.h″voidmain(void){Datedate1,date2;//定义日期类Date的两个对象date1和date2date1.setDate(2000,5,4);//给对象date1设置年、月、日的具体值
date2.setDate(2000,4,9);//给对象date2设置年、月、日的具体值
//闰年leap=1,否则为0intleap=date1.isLeapYear();cout<<″LEAP=″<<leap<<endl;//显示对象年、月、日的具体值
date1.printDate(void);date2.printDate(void);}42面向对象的概念——消息对象与对象之间不是彼此独立的,它们之间存在着联系。在面向对象系统中,对象之间的联系是通过消息(Message)传递的消息是对象之间进行通讯的一种数据结构消息用来请求对象执行某一处理或提供某些信息,控制流和数据流统一包含在消息中
程序的执行是靠对象间传递消息来连接的
消息包括(方法名、参数、方法体)43面向对象的概念——消息消息传送与函数调用的区别函数调用可以带或不带参数,但是消息至少带一个参数,它表明接收消息的对象消息操作名类似于函数名,但它们之间的本质区别在于:函数名代表一段可执行的代码,但消息操作名具体功能的选取还取决于接收消息的对象本身函数调用是过程式的(如何做),消息传送是说明式的(做什么),具体如何做,由对象根据收到的消息自行确定44对象的特征——继承继承指对象继承它所在类的结构、操作和约束也指一个类继承超类或子类继承父类的结构、操作或约束。继承是自动共享类、子类和对象中的方法和数据的机制
45在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。
在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。
在软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重性。
采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。46classBase{floatx,y;//私有数据成员x和ypublic:Base(floatx1,floaty1)//基类的构造函数
{x=x1;y=y1;}voidprint(void)//输出x和y值
{cout<<″x=″<<x<<″\n″y=″<<y<<endl;}};基类:Base47classDerived:publicBase{floatz;//派生类Derived的新增数据成员
public:
Derived(floatx1,floaty1,floatz1):Base(x1,y1)//派生类构造函数头中应包含基类的初始化列表
{z=z1;}voidprint(void);};voidDerived::print(void){
Base::print();
cout<<″z=″<<z<<endl;}继承类:Derived48voidmain(void){Derivedd1(3.0,4.0,5.0);//定义派生类Derived的对象d1d1.print();//输出显示对象d1的数据成员x、y和z值}49面向对象的概念——多态多态性:相同的操作或函数,可作用于多种类型的对象上并获得不同的结果。所谓多态即一个操作或函数名字具有多种语义多态性允许每个对象以适合自身的方式去响应共同的消息。多态增强了软件的灵活性和重用性
50classComplex{doublereal,imag;public:
Complex(void){real=imag=0;}//无参数函数
Complex(doubler,doublei)
{real=r;imag=i;}//一般函数
voidoperator=(constComplex&c);
//重载赋值运算符的函数声明
Complexoperator+(constComplex&c);//重载加法运算符的函数声明
Complexoperator-(constComplex&c);
//重载减法运算符的函数声明
friendvoidprint(constComplex&c);//输出显示一个复数};51voidComplex::operator=(constComplex&c){staticinti=0;real=c.real;imag=c.imag;
cout<<″(″<<++i<<″)operator=()called!″;}52ComplexComplex::operator+(constComplex&c){returnComplex(real+c.real,imag+c.imag);}ComplexComplex::operator-(constComplex&c){returnComplex(real-c.real,imag-c.imag);}voidprint(constComplex&c){if(c.imag<0)//当复数的虚数部分为负数时直接输出
cout<<c.real<<c.imag<<′i′<<endl;//当复数的虚数部分为正数时,在前面加一个+号
else
cout<<c.real<<″+″<<c.imag<<′i′<<endl;}53voidmain(void){Complexa(2.0,3.0),b(4.0,-2.0),c;c=a+b;//多态加法运算
cout<<″a+b=″;//输出显示″a+b=″的提示信息字符串
print(c);//输出显示“a+b”运算结果值
c=a-b;
cout<<″a-b=″;//多态减法运算
//输出显示″a-b=″的提示信息字符串
print(c);//输出显示“a-b”运算结果值}54面向对象的概念——封装所谓“封装”是指把对象的属性和操作方法同时封装在定义对象中用操作集来描述可见的模块外部接口,从而保证了对象的界面独立于对象的内部表达对象的操作方法和结构是不可见的,接口是作用于对象上的操作集的说明,这是对象唯一的可见部分
5520世纪80年代,随着面向对象技术成为研究的热点,先后出现了几十种面向对象的软件开发方法。其中,Booch、OMT和OOSE等方法得到了广泛的认可。然而,采用不同方法进行建模不利于开发者之间的交流。而UML则统一了Booch、OMT和OOSE的表示方法,而且对其作了进一步的发展。1997年,UML被国际对象组织OMG采纳为面向对象的建模语言的国际标准,它溶入了软件工程领域的新思想、新方法和新技术。UML不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
3、面向对象的方法—UML56作为一种建模语言,它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发全过程。UML:图和元模型组成,图是语法,元模型是语义。UML:三个基本构造块:事物(Things)关系(Relationships)图(Diagrams)。577.4.3.1UML的基本构造块1.事物
事物是是实体抽象化的最终结果,是模型中的基本成员,UML中包含结构事物、行为事物、分组事物和注释事物。
58(1)结构事物(Structuralthings)
类(Class):;
接口(Interface):
协作(Collaboration):
用例(UseCase):
活动类(ActiveClass):
组件(Component):
结点(Node):59(2)行为事物(Behavioralthings)
行为事物指的是UML模型中的动态部分,代表语句里的"动词",表示模型里随着时空不断变化的部分,包含两类:
交互(interaction):交互是由一组对象之间在特定上下文中,为达到特定的目的而进行的一系列消息交换而组成的动作;
状态机(statemachine):状态机由一系列对象的状态组成。60(3)分组事物(Groupingthings)
可以把分组事物看成是一个"盒子",模型可以在其中被分解。目前只有一种分组事物,即包(package)。结构事物、动作事物甚至分组事物都有可能放在一个包中。包纯粹是概念上的,只存在于开发阶段,而组件在运行时存在。
61(4)注释事物(Annotationalthings)
注释事物是UML模型的解释部分。
622.关系
关系是将事物联系在一起的方式,UML中定义了四种关系:(1)依赖(Dependencies):两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义;
(2)关联(Association):一种描述一组对象之间连接的结构关系,如聚合关系(描述了整体和部分间的结构关系);
(3)泛化(Generalization):一种一般化-特殊化的关系;
(4)实现(Realization):类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。63
3.图
图是事物集合的分类,UML中包含多种图:
(1)类图(ClassDiagram):
(2)对象图(ObjectDiagram):
(3)包图(PackageDiagram):
(4)组件图(CompomentDiagram,也称构件图):
(5)部署图(DeploymentDiagram):
(6)用例图(UsecaseDiagram):
(7)顺序图(SequenceDiagram):
(8)协作图(CollaborationDiagram):
(9)状态图(StatechartDiagram):
(10)活动图(ActivityDiagram):。64类型包含静态图类图、对象图、包图行为图状态图、活动图用例图用例图交互图顺序图、协作图实现图组件图、部署图65从应用的角度上来讲,面向对象的系统设计一般需要完成如下工作:
(1)需求描述;
(2)建立系统的静态模型;
(3)系统的行为描述。
(1)和(2)中所建立的模型是静态的(采用用例图、类图、对象图、组件图和部署图等),是标准建模语言UML中的静态建模机制;而(3)中所建立的模型则表示执行时的序列、状态或交互关系(以状态图、活动图、顺序图和协作图描述),是标准建模语言UML中的动态建模机制。667.4.3.2用例与用例图用例是需求分析中最重要的概念,需求表征了一个系统的设计特性、特征和行为67
图书管理系统用例图参与者参与者6869
参与者泛化关系70
用例扩展关系71
用例泛化关系727.4.3.3类图在UML中,类图显示了一组类、接口、协作以及它们之间的关系。在UML的静态机制中类图是一个重点,它不但为设计人员所关心,更为实现人员所关注,建模工具也主要依据类图来产生代码(正向)工程。因此,类图在UML的各种图中占据了相当重要的地位。
7374关联关系7576继承关系77行为图(Behaviordiagram),描述系统的动态模型和组成对象间的交互关系。在动态建模机制中,以消息来完成对象之间的交互,用状态图、顺序图、协作图和活动图来描述系统的行为。
7.4.3.4动态行为图78消息
在面向对象领域,两个对象的交互是通过消息的发送和接收来完成的。消息分为简单消息、同步消息和异步消息:
(1)简单消息:只是表示控制如何从一个对象发给另一个对象,并不包含控制的细节;
(2)同步消息:同步意味着阻塞和等待,如果对象A给对象B发送一个消息,对象A会等待对象B执行完这个消息,接着才进行自身的工作;
(3)异步消息:异步意味着非阻塞,如果对象A给对象B发送一个消息,对象A不必等待对象B执行完这个消息,就可以接着进行自身的工作。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第10课 隶书笔画(三)教学设计-2025-2026学年初中书法练习指导七年级下册川教版
- 民族音乐瑰宝-客家山歌教学设计
- 本册综合教学设计中职英语基础模块第一册高教版
- 第8课 设置音乐和主题教学设计-2025-2026学年小学信息技术(信息科技)五年级下册人教版
- 滇人版七年级信息技术下第二单元第六课图片的合成教学设计
- 初中语文人教部编版七年级下册名著导读 《海底两万里》:快速阅读教案
- 第九章第一节《压强》教学设计 -2025-2026学年人教版八年级物理下册
- 数学八年级下册1 图形的平移教学设计
- 4a旅游创建工作制度
- 初中音乐夜莺教学设计
- 非理想流动课件
- JG/T 137-2007结构用高频焊接薄壁H型钢
- 2024年山东司法警官职业学院招聘笔试真题
- 新人教版初中7七年级数学下册全册完整教案
- 2025年土地使用权永久性转让协议书
- DBJ41T 201-2018 民用建筑信息模型应用标准
- 灰土挤密桩施工分包合同
- 2024年广东省东莞市常平镇机关事业单位招聘编外86人历年(高频重点提升专题训练)共500题附带答案详解
- 2024山东特检集团招聘24人公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 2022版义务教育(道德与法治)课程标准(附课标解读)
- 设计学研究方法书
评论
0/150
提交评论