项目设计原则

news2024/11/15 8:52:16

单一设计原则

做过管理系统项目的同学肯定都接触过用户、机构、角色管理这些模块,实现方式都是基于RBAC模型(Role-Based Access Control,基于角色的访问控制,通过分配和取消角色来完成用户权限的授予和取消,使动作主体(用户)与资源的行为(权限)分离)

优点

▪ 类的复杂性降低 实现什么职责都有清晰明确的定义

▪ 可读性提高 复杂性降低 那当然可读性提高了

▪ 可维护性提高 可读性提高 那当然更容易维护了

▪ 变更引起的风险降低 变更是必不可少的 如果接口的单一职责做得好 一个接口修改只对相应的实现类有影响 对其他的接口无影响 这对系统的扩展性 维护性都有非常大的帮助。

高内聚低耦合原则

▪ 一个功能模块内功能要联系密切

▪ 把联系不密切的功能放在不同的功能模块内

▪ 尽量减少模块间的联系

高内聚低耦合是软件工程中的概念 是判断设计好坏的标准 主要是面向对象的设计 主要是看类的内聚性是否高 耦合度是否低

耦合性与内聚性是模块独立性的两个定性标准 将软件系统划分模块时 尽量做到高内聚低耦合 提高模块的独立性 为设计高质量的软件结构奠定基础 内聚是从功能角度来度量模块内的联系 一个好的内聚模块应当恰好做一件事 它描述的是模块内的功能联系 耦合是软件结构中各模块之间相互连接的一种度量 耦合强弱取决于模块间接口的复杂程度 进入或访问一个模块的点以及通过接口的数据

粒度把控原则

控制用例的总体数量:一般来说 一个相当复杂的系统的用例数量可能在30-50个之间 如果一个系统的用例数量大大超过了这一范围 那就该看看是不是陷入了功能分解的误区

高内聚、低耦合:用例是一种结构化写作需求的技术 用例是被从现实的场景中抽象出来的
如果这些场景有紧密的联系(高内聚)那用用例技术来组织它们则可以复用这些场景中的步骤描述 从而达到事倍功半的效果

写写看:很多时候在初步规划用例模型的阶段 有时很难判断一个用例的粒度是否合适 不要执迷于一次获得一个完美的用例模型和用例粒度 不妨先得出一个初稿 然后写写用例 看看是不是符合高内聚、低耦合的原则 实际上在写用例的过程中 用例模型往往是需要不断进行调整的

避免功能分解:功能分解是正确使用用例技术的最大敌人 很多用例粒度的讨论其实都是功能分解的思想在作怪

AKF原则

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

web开发 用idea创建一个新项目

这个写着就是给自己当备忘录用的QAQ 这个老师上课一通操作啥也没看清…卑微搞了半天看样子是成功了 记录一下省的以后忘了怎么创建(? zufe lxy 2023.3 先行条件是已经自己装好了Tomcat和idea!!(我的idea是申请了教育…

MSDP实验配置

目录 配置MSDP 配置PIM SM协议 配置各PIM SM域内的静态RP 配置MSDP对等体 配置域内的MSDP对等体 AR8和AR9建立EBGP邻居 配置域间的MSDP对等体 进行实验验证 什么是MSDP MSDP(Multicast Source Discovery Protocol)组播源发现协议的简称 用来传递…

帆船结构3D线上展示教学的亮点有哪些?

由广州华锐互动开发的帆船结构3D线上展示教学系统,是一种创新的教学方式,基于虚拟现实技术,通过3D模型、交互式模拟等技术手段,可以让学生在虚拟环境中进行帆船组装和调试训练,以达到实践教学的目的。不同于传统的实践…

Python绘图

1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import numpy as np import matplotlib as mpl import matplotlib.pyplot as pltnp.random.seed(1000) y np.random.standard_normal(10) print "y %s"% y x range(len(y)) print "x%s&q…

XShell连接ubuntu20.04.LTS

1 下载XshellXShell官方下载地址打开XSHELL官方下载地址,我们可以选择【家庭和学校用户的免费许可证】,输入邮箱之后即可获得下载链接安装非常简单,跟着提示进行即可。2 连接ubuntu2.1 查看ubuntu的ip地址输入命令查看ip地址ifconfig刚开始可…

ssh 远程连接方式总结

SSH 概述 SSH(安全外壳协议 Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,用于在网络中实现客户端和服务端的连接,典型的如我们在本地电脑通过 SSH连接远程服务器,从而做开发,Wind…

SpringCloud基础(3)-微服务远程调用

SpringCloud基础1. 微服务的远程调用2. Eureka注册中心1. 搭建Eureka服务注册中心1. 微服务的远程调用 服务提供者:一次业务中被其它服务调用的一方; 服务消费者:一次业务中调用其它服务的一方; 2. Eureka注册中心 记录所有服务…

【FMCW 03】测速

从上一讲 测距 末尾的frame讲起。我们知道一个chirp对应了一个采样后的IF信号,我们将这些采样后的IF信号按chirp的次序排列成一个帧(frame),这就得到了我们实际中接收后处理的FMCW信号。 由于chirp的发射返回时间很短,…

Spark Catalyst

Spark Catalyst逻辑计划逻辑计划解析逻辑计划优化Catalyst 规则优化过程物理计划Spark PlanJoinSelection生成 Physical PlanEnsureRequirementsSpark SQL 端到端的优化流程: Catalyst 优化器 : 包含逻辑优化/物理优化Tungsten : Spark SQL的优化过程 : 逻辑计划 …

什么是以太网供电POE

POE指的是以太网供电,就是一根网线在传输网络的同时还传输设备所需的电源。我们最常见的就是通过POE交换机连接网络摄像头,网络摄像头无需的电源适配器,仅靠一根网线就能实现电源和网络的传输。POE供电一般可以到100米。POE包含两个部分&…

shp文件导入到mysql

一、下载GDAL 官网:https://gdal.org/ 进入它,选个最新的win64位。GISInternals Support SiteGISInternals Support Sitehttps://www.gisinternals.com/release.php 进去选择如图所示的包下载即可 下载后解压即可,无需安装。 测试运行ogr2…

ChatGPT  一本正经的胡说八道 那也看看原理吧

最近,ChatGPT横空出世。这款被马斯克形容为“强大到危险”的AI,不但能够与人聊天互动,还能写文章、改代码。于是,人们纷纷想让AI替自己做些什么,有人通过两分钟的提问便得到了一篇完美的论文,有人希望它能帮…

js中的回调地狱

之前遇见过一个面试题:面试官问我:’有个需求,它需要你调完一个接口后拿这个接口的响应数据去请求一个新的接口,并源源不断得去请求下一个新的接口,那么请问如何解决‘,这个问题就是典型的回调地狱问题首先…

认识Spring(下)

作者:~小明学编程 文章专栏:Spring框架 格言:热爱编程的,终将被编程所厚爱。 目录 Spring更加高效的读取和存储对象 存储bean对象 五大注解 关于五大类注解 对象的注入 属性注入 构造方法注入 Setter注入 三种注入方式的…

golang的垃圾回收详解

golang的垃圾回收详解 一、三色标记法 作为一门现代化的语言,golang与java一样,都在语言中内置了垃圾回收的功能,不需要程序员自己去回收堆内存。而垃圾回收中,最重要的两个部分就是垃圾检测算法以及垃圾回收算法。垃圾检测算法决…

《c++ primer笔记》第八章 IO库

前言 简单看一下就行 文章目录一、IO类1.1基本概念1.2管理输出缓冲二、文件输入输出2.1文件模式三、string流3.1istringstream3.2ostringstream一、IO类 1.1基本概念 ​ 我们常见的流有istream和ostream,这两个流都是有关输入和输出的,此外&#xff0c…

如何在SSMS中生成和保存估计或实际执行计划

在引擎数据库执行查询时执行的过程的步骤由称为查询计划的一组指令描述。​查询计划在SQL Server中也称为SQL Server执行计划,我们可以通过以下步骤来生成和保存估计或实际执行计划。 估计执行计划和实际执行计划是两种执行计划: 实际执行计划:当执行查询时,实际执行计划出…

Spring之实例化Bean(2)

Spring是非常复杂的一个框架,想要一篇博客就说完实例化Bean的全流程,那将注定会是是很长很长的篇博客,说实话,换做我自己是没有耐心看完的。 本章,我将会以一个最简单的例子来阐述Spring实例化Bean的过程,…

8.SpringSecurity中的核心过滤器-CsrfFilter

SpringSecurity中的核心过滤器-CsrfFilter Spring Security除了认证授权外功能外,还提供了安全防护功能。本文我们来介绍下SpringSecurity中是如何阻止CSRF攻击的。 一、什么是CSRF攻击 跨站请求伪造(英语:Cross-site request forgery&#…

uos 20 统信 fprintd 记录

uos 20 统信 fprintd 记录 sudo busctl deepin-authenticate.service /usr/lib/systemd/system/deepin-authenticate.service [Unit] DescriptionDeepin Authentication[Service] Typedbus BusNamecom.deepin.daemon.Authenticate ExecStart/usr/lib/deepin-authenticate/d…