【新版】系统架构设计师 - 知识点 - 结构化开发方法

2024-04-13 22:36

本文主要是介绍【新版】系统架构设计师 - 知识点 - 结构化开发方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

个人总结,仅供参考,欢迎加好友一起讨论

文章目录

  • 架构 - 知识点 - 结构化开发方法
  • 结构化开发方法
    • 结构化分析
    • 结构化设计
  • 数据流图和数据字典
  • 模块
  • 内聚类型与耦合类型

架构 - 知识点 - 结构化开发方法

结构化开发方法

  • 分析阶段

    工具:数据流图、数据字典、ER图、状态转换图

  • 设计阶段

    工具:系统结构图

    模块设计原则:抽象化、自顶向下、逐步细化、信息隐蔽、模块独立(高内聚低

    耦合)

    划分模块原则:模块大小要适中、扇入扇出要合理、深度宽度要适当

  • 相关工作模型

    瀑布模型

结构化分析

结构化分析是面向数据流的需求分析方法,它的思想是通过功能分解方式把系统功能分解到各个模块中。

结构化分析方法SA的核心是数据字典。

围绕这个核心有三个层次的模型,分别是:

  • 数据模型(ER图)
  • 功能模型(DFD数据流图)
  • 行为模型(STD状态转换图)

结构化分析的步骤如下:

  1. 分析业务情况,做出反映当前物理模型的数据流图(Data Flow DiagramDFD)。
  2. 推导出等价的逻辑模型的DFD。
  3. 设计新的逻辑系统,生成数据字典和基元描述。
  4. 建立人机接口,提出可供选择的目标系统物理模型的DFD。
  5. 确定各种方案的成本和风险等级,据此对各种方案进行分析。
  6. 选择一种方案。
  7. 建立完整的需求规约。

其中DFD数据流图的建模过程:

  • 明确目标,确定系统范围
  • 建立顶层DFD图
  • 构建第一层DFD分解图
  • 开发DFD层次结构图
  • 检查确认DFD图

结构化设计

结构化设计包括体系结构设计、接口设计、数据设计和过程设计等任务。它是一种面向数据流的设计方法,是以SRS和SA阶段所产生的数据流图和数据字典等文档为基础,是一个自顶向下、逐步求精和模块化的过程。SD方法的基本思想是将软件设计成由相对独立且具有单一功能的模块组成的结构,分为概要设计和详细设计两个阶段,其中概要设计的主要任务是确定软件系统的结构,对系统进行模块划分,确定每个模块的功能、接口和模块之间的调用关系;详细设计的主要任务是为每个模块设计实现的细节。

  • 结构设计,定义软件系统各主要部件之间的关系,开发一个模块化的程序结构,并表示出模块间的控制关系。
  • 数据设计,将模型转换成数据结构的定义。高质量数据设计将改善程序结构和模块划分,降低过程复杂性。
  • 接口设计(人机界面设计),软件内部、软件和操作系统间以及软件和人之间如何通信。
  • 过程设计,系统结构部件转换成软件的过程描述。

结构化设计根据SA方法中的数据流图建立一个良好的模块结构图(例如SC图或软件层次方框图);运用模块化的设计原理控制系统的复杂性,即设计出模块相对独立的,模块结构图深度、宽度都适当的,单入口单出口的,单一功能的模块结构的软件结构图或软件层次方框图。此方法提供了描述软件系统的工具,提出了评价模块结构图质量的标准,即模块之间的联系越松散越好,而模块内各成分之间的联系越紧凑越好。

结构化设计的任务是把需求分析得到的数据流图(DFD)等变换为系统结构图(SC)。

结构化设计一般分为概要设计和详细设计两个阶段。概要设计也称为结构设计或总体设计,主要任务是把系统的功能需求分配给软件结构,形成软件的模块结构图,即系统结构图。在概要设计中,将系统开发的总任务分解成许多个基本的、具体的任务,为每个具体任务选择适当的技术手段和处理方法的过程称为详细设计。详细设计的是为软件结构图(SC)中的每一个模块确定采用的算法,模块内数据结构,用某种选定的表达工具(如N-S图等)给出清晰的描述。

结构化详细设计的基本步骤如下:

  1. 分析并确定输入/输出数据的逻辑结构。
  2. 找出输入数据结构和输出数据结构中有对应关系的数据单元。
  3. 按一定的规则由输入、输出的数据结构导出程序结构。
  4. 列出基本操作与条件,并把它们分配到程序结构图的适当位置。
  5. 用伪码写出程序。

数据流图和数据字典

在分析阶段:

数据流图用于界定系统上下文范围和建立业务流程的加工说明,自顶向下对系统进行功能分解;指

明数据在系统内移动变换;描述功能及加工规约。

数据字典用于建立业务概念有组织的集合,是模型核心库,有组织的系统相关数据元素列表,使涉

众对模型中元素有共同的理解。

在设计阶段:

结构化设计根据不同的数据流图类别分别做变换和事务映射来初始化系统结构图;根据数据字典中

的数据存储描述来建立数据库存储设计。

模块

模块的四个要素:

  • 输入和输出,模块的输入来源和输出去向都是同一个调用者,即一个模块从调用者那儿取得输入,进行加工后再把输出返回调用者。
  • 处理功能,指模块把输入转换成输出所做的工作。
  • 内部数据,指仅供该模块本身引用的数据。
  • 程序代码,指用来实现模块功能的程序。

模块的四种类型:

  • 传入模块。传入模块从下属模块中获取数据,经过某些处理,再将其传送给上级模块。
  • 传出模块。传出模块从上级模块中获取数据,进行某些处理,再将其传送给下属模块。
  • 变换模块。变换模块也称为加工模块,它从上级模块获取数据,进行特定的处理,然后转换成其他形式,再传送回上级模块,大多数计算模块(原子模块)都属于这一类。
  • 协调模块。协调模块是对所有下属模块进行协调和管理的模块。在系统的I/O部分或数据加工部分可以找到这样的模块,在一个好的SC中,协调模块应在较高层出现。

模块的扇入扇出:

  • 保持模块大小适中
  • 尽可能减少调用的深度,宽度也不宜过高
  • 扇入/扇出系数合理,多扇入少扇出,单入口单出口
  • 模块的作用域应该在模块内,功能应该是可预测的
  • 模块独立性原则(高内聚,低耦合)

一个模块的扇出是指该模块直接调用的下级模块的个数,扇出大表示模块的复杂度高

一个模块的扇入是指直接调用该模块的上级模块的个数。扇入大表示模块的复用程度高

设计良好的软件结构通常顶层扇出比较大,中间扇出比较小,底层模块则有大扇入

内聚类型与耦合类型

高内聚(高到低):

速记口诀,功顺通过瞬逻偶

低耦合(低到高):

速记:非数标控外功内

这篇关于【新版】系统架构设计师 - 知识点 - 结构化开发方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/901409

相关文章

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.