软件工程——结构化分析

目录

一、结构化分析方法

 二、功能建模

 三、数据建模

四、行为建模

五、数据字典

六、加工规格说明


一、结构化分析方法

传统的分析建模方法称为结构化分析(structured analysis,SA)方法。 最有代表性的是一种面向数据流进行需求分析的方法。

结构化分析方法是一种建模技术

该模型的核心是数据字典,包括在目标系统中使用和生成的所有数据对象。围绕这个核心有3种图:数据流图(DFD)描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能,用于功能建模;实体-关系图(ER图)描述数据对象及数据对象之间的关系,用于数据建模;状态-迁移图(STD)描述系统对外部事件如何响应、如何动作,用于行为建模。

 二、功能建模

 功能建模的思想就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。功能模型用数据流图来描述。

2.1 数据流图的基本图形符号

2.2 多个数据流之间的关系 

 2.3 环境图(0层数据流图)

环境图(context diagram)也称为顶层数据流图(或0层数据流图),它仅包括一个数据处理过程,也就是要开发的目标系统。 环境图的作用是确定系统在其环境中的位置,通过确定系统的输入和输出与外部实体的关系确定其边界。

2.4 画数据流图

画数据流图的基本步骤概括地说就是自外向内,自顶向下,逐层细化,完善求精。

在多层数据流图中,顶层流图仅包含一个加工

在分层的数据流图中,各层数据流图之间应保持“平衡”关系;规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据和输出数据必须一致。

 三、数据建模

在结构化分析方法中,使用实体—关系建模技术来建立数据模型。 这种技术是在较高的抽象层次(概念层)上对数据库结构进行建模的流行技术。 实体—关系模型表示为可视化的实体—关系图(entity-relationship diagram,ERD),也称为ER图。 ER图中仅包含3种相互关联的元素:数据对象(实体)、描述数据对象的属性及数据对象彼此间相互连接的关系。

3.1 数据对象

数据对象是目标系统所需要的复合信息的表示,所谓复合信息是具有若干不同属性的信息。在ER图中用矩形表示数据对象。

3.2 属性

属性定义数据对象的特征

在ER图中用椭圆或圆角矩形表示属性,并用无向边将属性与相关的数据对象连接在一起

3.3 关系

不同数据对象的实例之间是有关联关系的,在ER图上用无向边表示

在无向边的两端应标识出关联实例的数量,也称为关联的重数

从关联重数的角度可以将关联分为3种。

        (1) 一对一(1:1)关联

        (2) 一对多(1:m)关联

        (3) 多对多(m:n)关联

符号表示

 关系本身也可能有属性,这在多对多的关系中尤其常见.

关系属性的表示:在表示关系的无向边上再加一个菱形框,并在菱形框中标明关系的名字,关系的属性同样用椭圆形或圆角矩形表示,并用无向边将关系与其属性连接起来。

四、行为建模

在需求分析过程中,应建立起软件的行为模型;

状态转换图(简称状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。

状态图中使用的主要符号:

 4.1状态

状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式,状态规定了系统对事件的响应方式。

状态的表示:初态用实心圆表示,终态用牛眼图形表示,中间态用圆角矩形表示。

活动部分的语法如下:

事件名(参数表)/动作表达式
事件名可以是任何事件的名称,需要时可为事件指定参数表,动作表达式指定应做的动作。
entry事件指定进入该状态的动作
exit事件指定退出该状态的动作
do事件则指定在该状态下的动作

4.2  状态转换

状态图中两个状态之间带箭头的连线称为状态转换。 状态的变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达式。 如果在箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换

4.3事件

事件是在某个特定时刻发生的事情,它是对引起系统做动作或从一个状态转换到另一个状态的外部事件的抽象。

事件表达式的语法如下:

事件说明(守卫条件)/动作表达式

事件说明的语法如下: 事件名(参数表) (

守卫条件是一个布尔表达式。如果同时使用守卫条件和事件说明,则当且仅当事件发生且布尔表达式成立时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真,状态转换就发生。

动作表达式是一个过程表达式,当状态转换开始时执行该表达式。

五、数据字典

数据字典词条方式定义在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义,包括数据流、加工、数据文件、数据元素,以及数据源点、数据汇点等。

5.1词条描述

对于在数据流图中每一个被命名的图形元素均加以定义; 其内容包括图形元素的名字,图形元素的别名或编号,图形元素类别(如加工、数据流、数据文件、数据元素、数据源点或数据汇点等)、描述、定义、位置等。

(1)数据流词条

数据流是数据结构在系统内传播的路径。

(2)数据元素词条

数据流图中的每个数据结构都是由数据元素构成的,数据元素是数据处理中最小的、不可再分的单位,它直接反映事物的某一特征

(3)数据存储文件词条

数据存储文件是数据保存的地方

(4)加工词条

加工可以使用诸如判定表、判定树、结构化语言等形式表达

(5)数据源点及数据汇点词条

对于一个数据处理系统来说,数据源点和数据汇点应比较少

5.2 数据结构描述(顺序、选择、重复)

(1)定义式

        在数据流图中,数据流和数据文件都具有一定的数据结构,因此,必须以一种清晰、准确、无二义性的方式来描述数据结构。

数据结构定义式中的符号

(2) Warnier图。(读法:瓦捏图)

        Warnier图是表示数据结构的另一种图形工具,它用树形结构来描绘数据结构。

六、加工规格说明

在对数据流图的分解中,位于层次树最低层的加工也称为基本加工或原子加工,对于每一个基本加工都需要进一步说明,这称为加工规格说明。

满足要求:

(1) 对数据流图的每一个基本加工,必须有一个加工规格说明。

(2) 加工规格说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。

(3) 加工规格说明必须描述实现加工的策略而不是实现加工的细节。

(4) 加工规格说明中包含的信息应是充足的,完备的,有用的,没有重复的多余信息。

6.1 决策表(decision tree)

决策表由4个部分组成:

左上部分是条件茬,在此区域列出了各种可能的单个条件;

左下部分是动作茬,在此区域列出了可能采取的单个动作;

右上部分是条件项,在此区域列出了针对各种条件的每一组条件取值的组合;

右下部分是动作项,这些动作项与条件项紧密相关,它指出了在条件项的各组取值的组合情况下应采取的动作

 建立决策表的步骤

(1) 列出与一个具体过程(或模块)有关的所有处理。

(2) 列出过程执行期间的所有条件(或所有判断)。

(3) 将特定条件取值组合与特定的处理相匹配,消去不可能发生的条件取值组合。

(4) 将右部每一纵列规定为一个处理规则,即对于某一条件取值组合将有什么动作。

用决策表描述循环比较困难

6.2决策树(decision tree)

决策树(decision tree)也是用来表达加工逻辑的一种工具,有时侯它比决策表更直观。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/57016.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GPT-4“王炸”发布!1秒生成网站!

果然,能打败昨天的OpenAI的,只有今天的OpenAI。 刚刚,OpenAI震撼发布了大型多模态模型GPT-4,支持图像和文本的输入,并生成文本结果。 OpenAI老板Sam Altman直接开门见山地介绍说: 这是我们迄今为止功能最强…

StackLLaMA: 用 RLHF 训练 LLaMA 的手把手教程

来自:Hugging Face 进NLP群—>加入NLP交流群 如 ChatGPT,GPT-4,Claude 这样的语言模型之所以强大,是因为它们采用了 基于人类反馈的强化学习 (Reinforcement Learning from Human Feedback, RLHF) 来使之更符合我们的使用场景。…

ChatGPT 已能操控机器人,工程师连代码都不用写,网友:微软在搞天网?

Alex 发自 凹非寺 本文源自:量子位 | 公众号 QbitAI 当我还在跟ChatGPT吹牛尬聊时,有人已经在拿它操控机器人了。 不是别人,正是OpenAI的金主爸爸、不久前刚拿ChatGPT“重新发明搜索引擎”的微软。 到目前为止,开发者调教机器人…

自从使用了Cursor工作效率飞起

什么是Cursor 官网:https://www.cursor.so/ 看官网接受大家应该就知道是什么东西了,他是一个开源的AI编程编辑器。开源地址https://github.com/getcursor/cursor 目前在国内是可以不需要其他东西,可以之间访问的。而且目前免费使用。支持多…

大模型惨遭人类大范围攻击!国内各领域专家组团投毒,GPT-4 也 Hold 不住

这是「进击的Coder」的第 852 篇技术分享 作者:关注前沿科技 来源:量子位 “ 阅读本文大概需要 9 分钟。 ” 包括 GPT-4 在内等多个大模型惨遭人类攻击!还是大范围、多边形那种。 而且这个军团被爆个个来头不小。 包括社会学家李银河、心理学…

宵夜杂谈 | Uni3D是自动驾驶脱不去的长衫?

作者 | matrix明仔 编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/616531799 点击下方卡片,关注“自动驾驶之心”公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心【全栈算法】技术交流群 1说在前面的话 我一个朋友昨天喝了两大…

CUDA实战 | CUDA卷积算子手写详细实现流程!

作者 | Pegessi 编辑 | 极市平台 原文链接:https://zhuanlan.zhihu.com/p/613538649 点击下方卡片,关注“自动驾驶之心”公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心【模型部署】技术交流群 后台回复【CUDA】获取CUDA实战书籍&…

万字长文 | 详解CUDA卷积算子手写实现

作者 | Pegessi 编辑 | 极市平台 原文链接:https://zhuanlan.zhihu.com/p/613538649 点击下方卡片,关注“自动驾驶之心”公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心【模型部署】技术交流群 导读 本篇文章主要介绍如何利用CUDA实现…

第一次玩剧本杀,基本说明与模型抽取

本文分两部分,第一部分是基本说明,第二部分是模型抽取。 一、基本说明 根据不同剧本,参与人数7/-2人,跟Scrum的黄金人数一致。游戏时长3~5小时,跟两周迭代的计划会时长一致。 每个角色都有自己的剧本,剧本中…

巴比特 | 元宇宙每日必读:虚拟数字人是否享有著作权或邻接权?杭州互联网法院判决首例涉“虚拟数字人”侵权案...

摘要:据杭州互联网法院报道,近日,杭州互联网法院就首例涉“虚拟数字人”侵权案作出了一审判决。本案判决结合人工智能技术应用及虚拟数字人发展现状,从权利主体、客体、权利归属等多层面分析虚拟数字人在现有《著作权法》框架下不…

京东撸货前期准备流程急设备要求

1硬件设备:电脑一台货苹果手机一部,手机推荐苹果6S以上,系统版本14以下的好操作,如果现有的设备是14的也可以。 电脑的话推荐配置E5系列,可以多开模拟器窗口。64位系统你开启VT功能,其他的无所谓,如果配置不够差一点也能行, 2软件方面,推荐用佐罗,爱丽丝或者爱新机…

生活需要套路

文章来自公众号:胖琪的升级之路 一般说到套路,总感觉是一个贬义词,但今天所说的套路是为了给自己减负,或者是帮助提高的一种想法。 生活为什么需要套路 学习,生活,办事等等,很多时候在这些事情里…

微软官方的《Power BI权威指南》译版发售

你是否也和职场中的大多数人一样,曾经很多次挣扎在Excel 报表的“压榨”之下,一边赞叹Excel 软件的威力,一边期待着一些改变?文末参与互动,赢取来自微软官方的《Power BI权威指南》。激活你的数据禀赋,让你…

《口袋妖怪》大战:通过数据分析,一次性揭示最强王者,谁能成为最后的胜者?

最新游戏《Pokemon LEGENDS Arceus》发售啦!在这款游戏中,两种全新的口袋妖怪佐鲁亚和佐罗亚克受到了大家的关注。值得注意的是,这两种妖怪都是来自未曾出现过的普通幽灵类型。对于《口袋妖怪》的粉丝来说,这是一个非常令人期待的消息。 普通类型在游戏中一直以来是一个较…

前端-angular佐罗表格的使用和效果展示

前言   小编最近在做项目的时候用的佐罗的控件来进行数据显示,佐罗的 Ant Design 的 Angular 实现地址在这里:https://ng.ant.design/docs/introduce/zh 很多样式和模板可以供我们参考和应用。下面是小编进行的一个table表格的使用,仅供参考…

Angular6-Zorro(佐罗)组件使用-持续更新++

前言 ZORRO&#xff1a;https://ng.ant.design/components/layout/zh 博主当前库&#xff1a;7.0.0 beat3 loading组件 业务场景&#xff0c;预加载给予用户思想缓冲时间 通过ngIf判断是否显示loading组件 html代码如下 <nz-spin [nzSize]"small" class"…

L1-6 佐罗与魔法石板 (15 分)

佐罗&#xff08;Zorro&#xff09;是一个传奇人物&#xff0c;出现在很多电影&#xff08;小说、动画、电视剧&#xff09;中&#xff0c;他经常用利剑划下Z字标记&#xff0c;让我们印象深刻。&#xff08;出题者是不是暴露年龄了 -_-#&#xff09; 佐罗发现了一块古老的石板…

佐罗官网zorro软件安装教程及一键新机屏蔽越狱使用方法详细简介

cydia添加佐罗源&#xff1a;https://apt.zorroxj.com 佐罗zorro是一款全新技术架构的隐私保护工具&#xff0c;可以在 iOS 8.0 ~ iOS 14.8 越狱后的苹果iPhone手机上使用&#xff0c;专业防止您的隐私信息被第三方不当获取&#xff0c;拒绝隐私泄露&#xff0c;伪装手机环境参…

佐罗BI真经连续剧

学习必读代码 public void string main(String agrs[]){//获取课程vx 80407290 } 一、表格 表是保存信息的容器&#xff0c;分为行和列。每行包含关于单个实体的信息&#xff0c;而每行中的每个单元格包含数据库中表示的最小的信息片段。例如&#xff0c;客户表包含所有客户的…

佐罗一键新机软件安装教程及使用方法

Cydia添加源地址:a p t . z o r r o g w . c o m 佐罗zorro是一款全新技术架构的隐私保护工具&#xff0c;可以在 iOS 8.0 ~ iOS 14.8 越狱后的苹果iPhone手机上使用&#xff0c;专业防止您的隐私信息被第三方不当获取&#xff0c;拒绝隐私泄露&#xff0c;伪装手机环境参数和清…