前言
软件编码是我们最不陌生的一个阶段,可是学习完才对它有了真正的认识。原来不只是能实现需要的功能就行,编码也有很多的知识很多的讲究。
导图
我们在做一个软件的时候如何选择语言?
1.应用领域的不同决定选择的语言
| 领域 | 可选语言 |
|---|---|
| 商用 | COBOL,4GLS(第四代语言) |
| 科学计算 | FORTRAN,PASCAL,PL/1 |
| 实时 | 汇编,ADA |
| 系统 | 汇编,ADA,C |
| 智能 | LISP,PROLOG |
2.系统用户的要求决定
用户使用他们熟悉的语言。
3.可以使用的编译程序
运行目标系统的环境中可以提供的编译程序往往限制了对语言的选择。
4.程序员的经验和知识
编程者对语言的熟悉程度
5.软件可移植性
6.当工程规模很大时,而又没有完全合适的语言,可编一个专用的语言。
7.算法与计算复杂性,软件的可靠性
8.数据结构的复杂性,软件的可维护性
9.效率的选择
10.了解语言的发展前景
软件设计如何进行质量评价?
1.正确性
2.结构清晰性
3.已修改性
4.易读性
5.简单性
程序复杂性度量又分为代码行度量法,McCabe度量法,Halstead方法。
代码行方法度量:
是一种最简单的方法,该方法认为,代码行越多,软件越容易产生漏洞。程序复杂性随着程序规模的增加不均衡的增长,以及控制程序规模的方法最好是采用分而治之的办法。代码行度量法只是一个简单的、估计得很粗糙的方法。程序出错率估算范围在0.04%-7%之间,即每100行源程序中可能存在0.04-7个错误。
McCabe度量法:
又称环路复杂性度量,是一种基于程序控制流的复杂性度量方法。根据图论,在一个强连通的有向图G中,环的个数由以下公式给出:V(G)=m-n+p
V(G):是有向图G中环路个数
m:是图G中弧数
n:是图G中结点数
p:是图G中的强连通分量个数
Halstead方法:
思路是根据程序中可执行代码行的操作符和操作数的数量来计算程序的复杂性。操作符和操作数的量越大,程序结构就越复杂。两种基本的元素组成操作数(变量、常量、地址、空间)和操作符编程语言中定义的操作。
H:程序长度预测值
n1:不同运算符个数
n2:不同运算对象个数
程序长度:N=N1+N2
N1:运算符总个数
N2:运算对象总个数
程序量:V=N*log2n
程序量比率:L=V?/V或L=(2/n1)*(n2/N2)
V?:程序实现时可能的最小代码容量
程序员工作量:E=V/L
程序潜在错误:B=(N1+N2) * log2(n1+n2)/3000