1、机械工程软件技术基础机械工程软件技术基础第九讲第九讲 软件工程软件工程1太原科技大学太原科技大学陶元芳陶元芳 2010.80 复习与讨论复习与讨论1)非数值算法的意义)非数值算法的意义软件技术许多对数据的操作,如许多对数据的操作,如插入、删除、更新、查找、插入、删除、更新、查找、排序等,并不是解方程类排序等,并不是解方程类型的计算,这些操作的方型的计算,这些操作的方法称为非数值算法。法称为非数值算法。软件技术、数据结构中软件技术、数据结构中所称的算法,往往是指非所称的算法,往往是指非数值算法。数值算法。复习与讨论复习与讨论2)“冒泡冒泡”排序算排序算法法软件技术 排序是查找的基础,无序排序是查
2、找的基础,无序的数据查找很慢。的数据查找很慢。冒泡法是众多排序方法中冒泡法是众多排序方法中的一种。的一种。与下一数比,大则交换与下一数比,大则交换。第第1 1趟使最大的数沉底趟使最大的数沉底。n-1趟完成排序趟完成排序。1 目的意义目的意义1)软件瓶颈)软件瓶颈硬件硬件光刻、摩尔定律:发展快光刻、摩尔定律:发展快软件软件人工编程、作坊:发展慢人工编程、作坊:发展慢软件生产速度赶不上硬件的发展和应用的增长软件生产速度赶不上硬件的发展和应用的增长软件技术目的意义目的意义2)软件危机)软件危机开发速度慢:进度无法控制开发速度慢:进度无法控制开发成本高:成本超出预算开发成本高:成本超出预算质量没保证:
3、错误很多质量没保证:错误很多软件维护难:修改引起更多的错误软件维护难:修改引起更多的错误人员依赖强:人走政息人员依赖强:人走政息IBM OS/360软件开发失败软件开发失败巨兽陷入泥潭:巨兽陷入泥潭:软件技术目的意义目的意义3)软件工程)软件工程把软件当产品、系统,用工程化方法开发管理把软件当产品、系统,用工程化方法开发管理涉及程序设计语言、数据库、软件开发工具、涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面系统平台、标准、设计模式等方面旨在保证工期、质量,变软件作坊为软件工厂旨在保证工期、质量,变软件作坊为软件工厂软件技术目的意义目的意义软件工程软件工程软件设计方法学
4、软件设计方法学软件编程工艺学软件编程工艺学软件开发管理学软件开发管理学软件复用软件复用软件文档软件文档结构化程序设计结构化程序设计面向对象程序设计面向对象程序设计软件技术2 变量命名变量命名1)标识符)标识符代数代数用变量(字母、符号)代替数用变量(字母、符号)代替数标识符标识符变量名、数组名、函数名、类名等变量名、数组名、函数名、类名等标识符标识符用来用来“标识标识”某个对象名称的字符串某个对象名称的字符串以字母开头,含字母、数字、下划线以字母开头,含字母、数字、下划线软件技术JonesKateDavidjohnjackHarryGeorge变量命名变量命名2)匈牙利命名法)匈牙利命名法微软
5、一名匈牙利裔程序员发明微软一名匈牙利裔程序员发明以一个或多个表示数据类型的小写字母开头以一个或多个表示数据类型的小写字母开头含一个或多个首字母大写指出对象用途的单词含一个或多个首字母大写指出对象用途的单词优点:类型清楚,含义明确,好记,程序可读优点:类型清楚,含义明确,好记,程序可读缺点:类型描述冗余,标识符太长,录入慢缺点:类型描述冗余,标识符太长,录入慢如:如:imyData软件技术变量命名变量命名匈牙利命名法匈牙利命名法软件技术变量命名变量命名匈牙利命名法匈牙利命名法软件技术变量命名变量命名3)骆驼命名法)骆驼命名法用单词构成标识符,除首个单词外首字母大写用单词构成标识符,除首个单词外首
6、字母大写如:如:myData软件技术变量命名变量命名4)下划线命名法)下划线命名法用单词构成标识符,每个单词用下划线分隔用单词构成标识符,每个单词用下划线分隔如:如:my_data5)帕斯卡命名法)帕斯卡命名法用单词构成标识符,每个单词的首字母均大写用单词构成标识符,每个单词的首字母均大写如:如:MyData6)汉语拼音命名法)汉语拼音命名法缺点:有时不好理解缺点:有时不好理解7)注意:避免用单个字母;常量用全大写表示。)注意:避免用单个字母;常量用全大写表示。软件技术3 缩进格式缩进格式1)目的(重要性)目的(重要性)提高程序的可读性,减少错误(括号配对等)提高程序的可读性,减少错误(括号配
7、对等)2)程序结构)程序结构函数、循环、条件语句、复合语句等函数、循环、条件语句、复合语句等3)缩进格式)缩进格式依照程序的结构,逐级缩进,再逐级还原依照程序的结构,逐级缩进,再逐级还原需要时也可以加入空行需要时也可以加入空行4)制表符)制表符一般用一般用Tab键来完成缩进键来完成缩进软件技术缩进格式缩进格式软件技术5)示例)示例void SortNum(double aa,int Num)double temp;for(int ii=0;iiNum-1;ii+)for(int jj=0;jjaajj+1)temp=aajj;aajj=aajj+1;aajj+1=temp;4 程序注释程序注释1)目的(重要性)目的(重要性)提高程序的可读性,使程序容易修改提高程序的可读性,使程序容易修改(有时注释的内容比程序本身长)(有时注释的内容比程序本身长)2)C语言模式语言模式/*注释内容注释内容*/3)C+模式模式/注释内容注释内容4)注意)注意注释不要嵌套注释不要嵌套软件技术/*/*注释内容注释内容*/注释内容注释内容5 作业作业1)软件工程)软件工程2)匈牙利命名法)匈牙利命名法3)缩进格式)缩进格式4)程序注释)程序注释软件技术