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

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

相关文章

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节

CentOS系统使用yum命令报错问题及解决

《CentOS系统使用yum命令报错问题及解决》文章主要讲述了在CentOS系统中使用yum命令时遇到的错误,并提供了个人解决方法,希望对大家有所帮助,并鼓励大家支持脚本之家... 目录Centos系统使用yum命令报错找到文件替换源文件为总结CentOS系统使用yum命令报错http://www.cppc

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou