自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(423)
  • 资源 (4)
  • 收藏
  • 关注

原创 人工智能技术概述_3.机器学习

广义上来说,机器学习指专门研究计算机怎么模拟或实现人类的学习行为以获取新的知识或技能的学科,使计算机重新组织已有的组织结构并不断改善自身的性能。更加精确地说,一个机器学习的程序就是可以从经验数据E中对任务T进行学习的算法,它在任务T的性能度量P会随着对于经验数据E的学习而便得更好。

2024-04-24 22:07:14 341

原创 人工智能技术概述_2.人工智能关键技术

自然语言处理是计算机科学与语言学的交叉学科,也是人工智能的重要方向,研究实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理涉及的领域主要包括机器翻译(利用计算机实现从一种自然语言到另外一种自然语言的翻译)、语义理解(利用计算机理解文本篇章内容,并回答相关问题)和问答系统(让计算机像人类一样用自然语言与人交流)等。

2024-04-24 21:12:19 293

原创 人工智能技术概述_1.人工智能的概念及发展历程

强人工智能的真正能思维的智能机器,并且认为这样的机器是有知觉的和有自我意识的,这类机器可分为类人(机器的思考和推理类似人的思维)与非类人(机器产生了和人完全不一样的知觉和意识,使用和人完全不一样的推理方式)两大类。从一般意义上来说,达到人类水平的、能够自适应地应当外界环境的挑战的、具有自我意识的人工智能称为“通用人工智能”“强人工智能”或“类人智能”。人工智能的目标是了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。该领域的研究包括机器人、自然语言处理、计算机视觉和专家系统等。

2024-04-23 21:32:25 276

原创 信息物理系统技术概述_2.信息物理系统的建设和应用

目前,CPS受到工业领域的广泛关注,并已在多个环节得到应用和体现。通过对目前CPS在工业领域中的应用程度、重要性、代表性进行筛选和考量,本文选择从智能设计、智能生产、智能服务、智能应用这四个方面,结合CPS的关键特征和关键技术实现对CPS的应用场景进行阐述和说明。

2024-04-23 20:32:51 368

原创 信息物理系统技术概述_1.概念和实现

CPS通过集成先进感知、计算、通信、控制等信息技术和自动控制技术,构建了物理空间与信息空间中人、机、物、环境、信息等要素相互映射、实时交互、高效协同的复杂系统,实现系统内资源配置和运行的按需响应、快速迭代、动态优化。技术体系可以分为四大核心技术要素即“一硬”(感知和自动控制)、“一软”(工业软件)、“一网”(工业网络)、“一平台”(工业云和智能服务平台)。

2024-04-22 21:11:28 890

原创 VisualStudio2019和2022开发Winform项目用到Devexpress组件报错不能正确加载的解决办法

要了解DevExpress控件与VS和.NET各个版本的支持情况。

2024-04-22 09:47:21 396

原创 软件架构维护

软件架构是软件开发和维护过程中的一个重点制品,是软件需求和设计、实现之间的桥梁。软件架构的开发和维护是基于架构软件生命周期中的关键环节,与之相关的步骤包括导出架构需求、架构开发、架构文档化、架构分析、架构实现和架构维护。

2024-04-21 18:35:30 280

原创 大型网站系统架构演化实例_9.分布式服务

随着业务拆分越来越小,存储系统越来越庞大,应用系统的整体复杂度呈指数级增加,部署维护越来越困难。由于所有应用要和所有数据库系统连接,在数万台服务器规模的网站中,这些连接的数目是服务器规模的平方,导致数据库连接资源不足,拒绝服务。既然每一个应用系统都需要执行许多相同的业务操作,比如用户管理、商品管理等,那么可以将这些共用的业务提取出来,独立部署。由这些可复用的业务连接数据库,提供共用业务服务,而应用系统只需要管理用户界面,通过分布式服务调用共用业务服务完成具体业务操作。此时,网站系统架构如图1所示。

2024-04-21 08:41:09 769

原创 大型网站系统架构演化实例_8.业务拆分

大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线。如大型购物交易网站都会将首页、商铺、订单、买家、卖家等拆分成不同的产品线,分归不同的业务团队负责。具体到技术上,也会根据产品线划分,将一个网站拆分成许多不同的应用,每个应用独立部署。应用之间可以通过一个超链接建立关系(在首页上的导航链接每个都指向不同的应用地址),也可以通过消息队列进行数据分发,当然最多的还是通过访问一个数据存储系统来构成一个关联的完整系统。此时,网站系统架构如图1所示。图1 第九阶段网站架构。

2024-04-21 07:27:58 412

原创 大型网站系统架构演化实例_7.使用NoSQL和搜索引擎

随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。NoSQL和搜索引擎都是源自互联网的技术手段,对可伸缩的分布式特性具有更好的支持。应用服务器则通过一个统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。

2024-04-20 09:04:17 970

原创 大型网站系统架构演化实例_6.使用分布式文件系统和分布式数据库系统

任何强大的单一服务器都满足不了大型网站持续增长的业务需求。数据库经过读写分离后,从一台服务器拆分成两台服务器,但是随着网站业务的发展依然不能满足需求,这时需要使用分布式数据库。文件系统也一样,需要使用分布式文件系统。分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常庞大的时候才使用。不到不得已时,网站更常用的数据库拆分手段上业务分库,将不同业务的数据部署在不同的物理服务器上。此时,网站系统架构如图1所示。图1 第七阶段网站架构。

2024-04-20 07:43:27 486

原创 大型网站系统架构演化实例_5.使用反向代理和CDN加速网站响应

随着网站业务不断发展,用户规模越来越大,由于区域的差别使得网络环境异常复杂,不同地区的用户访问网站时,速度差别也极大。有研究表明,网站访问延迟和用户流失率正相关,网站访问越慢,用户越容易失去耐心而离开。为了提供更好的用户体验,留住用户,网站需要加速网站访问速度。主要手段有使用CDN和反向代理。CDN和反向代理的基本原理都是缓存。使用CDN和反向代理的目的都是尽早返回数据给用户,一方面加快用户访问速度,另一方面也减轻后端服务器的负载压力。

2024-04-19 22:48:29 362

原创 大型网站系统架构演化实例_4.数据库读写分离

网站在使用缓存后,使对大部分数据读操作访问都可以不通过数据库就能完成,但是仍有一部分操作(缓存访问不命中、缓存过期)和全部的写操作都需要访问数据库,在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。网站利用数据库的这一功能,实现数据库读写分离,从而改善数据库负载压力。

2024-04-19 21:47:46 401

原创 大型网站系统架构演化实例_3.使用服务集群改善网站并发处理能力

使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时,不要企图去更换更强大的服务器,对大型网站而言,不管多么强大的服务器,对大型网站而言,不管多强大的服务器,都满足不了网站持续增长的业务需求。这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问及存储压力。对网站架构而言,只要能通过增加一台服务器的方式改善负载压力,就可以以同样的方式持续增加服务器不断改善系统性能,从而实现系统的可伸缩性。应用服务器实现集群是网站可伸缩架构设计中较为简单成熟的一种。

2024-04-18 22:13:49 479

原创 大型网站系统架构演化实例_2.使用缓存改善网站性能

网站访问的特点和现实世界的财富分配一样遵循二八定律:80%的业务访问集中在20%的数据上。既然大部分业务访问集中在一小部分数据上,那么如果把这一小部分数据缓存在内存中,就可以减少数据库的访问压力,提高整个网站的数据访问速度,改善数据库的写入性能了。网站使用的缓存可以分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存。本地缓存的访问速度更快一些,但是受应用服务器内存限制,其缓存数据量有限,而且会出现和应用程序争用内存的情况。远程分布式缓存。

2024-04-18 21:36:48 327

原创 大型网站系统架构演化实例_1.单体架构和垂直架构

大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得很棘手。通常大型网站架构主要解决这类问题。

2024-04-17 21:56:59 849

原创 软件架构演化评估方法

根据演化过程是否已知可将评估过程分为:演化过程已知的评估和演化过程未知的评估。演化过程已知的评估其目的在于通过对架构演化过程进行度量,比较架构内部结构上的差异以及由此导致的外部质量属性上的变化,对该演化过程中相关质量属性进行评估。当演化过程未知时,我们无法像演化过程已知时那样追踪架构在演化过程中的每一步变化,只能根据架构演化前后的度量结果逆向推测出架构发生了哪些改变,并分析这些改变与架构质量属性的关联关系。

2024-04-17 20:43:34 261

原创 软件架构演化原则

以下列举了18种软件架构可持续演化原则,并针对每个原则设计了相应的度量方案。这些度量方案看似简单,但每个方案都能紧抓该原则的本质,可以做到从架构(系统的整体结构)层面提供有价值的信息,帮助对架构进行有效观察。

2024-04-16 21:38:44 609

原创 软件架构动态演化

架构的动态演化主要来自两类需求:①软件内部执行所导致的体系结构改变,例如,许多服务器端软件会在客户请求到达时创建新的组件来响应用户需求;②软件系统外部的请求对软件进行的重配置,例如,操作系统在升级时无须重新启动,在运行过程中就完成对体系结构的修改。

2024-04-16 20:32:50 434

原创 软件架构静态演化

软件架构静态演化的需求是广泛存在的,可以归结为两个方面。在架构开发和实现过程中对原有架构进行调整,保证软件实现与架构的一致性以及软件开发过程的顺利进行。软件发布之后由于运行环境的变化,需要对软件进行修改升级,在此期间软件的架构同样要进行演化。

2024-04-15 21:17:01 452

原创 软件架构演化方式的分类以及架构演化时期

将软件架构演化方式分为4类(Jeffrey M.Barnes等人的分类方法):第1类是对演化的支持,如代码模块化的准则、可维护性的指示(如内聚和耦合)、代码重构等;第3类是架构变换的形式方法,包括系统结构和行为变换的模型,以及架构演化的重现风格等;第4类是架构演化的成本收益分析,决定如何增加系统的弹性。,前者发生在软件架构的设计、实现和维护过程中,软件系统还未运行或者处在运行停止状态;分类:基于过程和函数的演化、面向对象的演化、基于组件的演化和基于架构的演化。(3)针对软件架构的演化过程。

2024-04-15 19:55:38 292 1

原创 面向对象软件架构演化过程

在顺序图中,组件的实体为对象。组件本身包含了众多的属性,如接口、类型、语义等,这些属性的演化是对象自身的演化,对于描述对象之间的交互过程并无影响。因此,会对架构设计的动态行为产生影响的演化只包括AddObject(AO)和DeleteObject(DO)两种。AO表示在顺序图中添加一个新的对象。这种演化一般是在系统需要添加新的对象来实现某种新的功能,或需要将现有对象的某个功能独立以增加架构灵活性的时候发生。DO删除顺序图中现有的一个对象。

2024-04-14 09:01:51 328

原创 软件架构演化和定义的关系

理解软件架构演化时,需要考虑具体的软件架构定义。例如,如果软件架构定义是SA={components,connectors,constraints),也就是说,软件架构包括组件(Components)、连接件(Connectors)和约束(Constraints)三大要素,这类软件架构演化主要关注的就是组件、连接件和约束的添加、修改与删除等。组件。

2024-04-13 20:50:14 331

原创 软件可靠性评价

软件可靠性评价是软件可靠性活动的重要组成部分,既适用于软件开发过程,也可针对最终软件系统。在软件开发过程中使用软件可靠性评价,可以使用软件可靠性模型,估计软件当前的可靠性,以确认是否可以终止测试并发布软件,同时还可以预计软件要达到相应的可靠性水平所需要的时间和工作量,评价提交软件时的软件可靠性水平。

2024-04-13 20:01:30 579

原创 软件可靠性测试

软件可靠性测试由可靠性目标的确定、运行剖面的开发、测试用例的设计、测试实施、测试结果的分析等主要活动组成。把可靠性测试过程进行规范化,有利于获得真实有效的数据,为最终得到客观的可靠性评价奠定基础。

2024-04-12 23:23:16 875

原创 软件可靠性设计

为了从根本上提高软件的可靠性,降低软件后期修改的成本和难度,人们提出了可靠性设计的概念。其实就是在常规的软件设计中,应用各种方法和技术,使程序设计在兼顾用户的功能和性能需求的同时,全面满足软件的可靠性要求,即采用一些技术手段,把可靠性“设计”到软件中去。软件可靠性设计技术就是以提高和保障软件的可靠性为目的,在软件设计阶段运用的一种特殊的设计技术。软件可靠性设计要遵循的原则。(1)软件可靠性设计是软件设计的一部分,必须在软件的总体设计框架中使用,并且不能与其他设计原则相冲突。

2024-04-12 21:27:58 1128

原创 软件可靠性管理

可靠性管理目前还停留在定性描述的水平上,很难用量化的指标来进行可靠性管理。怎样利用有限的可靠性投入,达到预期的可靠性目标是软件项目管理者常常要面对的难题。由于软件之间的差异较大,并且人们对可靠性的期望不同,对可靠性的投入不同,所以下面的每项活动并不是每一个软件系统的可靠性管理的必须内容,也不是软件可靠性管理的全部内容。(6)明确后续阶段的可靠性活动的详细计划。(5)明确后续阶段的可靠性活动的详细计划。(5)明确后续阶段的可靠性活动的详细计划。(7)明确后续阶段的可靠性活动的详细计划。

2024-04-11 20:43:52 477

原创 Win10安装sqlplus遇到报错的解决办法

然后到orcle官网下载了下载了一个64bit版本的sqlplus“instantclient-sqlplus-windows.x64-12.1.0.2.0.zip”安装包解压到本地, 如下图3所示。最近有用到sqlplus连接Oracle数据库执行自动化脚本,Orcle服务器版本是11.2.0.1。原来之前下的oci.dll就是32bit的客户端。所以这里的sqlplus.exe也要对应的是32bit的。解决办法:下载了一个32bit的sqlplus.exe,包含了oracle客户端的版本。

2024-04-11 13:47:03 260 1

原创 软件可靠性建模_2.软件可靠性的建模方法及模型分类

一个软件可靠性模型通常(但不是绝得)由以下几部分组成。模型是实际情况的简化或规范化,总要包含若干假设,例如测试的选取代表实际运行剖面,不同软件失效独立发生等。软件可靠性模型的输出量就是性能度量,如失效强度、残留缺陷数等。在软件可靠性模型中性能度量通常以数学表达式给出。某些可靠性度量的实际值无法直接获得,例如残留缺陷数,这时需通过一定的方法估计参数的值,从而间接确定可靠性度量的值。当然,对于可直接获得实际值的可靠性度量,就无须参数估计了。一个软件可靠性模型要求一定的输入数据,即软件可靠性数据。

2024-04-10 21:37:12 621

原创 软件可靠性建模_1.影响软件可靠性的因素

软件产品的特性指软件本身的性质,开发过程特性包括开发技术、开发工具、开发人员的水平、需求的变化频度等。影响软件可靠性的因素是纷杂而众多的,甚至包括技术以外的许多因素。结构对软件可靠性的影响主要取决于软件结构的复杂程度,一般来说,内部结构越复杂的软件,所包含的软件缺陷数就可能越多。软件可靠性的定义是相对运行环境而言的,一样的软件在不同的运行剖面下,其可靠性的表现是不一样的。软件规模也就是软件的大小,一个只有数十行代码的软件和几千、几万行代码的软件是不能相提并论的。影响软件可靠性的主要因素。

2024-04-10 20:42:57 506

原创 软件可靠性基本概念_2.目标及可靠性测试

失效严重程度类(Failure Severity Class)就是对用户具有相同程度影响的失效集合。对失效严重程度的分级可以按照不同的标准进行,最为常见的是按对成本影响、对系统能力的影响等标准划分软件失效的严重程度类。有了失效严重程度的划分,现在可以结合失效强度来定量地表示一个软件系统的可靠性目标了。可靠性目标是指客户对软件性能满意程度的期望。通常用可靠度、故障强度和平均失效时间(MTTF)等指标来描述,根据不同项目的不同需要而定。建立定量的可靠性指标需要对可靠性、交付时间和成本进行平衡。

2024-04-09 21:40:50 412

原创 软件可靠性基本概念_1.定义和定量描述

是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。规定的条件是指直接与软件运行相关的使用该软件的计算机系统的状态和软件的输入条件,或统称为软件运行时的外部输入条件;规定的时间区间是指软件的实际运行时间区间;规定功能是指为提供的服务,软件产品所必须具备的功能。

2024-04-09 21:29:23 976

原创 ATAM方法架构评估实践

用ATAM方法评估软件体系结构,其工作分为4个基本阶段,即演示、调查和分析、测试和报告ATAM。接下来分别就每个阶段的实践进行详细介绍。

2024-04-08 22:57:43 287

原创 系统架构评估_3.ATAM方法

从不同的架构角度,有3种不同类型的场景,分别是用例(包括对系统典型的使用、引出信息)、增长场景(用于涵盖那些对它的系统的修改)、探测场景(用于涵盖那些可能会对系统造成过载的极端修改)。例如,架构的描述、质量特征的分析、场景不确定性的处理、度量的应用架构分析和评价支持工具等,这些都影响和制约着分析评估技术的发展。ATAM还使用定性的启发式分析方法(Qualitative Analyse Heuristics),在对一个质量属性构造了一个精确分析模型时要进行分析,定性的启发式分析方法就是这种分析的粗粒度版本。

2024-04-08 22:20:11 716 2

原创 系统架构评估_2.SAAM方法

最初它用于比较不同软件体系的架构,以分析系统架构的可修改性,后来实践证明它也可用于其他质量属性如可移植性、可扩充性等,最终发展成了评估一个系统架构的通用方法。用一种易于理解的、合乎语法规则的架构描述软件架构,体现系统的计算构件、数据构件以及构件之间的关系(数据和控制)。SAAM指导对架构的检查,使其主要关注潜在的问题点,如需求冲突,或仅从某一参与者观点出发得出的不全面的系统设计。SAAM用于架构的最后版本,但早于详细设计。场景代表了描述架构属性的基础,描述了各种系统必须支持的活动和可能存在的状态变化。

2024-04-07 21:55:03 496 1

原创 系统架构评估_1.相关概念

系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。它利用数学或逻辑分析技术,针对系统的一致性、正确性、质量属性、规划结果等不同方面,提供描述性、预测性和指令性的分析结果。通常可以分为3类:基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式。

2024-04-07 20:57:03 482

原创 软件系统质量属性_3.质量属性场景描述

可用性质量属性场景所关注的方面包括系统故障发生的频率、出现故障时会发生什么情况、允许系统有多长是非正常运行、什么时候可以安全地出现故障、如何防止故障的发生以及发生故障时要进行哪种通知。可修改性质量属性场景主要关注系统在改变功能、质量属性时需要付出的成本和难度,可修改性质量属性场景可能发生在系统设计、编译、构建、运行等多种情况和环境下。易用性质量属性场景主要关注用户使用系统时的容易程度,包括系统的学习曲线、完成操作的效率、对系统使用过程的满意程度等。这可能是整个系统,也可能是系统的一部分。

2024-04-06 16:24:19 266

原创 软件系统质量属性_2.面向架构评估的质量属性

为了评价一个软件系统,特别是软件系统的架构,需要进行架构评估。在架构评估过程中,评估人员所关注的是系统的质量属性。评估方法所普遍关注的质量属性有:性能、可靠性、可用性、安全性、可修改性、功能性、可变性、互操作性。

2024-04-06 10:36:27 1292

原创 软件系统质量属性_1.质量属性概念

软件系统的质量就是“软件系统与明确地和隐含地定义的需求相一致的程度”。更具体地说,软件系统质量是软件与明确地叙述的功能和性能需求文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。根据GB/T 16260.1定义,从管理角度对软件系统质量进行度量,可将影响软件质量的主要因素划分为6种维度特性功能性、可靠性、易用性、效率、维护性与可移植性。其中功能性包括适合性、准确性、互操作性、依从性、安全性;可靠性包括容错性、已恢复性、成熟性;易用性包括易学性、以理解性、易操作性;

2024-04-05 22:14:13 330

原创 特定领域软件体系结构

简单地说,就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构。从功能覆盖的范围的角度有两种理解DSSA中领域的含义的方式:定义了一个特定的系统族,包含整个系统族内的多个系统,结果是在该领域中可作为系统的可行解决方案的一个通用软件体系结构。定义了在多个系统和多个系统族中功能区域的共有部分。在子系统级上涵盖多个系统族的特定部分功能。

2024-04-05 07:32:50 749

Tcpwrapper 62056-47

Tcpwrapper 62056-47 DLMS GPRS IPV4 PDF文档。37页

2016-04-04

winform开发图标

winform开发图标.可以美化你的用户界面,刚下过来,就拿出来分享了

2014-03-12

C#.NET网络核心编程

网络核心编程 .net技术 C# 多线程 异步

2014-03-12

跟我学C#程序设计

这是一本很不错的书哦!学习C#,还是要多练习哦

2013-01-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除