用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。
对象模型
· 动态模型着重于系统的控制逻辑。
· 它包括两个图,一是状态图,一是事件追踪图
从用户的角度展示系统的功能,包括用例图。
采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图。
动态模型
· 动态模型着重于系统的控制逻辑。展现系统的内部行为。 包括序列图,活动图,状态图。
功能模型
· 功能模型表明,通过计算,从输入数据能得到什么样的输出数据,不考虑参加计算的数据按什么时序执行。
· 功能模型由多个数据流图组成,它们指明从外部输入,通过操作和内部存储,知道外部输出,这整个的数据流情况。
· 功能模型中所有的数据流图往往形成一个层次结构。
· 在这个层次结构中,一个数据流图中的过程可以由下一层的数据流图做进一步的说明。
· 数据流图中允许加入控制流,但这样做将与动态模型重复,不提倡夹带控制流。
功能模型定义“做什么”
动态模型定义“何时做”
对象模型定义“对谁做”
例题
采用面向对象方法开发软件,通常需要建立对象模型、动态模型和功能模型,请分别介绍这3种模型,并详细说明它们之间的关联关系,针对上述模型,说明哪些模型可用于软件的需求分析?
概念: 对象模型描述了系统的静态结构,一般使用对象图来建模。 对象模型是整个体系中最基础,最核心的部分。 动态模型描述了系统的交互次序,一般使用状态图来建模。 功能模型描述 了系统的数据变换,一般使用数据流图来建模。 相互关系: 对象模型描述了动态模型和功能模型所操作的数据结构, 对象模型中的操作对应于动态模型中事件和功能模型中的函数; 动态模型描述了对象模型的控制结构,告诉我们哪些决策是依赖于对象值, 哪些引起对象的变化,并激活功能; 功能模型描述了由对象模型中操作和动态模型中动作所激活的功能, 而功能模型作用在对象模型说明的数据上,同时还表示了对对象值的约束。