论文部分内容阅读
【摘要】在逻辑线路的设计中,逻辑表达式越简单,线路实现起来就越经济、越合理。在实际应用中,更需要一个完备的系统来实现逻辑表达式的化简、验证问题。本文从整个项目架构的设计出发,细节化软件功能,设计系统接口。
【关键词】公用对象模块;化简模块;自动生成模块;验证模块
在逻辑线路的设计中,逻辑表达式越简单,线路实现起来就越经济、越合理。因此,实现逻辑表达式的简化工作是有很大实用价值的。如何运用最简便的方法,以最少的逻辑元件组成所需要的逻辑关系,是逻辑设计的基本任务之一。在实际应用中,更需要一个完备的系统来实现逻辑表达式的化简、验证问题。我现仅从整个项目架构的接口设计出发,采用模块化设计了一套可以支持化简任意逻辑表达式的系统。
我将系统分为前台系统和后台系统两大模块,它们具体的关系设计如下:
一、后台系统的设计
1、公用对象模块的设计
该模块主要负责定义一个逻辑表达式对象,并检查逻辑表达式的格式是否合法。由于字符串形式的逻辑表达式可能存在语法错误,如果在各模块之间传递字符串形式的逻辑表达式势必影响系统的稳定性。所以,该模块负责定义一个“没有错误”的逻辑表达式对象,用以在各模块之间传递。
另外,由于计算机输入系统的特殊性,很难直接表述逻辑表达式,例如“非”的情况,是没有办法直接通过键盘输入的。所以,该模块需要实现一个“输入转换器”,规定该系统允许输入的逻辑表达式的语法格式。
该公共模块需要实现将逻辑表达式在各种状态间转换的功能,例如将逻辑表达式转换为最小项形式等。而转换为最小项就要首先化简为与或项形式,将带有括号和“非”状态的逻辑表达式转换为标准的与或项形式就必须先去掉括号。然后将每个与或项补齐成最小项,这些功能都由该模块实现。
2、化简模块的设计
化简系统要实现两种化简方法,一种是Q-M化简法,另一种是改进后的化简方法。同时,由于两个方法存在很多相似之处,所以可以通过复用两个方法的部分功能达到简化编码的目的。
3、自动生成模块的设计
为了重复验证系统的可靠性和效率,该模块负责自动产生随机逻辑表达式。为了有针对性的测试,该模块可以由用户指定随机产生的逻辑表达式的参数,包括:变量个数、项数、括号最大嵌套层数。为了测试通用性,该模块除了可以产生最小项形式的逻辑表达式外,还应该可以产生英文字母和下标形式的逻辑表达式。并且,该模块还必须保证生成的逻辑表达式字符串是合法的。可以考虑使用“有穷自动机”的原理实现该功能。
该步骤生成逻辑表达式字符串以后,使用公共对象封装,再传入下一个模块。
4、验证模块的设计
验证模块主要实现两个功能:验证两个表达式是否相等和输出真值表。
在这里还加入了随机验证模块,可以指定最大验证次数。虽然不够严密,但是很多时候还是可以很快的指出两个表达式不等。这算是在时间和效果上的一个折中之举。
对于输出真值表,就必须要输出每种组合。由于数量太大,该系统限制仅能输出含有不多于12个变量的逻辑表达式的真值表。在真值表中,用红色标出了结果不相同的行,方便用户验证。并在末尾有统计,以表示两个表达式是否等效。
二、前台系统的设计
1、压力测试子系统的设计
在良好的模块化设计前提下,该子系统只需要调用后台系统的功能即可简单实现。通过调用自动生成系统,产生大量的逻辑表达式,并做简单的统计分析以测试化简系统的稳定性和效率,最后输出日志文件供用户分析。用户只需要在界面中指明要测试逻辑表达式的形式和复杂度即可。
2、基于桌面和web的逻辑表达式化简子系统的设计
和压力测试子系统类似,该子系统也需要依赖后台的模块化设计,简单调用后台系统的功能即可实现。
3、SOA架构有哪些基本的要求
SOA在相对较粗的粒度上对应用服务或业务模块进行封装与重用;服务间保持松散耦合,基于开放的标准,服务的接口描述与具体实现无关;灵活的架构--服务的实现细节,服务的位置乃至服务请求的底层协议都应该透明;
4、架构设计中的SOA视角
在架构设计中,SOA是一个非常重要的视角。SOA以一种粗粒度的角度去分解系统的不同功能,去分析不同功能服务之间的关系和接口,不同功能服务之间是松散偶合的。SOA也是解决不同系统功能集成和异构系统之间功能互用的一个比较不错的解决办法。
功能上,该子系统提供了多种途径输入逻辑表达式,包括调用自动生成系统随机生成逻辑表达式。
以上仅对该系统的框架进行设计,而真正要做到以上各设计模块需要分别去验证和实现。
参考文献:
[1]毛欲民.编码器真值表与逻辑表达式的关系探讨.《高师理科学刊》,2007(2).
[2]张文龙.逻辑表达式的简化和转换方法的改进.《上海师范大学学报:自然科学版》,2010(1).
[3]万春迎.针对不同逻辑表达式巧画卡诺图.《福建电脑》,2011(9).
[3]何新英,潘夕琪.FDM位置控制系统的设计与实现.《机械与电子》,2012(2).
[4]刘桂兰.地铁环控系统的设计探讨.《制冷与空调(四川)》,2012(1).
作者单位:湖北省咸宁职业技术学院
【关键词】公用对象模块;化简模块;自动生成模块;验证模块
在逻辑线路的设计中,逻辑表达式越简单,线路实现起来就越经济、越合理。因此,实现逻辑表达式的简化工作是有很大实用价值的。如何运用最简便的方法,以最少的逻辑元件组成所需要的逻辑关系,是逻辑设计的基本任务之一。在实际应用中,更需要一个完备的系统来实现逻辑表达式的化简、验证问题。我现仅从整个项目架构的接口设计出发,采用模块化设计了一套可以支持化简任意逻辑表达式的系统。
我将系统分为前台系统和后台系统两大模块,它们具体的关系设计如下:
一、后台系统的设计
1、公用对象模块的设计
该模块主要负责定义一个逻辑表达式对象,并检查逻辑表达式的格式是否合法。由于字符串形式的逻辑表达式可能存在语法错误,如果在各模块之间传递字符串形式的逻辑表达式势必影响系统的稳定性。所以,该模块负责定义一个“没有错误”的逻辑表达式对象,用以在各模块之间传递。
另外,由于计算机输入系统的特殊性,很难直接表述逻辑表达式,例如“非”的情况,是没有办法直接通过键盘输入的。所以,该模块需要实现一个“输入转换器”,规定该系统允许输入的逻辑表达式的语法格式。
该公共模块需要实现将逻辑表达式在各种状态间转换的功能,例如将逻辑表达式转换为最小项形式等。而转换为最小项就要首先化简为与或项形式,将带有括号和“非”状态的逻辑表达式转换为标准的与或项形式就必须先去掉括号。然后将每个与或项补齐成最小项,这些功能都由该模块实现。
2、化简模块的设计
化简系统要实现两种化简方法,一种是Q-M化简法,另一种是改进后的化简方法。同时,由于两个方法存在很多相似之处,所以可以通过复用两个方法的部分功能达到简化编码的目的。
3、自动生成模块的设计
为了重复验证系统的可靠性和效率,该模块负责自动产生随机逻辑表达式。为了有针对性的测试,该模块可以由用户指定随机产生的逻辑表达式的参数,包括:变量个数、项数、括号最大嵌套层数。为了测试通用性,该模块除了可以产生最小项形式的逻辑表达式外,还应该可以产生英文字母和下标形式的逻辑表达式。并且,该模块还必须保证生成的逻辑表达式字符串是合法的。可以考虑使用“有穷自动机”的原理实现该功能。
该步骤生成逻辑表达式字符串以后,使用公共对象封装,再传入下一个模块。
4、验证模块的设计
验证模块主要实现两个功能:验证两个表达式是否相等和输出真值表。
在这里还加入了随机验证模块,可以指定最大验证次数。虽然不够严密,但是很多时候还是可以很快的指出两个表达式不等。这算是在时间和效果上的一个折中之举。
对于输出真值表,就必须要输出每种组合。由于数量太大,该系统限制仅能输出含有不多于12个变量的逻辑表达式的真值表。在真值表中,用红色标出了结果不相同的行,方便用户验证。并在末尾有统计,以表示两个表达式是否等效。
二、前台系统的设计
1、压力测试子系统的设计
在良好的模块化设计前提下,该子系统只需要调用后台系统的功能即可简单实现。通过调用自动生成系统,产生大量的逻辑表达式,并做简单的统计分析以测试化简系统的稳定性和效率,最后输出日志文件供用户分析。用户只需要在界面中指明要测试逻辑表达式的形式和复杂度即可。
2、基于桌面和web的逻辑表达式化简子系统的设计
和压力测试子系统类似,该子系统也需要依赖后台的模块化设计,简单调用后台系统的功能即可实现。
3、SOA架构有哪些基本的要求
SOA在相对较粗的粒度上对应用服务或业务模块进行封装与重用;服务间保持松散耦合,基于开放的标准,服务的接口描述与具体实现无关;灵活的架构--服务的实现细节,服务的位置乃至服务请求的底层协议都应该透明;
4、架构设计中的SOA视角
在架构设计中,SOA是一个非常重要的视角。SOA以一种粗粒度的角度去分解系统的不同功能,去分析不同功能服务之间的关系和接口,不同功能服务之间是松散偶合的。SOA也是解决不同系统功能集成和异构系统之间功能互用的一个比较不错的解决办法。
功能上,该子系统提供了多种途径输入逻辑表达式,包括调用自动生成系统随机生成逻辑表达式。
以上仅对该系统的框架进行设计,而真正要做到以上各设计模块需要分别去验证和实现。
参考文献:
[1]毛欲民.编码器真值表与逻辑表达式的关系探讨.《高师理科学刊》,2007(2).
[2]张文龙.逻辑表达式的简化和转换方法的改进.《上海师范大学学报:自然科学版》,2010(1).
[3]万春迎.针对不同逻辑表达式巧画卡诺图.《福建电脑》,2011(9).
[3]何新英,潘夕琪.FDM位置控制系统的设计与实现.《机械与电子》,2012(2).
[4]刘桂兰.地铁环控系统的设计探讨.《制冷与空调(四川)》,2012(1).
作者单位:湖北省咸宁职业技术学院