结构化系统分析,结构化系统设计(正片)

结构化分析方法:是面向数据流进行需求分析的方法,是用抽象模型的概念,按软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。

  数据流图(DFD):

是软件系统逻辑模型的一种图形表示,是从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程的工具。

基本符号

 性质:

  数据流图中的箭头仅能表示在系统中流动的数据,而不是物质流

  数据流图与程序流程图不同,它不能表示程序的控制结构。(如:选择或循环)

  数据流图表现的范围具有很大的灵活性,可以画分层DFD

  分层DFD:由顶向下,逐层分解,逐步细化。

 优点:

  便于实现:逐层细化,有利于控制问题的复杂度。

  便于使用:使用户中的不同业务人员只选择与自身有关的图形,不必阅读全图。

 画分层DFD的指导原则:

  第一层DFD应当是基本系统模型

  注意父图和子图的平衡,维护信息的连续性

  区分局部文件和局部外部项

  掌握分解的速度,上快下慢

  遵守加工编号原则

结构化系统设计(SD):是面向数据流的系统设计方法,其要解决的任务是在需求分析的基础上,将DFD图“映射”为软件系统的结构。

软件设计的任务:

把需求阶段所产生的软件需求说明转换为用适当手段表示的软件设计文档。“做什么”——>“怎么做”。

软件设计划分两个阶段:

  概要设计:确定软件的结构,即软件组成,以及各组成成分(子系统或模块)之间的相互转换。

  详细设计:确定模块内部算法和数据结构,产生描述各模块程序的详细设计文档。

 软件设计的方法:面向数据流,面向数据结构。

                面向数据流:数据流是考虑一切问题的出发点

                     面向数据:以数据结构作为分析与设计的基础 

结构化设计的描述工具:SC图 

结构化系统设计的步骤:

    研究、分析、审查DFD图,必要时可再次进行修改和细化。

    根据DFD图来决定软件系统的结构特征。

     由DFD图来决定软件系统的结构图(SC图)。

     按照设计改进原则,优化和改进初始的SC图,获得最终SC图。

 软件结构

   变换型结构:信息由传入路径进入系统,经变换中心加工处理后,沿传出路径离开系统。在所有过程中信息经历了外部形式    内部形式    外部形式的输出。由传入路径,传出路径和变换中心三部分组成,流经这三个部分的数据,流分别称为传入流,传出流和变换流。

事务型结构:具有在多种事务中选择执行某类事务的能力,由至少一条接受路径,一个事务中心与若干条动作路径组成。

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

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

相关文章

Linux系统:本机(物理主机)访问不了虚拟机中的apache服务问题的解决方案

学习目标: 提示:本文主要讲述-本机(物理主机)访问不了虚拟机中的apache服务情况下的解决方案 Linux系统:Ubuntu 23.04; 文中提到的“本机”:代表,宿主机,物理主机; 首先&#xff0c…

吴恩达深度学习笔记(7)

误差分析: 你运行一个算法代替人类计算,但是没有达到人类的效果,需要手动检查算法中的错误,对模型的一些部分做相应调整,才能更好地提升分类的精度。如果不加分析去做,可能几个月的努力对于提升精度并没有…

旋转花键材质及运用场景

旋转花键的材质有很多种,其材质选择是一个涉及多方面因素的重要决策,‌主要取决于应用场景的具体要求,包括设备的运行环境、负载大小、运行速度以及所需的耐磨性和耐腐蚀性等因素。 1、碳钢:价格低廉、具有较好的韧性和耐磨性&…

【分享】项目开发中的计算问题

事件背景 最近也就上个月吧,拿到一个新的需求,新建一个页面,三个Grid联动,涉及很多的页面和sql以及Java计算。 简略的画个表格表示一下: 第一个Grid: 第二个Grid: 第三个Grid: 业…

openKylin系统SSH服务配置结合cpolar轻松实现开放麒麟远程连接

前言 本文主要介绍如何在openKlyin系统中设置ssh连接,并结合cpolar内网穿透工具实现远程也可以ssh连接本地局域网内部署的openKlyin系统. openKylin是中国首个基于Linux 的桌面操作系统开发者平台,通过开放操作系统源代码的方式,打造具有自…

C#从零开始学习(继承)(6)

本章所有的代码都放在 https://github.com/hikinazimi/head-first-Csharp 使用冒号继承一个基类,子类扩展一个基类时,他会继承它的成员:也就是基类中的所有字段,属性和方法,他们会自动增加到子类 子类覆盖方法改变它继承的成员 基类中的方法增加virtual关键字子类同名方法增加…

滑动窗口经典例题

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 读入n,xn,xn,x,给出nnn个数a[1],a[2],……,a[n]a[1],a[2],……,a[n]a[1],a[2],……,a[n],求最小的区间[l,r][l,r][l,r],使a[l]a[l1]……

Axure显示与隐藏——元件动作一

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:显示与隐藏 主要内容:显示/隐藏/切换三种效果,动画效果,更多效果 应用场景:元件自身状态变化、操作…

LinkedList作者:我虽然开发了LinkedList,但是我更爱用ArrayList

感谢Java面试教程关于LinkedList经验分享 PS冷知识:LinkedList的作者更爱使用ArrayList。 ArrayList 和 LinkedList 是 Java 中两种常见的 List 实现类,它们在底层数据结构、性能特征和使用场景上有显著的区别。 底层数据结构: ArrayList …

Flux.never 使用说明书

public static <T> Flux<T> never()Create a Flux that will never signal any data, error or completion signal. 创建一个永远不会发出任何数据、错误或完成信号的 Flux。 Type Parameters: T - the Subscriber type target Returns: a never completing Flu…

深度学习 自动求梯度

代码示例&#xff1a; import torch# 创建一个标量张量 x&#xff0c;并启用梯度计算 x torch.tensor(3.0, requires_gradTrue)# 计算 y x^2 y torch.pow(x, 2)# 判断 x 和 y 是否需要梯度计算 print(x.requires_grad) # 输出 x 的 requires_grad 属性 print(y.requires_g…

软件缺陷报告

软件缺陷报告样例 软件缺陷基本内容 标题&#xff1a;一句话概述缺陷预置条件&#xff1a;缺陷的前提条件重现步骤&#xff1a;缺陷出现步骤期望结果&#xff1a;没有出现缺陷应该的结果实际结果&#xff1a;缺陷结果 软件缺陷的状态 新建&#xff08;激活&#xff09;->…

Lua中的break语句

软考鸭微信小程序 过软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 在Lua编程语言中&#xff0c;break语句是一种控制流语句&#xff0c;用于在循环中提前终止循环的执行。无论是while循环、repeat-until循环还是for循环&…

idea2024启动Java项目报Error running CloudPlApplication. Command line is too long.

idea2024启动Java项目报Error running CloudPlApplication. Command line is too long. 解决方案&#xff1a; 1、打开Edit Configurations 2、点击Modify options设置&#xff0c;勾选Shorten command line 3、在Edit Configurations界面下方新增的Shorten command line选项中…

前海一个很偏僻的路边免费停车点

​这个偏僻的路边免费停车点具体位置在前海金融中心大厦附近的中国中铁门口&#xff0c;大概有可以停30~50个位置的样子。缺点是很多灰尘哈。第一次路过的时候&#xff0c;我还以为很多车在等红绿灯&#xff0c;靠近才发现&#xff0c;这些车只是停在路面上。其中要想知道看车子…

MySQL | Explain的是使用详解

介绍 Explain是SQL分析工具中非常重要的一个功能&#xff0c;可以模拟优化器执行查询语句&#xff0c;帮助我们理解查询是如何执行的&#xff1b;分析查询执行计划可以帮助我们发现sql查询瓶颈&#xff0c;优化查询性能。 使用方法 MySQL5.7 版本之前使用&#xff1a; Expl…

解决 Elasticsearch cluster_block_exception 错误的终极指南

Elasticsearch 是一个功能强大的分布式搜索引擎&#xff0c;广泛应用于全文检索、实时分析等场景。 尽管如此&#xff0c;像任何复杂系统一样&#xff0c;它也会遇到一些运行问题&#xff0c;其中较为常见且影响较大的就是 cluster_block_exception 错误。 本文将深入解析这种错…

Springboot项目

《《《《《《《《《《《------ 项目建立 ------》》》》》》》》》》》》 1.新建项目&#xff0c;选择Spring Initializer&#xff08;新版本选择Spring boot&#xff09; 我的项目是JDK1.8的&#xff0c;所以在项目SDK就选择了1.8版本的&#xff0c;选择启动服务URL地…

2024江苏省赛E. Divide

补题链接 题目大意: 每次操作会把区间内最大值除以2&#xff0c;q次询问&#xff0c;问[l,r]操作k次后的结果是什么 分析: 一道主席树的题目,可以先最整个区间一直进行除以2的操作&#xff0c;问区间[l,r]操作后结果&#xff0c;其实就可以转化为求区间第k1大的结果,反转一下…

常用DateUtils工具类

package com.gh.common.utils; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; /** 类描述&#xff1a; ClassName DateUtils Description TODO …