- 博客(204)
- 收藏
- 关注
原创 软件架构之虚拟化、云计算与互联网
具体地说,就是把感应器嵌入和装备到电网、铁路、桥梁、隧道、公路、建筑、供水系统、大坝、油气管道等各种物体中,然后将物联网与现有的互联网整合起来,实现人类社会与物理系统的整合,在这个整合的网络当中,存在能力超级强大的中心计算机群,能够对整合网络内的人员、机器、设备和基础设施实施实时的管理和控制,在此基础上,人类可以以更加精细和动态的方式管理生产和生活,达到“智慧”状态,提高资源利用率和生产力水平,改善人与自然间的关系。虚拟化是一个广义的术语,对于不同的人来说可能意味着不同的东西,这要取决他们所处的环境。
2024-07-31 22:01:35
725
原创 软件工程之应用数学
数学是一种严谨、缜密的科学,学习应用数学知识,可以培养系统架构设计师的抽象思维能力和逻辑推理能力,在从事系统分析工作时思路清晰,在复杂、紊乱的现象中把握住事物的本质,根据已知和未知事物之间的联系推断事物发展趋势和可能的结果。应用数学虽然涉及的内容很多,但经常考查的知识点却往往集中于运筹方法与数据建模,所以本章将着重介绍这两个方面的内容。运筹学是近代应用数学的一个分支,主要是将生产、管理等事件中出现的一些带有普遍性的运筹问题加以提炼,然后利用数学方法进行解决。前者提供模型,后者提供理论和方法。运筹学可以根据问
2024-07-31 21:43:01
1089
原创 软件架构之标准化知识
生产、销售、进口不符合强制性标准的产品的,由法律、行政法规规定的行政主管部门依法处理,法律、行政法规未作规定的,由工商行政管理部门没收产品和违法所得,并处罚款;保障人体健康,人身、财产安全的标准和法律、行政法规规定强制执行的标准是强制性标准,其他标准是推荐性标准。上世纪 90 年代后,为了适应国内经贸发展,并与国际标准化接轨,国家标准主管部门曾多次对强制性标准的有关规定进行调整,并对已有强制性标准进行反复的清理整顿,使强制性标准的数量得到适当控制。“通过制定、发布和实施标准,达到统一”是标准化的实质。
2024-07-31 21:27:31
492
原创 软件架构之软件知识产权保护
专利法的客体是发明创造,也就是其保护的对象。合作的作品是可以分割使用的,作者对各自创作的部分可以单独享有著作权,但不能够在侵犯合作作品整体的著作权的情况下行使。计算机软件具有固定的表达形式,容易复制等特征,大多数国家将其列为版权法的保护范畴,也是知识产权保护中的一个重要方面,因此作为一个软件从业人员,一方面应该了解法规,带头维护知识产权;在有效期满之后,可以续注册,但必须在期满前 6 个月提出申请,如未在此期间提出申请的,则给予 6 个月的宽限期,在宽限期还未提出申请的,将注销其商标。
2024-07-31 09:18:52
893
原创 软件架构之系统可靠性分析与设计
与可靠性相关的概念主要有:可靠度、可用度、可维度、平均无故障时间、平均故障修复时间及平均故障间隔时间等。(1)可靠度。系统的可靠度 R(t)是指在 t=0 时系统正常的条件下,系统在时间区间[0,t] 内能正常运行的概率。(2)可用度。系统的可用度 A(t)是指系统在时刻 t 可运行的概率。(3)可维度。系统的可维度 M(t)是指系统失效后,在时间间隔内被修复的概率。(4)平均无故障时间。
2024-07-29 12:27:53
584
原创 软件架构安全性和保密性设计(3)
与此同时,当今的网络环境也变得越来越复杂,各式各样的复杂的设备,需要不断升级、补漏,系统管理员的工作不断加重,不经意的疏忽便有可能造成安全的重大隐患。事实上,管理的缺失是信息安全失败的非常重要的原因。系统管理员随意性的配置或者软件升级不及时造成的安全漏洞,使用脆弱的用户口令,随意下载使用来自网络的软件,在防火墙内部架设拨号服务器却没有对账号认证等严格限制,用户安全意识不强,将自己的账号随意转借他人或与别人共享等,这些管理上的问题无论多么高超的安全技术都不能解决,都会使信息系统处于危险之中。
2024-07-24 15:35:43
729
原创 软件架构之安全性和保密性设计(2)
计算机病毒(Computer Virus)的概念最早是由美国计算机病毒研究专家 F.Cohen 博士提出的。对于计算机病毒的定义,不同的国家、不同的专家从不同的角度给出的定义也不尽相同。根据《中华人民共和国计算机信息系统安全保护条例》第 28 条规定:“计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。”此定义在我国具有法律效力和权威性。和生物病毒一样,计算机病毒的复制能力使得计算机病毒可以很快地蔓延,又常常难以根除。
2024-07-24 14:00:15
880
原创 软件架构之安全性和保密性设计(1)
每个 CA 都定义了一定的安全策略,规范证书的操作过程。这些策略包括:CA 的命名空间、身份验证、撤销机制、法律责任和收费等。
2024-07-24 13:25:55
678
原创 软件架构之基于中间件开发
本节介绍主流的中间件产品 IBM MQSeries 和 BEA Tuxedo。IBM 公司的 MQSeries 是 IBM 的消息处理中间件。MQSeries 提供一个具有工业标准、安全、可靠的消息传输系统,它用于控制和管理一个集成的系统,使得组成这个系统的多个分支应用(模块)之间通过传递消息完成整个工作流程。MQSeries 基本由一个信息传输系统和一个应用程序接口组成,其资源是消息和队列。MQSeries 的关键功能之一是确保信息可靠传输,即使在网络通信不可靠或出现异常时也能保证信息的传输。
2024-07-16 22:13:21
878
原创 软件架构之信息基础知识(2)
企业信息化是指企业以业务流程的优化和重构为基础,在一定的深度和广度上利用计算机技术、网络技术和数据库技术,控制和集成化管理企业生产经营活动中的各种信息,实现企业内外部信息的共享和有效利用,以提高企业的经济效益和市场竞争力。如果从动态的角度来看,企业信息化就是企业应用信息技术及产品的过程,或者更确切地说,企业信息化是信息技术由局部到全局,由战术层次到战略层次向企业全面渗透,运用于流程管理、支持企业经营管理的过程。
2024-07-13 09:56:04
818
原创 软件架构之信息系统基础知识(1)
信息系统(Information System,IS)一般泛指收集、存储、处理和传播各种信息的具有完整功能的集合体。在这里,信息系统并没有强调收集、存储、处理和传播信息所用的工具。一般意义上的信息系统在任何时代、任何社会都会存在,然而,只有到了今天,信息系统的概念才被创造出来,并得到相当程度的普及,这是因为,在当今社会,信息系统总是与计算机技术和互联网技术的应用联系在一起,因此,现代的信息系统总是指以计算机为信息处理工具、以网络为信息传输手段的信息系统。
2024-07-13 09:30:48
714
原创 软件架构之开发管理
美国国防部曾于 20 世纪 70 年代中期专门针对软件项目失败的原因做了调查。调查结果显示 70%的失败软件项目都是因为管理不善引起的,而并不是事先以为的技术实力不够。到了 20 世纪 90 年代,据对美国软件工程实施现状的调查显示,大约只有 10%的项目,尤其是商用软件,能够按预先计划的费用和进度交付。因此,业界认为影响软件研发项目全局的因素是管理水平,而技术只影响局部,这就有必要从项目管理的角度去管理软件的开发和运行。加强项目管理的好处是明显的,它可以控制财务成本、提高资源利用率;改进客户关系;缩短开发
2024-07-12 20:52:40
1156
原创 软件架构之嵌入式系统设计(2)
所谓嵌入式操作系统就是指运行在嵌入式计算机系统上支持嵌入式应用程序的操作系统,是用于控制和管理嵌入式系统中的硬件和软件资源、提供系统服务的软件集合。嵌入式操作系统是嵌入式软件的一个重要组成部分。它的出现提高了嵌入式软件开发的效率,提高了应用软件的可移植性,有力地推动了嵌入式系统的发展。1.嵌入式操作系统的特点与通用操作系统相比,嵌入式操作系统主要有以下特点:(1)微型化:嵌入式操作系统的运行平台不是通用计算机,而是嵌入式计算机系统。
2024-07-11 23:23:11
1103
原创 软件架构之嵌入式系统设计
随着计算机技术、微电子技术、通信技术以及集成电路技术的发展,嵌入式技术逐渐发展和成熟起来。嵌入式系统的应用日益广泛,并 在数量上远远超越了通用计算机系统,成为了计算机技术和计算机应用领域的一个重要组成部分。本章主要讨论嵌入式系统的基本知识与嵌入式系统的开发设计两部分内容,主要包括嵌入式系统的概念、软/硬件组成与基本架构、嵌入式操作系统和嵌入式数据库系统、网络系统以及窗口系统等核心支撑软件系统的基本原理和技术,最后介绍嵌入式系统的开发设计。嵌入式系统是一种以应用为中心,以计算机技术为基础,可以适应不同应用对功
2024-07-11 22:48:38
1160
原创 软件架构之测评方法
些作业是以过程实现系统的基础构造,把问题域的分析转化为求解域的设计,分析的结果是设计阶段的输入。正确的打包/拆包、使用了错误的变量、错误的数据引用、缩放数据范围或单位错误、不正确的数据维数、不正确的下标、不正确的类型、不正确的数据范围、数据超出限制、数据溢出、不一致的数据。明的黑箱子,完全不考虑(或不了解)软件的内部结构和处理算法,它只检查软件功能是否能按照软件需求说明书的要求正常使用,软件是否能适当地接收输入数据并产生正确的输出信息,软件运行过程中能否保持外部信息(例如文件和数据库)的完整性等。
2024-07-11 22:08:48
759
原创 软件架构之设计模式概述
在 20 世纪 70 年代,Christopher Alexander 提出了城市建筑的模式,他认为:模式就是描述一个不断发生的问题和该问题的解决方案。随后,Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 写了一本著名的参考书《设计模式:可复用面向对象软件的基础》。后人也因为这本书称这四个人为四人组,将这本书中描述的模式称为 GoF(Gang of Four)设计模式。
2024-07-11 10:24:04
960
原创 软件架构之复用以及产品线、软件架构视图
软件企业将相关的构件有机地组织在一起,形成构件系统(较构件库层次更高),实施复用的软件企业通常拥有多个构件系统,有的是购置的,有的是自己开发的。现代软件系统非常复杂,通常在某个具体的时间内只需将注意力集中在某几个结构上(就像看病时,医生只是将注意力集中在某方面的人体结构上,骨科医生与心血管科医生关心不同的结构),结构是元素本身的集合,而视图则是捕获和表达结构(文档描述),虽然它们有区别,但在实际使用时则不严格区分,即从系统体系的角度说是结构,从文档角度说是视图,因此,本节将不再区分结构和视图术语。
2024-07-11 09:48:46
677
原创 软件架构之架构设计与评估
即每个模块都构成自己的小领域(专门知识或专门技术),并与其他模块的接口清晰,这样,不同的模块分到不同的开发小组中,就能减少各开发小组之间的沟通成本,而在各开发小组内部,由于是处理小领域的问题,容易建立起有效的沟通机制,如成员有这个小领域的背景。修剪这棵树,保留重要场景(不超过 50 个),再对场景按重要性给定优先级(用 H/M/L 的形式),再按场景实现的难易度来确定优先级(用 H/M/L 的形式),这样对所选定的每个场景就有一个优先级对(重要度,难易度),如(H,L)表示该场景重要且易实现。
2024-07-10 21:30:21
882
原创 软件架构之架构风格
SOA 是一种在计算环境中设计、开发、部署和管理离散逻辑单元(服务)模型的方法。SOA 并不是一个新鲜事物,而只是面向对象模型的一种替代。虽然基于 SOA 的系统并不排除使用 OOD 来构建单个服务,但是其整体设计却是面向服务的。由于 SOA 考虑到了系统内的对象,所以虽然 SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。SOA 系统原型的一个典型例子是 CORBA,它已经出现很长时间,其定义的概念与 SOA 相似。
2024-07-10 21:09:00
853
原创 软件架构之软件架构概述及质量属性
软件架构是软件抽象发展到一定阶段的产物,从编程的角度,可以清晰地看到软件抽象层次和表达工具的发展历史。20 世纪 60 年代是子程序的年代:出现了原始的软件架构,即子程序,并以程序间的调用为连接关系。20 世纪 70 年代是模块化的年代:出现了数据流分析、实体—关系图(E-R 图)、信息隐藏等工具和方法,软件的抽象层次发展到了模块级。20 世纪 80 年代是面向对象的年代:基于模块化的编程语言进一步发展成面向对象的语言,继承性地增加了一种新元素之间的连接关系。
2024-07-10 16:42:25
1146
原创 软件架构之系统分析与设计方法(2)
限于篇幅,这里只列出工作流管理联盟对于工作流的定义:“工作流是一类能够完全或者部分自动执行的经营过程,根据一系列过程规则、文档、信息或任务在不同的执行者之间传递、执行”。(1)工作流。简单地说,工作流是现实中的具体工作从开始到结束过程的抽象和概括。这个过程包括了众多因素:任务顺序、路线规则、时间时限约束等。(2)流程定义。流程定义是指对业务过程的形式化表示,它定义了过程运行中的活动和所涉及的各种信息。
2024-07-10 16:03:20
456
原创 软件架构之系统分析与设计方法(1)
软件系统的目的是为了解决问题,因此在建模之初最重要的步骤是对问题的分析与定义,并在此基础上归结模型,这样才能够获得切实有效的模型。定义问题的过程包括:理解真实世界中的问题和用户的需要,并提出满足这些需要的解决方案的过程。通过对问题进行细致周密的分析,就可以对其进行综合的定义。对于一个问题的完整定义,通常应包括目标、功能需求和非功能需求三个方面。1.目标目标是指构建系统的原因,它是最高层次的用户需求,是业务上的需要,而功能、性能需求则必须是以某种形式对该目标做出贡献。在描述目标时,应该注意以下几个方面。
2024-07-10 13:43:30
1082
原创 软件架构之系统规划
信息技术的使用者是最终客户。系统分析师应尽可能用技术手段来平衡这些彼此对立的要求,保证在项目预期投入资源可接受的范围内,尽量实现客户要求质量对应的功能和性能、发掘客户假想质量对应的功能要求并进行沟通确认,但按自身所服务企业的经营目标平衡考虑客户兴奋质量的实现策略(是努力提供兴奋质量的功能、争取忠诚的客户获得远期潜在的收益,还是削减这些功能、以便使项目的成本最小化)。对遗留系统的完全淘汰是企业资源的根本浪费,应该善于“变废为宝”,通过对遗留系统功能的理解和借鉴,可以帮助新系统的设计,降低新系统开发的风险。
2024-07-09 10:55:48
993
原创 软件架构之开发方法
软件开发方法是软件开发的方法学。自从“软件危机”爆发以来,软件研究人员就在对开发方法进行不断地研究,以期能够提高软件的质量、降低软件的成本。经过 40 多年的研究,人们提出了很多开发方法,如最初的结构化开发到现在非常流行的面向对象的开发方法等。本章将介绍软件生命周期、软件开发模型、软件重用技术、逆向工程及形式化开发方法。软件生命周期也就是软件生存的周期。同万物一样,软件也有诞生和消亡,软件生命周期就是指软件自开始构思与研发到不再使用而消亡的过程。有关软件生命周期的阶段划分,不同的标准有不同的规定。在 GB8
2024-07-08 16:05:58
951
2
原创 软件架构之系统性能评价
系统性能是一个系统提供给用户的众多性能指标的混合体。它既包括硬件性能,也包括软件性能。随着计算机技术的不断发展,有关性 能的描述也越来越细化,根据不同的应用需要产生了各种各样的性能指标,如整数运算性能、浮点运算性能、响应时间、网络带宽、稳定性、I/O 吞吐量、SPEC-Int、SPEC-Fp、TPC、Gibson mix 等。有了这些性能指标之后,如何来衡量这些性能指标呢?这就涉及了性能计算。同时用户对性能需求的多样性和广泛性也更进一步加快了计算机技术的发展,并由此出现了一个新的分支:性能设计。性能设计主要
2024-07-08 14:25:23
737
原创 软件架构之计算机网络
从古代的驿站、八百里快马,到近代的电报、电话,人类对于通信的追求从未间断,信息的处理与通信技术的革新一直伴随社会的发展。而作为 20 世纪人类最伟大、最卓越的发明——个人计算机的出现与发展,使得人们获得了以前无法想象的信息处理能力,为了将这些强大的信息处理设备连接起来,避免出现信息孤岛现象,就催生了“计算机网络”,这一新时代的通信技术。计算机网络使得其功能得到了大大的加强,范围得到了很大的扩展。从严谨的定义角度说,计算机网络是指由通信线路互相连接的许多独立自主工作的计算机构成的资源共享集合体,它是计算机技术
2024-07-08 11:36:53
2087
原创 软件架构之数据库系统(2)
数据库系统运行的基本工作单位是事务,事务相当于操作系统中的进程,是用户定义的一个数据库操作序列,这些操作序列要么全做要么全不做,是一个不可分割的工作单位。事务具有以下特性:(1)原子性(Atomicity):数据库的逻辑工作单位。(2)一致性(Consistency):使数据库从一个一致性状态变到另一个一致性状态。(3)隔离性(Isolation):不能被其他事务干扰。(4)持续性(永久性)(Durability):一旦提交,改变就是永久性的。
2024-07-07 12:32:29
594
原创 软件架构之数据库系统(1)
随着应用系统的规模越来越大,现在的系统开发大部分都是基于数据库的应用,因此,作为一名系统架构设计师,要熟练地掌握数据库系统的设计方法和技术。本章在宏观上就系统架构设计师必须要掌握的内容进行介绍,有关细节方面的知识,如果读者感兴趣,可以参考数据库专业教程。
2024-07-06 21:35:43
944
原创 软件架构之操作系统
操作系统(Operating System,OS)是计算机系统中的核心系统软件,负责管理和控制计算机系统中的硬件和软件资源,合理地组织计算机工作流程和有效地利用资源,在计算机与用户之间起接口的作用。操作系统为用户提供的接口表现形式一般为:命令、菜单、窗口之类的,而操作系统为应用程序提供的接口为 API。操作系统与硬件/软件的关系如图 2-1 所示。
2024-07-06 17:18:21
734
原创 软件架构之计算机组成与体系结构
计算机系统是一个硬件和软件的综合体,可以把它看成按功能划分的多级层次结构。硬件通常是指一切看得见,摸得到的设备实体。原始的冯•诺依曼(VonNeumann)计算机在结构上是以运算器为中心的,而发展到现在,已转向以存储器为中心了。图 1-1 所示为计算机最基本的组成框图。(1)控制器。控制器是分析和执行指令的部件,也是统一指挥并控制计算机各部件协调工作的中心部件,所依据的是机器指令。控制器的组成包含如下。① 程序计数器 PC:存储下一条要执行指令的地址;② 指令寄存器 IR:存储即将执行的指令;③ 指
2024-07-06 16:05:08
1021
原创 idea找不到或无法加载主类
今天在运行项目的时候突然出了这样一个错误:IDEA 错误 找不到或无法加载主类,相信只要是用过IDEA的朋友都遇到过它吧,但是每次遇到都是一顿焦头烂额、抓耳挠腮、急赤白咧!咋整呢?听我给你吹~瞧我这张嘴~导致此问题的原因可能不止于此,希望有不同意见的小伙伴在评论区讨(si)论(bi)!
2024-03-15 14:15:38
983
原创 解决vue项目,运行npm install安装报缺少c++库问题
一个搞后端的,说实话搞前端是真折磨人,这种感觉就跟那啥昂,你想想,后端报错最起码知道从哪入手去排错,这前端TM报个错,千篇一律,比那啥还那啥,说实话真憋屈,这辈子不会搞前端。不过经过这一天的排错,改bug,也算是有一点小收获,不管是啥bug,只要耐着性子去找,就一定能够找到解决。
2024-03-11 14:43:22
1424
原创 Java Socket:飞鸽传书的网络套接字
如今大多数基于网络的软件,如浏览器、即时通讯工具甚至是 P2P 下载都是基于 Socket 实现的,所以掌握 Java Socket 编程还是蛮有必要的。Socket 编程也比较有趣,很多初学者都会编写一两个基于“客户端-服务器端”的小程序来提高自己的编程水平,建议你也试一试。
2024-03-09 21:35:18
881
原创 计算机网络基础
计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。下面是一张简化的网络拓扑图。那什么是互联网呢?互联网是网络的网络(Internet),即把很多计算机网络连接起来,形成一个全球统一的互联网。对某个特定的计算机网络来说,它可能使用网络协议 ABC,而另一个计算机网络可能使用网络协议 XYZ。如果计算机网络各自的通讯协议不统一,就没法把不同的网络连接起来形成互联网。
2024-03-09 21:15:31
1063
原创 Java 反射详解:动态创建实例、调用方法和访问字段
要想使用反射,首先需要获得反射类的 Class 对象,每一个类,不管它最终生成了多少个对象,这些对象只会对应一个 Class 对象,这个 Class 对象是由 Java 虚拟机生成的,由它来获悉整个类的结构信息。Class 对象中包含了与类相关的很多信息,如类的名称、类的父类、类实现的接口、类的构造方法、类的方法、类的字段等等。“一般情况下,我们在使用某个类之前已经确定它到底是个什么类了,拿到手就直接可以使用 new 关键字来调用构造方法进行初始化,之后使用这个类的对象来进行操作。“默认是 15 次。
2024-03-04 21:18:49
1515
原创 解决idea里面maven项目打包部署之后,发现还是原来的本版代码
最近做项目中遇到maven打包后还是执行原来代码问题,觉得丈二和尚摸不着头脑,于是查资料解决;
2024-02-28 19:20:49
1150
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人