软件工程-形式化方法

2023-06-25  本文已影响0人  扫地专业高级研究生

“这完全是走走形式,完全不脚踏实地的真心干”,“形式”就成了一个贬义词,说的是做事只停留在表面,不实际去解决问题。这样看来,形式应该是一个让人讨厌的词了。

实际上,形式化是一种科学的方法,而且非常的具有可行性,往往能够在大型任务中起到很关键的作用。所以,也不能说它是真正不好,实际上只是我们看到的东西过于表面了而已。

抛开那些偏见,重新认识形式化。为什么会有形式化,它的目的是什么?要回答这个问题,我们还是先给形式化下个定义,形式化是一组符号以固定的序列出现来指定一种编排关系。这句话有点绕,举个例子,有a,b,c三个符号,存在这样的一种编排关系,如果a=b,b=c那么a=c,这是一组符号序列,它指向了一种逻辑关系。那么我们以后只要看到这样一种形式的符号编排,就一定能得出a=c的关系来。到那个时候,可能就是阿猫等于阿狗之类的指代词了,但依然不能破坏这样的一种形式。

说到这里,就应该非常明白形式化的意思了,实际上就是一种逻辑规律,它不管它的具体指代是啥,只要形式上符合,就一定存在这样的逻辑判断。这是不是很神奇,在数学上它很常见,但在软件工程中,就不是那么好表现了,因为工程嘛,应用学科,肯定它所有的指代都有一定的类型化了,或者说指代清晰了,这样他的逻辑形式功能范围就小了,所以工程形式化,它最主要的难题就在于抽象化,具象符转换为抽象符。当然凡事皆可数学,也有将数学引入到工程形式化之中的,难度较大,我涉及不到。

那么如何工程形式化,这个实际上没有具体的标准,那个项目,那个小组,甚至具体到实施某个步骤的人,形式化方法都有可能不同,但形式化的目的,都只有一个,作为一种知识资产积累下来,应用后续的项目中。甚至有专门的形式化管理小组,专门研究适用于其软件部门的形式化方法,像这种集体型的形式化,大多都是从统计数据,对项目的复盘等等中,抽象出形式化方法。

对于个人工作的形式化,因为工作具体,目前清晰,这样就不存在形式化过程了,因为没有符号可以用来指代,符号本身已经存在且唯一,按照步骤来即可,这样看起来,对于个人来说,形式化就显得有点鸡肋,甚至让人感到厌烦,总是抱怨“做一些无关的东西”,往往这个时候的形式化过程是因为他只处于某一个环节,而不知道其具体意义所以才感到形式化厌烦。出现这种情况的话,一来可能这个人不会完全按照形式化方法执行,二来也是制定形式化过程的人没考虑到某个形式化方法对其个人指代的意义价值不清晰或者是空的,一定要在执行的时候让执行人具象化形式,不然就成了真正的形式了。

个人也可以对自己的工作进行形式化,对某种任务类型建档建案,时时归纳总结,制定一个统一的步骤方案,并进行优化,最后其导出来的结果一定是对的,那么我们也可以说,建立形式化方法成功。

从前面看开,形式化又好像听起来又像规范化。规范化也是按照一定的标准执行,也是有一个不变的执行步骤,几乎和形式化一样。在应用实施上,他们看起来是类似的。但在形成和目标上他们是不一样的,规范化的目标是约定那个行为的标准,不管其最终结果。但形式化的目标就是不管你如何替换你的形式化过程的指代,它导向的结果一定是对的。所以规范化和形式化还是不同的,规范化可以作为形式化的工具来约定形式化过程,但规范化本身不带有任何的结果导向,只约定行为本身。


(下面是瞎编的,没有理论依据,只是想说明符号学的确对一些学科有辅助作用)

如何进行形式化研究,借助于符号学,我们几乎能够很快在一段代表着整个项目过程中,那些作为主题,那些是关系,那些是动作等等,将一个文本结构分解成一个个小的结构,再去掉一些外延约束,加深内涵,几乎就能完成一个形式化过程的抽象。


最后,并不是只有软件工程才有形式化过程,实际上有很多过程都形式化了,只是我们不懂,所以才说它搞形式(这种情况你最好问清楚,为什么要搞这个形式也🤣)。

上一篇下一篇

猜你喜欢

热点阅读