电力自动化系统的设计方法华中科技大学电气与电子工程学院罗毅luoyee@mail.hust.edu.cn设计电力自动化系统的一般步骤•确定目标:监视什么、控制什么、调整什么?•确定该采用什么手段监视、该通过输出什么量控制或调整•确定从控制对象可以获得什么物理量?•控制原理•采用某种分析方法进行分析•按分析结果进行设计和测试系统•安装调试系统设计电力自动化系统时所采用的基本分析方法1、功能分解法2、数据流法3、信息建模法4、面向对象方法1、功能分解法•功能分解法(functiondecomposition)=功能+子功能+功能接口功能分解法以系统需要提供的功能为中心来组织系统。首先定义各种功能,然后把功能分解为子功能,同时定义功能之间的接口。对较大的子功能再进一步分解,直到可对它给出明确的定义。数据结构是根据功能/子功能的需要设计的。自顶向下逐步求精原则1、功能分解法•优点:从系统所需求的功能出发构造系统,能够直接反映用户的需求;工作很容易开始;很好地运用了过程抽象原则•缺点:功能、子功能和功能接口只是对问题域的间接映射,很难准确深入理解问题域,很难检验分析结果的正确性;对需求变化的适应能力差;接口很宽,对数据接口和控制接口几乎没有限制,局部错误和局部修改将影响全局。2、数据流法•数据流法(dataflowapproach)=数据流+数据处理+数据存贮+端点+处理说明+数据字典数据流方法又称为结构化分析。它以直观的图形清晰地描述系统中数据的流动和数据的变化,图中没有任何具体的物理元素,只是数据在系统中的流动和处理,强调的是数据流和处理过程。2、数据流法•数据流图(DFD)又称为泡泡图(BubbleChart)、变换图(TransformationGraph)、过程模型(ProcessModel)•数据流图不同于程序流程图:数据流图只关心系统该做什么、不关心怎么做数据流图不考虑时序问题数据流图没有控制流数据流图没有条件和循环过程数据流•数据流是带箭头的数据流向,表示数据元素的运动方向•数据流由一组固定成分的数据组成,是数据流图中十分重要的组成部分•数据流可以从处理流向处理、从处理流向数据存贮、从数据存贮流向处理、从源点流向处理、从处理流向终点•箭头代表数据流的方向数据流(dataflow)•两个处理之间可以有几股数据流•数据流一般应该命名SCADA统计日报表月报表统计报表处理(process)•处理表示要执行的功能,用圆圈表示•处理必须命名•处理通常以两种方式处理数据:a.转换数据结构,对数据重新组织b.转换数据中的信息或产生新信息实体(Entity)•实体也称外部项(externalentity),既可以作为数据流的源,又可以作为数据流的终点•实体用方框表示•实体有外部实体和内部实体之分,外部实体就是系统的输入输出数据存储(datastore)•数据存储表示数据的位置,包括磁带、磁盘、文件,用右边开口的长方形表示•数据存储包括:角色、客体、地理信息、事件•数据存储与处理之间可以是双向箭头,表示同时读写•数据流图从“数据”和“数据接受的处理”两个方面表达一个数据处理系统层次数据流图•为了达到简单性的要求,对DFD常采用层次或自顶向下分解的办法。即将系统DFD中的每个处理视为一个子系统,然后对子系统继续分解,直到每个处理容易理解为止。这就是结构化分析方法“自顶向下逐步求精”的基本原则由外向里绘制DFD•在绘制DFD时,首先应画出系统的输入数据流和输出数据流,也就是先决定系统的范围,然后再考虑系统的内部。同样,对每个处理,也是先画出它们的输入输出流,然后再考虑处理的内部。处理输入数据输出数据由外向里绘制DFD•画系统的输入输出数据流:刚开始分析时,可能并不清楚系统究竟包含哪些功能。一般使系统的范围稍大,把可能有关的内容尽可能包括进去。•画系统内部:需要将系统的输入数据流和输出数据流用一连串处理连接起来。可以从输入数据流画到输出数据流;也可以从输出数据流追溯到输入数据流。在数据流的组成或值发生变化的地方有一个处理由外向里绘制DFD•如果系统中有一组数据作为一个单位处理(同时到达、同时被处理等),则应视为一个数据流。反之,把一些相互无关的不能作为一个整体进行处理的若干数据画成不同的数据流•继续分析每个处理的内部,如果处理的内部还有数据流,可将这个处理用几个子处理代替,并在子处理之间画出这些数据流自顶向下绘制DFD•应该注意:编号、父图与子图的平衡、局部数据存储以及分解的程度•编号:子图的编号就是父图中处理的编号;子图中处理的编号由子图号、小数点和局部号组成•父图与子图的平衡:父图中某个处理的输入输出数据流应该与相应子图的输入输出数据流相同。称为“平衡”自顶向下绘制DFD•局部数据存储:当数据存储被用作DFD中某个处理之间的界面时,该数据存储就必须画出来,同时应画出每个处理是读还是写该数据存储•分解的程度:分解应该自然,概念上合理、清晰;只要不影响DFD的易理解性,可以适当地多分解,这样可以减少DFD的层数;一般上层分解得快些,下层分解得慢些;注意分解的均匀性2、数据流法•优点:运用了逐步求精的原则,一个处理可以细化而分解成为一个下层的数据流图;有严格的规则,避免了许多错误和疏漏;通过定义事件选择处理•缺点:也是对问题域的间接映射,当系统复杂时,很难检验分析的正确性;对需求变化的适应能力差;与结构化设计的表示法不一致;文档复杂庞大3、信息建模法*•信息建模法(informationmodeling)=实体(对象)+属性+关系+父类型/子类型+关联对象发现现实世界中的对象,用属性描述对象,列出认识到的属性,把属性放到实体(对象)中,增添关系,用父类型/子类型提炼属性的共性,用关联对象对关系作细化描述3、信息建模法*•缺点:只是在数据方面建立了问题域的直接映射•无论从概念到策略都逐渐向OOA靠拢4、面向对象的分析方法•面向对象分析OOA(object-orientedanalysis)=对象、类+结构与连接+继承+封装+消息通信•面向对象分析方法:是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的一种分析开发方法4、面向对象的分析方法•几个基本概念:对象:系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务构成其中:属性是用来描述对象静态特征的一个数据项;服务是用来描绘对象动态特征的一个操作序列4、面向对象的分析方法•类:具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分•封装:把对象的属性和服务结合成一个独立的系统单位,并尽可能屏蔽对象的内部细节•继承:特殊类的对象拥有一般类的全部属性和服务4、面向对象的分析方法•消息:向对象发出的服务请求,它应该包括如下信息:提供服务的对象标识、服务标识、输入信息、应答信息•多态性:一般类中定义的属性或服务被特殊类继承后,可以具有不同的数据类型或表现出不同的行为典型的OOA方法•Berard方法•Booch方法•Coad-Yourdon方法•Firesmith方法•Jacobson方法(OOSE)•Martin-Odell方法•Rumbaugh方法(OMT)•Seidewitz-stark方法•Shlaer-Mellor方法•Wirfs-Brock方法4、OOA的主要原则•抽象•封装•继承•分类•聚合•关联•消息通信•粒度控制•行为分析抽象(abstraction)•抽象:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质的特征•如:系统中的对象是对现实中事物的抽象类是对象的抽象一般类是特殊类的进一步抽象属性是事物静态特征的抽象服务是事物动态特征的抽象抽象(abstraction)•过程抽象:任何一个完成确定功能的操作序列都可以看成一个单一的实体,它可以由一系列更低级的操作完成•数据抽象:根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。数据抽象是OOA的核心原则,它强调了属性与服务结合成对象,对象外部只需知道它做什么,而不必知道它如何做。封装•封装就是把对象的属性和服务结合为一个不可分的系统单元,并尽可能屏蔽对象的内部细节•使对象能够集中而完整地描述一个具体的事物•封装的信息隐蔽性反映了事物的相对独立性•封装既体现了过程抽象,又体现了数据抽象继承•特殊类的对象拥有其一般类的全部属性与服务•避免了共性特征的重复描述•可以清晰地表达每一项共同特征所适应的概念范围分类(classification)•把相同属性和服务的对象划分为一类,用类作为对对象的抽象•便于形成一般-特殊结构•可以颈中地描述对象的共性聚合(aggregation)•又称组装(composition),把一个复杂事物看成若干比较简单的事物的组装体,从而简化对复杂事物的描述。•分别用整体对象和部分对象描述,形成整体-部分结构,表达它们之间的组成关系注:某些文献认为聚合用于比较松散和灵活的整体-部分关系;组装用于比较紧密、固定的整体-部分关系聚合对复杂性的控制•对象的描述过于复杂时,从中分离出一些独立部分•由于其它原因已经定义了某个类,如果恰好可以描绘整体对象的一个子集,则可以作为整体对象的一部分•独立出整体对象中的某些在数量上的可变部分•独立出整体对象中的某些在描述方式上的可变部分关联(association)•在系统模型中明确表示对象之间的静态联系•如:调度员与调度工作站消息通信•对象之间只能通过消息进行通信(communicationwithmessage)粒度控制(scalecontrolling)•引入主题(subject)的概念,把OOA模型中的类按一定的规则进行组合,形成一些主题;如果主题数目仍然较多,则进一步组合为更大的主题行为分析•确定行为的归属和作用范围•认识事物之间的依赖关系•区分主导行为和被动行为•认识系统的并发行为•认识对象状态对行为的影响4、OOA模型•OOA模型包括基本模型和补充模型•基本模型以直观的方式表达了最重要的系统信息•补充模型提供帮助理解基本模型的主题图和反映系统如何满足用户需求的交互图•系统的详细说明主要是由模型中的每个类对应的类描述模板组成的基本模型•基本模型是一个类图(classdiagram)•类图的主要成分:类、属性、服务、一般-特殊结构、整体-部分结构、实例连接、消息连接•类图有三个层次:对象层:给出系统中所有反映问题域与系统责任的对象。用类符号表达属于每一个类的对象。类作为对象的抽象描述,是构成系统的基本单位基本模型特征层:给出每一个类(及其所代表的对象)的内部特征(属性与服务)关系层:给出每一个类(及其所代表的对象)之间的关系。包括:继承关系(一般-特殊结构)、组装关系(整体-部分结构)、反映于属性的静态依赖关系(实例连接)、反映于服务的动态依赖关系(消息连接)补充模型•补充模型--主题图、usecase和交互图•主题:把一些具有较强联系的类组织在一起而得的类的聚合•当系统中类较多时,利用粒度控制原则,把它们组合成为主题,可以在不同粒度层次上表示和理解系统模型•主题图画出系统中的主题,并可以在CASE工具的帮助下控制主题的展开或收缩补充模型•usecase是对系统功能使用情况的一个文字描述序列。每个usecase针对一项系统功能,描述系统外部的活动者(人或物)如何与系统进行对话。即具体说明活动者透过系统边界向系统发什么信息,系统进行什么处理以及返回什么信息•usecase可以较好地表示用户对系统的功能需求补充模型•交互图(interactiondiagram):是一个usecase与完成相应功能的系统成分(对象的服务)之间的对照图,用于表明usecase陈述的每件事是由系统中对象的哪个服务响应和完成的,以及这个服务又进一步用到哪些别的服务•详细说明:按分析方法所要求的格式对分析模型所作的说明和解释,主要由类描述模板构成OOA模型基本模型(类图)对象层特征层关系层交互图主题图详细说明