arch2. 基础知识

综述:

1 软硬件

1. 计算机硬件

控制器:控制器是分析和执行指令的部件,也是统一指挥并控制计算机各部件协调工作的中心部件,所依据的是机器指令
运算器:运算器也称为算术逻辑单元(ArithmeticandLogicUnit,ALU),其主要功能是在控制器的控制下完成各种算术运算和逻辑运算。

  • 存储器
    按照与处理器的物理距离可分为4个层次:
    • 片上缓存:在处理器核心中直接集成的缓存,一般为 SRAM结构
    • 片外缓存:在处理器核心外的缓存,一般为 SRAM结构
    • 主存(内存):通常采用 DRAM结构, DRAM依赖不断充电维持其中的数据
    • 外存:可以是磁带、磁盘、光盘和各类Flash等介质器件,这类设备访问速度慢,但容量大,且在掉电后能够保持其数据。

输入设备、输出设备

2. 计算机软件

  • 操作系统的特征
    并发性、共享性、虚拟性、不确定性

  • 中间件
    中间件处在操作系统、网络和数据库之上, 网络、数据库应用软件的下层

    • 分类:
      通信处理(消息)中间件、事务处理(交易)中间件、数据存取管理中间件、web服务器中间件、安全中间件、跨平台和架构的中间件、专用平台中间件、网络中间件
  • 协议与端口

    • 邮件接收协议 POP3 端口110
    • 邮件发送协议 SMTP 端口25
    • 超文本传输协议 HTTP 端口80
    • 交互式邮件存取协议 端口143

基于构件的软件工程

接口。构件通过构件接口来定义;
平台服务,允许构件在分布式环境下通信和互操作。

需求工程

分为如下阶段:

  1. 需求获取:通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求。
  2. 需求分析:为系统建立一个概念模型,作为对需求的抽象描述,并尽可能多的捕获现实世界的语义
  3. 形成需求规格(或称之为需求文档化):按照相关标准,生成需求模型的文档描述
  4. 需求确认与验证
  5. 需求管理:包括需求文档的追踪管理、变更控制、版本控制等管理性活动

需求跟踪:包括编制每个需求同系统元素之间的联系文档,这些元素包括其他需求、体系结构、其他设计部件、源代码模块、测试、帮助文件和文档等,是要在整个项目的工件之间形成水平可追踪性。

  • 需求工程包括需求开发和需求管理两大类活动。
    • 需求开发包括:需求获取,需求分析,需求定义,需求验证这些主要活动;
    • 需求管理包括:变更控制、版本控制、需求跟踪和需求状态跟踪这些活动。
  • 按照传统的软件生命周期方法学,可以把软件生命期划分为软件定义、软件开发、软件运行与维护3个阶段。

  • 净室软件工程 理论基础主要是函数理论和抽样理论
  • 统一过程模型 (RUP)
    • 开发生命周期分为多个循环,每个循环包括4个阶段:初始、细化、构造、移交

3. 软件工程

uml

UML中有4种关系:依赖、关联、泛化和实现。

  • UML5类视图:
    • 用例图:描述系统的功能需求,方便找出用例和执行者, 主要包括用例图。
    • 逻辑图:描述如何实现系统内部的功能,逻辑视图包含类图和对象图、状态图、顺序图、合作图和活动图。
    • 进程图:描述系统的并发性,并处理这些线程间的通信和同步。进程视图主要包括状态图、顺序图、合作图、活动图、构件图和配置图;
    • 实现图:实现视图:描述系统代码构件组织和实现模块及它们之间的依赖关系;实现视图主要包括构件图;
    • 部署图:定义系统中软硬件的物理体系结构及连接、哪个程序或对象驻留在哪台计算机上执行;主要包括配置图;

23种设计模式,按目的和范围分类

  • 目的:
    • 创建模式:创建型模式关注对象的创建机制
    • 结构模式:结构型模式关注类或对象的组合,它们帮助设计更灵活的组合结构。
    • 行为模式:行为型模式关注对象之间的通信
  • 范围:类模式、对象模式

负载测试用于测试超负荷环境中程序是否能够承担;强度测试是在系统资源特别低的情况下考查软件系统极限运行情况;容量测试可用于测试系统同时处理的在线最大用户数量。

4. 数据库系统

  • E-R图
    • 实体关系图(Entity-Relationship Diagram,简称ER图)是一种用于描述数据库中实体及其之间关系的图形化工具。ER图是数据库设计中的重要工具,帮助设计人员清晰地表达数据库的逻辑结构和数据关系。
    • 元素 实体 属性 关系 健
    • 合并冲突
      • 属性冲突:包括属性域冲突和属性取值冲突。
      • 命名冲突:包括同名异义和异名同义。
      • 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。
  • 关系运算 选择(水平方向运算) 投影(垂直方向运算)笛卡尔积 连接(可以由笛卡尔积和选择运算导出)
  • 数据库系统中事务四个特性:原子性、一致性、隔离性、持久性

4. 复用、评估

  • 复用

    • 机会复用 开发过程中,发现可用资产进行复用
    • 系统复用 开放前规划,决定哪些需要复用
  • 用例图

    • 用例图(Use Case Diagram)是UML(统一建模语言)中的一种图形化工具,用于描述系统功能及其与外部参与者之间的交互。用例图帮助设计人员和利益相关者理解系统的功能需求和用户交互。
    • 元素 用例(系统提高功能和服务)参与者 关系(关联、扩展、包含、泛化)
    • 合并冲突
      • 属性冲突:包括属性域冲突和属性取值冲突。
        命名冲突:包括同名异义和异名同义。
        结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。
  • 数据流图

    • 元素 外部实体、处理、数据流、数据存储
  • 作者的署名权、修改权、保护作品完整权的保护期不受限制。

5. 架构

特定领域软件体系结构

  1. 领域分析,这个阶段的主要目标是获得领域模型。领域模型描述领域中系统之间的共同需求,即领域模型所描述的需求为领域需求
  2. 领域设计,这个阶段的主要目标是获得DSSA。
  3. 领域实现,这个阶段的主要目标是依据领域模型和DSSA 开发和组织可重用信息。这些可重用信息可能是从现有系统中提取得到,也可能需要通过新的开发得到。

架构演化

静态演化:设计时演化和运行前演化
动态演化,动态演化是在系统运行期间的演化,需要在不停止系统功能的情况下完成演化

6. 软件可靠性

软件可靠性设计技术主要有融错技术、检错技术、降低复杂度设计等
融错技术

  1. 恢复块设计 选择一组操作做为融错设计单元,把普通程序块更改为恢复块。一个恢复块包含若干功能相同、设计差异的程序块,每一个时刻一个程序块处于运行状态,一旦该程序块故障,用备用块替代
  2. N版本程序设计 设计多个版本程序,对相同初始条件和输入数据的操作结果,实行多数表决,防止其中一个版本程序提供错误服务
  3. 冗余设计 在一套完整的软件系统之外,设计一种不同路径、不同算法和不同实现方法的系统做为备份

检错技术
软件出现故障后,能及时发现并报警

降低复杂度设计
降低复杂度设计的思想就是在保证实现软件功能的基础上,简化软件结构,缩短程序代码长度,优化软件数据流向,降低软件复杂度,从而提高软件可靠性。

系统配置技术

  1. 双机热备份技术 两台服务器安装相同程序,一台出现故障,备机主动替代主机工作,采用心跳方法联系,主从之间按照一定频率发送通信信号,表面各自状态
  2. 服务器集群技术

软件架构演化

  1. 需求变更归类;2. 正定体系结构演化计划;3. 修改、增加删除构件;4. 构件之间的连接件适配;5. 构件组装和测试;6. 技术评审。
  • 作者的署名权、修改权、保护作品完整权的保护期不受限制。
posted @ 2024-08-28 19:55  ldfm  阅读(14)  评论(0编辑  收藏  举报