软件体系结构期末总复习

Tips:(1.2下午,两个小时,一百分)

形式

第一题 名词解释10*3(两个软件性能)

第二题 简答题 5*8(答出PPT的要点)

第三题 详细问答 2*15

重点:【要点都有编号】

1.windows体系架构(内容,文字)

2.Linux体系架构

3.鸿蒙操作系统所有相关

4.课程重点基础知识:

5.两个最基础的部分,组件,连接器

6.软件体系结构的基本概念,两个重要部分软件体系结构的发展、优点,两个最基础的

7.软件性能

8.考一个与软件工程类似的,比8点少一点

9.软件体系风格

10简答题不会超过8个要点

最后两道15分的题:(基础+扩展)(经典+?)

基础8点以上:

开始背诵吧!!!

Windows体系结构

Windows系统是分层的架构,主要分为内核模式用户模式:

内核模式自下而上分为硬件抽象层(HAL)->内核和驱动层->执行体,以及窗口管理系统。

用户模式主要是NTDLL抽象层,以及各种进程,如:底层的系统支持进程->服务进程->用户应用程序。

Windows执行体

    Windows执行体是Ntoskrnl.exe的上层(其下层是内核),包含了基本的操作系统服务,比如内存管理、进程和线程管理、安全性、I/O、网络和跨进程通信等。主要包含以下组件:

1.配置管理器—注册

2.进程和线程管理器——创建和撤消

3.安全应用监视器——安全策略

4.I/O管理器:——设备无关的I/O

5.即插即用(pnp)管理器——确定驱动,加载驱动。

6.电源管理器——降低电源电耗。

7.WDM Windows管理规范例程——接受来自用户的WMI服务命令。

8.高速缓存管理器——I/O操作的性能

9.内存管理器——虚拟内存

10.逻辑预取器——加速系统和进程启动过程

Linux体系结构

Linux内核体系结构

其源码主要有以下目录(介绍重要目录):

1.Arch目录:存放处理器相关的代码。下设子目录,分别对应具体的CPU,每个子目录有boot,mm,以及kernel三个子目录,分别对应系统引导以及存储管理,和系统调用

2.Include目录:内核所需要的大部分头文件目录。与平台无关的在include/linux子目录下,与平台相关的则放在include相应的子目录中。

3.fs目录:存放各种文件系统的实现代码。

4.init目录:init子目录包含核心的初始化代码(不是系统的引导代码)。其包含两个文件main.c和version.c,可以用来研究核心如何工作。

5.ipc目录:包含核心进程间的通信代码。

6.kernel目录:包含内核管理的核心代码。与硬件相关代码放在arch/*/kernel目录下。

7.mm目录:包含了所有的内存管理代码。与硬件相关的内存管理代码位于arch/*/mm目录下。

8.scripts目录:包含用于配置核心的脚本文件。

9.lib目录:包含了核心的库代码,与硬件相关的库代码被放在arch/*/lib/目录下

Linux内核体系结构

由下往上分别(不能缩写! 顺序不能写错):

  1. Arch
  2. Device Drivers(DD)
  3. Memory Management(MM)
  4. Network Stack
  5. Process Management(PM)
  6. Virtual File System(VFS)
  7. System Call Interface(SCI)

Linux Kernel map

Linux layers(由下往上)

  1. Electronics
  2. hardware interfaces
  3. Device control
  4. Logical
  5. Bridges
  6. Virtual
  7. User space interfaces
  8. Functionalities layers

Linux Function

  1. Human interface
  2. System
  3. Processing
  4. Memory
  5. Storage
  6. Networking

应用软件体系结构

应用软件架构的演化过程大概分成以下阶段:

(1)单体架构:单体架构就是把所有的业务逻辑和控制逻辑全部都放在了一起(All in one)。如 ERP

(2)SOA架构:单体架构垂直拆分演变出了SOA( Service-Oriented Architecture),将重复功能或模块抽取成组件的形式,对外提供服务,在项目与服务之间使用ESB(企业服务总线)的形式作为通信的桥梁。

(3)微服务架构:微服务架构(Microservice Architecture)是一种架构概念,主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。

单体架构:

SOA架构:

微服务架构:

一个好的产品有10个设计原则:

(1)创意 (2)有用(3)优美(4)容易使用(5)含蓄不张扬

(6)诚实 (7)经久不衰(8)不放过任何细节

(9)环保不浪费(10)少即是多

软件体系结构

人们对软件的要求:

1足够的快

2非常安全可靠

3非常的便宜

4足够的智能

5操作非常的方便

6界面或接口非常的友好

软件体系结构设计需要考虑的11个影响因素     

1性能 2可用性

3容量 4成本 5功能

6兼容性 7安全性

8出错容忍程度

9吞吐率

10恢复能力

11 技术混合

软件体系结构设计涉及7方面的问题

1用法 2功能 3性能

4伸缩能力 5重用

6经济上和技术上的冲突和平衡

7美学的观点

当前和未来软件的6个特点

1无统一控制的广泛分布性

2高度自主性

3任务不可预测性

4人、设备和软件的多重异构性

5强个性化和灵活性

6连接环境的多样性

当前和未来软件的5大要求

1开放结构——软件实体具有目标制导能力和多目标的特征协同能力,从而使系统的效果体现出相容的多目标性;

2动态协同——软件实体之间多种方式的互连、互通、协作和联盟;

3在线演化——结构和实体的演化能力,包括:元素数目的可变性、结构关系的可调节性和结构形态的动态可配置性;

4环境感知——软件实体具有感知外部运行和使用环境的能力;

5自主适应 ——软件实体具有相对独立性、主动性和自适应性;

软件体系结构研究的范畴

1.ADL——体系结构描述语言;

2.体系结构的知识;

3.基于软件体系结构的软件开发环境和工具;

4.体系结构的形式化描述。

好的软件体系结构的6个特征(评价)

1可伸缩性的

2简单

3亲切的

4关系清楚明了

5职责分布明确

6效益和技术平衡

软件体系结构的生命周期

1.软件体系结构的非形式化描述——初始设计,软件设计师用非形式化的自然语言表示概念、原则;

2.软件体系结构的规范描述和分析——通过运用合适的形式化数学理论模型对第一阶段体系结构的非形式化描述进行规范定义;

3.软件体系结构的求精及其验证——大型系统的软件体系结构总是通过从抽象到具体,逐步求精而后得到的;

4.软件体系结构的实施——将求精后的软件体系结构实施于系统的设计中,并将软件体系结构的组件与连接件等有机地组织在一起,形成系统设计的框架;

5.软件体系结构的演化和扩展——在实施软件体系结构时,根据系统的需求,对软件体系结构的扩展和改动;

6.软件体系结构的提供、评价和度量;

7.软件体系结构的终结——不能达到系统设计的要求,不能适应系统的发展。

软件体系结构的重要性

1.整个软件开发的开端;

2.软件开发的基本的指导方针;

3.给予后继开发人员的指导和约束;

4.对软件质量的重大保证;

5.软件修改、变动的保证和约束;

6.提供了软件的可重用性。

软件体系结构研究存在的不足

1.缺乏统一的软件体系结构的概念,导致体系结构的研究范畴模糊.

2. ADL繁多,缺乏统一的ADL的支持.

3.软件体系结构研究缺乏统一的理论模型支持.

4.尽管出现了多种标准规范或建议标准,但仍很难操作.

5.有关软件体系结构性质的研究尚不充分.

6.软件体系结构理论研究与环境支持不同步,导致体系结构应用上的困难.

7.缺乏有效的体系结构复用方案.

8.体系结构发现方法研究相对欠缺.

组件和连接器

组件是软件的组成单元,是软件功能的设计和承载体;

连接器是专门承担组件连接作用的部件,连接的本质是实现连接机制和信息交换协议。

根据组件的概念层次分类:

基础组件;

中层组件;

高层组件;

根据组件的应用分类:

通用组件;

专用组件;

组件的5个特性

1接口特性——与其它组件通信

        完备性 最小化 正交性 方便 高效

2运行特性——完成组件的功能

        数据的采集、传送、存储、计算等

        调度:进程/线程的产生、撤消、通信、管理

        多任务并发处理,任务分配,并行计算

3远程服务特性——多线程

        接受网络上的多源请求

        服务代理

        信息交互

4关联特性——获取相关组件的地址信息

        实地址

        路由地址

        IP地址

        MAC地址

5动态特性

        组件的运行调度——资源分配、并行处理

        组件的生存期管理——进程的产生、撤消

连接的两个要素:

1连接机制——硬件是连接的物质基础

        硬件层:中断、存储、栈、I/O、DMA等;

        基础控制描述层:事件、流、文件等;

        资源和管理层:进程、线程、同步、并发、消息、远程调用;

        系统结构模式层:编译器、解释器、浏览器、中间件等。

2连接协议——信息交换规则

连接的5个特性

1连接的方向性,如:发送、接收

2连接的角色,如发送者,接收者,客户端,服务器

3连接的触发,如电话提机,鼠标操作

4连接的响应,被叫方的响应时间、方式、处理的实时性、并发的能力等。

5连接的层次——连接是严格接层次进行的,如OSI模型

连接不匹配的解决方案

1修改组件

        全面改变组件A,使之符合B的要求;

        使A或B成为支持多实现机制的组件,其中一种机制能符合对方;

        将A中的数据转换成B能识别的,并从A中传送到B中;

2引入中间件

        直接引入转换器;

        在外部建立信息交换表示;

        发布信息交换通用标准。

3采用握手技术——在经常变动的系统中,识别和确定对方

4进行包装——代理技术等。

软件体系结构的风格

典型的体系结构风格有9种:

  1. 数据流风格——批处理、管道和过滤器
  2. 调用与返回风格——主/子程序、OOD、层次结构
  3. 独立组件风格——通信进程、事件隐式调用
  4. 虚拟机风格——解释器、规则基系统
  5. 以数据为中心风格——数据库系统、黑板系统、超文本系统
  6. 过程控制风格——过程控制、模拟器
  7. 客户-服务器风格
  8. C2风格——基于消息广播且面向图形用户界面的Chiron2风格
  9. 异构风格——不同的风格构成

软件开发与软件的生命周期

1.系统分析

        总的目标

        可行性

        成本

        开发时间

2.需求分析

        任务分析,概要设计

        数据或数据库需求

        开发工具分析

3.软件设计

        软件风格设计

        详细设计,细分功能模块

        模块接口定义

        用户界面设计

        软件文档设计

4.软件开发

        程序编制

        数据字典

        开发说明书

5.软件测试

        软件测试设计

        黑盒测试(主要是软件接口测试)

        白盒测试(主要是软件逻辑测试)

        容错性测试

        健壮性测试

6.软件维护

        修改副作用

        适当的升级

HarmonyOS的设计理念

鸿蒙操作系统是基于微内核的全场景分布式操作系统, 3 个关键词:“微内核”“全场景”和“分布式”,创新性理念均是为了物联网设备而设计的

1. 微内核

微内核具有高稳定性、高安全性、高可维护性和高实时性。由于轻便的内核设计使得系统保持低功耗和低内存占用,因此鸿蒙操作系统选择了微内核。

2. 全场景

全场景操作系统的优势就是可以利用其分布式的特征整合硬件资源。例如,在一个区域内,如家庭中,实现分布式任务调度、分布式数据管理等。

跨地区的物联网设备也能形成集群提供统一服务。在物联网技术的推动下,鸿蒙操作系统可以实现跨设备的无缝协同和一次开发多端部署的要求。

3. 分布式

鸿蒙操作系统从底层就具备了分布式操作系统的特性

(1)分布式软总线、(2)分布式设备虚拟化、(3)分布式数据管理、(4)分布式任务调度等关键技术。

HarmonyOS架构

应用层-框架从层-系统服务层-内核层

基于体系结构的软件开发方法

问题定义—>软件需求—>软件体系结构—>软件设计—>软件实现

预祝各位同学都能取得好成绩!

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值