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

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

相关文章

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序