————软件工程————
文章平均质量分 73
童凌
当你停下来休息的时候,不要忘记别人还在奔跑!——一个普通的软件工程专业学生
展开
-
创建自己的python模块,并使用pip install安装到python环境
摘要:这篇文章描述了自己动手把需要的代码封装成python模块的方法。完成后,我们可以直接使用pip install xxx下载自己的模块并使用内置的函数。介绍python作为一门鼎鼎大名的语言,最有优势的地方就是它拥有无数第三方的模块可以直接拿来使用。以numpy(一个用于实现科学计算的模块)为例,常见的用法一般是这样,相信写过python的肯定是见得多了。import nu...原创 2018-03-30 07:01:16 · 21158 阅读 · 5 评论 -
软件测试基本内容概述
软件测试的定义:IEEE给出了关于软件测试的标准定义:软件测试是使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验被测软件系统是否满足规定的需要,或是弄清楚被测系统的预期结果与实际结果的差别。该定义从 5 个方面体现了测试工作的核心与实质。1、软件测试的根本目的是确保软件满足用户需求软件测试的目的在于箴言被测软件系统是否满足规定的需要,即保证被测软件符合用户需求是软件测试的最原创 2015-06-11 19:43:57 · 1782 阅读 · 0 评论 -
一个优秀的单元测试应该是怎样的?
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试原创 2015-06-11 21:43:05 · 2223 阅读 · 0 评论 -
单元测试的过程
1.1 单元测试概述所谓单元测试,是指对软件设计的最小单位,进行正确性检验的测试工作。而检验的方法,一般来说是由开发人员编写一小段测试代码,根据被测目标代码的应用场景,设计拥有合理覆盖度的输入条件,调用执行目标代码,然后判断输出结果是否与预期一致。被测试目标代码一般应具体到类的方法层面上。总之,单元测试是一个方法层级上的测试,单元测试也是最细粒度的测试,用于测试一个类的每一个方法都已原创 2015-06-12 09:32:19 · 4649 阅读 · 0 评论 -
集成测试基本内容概述
1、概述若每个模块都经过了严格的单元测试,还需要继承测试吗?人们常常会提出这样的疑问。回答是肯定的,确实需要集成测试。在测试过程中经常遇到的情况是:单元测试中每个模块都能单独工作,但是将这些模块集成到一起后,某些模块就不能正常工作了。例如,接口数据丢失;模块之间的不良影响;误差积累等。因此,单元测试无法代替继承测试,每个模块的性能最优并不能保证集成之后的指标达到最优。2、集成测试的定义:集成测试就是原创 2015-06-12 09:51:47 · 23505 阅读 · 0 评论 -
白盒测试内容概述
1、基本原理和特点:白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。”白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。”白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文原创 2015-06-12 13:06:30 · 7134 阅读 · 0 评论 -
黑盒测试内容概述
1、基本原理和特点 黑盒测试是最重要的一类软件测试方法。黑盒测试仅需知道被测对象的输入和预期输出,不需要了解其实现的细节,例如,程序的实现逻辑如何、源代码如何撰写等。因此,黑盒测试方法最大的优势在于如下两方面: (1)、黑盒测试方法对测试人员的技术要求相对较低,测试人员甚至可以是对软件开发完全不懂的非计算机专业人员,只要对照SRS或用户手册,按照文档中描述的软件操作步骤和特性执行软件,观察输出结原创 2015-06-12 13:54:03 · 8084 阅读 · 0 评论 -
[编译原理]算符优先文法分析与实现
在算术表达式中,运算的优先顺序主要采用四则运算的口诀:先乘除后加减,从左算到右,这个口诀确定了乘除运算优先于加减运算,同级运算一律从左到右,即代数中的“左结合”法则。如果计算的每一步做一个运算,那么四则运算的每一步都是唯一的。 算符优先分析法实质上就是仿效上述计算过程而设计的一种方法,它规定:用算符之间的运算优先关系来确定语句的合法性。并不是所有上下文无关文法都可以建立这样的关系原创 2015-06-16 14:33:58 · 23538 阅读 · 2 评论 -
[查漏补缺]C#中一些常用的面向对象的特性
本节内容: 1、C#中静态成员的设计方法 2、索引器的设计方法 3、委托的设计方法一、静态成员静态成员包括静态字段和静态方法。静态成员属于类所有,而非静态成员属于类的对象所有,所以静态成员也成为类成员,非静态成员也成为对象成员。提出静态成员的目的是为了解决数据共享的问题。 说明:静态成员是属于整个类的,不针对该类的某个对象,所以静态方法是通过类来调用的。静态字段静态字段是类中所有对象原创 2015-06-16 16:46:42 · 581 阅读 · 0 评论 -
C#连接OleDBConnection数据库的操作
对于不同的.net数据提供者,ADO.NET采用不同的Connection对象连接数据库。这些Connection对我们屏蔽了具体的实现细节,并提供了一种统一的实现方法。Connection类有四种:SqlConnection,OleDbConnection,OdbcConnection和OracleConnection。Sqlconnetcion类的对象连接是SQL Server数据库;原创 2015-06-11 09:30:02 · 19163 阅读 · 3 评论 -
策略模式--商场收费系统
策略模式:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化,不会影响到使用算法的客户。优点:1、 策略模式提供了管理相关的算法族的办法。策略类的等级结构定义了一个算法或行为族。恰当使用继承可以把公共的代码转移到父类里面,从而避免重复的代码。2、 策略模式提供了可以替换继承关系的办法。继承可以原创 2015-06-08 19:18:26 · 1068 阅读 · 0 评论 -
Mac OS安装Python框架Scrapy全过程
摘要:本文记录了作者在Mac OS 10.12 Sirrea版本下,安装Python爬虫框架Scrapy的全过程以下步骤请全程开启VPN。否则默认大量官方源可能会被我大天朝的长城K.O.掉,从而出现403 forbidden. ^^①安装homebrew。若已经安装homebrew,直接下一步。打开terminal,输入ruby -e "$(curl -fsSL https:/...原创 2017-02-16 15:33:35 · 12105 阅读 · 0 评论 -
我的微信小程序项目进入测试啦
项目Github地址:点击这里医学术语助手 MedicalTermsDicMaster简介医学术语助手是一个微信小程序,主要用于中医学专业术语的翻译查询,目前正处于测试阶段。利用微信小程序即用即走的框架开发,程序非常轻量化,运行方便。该程序内置 5 大官方字典,拥有近 50,000 条中医学术语名词的精准描述,分别是WFAS世界针灸学会联合会认定的中医学名词翻译中国中医药学名词审定委员会审定的原创 2017-08-10 21:05:30 · 5663 阅读 · 0 评论 -
设计模式--简单工厂模式
软件工程的课程已经进行很久了,软件设计模式这门课看起来蛮重要的。好好记一下笔记!这次介绍的是简单工厂模式。基本解释:简单工厂模式属于类的创新型模式,又叫作静态工厂方法模式,是通过专门定义一个类来负责创建其他类的实力,被创建的实例通常都具有共同的父类。深入分析:简单工厂模式解决的问题是如何去实例化一个合适的对象。具体来说,把产品看成是一系列类的集合,这些类是由某个抽象原创 2015-06-03 19:46:19 · 584 阅读 · 0 评论 -
简单工厂模式---商场收费系统
商场收银软件分析:要求实现不同的打折促销方式,所以可以采用上次学的简单工厂模式来做。用两个文本框输入单价和数量,一个确定按钮来算出每种商品的费用,用个列表框来记录商品的清单,一个标签来记录总计,再用一个重置按钮来重新开始。使用简单工厂的模式实现,把商场可能的打折都做成下拉选择框的项。就可以实现了。类图解释:写一个CashFactory类来做不同打折方式的分支,在其中调用不同的打折方法,原创 2015-06-04 10:20:09 · 1318 阅读 · 0 评论 -
软件工程概论常用问答
说实话,这是为了考试准备的。明天是是软件设计与体系结构的考试。。虽然搞ACM,但是自己的专业本行还是不能丢掉啊。。况且自己的ACM实在是渣。这个六月份把所有的考试都努力刷个高分,GPA刷上去,为未来做准备。。事实上,我知道这些理论性的东西,比ACM,软件项目开发什么的更加重要,但是实在是太枯燥了。知道自己太过于急功近利了。已经大二了,剩下的时间不多,这种心态还是要好好克服一原创 2015-06-08 15:29:56 · 2027 阅读 · 0 评论 -
统一建模语言(UML)的特点、视图模型
这里就直接说UML的用法和基本内容了,那些历史和发展过程什么的就不介绍了。。UML的特点和用途:1、为使用者提供了统一的,表达能力强大的可视化建模语言,以描述应用问题的需求模型,设计模型和实现模型。2、提供对核心概念的扩展机制,用户可加入核心概念中没有的概念和符号,可为特定应用领域提出具体的概念、符号表示和约束。3、独立于实现语言和方法学,但支持所有的方法学,覆盖了面向对象原创 2015-06-08 16:13:12 · 3154 阅读 · 0 评论 -
软件设计命名规范
1、命名约定Pascal和Camel命名约定编程的命名方式主要有Pascal和Camel两种(Pascal:每个单词的首字母大写,例如ProductType;Camel:首个单词的首字母小写,其余单词的首字母大写,例如productType)以下是一些常用的C#成员及其推荐命名方法: 标志符规则实例与描述原创 2015-06-08 17:30:49 · 2073 阅读 · 0 评论 -
软件设计基础——抽象与逐步求精
抽象与逐步求精 软件设计的困难随着问题的规模和复杂性不断增大,抽象是管理、控制复杂性的基本策略。“抽象”是一个心理学概念,它要求人们将注意力集中在某一个层次上思考问题,而忽略那些低层次的细节。使用抽象技术便于人们用“问题域“本来的概念和术语描述问题,而无须过早地转换为那些不熟悉的结构。软件设计过程应当是在不同抽象级别考虑、处理问题的过程。最初,应该在最高抽象级别上,用面向问原创 2015-06-08 18:12:06 · 7076 阅读 · 1 评论 -
[编译原理]文法的定义与文法产生的分类
事先声明:本文是非常非常理论化的内容,与实际开发基本没有关系,仅仅作为内功而存在。。下面是正文:文法文法自从乔姆斯基于1956年建立语言的形式描述以来,形式语言的理论发展很快。这种理论对计算机科学产生了深刻影响,特别是对程序语言的设计、编译方法、计算复杂性等方面有更大的作用。同时,它还促进了计算机科学的理论研究工作,并取得了不少的成果,使得计算机的理论工作走在计算机发展的前面。原创 2015-06-25 16:11:50 · 4942 阅读 · 0 评论 -
计算机网络原理笔记
总概述 计算机网络的定义:计算机网络可以定义为由通信信道连接的主机和网络设备的集合,以方便用户共享资源和相互通信。主要的用途有以下四个: 1、共享信息。 2、协同计算。 3、方便通信。 4、共享硬件。网络的组成有两种, 一种称为节点,是计算设备,可分为端系统(主机)和中间节点(路由器、交换机,虚拟节点,代理等) 一种称为链路(双绞线,光缆等)在交换网中,传递数据有两种基本方法:电路交换和原创 2015-06-30 21:22:42 · 1192 阅读 · 0 评论 -
计算机操作系统笔记
1、操作系统概论操作系统:是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件,是用户与计算机之间的接口。 管什么:控制和管理系统资源,包括两部分:硬件资源(CPU、内存,外设等)和软件资源(系统软件,应用软件)操作系统的目标:1、方便性:通过os提供的各种命令或界面操纵计算机系统,使计算机变得易学易用。 2、有效性:有两层含义,一是提高系统资源的利用率。二是提高系统的吞原创 2015-07-03 16:05:40 · 3130 阅读 · 0 评论 -
[前端]JavaScript滑动门特效
使用Javascript中的DOM操作,实现电商网站常用的一个滑动门特效。 本例用使用到的四张图像如下: 首先编写html代码,建立基本标签,文件存为index.html.<!doctype html><html> <head> <meta charset="utf-8"> <title>sliding-doors</title> <原创 2016-04-05 17:49:07 · 2018 阅读 · 0 评论 -
微信小程序开发系列—— 1. 微信小程序介绍
摘要:本文介绍了微信小程序在今年发展的来龙去脉,介绍了微信小程序在微信中的基础特性和用法,为开发做好准备。1. 微信小程序的介绍好不容易毕业拿到学位证书了,在九月入学研究生之前原本以为可以休息一下,结果没过几天,又手贱接了一个微信小程序的外包项目。好吧,于是从七月开始,继续马不停蹄地看文档学内容,搭建一个微信小程序服务,争取暑假两个月内运行一个成功上线的微信小程序。微信小程序是一个非常新的应用框架,原创 2017-06-30 13:35:32 · 2226 阅读 · 0 评论 -
微信小程序开发系列——2. 开发者工具以及开发框架简介
摘要:本文介绍了微信小程序的开发者工具、微信小程序使用的基本前后端框架1.简介为了鼓励广大程序员跳入微信小程序开发这个大坑,腾讯很贴心地提供了微信小程序开发框架以及灰常详细的开发文档(点这里),文档言简意赅清晰易懂,读完令人如沐春风,赞一个。我读了两遍就打算开始正式开发了,有意向专攻这方面开发的同学可以多读两遍。总体来说,微信小程序遵循传统前端框架开发界面,后端服务器语言提供基础支持的模式。开发还是原创 2017-06-30 14:34:10 · 9103 阅读 · 0 评论 -
微信小程序开发系列——3. 腾讯云服务器配置
摘要:本文说明了在腾讯云服务器上通过“微信小程序专用解决方案”搭建、部署后端服务器及基础服务的过程。原创 2017-07-02 09:34:55 · 20804 阅读 · 6 评论 -
微信小程序开发系列——4.小程序视图页面基础知识
摘要:本文介绍了小程序的使用的前端语言,以及小程序开发过程中需要知道的页面基础知识。1. 介绍搭建后端服务器完毕以后,我们接下来准备小程序前端页面的基础知识。由于微信前后端是分离的,我们开发时一般可以使用分块开发的模式,即前端和后端代码分离,使用JavaScript编写数据绑定和相关通信代码。由于微信整个框架只有两层:视图层和逻辑层。因此很明显可以看出,视图层的大部分内容为前端页面展示代码,而逻辑层原创 2017-07-03 14:51:53 · 3235 阅读 · 0 评论 -
微信小程序开发系列——5.前端页面开发
摘要:本文说明了微信前端页面开发的基本架构,说明了组成文件各自的详细结构,通过这几个文件的协同工作,微信小程序开发框架可以实现页面Page中视图层和逻辑层的统一。0. 简介根据之前开发者工具和开发框架简介的内容,我们把官方demo和开发者工具安装好以后,就可以开始准备微信小程序的web开发了。在开发的主要界面,点击开发者工具左侧导航的“编辑”,我们可以看到这个项目,已经初始化并包含了一些简单的代码文原创 2017-07-09 17:05:47 · 11458 阅读 · 0 评论 -
UML建模语言学习笔记
UML简介——建模语言UML建模语言的特点: 1、模型是对现实世界的简化和抽象 2、模型是沟通的手段。 UML建模语言的优点: 软件开发是一个很复杂的工程,采用统一的建模语言来对软件进行描述能够使客户、涉众、开发人员对软件有更好的公式,也能够有效地降低软件开发的复杂程度。UML的图形总共有以下几类:类图 活动图 包图 顺序图 通信图 状态机图 构件图 部署图一、用例图用例建原创 2015-07-05 16:57:06 · 766 阅读 · 0 评论 -
OpenJsCad - 在线3D图像浏览与编辑
前言这是我从Github上找到的一个开源网站,它提供了直接在Web上的3D模型文件的浏览与编辑,从代码层可以直接编辑或生成3D文件。这个模型看起来应该对项目开发有所帮助,所以翻译了Github的文档,给大家做一个简单介绍。OPENJSCAD.orgOpenJSCAD是一个展示和编辑3D图像的在线编辑器,你可以通过我们提供的在线的编译器,或者使用已有的本地文件来方便地预览,编辑修改3D文件。它提供从O翻译 2016-03-28 14:31:28 · 18083 阅读 · 1 评论 -
[前端] html+css+javascript 实现选项卡切换效果
用html+css+js实现选项卡切换效果使用之前学过的综合知识,实现一些新闻门户网站上的常见选项卡效果:文字素材:房产: 275万购昌平邻铁三居 总价20万买一居 200万内购五环三居 140万安家东三环 北京首现零首付楼盘 53万购东5环50平 京楼盘直降5000 中信府 公园楼王现房家居: 40平出租屋大改造 美少女的混搭小窝 经典清新简原创 2016-03-28 10:20:37 · 45072 阅读 · 6 评论 -
计算机操作系统笔记——问答题
1、设备管理中的数据传送控制方式有哪几种?分别简述是如何实现的。 (1)直接控制:I/O控制,由用户进程来直接控制内存或CPU与外设间的信息传送。 (2)中断方式控制:进程通过CPU发出指令启动外设,该进程阻塞。当输入完成时,I/O控制器通过中断请求向CPU发出中断信号,CPU进行中断处理。 (3)DMA方式(Direct memory access):直接存储器访问。不通过CPU,直接在外设原创 2015-07-05 10:52:44 · 5930 阅读 · 0 评论 -
数据库原理与技术笔记
1、数据模型 数据模型是对现实世界数据特征的抽象。实体-联系模型(E-R)主要涉及三方面的内容:1、实体。实体是具体的,如职工、学生、课程等都是实体。在E-R图中使用矩形表示 2、属性。例如学生的学号、姓名、性别等。在E-R图中与实体连接,使用圆角矩形表示。 3、联系。联系是数据之间的关联关系,在E-R图中用菱形框表示。并用连线将其关联的实体连接起来。两个实体之间的联系有如下3类: - 一原创 2015-07-06 13:46:27 · 1028 阅读 · 0 评论 -
[贪心] poj3040 Allowance
http://poj.org/problem?id=3040#include <iostream>#include<algorithm>#include<math.h>#include<stdio.h>#include<string.h>const int INF=0x3f3f3f3f;using namespace std;struct node{ int val,num;/原创 2015-08-07 11:31:05 · 786 阅读 · 0 评论 -
HTTP协议详解
·HTTP是整个Web的基础,是客户端和服务器端协同工作的基石。要想了解Web的工作原理,优化Web应用,就要完全理解http协议。1、HTTP协议详解简单来说,HTTP就是一个基于应用层的通信规范:双方要进行通信,大家都要遵守一个规范——HTTP协议。HTTP协议从WWW服务器传输超文本到本地浏览器,可以让浏览器更加高效。HTTP协议不仅保证计算机正确快速地传输超文本文档,还能确定传输文档中的哪一原创 2015-10-25 13:57:40 · 679 阅读 · 0 评论 -
雅虎的34条军规 -前端性能优化
雅虎给出了优化网站加载速度的34条法则(包括Yslow规则22条) 详细说明,下载转发 ponytail 的译文(来自帕兰映像)。1.Minimize HTTP Requests 减少HTTP请求 图片、css、script、flash等等这些都会增加http请求数,减少这些元素的数量就能减少响应时间。把多个JS、CSS在可能的情况下写进一个文件,页面里直接写入图片也是不好的做法,应该写进CSS里原创 2016-03-25 19:56:17 · 681 阅读 · 0 评论 -
使用Windows系统远程连接Windows server服务器
点击开始菜单->运行 (或者 windows+R) ,输入”mstsc”命令, 打开远程桌面连接对话框,输入你要连接的Windows server服务器的公网IP。 点击连接,在打开的界面中,输入管理员给你的初始密码。如果密码是你自己设置的,输入自己设置好的密码。 远程桌面连接时可能会跳出这个警告,不管他,咱们继续。 (PS,我用的是腾讯家的云服务器,不知道为什么有时候会出这个问题) 4、成原创 2016-02-29 18:23:15 · 17554 阅读 · 0 评论 -
使用OS X系统远程连接Windows Server服务器
下载微软官方的远程连接工具: https://www.microsoft.com/en-us/download/details.aspx?id=18140 安装包很小,只有9mb,很快就好了,下载下来是这样的直接打开文件,一路next,安装完毕,在Dashboard里面出现这个图标 打开,输入你需要登录的windows server服务器的公网IP 在打开的界面中,输入管理员给你的初始密码,如果原创 2016-02-29 19:16:44 · 3020 阅读 · 1 评论 -
与WebGL有关的教程与实例
针对今年的中国软件杯的题目,我们组选了一个叫做“基于web的3D模型浏览与交互系统”的题,其中比较难的部分是3D建模和相关模型文件。目前看来,一些常用的关于WebGL框架可能是比较有用的内容,所以现将与Three.js相关的内容摘录下来,在做项目时方便查阅。不要着急。。慢慢来,一切从头开始。WebGLWebGL是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0原创 2016-03-23 17:02:19 · 1470 阅读 · 0 评论 -
[编译原理]词法分析器的分析与实现
词法分析概述:编译程序要对高级语言编写的源程序进行分析和合成,生成目标程序。词法分析是对源程序进行的首次分析,实现词法分析的程序成为词法分析程序(或词法分析器),也称扫描器。像用自然语言书写的文章一样,源程序是由一系列的句子组成的,句子是由单词符号按一定的规则构成的,而单词符号又是由字符按照一定的规则构成。因此,源程序实际上是由满足程序语言规范发字符按照一定的规则组合起来构成的一个字符串。 词法原创 2015-06-16 13:50:22 · 52046 阅读 · 7 评论