软件设计

软件设计是一个创造性的过程,对一些设计者来说需要一定的资质,而最后设计通常都是由一些初步设计演变而来的。从书本上学不会设计,只能经过实践,通过对实际系统的研究和实践才能学会。对于高效的软件工程,良好的设计是关键,一个设计得好的软件系统应该是可直接实现和易于维护、易懂和可靠的。设计得不好的系统,尽管可以工作,但很可能维护起来费用昂贵、测试困难和不可靠,因此,设计阶段是软件开发过程中最重要的阶段。
直到最近,软件设计在很大程度上仍是一个特定过程。一般用自然语言给定一需求集,预先作非正式设计,常常用流程图的形式说明,接着开始编码,当系统实现时设计还需修改。当实现阶段完成后,设计往往已与起初形式相去甚远以至于设计的原始文档完全不适合对系统的描述。
软件设计的这种方法导致了许多动态的和非常昂贵的工程失败。现在已经认识到一些完全非正规的表示法,诸如接近于编程语言的流程图,不适用于系统设计的描述和表达。大家认识到,精确的(尽管并不一定是正规的)说明是设计过程的必要部分。软件设计是一个反复的、不能用任何单一表示法来表示的多层次活动。相应地,大量的设计表示法,如数据流图、层次式输入-处理-输出结构图和设计描述语言已经开发出来,这些表示法能比流程图更好地表达软件设计。
给定一个需求定义,软件工程师必须以此导出满足这些需求的程序系统的设计,此导出过程是通过下述步骤来完成的:
1.必须建立组成程序系统的子系统。
2.必须把每个子系统分解成分离的成分,并且子系统规范通过定义这些成分的操作来建立。
3.每个程序可以用相互作用的子成分设计。
4.每个成分还须进行优化,这通常需要将每个成分规范化成层次式的子成分。
5.优化过程中的某个阶段,各成分中的算法必须详细说明。
除了程序系统设计中的这些阶段之外,软件工程师也可能需要设计允许系统中各进程之间进行通信的通信机制。他们或许要设计文件结构,并且很可能要设计用于程序的数据结构,他们还需要设计确认程序的测试事例。
确定何为“成功”的设计无一定之规,取决于其应用和特定的工程要求。一个成功的设计应该是:能生成高效的代码,实现尽量紧凑的最小设计,或是一个最易维护的设计。最后一个标准是本文采用的质量标准,可维护性设计意指系统修改费用最低,设计可懂度高和修改是局部性的。只有逻辑上高度结合而相互间松散地耦合的软件设计才能实现以上两个因素。
有效的软件设计最好利用一致性设计方法。有大量的在不同应用环境中开发并使用的设计方法,其中有些是由皮特森(1980)、布兰克和克瑞境(1983)描述的。实质上,这些方法大多数可划分为三类:
1.由上至下的功能设计:从功能的观点设计系统,从高层的观点着手将系统逐步地提炼成更具体的设计。结构化设计和阶梯式优化就是使用此方法的例子。
2.面向目标设计:把系统作为目标集合而不是功能的集合,信息在目标与目标之间传送,每个目标有它自己的相互关联操作集。面向目标的设计方法是基于信息隐藏的观点,该观点由巴拿斯(1972)最先提出,最近又由罗滨逊(1981)和保什(1983)描述。
3.数据驱动设计:此方法由杰克逊(1975)和万勒尔(1977)提出,认为软件系统的结构应该反映该系统所处理数据的结构。因此,软件设计应由对系统输入、输出数据进行分析后而导出。

软件设计方案 用户界面设计规范 用户界面:又称人机界面,实现用户与计算机之间的通信,以控制计算机或进行用户与计算机之间的数据传送的系统部件。 GUI:即图形用户界面,一种可视化的用户界面,它使用图形界面代替正文界面。 本系统坚持图形用户界面(GUI)设计原则,界面直观、对用户透明。用户接触软件后对界面上对应的功能一目了然、不需要多少培训就可以方便地使用本应用系统。 1、界面设计介绍 界面设计是为了满足软件专业化标准化的需求而产生的对软件的使用界面进行美化优化规范化的设计分支。 1)软件启动封面设计 应使软件启动封面最终为高清晰度的图像,选用的色彩不宜超过256色,大小多为主流显示器分辨率的1/6大。启动封面上应该醒目地标注制作或支持的公司标志、产品商标、软件名称、版本号、网址、版权声明、序列号等信息,以树立软件形象,方便使用者或购买者在软件启动的时候得到提示。插图宜使用具有独立版权的、象征性强的、识别性高的、视觉传达效果好的图形,若使用摄影也应该进行数位处理,以形成该软件的个性化特征。如果是系列软件还将考虑整体设计的统一和延续性。 2)软件框架设计 软件的框架设计要复杂得多。软件框架设计应该简洁明快,尽量少用无谓的装饰,应该考虑节省屏幕空间,各种分辨率的大小,缩放时的状态和原则,并且为将来设计的按钮、菜单、标签、滚动条及状态栏预留位置。设计中将整体色彩组合进行合理搭配,将软件商标放在显著位置,主菜单应放在左边或上边,滚动条放在右边,状态栏放在下边,以符合视觉流程和用户使用心理。 3)软件按钮设计 软件按钮设计应该具有交互性,即应该有3到6种状态效果:点击前鼠标未放在上面时的状态;鼠标放在上面但未点击的状态;点击时状态;点击后鼠标未放在上面时的状态;不能点击时状态;独立自动变化的状态。按钮应具备简洁的图示效果,名称易懂,用词准确,能望文知意最好,让使用者产生功能关联反应,群组内按钮应该风格统一,功能差异大的按钮应该有所区别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值