关于编写高速仪器配套软件的相关感悟

一年前,我一直认为软件是整个仪器中最简单的部分,不需要各种阻抗匹配,不需要算传递函数,不需要时序逻辑仿真,不需要准直光路,不会烧片子,不会受各种伤……总觉得把光学和机械部分搞定,然后把FPGA和MCU固件写好,软件不过就是显示和保存数据而已,没什么大不了的。其实不然,当仪器的数据速率和数据量达到一定的程度之后,软件同样会成为整个系统的瓶颈。试想如果软件来不及记录数据,或是无法连贯地显示数据,那
阅读本文

软件测试技术基础(补充中)

参考归纳自《软件测试技术基础教程》 软件生命周期概述 什么是软件?   软件即是源代码、文档、配置数据的集合体。对于软件测试而言,既然测试对象是软件,那么实现用户需求的源代码、文档、配置数据(驱动接口数据)都可作为测试对象。   软件是个逻辑概念,不能作为实体展示,仅能通过运行活动展示其所具有的功能和性能表现,软件不像硬件产生耗损,软件亦不存在消亡之说,软件往往最后的终点是升级改造。 软件生
阅读本文

【软件架构系列】一步一步构建大型网站

1   概述软件架构是一门学问,并且是一门很深邃的学问,从本篇文章开始,我们就来聊聊架构,所用到的主流语言为.NET、Java和php。本篇文章作为架构的开篇文章,主要从广度上叙述软件架构的发展与演变,从软件架构系列第二篇文章开始,将结合具体的产品或项目实例,来与大家分享架构。本篇文章先简要概述一下设计模式和OO设计的七大原则,然后在与大家分享网站是如何一步一步演变的。如下一张架构图,如果你觉得有
阅读本文

.Net下的MIS系统架构设计系列-导航

关键字MIS,业务领域驱动,表驱动,事务脚本驱动,分层开发,快速开发框架,存储对象(PO),业务领域对象(DOMAINMODEL),数据传输对象(DTO),(视图对象)ViewModel,MVC,对象关系映射,架构,框架,类库宣传语是一个实践的系列,尽量避免谈论任何理论思想和概论性的东西,只注重最佳实践。而本系列正好相反!是一个MIS系统项目开发和架构设计纯思想理论体系的系列,纯玩概念和术语的系列
阅读本文

软件架构风格介绍

架构风格是一组原则。你可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。架构风格能改进分块,还能为频繁出现的问题提供解决方案,以此促进设计重用。常见的软件体系结构风格涉及: 设计词汇表是什么?或者构件和连接器的类型是什么? 可容许的结构模式是什么? 基本的计算模型是什么? 风格的基本不变性是什么? 其使用的常见例子是什么? 使用此风格的优缺点是什么? 其常见特例是什么? 软件体系
阅读本文

软件架构设计原则和大数据平台架构层

1、软件架构设计的六大原则:1)“开-闭”原则(OCP)     Software entities should be open forextension, but closed for modification.    对扩展开放,对修改封闭。2)里氏代换原则(LSP) 凡是基类适用的地方,子类一定适用。3)依赖倒转原则(DIP)     要依赖抽象,不要依赖具体。4)迪米特法则(LoD)
阅读本文

linux 下的两种软件安装方式 —— 源码(编译、安装),编译好的二进制(直接安装)

我们以 GPG(加密工具)为例来说明两种安装方式的区别: 源码(Source code releases,名称中则会含有src等说明信息,tarball:source),先编译再安装 GPU 的源码地址:GnuPG - Download ./configure make make install 直接安装编译好的二进制包(GnuPG binary releases,名称中一般含有bin等说明信息
阅读本文

软件工程要点整理

这是当年一位学长根据Shari和Joanne编写的《Software Engineering Theory and Practice(FourthEdition)》整理的Chapter01SE的定义、目的、方法及作用(P2 / P16) 定义:软件工程是一种系统工程,不止包括对技术问题的分析与解决,还包括对开发过程和给参与者分配合适的角色等方面的管理 目的:生产出高质量的软件进而找到解决方案
阅读本文

软件工程学,第一节

本人收集了第一节的一些简答题目,用于大家一起来参考。 问:与计算机硬件相比,计算机软件有哪些特点? 答:1、无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了解它的功能、特性和质量等; 2、人们在分析、设计、开发、测试软件产品的过程中,一级在软件开发项目的管理过程中,渗透了大量的脑力劳动; 3、不存在像硬件一眼过的磨损和老化现象,但存在这缺陷维护和技术更新的问题;4、软件的
阅读本文

软件体系结构风格

首先,我们需要先明确一个概念,什么叫软件体系结构的风格?定义便是:描述某一特定应用领域中系统组织方式的惯用。即,定义了用于描述系统的术语表和一组指导构建系统的规则。这方便了软件大粒度的重用。因此,当人们使用常用的,规范的方式来组织时,即可使别的设计师很容易理解系统的体系结构。下面是一些常用的软件体系结构风格   (一)经典软件体系结构风格     1.数据流风格:批处理序列,管道与过滤
阅读本文

软件测试暑期实习面试(2017)

2天时间,4次面试,2个offer。第一家,上海微肯网络科技有限公司,是一家位置服务提供商。公司地址在徐汇区,技术部门的办公室位于科技园中的一栋外墙正在装修的大楼内的一层共享空间中,里头有好多家公司,彼此间用板子隔开。面试我的是一位工程师,提了一些测试相关的问题,然后跟我讲述了他们公司的情况。大致接触下来,彼此都不太满意。因为他们的测试量不多,每周大概只需2天就够。而我要找的是全职。面完时,工程师
阅读本文

软件体系结构复习

第一章软件危机的表现:1、软件成本日益增长2、开发进度难以控制3、软件质量差4、软件维护困难软件危机的原因:1、用户需求不明确2、缺乏正确的理论指导3、软件规模越来越大4、软件复杂度越来越高如何克服软件危机:人们面临的不光是技术问题,更重要的是管理问题,引入软件工程,标准化、流程化。要提高软件开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。工业化:构件是核心和基础,重用是必
阅读本文

软件测试过程

一、测试阶段划分需求测试单元测试(Unit Testing)集成测试(Intergration Testing)系统测试(System Testing)验收测试 1、单元测试*单元测试是针对软件基本组成单元(软件设计的最小单位)来进行正确性检验的测试工作*单元测试的目的是检测软件模块对《详细设计说明书》的符合程度 2、集成测试(接口测试)集成测试是在单元测试的基础上,将所有模块按照概要设计要求组装
阅读本文

软件工程个人总结

软件工程的定义:开发、运行和维护软件的系统方法 软件的定义:软件是计算机系统中与硬件相互依存的另一部分,包括程序,数据以及相关文档的完整集合。 软件危机的表现:1.成本高,计算机软件和硬件费用比 2.软件质量得不到保证,由于软件质量问题导致失败的软件项目非常多 3.进度难以控制,维护非常困难 软件工程方法学的三要素:方法、工具、过程 软件开发的基本方法:结构化方法、面向对象方法 软件生命周期:软件
阅读本文

软件测试必看的5本

最近好多朋友加我微信,问我有没有好一点的测试相关书籍推荐看一下,现具体介绍如下几本:1. 软件测试的艺术(第3版)软件测试的艺术作 者:(美)梅耶(Myers, G. J.) 等著,张晓明,黄琳 译出 版 社:机械工业出版社2. 软件测试的有效方法软件测试的有效方法作    者 (美国)(WilliamE.Perry)出版社: 清华大学出版社简介:本书没有采用常见的“做什么”的教学方式,而是深入地
阅读本文

我想当个软件架构师

架构于设计-架构都是设计,设计不全是架构,架构定义系统范围与组件实现-是为了目标,设计更多于广泛的实现细节,各种的.对于架构师,现在有个观点是:架构师不用写代码,只要有足够的经验懂得业务抽象懂得建模,熟悉主流大数据系统,了解组件(architecture building block)特性,能解决高并发等问题,能利用这些组件搭建出需要的系统就可以了;我觉得这个观点很模糊,从我的经验来说,一个不写代
阅读本文

第一部分软件工程基础[专业课考试]

第一部分软件工程基础考试题型:概念问答题、实践案例题总分:50分一、软件过程软件过程的概念;经典软件过程模型的特点(瀑布模型、增量模型、演化模型、统一过程模型);过程评估与CMM/CMMI的基本概念;敏捷宣言与敏捷过程的特点。二、软件需求软件需求的概念;需求工程的基本过程;分层数据流模型;用例和场景建模及其UML表达(用例图、活动图、泳道图、顺序图);数据模型建模及其UML表达(类图);行为模型建
阅读本文