适当的约束带来更大的自由,通用的产品比专业的产品更难以设计。
本科毕业设计的过程中,导师给了个他课题组的项目,但是没有给定毕设题目,意思是让我学习研究,看最后到了什么程度,然后定题目,结果做了5个月,直到毕业答辩的前一周才定题目,过程中很是痛苦,因为不知道我能做到什么程度,于是去翻看文献,测试代码,写代码,虽然收益很大,但是也是搞得很辛苦。
当时做的事图像融合,本来什么方向都没有,后来缩放到多聚焦图像融合,研究的点就集中了,从图像融合的几个准则入手,很快就做了一些东西,算法设计完后,就是软件设计,又没有约束,考虑到时间不够,就采用混合编程去实现了,不过对于软件设计还是在表面上游走,到了现在,如果我是导师,我一定会给学生一个建议,可以听从,让他自己选择。
在设计软件之前,必需要先做一个预算,约束文档。
约束越多,实现设计也就越快,假设要设计一个上位机软件,提出要求:
软件平台:
1.VC6.0++ windows编程
2.单片机C52
3.ADO数据库访问
具体细节:
balabala.......
如果一开始就定下基调,相信入手就非常明了,即使对于一个不懂编程的人,我相信一个月能实现简单的要求。
假如一开始就不做要求,要一个上位机软件,去设计,VC ? VB ? LABVIEW ? C# ? JAVA ? 什么都可以去设计,但是不同的语言,都有自己的设计规格, 然后数据库,SQL ,ORACLE ,ACCESS,TXT ,XML,都可以选择,但是要选哪个,都是问题。
接下来,认识约束:
时间+ | 空间+ | 人为+ | |
时间- | 不随时间变化而变化的约束 | 时间导致的约束可以以空间来放宽 | 时间导致的约束可以以人为来放宽 |
空间- | 空间导致的约束可以以时间来放宽 | 不随空间变化而变化的约束 | 空间间导致的约束可以以人为来放宽 |
人为- | 人为导致的约束可以以时间来放宽 | 人为导致的约束可以以空间来放宽 | 不随人为变化而变化的约束 |
在设计软件时,语言,资源,都只是工具,重要是我们需要理解用户需要什么,客户的要求包含的约束,一个好的架构和用户模型好于用一门精致的语言。
时间: 2024-11-05 15:59:06