导航:首页 > 研究方法 > 将分析类映射到设计类的方法

将分析类映射到设计类的方法

发布时间:2022-05-11 03:26:00

1. 求教 UML中概念类/分析类/设计类 三者联系与区别。

概念类:描述现实世界的实体与概念,重点反映现实世界问题域。
分析类:是概念层次的东西,与具体实现技术无关(java还是.net),分为边界类、控制类、实体类, 分析用于获取系统中主要的“职责簇”,他们代表系统的原型类,是系统必须处理的主要抽象概念的“第一个关口”。分析类是跨越需求和设计实现的桥梁
分析类的三高
1.高于设计实现,在为需求考虑系统实现的时候,可以不必理会复杂的设计要求。如应用的设计模式,系统框架等。
2.高于语言实现,在需求考虑系统的时候,可以不必理会采用哪一种特性的语言来编码。
3.高于实现方式,在为需求考虑系统实现的时候,可以不考虑采用哪一种具体的实现方式。

设计类:
设计类是系统实施中一个或多个对象的抽象;设计类所对应的对象取决于实施语言。

2. 软件设计化结构包括哪些设计方法

1数据流的类型

在需求分析阶段,用SA方法产生了数据流图。结构化的设计能方便地将数据流图(DataFlowDiagram,DFD)转换成软件结构图。DFD中从系统的输入数据流到系统的输出数据流的一连串连续变换形成了一条信息流。根据数据流类型不同,可分为变换型和事务型2类,事务型和变换型数据流的设计步骤基本是大同小异,它们之间主要差别就是从数据流图到软件结构的映射方法不同。因此,在进行软件结构设计时,首先对数据流图进行分析,然后判断属于那一种类型,根据不同的数据流类型,通过一系列映射,把数据流程图转换为软件结构图。基本流程见图1.

1.1变换型数据流

信息在沿着输入通路进入系统,同时由外部形式变换成内部形式进入系统的信息,通过变换中心经加工处理,以后再沿着输出通路变换成外部形式离开系统。当数据流具有了信息流的这种特征时这种信息流就叫作变换型数据流。变换型数据流的DFD可明显地分为三大部分:逻辑输入、变换中心(主加工)、逻辑输出。变换型数据流结构见图2.逻辑输入:可以从数据流图上的物理输入开始,一步一步向系统中间移动,一直到数据流不再被看作是系统的输入为止,则其前一个数据流就是系统的逻辑输入。可以认为逻辑输入就是离物理输入端最远的,且仍被看作是系统输入的数据流。变换中心:多股数据流汇集的地方往往是系统的中心变换部分。
逻辑输出:从物理输出端开始,一步一步地向系统中间移动,就可以找到离物理输出端最远,且仍被看作是系统输出的数据流。
图片 [转到图文版]
图1数据流程图转换为软件结构图基本流程
图片 [转到图文版]
图2变换型数据流结构

1.2事务型数据流

信息在沿着输入通路进入系统,由外部形成内部形式后到达事务中心。通常事务中心位于几条处理路径的起点,从数据流程图上很容易标识出来,因为事务处理中心一般会有“发射中心”的特征。因为事务流有明显的事务中心,所以各式各样活动流都以事务中心为起点呈辐射状流出。事务型数据流结构见图3.
图片 [转到图文版]
图3事务型数据流结构

事务中心主要完成下述任务:接收输入数据(输入数据又称为事务);分析每个事务以确定它的类型;根据事务类型选取一条活动通路。通常,事务中心前面的部分叫作接收路径,发射中心后面各条发散路径叫作事务处理路径。对于每条处理路径来讲,还应该确定它们自己的流特征。
2映射过程

任何一个设计过程都不是统一、固定不变的,设计的要求越高,往往需要设计者在方法上不但具有超强的判断能力还要有规则性的创造精神。根据不同类型,分析其映射过程。
2.1变换型数据流到软件结构图映射

(1)设计软件结构的顶层和第1层。设计一个主模块,并用系统的名字为它命名,作为系统的顶层。第1层为每个逻辑输入设计一个输入模块,它的功能是为主模块提供数据;为每一个逻辑输出设计一个输出模块,它的功能是将主模块提供的数据输出;为中心变换设计一个变换模块,它的功能是将逻辑输入转换成逻辑输出。主模块控制和协调第1层的输入模块、变换模块和输出模块的工作。
(2)设计软件结构的下层结构。每个逻辑输入模块有2个下属模块:一个接收数据;另一个把数据变换成上级模块所需要的数据格式。而接收数据模块又是输入模块,又要重复上述工作。如此循环下去,直到输入模块已经涉及到物理输入端为止。同样,每个逻辑输出模块有2个下属模块:一个是将上级模块提供的数据变换成输出的形式;另一个是将它们输出。对于每一个逻辑输出,在数据流程图上向物理输出端方向移动,遇到物理输出为止。设计中心变换模块的下层模块没有通用的方法,一般应参照数据流程图的中心变换部分和功能分解的原则来考虑如何对中心变换模块进行分解。
变换型数据流转换后的初始软件结构图见图4.
图片 [转到图文版]
图4变换型数据流转换后的初始软件结构图

2.2事务型数据流到软件结构图映射

事务型数据处理问题的工作机理是接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。
(1)设计软件结构的顶层和第1层。软件结构图的顶层是系统的事务控制模块。第1层是由事务流输入分支和事务分类处理分支映射得到的程序结构。也就是说,第1层通常是由两部分组成:取得事务和处理事务。
(2)设计软件结构的下层结构。设计事务流输入分支的方法与变换分析中输入流的设计方法类似,从事务中心变换开始,沿输入路径向物理输入端移动。每个接收数据模块的功能是向调用它的上级模块提供数据,它需要有两个下属模块:一个接收数据;另一个把这些数据变换成它的上级模块所需要的数据格式。接收数据模块又是输入模块,也要重复上述工作。如此循环下去,直到输入模块已经涉及到物理输入端为止。
事务处理分支结构映射成一个分类控制模块,它控制下层的处理模块。对每个事务建立一个事务处理模块。如果发现在系统中有类似的事务,就可以把这些

3. 面向对象程序设计技术

可视化编程 可视化编程,亦即可视化程序设计:以“所见即所得”的编程思想为原则,力图实现编程工作的可视化,即随时可以看到结果,程序与结果的调整同步。 可视化编程是与传统的编程方式相比而言的,这里的“可视”,指的是无须编程,仅通过直观的操作方式即可完成界面的设计工作,是目前最好的Windows应用程序开发工具。 可视化编程语言的特点主要表现在两个方面:一是基于面向对象的思想,引入了控件的概念和事件驱动;二是程序开发过程一般遵循以下步骤,即先进行界面的绘制工作,再基于事件编写程序代码,以响应鼠标、键盘的各种动作。 可视化编程十问 1. 什么是可视化程序设计? 可视化(Visual)程序设计是一种全新的程序设计方法,它主要是让程序设计人员利用软件本身所提供的各种控件,像搭积木式地构造应用程序的各种界面。 2. 可视化程序设计有哪些优点? 可视化程序设计最大的优点是设计人员可以不用编写或只需编写很少的程序代码,就能完成应用程序的设计,这样就能极大地提高设计人员的工作效率。 3. 能够进行可视化程序设计的语言有哪些? 能进行可视化程序设计的语言很多,比较常用的有微软的Visual Basic、Visual C++、中文Visual Foxpro、Borland公司的Delphi等。 4. 可视化程序设计中有哪些基本概念? 主要的几个基本概念有表单、组件、属性、事件、方法等。 5. 什么是表单(Form)? 表单是指进行程序设计时的窗口,我们主要是通过在表单中放置各种部件(如命令按钮、复选框、单选框、滚动条等)来布置应用程序的运行界面。 6. 什么是组件? 所谓组件,就是组成程序运行界面的各种部件,如:命令按钮、复选框、单选框、滚动条等。 7. 什么是属性? 属性就是组件的性质。它说明组件在程序运行的过程中是如何显示的、组件的大小是多少、显示在何处、是否可见、是否有效…… 8. 属性可以分成哪几类? 属性可分成三类,设计属性:是在进行设计时就可发挥作用的属性;运行属性:这是在程序运行过程中才发挥作用的属性;只读属性:是一种只能查看而不能改变的属性。 9. 什么是事件? 事件就是对一个组件的操作。如用鼠标点击一个命令按钮,在这里,点击鼠标就称为一个事件(Click事件)。 10. 什么是方法? 方法就是某个事件发生后要执行的具体操作,类似以前的程序。例如当我们用鼠标单击“退出”命令按钮时,程序就会通过执行一条命令而结束运行,命令的执行过程就叫方法。 面向对象程序设计 1.历史回顾 1967年挪威计算中心的Kisten Nygaard和Ole Johan Dahl开发了Simula67语言,它提供了比子程序更高一级的抽象和封装,引入了数据抽象和类的概念,它被认为是第一个面向对象语言。20世纪70年代初,Palo Alto研究中心的Alan Kay所在的研究小组开发出Smalltalk语言,之后又开发出Smalltalk-80,Smalltalk-80被认为是最纯正的面向对象语言,它对后来出现的面向对象语言,如Object-C,C++,Self,Eiffl都产生了深远的影响。随着面向对象语言的出现,面向对象程序设计也就应运而生且得到迅速发展。之后,面向对象不断向其他阶段渗透,1980年Grady Booch提出了面向对象设计的概念,之后面向对象分析开始。1985年,第一个商用面向对象数据库问世。1990年以来,面向对象分析、测试、度量和管理等研究都得到长足发展。 实际上,“对象”和“对象的属性”这样的概念可以追溯到20世纪50年代初,它们首先出现于关于人工智能的早期着作中。但是出现了面向对象语言之后,面向对象思想才得到了迅速的发展。过去的几十年中,程序设计语言对抽象机制的支持程度不断提高:从机器语言到汇编语言,到高级语言,直到面向对象语言。汇编语言出现后,程序员就避免了直接使用0-1,而是利用符号来表示机器指令,从而更方便地编写程序;当程序规模继续增长的时候,出现了Fortran、C、Pascal等高级语言,这些高级语言使得编写复杂的程序变得容易,程序员们可以更好地对付日益增加的复杂性。但是,如果软件系统达到一定规模,即使应用结构化程序设计方法,局势仍将变得不可控制。作为一种降低复杂性的工具,面向对象语言产生了,面向对象程序设计也随之产生。 2.面向对象程序设计的基本概念 面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。 1)对象 对象是运行期的基本实体,它是一个封装了数据和操作这些数据的代码的逻辑实体。 2)类 类是具有相同类型的对象的抽象。一个对象所包含的所有数据和代码可以通过类来构造。 3)封装 封装是将数据和代码捆绑到一起,避免了外界的干扰和不确定性。对象的某些数据和代码可以是私有的,不能被外界访问,以此实现对数据和代码不同级别的访问权限。 4)继承 继承是让某个类型的对象获得另一个类型的对象的特征。通过继承可以实现代码的重用:从已存在的类派生出的一个新类将自动具有原来那个类的特性,同时,它还可以拥有自己的新特性。 5)多态 多态是指不同事物具有不同表现形式的能力。多态机制使具有不同内部结构的对象可以共享相同的外部接口,通过这种方式减少代码的复杂度。 6)动态绑定 绑定指的是将一个过程调用与相应代码链接起来的行为。动态绑定是指与给定的过程调用相关联的代码只有在运行期才可知的一种绑定,它是多态实现的具体形式。 7)消息传递 对象之间需要相互沟通,沟通的途径就是对象之间收发信息。消息内容包括接收消息的对象的标识,需要调用的函数的标识,以及必要的信息。消息传递的概念使得对现实世界的描述更容易。 3.面向对象语言 一个语言要称为面向对象语言必须支持几个主要面向对象的概念。根据支持程度的不同,通常所说的面向对象语言可以分成两类:基于对象的语言,面向对象的语言。 基于对象的语言仅支持类和对象,而面向对象的语言支持的概念包括:类与对象、继承、多态。举例来说,Ada就是一个典型的基于对象的语言,因为它不支持继承、多态,此外其他基于对象的语言还有Alphard、CLU、Euclid、Mola。面向对象的语言中一部分是新发明的语言,如Smalltalk、Java,这些语言本身往往吸取了其他语言的精华,而又尽量剔除他们的不足,因此面向对象的特征特别明显,充满了蓬勃的生机;另外一些则是对现有的语言进行改造,增加面向对象的特征演化而来的。如由Pascal发展而来的Object Pascal,由C发展而来的Objective-C,C++,由Ada发展而来的Ada 95等,这些语言保留着对原有语言的兼容,并不是纯粹的面向对象语言,但由于其前身往往是有一定影响的语言,因此这些语言依然宝刀不老,在程序设计语言中占有十分重要的地位。 4.面向对象程序设计的优点 面向对象出现以前,结构化程序设计是程序设计的主流,结构化程序设计又称为面向过程的程序设计。在面向过程程序设计中,问题被看作一系列需要完成的任务,函数(在此泛指例程、函数、过程)用于完成这些任务,解决问题的焦点集中于函数。其中函数是面向过程的,即它关注如何根据规定的条件完成指定的任务。 在多函数程序中,许多重要的数据被放置在全局数据区,这样它们可以被所有的函数访问。每个函数都可以具有它们自己的局部数据。下图显示了一个面向过程程序中函数和数据的关系。 图1 面向过程程序设计中函数和数据的关系示例 这种结构很容易造成全局数据在无意中被其他函数改动,因而程序的正确性不易保证。面向对象程序设计的出发点之一就是弥补面向过程程序设计中的一些缺点:对象是程序的基本元素,它将数据和操作紧密地连结在一起,并保护数据不会被外界的函数意外地改变。下图显示了一个面向对象程序中对象与函数和数据的关系。 图2 面向对象程序设计中函数和数据的关系示例 比较面向对象程序设计和面向过程程序设计,还可以得到面向对象程序设计的其他优点: 1)数据抽象的概念可以在保持外部接口不变的情况下改变内部实现,从而减少甚至避免对外界的干扰; 2)通过继承大幅减少冗余的代码,并可以方便地扩展现有代码,提高编码效率,也减低了出错概率,降低软件维护的难度; 3)结合面向对象分析、面向对象设计,允许将问题域中的对象直接映射到程序中,减少软件开发过程中中间环节的转换过程; 4)通过对对象的辨别、划分可以将软件系统分割为若干相对为独立的部分,在一定程度上更便于控制软件复杂度; 6)以对象为中心的设计可以帮助开发人员从静态(属性)和动态(方法)两个方面把握问题,从而更好地实现系统; 7)通过对象的聚合、联合可以在保证封装与抽象的原则下实现对象在内在结构以及外在功能上的扩充,从而实现对象由低到高的升级。 面对对象的程序设计方法 在数据输入模块内部设计中,采用面向对象的设计方法。[6]面向对象的基本概念如下: 对象:对象是要研究的任何事物。从一本书到一家图书馆,单的整数到整数列庞大的数据库、极其复杂的自动化工厂、航天飞机都可看作对象,它不仅能表示有形的实体,也能表示无形的(抽象的)规则、计划或事件。对象由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一独立整体。从程序设计者来看,对象是一个程序模块,从用户来看,对象为他们提供所希望的行为。在对内的操作通常称为方法。 类:类是对象的模板。即类是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述一组对象的共同属性和行为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其它类,形成类层次结构。 消息:消息是对象之间进行通信的一种规格说明。一般它由三部分组成:接收消息的对象、消息名及实际变元。 面向对象主要特征: 封装性:封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。 继承性:继承性是子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。一个类直接继承其它类的全部描述,同时可修改和扩充。继承具有传递性。继承分为单继承(一个子类只有一父类)和多重继承(一个类有多个父类)。类的对象是各自封闭的,如果没继承性机制,则类对象中数据、方法就会出现大量重复。继承不仅支持系统的可重用性,而且还促进系统的可扩充性。 多态性:对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。例如:Print消息被发送给一图或表时调用的打印方法与将同样的Print消息发送给一正文文件而调用的打印方法会完全不同。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。在OOPL中可通过在派生类中重定义基类函数(定义为重载函数或虚函数)来实现多态性。 综上可知,在面对对象方法中,对象和传递消息分别表现事物及事物间相互联系的概念。类和继承是是适应人们一般思维方式的描述范式。方法是允许作用于该类对象上的各种操作。这种对象、类、消息和方法的程序设计范式的基本点在于对象的封装性和类的继承性。通过封装能将对象的定义和对象的实现分开,通过继承能体现类与类之间的关系,以及由此带来的动态联编和实体的多态性,从而构成了面向对象的基本特征。 面向对象设计是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。。按照Bjarne STroustRUP的说法,面向对象的编程范式: l 决定你要的类; 2 给每个类提供完整的一组操作; 3 明确地使用继承来表现共同点。 由这个定义,我们可以看出:面向对象设计就是“根据需求决定所需的类、类的操作以及类之间关联的过程”。 面向对象设计方法的特点和面临的问题 面向对象设计方法以对象为基础,利用特定的软件工具直接完成从对象客体的描述到软件结构之间的转换。这是面向对象设计方法最主要的特点和成就。面向对象设计方法的应用解决了传统结构化开发方法中客观世界描述工具与软件结构的不一致性问题,缩短了开发周期,解决了从分析和设计到软件模块结构之间多次转换映射的繁杂过程,是一种很有发展前途的系统开发方法。 但是同原型方法一样, 面向对象设计方法需要一定的软件基础支持才可以应用,另外在大型的MIS开发中如果不经自顶向下的整体划分,而是一开始就自底向上的采用面向对象设计方法开发系统,同样也会造成系统结构不合理、各部分关系失调等问题。所以面向对象设计方法和结构化方法目前仍是两种在系统开发领域相互依存的、不可替代的方法。

4. 写出消息映射,类型识别,类的动态创建的思想

实体框架生成一个从ObjectContext派生的类,该类表示概念模型中的实体容器。(该派生类的名称即是概念模型文件中的EntityContainer的名称。)该类公开SaveChanges方法,该方法触发对基础数据库的更新。这些更新操作可以使用系统自动生成的SQL语句(默认),也可以使用开发人员所指定的存储过程。无论是否使用存储过程来更新数据库,用于创建、更新和删除实体的应用程序代码都是一样的。注意:如果没有将实体类型的插入、更新或删除这三种操作全部映射到存储过程,则在运行时执行的情况下未映射的操作将失败且会引发UpdateException。下面的过程假定您已在实体设计器中打开一个.edmx文件。将插入操作映射到存储过程将插入操作映射到存储过程在实体设计器图面上或在“模型浏览器”窗口中,右击要映射插入操作的实体类型,然后选择“存储过程映射”。此时将出现“映射详细信息”窗口的“将实体映射到函数”视图。单击“”。在下拉列表中选择插入操作要映射到的存储过程。窗口中填充的是实体属性与存储过程参数之间的默认映射。通过单击相应属性字段并从下拉列表中选择适当属性,修改每个存储过程参数对应的映射。注意:所有实体键都必须具有映射。如果存储过程使用INSERT语句,则实体键通常映射到插入新行时创建的主键。下面几个步骤介绍如何将存储过程返回的数据映射到实体属性。单击“”。该字段即变为可编辑状态。键入包含存储过程返回的数据的参数名称。单击对应于参数名称的属性字段。该字段将变成一个下拉属性列表。选择返回的数据要映射到的属性。注意:对于整数值输出参数,“受影响的行数参数”复选框处于启用状态。如果在调用插入操作时针对某参数选中该复选框且返回的值为零,将引发。对每个返回值和未映射属性重复步骤5到8。现在,所选实体类型的插入操作已映射到存储过程。将更新操作映射到存储过程将更新操作映射到存储过程在实体设计器图面上或在“模型浏览器”窗口中,右击要映射插入操作的实体类型,然后选择“存储过程映射”。此时将出现“映射详细信息”窗口的“将实体映射到函数”视图。单击“”。在下拉列表中选择更新操作要映射到的存储过程。窗口中填充的是实体属性与存储过程参数之间的默认映射。通过单击相应属性字段并从下拉列表中选择适当属性,修改每个存储过程参数对应的映射。对于每个属性,都可以选中在“使用原始值”[UseOriginalValue]列中的复选框。通过“使用原始值”[UseOriginalValue]选项,可以使用并发控制。如果选中某个属性的“使用原始值”[UseOriginalValue]选项,则从数据库读取的该属性的值将传递给指定的存储过程参数。请注意,属性的原始值和当前值都可以传递给不同的参数。注意:映射更新操作时,可以将存储过程返回的数据映射到实体属性。下面几个步骤介绍如何将存储过程返回的数据映射到实体属性。单击“”。该字段即变为可编辑状态。键入包含存储过程返回的数据的参数名称。单击对应于参数名称的属性字段。在下拉列表中选择返回的数据要映射到的属性。注意:对于整数值输出参数,“受影响的行数参数”复选框处于启用状态。如果在调用更新操作时针对某参数选中该复选框且返回的值为零,将引发。可以选择对每个返回值重复步骤6到9。现在,所选实体类型的更新操作已映射到存储过程。将删除操作映射到存储过程将删除操作映射到存储过程在实体设计器图面上或在“模型浏览器”窗口中,右击要映射插入操作的实体类型,然后选择“存储过程映射”。此时将出现“映射详细信息”窗口的“将实体映射到函数”视图。单击“”。在下拉列表中选择删除操作要映射到的存储过程。窗口中填充的是实体属性与存储过程参数之间的默认映射。通过单击相应属性字段并从下拉列表中选择适当属性,修改每个存储过程参数对应的映射。注意:必须将关联映射到存储过程参数。在属性下拉列表中,可以选择关联。注意:对于整数值输出参数,“受影响的行数参数”复选框处于启用状态。另请参见任务演练:将一个实体映射到存储过程(实体数据模型工具)

5. 系统分析与设计的方法

系统分析与设计的方法主要包括结构化生命周期法(又称瀑布法)、原型化方法(迭代法)、面向对象方法。
按时间过程来分,开发方法分为生命周期法和原型法,实际上还有许多处于中间状态的方法。原型法又按照对原型结果的处理方式分为试验原型法和演进原型法。试验原型法只把原型当成试验工具,试了以后就抛掉,根据试验的结论做出新的系统。演进原型法则把试好的结果保留,成为最终系统的一部分。
按照系统的分析要素,可以把开发方法分为三类:
①面向处理方法(Processing Oriented ,简称PO)。
②面向数据方法(Data Oriented ,简称DO)。
③面向对象的方法(Object Oriented ,简称OO)。

6. 怎么将面向对象的分析模型转化为设计模型

(1)与功能模型的关系:对象模型展示了功能模型中的动作者、数据存储和流的结构,动态模型展示了执行加工的顺序。 (2)与对象模型的关系:功能模型展示了类上的操作和每个操作的变量,因此它也表示了类之间的“供应者一客户"关系;动态模型展示了

7. 面向对象分析与设计的简介

OOAD(Object Orient Analysis & Design,面向对象的分析和设计,面向对象分析与设计)是现代软件企业广为采用的一项有效技术。OOAD方法要求在设计中要映射现实世界中指定问题域中的对象和实体,例如:顾客、汽车和销售人员等。这就需要设计要尽可能地接近现实世界,即以最自然的方式表述实体。所以面向对象技术的优点即为能够构建与现实世界相对应的问题模型,并保持他们的结构、关系和行为为模式。
大师说:没有不变的需求,世上的软件都改动过3次以上,唯一一个只改动过两次的软件的拥有者已经死了,死在去修改需求的路上。
目前众多的软件项目有什么样的问题呢?早些时候上ERP的企业在企业发展的时候发现原有的ERP系统需要改进,可是要改进或者是更改现有的ERP系统,唯一的方法就是重新开发一个ERP系统。这对于企业来说是笔不小的支出。此时,落后的信息系统就成为制约企业发展的重要因素。是什么原因造成了这种情况呢?主要的因素是传统的系统分析是在假定需求不变的情况下进行的,这样可以把企业的资源配置到最优的程度。可是在现代瞬息万变的社会,一个企业固守旧有模式,势必会在竞争中处于劣势(因此现在也出现了组件化的ERP,这是题外话)。既然企业的需求是变化的、不稳定的,那么以变化的需求为基础建立起来的企业信息系统当然也就不稳定了。这时候,有个问题就产生了,前面我们已经说过,需求是项目的根本,既然需求都是不稳定的,那么何以建立起稳定的企业信息系统呢?
要回答这个问题,首先要比较面向过程和面向对象的开发方法的差别,传统的面向过程的开发方法在前20年大行其道,为中国企业的信息化建设立下了汗马功劳。之所以称为面向过程,是因为开发的焦点集中于过程,开发者集中于以函数为核心的过程,例如前些年很多人试图编写一些通用转账函数来满足银行的需求。面向过程的开发语言包括:Cobol、Pascal、C及C的变形语言。面向对象的概念是在近10年才进入中国的,而它的思想至今也没有真正意义上得到普及。简单的说,面向对象就是面向世界,世界上的任何事物都是对象,因此面向对象是很自然的思想,是符合我们的思维习惯的。面向对象的语言包括了Smalltalk、C++、Java,还有Object Pascal,以及刚刚诞生的C#。
需求是不稳定的,那么需求之中是不是没有稳定的东西呢?有的,就是对象。世界都是由对象组成的,而对象都是持久的,例如动物、植物已经有相当长的时间。虽然对象也在变化,动物,植物也在不断的进化。但对象在一个相当长的时期内都存在,动植物的存在时间肯定比任何一家企业长久。面向对象的开发方法的精髓就是从企业的不稳定需求中分析出企业的稳定对象,以企业对象为基础来组织需求、构架系统。这样得出的系统就会比传统的系统要稳定得多,因为企业的模式一旦变化,只需要将稳定的企业对象重新组织就行了。这种开发的方法就被称为OOAD(Object Orient Analysis & Design 面向对象的分析和设计),而分析出的企业对象就被称为Common Business Object。

8. 面向对象设计中,用例分析和类设计可以对应起来吗。 比如说,我通过需求分析,获得了25个用例,那么我

按照OOP复用的思想来看应该是不能的。

用例其实更偏向于面向过程。
OOP(面向对象)的核心是分类,一个类就是一个,不应该有多个类别的东西交杂在一起。
它才提供了大大的复用性,可维护性以及扩展性。
使用OOP的的目的也就是这3个性能上。

试问如果你针对25个用例设计了25个类,那你可否复用?
比如我制作了一个具有拖动,收缩展开功能的“常见问题与解答”的界面效果,它的功能是
初始化为一个个问题,可以上下拖拉,点击其中一个则展开它的内容,列出详细的问题和回答,甚至可以跳转到其他页面。
那用类的思想就是:1.拖动类 2.伸缩类 3.UI控制

但凡我需要拖动,我在这个例子中直接把拖动类拿出来用就可以了。
可扩展性这方面细说太长,我希望你能理解。

但如果你以用例为核心设计,那我就认为难以将当中的一些东西加以复用,而且扩展功能将会十分麻烦。
比如我希望在上述的效果界面里,拖动的时候增加一个加载ing的提示功能,上下拉动的时候增加刷新效果,甚至可以左右拉动。

所以我不赞成用以用例为核心的这种思维。实际上用例思维更偏向于面向过程
面向过程就是,思路清晰,编写快速,制作起来行云流水一样高效。
但面对复用,维护,扩展,简直是一场噩梦——只要有这3个需求,就等于把整个代码重新写一次

9. 针对数据流的不同,可分别采用变换型和两种映射方法

面向数据流的设计是以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件结构,因此“又称结构化设计(StructuredDesign,简称SD)。该方法由美国IBM公司.Constantine和E.Yourdon等人于1974年提出,与结构化分析(SA)衔接,构成了完整的结构化分析与设计技术,是目前使用最广泛的软件设计方法之一。

10. 如何将matlab的算法设计结果映射到芯片设计

这个流程比较复杂,首先你需要将你的算法变成定点的算法,然后考虑将它变成C语言的程序,芯片设计实用verilog或者是VHDL语言根据你的C语言做相应的设计。然后你就可以比对HDL的输出跟matlab的结果了。

阅读全文

与将分析类映射到设计类的方法相关的资料

热点内容
咖啡机的使用方法图解 浏览:976
微生物遗传型的鉴定方法有哪些 浏览:428
怕丢人怎么办最有效的方法 浏览:908
怎么判断浮漂的准确方法 浏览:602
阶段性鼻炎治疗方法 浏览:133
具体研究方法及研究计划 浏览:260
什么方法可以最快消肿 浏览:776
心房颤动有什么非药物治疗方法 浏览:802
拆千纸鹤方法视频 浏览:209
样品预处理有哪些预处理方法优缺点 浏览:895
绑丝方法视频教程 浏览:755
怎样快速解决痛经的方法 浏览:789
七年级列方程的方法与技巧 浏览:898
穿越火线如何玩别人号的方法教学 浏览:738
早起锻炼身体有哪些方法 浏览:776
收纳包手工制作方法视频 浏览:688
面粉食用方法怎么填 浏览:674
怎么才是吃石榴的正确方法 浏览:118
插锁式管道安装方法 浏览:666
腰肌如何锻炼方法图片 浏览:491