是实 是实 2023-07-03 08:02 发表于广东 收录于合集#人的模型观20个 ► 背景: 这是一个完整的系列,业务产生需求,需求对应功能,功能互动产生行为,行为关联形成结构,需求模型,功能模型,行为模型,结构模型一起建构了系统模型。 这些特定属性的模型及建模的理论或方法,不仅适用于实体产品的分析,还应用于软件系统的分析。 例如,基于功能的功能结构建模方法侧重于实体产品的分析(小到电子笔,大到智能汽车)基于数据的结构化分析和基于对象的面向分析方法都侧重于软件系统分析(电商系统,人工智能系统等) "功能-原理-行为-结构" - 基于功能方法 1." 功能-原理-行为-结构" - FPBS方法 FPBS方法是基于产品的总体功能特征展开的,功能特征贯穿于设计过程的始终。功能作为客户需求的映射对应结果,是产品设计活动的驱动因素。(功能驱动) 从产品的总体功能开始,由功能映射其实现原理;由原理确定其运动行为;由原理,行为映射产品功能的载体与行为的实现-结构;(功能 → 原理 → 行为 →结构:方法过程) 分析并确定结构的子功能,持续进行该过程,不断分解到不能再分的子功能及其对应的结构或模块。(从上至下,从主至次,循环该过程;也揭示了该模型是动态模型,动态演化中功能/原理/结构之间的拓扑关系) 基于功能流的功能结构建模方法,包括几种类型: FPS:功能-原理-结构; FEBS:功能-环境-行为-结构; (强调环境:系统与环境之间进行物质,能量,信息的交换) FBMS:功能-行为-机制-结构; (强调机制:行为的互动遵循一定的机制,途径或进程) FPBS:功能-原理-行为-结构: (这里重点讨论FPBS方法) 2. "功能-原理-行为-结构" 方法的结构图 其一,功能模型(3种功能建模方法) 功能模型是对产品所完成的各项活动,活动之间相互关系的一种结构化描述。功能建模常用的方法有:功能流法,IDOEF0功能描述法,FAST图,且以上方法多是结合使用。 功能流法:采用方框表示产品的功能,方框的输入和输出表示功能与外界环境中物质,能量,信息的交换。 IDEF0方法:除方框表示功能,输入输出表示功能之间的接口外,还有机制和控制。在《需求建模和功能建模》中的功能建模就应用了IDEF0方法。 FAST图-功能树方法:把综合功能分解成若干子功能,不断逐步分解,直到获得最简单的功能结构。以逻辑顺序展示产品的功能,对主次关系排序,以验证功能之间的相互依赖关系。在《价值分析》中我曾应用过该方法。 其二,原理模型和行为模型(3种行为建模方法) 原理模型是对实现功能的运动传递和运动形式转换及其之间相互关系的一种结构化描述。系统通过各种装置进行物质,能量和信息的转换,而这些装置是由相应的原理结构实现。 行为模型是实现产品的原理结构之间存在物质,能量和信息的联系,而这种联系主要体现在结构中运动行为的传递关系,这些运动行为包括:作用力,位移,速度,加速度,跃度等。 在《行为建模和结构建模》中提到了两种行为建模的方法:STD状态转换图和UML状态机图和活动图,这里不做重复,而是引入功能结构建模中的因果行为过程图。 因果行为过程:系统的动作行为是由一系列行为组成的,这些子行为表现出并行或顺序,这些因果次序形成了系统整个行为的因果过程。 其三,结构模型(1种建模方法) 结构模型是对实现功能,原理,行为的结构之间融合,联结,装配关系的一种结构化描述。系统的物质,能量,信息以及运动行为的传递与转换最终体现在结构的相互关系上。 基于功能-原理-行为-结构的FPBS建模方法在《行为建模和结构建模》就是结构建模方法,在这里就是系统建模方法。(没有刻意区分两者) 3. "功能-原理-行为-结构" 方法的过程图 其一,明确功能需求,根据需求明确产品的总体功能。 其二,功能任务分解,根据一定的知识和经验将产品的总功能进行分解,得到不同层次的子功能,形成产品功能的层次结构。 其三,子功能具体化,根据具体设计要求,对子功能进行量化处理,并根据知识原理,生成实现该子功能的子行为。 其四,行为过程生成,依据工作原理,构件库及行为因果关系推理规则生成满足输出子行为的行为过程。 其五,建立行为网络,根据各子功能关系,将所有行为过程连接,形成产品的行为过程网络。 其六,行为仿真评价,基于行为网络,利用定性推理系统进行产品行为仿真,将仿真结果与设计需求比较,减少错误和返工。 产品的分析和设计,始于对总功能的研究,且这个功能源于业务,源于业务需求;对总功能研究的具体步骤是不断分解,从上到下,从主至次,直到最简单。 不同层级,不同属性的功能对应行为,行为的互动和关联形成网络。其中行为的生成依据工作实现原理,网络的形成依据工作过程原理。 参考目的: 《产品创新功能结构特征建模方法》 《基于功能-原理-行为-结构的产品模块化设计》 《产品功能结构建模研究》 《概念设计中的FBSE模型和作用流方法》 "结构化分析方法" - 基于数据流方法 1. 结构化分析方法 - SA方法 结构化分析方法是基于数据流进行需求分析的方法,采用自上而下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立的逻辑模型。 结构化分析方法是将待解决的问题看作一个系统,用系统科学的思想(抽象,分解,模块化)来分析和解决问题,并基于功能分解设计系统结构,通过不断的把复杂的处理逐层分解来简化问题。 结构化开发方法由SA-结构化分析方法,SD-结构化设计方法,SP-结构化程序设计方法构成。 2. 结构化分析方法的结构图 其一,实体关系ER图 - 数据建模 数据建模,也是概念建模,是为了把用户的数据要求清晰地表达出来建立成概念性的模型,是按照用户的观点对数据和信息进行建模。 数据模型常用ER图表示,表示实体类型,属性和联系的方法,(用矩形表示实体,椭圆表示实体的属性,菱形表示实体之间的联系) 其二,数据流图DFD图 - 功能建模 当数据经过系统时被系统的功能处理,处理后的数据再从系统中输出,DFD图从数据传递和加工,用图形方式表达系统的逻辑功能。 功能建模正是通过DFD图将系统所需要实现的功能表示出来的过程。 这张DFD图与《功能建模》中IDEF0的活动分解图很类似,都是从上到下的分解分层图形,很容易收到干扰。 在IDEF0活动图中,每层是活动;在DFD图中,椭圆表示功能,方形表示数据,两者的互动表示功能对数据的处理行为。 其三,状态转换图STD图 - 行为建模 STD图是描述系统或对象的状态,以及导致系统或对象发生改变的事件,从而描述系统的行为。在《行为建模和结构建模》中描述了状态转换STD图。 3. 结构化分析方法的过程图 其一,建立当前系统的具体模型,即把当前系统的物理模型用DFD图描述出来,与系统对应,便于理解。 其二,抽象出当前系统的逻辑模型,抽象出本质因素,排除次要因素,获得用DFD图描述当前系统的逻辑模型。 其三,建立目标系统的逻辑模型,分析目标系统与当前系统逻辑上的差异,确定目标系统应该做什么,建立目标系统的逻辑系统。 其四,对目标系统做完整描述,确定人机界面等问题。 注,DFD图中可以应用在不同模型的分析中,物理模型或逻辑模型。 参考目录: 《浅谈软件需求建模》-CSDN 《如何掌握结构化分析方法》-某乎 "面向对象分析方法" - 软件系统建模 1. 面向对象分析方法 - OOA方法 面向对象的分析,强调的是用对象的概念对问题中的事物进行完整的描述,包括事物的形式和行为,同时切实地反映问题中事物之间的关系,包括:分类关系,组装关系等静态关系以及动态关系。 20世界80年代后,面向对象分析发展出不同的流派,如:OOA-面向对象分析,OOD-面向对象设计,OOP-面向对象编程。 其中,OOA是分析问题方法;OOD是软件设计方法,是对OOA分析结果的进一步整理;OOP是计算机编程架构。(这里主要讨论OOA分析方法) 为什么面向对象分析方法会成为主流? FPBS方法是基于功能,SA方法是基于数据,OOA方法是基于对象,功能是人为思考和抽象的产物,数据是概念的映射,对象是客观存在的,三者中对象是最稳定,最不容易发生变化的;三者中对象是最原始,需求的来源。 2. 面向对象分析方法 - 结构图 其一,对象层 - 结构建模 系统中所有反映问题与系统责任的对象,可以用类符号表示一个对象的集合。类是对对象的抽象,是构成系统的基本单位。 在《行为建模和结构建模》中提及结构模型的第三种方法-UML软件体系结构建模的建构图和部署图,它们都是基于类符号。虽然对象层没有直接涉及结构建模,但关联了对象和类的关系。 其二,特征层 - 功能建模 给出每个对象/类的内部特征,即每个对象的属性和操作。这里对象或类的特征,就包括了对象或类的功能特征,可以用UML用例图来表示,对比IDEF0方法等。 其三,关系层 - 行为建模 给出每个对象/类彼此之间的关系,这些关系包括泛化,关联和依赖。该层描述对象与外部的联系。 行为建模,描述系统的动态行为,可以通过时序图/协作图描述对象的交互,单个对象的状态变化或动态行为可以通过状态图表达。 3. 面向对象分析方法 - 过程图 其一,确定系统中的对象,并进行抽象分类;划分主题和类,从大的单元来理解系统,主题是一组类与对象。 其二,确定每组对象的结构,分析原则是:第一是一般与特殊结构,确定类之间的继承关系;第二是整体和部分结构,确定对象的组成。 其三,建立每一对象以及相互关系,定义对象的内部特征(属性或方法等)建立消息连接,实例连接。 其四,分析对象的动态行为,建立各组对象之间的通信关系和接口协议。 其五,进一步协调和优化各组独享的性能及相互关系,精选对象和类,使系统成为不同对象组成最小集合。 对应外部物理世界,确定系统中的对象,并抽象和划分为主题和类;然后确定它们的关系; 以及根据对象的特征(功能)建立连接,形成动态行为;最后再次协调和优化结构,形成集合。 参考目录: 《面向对象分析与设计》书 《OOA方法的评价和一般步骤》 三种分析方法的关系 1. 三种分析方法的联系 其一,三种分析方法都属于系统分析模型 系统分析是研究问题,产生一个满足用户需求的系统分析模型。这个模型应该正确描述问题和系统责任,并且使后续有关人员根据这个模型继续工作。 自从软件工程学问世,出现过多种分析方法,其中最有影响的就是以上几种:系统功能建模的功能分解法,结构化分析的数据流法,信息建模法和面向对象方法。 知识的研究一直就是奇妙的,我先接触的是功能结构建模方法,也认识到这是一种有些"年纪"的老方法,在补充其他建模方法时,不断多次涉及到结构化分析方法和面向对象分析方法,于是不得不将三者关联在一起。 结果,在北大研究生-曹东刚的《不用的分析与设计方法》中偶然看到了上面的图,才意识到原来它们三者本来就是一个问题的不同维度的解法。 其二,三种分析方法都包括多种子模型 基于功能结构的FPBS方法包括了功能建模,行为建模和结构建模;基于数据流的结构化分析SA方法包括了功能建模,行为建模,此外还有数据建模;基于对象的分析OOA方法包括了功能建模,行为建模。 总之,不同类型的系统分析模型中都包括了基本模型,行为模型,功能模型,结构模型等。它们属于系统内高度抽象的模型,应用性和适用性,都值得深入研究后转化为基本知识和能力。 2. 三种分析方法的区别 其一,三种方法切入分析的角度不同 FPBS方法是从功能切入,SA方法是从数据切入,OOA是方法从对象切入。 其二,三种方法适用的领域不同,发展阶段不同 FPBS方法侧重在实体产品的分析,SA方法和OOA方法侧重在软件产品的分析,对比后两种方法,经过检验,OOA方法比SA方法更适用。 读书是与作者的对话 思考是与自己的对话
|
|