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

结构化分析方法

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

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

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

结构化需求分析建模方法

  • 面向数据:

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

  • 面向系统行为:

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

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

 

 

 

 

面向数据流的建模方法

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

2、预备知识:

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

(2)数据字典:

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

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

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

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

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

(3)

软工——结构化分析(数据流图、ER图、状态转换图)(围绕例题有详细过程哟~)_第1张图片 图1 软工——结构化分析(数据流图、ER图、状态转换图)(围绕例题有详细过程哟~)_第2张图片 图2 

 3、步骤:

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

    2’ 构建数据流图(DFD)

    3‘ 建立数据字典(DD)

构建DFD图的具体步骤:

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

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

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

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

(1)    数据流图要素分析

功能:图书预订系统

       数据源点:顾客

       数据终点:出版社

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

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

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

  • 顶层数据流图

          

  • 0层数据流图

软工——结构化分析(数据流图、ER图、状态转换图)(围绕例题有详细过程哟~)_第3张图片

  • 1层数据流图
  • 软工——结构化分析(数据流图、ER图、状态转换图)(围绕例题有详细过程哟~)_第4张图片

tip:

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

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

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

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

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

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

    

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

 

 

面向状态的建模方法

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

2、具体含义:

tip:

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

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

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

(2)构建状态图

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

简单分析以下:

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

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

软工——结构化分析(数据流图、ER图、状态转换图)(围绕例题有详细过程哟~)_第5张图片

声明:

补个简单的流程图

软工——结构化分析(数据流图、ER图、状态转换图)(围绕例题有详细过程哟~)_第6张图片

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

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

绘图软件:PowerDesigner 16

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

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

 

 

 

 

你可能感兴趣的:(软件工程)