精华内容
下载资源
问答
  • 软件体系结构建模

    千次阅读 2017-09-19 08:48:06
    软件体系结构建模的种类: ◎ 结构模型 ◎ 框架模型 ◎ 动态模型 ◎ 过程模型 ◎ 功能模型 4+1模型 : 逻辑视图 进程视图 物理视图 开发视图 场景视图 逻辑视图和开发视图描述系统的静态结构,而进程视图和...

    软件体系结构建模的种类:
    ◎ 结构模型
    ◎ 框架模型
    ◎ 动态模型
    ◎ 过程模型
    ◎ 功能模型

    4+1模型 :

    • 逻辑视图
    • 进程视图
    • 物理视图
    • 开发视图
    • 场景视图

    逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。
    对于不同的软件系统来说,侧重的角度也有所不同。

    软件体系结构的生命周期模型:

    Created with Raphaël 2.1.0需求分析 建立体系结构设计实现测试
    展开全文
  •  本书是一本关于oracle database 9i、10g 和11g 数据库体系结构的权威图书,涵盖了所有重要的oracle 体系结构特性,包括文件、内存结构和进程,锁和闩,事务、并发和多版本,表和索引,数据类型,分区和并行,以及...
  • 涵盖了所有最重要的Oracle体系结构特性,包括文件、内存结构和进程,锁和闩,事务、并发和多版本,表和索引,数据类型,以及分区和并行,并利用具体的例子来充分介绍每个特性,不仅讨论了各个特性是什么,还说明了它...
  • 这些体系结构的支柱包括设计的静态元素(关键数据结构和类层次结构的设计)以及设计的动态特性,即代码在实践中的实际执行方式。 我经常发现,随着时间的流逝,动态特性很难维护。 静态组件本质上更易于理解和描述...

    一些Microsoft Office案例研究

    演化成熟的复杂产品的一个关键挑战是随着新功能的添加,随着时间的推移保持核心架构支柱。 这些体系结构的支柱包括设计的静态元素(关键数据结构和类层次结构的设计)以及设计的动态特性,即代码在实践中的实际执行方式。 我经常发现,随着时间的流逝,动态特性很难维护。

    静态组件本质上更易于理解和描述。 您可以查看代码并了解数据结构和用于修改它们的算法。 对于动态特性,您需要查看并了解运行时行为。 在某些情况下,团队会努力设计软件,以确保在进行新开发时不会使运行时行为约束无效。 例如,随着时间的推移,Microsoft Office开始越来越频繁地使用的一种方法是使用线程边界和异步编码模式来严格分离组件。 这些线程设计仍然具有复杂的运行时特性,例如资源管理和拥塞控制,但这些异步技术有助于使运行时设计更加明确和易于维护。

    或者,许多产品都使用了诸如空闲时间工作的分块之类的技术,这些技术往往难以维护。 在这种方法中,工作被分解为小块,可以在程序空闲时执行,通常与所有其他UI活动在同一线程上执行。 该程序执行一小部分工作,然后希望返回到处理用户输入,而没有任何可检测到的延迟。 这简化了线程协调(因为所有关键工作都发生在单个线程上),并且在线程甚至没有作为OS概念存在之前就已被使用。 这种方法所面临的挑战是,要使代码有效,程序员需要确保分块的许多微妙属性:确实需要将分块保持较小,以确保UI不会延迟,分块的成本必须较小,因此存在执行一些基本计算的开销并不合理,并且重新启动块的开销必须很小,这样程序才能真正有效地完成工作。 请注意,将块保持较小和粒度的目标通常与保持块分离的开销较小的目标直接冲突。 这些是代码的动态特性,需要代码库以更加分散的方式进行维护。

    作为一个复杂代码库的示例,Word 2016可以管理70多个空闲时间活动-所有这些都没有引入任何可检测到的UI延迟。

    显然,大多数团队还使用诸如广泛的性能基准测试之类的工程实践,以明确衡量运行时行为的一个方面。 这很重要,但在设计和实现过程中必然是下游的。 与早期的桌面应用程序相比,现代应用程序(客户端和服务)还大量使用运行时遥测。

    我有很多示例,这些示例打破了这些隐式动态假设时会出现问题。 Word中一个有趣的案例要求更改已有20多年的核心数据结构。 Word中的核心内部数据结构之一是“ plex”,它基本上是结构的可扩展数组(即,随着您插入或删除新元素,该数组会增长或收缩)。 该数据结构的实现使用一种通用方法,其中分配的大小可能大于实际使用的大小。 实际上,在数组末尾保留了空白空间,因此可以以非常便宜的价格在末尾插入(或删除)新元素(包括将需要重新分配新数组并复制现有元素(如果已分配的话)复制的摊余成本在内)超出大小)。 将数组随机删除或插入到数组中是相对昂贵的操作-O(N),因为需要复制元素以压缩开放插槽或为新插槽腾出空间。 Word的核心行为是这种操作不必经常发生。 特别是,加载文档以批量或线性方式填充了各种plex数据结构,并且在文档的一个位置上具有较高局部性进行编辑并不需要进行重大调整。

    添加HTML加载后,动态用法发生了变化。 最初加载了文档,然后对文档进行了进一步遍历,结果导致在描述格式的各种plex结构中发生了许多插入和删除操作。 实际上,您有一个O(N)算法被执行了O(N)次-或O(N²)运行行为。 最初错过了这个问题,因为对于相对简单的HTML,N很小。 随着Word开始处理更复杂的HTML文档(尤其是在Outlook的HTML邮件组件的上下文中),N变得越来越大,性能也因此受到影响。

    我有一个直觉,即空缓冲区可以更好地解决动态使用模式。 我之前已经写过间隙缓冲区,但简要地讲,它是可扩展数组的另一种实现,它允许在数组中的任何位置出现空白空间,并且如果访问模式表现出良好的局部性,则支持在数组中的任何位置进行廉价的插入和删除操作。 在完成工作之前(实际上是其他人完成了最后的实现),我在plex数据结构中添加了遥测功能,并验证了实际上访问模式具有很高的局部性。 我们将plex转换为间隙数据结构。 它的动态用法仍然有非常隐含的约束,但是可以更好地处理更广泛的动态模式,包括Word的HTML加载代码所使用的模式。

    文档应用程序中的另一种常见架构模式是设计算法,该算法相对于用户编辑操作的成本而言是递增的,而不是根据整个文档的大小进行缩放。 应用程序设计人员努力工作以确保他们限制处理,因此当用户进行少量编辑时,他们只会做少量工作。 这是保持良好响应能力的关键,对于整体功耗和电池寿命也很重要。

    Excel中的一个示例是在任意编辑后如何确定在屏幕上绘制的内容。 它从一个已知的左上角单元格开始,然后可以逐步遍历列宽和行高,直到屏幕被填满。 该算法根据屏幕的大小(边界良好)缩放,而不是根据工作簿的大小(可能很大)缩放。

    将Office Art形状添加到Excel中增加了一种扭曲。 形状固定到特定的单元格,但是可以从该单元格位置应用任意偏移。 其结果是,在任意用户编辑之后,Excel确实需要检查锚定在工作表中任何位置的每个单个形状的位置,以确定它是否与当前视口重叠。 这违反了视图构建过程的基本增量,因为该工作随用户内容的大小而缩放。 在实际使用中,形状的数量往往很少,因此可以(通常)快速计算出形状。 但实际上,从根本上违反了动态建筑设计。 随着时间的流逝,出现了用例,这些用例涉及具有大量Office Art形状的文档。 编辑这些文档将变得非常缓慢(即使在具有形状的区域之外操作时)。 最终,Excel需要扩展如何集成形状的设计,以确保它们具有确定视口重叠的更快增量方式。

    这也是一个有趣的案例研究,因为Office Art确实是以PowerPoint为核心设计点/模型而产生的,并且PowerPoint可以利用其强大的幻灯片边界以Excel无法提供的方法提供一定程度的增量更新。 我们经常发现,在维护动态约束时,一些最困难的挑战是在集成最初分别具有不同约束的大型组件时。

    只允许增加一定数量的过程(相对于用户输入而言)的约束特别容易受到违反。 如果一项新功能不仅仅适合现有的设计模式,那么它通常需要对核心数据结构和算法进行非平凡的扩展才能提供支持。 团队需要应对的一个常见工程模式是,设计和实现该功能的初始非增量版本,其目的是“我们将在以后再进行递增”。 由于增量设计可能是整体功能中最困难的部分,因此这很少是一个好方法。 当我们无法开发出一种经济有效的方式来实现增量更新时,我已经明确删除了“有效”的功能。

    在团队内部,需要进行的培训和学习的重要部分是确保动态约束与核心数据结构的静态设计一样被理解。 从根本上来说,动态特性很难理解和维护,因此需要付出额外的努力以确保整个团队都具有深刻的理解。 在最好的情况下,存在严格的测试(例如性能测试),这些测试专门测试动态约束是否继续得到满足。 当验证的完整性很大程度上取决于所操作的数据集的特征时,这尤其具有挑战性(如上述示例中所示)。

    From: https://hackernoon.com/maintaining-dynamic-characteristics-of-software-architecture-228820e1d727

    展开全文
  • 继面向服务计算(SOC)和面向服务体系结构(SOA)发展出一系列网络服务技术之后,新兴的云计算正在加速软件资源的服务化和虚拟化进程,云端的网络资源可以通过Web服务封装和虚拟化,从而实现基于服务的协同工作。...
  • 软件工程知识点

    2012-12-02 21:34:25
    需求规格说明书是需求分析阶段需要交付的基本文档,将成为开发者进行软件设计和用户进行软件验证的基本依据,涉及引言、术语定义、用户需求、系统体系结构、系统需求等有关软件需求及其规格的诸多描述与定义。...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    JAVA开发平台体系结构 构架是一个系统的组织结构包括: 1. 系统分解成的各个部分 2. 它们的连接性 3. 交互机制 4. 通知系统设计的向导规则 JAVA开发平台架构 构架是一个系统的组织结构包括: 1. 系统分解成的...
  • 软件需求规格说明书模板

    热门讨论 2011-10-25 12:59:10
    【说明实现本系统必须服从的设计决策,比如:开发平台,语言,体系结构,采用的类库】 需要购买的组件 【如果需要,说明需要购买的软件组件】 接口与协议 用户接口 【说明软件要实现的用户接口】 硬件接口 ...
  • 软件体系结构对于一个软件系统具有至关重要的作用,他的好坏直接决定软件能否高效的运行。 软件体系结构建模: 1、结构模型 2、框架模型 3、动态模型 4、过程模型 5、功能模型 软件体系结构的作用: 1、规范...

    体系结构是研究系统各部分组成及相互关系的技术学科。每一个建筑物都有体系结构,体系结构相当于一个系统的整天框架的草图,描述系统的骨架。同样,软件系统也有自己的体系结构。软件体系结构对于一个软件系统具有至关重要的作用,他的好坏直接决定软件能否高效的运行。

     软件体系结构建模:

    1、结构模型

    2、框架模型

    3、动态模型

    4、过程模型

    5、功能模型

    软件体系结构的作用:

    1、规范软件开发的基本框架

    2、便于开发人员与用户沟通

    3、模块化、层次化设,有利于减少返工,提高效率、

    4、便于系统开发前、后期的筹备与服务

    典型的软件体系结构风格:数据流风格,调用/返回风格,独立构件风格,虚拟机风格,仓库风格。

    转载于:https://www.cnblogs.com/miria-486/p/9174508.html

    展开全文
  • 对于传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。当前的发展是软件家族法 ,即产品线方法。多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性, 并进行关于变化的推理...
  • 这个工作不容易作好,除非应用系统有一个设计很好的体系结构; 还可能需要开发测试驱动器模块或测试套具。  累积综合测试:当一个新功能增加后,对应用系统所做的连续测试。它要求应用系统的不同形态的功能能够足够...
  • 46、下面哪个是对企业体系结构4个视角的正确说法:业务、应用、技术、信息 48、有哪些类型的Smart Client应用:/标准的WinForm程序/Microsoft Office /Internet Explore 49、异步消息通讯机制的优点是:/扩展性和...
  • 数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合中的若干关系来表示。数据的逻辑结构有两个要素:一是数据元素的集合,通常记为D;二是D上的关系,它反映了数据元素之间...
  • 本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有本质概念...
  • 本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有本质概念...
  •  本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有本质...
  • 本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有本质概念...
  • 本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有本质概念...
  •  本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有...
  •  本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有...
  •  本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有...
  •  本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有...
  • 本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有本质概念...
  • 虽然书中的多数例子都集中在今天被广泛使用的三种计算机体系结构上,但这本书也包含了很多描述过去的一些有趣和古怪的计算机体系结构的注解。通过这些真实的战例,我断定作者本人真正经历了这些事情并存活了下来给...
  • 测试覆盖率

    2011-10-28 11:16:51
     武友文接着说:“美国实际是在软件规模的扩大和结构的不断复杂的情况下,开始建立软件测试制度和规矩的。我想美国在软件开发的起步阶段,也不会自己主动去做,是在现实的压力下,才去实施这些流程规范的。国内一定...
  •  本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有本质...
  • EditPad 26610.5 本章小结 27110.6 本章习题 272第11章 设计数据库应用程序 27511.1 数据库和数据库系统 27511.1.1 数据库管理系统 27511.1.2 数据库应用程序 27711.1.3 数据库安全 27711.2 Delphi数据库体系结构 ...
  • 深入理解计算机系统(中文版)

    热门讨论 2014-03-05 22:49:05
     本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有本质...

空空如也

空空如也

1 2 3 4 5
收藏数 82
精华内容 32
关键字:

对于动态软件体系结构描述