当前位置:文档之家› 软件建模技术1

软件建模技术1


表示法
过程
工具 ● 工具 — 通过建模工具来 方便建立模型。
第 章 软件建模概论
1
1.2 软件模型
1.2.1 软件建模的必要性 1.2.2 软件模型的概念 1.2.3 软件模型的主要作用
1.2 软件模型 1.2.1 软件建模的必要性
● 软件的特性
智能性
无形性
软件是人智力劳动的产物,具有极高的智能特性。 软件没有物理实体的物理形态,而是智能、逻辑 和算法的描述。 软件具有高度抽象性。 软件开发是高度复杂性工作,软件的规模越来越 大,功能越来越复杂,服务领域越来越广泛。 软件的开发和生产必须借助于模型,来反映和 描述软件中间的开发过程和开发状态。
1.2.3 软件模型的内容
业务模型
也叫领域模型,描述软件所要服 务的业务领域的业务状况和业务 关系。
1.2.3 软件模型的内容
业务模型 需求模型
描述软件向用户所能够提供的 外在特性,包括软件的目标、 功能、性能等。
1.2.3 软件模型的内容
业务模型 需求模型
逻辑模型
为了实现需求模型所规定的软件 需求,软件内部的逻辑构成及逻 辑要素和逻辑关系。
抽象性
复杂性
综上
1.2.2 软件模型的概念
● 软件模型: 通过一定的形式和方法用来描述软件的 模型。
● 软件建模:建立软件模型的过程被称为软件建模。
1.2.3 软件模型的主要作用
●通过模型及其建模过程来理解分析系统 ●通过抽象来抓住本质降低复杂度 ●帮助回溯系统需求和设计细节 ●帮助涉众沟通与交流 ●为系统的维护与演化提供文档
软件建模精要
任课教师 :康洪炜
2013年11月
● 参考书籍
1. 重点大学计算机专业系列教材
● 参考书籍 2.《面向对象技术UML教程》 王少峰编著
《UML与软件建模》
徐宝文等 编著 清华大学出版社 2006.1
清华大学出版社
● 参考书籍 3.《UML用户指南》 Booch, Rumbaugh, Jacobson著 邵维忠等译 机械工业出版社
1.1.2.1 数学模型
●蝴蝶效应( The Butterfly Effect)是指在一个动力系 统中,初始条件下微小的变化能带动整个系统的长期的 巨大的连锁反应。 ●“一只南美洲亚马孙河流域热带雨林中的蝴蝶,偶尔 扇动几下翅膀,可以在两周以后引起美国德克萨斯州的 一场龙卷风。”
1.1.2.1 数学模型
1.3.2 建模原则
• 模块化
– 良好的模块设计方法的标准:
• 模块可分解性:可将系统按问题/子问题分解的原则分 解成系统的模块层次结构。 • 模块可组装性:可利用已有的设计构件组装成新系统 ,不必一切从头开始。 • 模块可理解性:一个模块可不参考其他模块而被理解 。 • 模块隔离性:对软件需求的一些微小变更,只会导致 对某个模块的修改而整个系统不用大动。 • 模块保护:将模块内出现异常情况的影响范围限制在 该模块之内。
1.2.3 软件模型的内容
业务模型 需求模型 逻辑模型
设计模型
软件的设计方案。 包括软件的结构,详细设计, 界面,数据库等设计方案。
1.2.3 软件模型的内容
业务模型 需求模型 逻辑模型 设计模型 实现模型
软件的实现方案。 包括软件的实现结构,构件, 文件等。
1.2.3 软件模型的内容
业务模型 需求模型 逻辑模型 设计模型 实现模型
● 参考书籍 4.《Rational Rose 2003教程》 刘敏莺等编著 冶金工业出版社
● 参考书籍
5.《软件设计与体系结构》
周华等编著 科学出版社
第 章
软件建模概论
1
1.1 模型
1.2 软件模型 1.3 软件建模方法 1.4 结构化方法 1.5 面向对象方法基础
第 章 软件建模概论
1
1.1 模型
测试模型
测试软件的方案描述。
第 章 软件建模概论
1
1.3 软件建模方法
1.3.1 软件过程与建模 1.3.2 建模原则 1.3.3 范型 1.3.4 常用建模方法
1.3.1 软件过程与建模 需求:“做什么?” — 发现用户需求并定义系统 边界。 设计:“怎么做?”—应用各种各样的技术和原理 ,给出构思、 原则及解决方案
1.0001 0.641951397 1.337647006 0.237467801 4.131642109 0.656236434 1.29854625 0.279182071 3.488344037 2.767389601
图形模型
1.1.2 模型的三要素
● 过程 — 建立模型的过程,只 有确切知道建模的过程才能够 成功建立一个模型。 ●表示法 — 模型的表示,也 就是建模语言,是建立模型的 关键,例如UML就是软件的 建模语言。
• DFD的层级:
– 依据所含过程的不同抽象程度, DFD可以在不同的抽象层次上进行 系统的描述 – 一个比较抽象的过程可以被展开为 一个子过程更加具体的DFD图
– DFD的层次结构
• 上下文图 • 0层图 • N层图(N>0)
1.4.2 数据流图
• 关于上下文图
– 将整个系统看做是一个过程,这个过程实现系统的所有功能 ,是系统功能的最高抽象 – 上下文图中存在且仅存在一个过程,表示整个系统。这个单一的过程通常编号为0 – 上下文图中需要表示出所有和系统交互的外部实体,并描述交互的数据流,包括系统 输入和系统输出 – 上下文图中不会出现数据存储实例 – 它非常适合于描述系统的应用环境、定义系统的边界
• 微规格说明 • 数据字典
– 在低于0层图的子图上通常不显示外部实体
第 章 软件建模概论
1
1.5 面向对象方法基础
1.5.1 面向对象方法涵义 1.5.2 面向对象的基本概念 1.5.3 面向对象的原则
1.5.1 面向对象方法的涵义
90 年代产生自编程技术,目前已超越了程序 设计和软件开发,扩展到很宽的范围。 ●一种对现实世界理解和抽象的方法; ●一种把现实世界映射到对象世界的方法; ●一种用对象世界描述现实世界的方法; ●一种验证对象世界行为是否正确反映了现实世 界的方法
对象 函数及 过程 数据 对象 对象 对象应用 对象
结构化应用
1.3.3 范型
●结构化范型 VS 面向对象范型
●模块与对象 ●过程调用与消息传递 ●类型与类 ●静态连接与动态连接
1.3.4 常用建模方法
结构化方法 结构化方法是基于模块化、自顶向下细化、结构化程序设计等程 序设计技术基础发展起来的。其基本思想是:将软件设计成由相 对独立且具有单一功能的模块组成的结构,形成一个紧密关联的 过程系统。 常用工具:业务流程图 、 DFD、数据字典、结构化英语、判定 表、判定树等 面向对象方法 是一种对现实世界理解和抽象的方法,将现实世界的事物抽象成 一些相互独立的对象( “一切皆为对象” ),对象是一些真实 的或抽象的元素,包含描述信息的属性以及处理信息的行为。这 些对象通过特定规则组织起来,完成一个特定的功能。而对于某 一业务的处理过程则是由这些通过特定规则组织起来的一些对象 “表现”出来的。
1.4.2 数据流图
1.4.2 数据流图
1.4.2 数据流图
• DFD绘制规则:
– 过程是对数据的处理,必须有输入,也必须有输出,而且 输入数据集和输出数据集应该存在差异。
1.4.2 数据流图 – 数据流是必须和过程产生关联的,它要么是过程 的数据输入,要么是过程的数据输出。
1.4.2 数据流图
1.3.2 建模原则
信息隐藏 – 每个模块的实现细节对于其他模块来说是隐蔽的。就是说 ,模块中所包含的信息(包括数据和过程)不允许其他不需 要这些信息的模块使用。 – 模块相互间的通信仅使用对于实现软件功能来说是必要的 信息。
1.3.2 建模原则
• 内聚性
– 内聚是模块功能强度的度量。一个模块内部各个 元素之间的联系越紧密,则它的内聚性就越高, 相对地,它与其他模块之间的耦合性就会减低, 而模块独立性就越强。因此,模块独立性比较强 的模块应该是高内聚低耦合的模块。
●结构化范型(Structured Paradigm)基于如下的思想进行 开发活动:一个系统应该被划分为两个部分:
●数据(使用数据/持久化模型建模) ●功能(使用过程模型建模)。
●面向对象范型(Object-oriented Paradigm)不是将系统 定义为两个分离的部分(数据和功能),而是需要把系统定义 为一组正在交互的对象。对象可以完成一些事情(对象具有功 能),对象也知道一些事情(对象有数据)。
1.3.2 建模原则
• 耦合性
– 耦合是模块之间的相对独立性(互相连接的紧密程度)的 度量。它取决于各个模块之间接口的复杂程度、调用模块 的方式以及哪些信息会通过接口。模块之间的连接越紧密 ,联系越多,耦合性就越高。而其模块独立性就越弱。
1.3.3 范型
●结构化范型 与 面向对象范型
范型(Paradigm):做事情的整体策略或观点,是一套特定的思想集合。
1.3.2 建模原则
• 抽象化
– 抽象是人类在解决复杂问题时经常采用的一种思维方式, 它是指将现实世界中具有共性的一类事物的相似的,本质 的方面集中概括起来,而暂时忽略它们之间的细节差异。 – 运用抽象的概念,可以将复杂问题的求解过程分层,在不 同的抽象层上实现难度的分解。在抽象级别较高的层次上 ,可以将琐碎的细节信息暂时隐藏起来,以利于解决系统 中全局性的问题。 – 每一阶段都是在前一阶段基础上对软件求解方案的抽象层 上的一次求精和细化。 – 抽象方法:过程抽象、数据抽象、控制抽象
第 章 软件建模概论
1
1.4 结构化方法
1.41 业务流程图 1.4.2 数据流图
1.4.1 业务流程图
– 是表示业务各部分和各环节之间关系的图示,它能够清晰 地表达比较复杂的业务各部分之间的关系。
相关主题