- 博客(109)
- 资源 (1)
- 收藏
- 关注
原创 分布式数据库-分片透明、复制透明、位置透明、逻辑透明
复制透明是指采用复制技术的分布方法,用户不需要知道数据是复制到哪些节点,如何复制的。逻辑透明即局部数据模型透明,是指用户或应用程序无需知道局部场地使用的是哪种数据模型。分片透明是指用户或应用程序不需要知道逻辑上访问的表具体是怎么分块存储的。位置透明是指用户无需知道数据存放的物理位置。
2025-03-15 21:56:21
127
原创 软件工程---构件
在软件工程中,构件是一个独立的、可复用的软件单元,它具有明确的功能、接口和行为,并且可以在不同的环境中加以集成和复用。构件的概念是软件架构和组件化开发的核心思想之一,其目的是促进软件系统的模块化、可维护性和可扩展性。ORB(对象请求代理):规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的软总线。模块:模块是一组相关的函数、类、变量或代码的集合,用于将代码组织成更小的可管理单元。服务通常是独立的和可访问的,构件通常是松散耦合的和可复用的。服务通常用于面向服务的架构SOA。
2025-03-08 23:47:16
377
原创 软件架构风格
软件架构风格是描述特定领域中系统组织方式的惯用模式。它定义了一组系统家族,包括一个架构定义、一个词汇表和一组约束。软件架构风格定义了用于描述系统的术语表和一组指导构建系统的规则。进程间独立的消息传递,同步异步。批处理、管道-过滤器。
2025-03-08 21:07:45
228
原创 软件架构复用
软件架构复用是指在软件开发过程中,重新使用已有的软件架构设计、模式或组件,以提高开发效率、减少成本和保证质量的一种方法。它是软件复用的一种形式,但专注于更高层次的设计和结构。构造、获取可复用的软件资产:创建或获取可复用的代码、设计文档、测试用例等。机会复用:在开发过程中,只要发现有可复用的资产,就对其进行复用。系统复用:在开发之间进行规划,以决定哪些需要复用。缺陷消除:已识别和修复的缺陷及其对应的解决方案。过程方法和工具:开发过程、方法论和支持工具。需求:可重复使用的需求文档或需求规范。
2025-03-07 23:01:42
234
原创 特定领域软件架构DSSA
特定领域软件架构(Domain-Specific Software Architecture DSSA)是专用于解决某一特定类型任务(领域)的架构。DSSA通过结合特定问题领域的专业知识和最佳实践,优化软件系统的设计,从而提高性能、可维护性和可扩展性。建立和运行特定领域架构通常涉及三个层次的环境:领域开发环境、领域特定的应用开发环境和执行环境。领域专家:提供需求规约和实现知识,组织领域字典,选择样本系统,复审领域模型和DSSA。DSSA的三个基本活动:领域分析、领域设计、领域实现。DSSA主要实现步骤。
2025-03-07 22:41:17
244
原创 基于架构的软件开发(ABSD)
提升软件系统的可维护性和可扩展性:通过合理设计和管理软件系统的架构,ABSD可以使软件系统更易于维护和扩展,降低对软件系统的修改和更新所带来的风险。提高软件系统的质量:通过在软件开发的早期阶段关注软件体系结构,能够帮助开发者在设计阶段识别和解决潜在的架构问题,从而提高软件系统的质量。架构演化过程:需求变化归类-架构演化计划-构件变动-更新构件的相互作用-构件组装与测试-技术评审-演化后的架构。架构实现过程:复审后的文档化架构-分析与设计-构件实现-构件组装-系统测试-架构演化。
2025-03-07 22:16:44
332
原创 面向服务的架构风格
面向服务的架构(Service-Oriented Architecture,SOA)是一种软件架构设计风格,它通过将系统划分为各个相互独立的服务来实现系统的构建。在面向服务的架构中,服务是系统中的基本构建单元,每个服务都是一个独立的功能单元,可以通过网络进行通信和交互。它强调服务的粗粒度和松耦合,服务之间通过定义清晰的接口进行通信,而不设计底层编程接口和通信模型。管理服务的调用、转换、路由和消息传递。企业服务总线主要特点包括:总线作用、描述服务的元数据和服务注册管理、数据传递和转换、动态交互、高级功能。
2025-03-07 20:51:42
482
原创 质量属性场景描述
为了精确描述软件系统的质量属性,通常采用质量属性场景(Quality Attribute Scenario)作为描述质量属性的手段。质量属性场景是一个具体的质量属性需求,使利益相关者与系统的交互的简短陈述。-响应时间、成功率、吞吐量等。环境:该刺激在某些条件内发生,当激励发生时,系统可能处于过载、运行或其他情况-如正常运行时、系统过载时、维护模式下等。响应:响应是指在激励到达后系统所采取的行动-返回结果、记录日志、发送通知。刺激:当刺激到达系统时需要考虑的条件-如用户请求、系统调用、定时任务。
2025-03-06 23:41:08
205
原创 软件系统属性
它强调了系统的稳定性和可靠性,通常通过衡量系统在一段时间内发生故障的概率来评估。质量属性:软件质量属性是系统的可测量或者可测试的属性,用来描述系统满足利益相关者需求的程度。软件系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。系统在需要的时候可供使用的能力,即系统处于可操作状态的时间比例。定义:指系统的响应能力,即要经过多长时间才能对某个事件做出相应,或者在某段时间内系统所能处理的时间的个数。软件系统的属性可以从多个角度来理解和分类,包括功能性、性能、维护性、可移植性、可靠性、安全性等。
2025-03-06 22:58:40
544
原创 系统架构师----中间件技术
中间件是在分布式系统中,位于操作系统和应用程序之间的软件。它通过不同技术之间共享资源,将不同的操作系统、数据库、异构网络环境以及各种应用结合成一个有机的协同工作整体,充当桥梁的角色,使它们能够互相通信和合作,而无需深入了解对方的内部工作方式。中间件是一种软件层,位于操作系统和应用程序之间,旨在简化应用程序开发、部署和管理的复杂性。中间件的任务是使应用程序开发变得更容易,它通过提供统一的程序抽象,隐藏异构系统和分布式系统下的低级别编程复杂度,从而简化开发过程。中间件是一类软件,而非单一的软件。
2025-03-05 00:42:41
294
原创 软件工程----软件可靠性
失效概率:软件运行初始时为0,随时间增加单调递增,最终趋向于1。软件可靠性是指在规定条件下能够正常运行并达到预期功能的能力。可靠度:软件系统在规定条件和时间内不发生失效的概率。规定时间:包括自然时间、运行时间、执行时间。失效强度:单位时间内软件系统发生失效的概率。2)软件可靠性的定量描述。平均故障间隔时间MTBF。1)软硬件可靠性的区别。平均失效前时间MTTF。平均恢复前时间MTTR。
2025-03-05 00:29:00
144
原创 软件工程----软件可靠性建模与管理
通过在程序中预先有意播种一些设定的错误种子,根据测试出的原始错误数和发现的诱导错误的比例,来估计程序中残留的错误数。6)输入域分类模型:选取软件输入域中的某些样本点运行程序,根据这些样本点在实际使用环境中的失效概率及测试运行时的成功、失效率,推断软件的使用可靠性。1)软件可靠性设计定义:可靠性设计是在常规软件设计过程中,应用各种方法和技术,使程序设计在兼顾用户的功能和性能需求的同时,全面满足软件的可靠性要求。3)曲线拟合类模型:通过回归分析的方法研究软件的复杂性、程序中的缺陷数、失效率、失效时间间隔等。
2025-03-05 00:19:40
434
原创 软件工程---基于构件的软件工程
被调用的构件为调用的构件提供所需的服务。基于构件的软件工程通过使用标准化、文档化、独立且可部署的构件,提高了软件开发的效率和质量。使用信息:为了实现构件的远程分布和访问,必须给构件分配一个特定的、全局唯一的名字或句柄。根据发现的构件修改需求:根据已识别的候选构件,调整和修改系统需求,以确保需求与可用构件的功能相匹配。构件定制与适配:对已选择的构件进行必要的定制和适配,以满足系统的具体需求。构件组装是指通过直接集成构件或使用专门编写的“胶水代码”将构建整合在一起,以创建一个系统或另一个构件的过程。
2025-03-01 17:35:26
556
原创 软件工程---净室软件工程
净室软件工程是一种软件开发方法,旨在通过形式化的数据和严格的测试来提高软件的可靠性和减少缺陷的数量。这种方法强调在软件生命周期的早期阶段使用形式化方法进行规范和设计,并通过严格的验证和测试来确保软件产品的质量。增量开发:软件是按照小的、可管理的部分逐步构建的,每一部分都要经过严格的测试和验证。净室软件工程的增量开发步骤指的是什么:逐步构建软件的小部分,并进行测试和验证。在净室软件工程中,需求分析的重要性体现在哪里:直接影响软件的最终质量。统计质量控制在净室软件工程中的作用是什么:控制和评估软件的质量。
2025-03-01 16:49:42
598
原创 软件工程---软件测试
冒烟测试:开发提测后,先执行冒烟测试,旨在验证核心功能,提高开发提测质量,冒烟测试不通过则将提测版本打回。测试报告:包括冒烟测试报告、测试日报、测试完成报告等,发送给项目负责人,开发,产品团队相关人员。环境搭建:测试环境部署,包括测试环境,测试版本发布,SQL发布,各种参数配置,测试数据准备等。测试计划:根据需求分析,指定测试计划,包括测试范围、测试目标、测试进度、测试资源等。按测试方法分:黑盒测试、白盒测试、灰盒测试、自动化测试、手动测试。按测试目的分:功能测试、性能测试、安全测试、兼容性测试。
2025-03-01 16:16:06
575
原创 软件工程中的各种图
程序框图的设计是在处理流程图的基础上,通过对输出输入数据的处理过程的详细分析,将计算机的主要运行步骤和内容标识出来。层次方框图即层次模块结构图,它的基本做法就是将系统划分为若干个子系统,子系统下再划分为若干个模块,大的模块内再分小模块,而模块是指具有输入输出、逻辑功能、运行程序和内部数据四种属性的一组程序。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。后者描述某个特定模块内部的处理过程和输入、输出关系。
2025-03-01 13:34:38
377
原创 软件工程----内聚与耦合
模块的运行依赖于外部资源,外部资源的变更可能影响模块的运行。数据耦合:当一个模块通过参数传递简单的数据给另一个模块时,称为数据耦合。模块间存在较强的依赖关系,修改全局变量可能影响所有使用它的模块,降低了模块的可维护性、可重用性。模块间高度依赖,修改一个模块的内部实现可能需要需求其他模块,严重影响软件的可维护性可可重用性。控制耦合:当一个模块通过传递控制信息(如标记、开关)来影响另一个模块的执行时,称为控制耦合。顺序内聚:模块内的各个任务是顺序执行的,通常上一个任务的输出是下一个任务的输入。
2025-03-01 00:52:42
274
原创 结构化方法SASD
结构化分析方法强调系统的模块化和层次化,通过数据流程图、数据字典等工具来描述系统的数据流动和处理过程,结构化分析的模型包括功能模型,数据模型和行为模型,其中功能模型一般通过数据流图进行建模,数据模型通过实体联系图进行建模,行为模型通过状态转换图进行建模。结构化方法是一种面向功能或者说面向数据流的方法,结构化方法包括针对需求分析的结构化分析方法(SA)、针对软件设计阶段的结构化设计方法(SD)、针对软件开发阶段的结构化编程方法(SP)OOA的基本步骤为:确定对象和类、确定结构、确定主题、确定属性、确定方法。
2025-02-28 23:06:02
426
原创 软件工程---需求工程
需求验证:以上述前景文档、分析模型、需求规约等需求文档为输入,通过符号执行、模型、快速原型、评审等途径,验证需求文档的正确性和可行性。需求管理:通常包括定义需求基线、划分需求优先级,以及在整个软件开发过程中进行需求实现的跟踪和需求变更评估、核准与控制。软件需求工程师发现、获取、组织、分析、编写和管理需求的系统方法,以使客户和项目组之间达成共识。需求定义:在上述分析模型的基础上形成软件需求规约SRS,作为用户和开发者之间的一个契约。需求获取:提炼、分析和审查已收集到的项目干系人的需求,建立需求分析模型。
2025-02-28 22:20:13
380
原创 软件工程----软件能力成熟度模型集成CMMI
Level2---可管理级,在管理级水平上,所有第一级的要求都已经达到,另外,软件组织在项目实施上能够遵守既定的计划与流程,有资源准备,权责到人,对项目相关实施人员进行了相应的培训,对整个流程进行检测与控制,并联合上级单位对项目与流程进行审查。Level1---初始级,在执行级水平上,软件组织对项目的目标与要做的努力很清晰,项目的目标可以实现。Level5---优化级,在优化级水平上,所有第四级的要求都已经达到,另外软件组织能够充分利用信息资料,对软件组织在项目实施的过程中可能出现的次品予以预防。
2025-02-28 21:14:04
220
原创 软件工程----4+1架构模型
在面对对象技术中,表现为对象或对象类的形式,采用抽象、封装和继承的原理。借助于类图和类模版的手段,类图用来显示一个类的集合和它们的逻辑关系:关联、使用、组合、继承等。它解决并发性、分布性、系统完整性、容错性的问题,以及逻辑视图的主要抽象如何与进程结构结合在一起,即定义逻辑视图中的各个类的具体操作是在哪一个线程中被执行。逻辑视图的风格采用面向对象的风格,其主要的设计准则是视图在整个系统中保持单一的、一致的对象模型,避免就每个场合或过程产生草率的类和机制的技术说明。构件:类、类服务、参数化类、类层次。
2025-02-28 00:35:57
728
原创 软件工程----统一过程模型RUP
业务建模(Business Modeling):理解待开发系统所在的结构及其商业运作,确保所有参与人员对待开发系统所在的机构有共同的认识,评估待开发系统对所在机构的影响。定义系统的业务模型,确定系统的范围,完成后建立目标里程碑。工作流(Workflow):When的问题:工作流描述了一个有意义的连续的活动序列,每个工作流产生一些有价值的产品,并显示了角色之间的关系。RUP蕴含了大量优秀的实践方法,如:迭代式软件开发、需求管理、基于构件的架构应用、建立可视化的软件模型、软件质量验证、软件变更控制等。
2025-02-27 22:32:14
729
原创 软件工程----敏捷模型
与瀑布模型不同,在软件测试的敏捷模型下,开发和测试操作都是同时进行的。摆脱浪费---促进学习---推迟承诺---及时交货---赋予团队全力---建立诚信---优化整个过程。短迭代是存在的,即FDD生命周期使用基本迭代和短迭代来有效地按计划完成工作,并保持大型项目的进行。域模型和功能列表是在生命周期的前两个活动中构件的,而后两个活动则获得了70%以上的工作量。定义:Scrum是一种敏捷开发方法,专注于基于团队的开发环境中的任务管理。代码审查---测试---增量开发是有益的---简单---设计---集成测试。
2025-02-26 22:28:30
688
原创 软件工程----螺旋模型
螺旋模型结合瀑布模型和增量模型的优点,最主要的特点在于加入了风险分析。它是由制定计划、风险分析、实施工程、客户评估等计划循环组成的。它最初从概念项目开始的一个螺旋,这种开发模型将风险分析作为一个单独的阶段来做,比较适合风险较大的大中型软件项目。制定计划-风险分析-实施工程-客户评估。优点:对于大型项目具有较好的风险控制。缺点:开发人员要具备风险评估的经验。
2025-02-26 00:34:34
86
原创 软件工程----增量模型(演化模型)
定义:增量模型也是一种原型化开发方法,但与快速原型模型有所不同。在快速原型模型中,原型的用户是获知用户的真正需求,一旦需求确定了,原型即被抛弃。而演化模型的开发过程,则是从初始模型逐步演化为最终软件产品的逐渐过程。也就是说,快速原型是一种抛弃式的原型化方法,而增量模型则是一种渐进式的原型化方法。优点:短时间内向用户提交可完成的有用工作产品,从而保证用户有充裕的时间学习适应产品,软件结构必须开放,能够方便向现有产品加入新构件。缺点:在软件开发的过程中,向现有产品中加入新构件是十分不便的。
2025-02-26 00:30:06
145
原创 软件工程----快速原型
定义:快速原型适合于许多需求不明确的项目。它采用了一种动态定义需求的方法,通过快速地建立起能够反映用户主要需求的软件原型,让用户在计算机上使用它,了解其概要,再根据反馈的结果进行修改,因此能够充分体现用户的参与和决策。优点:通过原型与用户交互,所以在确定需求上优于瀑布模型,通过开发圆形和演示原型对开发者和使用者了解系统都有积极作用,同时最重要的一点是有的软件原型可以成为最终产品的一部分。缺点:由于该模型开发的特点,使得它快速建立的系统结构加上连续的需求可能导致软件质量低下,原型系统的内部结构可能不好。
2025-02-26 00:23:10
241
原创 软件工程----喷泉模型
定义:喷泉模型主要用于描述面向对象的开发过程,喷泉一次体现了面向对象开发过程的迭代和无间隙特征。迭代意味着模型中的开发活动经常需要多次重复,每次重复都会增加或明确一些目标系统的性质,但却不是对先前工作结果的本质性改动。无间隐是指在开发活动(如分析、设计、编程)之间不存在明显的边界,而是允许各开发活动交叉、迭代地进行。缺点:在软件开发过程中可能随时会增加各种信息、需求和资料,需要严格管理文档,这样就造成了审核的难度逐渐增大。优点:无缝、可同步开发,提高开发效率,节省开发时间,适用于面向对象的软件开发。
2025-02-26 00:17:44
332
原创 软件工程----瀑布模型
核心是将项目开发过程划分为一系列严格线性的阶段,这些阶段按照固定的顺序依次进行,每个阶段在前一个阶段完成后才能开始。保证质量,减少返工,每个阶段都有相应的文档保留和评审,质量有保证,并在编码完成后进行严格的按需求文档进行测试,以确保质量。项目规划:项目计划,迭代规划----项目可行性研究报告,用户需求文档。软件测试:代码缺陷,报告缺陷----测试报告。软件设计:架构设计----架构设计文档。程序编码:代码开发----详细设计说明。运行维护:部署与发布----运行报告。需求分析:需求管理----需求文档。
2025-02-25 23:58:30
374
原创 常用的数据引擎及其特点
它们通过节点和边的形式表示数据之间的关系。数据仓库引擎专门用于分析和报告,它们通过多个数据源提取、转换和加载(ETL)数据,提供高效的查询能力。Apache Spark:快速的大数据处理引擎,支持批处理和流处理,具备内存计算能力,极大提高了处理速度。Google BigQuery:无服务器的数据仓库,支持实时分析,适合数据科学和大数据应用。MongoDB:文档型数据库,使用JSON样式的文档存储数据,适合快速开发和迭代。Neo4j:最流行的图数据库,支持复杂的关系查询,广泛用于社交网络和推荐系统。
2025-01-04 22:44:13
588
原创 Redis
Redis用作缓存组件时,其基于内存的读写图形,比基于磁盘读写的数据库性能要高,适合缓存高频热点的数据,来提高读性能。定义:缓存穿透是指查询一个一定不存在的数据,由于缓存中不存在该数据,每次请求都会落到数据库上,从而可能导致数据库压力过大甚至崩溃。定义:缓存击穿是指某个热点数据在缓存中过期,而因此大量并发请求访问数据,导致这些数据都落到数据库上,从而可能引起数据库压力过大。多级缓存:构件多级缓存架构,例如本地缓存+分布式缓存,即使分布式缓存出现问题,本地缓存仍能提供一定的保护。
2025-01-04 22:03:18
762
原创 系统架构师考试-ADD属性驱动的软件设计
属性驱动的软件设计(ADD)是把一组质量属性场景作为输入,利用对质量属性实现与架构设计之间的关系的了解(如体系结构风格、质量等)对软件架构进行设计的一种方法。ADD是一种定义软件体系结构的方法,方法将模块分解过程建立在软件必须满足的质量属性值上。它是一个递归的分解过程,其中每个阶段都选择体系结构模式和战术来满足一组质量属性场景,然后对功能进行分配,实例化改模式所提供的模块类型。
2025-01-02 22:55:32
152
原创 系统架构师考试-CBSD基于构件的开发方法
CBSD方法使得软件开发不再一切从头开始,开发过程主要就是构件组装的过程,维护的过程主要就是构件升级、替换、扩充的过程,其优点是提高了软件的开发效率。CBSD使得项目开发过程变为构件的组装过程,大大降低里项目的研发费用,提高了项目的可维护性,还可实现分布提交软件产品。从现有构件库中获得符合要求的构件,直接使用或作适应性修改、得到可服用的构件。CBSD方法由软件的需求分析和定义、架构设计、构件库的建立、应用软件构建、测试和发布五个阶段组成。将遗产工程中具有潜在服务价值的构件提取出来,得到可复用的构件。
2025-01-02 22:41:12
172
原创 系统架构师考试-CBSE基于构件的软件工程
其中包括将构件与构件模型基础设施集成在一起,有时还需要开发适配器来协调不匹配的构件接口,可能还需要开发额外的功能。识别候选构件:从现有构件中获得符合要求的构件、通过遗留工程得到可复用的构件、从市场上购买现成的商业构件、开发新的符合要求的构件。CBSE主要活动包括:系统需求概览、识别候选构件、根据发现的构件修改需求、体系结构设计、构件定制与适配、构件组装、创建系统。独立性:构件应该是独立的,应该可以在无其他特殊构件的情况下进行组装和部署,如确实需要其他构件提供服务,则应显式声明。
2025-01-02 22:29:24
826
原创 系统架构师考试-MDA模型驱动架构
OCL 是保证模型精确性的重要手段,被广泛用于MOF 中的4层模型中,除了描述模型约束,还可以用来定义模型转换规则。在MOF 中提出了4层模型的概念,分别是运行时层(MO)层、模型层(M1层)、元模型层(M2层)和元元模型层(M3层)MDA环境下的系统开发方式就是在开发活动中通过创建各种模型精确描述不同的问题域,并利用模型转换来驱动包括分析、设计和实现等在内的整个软件开发过程。模型驱动架构是指一种用于应用系统开发的软件设计方法,它提供了一套软件设计的指导规范,这套指导规范是用模型来表示的。
2025-01-01 23:45:29
632
原创 系统架构师考试-DSSA特定领域软件体系结构
DSSA描述在领域模型中表示的需求的解决方案,它不是单个系统的表示,而是能够适应领域中多个系统的需求的一个高层次的设计。建立领域模型后,就可以派生出满足这些被建模的领域需求的DSSA,由于领域模型中的领域需求具有一定的变化性,DSSA也要相应的具有变化性。3、定义领域特定的设计和实现需求约束:本阶段的目标是描述解空间中有差别的特定不仅要识别出约束,并且要记录约束对设计和实现决定造成的后果,还要记录对处理这些问题时产生的所有问题的讨论。这个阶段的一个主要输出是领域中的应用需要满足一系列的用户的需求。
2025-01-01 22:49:50
345
原创 系统架构师考试-ABSD基于架构的设计方法
ABSD强调由商业、质量和功能需求的组合驱动软件架构设计。使用ABSD方法,设计活动可以从项目总体功能框架明确就开始,并且设计活动的开始并不意味着需求抽取和分析活动就可以终止,而是应该与设计活动并行。ABSD是体系结构驱动,是指构成体系结构的软件构件和类的组合驱动的。ABSDM开发过程包括。
2025-01-01 17:35:21
447
原创 算法基础------快慢指针
首先设置快慢指针的起点为链表的头结点,快指针每次向前移动2步,慢指针每次向前移动1步。如果改链表为循环链表,则快指针会在不久后追上慢指针;如果是单链表,则快指针会先到达链表的末尾。快慢指针上的快慢是指移动步数的长短,也就是每次向前移动速度的快慢。比如,指定快指针每次沿着链表向前移动2步,指定慢指针每次沿着链表向前移动1步。当链表为偶数时,快指针只能到达链表的倒数第二个节点;快指针的移动速度是慢指针的2倍,所以快指针到达链表末尾时,慢指针到达链表中点。当链表为奇数时,快指针能到达链表的最后一个节点;
2024-11-09 22:46:34
260
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人