09 2013 档案

摘要:1. 开闭原则(the Open Closed Principle OCP) 一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。因此在进行面向对象设计时要尽量考虑接口封装机制、抽象机制和多态技术。该原则同样适合于非面向对象设计的方法,是软件工程 设计方法的重要原则之一。 我们以收音机的例子为例,讲述面向对象的开闭原则。我们收听节目时需要打开收音机电源,对准电台频率和进行音量调节。但是对于不同的收音机,实现这三个步骤的细节往往有所不同。比如自动收缩电台的收音机和按钮式收缩在操作细节上并不相同。因此,我们不太可能针对每种不同类型的收音机通过一个收音机类来实现(通过重载)这些不同的操作.. 阅读全文
posted @ 2013-09-17 13:34 皁仩腄覺 阅读(215) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2013-09-17 11:44 皁仩腄覺 阅读(169) 评论(0) 推荐(0)
摘要:1. 类图 类图(Class Diagram)是描述类、接口、协作以及它们之间关系的图,用来显示系统中各个类的静态结构。类图是定义其他图的基础,在类图基础上,可以使用状态图、协作图、组件图和配置图等进一步描述系统其他方面的特性。类图包括7个元素:类(Class)、接口(Interface)、协作(collaboration)、依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)以及实现关系(Realization)。1.1 类 类定义了一组有着状态和行为的对象。其中,属性和关联用来描述状态。属性通常用没有身份的数据值表示,如数字和字.. 阅读全文
posted @ 2013-09-17 11:21 皁仩腄覺 阅读(797) 评论(0) 推荐(0)
摘要:1. 用例模型 用例模型包含了两部分:业务用例模型和系统用例模型。1.1 目的 业务用例模型的目的在于: (1)描述企业的内部组织结构 (2)描述企业各部门的业务 (3)关注于角色和系统的交互界面 系统用例模型的目的在于: (1)关注于演示对系统的需求 (2)抛弃部门的功能,更加细化 (3)系统用例模型应该划分子系统以对应不同的功能 这二者最大不同点在于:业务用例模型仅关注于企业部门的业务,而系统用例模型则关注于系统本身实现后的互动。1.2 图素 业务用例模型和系统用例模型有共同的图素,但是在意义上是完全不同的1.2.1 角色 业务用例模型: ... 阅读全文
posted @ 2013-09-12 16:21 皁仩腄覺 阅读(228) 评论(0) 推荐(0)
摘要:1.需求分析:通过对客户业务的了解和与客户对流程的讨论对需求进行基本建 模,最终形成需求规格说明书。2.总体设计:通过分析需求信息,对系统的外部条件及内部业务需求进行抽象建模,最终形成概要设计说明文档。3.详细设计:此部分在对需求和概要设计的基础上进行系统的详细设计(也包含部分代码说明)。4.开发编程:对系统进行代码编写。5.测试分析与系统整合:对所有功能模块进行模拟数据测试及其它相关性测试并整合所有模块功能。6.现场支持:系统上线试运行进行现场问题记录、解答。7.系统运行支持:系统正式推产后,对系统进行必要的维护和BUG修改根据实际情况一般软件开发流程分为以下四个部分。(1)需求分析阶段:  阅读全文
posted @ 2013-09-12 10:11 皁仩腄覺 阅读(280) 评论(0) 推荐(0)
摘要:核心代码如下:HWND hVideoWnd = capCreateCaptureWindow(NULL,WS_POPUP,0,0,200,300,hWnd,0); //创建摄像头视频窗口if (capDriverConnect(hVideoWnd,0)) //连接驱动程序{ ::SetParent(hVideoWnd,hWnd); //设置父窗口 ::SetWindowLong(hVideoWnd,GWL_STYLE,WS_CHILD); ::SetWindowPos(hVideoWnd,NULL,10,10,300, 300, SWP_NOZORDER); ... 阅读全文
posted @ 2013-09-05 15:26 皁仩腄覺 阅读(322) 评论(0) 推荐(0)
摘要:(一) IO模型I/O设备处理方式一般有两种 同步和异步同步阻塞:这种方式就一直读写IO直道操作完成或者失败。异步IO:使用overlapped I/O。overlapped I/O是WIN32的一项技术,你可以要求操作系统为你传送数据,并且在传送完毕时通知你。(二)使用overlapped I/O: 先来看看OVERLAPPED 结构体有两种定义:typedef struct _OVERLAPPED { DWORD Internal; DWORD InternalHigh; DWORD Offset; DWORD OffsetHigh; HANDLE hEvent; }O... 阅读全文
posted @ 2013-09-04 15:55 皁仩腄覺 阅读(1084) 评论(0) 推荐(0)
摘要:(1)几个概念物理地址:芯片级别的内存寻址,由地址总线决定的,一旦连接到CPU 物理地址不会更变。虚拟内存:抽象出来的虚拟内存地址,真实不存在。进程使用虚拟内存地址,虚拟内存管理单元(MMU)转换为真实的物理地址。逻辑地址:内存分段机制中使用(早期内存管理机制),逻辑地址是段地址和段内便宜地址组合值。线性地址:对应页式内存管理中 转换前的地址。线性空间的大小在32-bit平台上为4GB的固定大小,对于每个进程都是这样(一个应用可以是多进程的,在OS眼中,是以进程为单位的)。也就是说线性空间不是进程共享的,而是进程隔离的,每个进程都有相同大小的4GB线性空间。一个进程对于某一个内存地址的访问,与 阅读全文
posted @ 2013-09-03 17:33 皁仩腄覺 阅读(376) 评论(0) 推荐(0)
摘要:定时器是一种轮询的机制,每隔一段时间去执行下相关的函数。(1) 内核中 定时器结构 Linux在include/linux/timer.h头文件中定义了数据结构timer_list来描述一个内核定时器 CODE>struct timer_list { struct list_head list; unsigned long expires; unsigned long data; void (*function)(unsigned long); } 1> list: 双向链表元素list:用来将多个定时器连接成一条双向循环队列。 2> expires:指定定时器到期的时间,这 阅读全文
posted @ 2013-09-03 15:21 皁仩腄覺 阅读(282) 评论(0) 推荐(0)
摘要:DebugView是一个系统调试信息输出的捕获工具。在程序中使用如下函数: 1> OutputDebugString 或者在MFC中使用TRACE 2> 内核模式中使用Out_Debug_String,DbgPrint ,_Debug_Printf_Service编译程序为DEBUG版本,然后运行程序(不是在vs 中运行,是单独运行),打开debugview 就可以在其中看到输出的调试信息。Debugview 也支持远程调试,在本机运行Dbgview.exe /c/s/t 可以让DebugView以服务的形式运行。在远端打开Debugview,点击Computer/connect 阅读全文
posted @ 2013-09-02 09:49 皁仩腄覺 阅读(5954) 评论(0) 推荐(0)