常见的软件工程知识点

1.软件版本命名

软件版本 由四部分组成:

第一部分            软件架构或软件界面变化

第二部分            软件功能新增

第三部分            软件bug修复

第四部分           1.编译版本 加日期版本 它是编译时的版本标记,一般序 都是递增的。(如windows系统版本 )

                          2.日期版本 加希腊字母版本 用于记录修改项目的当前日期,每天对项目的修改都需要更改日期版本 。

                         希腊字母版本 常见有3种,分别为:alpha(内测版)、beta(公测版)、release(正式版)。

                         例如:1.1.1.20160101_beta

 

2.软件开发模型

边做边改型

瀑布模型—->敏捷开发(演变)          

快速原型模型          

增量模型            

迭代(演化)模型        

螺旋模型

极限编程模式

 

3.web软件结构模式

B/S模式

C/S模式

 

4.软件编程设计模式

mvc模式

mvp模式

mvvm(mvvc)模式

 

5.单例与原型(属于软件设计模式)

单例只有一个实例。(世界上只有独一无二的我)                

原型根据一个原型创建N个对象。(根据“人”,创造“男人”与“女人”)

 

6.软件编程范式(思想)

面向过程编程 / 过程式编程(POP)

面向过程编程按照函数步骤一步步往下执行。

以功能函数(funtion)为中心编程。

 

面向对象编程(OOP)

面向对象编程把事物拆分成各种对象,在各种对象里面封装了一些方法,对象之间相互调用并执行。

以对象数据(data)为中心编程。

 

面向切面编程(面向侧面)

函数式编程

函数响应式编程

逻辑编程

 

7.软件架构风格 

rest风格:通过url来定义资源位置与操作。

如:http://example.com/resources/    或者    http://example.com/order

 

8.软件设计架构

面向服务架构

微服务架构

 

9.软件设计范式

约定优于配置 (惯例重于配置),目的按照约定的规范编程(约定软件目录结构,代码命名),减少软件开发人员需做决定的数量(大幅度减少配置的工作量),提高开发效率。

PS:并非一切都是积极的。任何结构化软件项目都存在两个基本问题。

        会增加学习成本,学习软件编程规则,强迫软件开发人员必须遵守此规则。(代码文件一定要这样子命名,代码文件一定要放在这里)

        会让软件开发人员忽略一些软件实现的基本原理。(不知道为什么要这样做,是怎么实现的)

10.UML基本模型图

结构UML图

类图                面向对象编程中类与类之间关系、属性。例如:User class 与 vendor Class关系
组件图            描述系统软件之间交互关系,接口。例如:Apache+Tomcat+webApp1+webApp2+dataBase结构
复合结构图     面向对象编程中类与结构化分类器、部件、端口、连接器和协作。例如,user类通过login接口登陆user界面
部署图            描述系统软件部署的节点。例如:数据库服务器集群。
对象图            面向对象编程中类具体某个实例。例如:user类中如果common user角色就进入common user界面。如果admin user角色就进入admin user界面。
包装图            面向对象包名(命名空间)的关系。例如:Dao包里面包含UserDao类。

行为UML图(交互UML图)

活动图           描述系统软件的业务功能,流程图。例如:用户第一步做什么,第二步做什么。
通讯图           描述用户对象之间的协作,而不是时间序列,类似于序列图,只是新增人物角色在序列图里面。
交互概览图    序列图与活动图的混合图。
状态图           系统软件的不同情况下,执行什么样的动作。例如:用户登陆失败状态,用户登陆成功状态,用户登陆过期状态会出现什么的操作。
序列图           面向开发人员介绍用户在一个时间轴(生命线)上操作行为。例如:用户进入登陆页面,未注册用户点击“注册”按钮注册页面,填写信息后提交表单,再进入登陆页面进行登陆。
定时图           描述多条生命线上的操作行为。类似于序列图。
用例图           面向普通人员介绍用户与系统软件的交互。例如:登陆用户拥有什么操作权限,未登陆用户拥有什么权限。

PS:这是UML 2.x的13种图表。
        在实际建模中,结构图是必需,但行为图(交互图)只需序列图用例图活动图

 

11.字节流与字符流
以InputStream(输入)/OutputStream(输出)为后缀的是字节流。
以Reader(输入)/Writer(输出)为后缀的是字符流。

字节流:程序-直接操作文件-文件
字符流:程序-放入缓存-写入文件-文件

PS:优先使用字节流。

 

12.heap(堆)和stack(栈)

堆是操作系统动态分配内存空间的。访问速度慢,全局访问变量,先进先出。

栈是编程语言固定分配内存空间的。访问速度快,局部访问变量,先进后出。

 

      高级编程语言与低级编程语言

      高级编程语言就是接近自然语言(人类语言),见其名知其义。

      比如:java,c#,Python。 

      低级编程语言就是接近汇编语言或者机器语言,语言精练,不易阅读与理解。

      比如:汇编语言。

 

22.软件位数(32位与64位)

位数越高意味着数据可以在更大的块进行处理,这也意味着更准确。

位数越高意味着系统可以指向或地址的物理内存位置的更大的数字。

以windows系统为例:

常见的软件工程知识点

 

PS:MAC OS X/MACOS 是64位操作系统。

        电脑主机内存超过4G以上的建议安装64位操作系统,更能发挥内存的作用。(现在大多数的cpu都是64位的)

 

23.bit(位)、(byte)字节、字符区别

bit是计算机存储设备的最小单位。

byte是计算机处理数据的基本单位。

字符是人使用的符 ,抽象的,如,a,b,1,2。

 

PS:1byte=8bit,一个汉字两个字节,一个英文一个字节。

 

24.gb(Gigabyte)与gib (Gibibyte) 区别

gb是一种十进制的信息计量单位。

1GB = 1,000(103)MB

gib是一种二进制的信息计量单位。

1GiB = 1,024(210)MiB

 

PS:因为windows系统把这两个单位搞混,导致外存储设备显示的容量与标示的容量不符。windows操作系统显示的gib,不是gb。

      外存储设备的实际容量与标示容量相符,是正确的,并没有小。

      硬件厂商采取十进制的换算方法计算。原因是1k=1000,1k!=1024。

 

25.编码

ASCII(美国信息交换标准代码)是美国制定的,基于26个基本拉丁字母的一种语言编码。(英文语言编码)

Unicode(中文:万国码、国际码、统一码、单一码)是Unicode联盟制定的,拥有全世界的语言的一种语言编码(世界标准编码)

如:UTF-8,UTF-16

GB 2312 或 GB 2312–80 是中华人民共和国国家标准简体中文字符集(中国标准编码)。

如:GBK 是中文字符扩展集(已过时),GB 18030是国内目前最新的中文字符集。

Big5是针对中国使用繁体中文(正体中文)地区的中文字符集(中国港澳、台湾地区标准编码)。

 

26.硬编码与软编码。

硬编码就是使用固定值。

如:

软编码就是使用变量去代替固定值。

如:

 

27.软件开源协议

LGPL协议: GNU Lesser General Public License 是指GNU 宽通用公共许可协议。开发者在不修改源码的前提,只引用源码的功能,无需强制开源自己的代码。

Apache License协议:非盈利开源组织Apache 采用的协议,与BSD类似。

MPL协议:The Mozilla Public License是指非盈利开源组织Mozilla采用的协议,开发者不受专利限制。

EPL协议:Eclipse Public License是指非盈利开源组织Eclipse采用的协议,商业软件可以使用,也可以修改EPL协议的代码,但要承担代码产生的侵权责任,与BSD类似。

CDDL协议:Common Development and Distribution License是指通用开发与销售许可协议,实为MPL的拓展协议,允许公共版权使用,无专利费,并提供专利保护,可集成于商业软件中,允许自行发布许可。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92165 人正在系统学习中 相关资源:软件开发范型(Paradigm)-清华大学郑人杰_殷仁昆教授_《软件工程

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年7月3日
下一篇 2016年7月3日

相关推荐