本文发表在 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
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