【软件设计】软件设计到底是什么?

软件设计旨在连接需求与解决方案,构建长期可变的结构。它对抗的是需求规模,通过模型、接口和实现确保软件在复杂需求面前的灵活性。学习软件设计的关键在于理解和应用设计模式、领域驱动设计等,而不仅仅是掌握技巧。设计的目标是使软件在数据规模变化时仍能高效运行,如同算法应对数据规模一样。
摘要由CSDN通过智能技术生成

软件设计的目的?

Design is there to enable you to keep changing the software easily in the long term。
设计是为了让软件在长期更容易适应变化。
—— Kent Beck

用程序员们更熟悉的排序算法为例,快速排序的平均复杂度是 O(nlogn),而插入排序是O(n^2)。所以,一般我们说快速排序比插入排序有优势。但是,这种优势只有在一定规模下才能体现出来。当数据规模很小的时候,二者差别并不明显,更有甚者,插入排序在某些情况下表现得会更好。但当数据规模很大时,快速排序的优势就非常明显了。对比两个算法的优劣,关键在于数据规模。所以你会发现,算法和软件设计其实是一样的,二者对抗的都是规模问题,只不过,算法对抗的是数据的规模,而软件设计对抗的是需求的规模。

如何学习软件设计?

对于软件设计,我们可以将其划分为两个维度:“了解现有的软件设计”“自己设计一个软件”。对于软件设计最核心的三个部分就是模型、接口和实现。软件设计的相关知识有很多,比如,设计模式、领域驱动设计等等。但是在学习这些知识时,总有一些令人困惑的地方。比方说,学了那么多设计模式能用上的却没有几个,领域驱动设计中的概念那么多,都不知道该从哪学起,因此软件设计学习的难度,不在于一招一式,而在于融会贯通

软件设计到底是什么?

我们先来思考这样一件事:软件的开发目的是什么?
一个直白的答案就是,软件开发是为了解决由需求带来的各种问题,而解决的结果是一个可以运行的交付物。比如,我们在线购物的需求,是通过电商平台这个方案解决的。那软件设计在这个过程中做的事情是什么呢?就是在需求和解决方案之间架设一个桥梁。区别于解决简单问题,软件的开发往往是一项长期的工作,会有许多人参与其中。在这种情况下,就需要建立起一个统一的结构,以便所有人都能有一个 共同的理解。而在软件的开发过程中,这种统一的结构就是模型,而软件设计就是要构建出一套模型

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Programmer Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值