首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >算法设计是否属于软件工程?

算法设计是否属于软件工程?
EN

Software Engineering用户
提问于 2015-10-12 16:51:04
回答 2查看 4.2K关注 0票数 2

在学术意义上,在我看来

  • 算法设计是在高/抽象的计算层次(可计算性、复杂性)进行研究的,而软件工程在学术界也是在高/抽象层次上进行研究的。
  • 软件工程是为解决一个问题而创建一个软件程序的过程。这似乎使算法设计成为过程的一部分。
  • 但是,从我所看过的关于软件工程的有限的参考文献来看,算法设计没有被讨论过(但我可能会错过一些东西)。相反,模式设计(或者它被称为设计模式代替?)在软件工程中进行了讨论。

我的问题是:

  • 算法设计是否属于软件工程?算法设计是软件工程过程中的一个步骤吗?
  • 算法设计、模式设计、程序设计和系统设计有什么区别和关系?这句话经常能从工业界听到,就像时髦的词。你能分享这些不同设计的定义吗?
EN

回答 2

Software Engineering用户

发布于 2015-10-12 17:12:26

是也不是。

对算法(和数据结构--两者同时进行的)与计算相关的研究往往属于计算机科学的范畴。然而,有些算法可能是由特定领域的人开发的。例如,在硬件/软件系统中实现某种自动控制所需的算法可以由专门从事控制工程的人开发。同样,信号处理滤波器可能需要物理学和电气工程知识。然而,开发这些算法的人可能不具备将算法的数学表示转化为软件可以使用的东西的知识和专长。为了将该算法转化为软件可以使用的内容,您还需要一些属于软件工程范围的知识。

算法设计必须与软件工程相适应。您的需求和约束可能会驱动算法的选择。然后,您必须为算法的使用进行设计,无论是如何实现算法,还是使用实现该算法的库或现有模块。您还需要考虑算法的可测试性和可维护性--这两者都是软件工程师所关注的。

虽然我不认为算法设计是软件工程的一部分,但我认为软件工程师必须最低限度地意识到这一点。软件工程师所处的环境和领域将决定算法设计的参与程度。

票数 6
EN

Software Engineering用户

发布于 2015-10-12 19:32:28

算法并不是软件工程中唯一的算法。现在,您更有可能看到与软件工程/开发一起使用的术语,但它并不是唯一的术语。现在在算法上属于软件工程,相比于?软件开发?这取决于谁负责程序员。您可以想出解决方案并让程序员来实现它,或者您可以解释问题并让他们也解决它。更多的是你为问题而工作的人。我在一家公司工作,解释这个问题,并解决它的问题(想出算法),我为其他公司工作,整个解决方案已经为你规划好了,而你所做的就是把他们提供的算法翻译到计算机上。由谁来设计算法实际上取决于软件开发是如何在特定的组织中进行的。算法是软件工程独有的吗?不是的。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/299682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档