-
2017-03-06 17:04:521 模块化
2 抽象
3 逐步求精
4 信息隐藏和局部化
5 模块独立更多相关内容 -
系统总体设计原则汇总.doc
2019-12-20 09:58:09包括:系统总体设计原则,业务应用支撑平台设计原则,共享交换区数据库设计原则,档案管理系统设计原则,总集成设计原则 ,系统及应用支撑环境设计原则,安全保障体系设计原则,应用支撑平台设计原则 ,等等数十种... -
系统总体设计原则
2018-06-20 09:10:20信息化系统总体设计原则, 1.1 系统总体设计原则 1.2 业务应用支撑平台设计原则 1.3 共享交换区数据库设计原则 -
数据库系统总体设计原则.docx
2022-05-21 15:11:01数据库系统总体设计原则 -
数据库系统总体设计原则.doc
2022-07-13 23:21:13数据库系统总体设计原则.doc -
系统总体设计原则信息化项目.doc
2022-06-11 01:59:46系统总体设计原则信息化项目.doc -
系统总体设计原则归纳.doc
2021-10-07 13:22:52系统总体设计原则归纳.doc -
系统总体设计原则(信息化项目).docx
2022-06-01 10:49:40系统总体设计原则(信息化项目).docx -
系统总体设计原则(信息化项目).pdf
2022-01-24 15:22:58系统总体设计原则(信息化项目).pdf -
系统总体设计原则[信息化项目].doc
2021-12-01 18:16:49系统总体设计原则[信息化项目].doc -
某咨询公司组织架构总体设计原则.doc
2021-09-18 19:25:37某咨询公司组织架构总体设计原则.doc -
系统总体设计原则(信息化项目).doc
2021-11-12 09:56:07系统总体设计原则(信息化项目).doc -
软件工程——总体设计与详细设计
2020-05-14 11:12:37需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。目录
需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。
一、总体设计
(一)总体设计的任务
在总体设计中有3个主要任务。
(1)将系统划分成物理元素,即程序、文件、数据库和文档等。
(2)设计软件结构,即将需求规格转换为体系结构,划分出程序的模块组成、模块间的相互关系。确定系统的数据结构、文件结构、数据库模式,确定测试方法与策略。
(3)编写总体设计说明书、用户手册、测试计划,用结构图来描述软件结构,选择分解功能与划分模块的设计原则。
(二)总体设计的概念
模块:又称构件,是指能够单独命名并独立完成一定功能的程序语句的集合。
抽象:即 抽出事物的本质特性而暂时不考虑它们的细节
信息隐蔽:每一个模块的实现细节对于其他模块来说是隐蔽的,也就是说 模块中所包含的信息不允许其他不需要这些信息的模块调用。
模块的独立性:模块独立性的概念是模块化、抽象和信息隐蔽的直接结果。
模块的独立性可以用两个定性标准度量:耦合和内聚。
低 ————
耦合性
———→ 高
非直接耦合
数据耦合
标记耦合
控制耦合
外部耦合
公共耦合
内容耦合
强 ←———
模块独立性
———— 弱
高 ←————
内聚性
———— 低
功能内聚
信息内聚
通信内聚
过程内聚
时间内聚
逻辑内聚
偶然内聚
强 ←———
模块独立性
———— 弱
(三)结构设计的准则
1.提高设计准则
2.选择合适的模块规模
3.适当选择模块的深度、宽度、扇入和扇出
4. 模块的作用范围应在控制范围之内
5. 降低模块接口的复杂程度
6. 设计单入口单出口且功能可预测的模块
二、详细设计
根据“由外向里”的思想方法,概要 设计完成之后,就要进行详细设计。详细设计确定每个模块的内部特征,即每个模块内部 的执行过程
(一)详细设计的原则
(1) 由于详细设计的蓝图是给其他人看的,所以模块的逻辑描述要清晰易读、正确可靠,这样别人才能读懂。这也是常说的清晰第一的设计风格。
(2) 采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提高程序的可 读性、可测试性、可维护性。其基本内容归纳为如下几点:
① 程序语言中应尽量少用GOTO语句,以确保程序结构的独立性。
② 使用单入口单出口的控制结构,确保程序的静态结构与动态执行情况相一致,保证 程序易理解。
③ 程序的控制结构一般采用顺序、选择、循环三种结构,确保结构简单。
④ 用自顶向下逐步求精方法完成程序设计。
⑤ 经典的控制结构有顺序、IF THEN ELSE分支、DO-WHILE循环。扩展的还有多分支CASE、DO-UNTIL循环结构、固定次数循环DO-WHILE。
(二)详细设计的工具
1.传统程序流程图
2.N-S图
3.PAD图
三、总体设计、详细设计文档的重要性
在总体设计阶段设计人员完成的主要文档是总体设计说明书,详细设计阶段的文档就是详细设计说明书。
在设计软件的过程中,可能涉及到很多相关人员,建立设计文档的目的是为了把设计的思想告诉其他的相关人员。只有先让别人知道你设计的思想后别人才能做相应的工作, 可读性高同样有利于维护。
-
软件工程概要设计(总体设计)说明书
2017-11-10 00:59:16软件工程设计中在总体设计这一步所使用的文档模板。。。。 -
网络设计原则
2021-04-30 11:56:36第二章 网络设计原则 我们在进行网络设计时,本着以下几点进行设计: (1)高性能 随着业务的增加和计算机技术的发展,接入局域网的用户将越来越多,终端和工作站的处理能力越来越强,以及图形图像和多媒体的应用...第二章 网络设计原则
我们在进行网络设计时,本着以下几点进行设计:
(1)高性能
随着业务的增加和计算机技术的发展,接入局域网的用户将越来越多,终端和工作站的处理能力越来越强,以及图形图像和多媒体的应用越来越广泛,要求每个用户实际可用带宽很高才能使网络通信流畅,网络将成为提供多种业务的统一网络平台,并应该为不同的业务提供服务质量保证(QoS)。因此,设计方案时充分了考虑将来业务量的增大,保证当前及今后一定时期内网络的高效与通畅。
(2)可扩展性
网络要能满足用户当前需求以及将来需求的增长、新技术发展等变化。因此在保护原有的投资同时,要保证用户数的增加,以及用户随时随地增加设备、增加网络功能等。随着应用规模的发展,系统能灵活方便地进行硬件或软件系统的扩展和升级。
在网络设计时应考虑到网络在未来几年中的发展,使得网络的扩展可以在现有网络的基础上通过简单的增加设备和提高电路带宽的方法来解决,以适应不断增长的业务需求,保护本次网络建设的投资。
(3)可靠性和安全性
网络的可靠性是网络设计中需要考虑的一个主要原则。作为信息系统应用的依赖和基础,要求系统连续安全可靠地运行,所以在系统结构设计中选用高可靠性网络产品,合理设计网络架构,尽可能利用成熟技术,网络关键部分要制定可靠的网络备份策略,对于重要的网络节点应采用先进可靠的容错技术,以保证网络系统具有故障自愈的能力,最大限度地支持专网内各业务系统的正常运行。
安全性:通过VPN网络、内外网隔离、加密、防火墙等技术。
(4)标准开放性
支持国际上通用标准的网络协议、国际标准的大型的动态路由协议等开放协议,有利于保证与其它网络(如资源数据库、金融网络)之间平滑连接互通,以及将来网络的扩展。
(5)可管理性及易维护性
对网络实行集中监测、分权管理,并统一分配带宽资源。选用先进的网络管理平台,具有对设备、端口等的管理、流量统计分析,及可提供故障自动报警。
兵团电子政务外网在方案设计和设备选型中将预留接口,保证与新疆自治区在骨干层面(兵团级-师(市)级)的网络互联互通。
6)对业务流量模型变化的适应性
未来网络中的业务流量模型将会业务的发展而不断发生变化。因此在进行网络设计时应该考虑网络结构对未来业务流量模型的变化的适应性,可以根据流量的变化方便的进行调整。
7)网络管理的复杂程度
鉴于IP网络越来越大,未来的网络管理的工作量也会变的越来越大和复杂。因此在网络设计应该考虑网络管理的因素,使得故障定位和流量调整的难度和复杂性降低。
8)流量的负载分担
整个网络的设计,必须具有多路由选择、路由迂回、路由备份的能力,以防止因单路由或单节点的损坏而造成全网或非损坏节点的中断。同时,网络禁止出现路由循环、路由不被利用或很少利用的情况,尽可能地做到负载分担。
9)对新业务的支持程度
随着传输技术的不断发展,以及基于IP的业务种类的增加,采用IP 网络技术建立支持多种业务的统一网络平台已经成为一种经济的,高效率的做法。
网络将成为提供多种业务的统一网络平台,在网络设计时应该是网络结构能够适合今后城域网可能提供的新业务。
-
电子商务平台总体结构设计原则与技术路线.pdf
2022-06-11 06:48:07电子商务平台总体结构设计原则与技术路线.pdf电子商务平台总体结构设计原则与技术路线.pdf电子商务平台总体结构设计原则与技术路线.pdf电子商务平台总体结构设计原则与技术路线.pdf电子商务平台总体结构设计原则与... -
电子商务平台总体结构设计原则与技术路线.docx
2022-06-14 05:48:48电子商务平台总体结构设计原则与技术路线.docx电子商务平台总体结构设计原则与技术路线.docx电子商务平台总体结构设计原则与技术路线.docx电子商务平台总体结构设计原则与技术路线.docx电子商务平台总体结构设计原则... -
电子商务平台总体结构设计原则.doc
2022-07-11 10:09:26电子商务平台总体结构设计原则.doc -
微服务的设计原则
2019-05-30 20:01:16一 前言 ...那么关于微服务的设计原则有哪些呢?如下: AKF 拆分原则 前后端分离原则 无状态服务 RestFul 的通信风格 二AKF 拆分原则 有句挺流行的话:没有什么事是一顿烧烤解决不了的,如果...一 前言
微服务是一种架构风格。一个大型的复杂软件应用,由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好的完成该任务。那么关于微服务的设计原则有哪些呢?如下:
- AKF 拆分原则
- 前后端分离原则
- 无状态服务
- RestFul 的通信风格
二 AKF 拆分原则
有句挺流行的话:没有什么事是一顿烧烤解决不了的,如果有,那就两顿....。这跟我们之前设计可扩展的系统架构的理念很相像,
通过加机器就可以解决容量和可用性问题 。( 如果一台不行那就两台) 。这个理念在当前也得到了广泛的认可!对于一个规模迅速增长的系统而言,容量和性能问题当然是首当其冲的。但是随着现在业务的更迭不穷以及功能模块的不断拓展,许多系统在设计的时候并没有充分考虑到这一点,所以如果架构重设,必然会导致财力跟人力的浪费。对此,《可扩展的艺术》一书提出了一
个更加系统的可扩展模型—— AKF 可扩展立方(Scalability Cube)。这个立方体中沿着三个坐标轴设置分别为:X、Y、Z。- Y 轴(功能) —— 关注应用中功能划分,基于不同的业务拆分
- X 轴(水平扩展) —— 关注水平扩展,也就是”加机器解决问题”
- Z 轴(数据分区) —— 关注服务和数据的优先级划分,如按地域划分
2.1 Y 轴(功能)
Y 轴扩展会将庞大的整体应用拆分为多个服务。每个服务实现一组相关的功能,如订单管理、客户管理等。在工程上常见的方案是 服务化架构(SOA) 。比如对于一个电子商务平台,我们可以拆分成不同的服务,组成下面这样的架构:
但通过观察上图容易发现,当服务数量增多时,服务调用关系变得复杂。为系统添加一个新功能,要调用的服务数也变得不可控,由此引发了服务管理上的混乱。所以,一般情况下,需要采用服务注册的机制形成服务网关来进行服务治理。系统的架构将变成下图所示:
2.2 X 轴(水平扩展)
X 轴扩展与我们前面朴素理念是一致的,通过绝对平等地复制服务与数据,以解决容量和可用性的问题。其实就是将微服务运行多个实例,做集群加负载均衡的模式。为了提升单个服务的可用性和容量, 对每一个服务进行 X 轴扩展划分
2.3 Z 轴( 数据分区)
Z 轴扩展通常是指基于请求者或用户独特的需求,进行系统划分,并使得划分出来的子系统是相互隔离但又是完整的。以生产汽车的工厂来举例:福特公司为了发展在中国的业务,或者利用中国的廉价劳动力,在中国建立一个完整的子工厂,与美国工厂一样,负责完整的汽车生产。这就是一种 Z 轴扩展。
工程领域常见的 Z 轴扩展有以下两种方案:
1.单元化架构
在分布式服务设计领域,一个单元(Cell)就是满足某个分区所有业务操作的自包含闭环。如上面我们说到的 Y 轴扩展的 SOA 架构,客户端对服务端节点的选择一般是随机的,但是,如果在此加上 Z 轴扩展,那服务节点的选择将不再是随机的了,而是每个单元自成一体。如下图:
2 数据分区
为了性能数据安全上的考虑,我们将一个完整的数据集按一定的维度划分出不同的子集。 一个分区(Shard),就是是整体数据集的一个子集。比如用尾号来划分用户,那同样尾号的那部分用户就可以认为是一个分区。数据分区为一般包括以下几种数据划分的方式:
数据类型(如:业务类型)
数据范围(如:时间段,用户 ID)
数据热度(如:用户活跃度,商品热度)
按读写分(如:商品描述,商品库存)举个例子:比如美团,滴滴遍布全国,各个城市的业务进展不太一样,所以可以根据城市来进行数据分区。
三 前后端分离原则
这个我们应该很常见,前端做前端的事情,后端做后端的业务模块,分工更加明确。
那么前后段分离有什么好处呢?
这种分离方式有几个好处:
- 前后端技术分离,可以由各自的专家来对各自的领域进行优化,这样前段的用户体验优化效果更好。
- 分离模式下,前后端交互界面更清晰,就剩下了接口模型,后端的接口简洁明了,更容易维护。
- 前端多渠道集成场景更容易实现,后端服务无需变更,采用统一的数据和模型,可以支持多个前端:例如:微信 h5 前端、PC 前端、安卓前端、IOS 前端。
四 无状态服务
什么是状态?
如果一个数据需要被多个服务共享,才能完成一笔交易,那么这个数据被称为状态。进而依赖这个“状态”数据的服务被称为有状态服务,反之称为无状态服务。更好的说明见下图:
场景说明:例如我们以前在本地内存中建立的数据缓存、Session 缓存,到现在的微服务架构中就应该把这些数据迁移到分布式缓存中存储,让业务服务变成一个无状态的计算节点。迁移后,就可以做到按需动态伸缩,微服务应用在运行时动态增删节点,就不再需要考虑缓存数据如何同步的问题。这样对于业务的拓展起到了至关重要的作用
五 RestFul通讯风格
作为一个原则来讲本来应该是个“无状态通信原则”,在这里我们直接推荐一个实践优选的 Restful 通信风格 ,因为他有很多好处:
- 无状态协议 HTTP,具备先天优势,扩展能力很强。例如需要安全加密,有现成的成熟方案 HTTPS 即可。
- JSON 报文序列化,轻量简单,人与机器均可读,学习成本低,搜索引擎友好。
- 语言无关,各大热门语言都提供成熟的 Restful API 框架,相对其他的一些RPC 框架生态更完善。
-
总结的几个Python函数方法设计原则
2020-12-23 18:51:54高内聚、低耦合则是任何语言函数设计的总体原则。 1.如何将任务分解成更有针对性的函数从而导致了聚合性 2.如何设计函数间的通信则又涉及到耦合性 3.如何设计函数的大小用以加强其聚合性及降低其耦合性 【聚合】 每...