×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

No if it is to handle my job. Yes if I want to convince myself they are something true.

本文发表在 rolia.net 枫下论坛Technologies need mathematical foundations on which they can be engineered and be validated.Computer architecture, relational database, computer networking all have their mathematical foundations: automata, relational algebra, process algebra, queuing theory, graph theory, stochastic programming, etc etc. These theories are probably abstracted from practice, invented when solving practical technological problems, or borrowed from other disciplines and adapted for solving specific problems.

Once mathematical theories are abstracted from specific techniques, we obtain a deeper understanding of the problem. What's more, these theories can be used for solving categories of problems, instead of some specific ones.

I ever thought about software development, and asked myself questions: what is software development? how to theoretically prove a piece of software correctly and optimally implements the requirements? if a requirement is implemented in multiple ways, how to determine which one is the best or they are equally good, what quantitative criteria should be used?

I'm NOT saying here that software development can not be done without a mathematical foundation. What I am wondering is its underlying science.更多精彩文章及讨论,请光临枫下论坛 rolia.net
Report

Replies, comments and Discussions:

  • 工作学习 / 学科技术讨论 / Has someone thought about the mathematical foundations of software design patterns?
    Software design patterns are for solving specific types of problems encountered in software engineering. And it seems that they have been proved successful in software engineering practice. However, what are the theoretical foundations of these design patterns? In another word, what are the more general rules under them?

    I notice that some people are researching the foundations of design patterns. Some mathematical structures are being invented for critically thinking about software design patterns. I'm curious to know whether someone ever thought about this problem or did something on this topic?
    • IMO, "design patterns" are really not that profound to deserve a mathematical structure. It's an overly hyped concept -- just some spiced up labels on things people already know...
      • then, what theories can be extracted/generalized from what people already know?
        • Do you really alway need a theory on everything -- or, in fact, a "mathematical foundation" on every "theory"?
          • No if it is to handle my job. Yes if I want to convince myself they are something true.
            本文发表在 rolia.net 枫下论坛Technologies need mathematical foundations on which they can be engineered and be validated.Computer architecture, relational database, computer networking all have their mathematical foundations: automata, relational algebra, process algebra, queuing theory, graph theory, stochastic programming, etc etc. These theories are probably abstracted from practice, invented when solving practical technological problems, or borrowed from other disciplines and adapted for solving specific problems.

            Once mathematical theories are abstracted from specific techniques, we obtain a deeper understanding of the problem. What's more, these theories can be used for solving categories of problems, instead of some specific ones.

            I ever thought about software development, and asked myself questions: what is software development? how to theoretically prove a piece of software correctly and optimally implements the requirements? if a requirement is implemented in multiple ways, how to determine which one is the best or they are equally good, what quantitative criteria should be used?

            I'm NOT saying here that software development can not be done without a mathematical foundation. What I am wondering is its underlying science.更多精彩文章及讨论,请光临枫下论坛 rolia.net
      • 从实践中归纳出理论,进而指导实践的下一步发展,这是进化的必经阶段。并非“overly hyped concept ”,更何况不是出自计算机本身。
        举个例子:我们都知道拼音的作用,如果我们有个字不会读,查一下字典就可以读出来。但是字的读音本身存在,几千年来没有拼音一直有中国文化。拼音给中国字带来了系统的归纳,极大地推动了中国文化的普及(起码在扫盲上)。

        拼音就和您所说:并非profound to deserve a culture structure, it's an overly hyped concept - just some spiced up labels on words people already know.

        还有一点,拼音和Design Pattern一样,取自于系统外部,推动系统本身。
        • I have no problem with Design Pattern or 拼音 being used for communicating/vonveying knowledge -- but if one day "anti-拼音" was used in evaluating/criticizing products/applications of "中国文化", I would also call it "overly-hyped". :-)
    • 看到这点我觉得一般是数学和编程都沾边的。所以很容易把design pattern和数学的一些东西联系起来,万物都有联系,更何况两个本来就不是很远的学科。design pattern的根就是要通用,独立,送耦合,和数学里面的很多原则类似,比如正交分解。
      不过我觉得软件开发还是有内在规律,即使能用数学表示一些,短期内也不会有根本推动。 长期就不好说了,AI总有一天会自己写程序的
      人类思维的进步,归根结底是数学。
      • 软件开发是有内在规律,但好像还没有以数学的形式总结出来。
        • 开发模式我感觉类似用一些原则进行系统优化,在最终被数学统一之前,还是要靠实践总结出来的经验了
    • Design Pattern起源于建筑,而非数学。但是数学是万物基础。自然其间必有联系。
      但是要research the foundations of design patterns还是要从建筑开始。
      • 我不是在追究它的起源,而是在挖掘它的理论基础。简单得说,就是:能否用若干定义,公理,定理来涵盖所有的 design patterns 共有的特性。
        • 可能是我们的软件开发基础与真实世界或者说人脑的智能演化能力有差距, 这些Pattern是一个开始, 用来补充这些缺陷的吧.
        • 研究理论基础,不能不研究起源吧?
          我对建筑和数学一无所知,所以我就不探讨下去了。
          • 我也闹不清楚,该不该研究起源。
        • 定义 alrady exists,公理,定理 are not always applicable. What if the Design Patterns are already essential? As Einstein put it -- Make it simple, but NOT simpler.
          • Check this out.
            • Don't be fooled just because of the existence of some academic publication about it.
              After all, 99.9% of academic publications are junks. A lot of times academians have to produce junks to hang around. :-)

              According to the Microsoft research repository, for the past 10+ years, this article were only cited by other publications 5 times -- including one by its own authors.

              I did a quick browse-through -- and got an impression of unnecessary complxity for little use. The only thing interested me was a citiation from one of the GOFers that inheritance and containment actually exist among the Design Patterns.
              • OK. I see your point.