面向对象方法有什么(面向对象方法那些你不知道的事)
面向对象方法有什么(面向对象方法那些你不知道的事)结构化分析又称数据流法,其基本策略是跟踪数据流,即研究问题域中数据如何流动,以及在各个环节上进行何种处理,从而发现数据流和加工。得到的分析模型是数据流图(DFD),主要模型元素是数据流、加工、文件及端点,外加处理说明和数据字典。结构化方法包含结构化分析(structured analysis,SA),结构化设计(structured design,SD)。对需求变化的适应能力很差。局部的错误和修改很容易产生全局性的影响没有明确地区分分析与设计
从程序设计方法的角度看,面向对象是一种新的程序设计范型(paradigm),其基本思想是使用对象、类、继承、封装、聚合、关联、消息、多态性等基本概念来进行程序设计。
软件科学的发展历程中出现过许多“面向”。面向对象将软件开发从过分专业化的方法、规则和技巧中回到了客观世界,回到了人们的日常思维,是软件理论的返朴归真。
缺点:
-
不能直接地映射问题域,很难检验结果的正确性。
-
对需求变化的适应能力很差。
-
局部的错误和修改很容易产生全局性的影响
-
没有明确地区分分析与设计
结构化方法包含结构化分析(structured analysis,SA),结构化设计(structured design,SD)。
结构化分析又称数据流法,其基本策略是跟踪数据流,即研究问题域中数据如何流动,以及在各个环节上进行何种处理,从而发现数据流和加工。得到的分析模型是数据流图(DFD),主要模型元素是数据流、加工、文件及端点,外加处理说明和数据字典。
结构化设计与功能分解法基本相同,基于模块的概念建立设计模型,分为概要设计和详细设计。
概要设计:确定系统中包含哪些模块以及模块之间的调用关系,得到模块结构图(MSD)。
详细设计:描述每个模块内部的数据结构和操作流程。
缺点:
-
仍然是间接映射问题域;
-
与结构化设计的概念不一致,从分析到设计的过渡比较困难;
-
数据流和加工的数量太多,引起分析文档的膨胀。
由实体-关系法(E-R方法)发展而来。核心概念是实体和关系。实体描述问题域中的事物,关系描述事物之间在数据方面的联系,都可以带有属性。
和面向对象方法差别:
1.强调的重点是信息建模和状态建模,而不是对象建模。
2.没有把对实体属性所进行的操作封装到实体对象中。
3.只有属性的继承,不支持操作的继承。
4.没有采用消息通讯。
面向对象方法运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统。把问题域中的事物抽象为对象,作为系统的基本构成单位其属性和操作刻画了事物的静态特征和动态特征,完整地刻画了问题域中事物。用类作为对象的抽象描述,建立它们之间的继承、聚合、关联、消息等关系,如实地表达了问题域中事物之间的各种关系。因此,得到的系统模型可以直接映射问题域。
它包含面向对象的分析(OOA),面向对象的设计(OOD)。
OOA面向对象的分析(OOA),就是运用面向对象方法进行系统分析。
OOA建模过程:
OOA模型框架:
需求模型(用况图):每个用况是一项系统功能使用情况的说明,把每一类参与者对每一项系统功能的使用情况确切地描述出来,便全面地定义了系统的功能需求
基本模型(类图):面向对象的建模中最重要、最基本的模型图集中而完整地体现了面向对象的概念为面向对象的编程提供了直接、可靠的依据。可以从三个层次来看,对象层,特征层,关系层
辅助模型:其他各种图,对类图起到辅助作用,提供更详细的建模信息,或者从不同的视角来描述系统。例如包图、顺序图、活动图等
模型规约:对上述各种模型图及其模型元素的详细而确切的定义和解释。
OODOOA主要针对问题域,识别有关的对象以及它们之间的关系,产生一个映射问题域,满足用户需求,独立于实现的OOA模型。OOD主要解决与实现有关的问题,基于OOA模型,针对具体的软、硬件条件(如机器、网络、OS、GUI、DBMS等)产生一个可实现的OOD模型。
从OOA到OOD不是转换,是调整和增补,增补其它四个部分,成为完整的OOD模型。
OOD过程:
OOD模型框架:
问题域部分设计包含如下几方面:
人机交互部分设计:有利于隔离界面支持系统的变化对问题域部分的影响,主要是完善流程,细化输入输出,制定异常等等。
数据管理部分设计:负责利用文件系统、关系数据库系统或面向对象数据库系统存储和检索永久对象。
构件及其部署设计:考虑完整的体系结构需求、网络结 构和功能分布情况。对于部署设计,还要详细地表示系统的各个部分如 何在整个组织内进行通讯的。