软件设计师教程(十)计算机系统知识-结构化开发
软件设计师教程
软件设计师教程(一)计算机系统知识-计算机系统基础知识
软件设计师教程(二)计算机系统知识-计算机体系结构
软件设计师教程(三)计算机系统知识-计算机体系结构
软件设计师教程(四)计算机系统知识-程序设计语言基础知识
软件设计师教程(五)计算机系统知识-数据结构
软件设计师教程(六)计算机系统知识-操作系统知识
软件设计师教程(七)计算机系统知识-操作系统知识
软件设计师教程(八)计算机系统知识-软件工程基础知识
软件设计师教程(九)计算机系统知识-结构化开发方法
结构化开发方法
- 软件设计师教程
- 系统分析与设计概述
- 系统分析概述
- 系统分析的目的和任务
- 系统分析的主要步骤
- 系统设计的基本原理
- 抽象
- 模块化
- 信息屏蔽
- 模块独立
- 系统总体结构设计
- 系统结构设计原则
- 子系统划分
- 系统模块结构设计
- 数据存储设计
- 系统文档
- 结构化分析方法
- 结构化分析方法概述
- 数据流图的基本图形元素
- 数据流图的扩充符号
- 数据流图的层次结构
- 分层数据流图的画法
- 分层数据流图的审查
- 数据字典
- 数据字典的内容
- 数据词典管理
- 加工逻辑的描述
- 结构化设计方法
- 结构化设计的步骤
- 数据流图到软件体系结构的映射
- 信息流的类型
- 变换分析
- WebApp分析与设计
- WebApp的特性
- WebApp需求模型
- 内容模型
- 交互模型
- 功能模型
- 导航模型
- 配置模型
- WebApp设计
- 用户界面设计UI
系统分析与设计概述
系统分析概述
系统分析的目的和任务
对系统进一步详细调查,将调查中所得的文档资料集中,对组织内部整体管理状况和信息处理过程进行分析,位系统开发提供所需的资料,提交系统方法说明那个书。
对系统业务和数据流程进行梳理,检验原系统管理模式是否需要改革,新系统管理方法是否能实现。
系统分析的主要步骤

系统设计的基本原理
抽象
重点说明一个实体的本质放慢
模块化
将一个待开发的软件分解为若干小的简单部分模块,每个模块都可以独立地开发、测试等
信息屏蔽
将每个程序的成分隐蔽或封装在一个单一的设计模块中,就是全局文件了
模块独立
耦合性和内聚性
高内聚,低耦合
系统总体结构设计
系统结构设计原则
- 分解-协调原则
- 自顶向下原则
- 信息屏蔽、抽象原则
- 一致性原则
- 明确原则
- 耦合小,内聚性高
- 扇入系数和扇出系数要合理
- 规模适当
子系统划分
划分原则
- 子系统要具有相对独立性
- 之间的数据依赖性尽量小
- 划分的结果应使数据冗余小
- 应考虑到今后管理发展
- 便于系统分阶段实现
- 各类资源的充分利用
子系统结构设计
- 每个子系统如何划分多个模块
- 调用关系
- 评价改进模块结构的质量
- 模块结构图
系统模块结构设计
模块是组成系统的基本单位,特点是可以组合、分解和更换。
模块 = 输入和输出+处理功能+内部数据+程序代码
数据存储设计
- 数据资源分布
- 数据安全保密
系统文档
雁过留痕,沟通的时候一定要有文档。
结构化分析方法
结构化分析方法概述
抽象和分解是处理复杂问题的两个基本手段
抽象就是将问题的主要方面抽出来,将大问题分解为更小的问题,逐层分解,自上而下逐层分解。
数据流图的基本图形元素

- 数据流
数据流由一组固定成分的数据组成,表示数据的流向。 - 加工
输入数据流到输出数据流之间的变换,也就是输入数据流经过什么处理后编程输出数据流。 - 数据存储
数据存储用来存储数据 - 外部实体
存在于软件系统之外的人员或组织,系统所需数据发源地和归宿地。
数据流图的扩充符号
*与,+或,⊕异或、互斥
数据流图的层次结构
- 层次结构
- 图和加工的编号
分层数据流图的画法
- 画系统的输入和输出
- 画系统的内部
- 画加工的内部
分层数据流图的审查
- 分层数据流图的一致性和完整性
- 构造分层DFD时需要注意的问题
- 分解的程度
数据字典
数据字典的内容
数据流、数据项、数据存储和基本加工
数据词典管理
把词典条目按照某种格式组织后存储在词典中,提供排序、查找和统计等功能。
加工逻辑的描述
小说明
结构化设计方法
面向数据流的设计方法,可以与SA方法衔接
结构化设计的步骤
- 建立初始结构图
结构化方法本质上是一种功能分解方法 - 对结构图的改进
- 书写设计文档
- 设计评审
数据流图到软件体系结构的映射
信息流的类型
DFD的信息流大体分为两种类型:变换流和是物流
变换分析
- 确定输入流和输出流,分离出变换中心
- 第一级分解
- 第二级分解
- 事物分析
- SD方法的设计步骤
WebApp分析与设计
WebApp的特性
- 网络密集型
- 并发性
- 无法预知的负载量
- 性能
- 可用性
- 数据驱动
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"命令去把项目跑起来。带着这些疑问,小生在此总结了以下…...
逆流程 场景下 处理状态机变化的方案
背景: 针对某些业务场景下,存在逆流程。 比如场景的场景 正向流程如,发起某项申请->对某项申请进行审批。(审批为通过/驳回)。这样这个工作流程就算到最终态。 常见的状态机如, 申请未提交࿰…...
【剧前爆米花--爪哇岛寻宝】Java实现无头单向非循环链表和无头双向链表与相关题目
作者:困了电视剧 专栏:《数据结构--Java》 文章分布:这是关于数据结构链表的文章,包含了自己的无头单向非循环链表和无头双向链表实现简单实现,和相关题目,想对你有所帮助。 目录 无头单向非循环链表实现 …...
学习MvvmLight工具
最近学习了一下MvvmLight,觉得有些功能还是挺有特色的,所以记录一下 首先新建也给WPF程序 然后在Nuget里面安装MvvmLightLib 包,安装上面那个也可以,但是安装上面那个会自动在代码里面添加一些MvvmLight的demo ,安装M…...
基于BiLSTM+CRF医学病例命名实体识别项目
研究背景 为通过项目实战增加对命名实体识别的认识,本文找到中科院软件所刘焕勇老师在github上的开源项目,中文电子病例命名实体识别项目MedicalNamedEntityRecognition。对其进行详细解读。 原项目地址:https://github.com/liuhuanyong/Med…...
05 C语言数据类型
05 C语言数据类型 1、数据类型 编程语言对数据类型分为两派:一种认为要注重,一种认为可以忽视。 C语言类型 1、整数 : char < short < int < long < long long ,bool 2、浮点数: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 是一个强大的网络抓包工具,在分析服务之间调用时非常有用。可以将网络中传送的数据包抓取下来进行分析。tcpdump 提供灵活的抓取策略,支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not 等逻辑语句来去掉不想要的信…...
MaxCompute SQL中的所有保留字与关键字如下
– MaxCompute SQL中的所有保留字与关键字如下 注意 命名表、列或分区时,不要使用保留字与关键字,否则可能会报错。 保留字不区分大小写。 在对表、列或是分区命名时如若使用关键字,需给关键字加符号进行转义,否则会报错。 % &am…...
Kafka 压缩算法
压缩 (compression) : 用时间换空间的思想 用较小的 CPU 开销获得磁盘少占用或网络 I/O 少传输 Kafka 消息分两层: 消息日志组成 : n 个消息集合消息集合 (message set) 组成 : n 条日志项 (record item)日志项封装了消息 (message)Kafka 在消息集合层上进行写入…...
关于React Hook(18)
useState():👉详情 (必须“有条件地调用”;注意避免冗余状态的产生) 关于useState的两种使用方式的区别:👉详情 关于batch机制:有条件地调用一些状态的set方…...
计算机网络:BGP协议
BGP协议 与其他AS的邻站BPG发言人交换信息。 交换的网络可达性信息,即要到达某一个网络所要经历的一系列AS 发生变化时,更新有变化的部分 BGP协议交换信息的过程:所交换的网络可达性信息就是要到达某一个网络所要经历的一系列ASÿ…...
91. 解码方法 ——【Leetcode每日刷题】
91. 解码方法 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : ‘A’ -> “1” ‘B’ -> “2” … ‘Z’ -> “26” 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法࿰…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...
