设计->约束

适当的约束带来更大的自由,通用的产品比专业的产品更难以设计。

本科毕业设计的过程中,导师给了个他课题组的项目,但是没有给定毕设题目,意思是让我学习研究,看最后到了什么程度,然后定题目,结果做了5个月,直到毕业答辩的前一周才定题目,过程中很是痛苦,因为不知道我能做到什么程度,于是去翻看文献,测试代码,写代码,虽然收益很大,但是也是搞得很辛苦。

当时做的事图像融合,本来什么方向都没有,后来缩放到多聚焦图像融合,研究的点就集中了,从图像融合的几个准则入手,很快就做了一些东西,算法设计完后,就是软件设计,又没有约束,考虑到时间不够,就采用混合编程去实现了,不过对于软件设计还是在表面上游走,到了现在,如果我是导师,我一定会给学生一个建议,可以听从,让他自己选择。

在设计软件之前,必需要先做一个预算,约束文档。

约束越多,实现设计也就越快,假设要设计一个上位机软件,提出要求:

软件平台:

1.VC6.0++  windows编程

2.单片机C52

3.ADO数据库访问

具体细节:

balabala.......

如果一开始就定下基调,相信入手就非常明了,即使对于一个不懂编程的人,我相信一个月能实现简单的要求。

假如一开始就不做要求,要一个上位机软件,去设计,VC ?  VB ? LABVIEW ? C# ?  JAVA ?  什么都可以去设计,但是不同的语言,都有自己的设计规格, 然后数据库,SQL ,ORACLE ,ACCESS,TXT ,XML,都可以选择,但是要选哪个,都是问题。

接下来,认识约束:

  时间+ 空间+ 人为+
时间- 不随时间变化而变化的约束 时间导致的约束可以以空间来放宽 时间导致的约束可以以人为来放宽
空间- 空间导致的约束可以以时间来放宽 不随空间变化而变化的约束 空间间导致的约束可以以人为来放宽
人为- 人为导致的约束可以以时间来放宽 人为导致的约束可以以空间来放宽 不随人为变化而变化的约束

在设计软件时,语言,资源,都只是工具,重要是我们需要理解用户需要什么,客户的要求包含的约束,一个好的架构和用户模型好于用一门精致的语言。

设计->约束,布布扣,bubuko.com

时间: 2024-11-05 15:59:06

设计->约束的相关文章

Tcl与Design Compiler (三)——DC综合的流程

本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/  ,作者:IC_learner 1.基本流程概述 首先给三个图,一个图是高层次设计的流程图: 下面是我对这张图的理解: ① 设计之前,准备好库.HDL代码的思想.约束生成:然后根据设计思想用 RTL 源码详细地.完整地为设计建立模型.定义设计中寄存器结构和数目.定义设计中的组合电路功能.定义设计中寄存器时钟等等的设计规格和实现. ② 完成 RTL 源码

数字设计中的时钟与约束

最近做完了synopsys的DC workshop,涉及到时钟的建模/约束,这里就来聊聊数字中的时钟(与建模)吧.主要内容如下所示: ·同步电路与异步电路: ·时钟/时钟树的属性:偏移(skew)与时钟的抖动(jitter).延时(latency).转换(transition)时间: ·内部时钟: ·多路复用时钟: ·门控时钟: ·行波时钟: ·双沿时钟: ·Design Compiler中的时钟约束. 1.同步电路与异步电路 首先来谈谈同步电路与异步电路.那么首先就要知道什么是同步电路.什么是

Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle

Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle 1. 主键1 2. uniq  index2 3. 检查约束 (Check Counstraint) 对该列数据的范围.格式的限制(如:年龄.性别等)2 4. 默认约束 (Default Counstraint) 该数据的默认值2 5. trigger2 6. 外键机制  参照完整性:2 7. 断言约束:不必与特定的列绑定,可以理解为能应用于多个表的

数据库设计(2/9):域,约束和默认值(Domains, Constraints and Defaults)

对于设计和创建数据库完全是个新手?没关系,Joe Celko, 世界上读者数量最多的SQL作者之一,会告诉你这些基础.和往常一样,即使是最专业的数据库老手,也会给他们带来惊喜.Joe是DMBS杂志是多年来最受 读者喜爱的作者.他在美国.英国,北欧,南美及非洲传授SQL知识.他在ANSI / ISO SQL标准委员会工作了10年,为SQL-89和SQL-92标准做出了杰出贡献. 对于数据库开发人员,SQL数据类型和域的清楚了解是基本要求,但不是基础.如果你选择了最合适的数据类型,它可以避开很多错误

quartus II Warning 好的时序是设计出来的,不是约束出来的

Warning (15714): Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details 解释:后续高级的芯片的 drive strength 和 slew rate 都是可编程的.如果不指定的话,quartus会给出默认值并给出警告. http://www.xuebuyuan.com/408804.html quartus II Warning 好的时序

逻辑数据库设计 - 无视约束(谈外键)

有一些开发人员不推荐使用完整性约束,你可能听过以下这么几点不使用外键的原因. 1.数据更新有可能和约束冲突. 2.当前的数据库设计如此灵活,以致于不支持引用完整性约束. 3.数据库为外键建立的索引会影响性能. 4.当前使用的数据库不支持外键. 5.定义外键的语法并不简单,还需要查阅. 一.反模式:无视约束 即使第一感觉告诉你,省略外键约束能使得数据库设计更加简单.灵活,或者执行更加高效,你还是不得不在其他方面付出相应的代价 -- 必须增加额外的代码来手动维护引用完整性. 1.完整性问题 很多人对

信号完整性之差分对设计4(差分对约束)

建立差分对约束: (1)设置差分对约束,从SigXplorer PCB SI GXL打开diff_sim.top拓扑. (2)执行Setup-Constraints,弹出Set Topology Constraints对话框 (3)选择Diff Pair标签页,设置如图: (4)单击OK,关闭对话框,File->Save,保存拓扑,File->Exit. (5)应用差分对拓扑,打开Allegro Constraint Manager窗口,执行File-Import-Electrical CSe

用自己设计的表(包括主键,外键约束)填充DataSet类

1.创建一个内存表,定义主键约束等 2.声明基类数组并赋值,再把数组当做行添加到Rows中 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Data; namespace ConsoleApplication2 { class Pr

MySQL 之【约束】【数据库设计】

1.MySQL 约束: 1.约束的概念: 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性. MySQL中,常用的几种约束: 约束类型: 非空 主键 唯一 外键 默认值 关键字: NOT NULL PRIMARY KEY UNIQUE FOREIGN KEY DEFAULT 1.非空约束(NOT NULL),听名字就能理解,被非空约束的列,在插入值时必须非空. create table t1( id int(10) not null primary key );