10 程序设计基础
冯诺依曼计算机1 组成部分 运算器:算术逻辑单元ALU。算术运算和逻辑运算。加法器、寄存器、控制线路。 控制器:程序计数器PC、指令寄存器IR、指令译码器ID、时序控制电路。运算器和控制器组成了CPU。 存储器:计算机用来存储数据的记忆装置。内存储器和外存储器。 输入设备:接受用户输入的程序和数据信息,将他们转换成计算机可以处理的二进制形式的数据存储到内存当中。 输出设备:将存放在内存中的计算机处理结果以人们能够识别的形势表现出来。 分类:高性能计算机、微信计算机、工作站、服务器、嵌入式计算机。 程序和数据均以二进制表示,以相同的方式存放在存储器中,按地址寻访。 2 指令与程序 指令:计算机执行某种操作的及其命令,他可以被计算机硬件直接识别和执行。组成:操作码+操作数。操作码指明操作的类型。操作数指明操作对象的数据或所在的内存单元地址。 指令系统:一台计算机所有指令的集合称为指令系统。指令分类:数据传送指令、数据处理指令、程序控制指令、输入输出指令、硬件管理指令。 执行指令的步骤:取指令、分析指令、处理指令。指令流水线技术。 程序:完成一定功能的指令的有序集合。...
机器学习分类
机器学习分类1 机器学习基本分类基于学科的分类 统计学方法:收集、分析、统计数据。描述数据的集中和离散程度,模型化数据资料。 人工智能:一种积极地学习方法,利用已有的线程的数据对问题进行计算。从而提高机器本身计算和解决问题的能力 信息论:信息的度量和熵的度量。 控制理论:对象之间的联系和通信。 基于学习模式的分类 归纳学习:通过实例数据和结果分析,使得机器能够归纳获得该数据的一种一半模型,从而对更多未知的数据进行预测。 解释学习:根据已有的数据对一半的模型进行解释,从而获得一个较为泛型的学习模型。 反馈学习:通过学习已有的数据,根据不断获取数据的反馈进行模型的更新。从而直接获得一个新的,可以对已有数据进行归纳总结的机器学习方法。 基于应用领域的分类 专家系统:通过数据学习,获得某个方面的经验和认识能力。 数据挖掘:通过对既有知识和数据的学习,挖掘出隐藏在数据之中的行为模式和类型。 图形识别:通过学习已有的数据,从而获得对不同的图像或同一类图像中特定目标的认识。 人工智能:对已有的模式的认识和学习。 自然语言处理:实现人与对象之间通过某种语言进行有效通信。 模式识别,计算机视觉...
1. 软件建模与软件架构
课程内容介绍 基于用例的需求建模 基于类图的静态建模 基于对象交互分析的动态建模 状态机建模 目录 软件模型和建模 软件架构 模型驱动的架构MDA 软件架构的视图 发展史 UML知识补充 1 软件模型和建模1.1 模型作用 在某一精度和细节层次提供系统的抽象。分析模型获得对所开发的系统的更好的理解。 是一种设计,用来指导后续过程。建模驱动架构。 1.2 建模过程面向对象的建模方法:封装、继承、多态。封装,把客观事物封装成抽象的类。将实物的属性和对属性的操作抽象为类的属性和类的操作。将实物不必要的信息进行隐蔽。 继承,让某一个类型的对象获取另一种对象的属性和方法,实现代码的重用,而不需要重新写这些方法。 多态,类实例的相同方法在不同的情况下会有不同的表现形式。使得不同结构的类的对象可以共享外部接口。 统一建模语言UML为面向对象建模提供了一套标准的图形语言和表示法。 四中建模基本方法: 用例建模——需求 静态建模——结构 动态建模——行为 状态建模——状态 2 软件架构 将系统的总体结构与系统的各个构件的内部细节进行==分离==。 ...
2. 软件架构设计方法
软件架构设计方法目录1 面向对象2 信息隐藏3 继承和泛化4 并发处理5 设计模式6 软件架构和构件7 软件质量属性8 基于用例的软件生命周期9 需求、分析和设计建模活动 1 面向对象 这一部分请参考面线对象的课程笔记。 1.1 关键概念 对象类属性操作接口对象的接口是他提供的操作的集合。 2 信息隐蔽2.1 信息隐蔽基础接口是对象可见的部分,其他对象通过接口来调用操作 对象的数据结构发生变化时,不会对其他对象产生影响,只对拥有这个数据结构的对象(同一个类)有影响,并且,由于借口不变,对这个对象的操作调用不变。 基本模块是对象,信息隐藏的内容有栈对象。必须通过栈对象来访问操作。 2.2 信息隐蔽的实现数组实现的信息隐蔽策略链表实现的信息隐蔽策略2.3 信息隐藏对象的设计 首先设计信息隐蔽对象的外部接口 其次设计信息隐蔽对象的内部实现细节 3 继承和泛化3.1 作用 实现了代码的复用,是一种扩展机制 4 并发处理4.1 主动对象 主动对象=并发对象=并发过程=并发任务 拥有自己的空值线程,并且独立于其他对象进行执行 每个主动对象处理一个顺序...
5. 动态交互建模
动态交互建模目录1概念1.1 动态模型概念 描述了被建模系统的控制行为以及构件的交互顺序。对象内部的动态模型——有限状态机模型。对象之间的动态模型——交互图或通信图。 基于用例建模和问题域的静态建模。 2对象交互建模2.1 通信图 描述了一组对象如何通过对象间的消息传递来实现交互。 每一个用例对应一个通信图。通信图中的对象都是用例包含的对象,对象之间的消息发送序列由编号来描述。通信图中的消息序列与用例描述中参与者与系统的交互序列相对应。 2.2 序列图 按照时间顺序展现了对象之间的交互。可以描述循环和迭代的过程。 不需要编号,从上到下,表示了消息的先后顺序。 序列图的优缺点 优: 清楚地显示对象间的消息传递序列 优: 对设计对象操作的执行逻辑有益 缺: 不易表述对象的关联 缺: 涉及多个对象的复杂序列图及使用了循环和判定逻辑的序列图不易阅读 通信图的优缺点 优: 清楚地展现了对象的布局及其关联关系 优: 易于平滑过渡到软件架构的设计 缺: 表示消息序列直观性差(用编号) 缺: 对设计对象操作的执行逻辑帮助有限 2.3 消息序列 交互图上的交互序列描述了用例中的一个场...
3.用例建模
用例建模目录 需求建模 用例 参与者 确定用例 用例图 用例描述 用例关系 1 需求建模1.1 需求和需求建模 描述了用户对系统的期望,主要涉及系统的外部特性 类型: 包括功能需求和非功能需求 目的: 代替手工系统或者替代旧系统 建模: 包含需求分析和需求规约 1.2 相关问题 需求分析需要考虑的问题:涉众扮演的角色、系统使用、特性、优势和局限性。 需求规约:与用户达成共识的文档。也就是需求分析说明书。需求规约的质量属性:正确、完整、无二义性;一致、可验证、易理解特性;可修改、可追踪。 非公能需求:性能、可用性、安全。 2 用例2.1 用例作用用例建模是用来描述系统功能的一种方法。用例定义了一个或多个参与者与系统交互的序列。用例不关心具体实现,总是从参与者的输入开始。 2.2 用例表示 用例名称 概述 依赖:是否依赖、包含、扩展了其他用例。 参与者 前置条件:用例启动的条件 主序列:主场景 备选序列:在某些决策点上进入的场景 非公能需求:性能和安全性的需求 后置条件:用例执行完后总是为真的结果 未解决的问题:需要讨论的问题 3 参与者3.1 参与者作用描述了一个与系统交互...
4. 静态建模
静态建模 描述了被建模系统的静态结构,不随时间变化而变化。 问题域静态建模:分析阶段对系统的主要概念进行建模。 目录 类间关系 约束 UML表示 系统上下文的静态建模 外部类静态建模 实体类的静态建模 1 类间关系1.1 关联关系 定义了两个类之间静态的、结构化的关系。 关联称为链接。类之间有链接关系的对象之间才会有链接。关联的方向取决于动作的方向。 自反关联(一元关联):一个类的一个对象和这个类的另一个对象之间的关联。 三元关联:三个类间的关联(两个类之间的关联关系也转化为一个类) 关联类:对两个或多个类之间的关系进行建模的类。 关联的多重性:一对一关联、一对多关联、规定数值的关联、可选关联(0…1表示可能存在)、多对多关联。 1.2 整体和部分的关系(组合聚合关系) 关系强弱:组合>聚合>关联 组合涉及整体和部分之间的物理关系。 聚合概念上的整体和部分关系,可以分开可以合并。 1.3 泛化特化关系 相同属性抽象为泛化类 不同属性表示了特化的性质 2 约束对关联、对象属性进行约束。 3 问题域静态建模——上下文类 通过分析用例模型来对问题域建模...
8.面向对象的软件架构设计
面向对象的软件架构设计1 概述2 设计类的接口和操作3 设计信息隐藏类4 设计继承5 类接口规约6 类的详细设计1 概述 信息隐藏 接口的实现与分离 顺序性面线对象软件设计,拥有一个控制线程。对象之间通信采用调用返回模式。 2 设计类的接口和操作 类的接口由每个类提供的操作组成。包括输入参数、输出参数、返回值。 类的操作可以根据静态模型或动态模型确定。 类的操作可以基于交互模型设计。当两个对象交互时,发送消息的对象调用接受消息的对象的操作。消息传递映射为操作调用。(消息名=操作名,消息参数=操作参数) 分析模型,捕获对象间传递的消息,而不是操作的准确语法。设计模型,必须提供操作的准确语法,包括名称和结构。 调用操作=通信图中的同步消息。返回值=返回消息。 3 设计信息隐藏类3.1 实体类设计 实体类是封装数据的类,其实例用来存储信息的持久化对象。 实体类分为数据抽象类和包装器类。数据抽象类:封装数据结构。包装器类:隐藏了数据,提供了接口。 分析模型中的实体类被设计为数据抽象类。封装了数据结构,并隐藏了数据结构的内部细节。属性静态建模时确...
6. 软件架构模式
软件机构模式1 基于构件的软件架构模式2 软件架构的多视图3 软件架构模式4 接口设计1 软件架构1.1 定义 一个程序或计算机系统的软件架构是包含了该系统的软件元素、这些元素的外部可见的属性以及这些元素之间关系的结构或一组系统结构 描述角度:静态和动态;动能和非功能的。 1.2 基于构件的软件架构 软件由构件组成,每个组件相对独立的封装了一些信息。 构件可以由简单对象或由其他对象组成的复合对象。 构件通过接口与其他对象通信。(接口描述了通信所需要的信息,接口与实现分离,接口约定了通信模式) 1.3 设计方式 顺序式设计:没有控制线程的被动类。把构件单独编译存储在构件库中,通过调用-返回的方式进行通信。(只有一个主动类) 并发或分布式设计:构件是主动地,可以被部署到一个分布式环境的不同节点上,并发构件可以通过几种不同的通信模式进行通信:同步模式、异步模式、代理模式,群组通信模式。 2 软件架构的多视图2.1 视图角度 结构视图:是一种静态视图,使用类图来描述。 动态视图:是一种行为视图,使用通信图来描述。 部署视图:软件架构的物理配置,子系统如何在一个分布的配置中,分配到不...
7. 软件子系统架构设计
软件子系统架构设计目录 相关问题 集成通信图 关注点分离 组织原则 消息通信决策 1相关问题1.1 子系统设计建模概述 分析建模是基于需求建模(用例建模)的结果 设计建模定义了软件的结构和行为属性的软件架构 将系统分解为子系统,对子系统进行独立设计。 1.2 如何子系统设计建模 子系统是一个与其他子系统功能相对独立。 定义子系统的接口,然后就可以具体设计了。 子系统和模块的定义是等价的。 1.3 子系统化分方面考虑的问题 地理位置上的分布情况 服务器职责区分 将功能相关、耦合度高的对象划分为同一子系统。 2集成通信图2.1 通信图作用 生成初始的软件设计 通信图比序列图更能形象地描述对象之间的联结以及传递的信息。 集成通信图是泛化的UML图,描述了对象之间所有可能的交互。通信图上用不编号的简单消息表示。 可以通过高层的子系统通信图进行简化。 2.2 通信图的开发方法 合成顺序与用例执行顺序一致。 各个用例的通信图进行一次叠加。从后向前添加 3关注点分离3.1 分离关注点的方法 复合对象:复合对象属于同一个子系统。 地理位置:地理位置不同应该属于不同的子系统 客户端和服...












