什么是柔性软件体系结构?
以合理的成本和反应速度对内部或外部环境、已知和未知的变化作出有效响应的能力,它是开发者赋于软件的性质。
评价其柔性大小的量被称为软件的柔度,通过对软件的“形”与“态”的变化量和运行所需的“外部作用”的测量可以间接得到软件的柔度。
什么是软件体系结构?
程序结构指的是软件中的一个程序的模块及其相互关系;软件结构指的是组成某个或某类软件的模块及其相互关系;软件体系结构指的是:构成软件系统的元素的描述、元素之间的相互作用、元素的集成模式及模式约束,是一种结构、行为和属性的高级抽象。
什么是动态软件体系结构?和静态软件体系结构有什么区别?
动态软件体系结构是指允许在系统运行时发生更新的软件体系结构,动态体系结构在系统创建后可以动态更新。其动态性主要分为三类:交互式,动态性,结构化动态性和体系结构动态性。
静态软件体系结构缺乏表示动态更新的机制,很难用其分析、描述这样的系统,更不能用它来指导系统进行动态演化。
软件体系结构的三大基本要素?
对于大规模的,分布的,需要协作的,需要交互的,需要监测的,需要扩展的,需要演化的复杂软件系统的规划。
要素
组件(component )连接件 (connector) 配置 (configuration) 约束 (constraint)
4+1View主要特点
多视图共同表达不同涉众的观点
逻辑视图(Logical View):表示系统功能。考虑功能性需求——系统需要在给用户的服务方面应该提供的。
开发视图(Development View):表示开发分工和任务管理。考虑软件模块组织——层次分析,软件管理,重用,工具约束。
进程视图(Process View):表示系统进程,线程,分布等信息。考虑非功能性需求——并发性,性能,可扩展性。
物理视图(Physical View):表示系统物理部署情况。考虑非功能性需求——关于底层硬件(拓扑,通信)。
场景(Scenarios):用一些场景、用例来描述系统各个部分之间,以及与环境之间的交互。考虑系统一致性,有效性。
风格
描述一类体系结构
在实践中被多次设计、应用
是若干设计思想的综合
具有已经被熟知的特性,并且可以复用
决定因素
一组组件类型(数据容器、过程、对象)
一组连接件类型/交互机制(过程调用、事件)
这些组件的拓扑分布
一组对拓扑和行为的约束
一些对风格的成本和益处的非正式的描述
四种常见的嵌入式系统软件体系结构?
嵌入式系统总体体系结构可以分为四个层次:硬件层、中间件层、系统软件层和应用软件层。
软件架构和软件结构的联系?
软件架构:整个软件系统的各个模块之间的结构设计,是软件工程范畴的概念,就象设计一栋房子由几个什么样的板块组成一样。 软件体系结构:是软件编程风格范畴的一个通俗概念,比如说用C++、PoworBuild、Delphi等来进行软件设计是面向对象的编程语言体系结构,而Basic、C、Foxbase的软件体系结构特点是面向任务流程的(不是面向对象的编程语言)。
一个软件的基本结构有哪些?
软件结构包括构成系统的设计元素的描述、设计元素之间的交互、设计软件结构图元素的组合模式以及在这些模式中的约束。
一个系统由一组构件以及它们之间的交互关系组成,这种系统本身又可以成为一个更大的系统的组成元素。
软件结构图也就是为了反映软件系统中组件之间相互关系和约束的体系结构设计图,称为软件体系结构图更为合适,一般通过分层次或分时间段等方式说明体系结构的各个组成部分的组合关系。
在结构化设计方法中,软件结构图主要分为变换型软件结构图和事务型软件结构图两种。
什么是软件体系结构的可靠性?
软件体系结构可靠性 (software reliability )是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。
规定的条件是指直接与软件运行相关的使用该软件的计算机系统的状态和软件的输入条件,或统称为软件运行时的外部输入条件;规定的时间区间是指软件的实际运行时间区间;规定功能是指为提供给定的服务,软件产品所必须具备的功能。软件可靠性不但与软件存在的缺陷和(或)差错有关,而且与系统输入和系统使用有关。软件可靠性的概率度量称软件可靠度。
软件体系结构与软件设计有何关系?
软件体系结构是名词,是软件设计的思路,同时又指导具体的软件详细设计与编程。