1. 面向对象系统分析与设计
1.1. 基本概念
1.1.1. 对象
1.1.1.1. 【19下选12】
1.1.1.2. 构成系统的基本单位
1.1.1.3. 包含三个基本要素,分别是对象标识、对象状态和对象行为
1.1.2. 类
1.1.2.1. 对象是类的实例
1.1.2.2. 类是对象的模板
1.1.2.3. 现实世界中实体的形式化描述
1.1.2.3.1. 【20下选13】
1.1.3. 抽象
1.1.4. 封装
1.1.5. 继承
1.1.5.1. 【22下选12】
1.1.5.2. 类之间的层次关系(父类与子类)
1.1.6. 多态
1.1.6.1. 【21上选13】
1.1.6.1.1. 【19上选15】
1.1.6.1.2. 【22上选13】
1.1.6.2. 使得在多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现
1.1.7. 接口
1.1.7.1. 【21下选13】
1.1.7.2. 描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做
1.1.8. 消息
1.1.8.1. 体现对象间的交互,通过它向目标对象发送操作请求
1.1.9. 组件
1.1.9.1. 软件系统可替换的、物理的组成部分,封装了模块功能的实现
1.1.9.2. 可以跨平台
1.1.9.2.1. 【21上选16】
1.1.9.3. 实现了某些功能的、 有输入输出接口的黑盒子
1.1.9.4. CORBA (Common Object Request Broker Architecture, 公共对象请求代理架构)是 OMG 组织制订的一种标准的面向对象的应用程序架构规范
1.1.9.5. 与语言本身没有任何关系
1.1.10. 复用
1.1.10.1. 将已有的软件及其有效成分用于构造新的软件或系统
1.1.10.2. 组件技术是软件复用实现的关键
1.1.11. 模式
1.1.11.1. 描述了一个不断重复发生的问题,以及该问题的解决方案
1.1.11.2. 包括特定环境、问题和解决方案三个组成部分
1.2. 统一建模语言(Unified Modeling Language,UML)
1.2.1. 对软件进行可视化描述、构造和建立软件系统的文档
1.2.2. 一种可视化的建模语言,而不是编程语言
1.2.3. 比较适合用于迭代式的开发过程
1.2.4. 用例图(Use Case Diagram)、类图(Class Diagram)、对象图(Object Diagram)、组件图(Component Diagram)、部署图(Deployment Diagram)、状态图(State Diagram)、序列图(Sequence Diagram)、协作图(Collaboration Diagram)、活动图(Activity Diagram)
1.2.5. RUP(Rational Unified Process)
1.2.5.1. 使用面向对象技术进行软件开发的最佳实践之一,是软件工程的过程
1.3. 面向对象系统分析
1.3.1. 用例模型、类-对象模型、对象-关系模型和对象-行为模型
1.4. 面向对象系统设计
1.4.1. 软件基础架构(概要设计)和完整的类结构(详细设计)
1.4.2. 用例设计、类设计和子系统设计
2. 软件架构
2.1. 管道/过滤器模式
2.1.1. 体现了各功能模块高内聚、低耦合的“黑盒”特性,支持软件功能模块的重用,便于系统维
2.1.1.1. 【19下选13】
2.1.2. 每个过滤器自己完成数据解析和合成工作(如加密和解密),易导致系统性能下降,并增加了过滤器具体实现的复杂性
2.1.3. 典型应用是批处理系统
2.1.3.1. 【22下选13】
2.2. 面向对象模式
2.2.1. 基于组件的软件开发(Component-Based Development,CBD)
2.3. 事件驱动模式
2.3.1. 组件并不直接调用操作,而是触发一个或多个事件
2.3.1.1. 即触发事件会导致另一组件中操作的调用
2.3.2. 各种图形界面应用
2.4. 分层模式
2.4.1. 采用层次化的组织方式,每一层都为上一层提供服务,并使用下一层提供的功能
2.4.2. 分层通信协议
2.4.2.1. ISO/OSI的七层网络模型
2.4.3. 通用应用架构的基础模式
2.5. 客户/服务器模式(Client/Server,C/S)
2.5.1. 基于资源不对等,为实现共享而提出的模式
2.5.2. 三层(多层)C/S模式,即多层应用架构
2.5.3. 浏览器/服务器(Browser/Server,B/S)模式
2.6. 软件架构分析与评估
2.6.1. 【21上选14】
2.6.2. 数据库的选择问题
2.6.2.1. 关系数据库
2.6.3. 用户界面选择问题
2.6.3.1. HTML/HTTP (S)协议是实现Internet应用的重要技术
2.6.4. 灵活性和性能问题
2.6.5. 技术选择的问题
2.6.6. 人员的问题
2.7. 软件中间件
2.7.1. 【19下选15】
2.7.1.1. 【22上选15】
2.7.2. 位于硬件、操作系统等平台和应用之间的通用服务
2.7.3. 解决了分布系统的异构问题
2.7.4. 数据库访问中间件
2.7.4.1. 【20下选14】
2.7.4.2. Windows平台的ODBC和Java平台的JDBC
2.7.5. 远程过程调用中间件(Remote Procedure Call,RPC)
2.7.6. 面向消息中间件(Message-Oriented Middleware,MOM)
2.7.6.1. 利用高效可靠的消息传递机制进行平台无关的数据传递,并可基于数据通信进行分布系统的集成
2.7.6.2. IBM的MQSeries
2.7.6.2.1. 【19上选16】
2.7.7. 分布式对象中间件
2.7.7.1. OMG的CORBA、Java的RMI/EJB、Microsoft的DCOM
2.7.8. 事务中间件
2.7.8.1. 事务处理监控器(Transaction Processing Monitor,TPM)
2.7.8.2. 提供支持大规模事务处理的可靠运行环境
2.7.8.3. IBM/BEA的Tuxedo
2.8. 典型应用集成技术
2.8.1. 数据库与数据仓库技术
2.8.1.1. 操作型处理
2.8.1.1.1. 事务处理
2.8.1.2. 分析型处理
2.8.1.2.1. 管理人员的决策分析
2.8.1.3. 数据仓库(Data Warehouse)
2.8.1.3.1. 一个面向主题的(Subject Oriented)、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策
2.8.1.3.1.1. 【20下选15】
2.8.1.3.1.1.1. 【22下选14】