结构化分析方法

结构化分析是一种半形式化的建模技术,即抽取系统的本质要素,描述数据和行为的模型。注意:系统模型不是系统的代替表示,而是摈弃细节后的系统的抽象。

其要完成的主要目标:描述客户的需要;建立软件设计的基础;定义在软件完成后可以确认的一组需求。

分析模型结构的核心是数据字典(DD,Data Dictionary),包含了软件使用或生产的所有数据对象描述的中心库。

结构化需求分析建模方法

  • 面向数据:

面向数据的建模方法      实体关系图(E-R图)---信息域

  • 面向系统行为:

面向数据流的建模方法   数据流图(DFD)-功能域

面向状态的建模方法      状态转换图(STD)-行为域

面向数据流的建模方法

1、构件原则:自顶向下,逐步分层

2、预备知识:

(1)数据流图的基本要点时描绘”做什么“,而不关心“怎么做”。数据流图通常忽略出错处理,也不包括诸如打开和关闭文件等内部处理。

(2)数据字典:

四要素:数据流、数据流分量、数据存储和处理

还包括关于数据的其他信息:一般信息(名字、别名、描述等)、定义、使用特点、控制信息、分组信息。

数据元素可以通过顺序( + )、选择( | )、重复( { } )这三种方式组成数据

数据字典中名字具有唯一性。

在建模过程数据字典可更新

(3)

图1

图2 

3、步骤:

1‘ 数据流图要素分析(确定数据来源、终点、数据流、数据存储和处理等)

2’ 构建数据流图(DFD)

3‘ 建立数据字典(DD)

构建DFD图的具体步骤:

(1)构建顶层DFD(确定系统边界、数据的输入输出、系统功能)

(2)对顶层DFD图细化,构建0层DFD(细化顶层数据流图,加入数据存储)

(3)对0层DFD的每个加工进行细化,分别构建1层DFD,依次类推,逐层精化,直至构建出底层图。

4、例题:书店向顾客发放订单,顾客将所填订单交由系统处理,系统首先依据图书目录对订单进行检查并对合格订单进行处理,处理过程中根据顾客情况和订单数目将订单分为优先订单与正常订单两种,随时处理优先订单,定期处理正常订单。最后系统将所处理的订单汇总,并按出版社要求发给出版社。以下对例题开始建模:

(1)    数据流图要素分析

功能:图书预订系统

数据源点:顾客

数据终点:出版社

处理:订单检查、订单处理

数据存储:图书目录,优先订单,正常订单,汇总订单

(2)开始构建数据流图:

  • 顶层数据流图

  • 0层数据流图

  • 1层数据流图

tip:

1.数据流图中每个元素必须有名字,且命名合理:

加工名字应该反映整个加工的功能,而不是一部分功能。加工命名一般为动词+名词短语

数据流名字应该代表整个数据流的内容,而不是仅仅反映它的某些成分。数据流命名为名词。

(2)  每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。

(3)保持父图与子图的平衡

(4)箭头不总是一个含义:

    

(不是废话哦,亲!process又不是总和Data_store相连@_@)

面向状态的建模方法

1.定义:状态模型是一种描述系统对内部或者外部事件响应的行为模型。它描述系统状态和事件,以及事件引发系统在状态间的转换。这种模型适用于描述实时系统。

2、具体含义:

tip:

  • (条件满足时)事件发生,此时系统由状态1变到状态2,同时动作发生,注意同时发生!!!
  • 条件是一个布尔表达式:如果事件说明和守卫条件同时使用的话,则当且仅当事件发生且布尔表达式为真时,状态才发生转换。如果只有条件,则只要条件为真,状态就转换。动作表达式就是一个过程表达式,当状态发生转换时执行该表达式。

3.状态机建模方法步骤:

(1)系统状态、行为与事件分析

(2)构建状态图

【例】某汽车停车场欲建立一个信息系统,需求如下: 
a.在停车场的入口和出口分别安装一个自动栏杆、一台  停车卡打印机、一台读卡器和一个车辆通过传感器。
b.当汽车到达入口时,驾驶员按下停车卡打印机的按钮获取停车卡。当驾驶员拿走停车卡后,系统命令栏
杆自动抬起;汽车通过入口后,入口处的传感器通知系统发出命令,栏杆自动放下。
 c.在停车场内分布着若干个付款机器。驾驶员将在入口处获取的停车卡插入付款机器,并缴纳停车费。付
清停车费之后,将获得一张出场卡,用于离开停车场。d.当汽车到达出口时,驾驶员将出场卡插入出口处
的读卡器。如果这张卡是有效的,系统命令栏杆自动抬起;汽车通过出口后,出口传感器通知系统发出命令
,栏杆自动放下。若这张卡是无效的,系统不发出栏杆抬起命令而发出告警信号。
 e.系统自动记录停车场内空闲的停车位的数量。若停车场当前没有车位,系统将在入口处显示“车位已满”
信息。这时,停车卡打印机将不再出卡,只允许场内汽车出场。
请画出停车场入口护栏的状态图。

简单分析以下:

(1)信息系统(自动栏杆、停车卡打印机、读卡器)的状态:
自动栏杆抬起、放下
打卡机打印停车卡
已付款(、未付款)
停车卡有效
停车卡无效
警告
有空位、无空位

(2)控制信息:
车辆到达入口
获取停车卡
通过入口
(插卡、计时、)付清车费
离开停车场

声明:

补个简单的流程图

本文中图1(表2.3)、图2(表2.4)是从网上共享资源找的,除此之外皆为原创。

参考书籍《软件工程方法与实践》第3版

绘图软件:PowerDesigner 16

ER图数据库原理学过,懒懒不总结了

(本人学生,若有不足或错误,欢迎指正^_^)

软工——结构化分析(数据流图、ER图、状态转换图)(围绕例题有详细过程哟~)相关推荐

  1. 软件工程——实体关系图 + 状态转换图 + 数据流图

    实体关系图 + 状态转换图 + 数据流图 + 数据字典 前言 实体关系图 图像 我们常看到的实体关系图 分析 实体分析 关系分析 改进后的实体关系图 项目实体关系图(下面围绕这张图展开) 数据流图 图 ...

  2. 软件工程-数据流图+ER图绘制听课笔记

    视频链接:2-软件工程-数据流图+ER图绘制_哔哩哔哩_bilibili 目录 基础知识 例子 解答 基础知识 例子 解答 图1 顶层图 图2  0层图 图3 E-R图

  3. ER图转为关系模式(超详细,超简单)

    相关系列: ER图转为关系模式 无损分解和保持依赖 3NF分解与BCNF分解 正则覆盖与候选码 如何设计ER图(弱实体集) 如何设计ER图(映射基数) 目录 1.简单属性的强实体集 2.派生属性不出现 ...

  4. 【软工】软件生命周期

    我们通常都是对图形化的东西情有独钟,因为图形能将一个抽象的东西具体化.形象化,图形化的表述能将一个用文字语言无法表达清楚或很难表达的观点.事物.科学概念等清晰的呈现出来.这就是为什么我们相比晦涩难懂文 ...

  5. 【数据库】期末复习:SQL语句、关系代数的运算、范式的定义和判断、求最小函数依赖集、ER图转关系模式

    文章目录 SQL语句 查询select 其他 视图 关系代数的运算 并.差.笛卡尔积.投影和选择 连接 自然连接 笛卡尔积 详细版(如果完全不了解就看这里) 范式的定义和判断 如何求候选码 一些例题 ...

  6. 【软件工程】软件工程中应用的几种图辨析:系统流程图、数据流图、数据字典、实体联系图、状态转换图、层次方框图、Warnier图、IPO图、层次图、HIPO图、结构图、程序流程图、盒图、PAD图、判定表、

    软件工程中应用的几种图辨析:系统流程图.数据流图.数据字典.实体联系图.状态转换图.层次方框图.Warnier图.IPO图.层次图.HIPO图.结构图.程序流程图.盒图.PAD图.判定表.判定树.Ja ...

  7. 系统流程图、数据流图、状态转换图、盒图的区别(软件工程课程中学到的)

    在学习软件工程这门课的过程当中,学习到了很多种类的图,接下来对此进行总结. 一.系统流程图 1.概念 系统流程图是概括的描绘系统物理模型的传统工具.它的基本思想是用图形符号以黑盒子形式描绘系统里面的每 ...

  8. 软考大题做题技巧——数据流图、数据库E-R图、UML、算法、设计模式(干货!)

    小编在软考最后一周,破釜沉舟的学习软考的大题,找到了一些大题的做题技巧,特此分享给大家,希望所有参加软考的同学都能尽自己百分百的努力,收获最好的结果. 做题时可以重点找一下每类问题考察的考点以及提问问 ...

  9. 软工系列之--数据流图(DFD图)

    软件需求分析的基础:机构化分析方法. 结构化分析方法适用于数据处理类型软件的需求分析.它提供的主要建模工具包括 数据流图.数据字典.机构化英语.判定表.和判定树等. 在这里主要说明DFD图的使用和画法 ...

最新文章

  1. SQL优化--inner、left join替换in、not in、except
  2. 在神经反馈任务中同时进行EEG-fMRI,多模态数据集成的大脑成像数据集
  3. ecilpse连接oracle ojdbc驱动
  4. argv[1] 路径问题
  5. Nginx + CGI/FastCGI + C/Cpp
  6. IdentityServer4 接口说明
  7. InnoDB引擎与MyIASM的一点总结
  8. java在frame怎么计时_java – 退出jframe时的Swing stop计时器
  9. Thinkphp js、css压缩类minify
  10. vue项目打包:npm run build 进程卡死
  11. Python第十二章-多进程和多线程01-多进程
  12. 北航 计算机学院 2011级学生会,北航学生会主席在2011级新生开学典礼发言稿.doc...
  13. 简单的Vue计算属性
  14. vwap 公式_「」当天平均价 股票 公式-通达信当日均价计算公式-TOP金融网
  15. C++面向对象课程设计实例-图书馆借阅系统
  16. n1装linux系统升级,N1 降级刷机救砖总结
  17. mysql8初始化 2021-12-18版本 设置mysql大写
  18. 恶意注册商标的情形有哪些?恶意抢注商标的认定标准是什么?
  19. 练习4-7 求e的近似值
  20. Java实现Excel和word转pdf加水印,复制及可用

热门文章

  1. c语言二叉树的遍历菜单系统,二叉树遍历C语言的实现
  2. linux下条码枪扫中文,斑马扫描枪扫描中文条码
  3. 两篇人脸对齐文献概述
  4. mysql 分区 varchar_MySQL分区总结
  5. 原油期货有交割日吗? szepv com
  6. OpenCV中的waitkey()
  7. Python开发游戏?也太好用了吧
  8. leetcode 探索 数组和字符串 验证回文串
  9. Spring5学习(二):Spring 配置、依赖注入
  10. Nightingale滴滴夜莺监控系统入门(三)--页面功能说明