系统建模

结构化系统建模


1.数据流图 DFD(Data Flow Diagram)

数据流图由数据流(data flow),加工(process),文件(data store),源 / 宿(Source / Sink)四部分组成。
  • 数据流是有一组固定成分的数据组成,表示数据的流向,用箭头表示。它可以从源、文件流向加工,也可以从加工流向文件和宿,还可以从一个加工流向另一个加工。
  • 加工描述了输入数据留到输出数据了之间的变换,也就是输入数据流做了什么处理后变成了输出数据流,用圆或椭圆表示。每个加工有一个名字和一个编号。
  • 源/宿中,源是指系统所需数据的发源地,宿是指系统所产生的数据的归宿地,用方框表示。源或宿均对应于外部实体。
  • 数据的存储用双杠表示。

实例:

Level-0 Diagram:


Level-1 Diagram:


数据流图约束:

加工(Process):
  • 加工必须有数据流入,否则你加工的数据从何而来,在流图中,只有输出的对象是源(Source)
  • 加工必须有数据流出,否则会产生数据黑洞(black hole). 在流图中,只有输入的对象是宿(Sink)
  • 加工是一个动作,里面含有动词
文件(Data Store):
  • 数据不能从一个文件直接流向另一个文件,必须通过加工处理
  • 数据不能从源(Source)直接流向文件,likewise,数据不能冲文件直接流向宿(Sink)
  • 文件是名词表达式。
源 / 宿 (Source/Sink):
  • 数据不能从源直接流向宿,必须通过加工处理。
  • 源/宿 是外部实体,是名词。
数据流 (Data Flow):
  • 数据流不能直接回到其刚离开的加工。
  • 数据流进入数据存储(Data Store)意味着Create/Update
  • 数据流离开数据存储意味着Retrive
  • 数据流是内部实体,也是名词。

判定表

对于复杂逻辑可以使用判定表(Decision Table)。

定表通常有以下四个部分组成:
  1)条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次序无关紧要。
  2)动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
  3)条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。
  4)动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。
实例:


实体联系图ER (Entity-Relationship)

对于DFD中名词,也就是实体,描述这些实体之间的关系用ER图,其实ER图和UML的概念类图(Conceptual / domain class diagram)有很多相似之处。


流程图(Flow Chart)

A flowchart is a type of diagram thatrepresents an algorithmor process, showing the steps as boxes of various kinds, and their order by connecting these with arrows.

ž  Oval(椭圆形) – Start and end Symbols

ž  Rectangles(矩形) – Generic processing steps

ž  Diamonds – Conditional or decision

ž  Parallelogram(平行四边形) – 输入输出 input/output

实例:



面向对象系统建模


需求建模( Modeling Requirements) - Use case View

可以为用户需求创建多种不同的视图。 每个视图都提供特定类型的信息。 当您创建这些视图时,最好经常在各个视图之间进行切换。 创建时,可以从任何视图开始。


关系图或文档

需求模型中描述的内容

用例图

谁使用系统以及使用系统执行什么操作。

描述系统的使用方式

概念类图

用于描述需求的类型的术语表;可在系统界面看到的类型。

定义用于描述需求的术语

活动图

由用户与系统或其部件执行的活动之间的工作流和信息。

显示用户和系统之间的工作流

序列图

用户与系统或其部件之间的交互的序列。 活动图的替代视图。

显示用户和系统之间的交互

附加文档或工作项

性能、安全性、可用性和可靠性条件。

描述服务质量要求

附加文档或工作项

非特定于具体用例的约束和规则

显示业务规则


当用于此目的时,UML 类图的内容称为“概念类图“,也称为域模型(Domain Model)

用例图

用例之间的关系:
  • 泛化Generalization

  • 包含Include :   包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤。指向分解出来的功能用例

  • 扩展extend:扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能。指向基础用例

包含(include)、扩展(extend)、泛化(Inheritance) 的区别:

        条件性:泛化中的子用例和include中的被包含的用例会无条件发生,而extend中的延伸用例的发生是有条件的;

        直接性:泛化中的子用例和extend中的延伸用例为参与者提供直接服务,而include中被包含的用例为参与者提供间接服务。

        extend而言,延伸用例并不包含基础用例的内容,基础用例也不包含延伸用例的内容。

        Inheritance而言,子用例包含基础用例的所有内容及其和其他用例或参与者之间的关系;


逻辑建模 (Modeling a System's Logical Structure)- Logical View

Class Diagram,Sequence Diagram, State machine Diagram

层关系图可直观显示系统的高级逻辑架构:http://technet.microsoft.com/zh-cn/dd409462(v=vs.89)

一个Web应用的4层关系图:


业务流程建模 (Modeling System Workflows)- Process View

活动图(Activity Diagram)

何时使用活动图
活动图中的主要元素
  • 活动(Activity):如果活动只包含一个动作,则此活动(Activity)是动作(Action)
    例如“付款”这个活动,可能包含“检验账号余款”,“选择付款方式”,“确认付款”等动作。
  • 泳道(swimlane):根据每个活动的职责对所有活动进行划分。
  • 对象流:类似于DFD中数据流,只不过在OO中Entity叫对象。
  • 分支与合并(Decision and Merge Nodes)

  • 分叉与汇合(Folk  and Join Nodes)
案例

Reference:
1. 如何在Visio中画活动图: http://technet.microsoft.com/zh-cn/dd409465(v=vs.89)

构建和部署 - Deployment View

Component, Package,  Deployment Diagrams


数据库建模


数据库基础知识

超键(Super Key):能唯一确定一组属性

候选键(Candidate Key):最小属性集的超键,减少一个属性,其就不是超键了,但增加一个属性,其任然是超键,但不是候选键。

主键(Primary Key):从候选键中选择一个即为主键。

子键(Subkey):Super key函数确定关系中所有属性,这是好的函数依赖(FD),但如果有这样的FD,其只能函数确定关系中部分属性,而不是全部属性,那么次局部Super key就是subkey。

如何消除子键(http://www.tomjewett.com/dbdesign/dbdesign.php?page=subkeys.php

无损连接分解(lossless join decomposition)

1.    把所有函数依赖子键的属性移到一个新表

2.    将子键复制到新表中,并将其标识为新表中得主键。

3.    在老表中保留子键作为新表的外键(Foreign key),此时老表和新表满足many-to-one的关系

数据库规范化(Normalization)

当数据库中得所有表都没有子键,那么此数据库将满足3NF的要求。

部分函数依赖:此时的subkey 是 primary key的一部分。

传递函数依赖:此时的subkey 不是 primary key的一部分。

数据库设计步骤

  1. 需求分析:形成DFD 
  2. 概念结构分析:E-R图
  3. 逻辑结构设计:将E-R图转换为指定的数据模型,数据库规范化,确定完整性约束,确定用户试图。
  4. 物理结构设计:结合DBMS,优化存储结构和数据存储路径
  5. 应用程序设计


第1章课程定位与教学案例综述. 1.1职业岗位能力需求分析 1.2课程设置和课程定位分析 1.3WebShop电子商城介绍 1.3.1电子商城需求分析 1.3.2电子商城系统设计 1.3.3电子商城数据库设计 1.4LibraryMIS图书管理系统介绍 1.4.1图书管理系统需求分析 1.4.2图书管理系统系统设计 1.4.3图书管理系统数据库设计 习题 第2章面向对象技术和建模基础 2.1面向对象方法 2.1.1面向对象方法的基本思想 2.1.2面向对象方法的发展 2.2面向对象的基本概念与特征 2.2.1面向对象的基本概念 2.2.2面向对象的主要特征 2.3面向对象分析 .2.3.1处理复杂问题的原则 2.3.200A方法的基本步骤 2.4面向对象设计 2.5面向对象实现 2.6面向对象方法的内涵 2.7软件建模概述 2.7.1软件建模的概念 2.7.2软件建模的用途 2.7.3软件建模的优点 习题 第3章UML简介 3.1UML的发展 3.1.1UML的发展历程 3.1.2理解UML建模 3.2UML的特点 3.3UML的结构 3.3.1UML的事物 3.3.2UML的关系 3.4UML的视图 3.4.1用例视图 3.4.2逻辑视图 3.4.3并发视图 3.4.4组件视图 3.4.5部署视图 3.5UML图形符号 3.5.1用例图 3.5.2类图 3.5.3对象图 3.5.4状态图 3.5.5活动图 3.5.6顺序图 3.5.7协作图 3.5.8组件图 3.5.9部署图 3.5.10UML 2.0新特性 3.6UML建模基本流程 习题 第4章UML建模工具简介 4.1常用UML建模工具 4.1.1 Rational Rose 4.1.2Enterprise Architect 4.1.3Together 4.1.4PowerDesigner 4.1.5 Visi0 4.1.6Tnffun Plat0 4.2Rational Rose安装与配置 4.2.1Rational Rose的运行环境 4.2.2Rational Rose的安装 4.2.3Rational Rose的配置 4.3使用Rational Rose建模 4.3.1Rational Rose主菜单 4.3.2Rational Rose的视图 4.3.3 Rational Rose建模的基本过程 习题 第5章需求建模 5.1用例模型概述 5.2用例图组成 5.2.1参与者 5.2.2系统 5.2.3用例 5.3识别和描述用例.. 5.3.1识别用例 5.3.2绘制WebShop电子商城用例图 5.3.3通过包对用例进行合理规划 5.3.4WebShop电子商城用例图(不含关系) 5.3.5用例描述 5.4用例间的关系 5.4.1泛化关系 5.4.2使用关系 5.4.3包含关系 5.4.4扩展关系 5.4.5关系小结 5.4.6WebShop电子商城用例图(含关系) 习题 第6章静态建模 6.1静态建模概述 6.2类图概述 6.3类图的基本组成 6.3.1类的概述 6.3.2绘制带属性的实体类 6.3.3绘制带操作的实体类 6.3.4绘制边界类图 6.3.5绘制控制类图 6.3.6UML中的类与语言中的类 6.4类之间的关系 6.4.1关联关系 6.4.2聚合关系 6.4.3组合关系 6.4.4泛化关系 6.4.5实现关系 6.4.6依赖关系 6.5对象图 6.5.1对象图概述 6.5.2对象图组成 6.5.3类图和对象图的比较 习题 第7章数据库建模 7.1PowerDesigner简介 7.2PowerDesigner安装和启动 7.2.1PowerDesigner的安装 7.2.2PowerDesigner的启动 7.3PowerDesigner概念数据模型 7.3.1概念数据模型概述 7.3.2PowerDesigner概念数据模型概述 7.4 PowerDesigner物理数据模型 习题 第8章动态建模 8.1动态建模概述 8.2状态图 8.2.1状态图概述 8.2.2状态图组成 8.2.3绘制员工下班回家状态图 8.3活动图 8.3.1活动图概述 8.3.2活动图组成 8.3.3绘制WebShop电子商城活动图 8.4活动图拾遗 8.4.1活动图与流程图的比较 8.4.2活动图与状态图的比较 8.5顺序图 8.5.1顺序图概述 8.5.2顺序图组成 8.5.3绘制WebShop电子商城顺序图 8.6协作图 8.6.1协作图概述 8.6.2协作图组成 8.6.3绘制WebShop电子商城协作图 8.7 顺序图拾遗 8.7.1 顺序图与协作图的比较 8.7.2 顺序图与协作图的互换 习题 第9章物理建模 9.1物理建模概述 9.1.1硬件 9.1.2软件 9.2组件图 9.2.1组件图概述 9.2.2组件图组成 9.2.3绘制WebShop电子商城组件图 9.3部署图 9.3.1部署图概述 9.3.2部署图组成 9.3.3绘制WebShop电子商城部署图 习题 第10章双向工程 10.1双向工程简介 10.2正向工程(生成Java代码) 10.3逆向工程 习题 第11章统一软件过程RUP 11.1RUP简介 11.2RUPT作流程 11.2.1业务建模 11.2.2需求 11.2.3分析设计 11.2.4实施 11.2.5测试 11.2.6部署 11.2.7配置与变更管理 11.2.8项目管理 11.2.9环境 11.3RUP迭代过程 11.3.1初始 11.3.2细化 11.3.3构造 11.3.4移交 11.3.5迭代计划示例(构造阶段) 习题 附录A综合实训 附录B Rational Rose2003主菜单 参考文献...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值