高项(2)信息化和信息系统基础知识1-软件测试-软件需求-软件架构-中间件-数据仓库-七层协议

1.国家信息化体系6要素
  • 法律法规,是保障
  • 信息资源,信息资源的开发和利用是核心任务 ,是国家信息化取得实效的关键
  • 信息网络,是基础
  • 信息技术应用,是6要素中的龙头
  • 信息技术和产业,是物质保障
  • 信息化人才,是成功之本
2.信息系统生命周期

2.1 简化为

  • 系统规划 (可行性分析、项目开发计划)

  • 系统分析 (需求分析)

  • 系统设计 (概要设计、详细设计)

  • 系统实施 (编码、测试)

  • 系统运维
    2.2 便于管理

  • 立项 (系统规划)

  • 开发 (系统分析、系统设计、系统实施,还包括系统验收等)

  • 运维

  • 消亡
    2.3 从项目管理角度

  • 启动

  • 计划

  • 执行

  • 收尾

3.常用开发方法

3.1 结构化方法

  1. 特点

    • 开发目标清晰化
    • 开发工作阶段化
    • 开发文档规范化
    • 设计方法结构化
  2. 适用场景

    特别适用于数据处理领域的问题

  3. 不足

    不适用于规模大、系统复杂的系统开发

    • 开发周期长
    • 难以适用需求变化场景
    • 很少考虑数据结构
      3.2 面向对象方法
      3.3 原型化方法

是根据用户初步需求,利用系统开发工具,开始建立一个系统模型展示给用户,在此基础上与用户交流,最终满足用户需求的方法。

  1. 特点

    • 可以是开发周期缩短、成本和风险降低
    • 原型法,以用户为中心,用户参与度高,增加了用户的满意度,提高项目成功率
    • 由于用户参与了系统开发的全过程,为以后系统的移交和维护提供了便捷
  2. 不足

    • 开发的环境要求高
    • 管理水平要求高

    对于分析层面大、技术层面难度不大的适用于原型法;而对技术层面远大于分析层面的,则不适用原型法
    3.4 面向服务方法

对于跨构件的功能调用,则采用接口的形式进行调用。进一步将接口的定义和实现进行解耦,催生了服务和面向服务(SO)的方法。

4.OSI七层协议,从下到上

4.1 物理层

​ 该层包括:物理联网媒介,如电缆连线连接器。该层的协议产生并检测电压以便发送和接受携带数据的信号。

具体标准有:RS232、V.35、RJ-45、FDDI等。

4.2 数据链路层

该层:控制网络层与物理层之间的通信。它的主要功能是将网络层接受到的数据分割成特定的可被物理层传输的帧。数据可靠性校验。

常见协议:IEEE802.3/.2、HDLC、PPP、ATM

4.3 网络层

该层:主要是将网络地址(例如:IP地址)翻译成对应的物理地址(例如:网卡地址),并决定如何将数据从发送方路由到接收方。路由、异构网互联、拥塞控制。

  • 在TCP/IP协议中,常见协议:IP、ICMP、IGMP、IPX、ARP等。

  • ARP协议能把IP地址解析成MAC地址。

4.4 传输层

该层:主要负责确保数据可靠、顺序、无措地从A点传输到B点。如提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。

在TCP/IP协议中,常见协议:TCP、UDP、SPX。

4.5 会话层

该层:负责在网络中的两节点之间建立和维持通信,以及提供交互会话的管理功能。

常见协议:RPC、SQL、NFS

4.6 表示层

该层:如同应用程序和网络之间的翻译官,在表示层中,数据将按照网络能理解的方案进行格式化;这种格式化因所使用网络的类型不同而不同。表示层管理数据的加密解密、数据转换、格式化和文本压缩。

常见协议:JPEG、ASCII、GIF、DES、MPEG

4.7 应用层

该层:负责对软件提供接口以使程序能使用网络服务,如事务处理程序、文件传送协议和网络管理等。

在TCP/IP协议中,常见协议:HTTP、Telnet、FTP、TFTP、SMTP、TFTP、DHCP、DNS、SNMP等。

5.802.11

802.11 无线局域网WLAN标准协议。

6.TCP/IP协议是Internet的核心
    1. 6.1 应用层协议
  • FTP协议(文件传输协议),运行在TCP之上
  • TFTP协议(简单文件传输协议),建立在UDP之上,提供不可靠的数据量传输服务
  • HTTP协议(超文本传输协议),建立在TCP之上
  • SMTP(简单邮件传输协议),建立在TCP之上,是一种提供可靠且有效的电子邮件传输协议
  • DHCP(动态主机配置协议),建立在UDP之上,实现自动分配IP地址
  • Telnet(远程登录协议),是登录和仿真程序,建立在TCP之上,它的基本功能是允许用户登录进入远程计算机系统
  • DNS(域名系统),实现域名解析,建立在UDP之上;
  • QQ,建立在UDP上;
  • SNMP(简单网络管理协议),建立在UDP之上

​ 6.2 传输层协议

传输层主要有2个协议:TCP和UDP,这些协议负责提供流量控制、错误校验和排序服务

  • TCP是面向连接的,一般用户传输数据量比较少,且对可靠性要求高的场合
  • UDP是一种不可靠的、无连接的协议。一般用于传输数据量大、对可靠性要求不高的场合,但要求速度快的场合

​ 6.3 网络层协议

  • IP ,通常提供的服务被认为是无连接的和不可靠的
  • ARP,用于动态地完成IP地址向物理地址的转换。RARP,用于动态完成物理地址向IP地址转换
  • ICMP,发送差错报文协议
  • IGMP,允许Internet中的计算机参加多播,是计算机用做向相邻多目路由器报告多目组成员的协议。
7.主流网络存储技术
  • 直接附加存储(DAS);

  • 网络附加存储(NAS),真正即插即用的是NAS;

  • 存储区域网络(SAN);

  • NAS技术支持多种TCP/IP协议,主要是NFS(网络文件系统)和CIFS(通用Internet文件系统)来进行文件访问;

​ 了解主流网络存储技术是非常重要的。以下是关于直接附加存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的详细解释和举例说明:

直接附加存储(DAS)

直接附加存储(DAS)是一种将存储设备通过电缆(通常是SCSI接口电缆)直接连接到服务器的存储方式。它不依赖于任何存储操作系统,而是基于硬件的堆叠。DAS能够实现大容量存储,通过将多个磁盘合并成一个逻辑磁盘,满足海量存储的需求。此外,它还能实现应用数据和操作系统的分离,提高存取性能,并且实施简单,无需专业人员操作和维护。

举例说明:在一个小型企业的服务器环境中,可以使用DAS来扩展存储容量。通过直接连接存储设备到服务器,企业可以方便地管理和访问这些存储资源,满足日常的业务需求。

网络附加存储(NAS)

网络附加存储(NAS)是一种专门用于存储数据的服务器设备,它可以通过网络连接和访问。NAS设备类似于专用的文件服务器,提供文件系统功能,并支持多种网络协议。NAS的主要优势在于数据共享、自动备份、远程数据访问以及成本效益等方面。它可以为多个计算机或其他设备提供集中化的数据存储,实现数据共享和文件访问。

举例说明:在一个中型企业中,多个部门需要共享文件和数据。通过使用NAS设备,各部门可以方便地访问存储在NAS上的文件,实现数据共享和协作。此外,NAS还可以设置自动备份,确保数据的安全性和可靠性。

存储区域网络(SAN)

存储区域网络(SAN)是一种高速的专用网络(或子网),它连接不同种类的数据存储器件与代表更大用户网络的相关数据服务器。SAN通过专用的网络拓扑结构,提供多路可选择的数据交换,实现数据存储管理的集中化。它支持多种通信技术和协议,并可用于企业整个计算网络资源的一部分,实现高效的数据存储和访问。

举例说明:在一个大型数据中心,SAN被用于连接大量的存储设备和服务器。通过高速的网络连接,SAN可以确保数据的快速传输和访问,满足大规模数据处理和存储的需求。同时,SAN还可以提供数据备份、恢复和容灾等功能,确保数据的安全性和可靠性。

综上所述,直接附加存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)是主流的网络存储技术,它们各自具有不同的特点和适用场景。在实际应用中,可以根据企业的需求和规模选择合适的存储技术来构建高效、可靠的数据存储系统。

8.分层设计,3个关键层

3个关键层:核心层、汇聚层、接入层

  • 接入层,网络中直接面向用户连接或访问网络的部分;因此接入层交换机具有低成本和高端口密度特性。
  • 汇聚层,或者叫分布层,位于接入层和核心层之间的部分;提供基于策略的连接,通过访问控制列表或其它的过滤机制进入核心层的流量,定义了网络的边界和访问策略。
  • 核心层,网络主干部分,核心层的主要目的在于通过高速转发通信,提供优化、可靠的骨干传输结构,因此核心层交换机拥有更高的可靠性、性能和吞吐量。

分层设计是计算机网络设计中一种重要的方法论,它将复杂的网络结构划分为几个相对独立且功能明确的层次,以便更好地进行管理和优化。在软考高项中,分层设计是一个重要的考点,特别是其中的三个关键层:核心层、汇聚层和接入层。下面我将结合具体的例子来说明这三个层次的作用和特点。

(1)首先,接入层是网络中直接面向用户连接或访问网络的部分。它的主要任务是允许终端用户(如电脑、手机等)连接到网络,并提供基本的网络访问功能。由于接入层直接与用户交互,因此接入层交换机通常具有低成本和高端口密度的特性,以满足大量用户同时接入的需求。例如,在一个大型企业网络中,接入层交换机可能部署在各个办公室或楼层,为员工提供网络连接。

(2)其次,汇聚层(或称为分布层)位于接入层和核心层之间。它的主要作用是汇聚来自接入层的流量,并进行初步的处理和过滤。汇聚层交换机具有实施策略、安全、工作组接入、虚拟局域网(VLAN)之间的路由、源地址或目的地址过滤等多种功能。通过汇聚层,网络管理员可以控制和优化进入核心层的流量,确保网络的安全和高效运行。例如,在一个学校网络中,汇聚层交换机可能部署在各个教学楼或宿舍楼,负责汇聚来自各个教室或宿舍的流量,并进行相应的处理。

(3)最后,核心层是网络的主干部分,它承载着整个网络的高速转发和通信任务。核心层的主要目的在于提供优化、可靠的骨干传输结构,以确保网络的高效和稳定运行。由于核心层需要处理大量的数据转发和通信任务,因此核心层交换机通常具有更高的可靠性、性能和吞吐量。例如,在一个大型数据中心网络中,核心层交换机可能部署在机房的核心区域,负责连接各个汇聚层交换机,并实现高速的数据转发和通信。

通过分层设计,网络管理员可以更加清晰地理解和管理网络结构,优化网络性能,提高网络安全性。同时,这种设计方式也使得网络的扩展和维护变得更加方便和灵活。在软考高项的备考过程中,深入理解分层设计的原理和应用是非常重要的。

9.信息安全基本要素
  • 机密性:确保信息不暴露给未授权的实体或进程;

  • 完整性:只有得到允许的人才能修改数据,并且能够判别出数据是否已经被篡改;

  • 可用性:得到授权的实体在需要时可以访问数据;

  • 可控性:可以控制授权范围内的信息流向及行为方式;

  • 可审查性:对出现的网络安全问题提供调查的依据和手段。

    信息安全的基本要素是保障信息系统安全的重要基石。下面,我将结合具体的例子来说明这些基本要素:

    1. 机密性(Confidentiality):
      • 例子:一家公司的财务数据是高度机密的,只有公司的高级管理层和财务部门的员工才能访问。为了保障这些数据的机密性,公司采取了数据加密措施,并通过严格的访问控制策略,确保数据不会被未授权的人员获取。
    2. 完整性(Integrity):
      • 例子:一个电子商务网站的订单数据必须保持完整,任何未经授权的修改都可能导致交易纠纷或经济损失。为了确保数据的完整性,网站采用了数字签名和校验和等技术,确保订单数据在传输和存储过程中不被篡改。
    3. 可用性(Availability):
      • 例子:一家银行的在线服务系统必须确保客户在需要时能够随时访问和使用。为此,银行采用了负载均衡、容灾备份等技术手段,确保系统的高可用性,即使在面对突发事件或大规模访问请求时,也能保持稳定的运行。
    4. 可控性(Controllability):
      • 例子:在一个大型企业的内部网络中,信息的流向和行为方式需要得到有效控制。企业可以通过实施网络隔离、访问控制列表(ACL)等策略,限制不同部门之间的信息交换,防止敏感信息的泄露。同时,企业还可以对网络流量进行监控和分析,及时发现和应对潜在的安全威胁。
    5. 可审查性(Accountability):
      • 例子:当一家公司的网络系统发生安全事件时,如数据泄露或非法访问,需要有相应的记录和日志来供安全团队进行调查和分析。这些日志可以记录用户的行为、系统的状态变化以及安全事件的详细信息。通过审查这些日志,安全团队可以追溯事件的源头,找出责任人,并采取相应的措施来防止类似事件的再次发生。

    综上所述,信息安全的基本要素相互关联、相互影响,共同构成了信息系统安全的保障体系。

10.数据仓库

数据仓库是面向主题、集成的、非易失的、且随时间变化的数据集合,用于支持管理决策。

  • 数据源:是数据仓库的基础,是整个系统的源泉;
  • 数据的存储与管理:是整个数仓的核心;
  • OLAP服务器:对分析需要的数据进行有效的集成,按多维模型进行组织,以便进行多角度、多维地进行分析;
  • 前端工具:包括各种报表工具、查询工具、分析工具、数据挖掘工具以及各种基于数据仓库、数据集市的应用开发软件。(其中,数据分析工具,主要针对OLAP服务器的;报表工具、数据挖掘工具主要针对数据仓库的。
  • 数据仓库,代表的技术用于决策分析;
  • 数据挖掘,代表的技术用于从数据库中发现知识对决策进行支持;
11.中间件
  • 底层型中间件,代表:JVM、CLR(公共语言运行库)、ACE(自动适配通信环境)、JDBC、ODBC等;
  • 通用型中间件,代表:CORBA(公共对象请求代理提醒结构)、J2EE、MOM、COM等;
  • 集成型中间件,主流技术有WorkFlow和EAI(企业应用集成),代表产品有:WebLogic和IBM WebSphere等。

中间件是一类在分布式系统中起关键作用的软件,它位于应用程序和操作系统或网络协议栈之间,提供了一系列的服务和功能,用于简化分布式应用的开发和部署。在软考高项中,中间件是一个重要的知识点,根据其功能和应用场景的不同,中间件可以分为多个类型。下面将结合具体的例子来详细解释中间件的类型。

(1)首先是底层型中间件,它的主要作用是提供基础的服务和功能,以便上层应用能够更好地运行。例如,JVM(Java虚拟机)和CLR(公共语言运行库)就是典型的底层型中间件。JVM是Java程序运行的虚拟环境,它负责Java程序的执行和内存管理。CLR则是.NET框架下的运行环境,它支持多种编程语言的运行,并提供了丰富的类库和接口。另外,ACE(自动适配通信环境)、JDBC和ODBC等也是底层型中间件的重要代表,它们分别提供了通信适配、数据库连接等底层服务。

(2)其次是通用型中间件,它的功能更加通用和灵活,可以用于构建各种分布式应用。例如,CORBA(公共对象请求代理体系结构)就是一种广泛使用的通用型中间件,它定义了一种跨平台的对象请求代理机制,使得不同语言、不同平台上的对象可以相互通信和协作。J2EE则是一套用于构建企业级应用的中间件规范,它提供了丰富的组件和服务,包括Servlet、JSP、EJB等,用于简化企业级应用的开发。MOM(面向消息中间件)和COM等也是通用型中间件的重要代表,它们分别提供了消息传递和组件通信的功能。

(3)最后是集成型中间件,它的主要作用是集成不同的系统和应用,实现信息的共享和交换。例如,Workflow是一种用于流程管理的中间件技术,它可以协调不同系统之间的业务流程,确保业务的顺畅进行。EAI(企业应用集成)则是一种更加综合的集成中间件技术,它可以通过各种方式(如消息传递、数据同步等)将不同的应用和系统集成在一起,实现信息的共享和协同工作。WebLogic和IBM WebSphere等都是集成型中间件的代表产品,它们提供了强大的集成功能和灵活的配置选项,可以满足不同企业的集成需求。

​ 了解并掌握这些中间件的类型和特点是非常重要的。通过合理地选择和使用中间件,可以大大提高分布式系统的性能和可靠性,降低开发和维护的成本。同时,随着技术的不断发展,新的中间件技术和产品也在不断涌现,需要保持对新技术的学习和关注,以便更好地应对未来的挑战。

12.软件系统可用性、可靠性
  • 可用性:系统能够正常运行的时间比例。
  • 可靠性:软件系统在系统或者环境出错或意外情况下,维持软件功能特性的基本能力。
13.需求是多层次的
  • 业务需求。反映企业或客户对系统高层次的目标要求,通常来自项目投资人、购买产品的客户、客户单位的管理人员等;
  • 用户需求。描述的是用户的具体目标,或者用户要求系统能够完成的具体任务。通常采用问卷调查和用户访谈的方式。
  • 系统需求。从系统的角度反映软件的需求,包括功能性需求、非功能性需求、和设计约束等。

​ 需求多层次性,实际上是在描述一个复杂的软件系统从高级到低级、从宏观到微观的多个层次上的需求。这些层次包括业务需求、用户需求和系统需求,它们各自有特定的来源和描述方式。

(1)首先,业务需求通常反映了企业或客户对系统高层次的目标要求。这些需求通常来自于项目投资人、购买产品的客户、客户单位的管理人员等。这些人员站在企业或组织的战略高度,对系统提出宏观的、全局性的要求。例如,一个电商平台的业务需求可能包括提高销售额、提升用户体验、优化供应链管理等。

(2)其次,用户需求则更加具体,描述的是用户希望系统能够完成的具体任务或达到的具体目标。用户需求通常通过问卷调查和用户访谈的方式来获取。在电商平台的例子中,用户可能希望系统能够提供丰富的商品选择、便捷的购物流程、安全的支付方式和快速的物流服务。

(3)最后,系统需求是从系统的角度反映软件的需求,它包括了功能性需求、非功能性需求以及设计约束等。功能性需求指的是系统应该提供哪些功能以满足用户和业务的需求,例如电商平台的商品搜索、购物车、订单管理等功能。非功能性需求则关注系统的性能、可靠性、安全性等方面,比如系统应该能够承受多大的并发访问量,数据应该如何安全地存储和传输等。设计约束则是对系统设计的一些限制条件,例如使用的技术栈、遵循的标准等。

​ 通过这样多层次的需求分析,软件开发者可以全面、深入地理解客户的需求,确保开发出的软件能够满足客户的要求,并达到业务目标。

14.数据模型
  • E-R图,实体联系图,表示数据模型,主要描述实体、熟悉,以及实体之间的关系;
  • DFD,数据流图,表示功能模型,主要从数据传递和加工的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在他们之间传递的情况;
  • STD,状态转换图,表示行为模型,描述系统的状态和引起系统状态转换的事件,来表示系统的行为。

​ 数据模型、功能模型和行为模型是信息系统分析和设计的重要工具。下面将针对这些模型,特别是数据模型中的E-R图进行举例说明。

**数据模型中的E-R图(实体联系图)**是用于描述现实世界事物及其之间关系的数据模型图。它通过图形化的方式,将数据模型中的实体、属性、关系等元素直观地展现出来。

举例来说,假设我们正在为一个简单的学校管理系统进行建模。在这个系统中,我们主要关注三个实体:学生、课程和教师。学生有姓名、学号等属性;课程有课程名、课程号等属性;教师有教师姓名、教师编号等属性。实体之间的关系包括学生选课的关系(多对多,一个学生可以选多门课,一门课也可以被多个学生选)和教师授课的关系(一对多,一个教师可以讲授多门课,但一门课通常只有一个教师讲授)。

​ 在E-R图中,这些实体用矩形表示,属性用椭圆形与实体相连,关系用菱形表示并注明关系的类型和名称。例如,学生选课的关系可以用一个菱形表示,并连接到学生和课程两个实体上,标明为多对多关系。

​ 而功能模型中的DFD(数据流图)则是从数据传递和加工的角度描述系统功能的。它利用图形符号,通过逐层细分的方式,展现系统内各个部件如何处理和传递数据。在上面的例子中,DFD可以展示学生选课过程中数据的流动,如学生从界面输入选课信息,这些信息如何被系统处理,并最终更新到数据库中的过程。

​ 行为模型中的STD(状态转换图)则主要用于描述系统的状态和状态之间的转换。例如,在系统处理学生选课请求的过程中,可能会存在"等待处理"、"处理中"和"处理完成"等状态,STD图可以清晰地展示这些状态以及触发状态转换的事件。

​ 通过综合运用E-R图、DFD和STD等模型工具,我们可以对信息系统进行全面而深入的分析和设计,确保系统的功能、性能和行为都符合实际需求。

15.软件需求规格说明书(SRS),是需求开发活动的产物,主要包括:
  • 范围

  • 引用文件

  • 需求

  • 合格性规定

  • 需求可追踪性

  • 尚未解决的问题

  • 注解

  • 附录

16.在实际工作中,一般是进行需求评审和需求测试,对需求进行验证。需求评审就是对需求进行技术评审。
17.UML 2.0

记忆:

  • 静态图:部队负包累成狗

    • 部->部,部署图,描述对运行时的处理节点及其在其中生存的构建的配置;
    • 对->对象,对象图,描述一组对象及他们之间的关系;
    • 负->复,复合结构图(组合结构图),描述结构化类的内部结构;
    • 包->,包图,描述由模型本身分解而成的组织单元,以及他们之间的依赖关系;
    • 累->类,类图,描述一组类、接口、协作以及他们之间的关系。类图给出了系统的静态设计视图,活动类的类图给出了系统的静态进程视图;
    • 成狗->构建,构建图描述一个类、接口、端口,以及内嵌的构建、结构件构成的内部结构;
  • 动态图:制定交通,顺桩活用

    • 制-> 制品图;描述计算机系统中的一个物理结构,通常和部署图一起使用;

    • 定->定时图;也是一种交互图,它强调消息跨越不同对象的实际时间,而不仅仅只是关心消息的相对顺序;

    • 交->交互概览图;是活动图和顺序图的混合物;

    • 通->通信图;也是一种交互图,它强调收发消息的对象或参与者的组织结构。顺序图强调的是时序,通信图强调的是组织结构。

    • 顺->顺序图(序列图);也是一种交互图 ,它由一组对象以及他们之间可能发送的消息组成,强调消息的时序

    • 桩->状,状态图;描述一个状态机,它由状态、转移、活动和事件组成;给出了对象的动态视图;

    • 活->活动图;将进程展示为计算中一步步的控制流和数据流。强调对象间的控制流程。

    • 用->用例图,描述一组用例、参与者以及他们之间的关系。

18.00A、00D 模型
  • 00A,做什么

  • 00D,怎么做

    面向对象分析阶段的核心工作是:建立系统的用例模型和分析模型。

​ 00A和00D分别代表面向对象分析(Object-Oriented Analysis,简称OOA)和面向对象设计(Object-Oriented Design,简称OOD)两个阶段。这两个阶段在软件开发过程中起着至关重要的作用。

(1)首先,OOA阶段主要关注"做什么"。此阶段的核心工作是建立系统的用例模型和分析模型。用例模型描述了用户与系统交互的各种场景,而分析模型则是对这些场景进行深入分析,将现实需求转化为领域模型(Domain Model)。领域模型实际上就是业务逻辑的具体表现,它包含了一系列的概念类以及这些类之间的交互关系。这些概念类通常直接反映了现实世界中的事物和实体。

(2)接下来,OOD阶段主要关注"怎么做"。在这一阶段,主要任务是定义类图以及类之间的交互图(如时序图等)。类图描述了系统中各类之间的关系,包括继承、聚合等,而交互图则展示了这些类在运行时是如何协作完成特定功能的。OOD阶段的设计工作为后续的编码实现提供了明确的指导。

因此,可以说OOA阶段关注于理解和分析系统的需求,而OOD阶段则关注于如何实现这些需求。两者相辅相成,共同构成了面向对象软件开发的核心部分。

需要注意的是,对于OOA和OOD的理解和应用可能需要根据具体的题目和场景进行灵活调整。

19.软件架构风格
  • 数据流风格:包括批处理序列和管道/过滤器两种风格;
  • 调用/返回风格:包括主程序/子程序、数据抽象与面向对象、以及层次结构;
  • 独立构件风格:包括进程通信和事件驱动的系统;
  • 虚拟机风格:包括解释器和基于规则的系统;
  • 仓库风格:包括数据库系统、黑板系统、超文本系统;

软件架构风格举例

软件架构风格是设计和构建软件系统的一种方法论,每种风格都有其特定的特点和适用场景。以下是针对所提到的软件架构风格的举例和说明:

  1. 数据流风格:
    • 批处理序列:在这种风格中,数据被组织成一系列的批次,每个批次依次通过一系列的处理步骤。例如,在数据仓库的ETL(提取、转换、加载)过程中,数据首先被提取,然后经过清洗和转换,最后加载到目标数据仓库中。
    • 管道/过滤器:在这种风格中,每个组件(过滤器)接收输入数据,对其进行处理,并将结果传递给下一个组件。这类似于UNIX管道的概念,其中每个命令的输出成为下一个命令的输入。例如,在视频处理流水线中,原始视频数据经过解码、特效处理、编码等过滤器,最终生成处理后的视频。
  2. 调用/返回风格:
    • 主程序/子程序 :这是最常见的编程模式,其中主程序调用一系列子程序来执行任务。例如,在C或Java程序中,main函数调用其他函数来执行具体的功能。
    • 数据抽象与面向对象:在这种风格中,对象通过消息传递进行交互,每个对象封装了其数据和操作。例如,在Java或C++中,我们定义类来创建对象,并通过方法调用实现对象之间的交互。
    • 层次结构:层次结构风格将系统划分为多个层级,每一层为上一层提供服务。例如,在Web应用程序中,表示层处理用户界面,业务逻辑层处理业务规则,数据访问层与数据库交互。
  3. 独立构件风格:
    • 进程通信:在这种风格中,不同的进程通过某种通信机制(如消息队列、套接字等)进行交互。例如,在分布式系统中,不同的服务进程通过网络进行通信以协同完成任务。
    • 事件驱动:事件驱动的系统响应外部或内部事件来触发相应的操作。例如,在GUI应用程序中,用户的点击或键盘输入会触发事件处理程序来更新界面或执行其他操作。
  4. 虚拟机风格:
    • 解释器:解释器风格的虚拟机读取并执行源代码(如脚本语言),而无需事先将其编译成机器代码。例如,Python解释器读取Python源代码并执行其中的指令。
    • 基于规则的系统:在这种风格的虚拟机中,系统的行为由一组规则决定。例如,专家系统使用规则来模拟专家的决策过程。
  5. 仓库风格:
    • 数据库系统:数据库系统作为持久化数据的仓库,为应用程序提供数据存储和检索服务。例如,关系型数据库如MySQL或Oracle用于存储和管理结构化数据。
    • 黑板系统:黑板系统是一种多代理协作解决问题的架构,其中黑板作为共享的知识库,代理可以在黑板上读取和写入信息以进行协作。
    • 超文本系统:超文本系统(如Web)允许用户通过链接在不同文档或页面之间导航,形成一个非线性的信息结构。

这些软件架构风格不仅提供了设计和构建软件系统的指导原则,还反映了软件系统在不同应用场景下的结构和行为特性。在实际项目中,根据需求和环境选择合适的架构风格对于确保软件系统的质量、可维护性和可扩展性至关重要。

20.软件架构评估方式
  • 基于调查问卷的方式,最为常用
  • 基于场景的方式
  • 基于度量的方式

软件架构评估方式举例

在软件开发和项目管理中,软件架构评估是一个至关重要的环节,它有助于识别架构中的潜在问题,优化系统性能,并提升整体软件质量。以下是对三种主要评估方式的举例说明:

一、基于调查问卷的方式

基于调查问卷的评估方式是最为常用的一种方法。这种方式通过设计一系列与软件架构相关的问题,对架构的各个方面进行评估。问题可能涵盖架构设计决策、文档完整性、以及架构描述本身的细节问题等。

举例

假设我们正在评估一个电商平台的软件架构,我们可以设计一份调查问卷,其中可能包含以下问题:

  1. 您的团队在设计电商平台架构时,是否考虑了高并发和可扩展性?
  2. 架构文档是否详细描述了各个组件之间的交互关系?
  3. 在处理用户数据时,是否采用了有效的安全措施?

通过收集和分析问卷的答复,我们可以得到关于软件架构各个方面的反馈,从而识别潜在问题并进行改进。

二、基于场景的方式

基于场景的评估方式通常涉及对特定场景或用例的模拟和分析。这种方式可以帮助我们理解架构在实际运行环境中的表现,并发现潜在的性能、可靠性或安全性问题。

举例

在电商平台软件架构的评估中,我们可以模拟一个高并发的购物场景,观察架构如何处理大量的用户请求和交易数据。通过分析架构在此场景下的表现,我们可以发现可能存在的性能瓶颈或安全隐患,并据此进行优化。

三、基于度量的方式

基于度量的评估方式依赖于对软件架构的定量分析和比较。通过收集架构相关的度量数据,如代码行数、模块复杂度、响应时间等,我们可以对架构的质量和性能进行客观评估。

举例

对于电商平台软件架构,我们可以收集以下度量数据:

  1. 代码行数:衡量开发工作量和可能的维护成本。
  2. 模块复杂度:评估各个模块之间的耦合度和内聚性,以判断架构的可维护性和可扩展性。
  3. 响应时间:衡量系统处理用户请求的速度,以评估用户体验和性能。

通过对这些度量数据的分析,我们可以发现架构中的瓶颈和问题,并制定相应的优化策略。

综上所述,基于调查问卷、基于场景和基于度量的评估方式各有特点,可以相互补充。在实际应用中,我们可以根据项目的具体需求和资源情况选择合适的评估方式,以确保软件架构的质量和性能得到有效保障。

21.连续式模型和阶段式模型
  • 阶段式模型,描述了组织的能力的成熟度模型,包括:可管理级、已定义级、量化管理级、优化管理级;
  • 连续式模型,描述了过程的能力成熟度模型,包括:过程管理、项目管理、工程、支持。

记忆:

阶段式:

可管理级:带管理的、计划、监控、两分质保;

已定义:集成化决策开发环境,技术方案风险焦点通过培训定义被验证确认;

量化管理级:性能定量;

优化管理级:改革因果。

连续式:

过程管理:实施培训过程;

项目管理:带管理的计划定量监控;

工程:需求解决产品认证;

支持:配置两分质保解决环境方案。

阶段式模型的过程域分组:

成熟度等级(组织) 过程域
可管理级 需求管理、项目计划、配置管理、项目监督与控制、供应商合同管理、度量和分析、过程和产品质量保证
已定义级 需求开发、技术解决方案、产品集成、验证、确认、组织级过程焦点、组织级过程定义、组织级培训、集成项目管理、风险管理、集成化的团队、决策分析和解决方案、组织级集成环境
量化管理级 组织级过程性能、定量项目管理
优化管理级 组织级改革与实施、因果分析和解决方案

连续式模型的过程域分组:

连续式分组(过程) 过程域
过程管理 组织级过程焦点、组织级过程定义、组织级培训、组织级过程性能、组织级改革与实施
项目管理 项目计划、项目监督与控制、供应商合同管理、集成项目管理、风险管理、集成化的团队、定量项目管理
工程 需求管理、需求开发、技术解决方案、产品集成、验证、确认
支持 配置管理、度量和分析、过程和产品质量保证、决策分析和解决方案、组织级集成环境、因果分析和解决方案
22.软件测试
  • 静态测试
  • 静态测试包括:对文档的静态测试、对代码的静态测试;
  • 对文档的静态测试:主要以检查单的形式;
  • 对代码的静态测试:一般采用桌前检查、代码走查、代码审查。
  • 测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测;
  • 动态测试

    • 指在计算机上实际运行程序进行软件测试,一般包括:黑盒测试、白盒测试;

    • 白盒测试也称结构测试,主要用于软件单元测试中,测试人员完全清楚程序的结构和处理算法;白盒测试的方法主要有:控制流测试、数据流测试、程序变异测试等;常用技术是:逻辑覆盖。主要的覆盖标准有:语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖等。

    • 使用静态测试的方法也可以实现白盒测试,例如:使用人工检查代码的方法来检查代码的逻辑问题,也是属于白盒测试范畴;

  • 黑盒测试,也称为功能测试,主要用于集成测试、确认测试和系统测试中。
  • 黑盒测试主要思想:是将程序看作是一个不透明的黑盒,完全不考虑程序的内部结构和算法逻辑。
  • 黑盒测试,一般包括:等价类划分、边界值分析、判定表、因果图、状态图、随机测试、猜错法、正交试验法等。

软件测试举例

静态测试

静态测试是一种在不实际执行程序的情况下,通过检查代码和文档来发现其中可能存在的错误或缺陷的测试方法。

例子

假设我们正在为一个电商网站进行静态测试。

  • 对文档的静态测试:我们检查网站的设计文档、需求文档等,确保文档内容的准确性、一致性和完整性。例如,我们使用检查单来核对文档中是否涵盖了所有必要的功能点,是否有矛盾或遗漏的地方。
  • 对代码的静态测试:我们组织代码审查会议,邀请团队成员对网站的源代码进行桌前检查或代码走查。在这个过程中,我们主要关注代码的结构、逻辑、命名规范等,寻找可能存在的潜在问题。例如,我们可能会发现某个函数的命名不清晰,或者某段代码存在逻辑上的错误。

静态测试的优势在于它不需要运行程序,因此可以节省时间和资源。同时,由于它是人工进行的,所以能够充分发挥人的思维优势,发现一些自动化工具可能忽略的问题。

动态测试

动态测试则是通过实际运行程序来进行测试,以检查程序在实际运行环境中的表现。

例子

对于同一个电商网站,我们进行动态测试。

  • 白盒测试:由于我们了解网站的内部结构和处理逻辑,我们可以进行白盒测试。例如,我们使用逻辑覆盖的方法,设计测试用例来覆盖网站的所有代码路径。这样,我们可以确保网站的所有功能都得到了测试,并且没有发现逻辑上的错误。
  • 黑盒测试:在不知道网站内部结构和逻辑的情况下,我们进行黑盒测试。我们模拟用户的操作,如浏览商品、添加购物车、结算等,检查网站的功能是否按照需求规格说明书的规定正常使用。例如,我们使用等价类划分的方法,设计测试用例来测试网站的搜索框功能。我们输入不同的搜索关键词,检查搜索结果是否符合预期。

动态测试能够模拟真实的用户使用场景,发现实际运行中的各种问题。但它需要实际运行程序,因此可能会消耗更多的时间和资源。

静态测试和动态测试是软件测试中不可或缺的两种方法,它们各自有其优势和局限性。在实际的软件测试过程中,通常会结合使用这两种方法,以确保软件的质量和可靠性。

23.企业应用集成
  • 表示集成:也称为界面集成,是黑盒集成,无需了解程序与数据库的内部构造。常用的技术:屏幕截取、输入模拟技术。

  • 数据集成:是白盒集成。

  • 控制集成:也称为功能集成或应用集成,是在业务逻辑层上对应用系统进行集成的。是黑盒集成。API访问集成,复杂度更高一些。例如:ZJ平台API对接。

  • 业务流程集成:也称为过程集成,这种集成超越了数据和系统,它由一系列基于标准的、统一数据格式的工作流组成。当进行业务流程集成是,企业必须对各种业务信息的交换进行定义、授权和管理,以便改进操作、减少成本、提高响应速度;

  • 企业之间的应用集成:EAI技术。能够使企业充分利用外部资源。

24.按照云计算服务提供的资源层次划分:IaaS、PaaS、SaaS三种服务类型。
  • IaaS(基础设施即服务),向用户提供计算机能力、存储空间等基础设施方面的服务。这种服务模式需要较大的基础设施投入和长期运营管理经验;
  • PaaS(平台即服务),向用户提供虚拟的操作系统、数据库管理系统、Web应用等平台化的服务;PaaS服务的重点不在于直接的经济效益,而更注重构建和形成紧密的产业生态
  • SaaS(软件即服务),向用户提供应用软件(如CRM、办公软件等)、组件、工作流等虚拟化软件的服务。

以下是针对IaaS(基础设施即服务)、PaaS(平台即服务)和SaaS(软件即服务)三种云计算服务类型的具体举例说明:

IaaS(基础设施即服务)

IaaS提供的是最基础层面的云计算服务,它允许用户通过互联网从完善的计算机基础设施获得服务。用户无需购买和管理自己的硬件设备,只需按需使用IaaS提供商的计算、存储和网络等基础设施资源。

举例

  • Amazon Web Services (AWS) EC2:AWS的弹性计算云(EC2)是一个典型的IaaS服务。用户可以根据需求在EC2上启动虚拟服务器实例,并为其配置所需的计算能力、内存和存储空间。用户可以完全控制这些实例的操作系统和应用程序,但无需关心底层硬件的维护和管理。
  • 阿里云ECS:阿里云提供的弹性计算服务(ECS)也是一种IaaS服务。用户可以在阿里云上创建和管理云服务器实例,用于部署和运行自己的应用程序。阿里云负责底层硬件的维护和管理,而用户可以专注于应用程序的开发和部署。

PaaS(平台即服务)

PaaS提供商为用户提供了一个开发、测试、部署和管理应用软件的平台,用户无需在本地安装和配置繁琐的软件开发工具和环境。PaaS通常包括数据库管理、Web服务、开发工具等,并致力于构建一个完整的产业生态。

举例

  • Google App Engine:Google App Engine是一个PaaS平台,它允许开发人员使用Google提供的服务和工具来构建和部署Web应用程序。开发人员无需担心底层服务器的维护和管理,只需关注应用程序的开发和功能实现。
  • 微软Azure平台:微软Azure不仅提供IaaS服务,也提供了强大的PaaS服务。在Azure上,开发人员可以利用云上的数据库、存储、Web服务等资源,快速构建和部署应用程序。Azure还提供了丰富的开发工具和服务,帮助开发人员提高开发效率和质量。

SaaS(软件即服务)

SaaS是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。SaaS提供商会负责软件的管理、部署、更新和维护等工作。

举例

  • Salesforce CRM:Salesforce是一个著名的SaaS提供商,它提供了一套完整的客户关系管理(CRM)解决方案。用户可以通过Web浏览器或移动应用访问Salesforce的CRM系统,进行客户信息管理、销售流程跟踪、数据分析等操作。Salesforce负责系统的部署、更新和维护,用户只需按需使用即可。
  • 腾讯企业邮箱:腾讯企业邮箱是一个典型的SaaS服务,它向企业提供邮件发送、接收、管理等功能。企业无需购买和部署邮件服务器,只需在腾讯企业邮箱平台上注册账号,即可使用其提供的邮件服务。腾讯负责邮件系统的维护和管理,确保服务的稳定性和安全性。

​ 这些例子展示了云计算服务按照资源层次划分的三种主要类型:IaaS、PaaS和SaaS,并说明了它们在实践中的应用场景。

25.大数据的5V特征:
  • Volume,大量
  • Variety,多样
  • Value,价值
  • Velocity,高速
  • Veracity,真实性

大数据的5V特征包括Volume(大量)、Variety(多样)、Value(价值)、Velocity(高速)以及Veracity(真实性),这些特征共同描述了大数据的复杂性和价值。以下是针对每个特征的举例说明:

  1. Volume(大量):大数据的第一个显著特征是数据量的巨大。这不仅仅是指数据的绝对数量,还包括数据种类的多样性以及数据处理的复杂性。例如,一个大型电商平台每天处理的交易数据可能达到数十亿条,涉及用户行为、商品信息、交易记录等多个方面。这些数据量的巨大性使得传统的数据处理和分析方法难以满足需求,需要采用更高效的分布式计算技术来处理。
  2. Variety(多样):大数据的来源和形式多种多样,包括结构化数据、半结构化数据和非结构化数据。结构化数据如数据库中的表格,半结构化数据如XML或JSON文档,非结构化数据则包括文本、图像、音频和视频等。例如,社交媒体平台上的用户生成内容(UGC)就是一种典型的非结构化数据,这些数据对于分析用户行为、兴趣爱好和趋势预测具有重要意义。
  3. Value(价值):大数据的价值在于其蕴含的潜在信息和洞察。虽然单个数据点的价值可能有限,但当数据量足够大时,通过分析和挖掘可以发现其中的规律和趋势,从而为企业决策提供支持。例如,通过分析用户的购买历史和浏览行为,电商平台可以预测用户的购买意向,进而进行精准营销和个性化推荐。
  4. Velocity(高速):大数据的处理和分析需要具有高速性。在许多应用场景中,数据的价值与其时效性密切相关。因此,需要快速处理和分析数据以提取有价值的信息。例如,在金融交易领域,高速的数据处理和分析可以帮助企业实时发现异常交易和潜在风险,从而及时采取措施进行防范。
  5. Veracity(真实性):大数据的真实性指的是数据的准确性和可靠性。由于数据来源的多样性和复杂性,大数据中可能包含噪声、错误或不一致的数据。因此,在分析和利用大数据时,需要对数据进行清洗、验证和校正,以确保其真实性和准确性。例如,在医学研究领域,对大数据的真实性要求极高,因为任何微小的误差都可能导致严重的后果。

综上所述,大数据的5V特征相互关联、相互影响,共同构成了大数据的复杂性和价值。在实际应用中,需要根据具体场景和需求来选择合适的数据处理和分析方法,以充分发挥大数据的潜力。

26.大数据从数据源------>分析----->最终价值,需要5个主要环节
  • 数据准备

  • 数据存储与管理

  • 计算处理

  • 数据分析

  • 知识展现

相关推荐
苹果酱05671 小时前
C语言 char 字符串 - C语言零基础入门教程
java·开发语言·spring boot·mysql·中间件
宝哥大数据10 小时前
数据仓库面试题集&离线&实时
大数据·数据仓库·spark
浊酒南街1 天前
hive中map_concat函数介绍
数据仓库·hive·hadoop
喵叔哟1 天前
【.NET 8 实战--孢子记账--从单体到微服务】--简易权限--访问权限中间件
微服务·中间件·.net
青锐CC1 天前
webman使用中间件验证指定的控制器及方法[青锐CC]
中间件·前端框架·php
提笔惊蚂蚁2 天前
结构化(经典)软件开发方法: 需求分析阶段+设计阶段
后端·学习·需求分析
前端 贾公子2 天前
Koa进阶:掌握中间件和参数校验的艺术
中间件
Java资深爱好者2 天前
数据湖与数据仓库的区别
大数据·数据仓库·spark
你的微笑,乱了夏天2 天前
微服务链路追踪skywalking安装
分布式·后端·中间件·架构·skywalking
ocean10102 天前
面向对象的需求分析和设计(一)
需求分析