主要总结自身不会的点并记录其知识点
磁盘调度的规则中,其算法遵循:移臂找柱面,旋转找扇区,不是磁头号
数据库的内模式定义的是:存储记录的类型、存储域的表示、存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织。
外模式指用户要使用的模式,概念模式不涉及存储访问技术
依赖关系 | 例子 |
---|---|
自反律 | 若Y∈X∈U,则X→Y |
增广率 | 若X→Y,且Z∈U,则XZ→YZ |
传递率 | 若X→Y,Y→Z,则X→Z |
关于以上三条可推出下面的:
依赖关系 | 例子 |
---|---|
合并 | 若X→Y,X→Z,则X→YZ |
伪传递 | 若X→Y,WY→Z,则XW→Z |
分解 | 若X→Y,Z∈Y,则X→Z |
软件架构复用的类型包括机会复用和系统复用
消息队列是在消息的传输过程中保持消息的容器。
MQ负责两个系统之间的传递信息,这两个系统可以是异构的,处于不同硬件,不同操作系统,用不同语言编写,只需要简单配置以及简单的调用几个MQ的API就可互相通讯,不需考虑底层系统和网络的复杂性。
HTTP是80端口
HTTPS是443端口
POP3是邮件接收,110端口
SMTP是邮件发送,25端口
IMAP是交互式邮件存取,143端口
可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力
常用的度量指标主要有故障率(失效率)、平均失效等待时间、平均失效间隔时间和可靠度等。
可靠度是软件系统在规定的条件下、规定的时间内不发生失效的概率。
DCMM评估内容包括数据战略、数据治理、数据架构、数据标准、数据安全、数据质量、数据应用和数据生存周期。
一个完整的信息安全系统至少包含三类措施:技术方面的安全措施,管理方面的安全措施和相应的政策法律。
信息安全的技术措施主要有:信息加密、数字签名、数据完整性保护、身份鉴别、访问控制、数据备份和灾难恢复、网络控制技术、反病毒技术、安全审计、业务填充、路由控制机制、公证机制等。
增量式开发相比于瀑布模型的一些重要优点:
在开发过程中更容易得到用户对于已做的开发工作的反馈意见。
用户可以评价软件的现实版本,并可以看到已经实现了多少。这比让用户从软件设计文档中判断工程进度要好很多。使更快地交付和部署有用的软件到客户方变成了可能,虽然不是所有的功能都已经包含在内。
相比于瀑布模型,用户可以更早地使用软件并创造商业价值。
软件过程构架结构由四个层次组成:方针、过程、规程和第四层的标准、规范、指南、模板、Checklist等组成。
1、方针为第一层文件,它是组织标准软件的高层次的抽象描述,它反映在公司的过程改进总体方针、政策中,由公司主管副总裁批准执行。
2、过程为第二层文件,主要规定在项目开发中执行该过程时应当执行的各项活动及适用标准。过程定义文件及其相关文件制定必须符合方针的要求。
3、规程为第三层文件,是对过程某些复杂活动的具体描述。
4、标准、规范、指南、模板、Checklist、范例库等是对上级过程或规程提供细致的步骤、活动及说明的支持性文档,第四层的文件从属于上级过程。
需求抽取和分析的过程
不是需求管理
中间件是独立的系统级软件,连接操作系统层和应用程序层,将不同操作系统提供应用的接口标准化,协议统一化,屏蔽具体操作的细节,中间件一般提供如下功能:
1、通信支持。中间件为其所支持的应用软件提供平台化的运行环境,该环境屏蔽底层通信之间的接口差异,实现互操作,所以通信支持是中间件一个最基本的功能。
2、应用支持。中间件的目的就是服务上层应用,提供应用层不同服务之间的互操作机制。
3、公共服务。公共服务是对应用软件中共性功能或约束的提取。将这些共性的功能或者约束分类实现,并支持复用,作为公共服务,提供给应用程序使用。
软件配置管理工具是指支持完成配置项标识、版本控制、变化控制、审计和状态统计等任务的工具,主要有下述功能:
OMG在发布2.0修订信息需求之后,广泛听取了来自建模工具提供商、用户、学术团体、咨询机构以及其他标准化组织的26个响应者的建议,并于2000年年初发布了UML 2.0的4个组成部分的提案需求(RFP),分别是:基础结构(Infrastructure)、上层结构(Superstructure)、对象约束语言(OCL)和图交换(Diagram Interchange)的需求。
其中基础结构和上层结构构成了UML2.0提案需求的主体部分。
UML 2.0基础结构的设计目标是:定义一个元语言的核心InfrastructureLibrary,通过对此核心的复用,除了可以定义一个自展的UML元模型,也可以定义其他元模型,包括MOF和CWM(Common Warehouse Model,公共仓库模型)。
UML 2.0上层结构的设计目标是:严格地复用基础结构InfrastructureLibrary包中的构造物;提高对基于构件开发和MDA(Model Driven Architecture,模型驱动体系结构)的支持;优化构架规约的能力;增强行为图的可伸缩性、精确性、集成性等。
在UML2.0(Unified Modeling Language)中,顺序图用来描述对象之间的消息交互,其中循环、选择等复杂交互使用序列片段表示,对象之间的消息类型包括 同步消息、异步消息、返回消息、参与者创建消息、参与者销毁消息
构件的 接口是―种服务提供者对消费者的承诺,即契约(contract),用契约确保一组构件之间的行为组合。
软件源码复杂度度量方法主要有三种:代码行、Helstead方法、McCabe方法(环形复杂度)。
白盒测试中,路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,因此是一种较强的覆盖标准。
黑盒测试中,判定表最适合描述在多个逻辑条件取值的组合所构成的复杂情况下,分别要执行哪些不同的动作。
回归测试的目的是测试软件变更之后,变更部分的正确性和对变更需求的符合性,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性。
Kruchten在1995年提出了一个“4+1"的视图模型。
“4+1"视图模型从5个不同的视角来描述软件架构,每个视图只关心系统的一个侧面,5个视图结合在一起才能反映软件架构的全部内容,其思想即为关注点分离。
其中,“4"为逻辑视图、开发视图、进程视图、物理视图;“1"为场景。
ABSD方法是体系结构驱动,即指构成体系结构的商业、质量和功能需求的组合驱动的。
ABSD方法是一个自顶向下,递归细化的方法,软件系统的体系结构通过该方法得到细化,直到能产生软件构件和类。
基于规则的系统包括规则集、规则解释器、规则/数据选择器和工作内存,一般用在人工智能领域和DSS中。
软件复用过程包含:创建、复用、支持、管理4个过程。
软件质量特性包括功能性、可靠性、易用性、效率、可维护性、可移植性等6个方面,每个方面都包含若干个子特性。
最常见的质量属性分别是:可用性(Availability) 、可修改性(Modifiability) 、性能(Performance)、安全性(Security) 、可测试性(Testability)、易用性(Usability) 。
刻画质量属性的手段由六部分组成:刺激源、刺激、环境、制品、响应、响应度量;
质量属性效用树结构为:根――质量属性――属性求精(细分)—―场景(叶)
信息安全包括的要素有:
场景(scenarios)在进行体系结构评估时,一般首先要精确地得出具体的质量目标,并以之作为判定该体系结构优劣的标准。
为得出这些目标而采用的机制做场景。场景是从风险承担者的角度对与系统的交互的简短描述。在体系结构评估中,一般采用刺激(stimulus)、环境(environment)和响应(response)三方面来对场景进行描述。
5G网络的切片技术是将5G网络分割成多张虚拟网络,从而支持更多的应用。
就是将一个物理网络切割成多个虚拟的端到端的网络,每个虚拟网络之间,包括网络内的设备、接入、传输和核心网,是逻辑独立的,任何一个虚拟网络发生故障都不会影响到其它虚拟网络。在一个网络切片中,至少可分为无线网子切片、承载网子切片和核心网子切片三部分。
嵌入式实时操作系统兼具嵌入式操作系统的特点和实时操作系统的特点。
嵌入式操作系统主要有以下特点:
AI芯片的特点包括 :新型计算范式、训练和推断、大数据处理能力、数据精度高、可重构能力以及专用软件工具。
软件生命期划分为软件定义、软件开发、软件运行与维护3个阶段。没有软件测试
需求工程包括需求开发和需求管理两大类活动。
RUP:
6个核心工作流:商业建模、需求、分析和设计、实施、测试、部署
3个核心工作流:配置和变更管理、项目管理、环境
环形复杂度:条数-结点数+2 或者 菱形 + 1
也就是分叉点 + 1
ABSD方法是一个自顶向下,递归细化的方法,软件系统的体系结构通过该方法得到细化,直到能产生软件构件和类。
在特定领域架构中,垂直域关注的是与行业相关的,聚焦于行业特性的内容,而水平域关注的是各行业共性部分的内容。
场景是从风险承担者的角度对与系统的交互的简短描述。
在体系结构评估中,一般采用**刺激(stimulus)、环境(environment)和响应(response)**三方面来对场景进行描述。
敏感点是一个或多个构件(和/或构件之间的关系)的特性
每个数字证书上都会有其颁发机构的签名,我们可以通过验证CA对数字证书的签名来核实数字证书的有效性。
如果证书有效,说明此网站经过CA中心的认证,是可信的网站,所以这个动作是用来验证网站真伪的,而不能验证客户方的真伪。
Web服务器主要性能指标有最大并发连接数、响应延迟、吞吐量。
常见的 Web 服务器性能评测方法有基准性能测试、压力测试和可靠性测试 。
实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速响应。
本题考查对分布式数据库基本概念的理解。
微内核(Micro Kernel)是现代操作系统普遍采用的架构形式。它是一种能够提供必要服务的操作系统内核,被设计成在很小的内存空间内增加移植性,提供模块设计,这些必要的服务包括任务、线程、交互进程通信以及内存管理等。
而操作系统其他所有服务(含设备驱动)在用户模式下运行,可以使用户安装不同的服务接口(API)。
微内核的主要优点在于结构清晰、内核代码量少,安全性和可靠性高、可移植性强、可伸缩性、可扩展性高;
其缺点是难以进行良好的整体优化、进程间互相通信的开销大、内核功能代码不能被直接调用而带来服务的效率低。
软件文档又可分为用户文档和系统文档两类。其中,用户文档主要描述系统功能和使用方法,并不关心这些功能是怎样实现的。
建立需求基线的目的是防止需求的变化给程序架构造成重大影响。它在客户和开发者之间构筑了一个需求约定,是需求开发和需求管理之间的桥梁。
软件过程中的活动主要由软件人员来完成,软件活动主要包括软件描述、软件开发、软件有效性验证和软件演化。其中,软件描述定义了软件功能以及使用的限制。
通常可以按软件过程活动将软件工具分为软件开发工具、软件维护工具、软件管理和软件支持工具。
软件开发工具有需求分析工具、设计工具、编码与排错工具、测试工具等。
按描述需求定义的方法可将需求分析分为基于自然语言或图形描述的工具和基于形式化需求定义语言的工具。
软件设计包括四个既独立又相互联系的活动,即数据设计、软件结构设计、人机界面设计和过程设计
通过信息隐蔽可以提高软件的可修改性、可测试性和可移植性,它也是现代软件设计的一个关键性原则。
构成一个系统的构件可分为五类:
中间件提供平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。
中间件的基本功能包括:
脚本的基本结构主要有五种:
展示功能组织的静态视角能判断质量特性,展示并发行为的动态视角能判断系统行为特性。
选择的特定视角或视图也就是逻辑视图、进程视图、实现视图和配置视图。
使用逻辑视图来记录设计元素的功能和概念接口,设计元素的功能定义了它本身在系统中的角色,这些角色包括功能、性能等。
权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。因此,改变加密级别可能会对安全性和性能产生非常重要的影响。提高加密级別可以提高安全性,但可能要耗费更多的处理时间,影响系统性能。如果某个机密消息的处理有严格的时间延迟要求,则加密级别可能就会成为一个权衡点。
软件模式可以按两个准则来分类:
在不指定具体类的情况下,**Abstract Factory(抽象工厂)**模式为创建—系列相关或相互依赖的对象提供了一个接口。**Builder(构造者模式)**模式将复杂对象的构建与其表示相分离,这样相同的构造过程可以创建不同的对象。**Prototype(原型模式)**模式允许对象在不了解要创建对象的确切类以及如何创建等细节的情况下创建自定义对象。
修改权 受到永久保护
操作系统中的淘汰页面遵循:(状态位都存在,代表都在页面中,从这些页面进行筛选)
在数据库中,以安全性的角度考虑,更新数据时,通过提供存储过程让第三方调用,避免向第三方提供系统的表结构,保证系统数据安全。
TCP端口号的作用是进程寻址依据,根据端口号将报文交付给上层的某一进程。
通常用户采用评价程序来评价系统的性能。
评价程序一般有专门的测量程序、仿真程序等,而评测准确度最高的评价程序是真实程序。
在计算机性能评估中,通常将评价程序中用得最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称其为基准测试程序。
关键成功因素法通过对关键成功因素的识别,找出实现目标所需要的关键信息集合,从而确定系统开发的优先次序。
关键成功因素来源于组织的目标,通过组织的目标分解和关键成功因素识别、性能指标识别,一直到产生数据字典。
从开发风范上看,软件方法有自顶向下的开发方法、自底向上的开发方法。
在实际软件开发中,大都是自顶向下与自底向上两种方法的结合,只不过是以何者为主而已。
从工程管理角度来看,软件设计可分为概要设计和详细设计两个阶段。
软件结构化设计包括架构设计、接口设计、数据设计和过程设计等任务。
它是一种面向数据流的设计方法,是以结构化分析阶段所产生的成果为基础,进一步自顶而下、 逐步求精和模块化的过程。
基于构件的软件开发中,已有的构建分类方法可以归纳为三大类:
逆向工程过程能够导出过程的
其中,结构级包括反映程序各部分之间相关依赖关系的信息
功能级包括反映程序段功能及程序段之间关系的信息。
没有压力测试~
软件性能测试类型包括负载测试、强度测试和容量测试等。
数据流体系结构包括批处理体系结构风格和管道-过滤器体系结构风格。
虚拟机体系结构风格包括解释器体系结构风格和规则系统体系结构风格。
基于架构的软件开发模型(Architecture-BasedSoftware Design Model,ABSDM)把整个基于架构的软件过程划分为
架构需求、设计、文档化、复审、实现、演化等6个子过程。
文档是在系统演化的每一个阶段,系统设计与开发人员的通信媒介,是为验证架构设计和提炼或修改这些设计(必要时)所执行预先分析的基础。
架构文档化过程的主要输出结果是架构需求规格说明和测试架构需求的质量设计说明书这两个文档。生成需求模型构件的精确的形式化的描述,作为用户和开发者之间的一个协约。
设计模式主要用于得到简洁灵活的系统设计,按设计模式的目的划分,可分为创建型、结构型和行为型三种模式。
创建型模式是对对象实例化过程的抽象。
Singleton模式确保一个类只有一个实例,并提供了全局访问入口
Prototype模式允许对象在不了解要创建对象的确切类以及如何创建等细节的情况下创建自定义对象;
Builder模式将复杂对象的构建与其表分离。
结构型模式主要用于如何组合已有的类和对象以获得更大的结构,一般借鉴封装、代理、继承等概念将一个或多个类或对象进行组合、封装,以提供统一的外部视图或新的功能。
行为型模式主要用奢对象之间的职责及其提供的服务的分配,它不仅描述对象或类的模式,还描述它们之间的通信模式,特别是描述—组对等的对象怎样相互协作以完成其中任—对象都无法单独完成的任务。
常考质量属性及相应设计策略如下:
数据仓库拥有以下四个特点:
串行总线是计算机外部接口中常用的一种数据传输接口,可适应于长距离数据传输使用。
软件要节约能耗,通常在设计中主要考虑在以下方面:(低功耗)
通常CPU的频率分为主频、倍频和外频。
三者之间的计算公式:主频=外频×倍频
当给出某服务器名称时能解析出IP地址,查询IP地址时却不能解析出服务器名称时,表明域名服务器中没有为该服务器配置反向查询功能
解决办法是为该服务器创建PTR记录。
为了优化系统的性能,有时需要对系统进行调整。对于不同类型的系统,其调整参数也不尽相同。
例如,对于数据库系统,主要包括CPU/内存使用状况、SQL查询语句性能、进程/线程使用状态、日志文件大小等。
对于一般的应用系统,主要关注系统的可用性、响应时间、系统吞吐量等指标,具体主要包括应用系统的可用性、响应时间、并发用户数、特定应用资源占用等。
本题系统工程利用计算机作为工具,对系统的结构、元素、信息和反馈等进行分析,以达到最优规划、最优设计、最优管理和最优控制的目的。
这样,就形成了由时间维、逻辑维和知识维所组成的三维空间结构。其中,
需求管理的活动包括:(没有文档管理)
1、变更控制
2、版本控制
3、需求跟踪
4、需求状态跟踪
项目时间管理中的过程包括活动定义、活动排序、活动的资源估算、活动历时估算、制定计划和进度控制。
原型模型又叫快速原型模型,其主要由原型开发阶段和目标软件开发阶段构成。
它指的是在执行实际软件的开发之前,应当建立系统的一个工作原型。一个原型是系统的一个模拟执行,和实际的软件相比,通常功能有限、可靠性较低及性能不充分。
通常使用几个捷径来建设原型,这些捷径可能包括使用低效率的、不精确的和虚拟的函数,一个原型通常是实际系统的一个比较粗糙的版本。
快速应用开发方法通过使用基于构件的开发方法获得快速开发,该方法更适合系统模块化程度较高时采用。
螺旋模型把整个软件开发流程分成多个阶段,每一个阶段都由目标设定、风险分析、开发和有效性验证以及评审构成。
软件开发环境(Software Development Environment, SDE)是指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。
它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。
软件概要设计包括设计软件的结构、确定系统功能模块及其相互关系中要采用模块结构图、层次图和HIPO图描述程序的结构。
软件设计包括了四个既独立又相互联系的活动:
EJB是Java EE应用程序的主要构件,EJB用于开发和部署多层结构的、分布式的、面向对象的Java EE应用系统。
软件系统通过构件组装分为三个不同的层次:定制(customization)、集成(integration)和扩展(extension)。
这三个层次对应于构件组装过程中的不同任务。
软件测试一般分为两个大类:动态测试和静态测试。
动态测试是指通过运行程序发现错误,包括黑盒测试法(等价类划分、边界值分析、错误推测、因果图)、白盒测试法(逻辑覆盖、循环覆盖、基本路径法)和灰盒测试法等。
静态测试是采用人工和计算机辅助静态分析的手段对程序进行检测,包括桌前检査、代码审查和代码走查。
著名的4+1模型包括五个主要的视图:
在仓库风格中有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存储上执行,仓库与外构件间的相互作用在系统中会有大的变化。
按控制策略的选取分类,可以产生两个主要的子类。
若输入流中某类时间触发进程执行的选择,则仓库是传统型数据库;
另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是黑板系统。
解释器模式、虚拟机模式,场景都是自定义~
流水线的吞吐率是指单位时间内流水线完成的任务数或输出的结果数量,其最大吞吐率为“瓶颈”段所需时间的倒数。题中所示流水线的“瓶颈”为取操作数段。
流水线的加速比是指完成同样一批任务,不使用流水线(即顺序执行所有指令)所需时间与使用流水线(指令的子任务并行处理)所需时间之比。
题目中执行1条指令的时间为2Δt +1Δt +3Δt +1Δt +2Δt=9Δt,,因此顺序执行10条指令所需时间为90Δt。
若采用流水线,则所需时间为9Δt+(10-1)*3Δt=36Δt,因此加速比为90:36,即5:2。
流水线中的周期 用命令中最长的那一段
实时操作系统如同操作系统一样,就是一个后台的支撑程序,能针对硬件变化进行结构与功能上的配置、裁剪等。
其关注的重点在于任务完成的时间是否能够满足要求。
网络生命周期中,一般将迭代周期划分为五个阶段,即需求规范、通信规范、逻辑网络设计、物理网络设计和实施阶段。
对计算机评价的主要性能指标有时钟频率、数据处理速率、运算精度和内存容量等
对数据库管理系统评价的主要性能指标有最大连接数、数据库所允许的索引数量和最大并发事务处理能力等。
组织信息化需求通常包含三个层次
需求变更管理过程如下图所示:
软件过程四个步骤:
瀑布模型特点是因果关系紧密相连,前一个阶段工作的结果是后一个阶段工作的输入。或者说,每一个阶段都是建立在前一个阶段的正确结果之上,前一个阶段的错误和疏漏会隐蔽地带入后一个阶段。这种错误有时甚至可能是灾难性的,因此每一个阶段工作完成后,都要进行审查和确认。
敏捷方法的核心思想主要有以下三点。
与RUP相比,敏捷方法的周期可能更短。敏捷方法在几周或者几个月的时间内完成相对较小的功能,强调的是能尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强,并且更加强调团队中的高度协作。相对而言,敏捷方法主要适合于以下场合:
通常可以按照软件过程活动将软件工具分为软件开发工具、软件维护工具、软件管理和软件支持工具。
软件开发工具对应软件开发过程的各种活动,软件开发工具有需求分析工具、设计工具、编码与排错工具、测试工具等
源代码控制系统(SCCS)是UNIX系统上的开发项目中使用的源代码和文档文件所做的更改控制的工具。
结构化程序设计采用自顶向下逐步求精的设计方法和单入口单出口的控制构件。逐
步求精的方法所开发的软件一般具有较清晰的层次;
单入口单出口的控制构件使程序具有良好的结构特征,大大降低了程序的复杂性,增强了程序的可读性、可维护性和可验证性,从而提高软件的生产率。
Bohm和Jacopini证明了仅用顺序、分支和循环三种基本的控制构件即能构造任何单入口单出口程序,这个结论奠定了结构程序设计的理论基础。
面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成。
设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和描述流程化处理过程的活动图等。
接口标准化是对消息的格式、模式和协议的标准化。
确认性测试也称为有效性测试,主要包括验证软件的功能、性能及其他特性是否与用户要求(需求)一致。
确认测试计划通常是在需求分析阶段完成的。根据用户的参与程度,通常包括以下四种类型:
软件架构风格描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的结构和语义两个方面的特征。
OMG接口定义语言IDL文件包含了六种不同的元素,包括模块定义、类型定义、常量定义、异常、接口描述和值类型,其中,接口描述是一个IDL文件最核心的内容,模块定义将被映射为Java语言中的包和C++语言中的命名空间。
C2体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构件网络。
C2风格中的系统组织规则如下:
现有的设计模式可以分为创建型模式、结构型模式和行为型模式三类。
操作系统流水线执行时间:一条指令时间 + (总指令条数 - 1) 一条指令中最大的周期*
在双缓冲时,系统处理一块数据的时间可以粗略地认为是Max(C,T)。
本题每一块数据的处理时间为10,采用双缓冲需要花费的时间为10×10+6+2=108。
单缓冲的工作。当第一块数据送入用户工作区后,缓冲区是空闲的,可以传送第二块数据。这样第一块数据的处理C1与第二块数据的输入T2是可以并行的, 系统对每一块数据的处理时间为:Max(C,T)+M。
本题每一块数据的处理时间为10+6=16,Docl文件的处理时间为16×10+2=162μs,比使用单缓冲节约了162-108=54μs时间。
区分服务要求每个IP分组都要根据IPv4协议头中的服务类型(在IPv6中是通信类型)字段加上一个DS码点,然后内部路由器根据DS码点的值对分组进行调度和转发。
把应用程序用的最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序(benchmark)。
真实的程序、核心程序、小型基准程序和合成基准程序,其评测的准确程度依次递减。
Web服务器性能指标主要有请求响应时间、事务响应时间、并发用户数、吞吐量、资源利用率、每秒钟系统能够处理的交易或者事务的数量等。此处没有丢包率
项目时间管理包括使项目按时完成所必须的管理过程。
项目时间管理中的过程包括活动定义、活动排序、活动的资源估算、活动历时估算、制定进度计划以及进度控制。
螺旋模型实在快速模型的基础上扩展
螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。
版本控制工具属于软件维护工具,软件评价工具属于软件管理与软件支持工具。
面向对象设计的基本任务,把面向对象分析模型转换为面向对象设计模型。
面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成。
设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和描述流程化处理过程的活动图等。
本题考查软件重用的基础知识。软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。
软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。
CORBA构件模型中,对象适配器的主要作用是在底层传输平台与接收调用并返回结果的对象实现之间进行协调,目前采用的对象适配器规范是POA(可移植对象适配器),它替代了传统的BOA(基本对象适配器)。
软件集成测试也称为组装测试、联合测试(对于子系统而言,则称为部件测试)。
它将已通过单元测试的模块集成在一起,主要测试模块之间的协作性。
从组装策略而言,可以分为一次性组装测试和增量式组装(包括自顶向下、自底向上及混合式)两种。
集成测试计划通常是在软件概要设计阶段完成的,集成测试一般采用黑盒测试方法。
可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。包括可维护性、可扩展性、结构重组、可移植性4个方面。
没有可变性
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。
一个体系结构定义了一个词汇表和一组约束。
架构风格反映领域中众多系统所共有的结构和语义特征。
按照设计模式的目的进行划分,现有的设计模式可以分为创建型、结构型和行为型三种模式。
网络攻击有主动攻击和被动攻击两类。
嵌入式系统软件具有良好的可移植性,以实现对不同硬件平台的适用性,做到硬件无关性。
IPv6地址被分配到接口,而不是分配给结点。
IPv6地址有三种类型:
(1) 单播(Unicast)地址
(2) 任意播(AnyCast)地址
(3) 组播(Multicast)地址
在IPv6地址中,任何全“0”和全“1”字段都是合法的,除非特别排除的之外。特别是前缀可以包含“0”值字段,也可以用“0”作为终结字段。一个接口可以被赋予任何类型的多个地址(单播、任意播、组播)或地址范围。
供应链中的信息流覆盖了从供应商、制造商到分销商,再到零售商等供应链中的所有环节
其信息流分为需求信息流和供应信息流,这是两个不同流向的信息流。
当需求信息(如客户订单、生产计划和采购合同等)从需方向供方流动时,便引发物流
同时,供应信息(如入库单、完工报告单、库存记录、可供销售量和提货发运单等)又同物料一起沿着供应链从供方向需方流动。
商业智能系统的处理过程包括数据预处理、建立数据仓库、数据分析及数据展现4个主要阶段。
项目范围是为了达到项目目标,为了交付具有某种特制的产品和服务,项目所规定要做的。
在信息系统项目中,产品范围是指信息系统产品或者服务所应该包含的功能,项目范围是指为了能够交付信息系统项目所必须做的工作。
产品范围是项目范围的基础,产品的范围定义是信息系统要求的度量,而项目范围的定义是生产项目计划的基础。
产品范围描述是项目范围说明书的重要组成部分。
软件项目配置管理,配置项的状态通常有3种,分别是草稿、正式发布和正在修改。
需求变更管理过程如下图所示:
用例之间的关系主要有包含、扩展和泛化,利用这些关系,把一些公共的信息抽取出来,以便于复用,使得用例模型更易于维护。
RUP中的软件过程在时间上被分解为4个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和移交阶段。
每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否已经满足。如果评审结果令人满意,就可以允许项目进入下一个阶段。
可以看出,基于RUP的软件过程是一个迭代和增量的过程。
通过初始、细化、构建和移交4个阶段就是一个开发周期,每次经过这4个阶段就会产生一代软件。除非产品退役,否则通过重复同样的4个阶段,产品将演化为下一代产品,但每一次的侧重点都将放在不同的阶段上。这样做的好处是在软件开发的早期就可以对关键的、影响大的风险进行处理。
架构描述语言(Architecture Description Language,ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。
ADL主要包括以下组成部分:组件、组件接口、连接件和架构配置。
ADL对连接件的重视成为区分ADL和其他建模语言的重要特征之一。
数据仓库风格:编程语言的集成开发环境需要提供代码编辑、语法高亮、代码编译、运行调试等功能,这些功能的特点是以软件代码为中心进行对应的编译处理与辅助操作。
软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。
架构设计主要关注软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。
ATAM是在基于场景的架构分析方法(Scenarios-based Architecture Analysis Method,SAAM)基础之上发展起来的,主要包括场景和需求收集、架构视图和场景实现、属性模型构造和分析、属性模型折中等4个阶段。ATAM方法要求在系统开发之前,首先对这些质量属性进行评价和折中。
IETF集成服务(IntServ)工作组根据服务质量的不同,把Internet服务分成了三种类型:
①保证质量的服务(Guranteed Services):对带宽、时延、抖动和丢包率提供定量的保证;
②负载受控的服务(Comrolled-load Services):提供一种类似于网络欠载情况下的服务,这是一种定性的指标;
③尽力而为的服务(Best-Effort):这是Internet提供的一般服务,基本上无任何质量保证。
三层模型将大型局域网划分为核心层、汇聚层和接入层,每一层都有特定的作用。
对于真实程序、核心程序、小型基准程序和合成基准程序来说,其评测程度依次递减。
把应用程序中用的最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序(Benchmark)。
ERP是对企业物流、资金流和信息流资源进行全面集成管理的管理信息系统。
在ERP五个层次的计划中
企业集成平台是一个支持复杂信息环境下信息系统开发、集成、协同运行的软件支撑环境,包括硬件、软件、软件工具和系统。
基本功能包括:(没有数据通信服务)
商业智能通常被理解为将组织中现有的数据转化为知识,帮助组织做出明智的业务经营决策。
商业智能一般由数据仓库、联机分析处理、数据挖掘、数据备份和恢复等部分组成。
结构化分析方法的基本思想是自顶向下,逐层分解,把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题。经过逐层分解,每个最低层的问题都是足够简单、容易解决的。
结构化方法分析模型的核心是数据字典,围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。
这三个模型有着密切的关系,它们的建立不具有严格的时序性,而是一个迭代的过程。
敏捷方法的核心思想主要有以下三点。
与RUP相比,敏捷方法的周期可能更短。敏捷方法在几周或者几个月的时间内完成相对较小的功能,强调的是能尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强,并且更加强调团队中的高度写作。
相对而言,敏捷方法主要适合于以下场合:
在系统运行过程中,软件需要维护的原因是多样的。根据维护的原因不同,可以将软件维护分为以下4种:
UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分,以及它们的关联性、交互机制和指导原则等提供系统设计的信息。
具体来说,就是指以下5个系统视图:
静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。
静态测试包括对文档的静态测试和对代码的静态测试。
对代码的静态测试包括控制流分析、数据流分析、接口分析和表达式分析。
本题考査单元测试的基本概念。单元测试也称为模块测试,测试的对象是可独立编译或汇编的程序模块、软件构件或面向对象软件中的类(统称为模块),其目的是检查每个模块能否正确地实现设计说明中的功能、性能、接口和其他设计约束等条件,发现模块内可能存在的各种差错。
单元测试的技术依据是软件详细设计说明书。
测试一个模块时,可能需要为该模块编写一个驱动模块和若干个桩模块。
驱动模块用来调用被测模块,它接收测试者提供的测试数据,并把这些数据传送给被测模块,然后从被测模块接收测试结果,并以某种可见的方式将测试结果返回给测试人员;
桩模块用来模拟被测模块所调用的子模块,它接受被测模块的调用,检验调用参数,并以尽可能简单的操作模拟被调用的子程序模块功能,把结果送回被测模块。
顶层模块测试时不需要驱动模块,底层模块测试时不要桩模块。
单元测试策略主要包括自顶向下的单元测试、自底向上的单元测试、孤立测试和综合测试策略。
软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素。
软件架构设计能够帮助架构师更好的捕获和细化系统需求(×)
需要注意的是,软件架构设计与系统需求是直交的,两者并无必然联系。
从本质上看,需求和软件架构设计面临的是不同的对象:一个是问题空间;另一个是解空间。
保持两者的可追踪性和转换,一直是软件工程领域追求的目标。
从软件需求模型向SA模型的转换主要关注两个问题:
软件架构设计阶段需要考虑的问题:
如何通过多视图模型描述软件系统的架构、如何确定架构模型中有哪些元素构成。
软件架构实现阶段中需要考虑的问题:如何通过模型转换技术,将高层架构模型逐步细化为细粒度架构模型。
在架构模型的指导下,可复用构件可以通过组装的方式在较高层次上实现系统,并能够提高系统实现的效率。
在构件组装过程中需要检测并解决架构失配问题。
4+1视图中,
逻辑是模型关键词,过程是开发和同步,物理是硬件,开发是开发。
当采用面相对象的设计方法描述对象模型时,通常采用类图表达类的内部属性和行为,以及类集合之间的交互关系
采用状态图定义对象的内部行为
参加DSSA的人员可以划分为多种角色
软件架构风格描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的结构和语义两个方面的特征。
架构权衡分析方法是一种系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。
题目:
某服装店有甲、乙、丙、丁四个缝制小组。甲组每天能缝制5件上衣或6条裤子;乙组每天能缝制6件上衣或7条裤子;丙组每天能缝制7件上衣或8条裤子;丁组每天能缝制8件上衣或9条裤子。
每组每天要么缝制上衣,要么缝制裤子,不能弄混。订单要求上衣和裤子必须配套(每套衣服包括一件上衣和条裤子)。只要做好合理安排,该服装店15天最多能缝制() 套衣服。
答案:
甲、乙、丙、丁四组做上衣和裤子的效率之比分别为5/6、6/7、7/8、8/9,并且依次增加。
因此,丁组做上衣效率更高,甲组做裤子效率更高。
为此,安排甲组15天全做裤子,丁组15天全做上衣。设乙组用x天做上衣,15-x天做裤子;丙组用y天做上衣,15-y天做裤子,为使上衣和裤子配套
0+6x+7y+815=615+7(15-x)+8(15-y)+0
所以,13x+15y=1315,y=13-13x/1515天
共做套数6x+7y+815=6x+7(13-13x/15)+120=211-x/15
只有在x=0时,最多可做211套。此时,y=13
即甲乙丙丁四组分别用0、0、13、15天做上衣,用15、15、2、0天做裤子。
本题考查层次化网络设计原则的基础知识。层次化网络设计应该遵循一些简单的原则,这些原则可以保证设计出来的网络更加具有层次的特性:
管理创新是按照市场发展的要求,对企业现有的管理流程重新整合,从作为管理核心的财务、物料管理,转向技术、物资、人力资源的管理,并延伸到企业技术创新、工艺设计、产品设计、生产制造过程的管理,进而还要扩展到客户关系管理、供应链管理乃至发展到电子商务。
企业信息集成,按集成内容,企业内部的信息集成一般可分为以下四个方面:技术平台集成,数据集成,应用系统集成和业务过程集成。
数据挖掘的任务有关联分析、聚类分析、分类分析、异常分析、特异群组分析和演变分析等等。
信息检索不是
在初始项目范围说明书&已文档化的主要的可交付物、假设和约束条件的基础上准备详细的项目范围说明书,是项目成功的关键。
范围定义的输入包括以下内容:
没有项目文档管理方法
在面向对象设计中,类可以分为三种类型:实体类、边界类和控制类。
RUP中的软件过程在时间上被分解为4个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和移交阶段。
装饰(Decorator**)模式可以再不修改对象外观和功能的情况下添加或考删除对象功能**。
它可以使用一种对客户端来说是透明的方法来修改对象的功能,也就是使用初始类的子类实例对初始对象进行授权。
装饰模式还为对象动态地添加了额外的:重任,这样就在不使用静态继承的情况下,为修改对象功能提供了灵活的选择。
在以下情况中,应该使用装饰模式:
]自顶向下方法的优点是:
自顶向下方法的缺点是:
软件系统架构是关于软件系统的结构、行为和属性的高级抽象。
在描述阶段,主要描述直接构成系统的抽象组件以及各个组件之间的连接规则,特别是相对细致地描述组件的交互关系。在实现阶段,这些抽象组件被细化为实际的组件,比如具体类或者对象。
软件系统架构不仅指定了软件系统的组织和拓扑结构,而且显示了系统需求和组件之间的对应关系,包括设计决策的基本方法和基本原理。
架构风格定义了一类架构所共有的特征,主要包括架构定义、架构词汇表和架构约束。
软件架构能够在设计变更相对容易的阶段,考虑系统结构的可选方案,便于技术人员与非技术人员就软件设计进行交互,能够展现软件的结构、属性与内部交互关系。
但是软件架构与用户对系统的功能性需求没有直接的对应关系。
DSSA通常是一个具有三个层次的系统模型,包括领域开发环境、领域特定应用开发环境和应用执行环境
其中应用工程师主要在领域特定应用开发环境中工作。
架构文档化的主要输出结果是架构规格说明书和架构质量说明书。
数据库设计主要分为用户需求分析、概念结构、逻辑结构和物理结构设计四个阶段。
其中,在用户需求分析阶段中,数据库设计人员采用一定的辅助工具对应用对象的功能、性能、限制等要求所进行的科学分析,并形成需求说明文档、数据字典和数据流程图。
用户需求分析阶段形成的相关文档用以作为概念结构设计的设计依据。
硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。
它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
TCP采用可变大小的滑动窗口协议进行流量控制。
在前向纠错系统中,当接收端检测到错误后就根据纠错编码的规律自行纠错;在后向纠错系统中,接收方会请求发送方重发出错分组。
IP协议不预先建立虚电路,而是对每个数据报独立地选择路由并一站一站地进行转发,直到送达目标地。
隐性调用,性能差
ERP中的企业资源包括企业的“三流”资源,即物流资源、资金流资源和信息流资源。
企业信息化。
CRM是一套先进的管理思想及技术手段,它通过将人力资源、业务流程与专业技术进行有效的整合,最终为企业涉及到客户或者消费者的各个领域提供了完美的集成,使得企业可以更低成本、更高效率地满足客户的需求,并与客户建立起基于学习性关系基础上的一对一营销模式,从而让企业可以最大程度提高客户满意度和忠诚度。
CRM系统的主要模块包括销售自动化、营销自动化、客户服务与支持、商业智能。
企业信息化方法主要包括 业务流程重构、核心业务应用、信息系统建设、主题数据库、资源管理和人力资本投资方法。
瀑布模型是最早使用的软件生存周期模型之一。瀑布模型的特点是因果关系紧密相连,前一个阶段工作的结果是后一个阶段工作的输入。或者说,每一个阶段都是建立在前一个阶段的正确结果之上,前一个阶段的错误和疏漏会隐蔽地带入后一个阶段。这种错误有时甚至可能是灾难性的,因此每一个阶段工作完成后,都要进行审查和确认。
演化模型主要针对事先不能完整定义需求的软件开发,是在快速开发一个原型的基础上,根据用户在调用原型的过程中提出的反馈意见和建议,对原型进行改进,获得原型的新版本,重复这一过程,直到演化成最终的软件产品。
螺旋模型是在快速原型的基础上扩展而成的一种生存周期模型。这种模型将整个软件开发流程分成多个阶段,每个阶段都由4部分组成,它们是:
基于UML的需求分析过程大致可分为以下步骤:
快速应用开发(Rapid Application Development,RAD)是一种比传统生存周期法快得多的开发方法,它强调极短的开发周期。
RAD模型是瀑布模型的一个高速变种,通过使用基于构件的开发方法获得快速开发。
但是RAD也具有以下局限性:
软件开发环境应支持多种集成机制,根据功能的不同,集成机制可以划分为环境信息库、过程控制与消息服务器、环境用户界面三个部分。
ADL主要包括以下组成部分:组件、组件接口、连接件和架构配置。ADL 对连接件的重视成为区分ADL和其他建模语言的重要特征之一
视图描述架构、视角描述利益相关人、架构响应和回答
外观模式是对象的结构模式,要求外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
操作系统为用户提供了两类接口:操作一级的接口和程序控制一级的接口。
CISC (Complex Instruction Set Computer,复杂指令集计算机)的基本思想是进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬件化,导致机器的指令系统越来越庞大而复杂。
CISC计算机一般所含的指令数目至少300条以上,有的甚至超过500条。
CISC的主要缺点如下:
RISC (Reduced Instruction Set Computer,精简指令集计算机)的基本思想是通过减少指令总数和简化指令功能,降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译,提高指令的执行速度,采用硬线控制逻辑,优化编译程序。
实现RISC的关键技术有:
核心层:高速连接、冗余设计、较少的设备连接。此处没有策略路由
该企业进行系统集成时,“业务系统的运行平台和开发语言差异较大,而且系统所使用的通信协议和数据格式各不相同”。在这种情况下,需要采用总线技术对传输协议和数据格式进行转换与适配。
当需要集成并灵活定义系统功能之间的协作关系时,应该釆用基于工作流的功能关系定义方式。
关键要判断在进行集成时,需要数据库中的单表还是多表进行数据整合。
3个特点:
与其他软件开发过程相比,RUP具有自己的特点,即RUP是用例驱动的、以体系结构为中心的、迭代和增量的软件开发过程。
RUP软件开发生命周期是一个二维的软件开发模型,其中有9个核心工作流,分别为:业务建模、需求、分析与设计、实现、测试部署、配置与变更管理、项目管理以及环境。
RUP把软件开发生存周期划分为多个循环,每个循环生成产品的一个新的版本,每个循环依次由4个连续的阶段组成,每个阶段完成确定的任务。
这4个阶段分别为:
迭代并不是重复地做相同的事,而是针对不同用例的细化和实现。
最少知识原则主要用于控制信息的过载。在将最少知识原则运用到系统设计中时, 要注意以下几点:
结构化方法也称为生命周期法,是一种传统的信息系统开发方法,由结构化分析、 结构化设计和结构化程序设计三部分组成,其精髓是自顶向下、逐步求精和模块化设计。
企业战略数据模型可分为数据库模型和数据仓库模型
迭代式的原型开发能够有效控制成本,根据原型与最终产品之间的关系,原型开发分为三类:
静态分析通过解析程序文本从而识别出程序语句的各个部分,审查可能的缺陷和异常之处,静态分析包括五个阶段:
可以将软件维护分为以下4种:
著名的“4+1” 视图,用来描述软件系统的架构。在“4+1”视图中
ABSD以架构风格和质量属性为中心,强调由商业、质量和功能需求的组合驱动软件架构设计。
ABSD方法有三个基础:功能分解、选择架构风格实现质量及商业需求和软件模板的使用。
限制访问策略可以提高系统的安全性
ATAM是一种常用的软件架构评估方法,该方法强调对软件的质量属性进行分析、分类和优先级排序等工作,在此基础上构建质量属性效用树,并对风险点、非风险点、敏感点和权衡点进行识别和分析。
标准规定安全模块必须提供防护的两种主要威胁是:
SNMPv3标准还规定安全模块必须对两种次要威胁提供防护:
有两种威胁是安全体系结构不必防护的,因为它们不是很重要,或者这种防护没有多大作用:
内存按字节编址,利用8KX4b的存储器芯片构成8000H到FFFH的内存,共需 ??片
8FFFFH-84000H+1
= (8FFFFH+1) -84000H
= 90000H-84000H
= C000H。
十进制为12 * 163,由于为b单位,还要乘以8
片数=总容量/每个存储容量=12 * 163 * 8 (b) / 8 * 210 * 4= 12
大型局域网通常划分为核心层、汇聚层和接入层
逻辑设计阶段的任务是:根据需求规范和通信规范,实施资源分配和安全规划。
其网络系统生命周期可以划分为5个阶段,实施这5个阶段的合理顺序是
需求规范、通信规范、逻辑网络设计、物理网络设计、实施阶段
现有的企业门户大致可以分为企业信息门户、企业知识门户和企业应用门户三种。
在初步项目范围说明书中己文档化的主要的可交付物、假设和约束条件的基础上准备详细的项目范围说明书,是项目成功的关键。
范围定义的输入包括以下内容:
①项目章程。如果项目章程或初始的范围说明书没有在项目执行组织中使用,同样的信息需要进一步收集和开发,以产生详细的项目范围说明书。
②项目范围管理计划。
③组织过程资产。
④批准的变更申请。
所以项目文档管理方案不属于范围定义的输入。
问题跟踪工具也可以随时按变更状态分类包裹变更请求的数目。
挑选工具时可以考虑以下几个方面:
①可以定义变更请求的数据项。
②可以定义变更请求生存期的状态转换图。
③可以加强状态转换图,使经授权的用户仅能做出所允许的状态变更。
④记录每一种状态变更的数据,确认做出变更的人员。
⑤可以定义在提交新请求或请求状态被更新后应该自动通知的设计人员。
⑥可以根据需要生成标准的或定制的报告和图表。
在RUP中采用“4+1”视图模型来描述软件系统的体系结构。
“4+1”视图包括逻辑视图、实现视图、进程视图、部署视图和用例视图。
螺旋模型是在快速原型的基础上扩展而成的。
这个模型把整个软件开发流程分成多个阶段,每个阶段都由4部分组成,它们是:
①目标设定。为该项目进行需求分析,定义和确定这一个阶段的专门目标,指定对过程和产品的约束,并且制定详细的管理计划。
②风险分析。对可选方案进行风险识别和详细分析,制定解决办法,采取有效的措施避 免这些风险。
③开发和有效性验证。风险评估后,可以为系统选择开发模型,并且进行原型开发,即开发软件产品。
④评审。对项目进行评审,以确定是否需要进入螺旋线的下一次回路,如果决定继续,就要制定下一阶段计划。
V模型是一种典型的测试模型。在V模型中测试过程被加在开发过程的后半部分,分别包括单元测试、集成测试、系统测试和验收测试。
软件开发环境(Software Development Environment)是支持软件产品开发的软件系统。
它由软件工具集和环境集成机制构成
数据集成机制提供了存储或访问环境信息库的统一的数据接口规范
界面集成机制采用统一的界面形式,提供统一的操作方式
控制集成机制支持各开发活动之间的通信、切换、调度和协同工作。
结构化分析方法是一种面向数据流的需求分析方法,其基本思想是自顶向下逐层分解。
数据流图是进行结构化分析时所使用的模型,(没有软件结构图),其基本成分包括数据流、加工、数据 存储和外部实体。
在进行结构化设计时,通过对数据流图进行变换分析和事务分析可以导出程序结构图。数据库设计可以分为4个主要阶段:
①用户需求分析。数据库设计人员采用一定的辅助工具对应用对象的功能、性能、限制等要求所进行的科学分析。
②概念设计。概念结构设计是对信息分析和定义,如视图模型化、视图分析和汇总。对应用对象精确地抽象、概括而形成的独立于计算机系统的企业信息模型。描述概念模型的较理想的工具是E-R图。
③逻辑设计。将抽象的概念模型转化为与选用的DBMS产品所支持的数据模型相符合的逻辑模型,它是物理设计的基础。包括模式初始设计、子模式设计、应用程序设计、模式评价以及模式求精。
④物理设计。逻辑模型在计算机中的具体实现方案。UML是面向对象软件的标准化建模语言,其中状态图、活动图、顺序图和通信图可以用来对系统的动态行为进行建模。活动图展现了在系统内从一个活动到另一个活动的流程。活动图强调对象之间的控制流程。在活动图上可以表示分支和汇合。活动图与传统的程序流程图是不等价的。
在基于构件的软件开发中,逻辑构件模型用功能包描述系统的抽象设计,用接口描述每个服务集合,以及功能之间如何交互以满足用户需求,它作为系统的设计蓝图以保证系统提供适当的功能。
物理构件模型用技术设施产品、硬件分布和拓扑结构,以及用于绑定的网络和通信协议描述系统的物理设计,这种架构用于了解系统的性能、吞吐率等许多非功能性属性。
对象管理组织(OMG)基于CORBA基础设施定义了4种构件标准。
分布式系统开发分为5个逻辑计算层:
客户机/服务器系统开发时可以采用不同的分布式计算架构:
系统输入设计中
系统测试是将已经确认的软件、计算机硬件、外设和网络等其他因素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方。
系统测试是根据系统方案说明书来设计测试例子的,常见的系统测试主要有以下内容:
(1) 恢复测试:恢复测试监测系统的容错能力。检测方法是采用各种方法让系统出现故障,检验系统是否按照要求能从故障中恢复过来,并在约定的时间内开始事务处理,而且不对系统造成任何伤害。
如果系统的恢复是自动的(由系统自动完成),需要验证重新初始化、检查点、数据恢复等是否正确。如果恢复需要人工干预,就要对恢复的平均时间进行评估并判断它是否在允许的范围内。
(2) 安全性测试:系统的安全性测试是检测系统的安全机制、保密措施是否完善,主要是为了检验系统的防范能力。测试的方法是测试人员模拟非法入侵者,采用各种方法冲破防线。系统安全性设计准则是使非法入侵者所花费的代价比进入系统后所得到的好处要大,此时非法入侵已无利可图。
(3) 强度测试:是对系统在异常情况下的承受能力的测试,是检查系统在极限状态下运行时,性能下降的幅度是否在允许的范围内。因此,强度测试要求系统在非正常数量、频率或容量的情况下运行。强度测试主要是为了发现在有效的输入数据中可能引起不稳定或不正确的数据组合。例如,运行使系统处理超过设计能力的最大允许值的测试例子;使系统传输超过设计最大能力的数据,包括内存的写入和读出等。
(4)性能测试:检査系统是否满足系统设计方案说明书对性能的要求。性能测试覆盖了软件测试的各阶段,而不是等到系统的各部分都组装之后,才确定系统的真正性能。通常与强度测试结合起来进行,并同时对软件、硬件进行测试。软件方面主要从响应时间、处理速度、吞吐量、处理精度等方面来检测。
(5) 可靠性测试:通常使用以下两个指标来衡量系统的可靠性:平均失效间隔时间MTBF (mean time between failures)是否超过了规定的时限,因故障而停机时间MTTR (mean time to repairs)在一年中不应超过多少时间。
(6) 安装测试:在安装软件系统时,会有多种选择。安装测试就是为了检测在安装过程中是否有误、是否容易操作等。主要监测系统的每一个部分是否齐全,硬件的配置是否合理,安装中需要产生的文件和数据库是否已产生,其内容是否正确等。
根据基于软件架构的设计的定义,基于软件架构的设计(Architecture Based Software Development, ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。
它强调采用视角和视图来描述软件架构,采用用例和质量属性场景来描述需求。
数学模型分析工作主要包括模型的合理性分析、模型的误差分析和参数的灵敏性分析等,一般不包括模型的先进性分析。
同一个线程是直接限制(序号相同),同一个动作是间接限制(字母相同)
一般来说,嵌入式系统通常采用接口中的移位寄存器来实现数据的串/并和并/串转换操作。注意此处不是CPU中有移位功能的数据寄存器。
三层模型主要将网络划分为核心层、汇聚层和接入层
每一层都有着特定的作用:
其中核心层是互连网络的高速骨干,由于其重要性,因此在设计中应该采用冗余组件设计,使其具备高可靠性,能快速适应变化。
网络逻辑结构设计是体现网络设计核心思想的关键阶段,在这一阶段根据需求规范和通信规范,选择一种比较适宜的网络逻辑结构,并基于该逻辑结构实施后续的资源分配规划、安全规划等内容。
物理网络设计是对逻辑网络设计的物理实现,通过对设备的具体物理分布、运行环境等的确定,确保网络的物理连接符合逻辑连接的要求。在这一阶段,网络设计者需要确定具体的软硬件、连接设备、布线和服务。
现有网络体系分析的工作目的是描述资源分布,以便于在升级时尽量保护已有投资, 通过该工作可以使网络设计者掌握网络现在所处的状态和情况。
需求分析阶段有助于设计者更好地理解网络应该具有什么功能和性能,最终设计出符合用户需求的网络,它为网络设计提供依据。
DAS磁盘
NAS存储文件系统
SAN专用存储网络
目前市场上主流的集成模式有三种,分别是面向信息的集成、面向过程的集成和面向服务的集成。
其中面向过程的集成模式强调处理不同应用系统之间的交互逻辑,与核心业务逻辑相分离,并通过不同应用系统之间的协作共同完成某项业务功能。
配置项是构成产品配置的主要元素,配置项主要有以下两大类:
这些文档虽然不是产品的组成部分,但是值得保存。所以设备清单不属于配置项。
敏捷方法以原型开发思想为基础,采用迭代增量式开发,发行版本小型化,比较适合需求变化较大或者开发前期对需求不是很清晰的项目。
逆向工程导出的信息可分为如下4个抽象层次。
两个用例之间的关系主要有两种情况:一种是用于重用的包含关系,用构造型 include表示;另一种是用于分离出不同行为的扩展,用构造型extend表示。
面向对象的设计模型包含以包图表示的软件体系结构图
以交互图表示的用例实现图,完整精确的类图,针对复杂对象的状态图和用以描述流程化处理的活动图等。
基于构件的开发模型由软件的需求分析定义、体系结构设计、构件库建立、应用软件构建以及测试和发布5个阶段组成。
在一个典型的基于MVC (Model VIew Controller)的J2EE应用中
数据分割和数据复制是数据分布的两种重要方式。
数据分割有垂直分割和水平分割两种模式
数据复制是为了提升数据访问效率而采用的一种增加数据冗余的方法,它将数据的多个副本存储到不同的服务器上,由RDBMS负责维护数据 的一致性。
系统测试是根据系统方案说明书来设计测试用例,常见的系统测试主要有恢复测试、安全性测试、压力测试、性能测试、可靠性测试、可用性测试、可维护性测试和安装测试。
没有路径测试
黑盒是程序外部功能,也称为功能测试。
白盒是程序内部逻辑
软件架构需求过程主要是获取用户需求,标识系统中所要用到的构件,并进行架构需求评审。(不应该包括设计构件的过程。)
其中标识构件又详细分为生成类图、对类图进行分组和将类打包成构件三步。
架构复审是基于架构开发中一个重要的环节。
架构设计、文档化和复审是一个迭代的过程。
从这个方面来说,在一个主版本的软件架构分析之后,要安排一次由外部人员 **(用户代表和领域专家)**参加的复审。不是系统设计和开发人员。
架构复审过程中,通常会对一个可运行的最小化系统进行架构评估和测试。
架构复审的目标是标识潜在的风险,及早发现架构设计的缺陷和错误。
架构模式是软件设计中的高层决策,例如C/S结构就属于架构模式,**架构模式反映了开发软件系统过程中所作的基本设计决策;**设计模式主要关注软件系统的设计,与具体的实现语言无关;
惯用法则是实现时通过某种特定的程序设计语言来描述构件与构件之间的关系,例如引用-计数就是C++语言中的一种惯用法。
用户界面 - 》 事件驱动
图形用户界面 - 》 隐式调用
闭环架构,常用在简单模式
装饰器模式 -》 可以扩展子类
观察者模式 -》 可以扩展,新增子功能,但是不改变原来的类
敏感点 是共有,权衡点是 一影响多