【软考】13. 结构化开发方法

《系统分析与设计概述》

  • 当前系统的物理模型 ——> 当前系统的逻辑模型 ——> 目标系统的逻辑模型 ——> 目标系统的物理模型
  • 系统开发的目的:当前系统的物理模型 ——> 目标系统的物理模型
    在这里插入图片描述
  • 系统设计基本原理
  • 抽象、模块化(逐步分解)、信息隐蔽(暴露接口 / 隐蔽内部细节)、模块独立
  • 衡量模块独立程度的标准:耦合性 和 内聚性
  • 良好的设计模式:高内聚,低耦合
  • (内聚从低到高)偶然 ——> 逻辑 ——> 时间 ——> 过程 ——> 通信 ——> 顺序 ——> 功能
  • 过程内聚(顺序);顺序内聚(顺序,输入为输出)
    在这里插入图片描述
  • (耦合从低到高)无直接 ——> 数据(数据值) ——> 标记(数据结构) ——> 控制——> 外部(软件外部环境) ——> 公共(全局变量) ——> 内容
    在这里插入图片描述

在这里插入图片描述

  • 系统总体结构设计
  • 系统设计分为:概要设计(系统总体结构设计) 和 详细设计
  • 确定模块结构——> 模块结构图
    在这里插入图片描述
  • 子系统结构设计

在这里插入图片描述

  • 系统模块结构设计
  • 模块结构图主要关心的是模块的外部属性(输入输出、处理功能)
    在这里插入图片描述
  • 详细设计:考虑每个子系统采用何种数据结构和核心算法
    在这里插入图片描述

《结构化开发方法》

  • 面向数据流;以数据流为中心,自顶向下、逐步分解
  • 结构化分析(SA) ——> 结构化设计(SD) ——> 结构化程序设计(SPD)
  • 产出物:三大模型(功能模型 / 数据流图,行为模型 / 状态转换图,数据模型 / E-R图) + 数据词典
    在这里插入图片描述
  • 数据流图DFD
  • 顶层数据流(上下文数据流) ——> 顶层图
  • 描述了系统的分解,但没有对图中各成分进行说明
  • 反映了整个系统跟外部实体的交互,没有反映内部实体细节
    在这里插入图片描述
  • 数据流的流向必须经过加工(数据流的其中一端必须是加工)
  • 加工有输入无输出 ——> 黑洞
  • 加工有输出无输入 ——> 奇迹
  • 加工输入不足以产生输出 ——> 灰洞
    在这里插入图片描述
  • 分层数据流图
  • 整个系统的内部细节分层图
  • 分层的数据流图的数据流一定是与顶层图是平衡对等的 ——> 输入输出相等
    在这里插入图片描述
  • 数据字典DD
  • 为数据流图中的每个数据流、文件、加工以及组成数据流或文件的数据线做出说明
  • (数据流图基本元素)数据流、数据存储、基本加工、外部实体
  • (成分)数据流、数据项(类)、数据存储、基本加工
  • 常见的加工逻辑描述方法:结构化语言、判定表、判定树
    在这里插入图片描述在这里插入图片描述

《结构化设计方法》

  • 面向数据流
  • 基本思想:将系统设计成由相对独立、功能单一的模块组成的结构
  • 由结构图来描述软件系统的体系结构
  • 模块结构图:结构化设计的工具
  • (组成)模块、调用、数据、控制、转换
  • 结构化设计主要包括:
    a. 体系结构(架构)设计
    b. 数据设计(与数据库、E-R图相关)
    c. 接口设计(与数据流图相关)
    d. 过程设计(详细设计)
    在这里插入图片描述
    在这里插入图片描述

《WebApp分析与设计》

  • 采用敏捷开发过程模型进行开发
  • (主要功能)使用超媒体向最终用户提供文本、图片、音频及视频内容
  • 特性
  • 网络密集性
  • 并发性
  • 无法预知的负载量
  • 性能
  • 可用性
  • 数据驱动
    在这里插入图片描述
  • 五种需求模型
  • 内容模型
  • 交互模型
  • 功能模型
  • 导航模型
  • 配置模型(与物理相关 ——> 运行在哪个平台)
    在这里插入图片描述
  • WebApp设计
  • 架构设计(界面)
  • 构件设计(功能)
  • 内容设计(线性结构、网格结构、层次结构、网络结构)
  • 导航设计
  • MVC(模型 - 视图 - 控制器)结构是WebApp基础结构模型之一
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark_SQL-DataFrame数据写出以及读写数据库(以MySQl为例)

一、数据写出 (1)SparkSQL统一API写出DataFrame数据 二、写出MySQL数据库 一、数据写出 (1)SparkSQL统一API写出DataFrame数据 统一API写法: 常见源写出: # cording:utf8from pyspark.sql import SparkSes…

Maven - no main manifest attribute(SpringBoot 多模块)

问题描述 no main manifest attribute 解决方案 一个主项目下,多个业务模块,假设 starter 模块作为启动器,以及主项目(project)最外层父 pom.xml 最关键要关注这 2 个 pom.xml(starter - pom.xml & p…

【代码随想录】算法训练计划04

1、24. 两两交换链表中的节点 题目: 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 思路: 链表这种题…

结构体指针的引入

概念引入 结构体指针类似于前面学习过的指针,我们先回忆下指针:指针就是地址,指针变量就是存放地址的变量。而结构体也是变量,变量访问有两种方式:1.变量名, 2.地址,之前案例,是用变量名访问。…

大厂面试题-什么是JVM

JVM全称是Java虚拟机,在聊什么是JVM之前,我们不妨看⼀下这张图。 从这张图中可以看出JVM所处的位置,同时也能看出它两个作用: 1、运⾏并管理Java源码⽂件所⽣成的Class⽂件, 2、在不同的操作系统上安装不同的JVM&#…

PostGreSQL模式schema

问题引入 之前在做数据库设计时,经常会忽略schema模式,直接在数据库下的public模式下建立各类数据表。如果数据表命名不够规范,后期寻找某张表时就会比较麻烦。通过 所幸,PostgreSQL 的模式schema管理,可以对这个问题…

正点原子嵌入式linux驱动开发——Linux INPUT子系统

按键、鼠标、键盘、触摸屏等都属于输入(input)设备,Linux内核为此专门做了一个叫做input子系统的框架来处理输入事件。输入设备本质上还是字符设备,只是在此基础上套上了input框架,用户只需要负责上报输入事件,比如按键值、坐标等…

C++——类和对象(上)

1.面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 例如手洗衣服 C是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间…

计算机视觉的相机选型

#你一般什么时候会用到GPT?# 目前市面上的工业相机大多是基于CCD(ChargeCoupled Device)或CMOS(Complementary Metal Oxide Semiconductor)芯片的相机。一般CCD制造工艺更加复杂,也会更贵一点! 1、CCD工…

底层全部重构,小米澎湃OS完整系统架构公布

上周,雷军发文称小米全新操作系统澎湃 OS 正式版已完成封包,将逐步接替 MIUI。而后,又有网友曝光小米澎湃 OS 界面。 今日,雷军再度发表长文预热小米澎湃 OS,正式公布了完整系统架构。 据介绍,从架构设计之…

统计学习方法 决策树

文章目录 统计学习方法 决策树决策树模型与学习特征选择决策树的生成ID3 算法C4.5 的生成算法 决策树的剪枝CART 算法CART 回归树的生成CART 分类树的生成CART 剪枝 统计学习方法 决策树 阅读李航的《统计学习方法》时,关于决策树的笔记。 决策树模型与学习 决策…

归结原理、归结演绎推理

主要内容 归结演绎推理范式子句与子句集将谓词公式转化为子句集命题逻辑鲁宾逊归结原理 归结演绎推理 定理证明的实质是对前提P和结论Q证明P →Q的永真性应用反证法,欲证明P →Q,只要证明 P∧~Q 等价于 F鲁宾逊归结原理对机械化推理有重大突破鲁宾逊归…

【Ansible自动化运维工具 1】Ansible常用模块详解(附各模块应用实例和Ansible环境安装部署)

Ansible常用模块 一、Ansible1.1 简介1.2 工作原理1.3 Ansible的特性1.3.1 特性一:Agentless,即无Agent的存在1.3.2 特性二:幂等性 1.4 Ansible的基本组件 二、Ansible环境安装部署2.1 安装ansible2.2 查看基本信息2.3 配置远程主机清单 三、…

windows PC virtualBox 配置

效果: oracle vitualbox 可以访问通PC主机,可以访问外网: 注意,如果docker0网络地址,和PC主机的网络地址冲突了,需要变更docker的网络地址: root/home/mysqlPcap/anti-tamper $ cat /etc/docker/daemon.js…

C语言找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小,也可能没有鞍点

完整代码&#xff1a; /*找出一个二维数组中的鞍点&#xff0c;即该位置上的元素在该行上最大&#xff0c;在该列上最小&#xff0c;也可能 没有鞍点*/ #include<stdio.h> #include<stdlib.h> int main(){int n0;printf("请输入矩阵的行数:");scanf(&qu…

牛客网刷题-(7)

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

168. Excel表列名称

168. Excel表列名称 Java代码&#xff1a; 26进制&#xff0c;但是每个进制是从1开始的&#xff0c;不是从0开始&#xff1b;因此要计算要构建从0开始的求余&#xff01; class Solution {public String convertToTitle(int cn) {StringBuilder sb new StringBuilder();whi…

matlab中类的分别之handle类和value类——matlab无法修改类属性值的可能原因

写在之前&#xff08;吐槽&#xff09; 最近由于变化了一些工作方向&#xff0c;开始需要使用matlab进行开发&#xff0c;哎哟喂&#xff0c;matlab使用的我想吐&#xff0c;那个matlab编辑器又没代码提示&#xff0c;又没彩色&#xff0c;我只好用vscode进行代码编辑&#xf…

计算机网络【CN】介质访问控制

信道划分介质访问控制 FDMTDMWDMCDM【掌握eg即可】 随机介质访问控制 CSMA 1-坚持CSMA 非坚持CSMA p-坚持CSMA 空闲时 立即发送数据 立即发送数据 以概率P发送数据&#xff0c;以概率1-p推迟到下一个时隙 忙碌时 继续坚持侦听 放弃侦听&#xff0c;等待一个随机的时…

Centos使用war文件部署jenkins

部署jenkins所需要的jdk环境如下&#xff1a; 这里下载官网最新的版本&#xff1a; 选择jenkins2.414.3版本&#xff0c;所以jdk环境最低得是java11 安装java11环境 这里直接安装open-jdk yum -y install java-11-openjdk.x86_64 java-11-openjdk-devel.x86_64下载jenkins最新…