1.软件编码的任务与目标
软件编码的任务:总的来说就是将设计变成代码
将软件设计的结果翻译成计算机可以“理解” 的形成——使用某种语言描述的程序。程序的质量主要取决于软件设计的质量,程序设计语言的特性和编码途径也对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。
软件编码的目标:
在给定成本、进程的前提下,开发出具有效性、可靠性、可维护性、可适应性、可移植性并满足用户需要的软件产品。
2.常用程序设计语言及开发环境的特点与适用范围
1、常用程序设计语言:
类型 可选语言
商用数据处理 COBOL
科学工程计算和模拟 FORTRAN PASCAL MATLAB
实时软件 汇编语言 Ada
系统软件 汇编语言 C/C++ Ada
智能软件 LISP PROLOG
Web应用 HTML CSS JavaScript Java PHP ASP.NET Ruby python
移动应用 Object C 、J2ME
2、开发环境的特点与适用范围:
(1)、编程环境及集成开发环境(Integrated Developing Environment,简称IDE):是一个综合性的工具软件,它把程序设计全过程所需的各项功能集合在一起,为程序设计人员提供完整的服务。
(2)、计算机编程环境按编程语言可以分成ASP、ASPX、PHP、JSP
a、ASP:
ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,现在常用于各种动态网站中。
b、ASPX:
ASPX的前身ASP技术,是在IIS 2.0上首次推出(Windows NT 3.51),当时与 ADO 1.0 一起推出,在IIS 3.0 (Windows NT 4.0)发扬光大,成为服务器端应用程序的热门开发工具,微软还特别为它量身打造了Visual InterDev开发工具,在1994年到2000年之间,ASP技术已经成为微软推展Windows NT 4.0平台的关键技术之一,数以万计的ASP网站也是这个时候开始如雨后春笋般的出现在网络上。它的简单以及高度可定制化的能力,也是它能迅速崛起的原因之一。
c、PHP
PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言。
d、JSP
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件 (.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
3、编程规范的作用和内容
1、编码风格:
编码风格指的是程序设计风格和编程风格。目的是指导人们编写出逻辑简明清晰、易读易懂程序的基本原则。它主要包括以下几个方面:
源程序文档化;
对数据添加说明;
语句结构化;
输入输出方便友好使用。
为了提高程序的可维护性,源代码也需要实现文档化(内部文档编制)包括:
符号名的命名;
程序注释:序言、功能;
标准的书写格式:分层缩进的写法显示嵌套结构层次 分层缩进的写法显示嵌套结构层次。
2、头文件的注释:
Copyright(C), 1988-1999, Microsoft.Co.
File name:// 文件名
Author: Version: Date:// 作者、版本及完成日期
Description:// 用于详细说明此程序文件完成的 主要功能,与其他模块或函数的接口,输出值、取值范围、 含义及参数间的控制、顺序、独立或依赖等关系
Others:// 其它内容的说明
Function List:// 主要函数列表,每条记录应包括函数名及功能简要说明
1. ....
History:// 修改历史记录列表,每条修改记 y 录应包括修改日期、修改者及修改内容简述 1. Date: Author: Modification:
2. ...
3、函数头注释:
Function:// 函数名称
Description:// 函数功能、性能等的描述
Calls:// 被本函数调用的函数清单
Called By:// 调用本函数的函数清单
Table Accessed:// 被访问的表(此项仅对于牵 扯到数据库操作的程序)
Table Updated:// 被修改的表(此项仅对于牵 扯到数据库操作的程序)扯到数据库操作的程序)
Input:// 输入参数说明,包括每个参数的作用取值说明及参数间关系数的作用、取值说明及参数间关系。
Output:// 对输出参数的说明。
Return:函数返回值的说明
Others:// 其它说明
4、变量命名:
规则1:标识符应当直观且可以拼读,可望文知意, 不必进行“解码”。
规则2:标识符的长度应当符合“min-length && 规则标识符的长度应当符合g max-information”原则。如变量名maxVal就比 maxValueUntilOverflow好用。 maxValueUntilOverflow 好用。
规则3:程序中不要出现仅靠大小写区分的相似的标符。
规则4:程序中不要出现标识符完全相同的局部变 量和全局变量,尽管两者的作用域不同而不会发 量和全局变量,尽管两者的作用域不同而不会发 生语法错误,但会使人误解。
规则5:变量的名字应当使用“名词”或者“形容词+名词”。
规则6:全局函数的名字应当使用动词或者 “动词+名词”(动宾词组)。
规则7:变量的名字应当使用“名词”或者“形容 词+名词”。
规则8:用正确的反义词组命名具有互斥意义的变 量或相反动作的函数等。
规则9:常量全用大写的字母,用下划线分割单词。 例如: 例如: const int MAX = 100; const int MAX_LENGTH = 100; 规则静态变量加前缀(表示)
规则10:静态变量加前缀s_(表示static) 例如: voidInit() void Init(…) { static int s_initValue;// 静态变量 _; … }
规则11:如果不得已需要全局变量,则使全局变量加 前缀g_(表示global)。 例如: 例如: int g_peopleCount;// 全局变量
4、常用版本控制工具及特点
常见工具:
UNIX/PWB
SVN, CVS,
git Windows
VSS(Visual Source Safe) Internet
GitHub
VSS(Visual Source Safe) 为Microsoft 公司在Microsoft Visual Studio中附带的一个 用于版本控制的工具软件。主要功能: 1.用户管理: 对参加软件项目的程序员分配帐户且根 对参加软件项目的程序员分配帐户,且根据其业务需要可赋予不同的存取权限。 2.版本控制: 任何时刻不会有多个程序员修改更新系统 任何时刻不会有多个程序员修改更新系统 中的同一部分。 3变动记录 3.变动记录: 记录每次修改的变动情况,可以得到以前的任何版本。
CVS–Concurrent Versions System,CVS是源于unix的版本控制工具,对于CVS的安装和使用最好对unix的系统有所了解能更容易学习,CVS的服务器管理需要进行各种命令行操作。目前,CVS的客户端有winCVS的图形化界面,服务器端也有CVSNT的版本,易用性正在提高。
Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理.
5、结对编程和测试驱动的软件开发的实施方法
1、测试驱动:
测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码,然后只编写使测试通过的功能代码,从而以测试来驱动整个开发过程的进行。这有助于编写简洁可用和高质量的代码,有很高的灵活性和健壮性,能快速响应变化,并加速开发过程。
测试驱动开发的基本过程如下:
① 快速新增一个测试
② 运行所有的测试(有时候只需要运行一个或一部分),发现新增的测试不能通过
③ 做一些小小的改动,尽快地让测试程序可运行,为此可以在程序中使用一些不合情理的方法
④ 运行所有的测试,并且全部通过
⑤ 重构代码,以消除重复设计,优化设计结构
简单来说,就是不可运行/可运行/重构——这正是测试驱动开发的口号。
2、结队编程:
结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。
在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。