软件接口

计算机基础

亡梦爱人 提交于 2020-04-06 00:32:10
一、为何要学习计算机基础?       Python是一门编程语言,即通俗一点说就是语言。     程序用编程语言来写程序,最终开发的结果就是一个软件。 操作系统 是出现在硬件之上的,是用来 控制硬件的。 所以,我们开发时只需要 调用操作系统为我们提供的简单的接口 就可以了。    如上图所示,我把计算机的系统分为了上面三大块。 硬件,操作系统,应用程序 。 二、计算机硬件介绍 1. 硬件 的目的:为了运行软件给它的一些指令。我们可以优先从硬件中提取出这三个主要的东西,分别是: CPU,内存,硬盘 在计算机中,用来计算的是什么呢?当然是 CPU 了。多数CPU都有两种模式,即内核态与用户态。这里的即内核态与用户态将会在下面的内容中讲到。     CPU是人的大脑,负责运算        内存是人的记忆,负责临时存储        硬盘是人的笔记本,负责永久存储        输入设备是人的耳朵或眼睛,负责接受外部的信息传给CPU        以上所有的设备都通过总线连接,总线相当于人的神经 总线示意图 三、处理器(寄存器及内核态与用户态切换)     1.计算机的大脑是CPU,它从内存中取指令-▶解码-▶执行,然后在取指令,解码,执行,周而复始,直至整个程序被执行完成。    2. 寄存器是一个存储设备, 最快的一种存储设备 就是寄存器。 3.寄存器的分类      

如何向妻子解释设计模式

≡放荡痞女 提交于 2020-03-26 10:25:32
简介   自上篇翻译< 如何向妻子解释OOD >后收到了很好的反应。故特继续翻译作者的< How I explained Design Patterns to my wife: Part 1 >一文,以飨读者。在此文中,作者依旧通过与妻子浅显易懂的对话,向读者解释了什么是设计模式。 设计模式是什么? Shubho :通过我们关于面向对象设计原则(OODP,即SOLID原则)的对话,我想你已经对面向对象设计原则(OODP)有了基本的认识。希望你不要介意我把对话分享到博客上。你可以在这找到它: < 如何向妻子解释OOD >. 设计模式是这些原则在某些特定公共场景下标准化的应用,接下来让我们通过一些例子学习什么是设计模式。 Farhana : 当然,我喜欢例子。 Shubho : 让我们以汽车为例讨论一下。汽车是一个很复杂的对象,由成千上万的其它对象组成,如发动机,车轮,方向盘,车座,车体等等其他不同的部分或部件。 汽车部件 当装配汽车时,制造商需要集中并装配这些更小的自成汽车子系统的不同部件。而这些不同的小部件同样也是复杂的对象,其它制造商同样要生产并组装它 们。在生产汽车时,汽车公司并不会为怎么生产组装这些部件操心(前提是他们要确保这些对象/设备的质量)。当然,汽车制造商更加关心怎么装配这些不同部件 以便能生产不同型号的汽车。 通过遵循不同的设计,组装不同的部件,生产不同型号的汽车

在代码层面描述软件的可测试性

假如想象 提交于 2020-03-05 09:42:20
  软件可测试性是指通过测试(通常是基于运行的测试)揭示软件缺陷的容易程度。在开发设计良好的系统的成本中,至少有40%是用在了测试上。如果我们能够降低此成本,那带回的回报将是巨大的。当然,如果要对系统进行正确的测试,必须能够“控制”每个组件的内部状态及其输入,然后“观察”其输出。这通常通过使用“测试工具”进行,这是一种专门设计的软件,用于执行所测试的软件。这可能会如同在各种接口上回放已记录的数据一样简单,也可能会像测试发动机的燃烧室一样复杂。   质量属性的第五大战术是可测试性战术。什么是可测试性战术,顾名思义,测试就是为了发现错误,那么可测试性战术的目标是允许在完成软件开发的一个增量后,轻松地对软件进行测试。可测试性战术的分类可以由下图所示:   1.记录/回放(Record/playback ):记录/回放是指将捕获跨接口的信息,并将其作为测试专用软件的输入。   使用命令模式把一个请求或者操作封装到一个对象中,把发出命令的责任和执行命令的责任分割开,委派给不同的对象,可降低行为请求者与行为实现者之间耦合度。在这里,我们通过维护undo和redo两个盛放Command的栈(用List实现),首次执行一个Command时,执行execute()并将其放入undo栈内,同时要清空redo栈;当执行撤销操作时把undo栈内最上面一个Command拿出来执行undo()

2020/03/02 软件架构原则

♀尐吖头ヾ 提交于 2020-03-02 13:10:25
软件架构原则 1.开闭原则 开闭原则:对 扩展开放 ,对 修改关闭 。将业务逻辑进行抽象,构建整个流程。用具体实现去扩展细节,提高可维护性。(例如模版方法) 2.依赖倒置原则 高层模块不依赖底层模块。个人理解上层跟下层要隔离,还是抽象功能,上层调用接口定义,下层怎么改,上层不需要修改。 3.单一职责原则 单一职责顾名思义就是干一件事。如果同时干两件事,乱码乱不说,改一个可能还会影响跟他不相关的逻辑 4.接口隔离原则 接口隔离原则就是用多个专门的接口,不要用一个大的接口,我依赖一个接口,里面一大堆我用不到的方法,这样不好 5.迪米特原则 迪米特原则是一个对象应该对其他对象保持最少了解,只和朋友交流,不和陌生人说话。如果想让陌生人做事情,告诉朋友,朋友去告诉陌生人去做。这样我们就只需要跟朋友沟通就好了。 6.里氏替换原则 子类可以扩展父类的方法,但是不能改变父类的原有功能。子类不能覆盖父类的非抽象方法,子类可以增加自己的方法。好处就是我原来用的是父类的实例,现在改成子类了,逻辑不会有错误。 7.合成复用原则 合成复用原则是尽量使用组合模式,不要使用继承模式。 来源: CSDN 作者: 年哥00 链接: https://blog.csdn.net/weixin_44910521/article/details/104608556

wpa_supplicant软件架构分析

三世轮回 提交于 2020-02-29 12:33:44
struct socket 数据结构 interface network callback 目录 (?) [+] 启动命令 wpa_supplicant 初始化流程 main函数 wpa_supplicant_init函数 wpa_supplicant_add_iface函数 wpa_supplicant_run函数 Wpa_supplicant提供的接口 上行接口 Dbus接口 Unix domain socket 接口 下行接口 Control interface commands 1. 启动命令 wpa supplicant 在启动时,启动命令可以带有很多参数,目前我们的启动命令如下: wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/wifi/wpa_supplicant.conf -f/data/wifi/wpa_log.txt wpa_supplicant 对于启动命令带的参数,用了两个数据结构来保存, 一个是 wpa_params, 另一个是 wpa_interface. 这主要是考虑到 wpa_supplicant 是可以同时支持多个网络接口的。 wpa_params 数据结构主要记录与网络接口无关的一些参数设置。 而每一个网络接口就用一个 wpa_interface 数据结构来记录。

BubbleGum96 开箱杂谈与软件资源

混江龙づ霸主 提交于 2020-02-22 00:00:39
前言 原创文章,转载引用务必注明链接。 拿到有一段时间了,一直在想写哪些内容。96boards发布以来,吸引了很多眼球。这里我就慢慢随便聊聊,希望能让大家对96boards有更多了解。 开箱 【开箱图】拿到手是这样子,没有包装盒,估计官方也在调试完善。附带电源适配器比较方便,毕竟96boards系列的电源接口和电压并不常见。这批次没有附送串口转接板。 【与Hikey(Lemaker Version)对比——正面】 【对比——背面】 【Bubblegum96 Vs. Hikey (Lemaker Version)】 板子左上角功能选择B采用按钮方式,H采用跳针方式,各有利弊,前者简单一些。 之前使用过Lemaker Guitar开发板,其采用炬芯S500 SoC + ATC2609 PMU,性能和多媒体音质变现非常满意。S900,是炬芯定位物联网创客的高端产品,价格比S500高了一倍,详细可移步 雷锋网的报道 ,炬芯公司发布的这两款产品以及最近的 S900_VR 显示出其对物联网和创客的重视,从一开始就显示出与全志产品重点面向机顶盒;海思面向移动手机芯片的不同。 B使用的Wifi|BT模块支持BT 4.0协议;H则使用TI公司的模块,支持BT 4.1,当然价格也更高。关于蓝牙4.1协议与之前协议的区别可以看知乎 这篇介绍 。 B拥有一个USB 3.0母接口,是SoC原生支持

某型车载导航软件测试

房东的猫 提交于 2020-02-21 19:22:15
1.设备组成 ETst_USB系统主要由硬件部分与软件部分组成。硬件部分包括1553B板卡、RS232/422/485板卡、CAN总线板卡、AD采集板卡、DA转换板卡、DI/DO板卡等。所有硬件板卡均采用USB的接口形式,从而灵活便携,能适应多种测试环境搭建的需要,同时也有利于充分利用现有的测试资源。软件部分由测试设计软件模块、测试执行服务软件模块、测试执行客户端软件模块、设备资源管理软件模块等主要软件模块以及曲线数据生成、CRC插件生成与诊断、测试数据记录与查看、应用协议生成工具、应用协议模板管理、测试报告生成等系列工具组成。系统架构如下图所示。 使用ETest_USB平台进行装备嵌入式系统软件测试的步骤如下图所示: 首先使用测试设计软件建立待测系统模型、设计测试用例及数据、生成测试目标文件。 然后利用CAN、RS232等各类通信板卡形成适合于待测单配置嵌入式设备或待测嵌入式系统的适配接口,连接到待测系统。 接下来使用测试执行服务软件读取测试目标文件;测试执行服务软件驱动测试执行客户端软件,测试执行客户端软件将测试数据转换为各类板卡的输出数据输出到被测对象,从而驱动被测对象的软件运行。 同时,被测对象运行所产生的输出数据发送到通信板卡接口,通过测试执行客户端软件进入测试执行服务软件中。在测试过程中可以通过测试数据记录与查看软件和测试监控软件对测试数据进行监控、分析与评估。

车载通信系统配置项与系统级别测试研究

家住魔仙堡 提交于 2020-02-21 18:21:00
1.设备组成 ETst_USB系统主要由硬件部分与软件部分组成。硬件部分包括1553B板卡、RS232/422/485板卡、CAN总线板卡、AD采集板卡、DA转换板卡、DI/DO板卡等。所有硬件板卡均采用USB的接口形式,从而灵活便携,能适应多种测试环境搭建的需要,同时也有利于充分利用现有的测试资源。软件部分由测试设计软件模块、测试执行服务软件模块、测试执行客户端软件模块、设备资源管理软件模块等主要软件模块以及曲线数据生成、CRC插件生成与诊断、测试数据记录与查看、应用协议生成工具、应用协议模板管理、测试报告生成等系列工具组成。系统架构如下图所示。 使用ETest_USB平台进行装备嵌入式系统软件测试的步骤如下图所示: 首先使用测试设计软件建立待测系统模型、设计测试用例及数据、生成测试目标文件。 然后利用CAN、RS232等各类通信板卡形成适合于待测单配置嵌入式设备或待测嵌入式系统的适配接口,连接到待测系统。 接下来使用测试执行服务软件读取测试目标文件;测试执行服务软件驱动测试执行客户端软件,测试执行客户端软件将测试数据转换为各类板卡的输出数据输出到被测对象,从而驱动被测对象的软件运行。 同时,被测对象运行所产生的输出数据发送到通信板卡接口,通过测试执行客户端软件进入测试执行服务软件中。在测试过程中可以通过测试数据记录与查看软件和测试监控软件对测试数据进行监控、分析与评估。

通用接口配置组件研究

北城以北 提交于 2020-02-19 11:55:09
1.设备组成 ETst_USB系统主要由硬件部分与软件部分组成。硬件部分包括1553B板卡、RS232/422/485板卡、CAN总线板卡、AD采集板卡、DA转换板卡、DI/DO板卡等。所有硬件板卡均采用USB的接口形式,从而灵活便携,能适应多种测试环境搭建的需要,同时也有利于充分利用现有的测试资源。软件部分由测试设计软件模块、测试执行服务软件模块、测试执行客户端软件模块、设备资源管理软件模块等主要软件模块以及曲线数据生成、CRC插件生成与诊断、测试数据记录与查看、应用协议生成工具、应用协议模板管理、测试报告生成等系列工具组成。系统架构如下图所示。 使用ETest_USB平台进行装备嵌入式系统软件测试的步骤如下图所示: 首先使用测试设计软件建立待测系统模型、设计测试用例及数据、生成测试目标文件。 然后利用CAN、RS232等各类通信板卡形成适合于待测单配置嵌入式设备或待测嵌入式系统的适配接口,连接到待测系统。 接下来使用测试执行服务软件读取测试目标文件;测试执行服务软件驱动测试执行客户端软件,测试执行客户端软件将测试数据转换为各类板卡的输出数据输出到被测对象,从而驱动被测对象的软件运行。 同时,被测对象运行所产生的输出数据发送到通信板卡接口,通过测试执行客户端软件进入测试执行服务软件中。在测试过程中可以通过测试数据记录与查看软件和测试监控软件对测试数据进行监控、分析与评估。

《自拍教程》软件接口及其输入输出

陌路散爱 提交于 2020-02-19 10:50:29
软件接口及其输入输出 电脑或其他智能终端设备,比如手机,车机,电视机等, 其搭载的软件产品(包括操作系统软件,应用程序App等), 这些软件产品的主要功能是计算处理功能,软件接口是预留的, 允许外界数据(包括图像,文本,音视频,参数,变量等), 按照一定的协议或者要求,输入到软件进行处理。 主要包括以下几种软件接口: 1. UI界面接口 UI(User Interface)也叫用户操作接口,值得是界面上的各类人类可以识别的控件元素,包括按钮,文本输入框,标签,图像等... 所以我们经常把测试叫做界面测试,就是从界面UI提供的各类接口,进行点击事件输入或者文本输入,进行数据处理。 */ /*--> */ } 接口 输入 输出 界面按钮 点击登录按钮 可跳转到登录界面 图标按钮 点击微信App图标一次 可运行微信App 文本输入框 Wifi登录密码界面输入密码 可成功输入密码文本 录音按钮 点击录音按钮,可数字音频输入 完成录音并生成录音文件 录像按钮 点击录像按钮,可图像数据输入 完成录像并生成视频文件 …… 2. Web服务接口 */ /*--> */ 接口 输入 输出 注册用户接口地址_POST方式: http://zipython/api/UserManage/RegistUser json={ "AppCode":"Weixin", "UserName":"wusanren"