软件设计规范

  • 格式:docx
  • 大小:24.70 KB
  • 文档页数:10

下载文档原格式

  / 10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件设计规范

概述

软件设计是把需求转化为软件系统的最重要的环节,系统设计的优劣在根本上决定了软

件系统的质量。

在此,主要阐述软件系统设计的5个核心内容:体系结构设计、用户界面设计、数据库设计、模块设计、数据结构和算法设计。旨在帮助开发人员搞清楚“设计什么”以及“如何

设计”。

一般把设计过程划分为两个阶段:概要设计阶段和详细设计阶段,如下所示:

*概要设计阶段的重点是体系结构设计。

*详细设计阶段的重点是用户界面设计、数据库设计、模块设计、数据结构与算法设计

等。

可根据项目的情况进行文档裁减和过程合并,如项目开发过程只有一个设计阶段和设计

文档。

体系结构

体系结构如同人的骨架。如果某个家伙的骨架是猴子,那么无论怎样喂养和美容,这家

伙始终都是猴子,不会成为人。

由此可见,体系结构乃是系统设计的重中之重。

目前业界比较流行的软件结构模式有C/S(客户/服务器)、B/S(BROWSE/SERVER)、层次结构(上下级层次结构、顺序相邻的层次结构、含中间件的层次结构)

体系结构设计原则

● 合适性

即体系结构是否适合于软件的“功能性需求”和“非功能性需求”。高水平的设计师高就高在“设计出恰好满足客户需求的软件,并且使开发方和客户方获取最大的利益,而不是

不惜代价设计出最先进的软件。

● 结构稳定性

详细设计阶段的工作如用户界面设计、数据库设计、模块设计、数据结构与算法设计等等,都是在体系结构确定之后开展的,而编程和测试则是更后面的工作,因此体系结构应在

一定的时间内保持稳定。

软件开发最怕的就是需求变化,但“需求会发生变化”是个无法逃避的现实。人们希望在需求发生变化时,最好只对软件做些皮皮毛毛的修改,可千万别改动软件的体系结构。如果当需求发生变化时,程序员不得不去修改软件的体系结构,那么这个软件的系统设计是失

败的。

高水平的设计师应当能够分析需求文档,判断出哪些需求是稳定不变的,哪些需求是可能变动的。于是根据那些稳定不变的需求设计体系结构,而根据那些可变的需求设计软件的

“可扩展性”。

● 可扩展性

可扩展性是指软件扩展新功能的容易程度。可扩展性越好,表示软件适应“变化”的能

力越强。

可扩展性越来越重要,这是由现代软件的商业模式决定的:

*社会的商业越发达,需求变化就越快。需求变化必将导致修改(或者扩展)软件的功能,现代软件的规模和复杂性要比十年前的大得多(对比一下操作系统的变化就明白了),如果软件的可扩展性比较差的话,那么修改(或者扩展)功能的代价会很高。

*现代软件产品通常采用“增量开发模式”,开发商不断地推出软件产品的新版本,从而不断地获取增值利润。如果软件的可扩展性比较差的话,每次开发新版本的代价就会很高。虽然开发商抓住了商机,但却由于设计水平差而导致没有赚取多少利润,真是要活活气死。

● 可复用性

由经验可知,通常在一个新系统中,大部分的内容是成熟的,只有小部分内容是创新的。一般地可以相信成熟的东西总是比较可靠的(即具有高质量),而大量成熟的工作可以通过

复用来快速实现(即具有高生产率)。

可复用性是设计出来的,而不是偶然碰到的。要使体系结构具有良好的可复用性,设计师应当分析应用域的共性问题,然后设计出一种通用的体系结构模式,这样的体系结构才可

以被复用。

用户界面设计

为了提高用户界面的易用性和美观程度,总结了十个设计原则。用于提高易用性的界面

设计原则有8个:

*用户界面适合于软件的功能

*容易理解

*风格一致

*及时反馈信息

*出错处理

*适应各种用户

*国际化

*个性化

用于提高美观程度的设计原则有:

*合理的布局

*和谐的色彩

● 用户界面适合于软件的功能

用户界面的合适性是指界面与软件功能相融洽的程度。软件的功能需要通过用户界面来展现,用户界面一定要适合于软件的功能,这是最基本的要求。界面的合适性既提倡外美内

秀,又强调恰如其分。

● 容易理解

提高用户界面可理解性的一些规则如下:

*界面中的所有元素(如菜单、工具条等)没有错误,也不会让人误解。

*所有的界面元素应当提供充分而必要的提示,例如当鼠标移动到工具条上的某个图标

按钮时,应当在该图标旁边出现功能提示。

*界面结构能够清晰地反映工作流程,以便用户按部就班地操作。

*对于复杂的用户界面而言,最好提供界面“向导”,及时让用户知道自己在界面结构中所处的位置。例如对于基于Web的应用软件,应该在界面上显示“当前位置”,否则用户

很容易在众多的页面中迷失方向。

● 风格一致

风格一致有两方面的含义:

(1)一个软件的用户界面中,同类的界面元素应当有相同的视感和相同的操作方式。例如命令按钮是最常见的界面元素,所有命令按钮的形状、色彩以及对鼠标的响应方式都是

一致的。

(2)同一类型软件的用户界面应当有一定程度的相似性。例如Microsoft公司的Office 家族里有Word、Excel、PowerPoint、Outlook等软件,这些软件提供的“复制、剪切、粘

贴”功能的操作方式都是相同的。

● 及时反馈信息

用户进行某项操作后,如果过了一会儿(几秒钟)用户界面一点反应都没有,这将使用户感到迷茫和不安,因为他不知道是自己操作错了还是软件的原因导致死机了。所以及时反馈信息很重要,至少要让用户心里有数,知道该任务处理得怎么样了,有什么样的结果。

例如下载一个文件,界面上应当显示“百分比”或相关数字来表示下载的进度,否则人们不知道要等待多少时间。如果某些事务处理不能提供进度等数据,那么至少要给出提示信息如“正在处理,请等待…”,最好是提供合适的动画,让用户明白软件正在干活、没有死

机。

● 出错处理

在设计用户界面时必须考虑出错处理,目的是让用户不必为避免犯错误而提心吊胆、小

心翼翼地操作。常见的错误处理方式有:

*提供对输入数据进行校验的功能。当用户输入错误的数据时,及时提醒用户改正数据。

*对于在某些情况下不应该使用的菜单项和命令按钮,将其“失效”(屏蔽)可以有效防止该项功能被错误地使用。例如:对于某些管理软件,不同的用户有不同的操作权限。如果低权限的用户登录到系统,那些只有高级权限用户才能使用的功能应当被屏蔽(如变成

“灰色”不可操作)。

*提供Undo功能,用以撤销不期望的操作。

*执行破坏性的操作之前,应当获得用户的确认。例如用户删除一个文件时,应当弹出对话框:“真的要删除该文件吗”,当用户确认后才真正删除文件。

● 合理的布局

首先,界面的布局应当符合逻辑,最好能够与工作流程吻合。界面设计人员只有仔细地分析软件的需求,才能提取对界面布局有价值的信息。

其次,界面的布局应当整洁(整齐清爽)。界面元素应当在水平或者垂直方向对齐,行、列的间距保持一致。窗体的尺寸要合适,各种控件不能过分拥挤也不能过分宽松。要善于利

用窗体和控件的空白,以及分割用的线条。

● 和谐的色彩