搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
weixin_40725706
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Java是不支操作符重载的_java是否支持操作符重载
2
git init后没有看到生成的.git文件_git init后没有出现.git文件
3
Phoenix_安装bsdtar
4
nginx 解决跨域问题
5
Android相机应用:禁用后置摄像头,仅支持前置摄像头功能_android中调用系统相机禁用后置摄像头
6
KAFKA保证顺序消费_kafka顺序消费
7
Vue2+ElementUI的el-table实现新增数据行与删除的功能
8
【免费题库】华为OD机试 - 报数问题(Java & JS & Python & C & C++)
9
STM32F103C8T6 单片机 ESP8266 12F接入机智云_stc8h连接esp12f
10
一文搞懂Python文件读写_python读写文件
当前位置:
article
> 正文
软考中级软件设计师--11.结构化开发_耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。耦合程度
作者:weixin_40725706 | 2024-04-14 05:23:44
赞
踩
耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。耦合程度
结构化开发
参考
https://www.yuque.com/saodai/ss8tp9
B站视频
模块化
模块化是指将一个待开发的软件分解成若干个小的简单部分–模块,每个模块独立开发测试
模块独立
模块独立是指每个模块完成一个相对独立的特定子功能,并且与其他模块间的联系简单,衡量模块独立的标准有两个:内聚性、耦合性】
耦合
耦合是模块之间相对独立性(互相连接的紧密程度)的度量,耦合程度越高,模块独立性越弱
耦合的七种类型由低到高排序
1. 无直接耦合:两个模块之间没有直接关系(没有调用、不传递任何信息)
2. 数据耦合:两个模块间有调用关系,传递简单的数据值(值传递)
3. 标记耦合:有调用关系,传递的是数据结构
4. 控制耦合:有调用关心,传递的是控制变量,控制变量可以让被调用方有选择的执行某一功能
5. 外部耦合:模块间通过软件之外的环境联结
6. 公共耦合:通过公共数据环境相互作用的那些模块间的耦合
7. 内容耦合:一个模块直接使用另一个模块的内部数据,或通过非正常入口传入另一模块内部时
内聚
内聚是对一个模块内部各个元素之间彼此结合紧密程度的度量,内聚程度越高,模块独立性越强
内聚的其中类型由低到高排序
1. 偶然内聚(巧合内聚):模块内各元素间没有任何联系
2. 逻辑内聚:指模块内执行若干个结逻辑相似的功能,通过参数来确定要执行哪一个
3. 时间内聚:特定时间需要同时执行的动作组合在一起形成的模块、
4. 过程内聚:一个模块完成多个任务,这些任务必须按照指定过程执行
5. 通信内聚:模块内的处理元素都在同一个数据结构上操作
6. 顺序内聚:单一功能,模块内各个处理元素密切相关,且需要顺序执行
7. 功能内聚:模块内所有元素共同完成同一功能,缺一不可
系统结构设计原则
分解-协调原则:大问题分解成小问题
自顶向下原则:抓住系统的主功能,由上到下分层分解
信息隐蔽-抽象原则:上层规定下层做什么和模块间协调,但不规定怎么做
一致性原则:统一规范、统一标准、统一的文件模式
明确性原则:每个模块功能明确、接口明确,消除多重功能、无用接口,避免病态链接、消除接口复杂度
高内聚低耦合
扇入扇出适中:模块调用其他模块称为扇出,被其他模块调用称为扇如
模块规模适中:过大,则是分解的不充分,过小,则可能降低模块独立性
模块的作用范围应该再其控制范围之内
系统文档
系统文档是系统建设过程的”痕迹“,是系统维护人员的指南,是开发人员与用户的交流工具
系统文档在系统开发人员、项目管理人员、系统维护人员、系统评价人员、用户之间的作用
1. 用户–系统分析人员:可行性研究报告、总体规划报告、系统开发合同、系统方案说明书
2. 系统开发人员–项目管理人员:系统开发计划、系统开发月报、系统开发总结报告、项目管理文件
3. 系统测试人员–系统开发人员:系统方案说明书、系统开发合同、系统设计说明书、测试计划文档
4. 系统开发人员–用户:用户手册、操作指南
5. 系统开发人员–系统维护人员:系统设计说明书、系统开发总结报告、技术手册
6. 用户–维修人员:系统运行报告、维护修改建议
数据流图
基本图形元素
1. 外部实体:矩形,一般用 Ei 表示
2. 数据存储:两条横线或者缺边矩形,一般用 Di 表示
3. 数据流:有向边,起点 ————> 终点
4. 加工:圆角矩形或圆,一般用 Pi 表示
顶层数据流图描述了系统的输入输出,0层数据流图是对顶层数据流图的细分
外部实体:当前系统之外的人、物、外部系统
1. 人:学生、老师、员工、主管
2. 物: 传感器、控制器、车辆、采购部门
3. 外部系统:支付系统、车辆交易系统、库存管理系统
数据存储:存储数据、提供数据
1. 存储加工后的输出数据,提供加工的输入数据
2. 例如: xxx表、xxx文件
加工: 将输入数据处理后得到输出数据
1. 一个加工至少有一个输入数据流和一个输出数据里
2. 只有输入没有输出称为”黑洞“
3. 只有输出没有输入称为”白洞“
4. 加工的数据不足以产生输出”灰洞“
数据流:数据流的起点或者重点必有一个是加工
父图子图平衡
1. 父图中的数据流,子图中也要有,其实就是根据父图去子图里一个个找看看有没有是父图里有的数据流但是子图没有
找出丢失数据流的技巧
1. 父图子图平衡
2. 加工既要有输入数据里、也要有输出数据流‘
3. 数据守恒(到题目的内容中去找图中有哪些丢失的部分)
数据建模 – E-R图;行为建模 – UML;功能建模 – 数据流图
数据字典
数据字典为数据流图中的每个数据流、文件、加工,以及组成数据流的数据项做出说明
数据字典有四类条目:数据流、数据存储、基本加工、数据项
数据项是组成数据流和数据存储的最小元素,外部实体不再字典中说明
常用的加工逻辑描述方法:结构化语言、判定表、判定树
结构化开发方法
总的指导思想是自顶而下,逐层分解(从抽象到具体)
基本原则是功能的分解与抽象
软件工程中最早提出的方法,特别适合数据处理领域的问题
不适合解决大规模的、特别复杂的项目,难以适应需求的变化
结构化设计包括:
体系结构设计:定义软件的主要结构元素及关系
数据设计:确定文件系统结构和数据库表结构
接口设计:描述软件使用放的外部接口,及各种构件间的内部接口
过程设计:定义各组成部分内的算法及内部数据结构
界面设计黄金原则
用户操纵控制
减少用户记忆负担
保持界面一致
构造分层数据流图时需要注意的问题
适当命名
图中要表示出数据流
一个加工不适合过多数据流
分解尽可能均匀
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/weixin_40725706/article/detail/420416
推荐阅读
article
傻瓜式
部署
教程2:
docker
搭建
oracle11g
数据库
_
docker
部署
oracle11g
...
docker
搭建
oracle11g
数据库
_
docker
部署
oracle11g
docker
部署
oracle11g
...
赞
踩
article
Python
妙用
运算符
重载
——玩出
“
点
”花样来(1)...
【代码】
Python
妙用
运算符
重载
——玩出
“
点
”花样来(1)
Python
妙用
运算符
重载
——玩出
“
点
”花样来(1) ...
赞
踩
article
AI
从
截图
直接
生成
代码
、
前端
程序员
的
福音
_
根据图片
生成
前端
代码
...
如果您希望在不同端口上运行后端,请更新 VITE
_
WS
_
BACKEND
_
URLfrontend/.env.local出于...
赞
踩
article
VScode
git
push报错 Missing
or
invalid
credentials
_m...
从网上找到的方法基本上都是找到
git
.terminalAuthentication 去掉√,然后重启。后来我发现在
git
...
赞
踩
article
十年后的
web
渗透
(
网络
安全
)
前景
如何?你想知道的都在
这里
_
web
安全
前景
...
web
渗透
是
网络
安全
大行业里入门板块,就像十年前的软件,
前景
非常被看好,薪资也很诱人。_
web
安全
前景
web
安全
前景
...
赞
踩
article
企业
微信
的IM
架构
设计
揭秘_im
系统
设计
...
本文总结了
企业
微信
的IM消息
系统
架构
设计
,阐述了
企业
业务给IM
架构
设计
带来的技术难点和挑战,以及技术方案的对比与分析。同...
赞
踩
article
【
diffusion
】
扩散
模型
详解
!
理论
+
代码
_
diffusion
扩散
模型
...
【
diffusion
】
扩散
模型
详解
!
理论
+
代码
。通过推导出损失函数,讲解了
diffusion
模型
的背景和训练过程。dif...
赞
踩
article
深入微
服务
框架
:
构建高效、可扩展与弹性
的
现代
应用
架构...
这里准备好
的
功能我们称为生产者,使用,直接调用我们已经实现
的
模块称为消费者,管理消费者和生产者
的
平台我们称为管理平台。模...
赞
踩
article
6
个
超级
个
体正在使用的
国内外
AI
工具
聚合
网站
原创...
分享
AI
算法
工具
和应用动态资讯,提升技术效率。欢迎关注,我们下期再见!6
个
超级
个
体正在使用的
国内外
AI
工具
聚合
网站
原创...
赞
踩
article
大话设计
模式
——
17
.
状态
模式
(
State
Pattern
)...
对象的行为依赖于它的
状态
(属性),可以根据
状态
的改变而改变相关行为。优点只需改变对象的
状态
,就可改变对象的行为多个环境对...
赞
踩
article
python
基础知识点(蓝桥杯
python
科目个人
复习计划
21
)_
最近
暑假特训算法班
的
同学
...
最近
暑期算法特训班
的
同学
表现出色,她们
的
老师决定奖励她们,老师购买了n种不同种类
的
糖果,用小写
的
阿拉伯字母表示,每个糖果...
赞
踩
article
在
Remix
中运行
合约
JS
脚本
_
remix
js
脚本
...
Remix
接受 async/await
脚本
来运行 web3.
js
或 ethers.
js
命令。
脚本
需要包装在一个自...
赞
踩
article
少儿
编程
--
STEM
A
考
试
介绍转自
STEM
A
(
STEM
能力测
试
)
考
试
白 皮 书_
stema
...
STEM
A
,
STEM
Assessment,也称
STEM
能力测
试
,是蓝桥杯大赛组委会与美国普林 斯顿多文化教育研究中...
赞
踩
article
SLAM
学习:
DWA
算法
原理
和
编程实现(
PYTHON
)...
前言此部分内容是ROS中Move_Base功能包用到的
DWA
路径规划
算法
的介绍
和
实现,下面我将以自己所理解的
DWA
算法
原...
赞
踩
article
达摩院
SPACE
对话
大
模型
:预
训练
语言
模型
,预
训练
对话
模型
,知识注入_大
模型
增量预
训练
数据
集和代码...
面向理解的预
训练
对话
模型
的出现,对于
对话
理解方面,相对于预
训练
语言
模型
,带来了巨大的提升,如上图所示,EMNLP2020...
赞
踩
article
华为
云云耀云
服务器
L实例评测|
部署
前后
端
分离
项目
_
前后
端
分离
项目
在
华为
云上
部署
需要开放那些
端
口...
安全组是一个逻辑上的分组,为具有相同安全保护需求并相互信任的云
服务器
、云容器、云数据库等实例提供访问策略。安全组创建后,...
赞
踩
article
web3
js
开发技术_
web3
.
js
...
web3
.
js
_
web3
.
js
web3
.
js
一、环境安装 二...
赞
踩
article
【
Verilog
】
inout
端口
信号的
使用
_
verilog
inout
...
芯片的许多外部引脚
使用
输入式来节省管脚。通常,当信号线用于双向数据传输(例如总线)时,
使用
inout
类型。也就是说,...
赞
踩
article
控制
el
-
table
的
列
显示
隐藏
_
el
-
table
设置某
列
不
显示
...
在我们的页面中
el
-
table
-column是固定的,因为现在是对现有的进行维护和迭代更新。对需要
控制
列
显示
隐藏
的页面进...
赞
踩
article
MySQL
中的内
连接
,
左
连接
,右
连接
,全
连接
,交叉
连接
等相关总结_
java
mysal
左
连接
右
连接
...
MySQL
中的内
连接
,
左
连接
,右
连接
,全
连接
,交叉
连接
等相关总结先看库表:表A,test_user:表B,test_mo...
赞
踩
相关标签
docker
数据库
oracle
python
开发语言
机器学习
AIGC
人工智能
vscode
linux
web安全
安全
网络安全
运维
渗透测试
网络
信息安全
社交电子
计算机视觉
算法
微服务
java
架构
AI工具
效率