软件设计与实现——图形建模与分析方法
图形建模与分析方法
模型:是描述事物、事物的属性和事物之间的关系(静态关系)以及各个事物之间信息传递的关系(动态关系)。
方法:
表达实体与实体之间的关系(Entity Relationship Diagram, Entity Relationship Model, Mind Map )
1.思维导图(mind map):了解概念和强化记忆;元素缺乏定义和语法

2.实体关系图(ERD):表达的现实世界中的实体和他们之间的关系。

我们在分析实体之间的关系时,这就是一个理解和抽象的过程,例如,我们可以通过自然语言的帮助把各种元素归类到他们在ERD里的类型中。请看下表:
| 英语语言中的不同词性 | ERD中的类型 |
| 普通名词(表示一类事物,如银行、客户、书籍) | 实体类型 |
| 专有名词(表示一个特定的人或事物) | 实体 |
| 及物动词(客户取出存款) | 关系的类型 |
| 不及物动词(利息可以升高或降低) | 属性的类型 |
| 形容词(这种货期存款是无利息的) | 实体的属性 |
| 副词(信用卡账户会临时性地提高限额) | 关系的属性 |
当我们要表示实体之间的静态关系时, ERD是一个合适的工具
3.用例 Use Case :
参与者(Actor) : 表示参与系统运作的外部因素, 例如用户, 管理员, 外部模块, 设备, 来自外部的信号等。通常是一个简笔画的小人。
系统: 通常用一个方框来表示系统的边界。 有时也可以忽略。
用例(Use Case) : 表示系统和参与者交互的一次场景。 它是一组动作的集成, 而不是一个单独的内部元素。
信息传递线: 用带箭头的线用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。
用例图的元素简单, 绘图简明, 它的主要目的是尽快让团队成员和利益相关者(特别是对技术不熟悉的) 理解系统的需求。
4.数据流图(Data Flow Diagram:DFD)
当我们要关注数据在不同的实体之间依赖一定的规则流动的时候, DFD是一个合适的工具 。
1) 和管理机构相关的数据流
管理机构可以发出指令, “改变读者借书数量的上限”, 这样的信息会导致图书馆的处理规则发生变化, 并且会导致相关信息出现在“公开显示设备”——例如网页, 或者电子公告板上。 管理机构可以查询一定时间内图书借阅情况的明细或统计信息, 这些信息或者返回到管理机构(例如——借书欠款最多的读者) , 或者出现在“公开显示设备”上(例如——本月热门人文类书籍前十名) 。
2) 和读者相关的数据流
读者可以查询、 预定、 借出书籍。
3) 和新书入库相关的数据流
新书入库的时候, 书的各种属性会被录入到系统内的“图书数据库”, 同时内部管理系统能触发流程, 让预定某书的读者知道, 他关心的书已经到货。
4) 和时间相关的数据流(图上没有表示)
时间也是信息, 当某个时间点到达的时候, 系统内部的逻辑会触发一系列动作,导致信息的处理和流动, 例如每天晚上6点开始统计第二天图书到期的读者, 并给这些读者推送催还消息。
每一个数据的操作还可以进一步细化, 形成一个新的、 更低层次的DFD。 这些数据流能引导设计者全面设计系统的信息处理流程。
DFD还能帮助系统得到安全设计, 设计者可以分析能影响本系统的信息都从哪里来, 外部数据和内部数据的边界在哪里? 如果我们盲目相信信息源发出的数据, 是否会造成严重后果?
敏感数据都流到哪里去了? 如果数据的目的地没有合适的保护, 是否会造成敏感数据的露[注释2]? 等等。 如果我们再分析其他的信息管理系统(学籍管理, 病历管理泄系统, BBS系统, 等等) , 就能看出这些基于信息“增删改查”系统的共性。
5.表达控制流
我们在计算机理论基础课上都学过有限状态自动机(Finite State Machine,
FSM) , 在程序设计语言基础课上都学过基本的流程图, 这里不再赘述。
6.统一的表达方式(Unified Modeling Language, UML)

浙公网安备 33010602011771号