软考结构化开发 -- (耦合,内聚,设计原则,系统文档,数据字典)

news2025/2/27 20:50:02

文章目录

  • 一、耦合
  • 二、内聚
  • 三、设计原则
  • 四、系统文档
  • 五、数据字典


一、耦合

  1. 模块化:将一个待开发的软件分解成若干个小的简单部分–模块
  2. 模块独立
    在这里插入图片描述
  • 无直接耦合:指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。因此,模块间耦合性最弱,块独立性最高。
  • 数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中
    的值传递。
  • 标记耦合:指两个模块之间传递的是数据结构
  • 控制耦合:指一个模块调用另一个模块时,传递的是控制变量,被调用模块通过该控制变量的值有选择地执行模块内的某一功能。因此,被调用模块应具有多个功能,哪个功能起作用受调用模块控制。
  • 外部耦合:模块间通过软件之外的环境联结(如IO将模块耦合到特定的设备、格式、通信协议上)时称为外部耦合。
  • 公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。
  • 内容耦合:当一个模块直接使用另一个模块的内部数据,或通过非正常入口转入另一个模块内部时,这种模块之间的耦合称为内容耦合。
  1. 耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。耦取决于各个模块之间接口的复杂程度、调用模块的方式以及通过接口的信息类型等。

二、内聚

  1. 内聚:一个模块内部各个元素彼此结合的紧密程度的度量一个内聚程度高的模块(在理想情况下)应当只做一件事。

在这里插入图片描述

  • 偶然内聚(巧合内聚):指一个块内的各处理元素之间没有任何联系。逻辑内聚。指模块内执行若干个逻辑上相似的功能,通过参数确定该块完成哪一个
    功能。
  • 时间内聚:把需要同时执行的动作组合在一起形成的模块称为时间内聚模块。
  • 过程内聚:指一个模块完成多个任务,这些任务必须按指定的过程执行。
  • 通信内聚:指模块内的所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或者产生相同的输出数据。
  • 顺序内聚。指一个模块中的各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。
  • 功能内聚。这是最强的内聚,指模块内的所有元素共同作用完成一个功能,缺一不可。
  1. 高内聚,低耦合,提高模块的独立性

三、设计原则

  1. 分解 - 协调原则
  2. 自项向下的原则
  3. 信息隐蔽、抽象的原则
  4. 一致性原则
  5. 明确性原则。每个模块必须功能明确、接口明确,消除多重功能和无用接口。(避免病态连接,降低接口复杂度)
  6. 模块之间的耦合尽可能小,模块的内聚度尽可能高。
  7. 模块的扇入系数和扇出系数要合理。
  8. 模块的规模适当
  9. 模块的作用范围应该在其控制范围之内。

四、系统文档

  1. 文档的欠缺、文档的随意性和文档的不规范,极有可能导致原来的开发人员流动以后,系统不可维护、不可升级,变成了一个没有扩展性、没有生命力的系统。
  2. 对文档在系统开发人员、项目管理人员、系统维护人员、系统评价人员以及用户之间的多种作用:

(1)用户与系统分析人员在系统规划和系统分析阶段通过文档进行沟通。这里的文档主要包括可行性研究报告、总体规划报告、系统开发合同和系统方案说明书等。有了文档,用户就能依次对系统分析师是否正确理解了系统的需求进行评价,如不正确,可以在已有文档的基础上进行修正。
(2)系统开发人员与项目管理人员通过文档在项目期内进行沟通。这里的文档主要有系统开发计划(包括工作任务分解表、PERT图、甘特图和预算分配表等)、系统开发月报以及系统开发总结报告等项目管理文件。有了这些文档,不同阶段之间的开发人员就可以进行工作的顺利交接,同时还能降低因为人员流动带来的风险,因为接替人员可以根据文档理解前面人员的设计思路或开发思路。
(3)系统测试人员与系统开发人员通过文档进行沟通。系统测试人员可以根据系统方案说明书、系统开发合同、系统设计说明书和测试计划等文档对系统开发人员所开发的系统进行测试。系统测试人员再将评估结果撰写成系统测试报告。
(4)系统开发人员与用户在系统运行期间进行沟通。用户通过系统开发人员写的文档运行系统。这里的文档主要是用户手册和操作指南。
(5)系统开发人员与系统维护人员通过文档进行沟通。这里的文档主要有系统设计说明书和系统开发总结报告。有的开发总结报告写得很详细,分为研制报告、技术报告和技术手册3个文档,其中的技术手册记录了系统开发过程中的各种主要技术细节。这样,即使系统维护人员不是原来的开发人员,也可以在这些文档的基础上进行系统的维护与升级。
(6)用户与维修人员在运行维护期间进行沟通。用户在使用信息系统的过程中,将运行过程中的问题进行记载,形成系统运行报告和维护修改建议。系统维护人员根据维护修改建议以及系统开发人员留下的技术手册等文档对系统进行维护和升级。

五、数据字典

  1. 数据流图描述了系统的分解,但没有对图中各成分进行说明。数据字典就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。其中,对加工的描述称为“小说明”,也可以称为“加工逻辑说明”。
  2. 数据字典有以下4类条目:数据流、数据项、数据存储和基本加工。数据项是组成数据流和数据存储的最小元素。源点、终点不在系统之内,故一般不在字典中说明。
  3. 加工逻辑也称为“小说明”常用的加工逻辑描述方法有结构化语言、判定表和判定树3 种。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spring boot itext7 修改生成文档的作者、制作者、标题,并且读取相关的信息。

1、官方的example文件:iText GitHub itext-java-7.2.5\kernel\src\test\java\com\itextpdf\kernel\pdf\PdfStampingTest.java 2、修改代码: Testpublic void stamping1() throws IOException {String filename1 destinationFolder "stamping1_…

特惠电影票API接口的优势功能以及对接因素?

特惠电影票对接接口通常是指允许第三方开发者或平台通过编程方式接入电影票预订服务的API。这些接口可以提供查询电影场次、座位信息、票价、订票、支付等功能。以下是一些关键点和考虑因素,以及一些提供特惠电影票API接口的平台: 关键功能 电影场次信息…

RK3568 4G模块移远 EM05-CE

首先确保4G模块的天线是否正确安装,这一步会影响到后面测试成功与失败,购买模块时可以咨询厂家 然后就可以进行测试,首先需要关闭所有网络设备,以我的开发板为例子,确保等会使用的是4G模块的功能 ifconfig eth0 down ifconfig eth1 down ifconfig eth2 down 然后查看ifc…

java-day7

练习一:飞机票 需求: ​ 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。 ​ 按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来…

【Spring相关技术】spring进阶-自定义请求报文转对象HttpMessageConverter

文章目录 类继承体系核心类与接口说明底层调用链完整示例步骤 1: 创建自定义的HttpMessageConverter步骤 2: 配置Spring MVC使用自定义转换器步骤 3: 使用自定义转换器 相关文献 类继承体系 默认转换器即springmvc默认的转换器, 用的比较多的是以下两种,…

生信技能61 - 获取比对后BAM文件的多项基础统计指标

获取比对后BAM文件的多项基础统计指标 1. 运行实例 采用pysam库解析bam文件,将bam文件路径作为输入参数,统计输出比对的参考基因组大小、ATCGN各碱基数量/比率、GC含量、UR reads数量、平均测序深度、总reads数量等统计指标。 python bam_statistics.py -b sample.sorted.…

【Nestjs】从入门到精通(依赖注入)

NestJS 是一个基于 Node.js 的渐进式框架,构建在 Express 或 Fastify 之上,主要用于构建高效、可扩展的服务器端应用程序。它使用 TypeScript 并借鉴了 Angular 的设计理念,采用了依赖注入(IoC, Inversion of Control)…

动态网站及爬虫技术应用(题目)

/*T26:HTTP响应消息的状态代码为500时表示( ): HTTP响应消息的状态代码为500时表示服务器内部错误(Internal Server Error)。这通常意味着服务器在处理请求时遇到了意外的情况,导致无法完成该请求。这种错误可能是由于…

操作系统Lesson - 5 进程简介及进程编程模型

文章目录 什么是进程同一程序如何并发? Linux进程常用命令proc目录 PCB进程控制块PCB包含的信息两个进程间的关系 进程编程exec() 替换函数子进程的运行过程 什么是进程 进程 程序运行的过程,系统进行资源管理和调度的独立单位。 程序由两部分组成&am…

基础入门-Web应用架构搭建漏洞HTTP数据包

网站搭建 这里给一个网站搭建的视频链接,之前又搞过搭建服务器,这里就不再重做了 https://www.bilibili.com/video/BV16A4y1X7vg/?spm_id_from333.337.search-card.all.click&vd_sourcec2c3c616b3ad1faf44a9f6f30a4dbb03 值得注意的是,…

网络通信与并发编程(二)基于tcp的套接字、基于udp的套接字、粘包现象

基于tcp的套接字 文章目录 基于tcp的套接字一、套接字的工作流程二、基于tcp的套接字通信三、基于udp的套接字通信四、粘包现象 一、套接字的工作流程 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个…

学习底座架构-武汉

1 学习底座架构概述 大脑学习中心-边缘系统 一、当下教育现状 二、什么是学习底座 三、学习底座价值 七、学习底座解决问题的流程 案例:以4R注意力为例 一 注意力问题解决流程 二 注意力问题的危害 三 衡量注意力水平高低的标准 四 注意力问题4大根源 & 2大诱因…

FPGA驱动HDMI 初级篇

简介 本章节主要讲述如何通过FPGA驱动HDMI显示。 本章节框图如下: bd框图中使用了两个IP核,分别是Video Timing controller核AXI4-Stream to video out两个模块,下面先对两个模块做介绍。 Video Timing controller 配置如下: 这里由于没有使用ZYNQ PS端,…

BKD树介绍、区别与联系

简介 BKD树(全称 bushy kd-trees)是一种用于高维数据搜索的数据结构。它结合了K-D树和B树的特点,旨在提高多维空间数据的索引和查询效率。 基本概念 BKD树是一种二叉树结构,类似于K-D树,但其设计更加注重空间利用率…

10.11Python数学基础-多维随机变量及其分布

多维随机变量及其分布 1.二维随机变量及其分布 假设E是随机试验,Ω是样本空间,X、Y是Ω的两个变量;(X,Y)就叫做二维随机变量或二维随机向量。X、Y来自同一个样本空间。 联合分布函数 F ( x , y ) P ( X ≤ x , Y ≤ y ) F(x,y)P(X≤x,Y≤…

SpringBoot+XXL-JOB:高效定时任务管理

前言 在现代应用程序中,定时任务是不可或缺的一部分。Spring Boot 和 XXL-Job 为你提供了一个强大的工具组合,以简化任务调度和管理。 本文将带领你探索如何将这两者集成在一起,实现高效的定时任务管理。无论你是初学者还是有经验的开发者&…

【进阶】面向对象之接口

文章目录 为什么要有接口如何定义和使用一个接口练习 接口里面的成员特点接口和类之间的关系 为什么要有接口 接口:就是一种规则 如何定义和使用一个接口 接口用关键字interface来定义 public interface 接口名{}接口不能实例化接口和类之间是实现关系,通过imple…

集合的基础操作

1.集合中元素没有顺序,且不会重复,输入的数据若有重复则会去重 2.集合的格式为:变量名{##,##,##} 3.集合中元素的添加格式为:变量名.add(添加的元素) 4.集合中元素的取出格式(取出元素后,原集合中该元素没有了&#…

软件测试学习笔记丨Linux三剑客-grep

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32506 一、简介 1.1 grep命令 grep是一个全局查找正则表达式,并且打印结果行的命令。grep的输入是一个文件或者一个标准输入(stdin),或者是一…

JAVA多线程实现

一、方法总结 Thread类的常用方法 void setName(String name)//将此线程的名称更改为name String getName()//如果不设置名称,则线程默认名称为Thread-0或Thread-1或…就是Thread -? String Thread.currentThread().getName()//获得当前线程名称 …