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

软件工程 专栏收录该内容
4 篇文章 1 订阅

结构化分析方法

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

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

          分析模型结构的核心是数据字典(DDData 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图数据库原理学过,懒懒不总结了

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

 

 

 

 

某高校欲开发一个成绩管理系统,记录并管理所选修课程的学生的平时成绩和考试成绩,其主要功能描述如下:   1. 每门课程都3到6个单元构成,每个单元结束后会进行一次测试,其成绩作为这门课程的平时成绩。课程结束后进行期末考试,其成绩作为这门课程的考试成绩。   2. 学生的平时成绩和考试成绩均由每门课程的主讲教师上传给成绩管理系统。   3. 在记录学生成绩之前,系统需要验证这些成绩是否效。首先,根据学生信息文件来确认该学生是否选修这门课程,若没,那么这些成绩是无效的;如果他的确选修了这门课程,再根据课程信息文件和课程单元信息文件来验证平时成绩是否与这门课程所包含的单元相对应,如果是,那么这些成绩是效的,否则无效。   4. 对于效成绩,系统将其保存在课程成绩文件中。对于无效成绩,系统会单独将其保存在无效成绩文件中,并将详细情况提交给教务处。在教务处没给出具体处理意见之前,系统不会处理这些成绩。   5. 若一门课程的所效的平时成绩和考试成绩都已经被系统记录,系统会发送课程完成通知给教务处,告知该门课程的成绩已经齐全。教务处根据需要,请求系统生成相应的成绩列表,用来提交考试委员会审查。   6. 在生成成绩列表之前,系统会生成一份成绩报告给主讲教师,以便核对是否存在错误。主讲教师须将核对之后的成绩报告返还系统。   7. 根据主讲教师核对后的成绩报告,系统生成相应的成绩列表,递交考试委员会进行审查。考试委员会在审查之后,上交一份成绩审查结果给系统。对于所通过审查的成绩,系统将会生成最终的成绩单,并通知每个选课学生。 2. ......
©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值