当前位置: 首页 > news >正文

软件设计师教程(十)计算机系统知识-结构化开发

软件设计师教程

软件设计师教程(一)计算机系统知识-计算机系统基础知识
软件设计师教程(二)计算机系统知识-计算机体系结构
软件设计师教程(三)计算机系统知识-计算机体系结构
软件设计师教程(四)计算机系统知识-程序设计语言基础知识
软件设计师教程(五)计算机系统知识-数据结构
软件设计师教程(六)计算机系统知识-操作系统知识
软件设计师教程(七)计算机系统知识-操作系统知识
软件设计师教程(八)计算机系统知识-软件工程基础知识
软件设计师教程(九)计算机系统知识-结构化开发方法


结构化开发方法

  • 软件设计师教程
  • 系统分析与设计概述
    • 系统分析概述
      • 系统分析的目的和任务
      • 系统分析的主要步骤
    • 系统设计的基本原理
      • 抽象
      • 模块化
      • 信息屏蔽
      • 模块独立
    • 系统总体结构设计
      • 系统结构设计原则
      • 子系统划分
      • 系统模块结构设计
      • 数据存储设计
    • 系统文档
  • 结构化分析方法
    • 结构化分析方法概述
      • 数据流图的基本图形元素
      • 数据流图的扩充符号
      • 数据流图的层次结构
      • 分层数据流图的画法
      • 分层数据流图的审查
    • 数据字典
      • 数据字典的内容
      • 数据词典管理
      • 加工逻辑的描述
  • 结构化设计方法
    • 结构化设计的步骤
    • 数据流图到软件体系结构的映射
      • 信息流的类型
      • 变换分析
  • WebApp分析与设计
    • WebApp的特性
    • WebApp需求模型
      • 内容模型
      • 交互模型
      • 功能模型
      • 导航模型
      • 配置模型
    • WebApp设计
  • 用户界面设计UI

系统分析与设计概述

系统分析概述

系统分析的目的和任务

对系统进一步详细调查,将调查中所得的文档资料集中,对组织内部整体管理状况和信息处理过程进行分析,位系统开发提供所需的资料,提交系统方法说明那个书。
对系统业务和数据流程进行梳理,检验原系统管理模式是否需要改革,新系统管理方法是否能实现。

系统分析的主要步骤

在这里插入图片描述

系统设计的基本原理

抽象

重点说明一个实体的本质放慢

模块化

将一个待开发的软件分解为若干小的简单部分模块,每个模块都可以独立地开发、测试等

信息屏蔽

将每个程序的成分隐蔽或封装在一个单一的设计模块中,就是全局文件了

模块独立

耦合性和内聚性

高内聚,低耦合

系统总体结构设计

系统结构设计原则

  1. 分解-协调原则
  2. 自顶向下原则
  3. 信息屏蔽、抽象原则
  4. 一致性原则
  5. 明确原则
  6. 耦合小,内聚性高
  7. 扇入系数和扇出系数要合理
  8. 规模适当

子系统划分

划分原则

  1. 子系统要具有相对独立性
  2. 之间的数据依赖性尽量小
  3. 划分的结果应使数据冗余小
  4. 应考虑到今后管理发展
  5. 便于系统分阶段实现
  6. 各类资源的充分利用

子系统结构设计

  1. 每个子系统如何划分多个模块
  2. 调用关系
  3. 评价改进模块结构的质量
  4. 模块结构图

系统模块结构设计

模块是组成系统的基本单位,特点是可以组合、分解和更换。
模块 = 输入和输出+处理功能+内部数据+程序代码

数据存储设计

  1. 数据资源分布
  2. 数据安全保密

系统文档

雁过留痕,沟通的时候一定要有文档。

结构化分析方法

结构化分析方法概述

抽象和分解是处理复杂问题的两个基本手段
抽象就是将问题的主要方面抽出来,将大问题分解为更小的问题,逐层分解,自上而下逐层分解。

数据流图的基本图形元素

在这里插入图片描述

  1. 数据流
    数据流由一组固定成分的数据组成,表示数据的流向。
  2. 加工
    输入数据流到输出数据流之间的变换,也就是输入数据流经过什么处理后编程输出数据流。
  3. 数据存储
    数据存储用来存储数据
  4. 外部实体
    存在于软件系统之外的人员或组织,系统所需数据发源地和归宿地。

数据流图的扩充符号

*与,+或,⊕异或、互斥

数据流图的层次结构

  1. 层次结构
  2. 图和加工的编号

分层数据流图的画法

  1. 画系统的输入和输出
  2. 画系统的内部
  3. 画加工的内部

分层数据流图的审查

  1. 分层数据流图的一致性和完整性
  2. 构造分层DFD时需要注意的问题
  3. 分解的程度

数据字典

数据字典的内容

数据流、数据项、数据存储和基本加工

数据词典管理

把词典条目按照某种格式组织后存储在词典中,提供排序、查找和统计等功能。

加工逻辑的描述

小说明

结构化设计方法

面向数据流的设计方法,可以与SA方法衔接

结构化设计的步骤

  1. 建立初始结构图
    结构化方法本质上是一种功能分解方法
  2. 对结构图的改进
  3. 书写设计文档
  4. 设计评审

数据流图到软件体系结构的映射

信息流的类型

DFD的信息流大体分为两种类型:变换流和是物流

变换分析

  1. 确定输入流和输出流,分离出变换中心
  2. 第一级分解
  3. 第二级分解
  4. 事物分析
  5. SD方法的设计步骤

WebApp分析与设计

WebApp的特性

  1. 网络密集型
  2. 并发性
  3. 无法预知的负载量
  4. 性能
  5. 可用性
  6. 数据驱动

WebApp需求模型

内容模型

内容模型给出WebApp提供的全部系列内容。

交互模型

描述了用户与WebApp采用哪种交互方式。

功能模型

功能和内容直接相关,既能使用又能生成

导航模型

定义了所有的导航策略

配置模型

描述了所存在的环境和基础设施

WebApp设计

架构设计、构件设计、内容设计、导航设计、美学设计、界面设计。

用户界面设计UI

相关文章:

软件设计师教程(十)计算机系统知识-结构化开发

软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 软件设计师教程(…...

链表OJ之 快慢指针法总结

欢迎来到 Claffic 的博客 💞💞💞 前言: 快慢指针指的是每次指针移动的步长,是解决链表相关的题目的一大利器,下面我将以例题的形式讲解快慢指针法。 目录 一. 链表的中间结点 思路: 代码实…...

C++STL详解(五)——list的介绍与使用

文章目录list的介绍list的使用list的定义方法list迭代器失效问题list插入和删除inserteraselist迭代器的使用begin,end 和 rbegin,rendlist元素访问front 和 backlist容量控制与数据清理resizeclearlist操作函数spliceremove 和 remove_ifuniquemergerev…...

进程和进程的调度

今天,为大家带来进程和进程的调度的学习 1.认识计算机 2.什么是操作系统 3.什么是进程 4.进程管理 5.进程的属性 6.进程的调度 7.进程调度的过程 8.内存分配 1.认识计算机 计算机的组成有五大部分 1.CPU(是计算机的大脑,负责逻辑运算和控制) 2.内存 3.外存 4.输入…...

TypeScript 深度剖析:TypeScript 的理解?与 JavaScript 的区别?

一、是什么 TypeScript 是 JavaScript 的类型的超集,支持ES6语法,支持面向对象编程的概念,如类、接口、继承、泛型等 超集,不得不说另外一个概念,子集,怎么理解这两个呢,举个例子,如…...

美颜SDK关键技术讲解——人脸识别与人脸美化

拍摄,自从智能手机普及之后就已经不再是小众爱好,使用手机拍摄记录生活几乎成了人们的日常。在巨量的需求下,美颜工具、美颜SDK已经被广泛应用于各大视频拍摄平台。虽然经常听到美颜SDK,但是大多数人并不了解它,下文小…...

Linux下C/C++ 网络扫描(主机扫描技术)

主机扫描是网络扫描的基础,通过对目标网络中主机IP地址的扫描,从一堆主机中扫描出存活的主机,然后以他们为目标进行后续的攻击。一般会借助于ICMP、TCP、UDP等协议的工作机制,检查打开的进程,开放的端口号等等。 主机…...

无法将“vue-cli-service”项识别为 cmdlet、函数、脚本文件或不是内部命令的原因和解决方案

经常有小伙伴问我说,为什么我们在开发vue项目的时候,需要在package.json的script对象中,去设置命令启动项目,而不是直接的通过"vue-cli-service serve"命令去把项目跑起来。带着这些疑问,小生在此总结了以下…...

逆流程 场景下 处理状态机变化的方案

背景: 针对某些业务场景下,存在逆流程。 比如场景的场景 正向流程如,发起某项申请->对某项申请进行审批。(审批为通过/驳回)。这样这个工作流程就算到最终态。 常见的状态机如, 申请未提交&#xff0…...

【剧前爆米花--爪哇岛寻宝】Java实现无头单向非循环链表和无头双向链表与相关题目

作者:困了电视剧 专栏:《数据结构--Java》 文章分布:这是关于数据结构链表的文章,包含了自己的无头单向非循环链表和无头双向链表实现简单实现,和相关题目,想对你有所帮助。 目录 无头单向非循环链表实现 …...

学习MvvmLight工具

最近学习了一下MvvmLight,觉得有些功能还是挺有特色的,所以记录一下 首先新建也给WPF程序 然后在Nuget里面安装MvvmLightLib 包,安装上面那个也可以,但是安装上面那个会自动在代码里面添加一些MvvmLight的demo ,安装M…...

基于BiLSTM+CRF医学病例命名实体识别项目

研究背景 为通过项目实战增加对命名实体识别的认识,本文找到中科院软件所刘焕勇老师在github上的开源项目,中文电子病例命名实体识别项目MedicalNamedEntityRecognition。对其进行详细解读。 原项目地址:https://github.com/liuhuanyong/Med…...

05 C语言数据类型

05 C语言数据类型 1、数据类型 编程语言对数据类型分为两派&#xff1a;一种认为要注重&#xff0c;一种认为可以忽视。 C语言类型 1、整数 : char < short < int < long < long long &#xff0c;bool 2、浮点数&#xff1a;float < double < long doub…...

C++11:右值引用和移动语义

文章目录1. 左值和右值表达式1.1 概念1.2 左值和右值2. 左值引用和右值引用2.1 相互引用2.2 示例代码2.3 左值引用使用场景缺点2.4 右值引用和移动语义小结2.5 移动赋值2.6 右值引用的其他使用场景右值引用版本的插入函数3. 完美转发3.1 万能引用3.2 如何实现完美转发3.3 完美转…...

tcpdump网络抓包工具

tcpdump 是一个强大的网络抓包工具&#xff0c;在分析服务之间调用时非常有用。可以将网络中传送的数据包抓取下来进行分析。tcpdump 提供灵活的抓取策略&#xff0c;支持针对网络层、协议、主机、网络或端口的过滤&#xff0c;并提供 and、or、not 等逻辑语句来去掉不想要的信…...

MaxCompute SQL中的所有保留字与关键字如下

– MaxCompute SQL中的所有保留字与关键字如下 注意 命名表、列或分区时&#xff0c;不要使用保留字与关键字&#xff0c;否则可能会报错。 保留字不区分大小写。 在对表、列或是分区命名时如若使用关键字&#xff0c;需给关键字加符号进行转义&#xff0c;否则会报错。 % &am…...

Kafka 压缩算法

压缩 (compression) : 用时间换空间的思想 用较小的 CPU 开销获得磁盘少占用或网络 I/O 少传输 Kafka 消息分两层&#xff1a; 消息日志组成 : n 个消息集合消息集合 (message set) 组成 : n 条日志项 (record item)日志项封装了消息 (message)Kafka 在消息集合层上进行写入…...

关于React Hook(18)

useState&#xff08;&#xff09;&#xff1a;&#x1f449;详情 &#xff08;必须“有条件地调用”&#xff1b;注意避免冗余状态的产生&#xff09; 关于useState的两种使用方式的区别&#xff1a;&#x1f449;详情 关于batch机制&#xff1a;有条件地调用一些状态的set方…...

计算机网络:BGP协议

BGP协议 与其他AS的邻站BPG发言人交换信息。 交换的网络可达性信息&#xff0c;即要到达某一个网络所要经历的一系列AS 发生变化时&#xff0c;更新有变化的部分 BGP协议交换信息的过程&#xff1a;所交换的网络可达性信息就是要到达某一个网络所要经历的一系列AS&#xff…...

91. 解码方法 ——【Leetcode每日刷题】

91. 解码方法 一条包含字母 A-Z 的消息通过以下映射进行了 编码 &#xff1a; ‘A’ -> “1” ‘B’ -> “2” … ‘Z’ -> “26” 要 解码 已编码的消息&#xff0c;所有数字必须基于上述映射的方法&#xff0c;反向映射回字母&#xff08;可能有多种方法&#xff0…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...