湖南大学软件实训样例Word文档格式.docx
- 文档编号:17337024
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:18
- 大小:31.87KB
湖南大学软件实训样例Word文档格式.docx
《湖南大学软件实训样例Word文档格式.docx》由会员分享,可在线阅读,更多相关《湖南大学软件实训样例Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
6)标签设计
标签设计应该注意转角部分的变化,状态可参考按钮。
7)图标设计
图标设计色彩不宜超过64色,大小为16x16、32x32两种,应该加以着重考虑视觉冲击力,它需要在很小的范围表现出软件的内涵,在设计时使用简单的颜色,利用眼睛对色彩和网点的空间混合效果,做出精彩图标。
8)滚动条及状态栏设计
滚动条主要是为了对区域性空间的固定大小中内容量的变换进行设计,应该有上下箭头,滚动标等,有些还有翻页标。
状态栏是为了对软件当前状态的显示和提示。
9)安装过程设计
安装过程设计主要是将软件安装的过程进行美化,包括对软件功能进行图示化。
10)包装及商品化
最后软件产品的包装应该考虑保护好软件产品,功能的宣传融合于美观中,可以印刷部分产品介绍。
2、界面设计原则
1)易用性
(1)完成相同或相近功能的按钮用Frame框起来,常用按钮要支持快捷方式;
(2)完成同一功能或任务的元素放在集中位置,减少鼠标移动的距离;
(3)按功能将界面划分局域块,用Frame框括起来,并要有功能说明或标题;
(4)界面要支持键盘自动浏览按钮功能,即按Tab键的自动切换功能;
(5)同一界面上的控件数最好不要超过10个,多于10个时可以考虑使用分页界面显示;
(6)分页界面要支持在页面间的快捷切换,常用组合快捷键Ctrl+Tab;
(7)默认按钮要支持Enter及选操作,即按Enter后自动执行默认按钮对应操作;
(8)可写控件检测到非法输入后应给出说明并能自动获得焦点;
(9)Tab键的顺序与控件排列顺序要一致,目前流行从上到下、从左到右的方式;
(10)复选框和选项框要有默认选项,按选择机率的高低而先后排列,并支持Tab选择;
(11)界面空间较小时使用下拉框而不用选项框;
(12)选项数较少时使用选项框,相反使用下拉列表框;
(13)适当使用相关的专业术语,提倡使用通用性字眼。
2)规范性
通常界面设计都按Windows界面的规范来设计,即包含“菜单条、工具栏、工具厢、状态栏、滚动条、右键快捷菜单”的标准格式。
小型软件一般不提供工具厢。
(1)菜单前的图标能直观地代表要完成的操作,常用菜单要有命令快捷方式;
(2)完成相同或相近功能的菜单用横线隔开放在同一位置,菜单深度一般要求最多控制在三层以内;
(3)相同或相近功能的工具栏放在一起,工具栏中的每一个按钮要有及时提示信息;
(4)系统常用的工具栏设置默认放置位置,工具栏的图标能直观地代表要完成的操作,一条工具栏的长度不能超出屏幕宽度;
(5)工具栏太多时可以考虑使用工具厢;
工具厢要具有可增减性,由用户自己根据需求定制,默认总宽度不要超过屏幕宽度的1/5;
(6)状态条要能显示用户切实需要的信息,常用的有:
目前的操作、系统状态、用户位置、用户信息、提示信息、错误信息等,高度以放置五好字为宜;
(7)滚动条的长度要根据显示信息的长度或宽度能及时变换,以利于用户了解显示信息的位置和百分比,并且宽度应比状态条的略窄;
(8)菜单和工具条要有清楚的界限,菜单要求凸出显示,这样在移走工具条时仍有立体感;
(9)菜单和状态条中通常使用五号字体。
工具条一般比菜单要宽,但不要宽得太多,否则看起来很不协调;
(10)右键快捷菜单采用与菜单相同的准则。
3)合理性
屏幕对角线相交的位置是用户直视的地方,正上方四分之一处为易吸引用户注意力的位置,在放置窗体时要注意利用这两个位置。
(1)父窗体或主窗体的中心位置应该在对角线焦点附近;
(2)子窗体位置应该在主窗体的左上角或正中,多个子窗体弹出时应该依次向右下方偏移,以显示出窗体标题为宜;
(3)重要的命令按钮与使用较频繁的按钮要放在界面上注目的位置;
(4)与正在进行的操作无关的按钮应该加以屏蔽(Windows中用灰色显示,没法使用该按钮);
(5)对可能造成数据无法恢复的操作必须提供确认信息,给用户放弃选择的机会。
4)美观与协调性
(1)按钮大小基本相近,且与界面的大小、空间要协调,忌用太长的名称;
(2)避免空旷的界面上放置很大的按钮,放置完控件后界面不应有很大的空缺位置;
(3)前景与背景色搭配合理协调,反差不宜太大,最好少用深色,常用色考虑使用Windows界面色调;
(4)界面风格要保持一致,字的大小、颜色、字体要相同,除非是需要艺术处理或有特殊要求的地方;
(5)如果窗体支持最小化、最大化或放大时,窗体上的控件也要随着窗体而缩放;
(6)对于含有按钮的界面一般不应该支持缩放,即右上角只有关闭功能;
(7)通常父窗体支持缩放时,子窗体没有必要缩放。
5)界面一致性
在界面设计中应该保持界面的一致性。
一致性既包括使用标准的控件,也指使用相同的信息表现方法,如在字体、标签风格、颜色、术语、显示错误信息等方面确保一致。
(1)显示信息一致性
①标签提示:
字体为不加粗、宋体、黑色、灰底或透明、无边框、右对齐、不带冒号、一般情况为五号;
②日期:
正常字体、宋体、白底黑字;
③对齐方法
左对齐:
一般文字、单个数字、日期等
右对齐:
数字、时间、日期加时间
④分辨率800*600,增强色16色;
⑤字体缺省为宋体、五号、黑色;
⑥底色缺省为灰色。
这些信息的排列显示风格供参考,在同一软件中应当注意表现形式的一致性。
(2)布局合理化
应注意在一个窗口内部所有控件的布局和信息组织的艺术性,使得用户界面美观。
布局不宜过于密集,也不能过于空旷,合理的利用空间。
在一个窗口中按tab键,移动顺序不能杂乱无章,先从上至下,再从左至右。
一屏中首先应输入的和重要信息的控件在tab顺序中应当靠前,并放在窗口上较醒目的位置。
布局力求简洁、有序、易于操作。
(3)鼠标与键盘对应
应用中的功能只用键盘也应当可以完成,即设计的应用中还应加入一些必要的按钮和菜单项。
但是,许多鼠标的操作,如双击、拖动对象等,并不能简单地用键盘来模拟即可实现。
例如在一个列表框中用鼠标单击其中一项表示选中该项内容,为了用键盘也能实现这一功能,必须在窗口中定义一个表示选中的按钮,以作为实现单击功能的替。
又如在一个窗口中有两个数据窗口,可以用鼠标从一个数据窗口中将一项拖出然后放到另一个中,如果只用键盘,就应当在菜单中设置拷贝或移动的菜单项。
(4)快捷键
在菜单项中使用快捷键可以让使用键盘的用户操作得更快一些,在Windows及其应用软件中快捷键的使用大多是一致的。
本系统中应用的快捷键在各个配置项上语义必须保持一致。
6)向导
对于应用中某些部分的处理流程是固定的,用户必须按照指定的顺序输入操作信息,为了使用户操作得到必要的引示应该使用向导,使用户使用功能时比较轻松明了,但是向导必须用在固定处理流程中,并且处理流程应该不少于3个处理步骤。
7)用户帮助
系统应该提供详尽而可靠的帮助文档,在用户使用产生迷惑时可以自己寻求解决方法。
常用的帮助设施有两种:
集成的和附加的。
集成的帮助设施一开始就是设计在软件中的,它与语境有关,用户可以直接选择与所要执行操作相关的主题。
通过集成帮助设施可以缩短用户获得帮助的时间,增加界面的友好性,附加的帮助设施在系统建好以后再加进去,通常是一种查询能力比较弱的联机帮助。
(1)帮助文档中的性能介绍与说明要和系统性能配套一致;
(2)操作时要提供及时调用系统帮助的功能,常用F1;
(3)最好提供目前流行的联机帮助格式或HTML帮助格式;
(4)用户可以用关键词在帮助索引中搜索所要的帮助,当然也应该提供帮助主题词;
(5)在帮助中应该提供我们的技术支持方式,一旦用户难以自己解决可以方便地寻求新的帮助方式。
8)出错信息和警告
出错信息和警告是指出现问题时系统给出的坏消息,信息以用户可以理解的术语描述。
(1)信息应提供如何从错误中恢复的建设性意见;
(2)信息应指出错误可能导致哪些不良后果,以便用户检查是否出现了这些情况并帮助用户进行改正;
(3)信息应伴随着视觉上的提示,如特殊的图像、颜色或者信息闪烁;
(4)信息不能带有判断色彩,即在任何情况下不能指责用户。
9)一般交互
(1)一致性:
菜单选择、数据显示以及其它功能都应使用一致的格式;
(2)提供有意义的反馈;
(3)在数据录入上允许取消大多数操作;
(4)减少在动作间必须记忆的信息数量;
(5)允许用户非恶意错误,系统应保护自己不受致命错误的破坏。
10)数据输入
(1)尽量减少用户输入动作的数量;
(2)维护信息显示和数据输入的一致性;
(3)交互应该是灵活的,对键盘和鼠标输入的灵活性提供支持;
(4)在当前动作的语境中使不合适的命令不起作用。
11)独特性
如果一味地遵循业界的界面标准,则会丧失自己的个性。
在框架符合规范的情况下,设计具有自己独特风格的界面尤为重要,在商业软件流通中会有很好的潜移默化的广告效用。
安装界面上应有单位介绍或产品介绍,并有自己的图标。
采用这种松散方式编写代码的目的是使代码更加清晰,在已经非常清晰的语句中没有必要再留空格。
如果语句已足够清晰,则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间也不必加空格。
在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。
(1)逗号、分号只在后面加空格。
inta,b,c;
(2)比较操作符、赋值操作符、算术操作符、逻辑操作符、位操作符等双目操作符的前后加空格。
a=b+c;
a*=2;
a=b^2;
(3)"
!
"
、"
~"
++"
--"
&
(地址运算符)等单目操作符前后不加空格。
flag=!
isFull;
p=&
com;
i++;
(4)"
->
."
前后不加空格。
(5)if、for、while、switch等与后面的括号间应加空格,使if等关键字更为突出、明显。
if(a>
=b&
c>
d)
12)一行程序以小于80字符为宜,不要写得过长。
2、注释
注释应该说明代码的目的,要讲清为什么要那么做,而不是怎么去做。
1)一般情况下,源程序有效注释量必须在20%以上。
注释的原则是有助于对程序的阅读理解,在该加的地方都加,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁;
2)注释格式尽量统一,建议使用“/*……*/”;
3)说明性文件(如头文件.h文件、.inc文件等)头部应进行注释,注释必须列出:
版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系等,头文件的注释中还应有函数功能简要说明;
4)源文件头部应进行注释,列出:
版权说明、版本号、生成日期、作者、模块功能、主要函数及其功能等;
5)函数头部应进行注释,列出:
函数功能、输入参数、输出参数、返回值等;
6)边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性;
7)避免在注释中使用缩写,特别是非常用的缩写。
如无法避免,应对缩写进行必要的说明;
8)注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,如放于上方则需与其上面的代码用空行隔开;
9)变量、常量、宏的注释有时也是必须的,应放在其上方相邻位置或右方;
10)数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须加以注释。
对数据结构的注释应放在其上方相邻位置,对结构中的每个域的注释放在此域的右方;
11)全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明;
12)将注释与其上面的代码用空行隔开,注释与所描述内容进行同样的缩排;
13)对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。
这些语句往往是程序实现某一特定功能的关键,对于维护人员来说,良好的注释帮助更好地理解程序,有时甚至优于看设计文档;
14)通过对函数或过程、变量、结构等正确的命名以及合理地组织代码的结构,使代码成为自注释的,减少不必要的注释;
15)当代码段较长,特别是多重嵌套时,在程序块的结束行右方加注释标记,以表明某程序块的结束;
16)建议注释多使用中文,除非能用非常流利准确的英文表达。
3、标识符命名
1)标识符的命名要清晰明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。
较长的单词可取单词的头几个字母形成缩写,一些单词有大家公认的缩写;
2)命名中若使用特殊约定或缩写,应该在源文件的开始之处,进行必要的注释说明;
3)命名风格要自始至终保持一致;
4)对于变量命名,禁止取单个字符(如i、j、k...)。
单个字符容易敲错,且编译时又不易检查出来。
建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i、j、k作局部循环变量是可以的;
5)命名规范必须与所使用的系统风格保持一致,并在同一项目中统一。
除非必要,不要用数字或较奇怪的字符来定义标识符;
6)在同一软件产品内,应规划好接口部分标识符(变量、结构、函数及常量)的命名,防止编译、链接时产生冲突;
7)用正确的反义词组命名具有互斥意义的变量或相反动作的函数等;
下面是一些在软件中常用的反义词组:
add/removebegin/endcreate/destroy
insert/deleteadd/deleteget/release
increment/decrementput/get
lock/unlockopen/closefirst/last
min/maxold/newstart/stop
next/previoussend/receiveshow/hide
source/targetsource/destination
cut/pasteup/down
8)除了特殊应用,应避免使用以下划线开始和结尾的定义。
4、可读性
1)注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级;
2)避免使用不易理解的数字,用有意义的标识来替代;
3)源程序中关系较为紧密的代码应尽可能相邻,便于程序阅读和查找;
4)不要使用难懂的技巧性很高的语句,除非很有必要时。
程序的高效率并不等同于语句的高技巧,而在于算法。
5、变量与结构
1)去掉没必要的公共变量,以降低模块间的耦合度;
2)仔细定义并明确公共变量的含义、作用、取值范围及公共变量间的关系;
3)明确公共变量与操作此公共变量的函数或过程的关系,如访问、修改及创建等。
这种关系的说明可在注释或文档中描述;
4)当向公共变量传递数据时,要十分小心,防止赋与不合理的值或越界等现象发生。
若有必要应进行合法性检查,以提高代码的可靠性、稳定性;
5)构造仅有一个模块或函数可以修改、创建,而其余有关模块或函数只访问的公共变量,防止多个不同模块或函数都可以修改、创建同一公共变量的现象;
6)使用严格形式定义的、可移植的标准数据类型,尽量不要使用与具体硬件或软件环境关系密切的变量;
7)结构的功能要单一,是针对一种事务的抽象。
结构中的各元素应代表同一事务的不同侧面,而不应把描述没有关系或关系很弱的不同事务的元素放到同一结构中;
8)不同结构间的关系不要过于复杂,否则应合为一个结构;
9)仔细设计结构中元素的布局与排列顺序,使结构容易理解、节省占用空间,并减少引起误用的现象;
10)结构的设计要尽量考虑向前兼容和以后的版本升级,并为某些未来可能的应用保留余地;
11)留心具体语言及编译器处理不同数据类型的原则及有关细节;
12)编程时,要注意数据类型的强制转换。
对编译系统默认的数据类型转换要有充分的认识,尽量减少没有必要的数据类型默认转换与强制转换,合理地设计数据并使用自定义数据类型,避免数据间进行不必要的类型转换;
13)对自定义数据类型进行恰当命名,使它成为自描述性的,以提高代码可读性,但要注意其命名方式在同一产品中的统一。
6、函数与过程
1)设计高扇入、合理扇出(小于7)的函数。
较良好的软件结构通常是顶层函数的扇出较高,中层函数的扇出较少,而底层函数则扇入到公共模块中;
2)函数的规模尽量限制在200行以内,不包括注释和空格行;
3)对所调用函数的错误返回码要仔细、全面地处理;
4)在同一项目组应明确规定对接口函数参数的合法性检查应由函数的调用者负责还是由接口函数本身负责,缺省是由函数调用者负责;
5)防止将函数的参数作为工作变量。
对必须改变的参数,最好先用局部变量代之,再将该局部变量的内容赋给该参数;
6)一个函数仅完成一件功能,不要设计多用途的函数。
函数名应准确描述函数的功能;
7)函数的功能应该是可以预测的,也就是说只要输入数据相同就应产生同样的输出;
8)避免设计多参数函数,不使用的参数从接口中去掉,减少函数间接口的复杂度;
9)非调度函数应减少或防止控制参数,尽量只使用数据参数,防止函数间的控制耦合;
10)检查函数所有参数输入与非参数输入的有效性;
11)在编程时,经常遇到在不同函数中使用相同的代码,许多开发人员都愿把这些代码提出来,并构成一个新函数。
若这些代码关联较大并且是完成一个功能的,那么这种构造是合理的,否则这种构造将产生随机内聚的函数;
12)功能不明确且较小的函数,特别是仅有一个上级函数调用它时,应考虑把它合并到上级函数中,而不必单独存在;
13)减少函数本身或函数间的递归调用。
除非为某些算法或功能的实现方便,应减少没必要的递归调用;
14)仔细分析模块的功能及性能需求,并进一步细分,若有必要画出有关数据流图,据此来进行模块的函数划分与组织;
15)对于提供了返回值的函数,在引用时最好使用其返回值;
16)当一个过程(函数)中对较长变量(一般是结构的成员)有较多引用时,可以用一个意义相当的宏代替。
7、可测性
1)在同一项目组或产品组内,要有一套统一的为集成测试与系统联调准备的调测开关及相应打印函数,并且要有详细的说明;
2)在同一项目组或产品组内,调测打印出的信息串的格式要有统一的形式。
信息串中至少要有所在模块名(或源文件名)及行号;
3)编程的同时要为单元测试选择恰当的测试点,并仔细构造测试代码、测试用例,同时给出明确的注释说明。
测试代码部分应作为(模块中的)一个子模块,以方便测试代码在模块中的安装与拆卸(通过调测开关);
4)使用断言来发现软件问题,提高代码可测性。
用断言来检查程序正常运行时不应发生但在调测时有可能发生的非法情况,但不能用断言来检查最终产品肯定会出现且必须处理的错误情况;
5)对较复杂的断言加上明确的注释,用断言确认函数的参数,保证没有定义的特性或功能不被使用,对程序开发环境的假设进行检查;
6)正式软件产品中应把断言及其它调测代码去掉(即把有关的调测开关关掉),以加快软件运行速度;
7)在软件系统中设置与取消有关测试手段,不能对软件实现的功能等产生影响;
8)用调测开关来切换软件的DEBUG版和正式版,而不要同时存在正式版本和DEBUG版本的不同源文件,以减少维护的难度;
9)软件的DEBUG版本和发行版本应该统一维护,不允许分家,并且要时刻注意保证两个版本在实现功能上的一致性;
10)在编写代码之前,应预先设计好程序调试与测试的方法和手段,并设计好各种调测开关及相应测试代码如打印函数等;
11)调测开关应分为不同级别和类型。
针对模块或系统某部分代码的调测,针对模块或系统某功能的调测,对性能、容量等的测试;
12)编写防错程序,然后在处理错误之后可用断言宣布发生错误。
8、程序效率
1)在保证软件系统的正确性、稳定性、可读性及可测性的前提下提高代码效率,包括全局效率、局部效率、时间效率及空间效率;
2)局部效率应为全局效率服务,不能因为提高局部效率而对全局效率造成影响;
3)通过对系统数据结构的划分与组织的改进,以及对程序算法的优化来提高空间效率;
4)仔细考虑循环体内的语句是否可以放在循环体之外,使循环体内工作量最小,从而提高程序的时间效率;
5)仔细考查、分析系统及模块处理输入(如事务、消息等)的方式,并加以改进;
6)对模块中函数的划分及组织方式进行分析、优化,改进模块中函数的组织结构,提高程序效率;
7)不应花过多的时间拼命地提高调用不很频繁的函数代码的效率;
8)仔细地构造或直接用汇编编写调用频繁或性能要求极高的函数。
嵌入汇编可提高时间及空间效率,但也存在一定风险;
9)在保证程序质量的前提下,通过压缩代码量、去掉不必要代码以及减少不必要的局部和全局变量,来提高空间效率;
10)尽量减少循环嵌套层次。
在多重循环中,应将最忙的循环放在最内层,以减少CPU切入循环层的次数;
11)避免循环体内含判断语句,应将循环语句置于判断语句的代码块之中;
12)尽量用乘法或其它方法代替除法,特别是浮点运算中的除法;
13)不要一味地追求紧凑的代码,因为紧凑的代码并不代表高效的机器码。
9、质量保证
1)在软件设计过程中构筑软件质量;
2)代码质量保证优先原则
(1)正确性,指程序要实现设计要求的功能;
(2)稳定性/安全性,指程序稳定、可靠、安全;
(3)可测试性,指程序要具有良好的可测试性;
(4)规范/可读性,指程序书写风格、命名规则等要符合规范;
(5)全局效率,指软件系统的整体效率;
(6)局部效率,指某个模块、子模块、函数的本身效率;
(7)个人表达方式,指个人编程习惯。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湖南大学 软件 实训样例