为什么软件开发设计很重要?

当开始进行新项目时,开发人员倾向于直接跳入编程。没关系-毕竟这是他们的工作。但是有时候,最好是休息一下,从一些软件设计开始。

软件设计可以通过几种不同的方式来完成。可以使用某些软件使用某种建模语言(例如UML)来完成此操作,它可以编写文本和图像,甚至可以是白板上的绘图。在此重要的是,可以在软件开发过程中保存和重新访问设计-设计需要进行一些改进,因此,如果您不想始终从头开始将设计绘制到白板上,那么最好还是继续使用设计的数字方式。当然,这及其完成方式取决于您的项目需求。小型项目可以轻松地绘制或写在一张纸上,而大型项目通常在其生命周期内往往会发生很大变化,从而影响软件设计。

我必须承认,我是喜欢立即跳入代码的人之一,而我在以前的项目中没有做过太多的软件设计,至少不是很详细。我也有点讨厌所有官僚主义,软件设计在最坏的情况下会给工作带来什么。当然,我已经完成了在白板或笔记本上绘制的单组件设计,但是大多数这些设计都被遗忘了,并且一旦代码完成就再也无法维护。在我目前的职位上,我学到了很多关于软件设计的知识,尽管还有很多东西要学习,但我已经注意到并希望分享一些有关软件设计的好东西以及为什么它很重要。

模块化

您应该可以将软件拆分为较小的部分,最多可以包含5-10个接口。这些接口“组”称为软件组件。软件组件的主要思想是为正在开发的软件提供单一目的。例如Super Super Mario Bros 3的游戏统计数据,该数据负责记录GUI渲染器的得分,寿命和其他事项。

可维护性

通过良好的软件设计,可以更轻松地维护软件。您可以直接从设计中发现错误修复或新功能的引入将改变现有代码库的程度。好的设计还应显示软件组件及其接口之间的交互作用,这还将揭示更改另一个组件中的代码(取决于需要更改的组件)可能产生的影响。特别是与没有任何软件设计的旧代码库一起工作可能会非常痛苦,并会导致许多意外错误。

在进行设计时,我注意到许多不必要的接口,这些接口实际上是客户不需要的,也不是客户要求的。虽然可以从代码中轻松找到这种东西,但是通常没人会注意额外的功能。额外的功能意味着额外的维护,测试和开发。没有人真的希望如此,因此应该保持简单并执行需要做的事情,仅此而已。

性能

良好的软件开发设计可用于轻松确定软件中的性能瓶颈,尤其是在设计达到一定程度的水平时。这意味着设计应该告诉您系统内部如何工作以及如何使用资源(例如线程,数据库连接以及其他可能影响性能的东西)。有时很容易调试或使用某些日志记录功能从源代码中查找瓶颈,但有时设计可以通过单个图像来识别它。

进行详细的软件设计固然很好,但您绝对不应过度设计它。并非每个循环或条件都需要设计-随着设计和软件开发之间的迭代不断进行,这样做会使设计的可维护性变成现实。而且,它不会给开发人员或客户带来任何额外的价值,他们可能会以某种形式或其他形式看到您的软件设计。

可移植性

通过在设计中包括对其他软件模块(如第三方库)的依赖性,可以使软件更容易移植到另一个环境中。将这些文档记录在一个地方可以非常轻松地发现如果使用其他环境或可以完全更改需要更改的内容。再一次,您可能不希望设计对第三方软件的所有功能调用,因为更新版本或更改底层库将意味着完全重新设计。再次提醒您,记住做每个人都必须做的事情,以了解该软件的工作方式。

可用性

从软件设计为您的客户生成设计文档是一个好主意。它为他们提供了将要使用的软件的工作原理的概述。您可能需要考虑是否只希望发布公共接口,而将内部设计排除在文档之外,因为良好的设计可以非常轻松地从头开始编写软件。

该设计还为新手提供了一个很好的起点。无需让他们浏览所有源文件,您只需将它们指向软件设计即可在其中找到开始所需的所有信息。

可跟踪

部署

设计还应提供信息,说明软件交付物是什么以及应将其放置在部署中的何处。这些信息对于您的客户以及集成非常重要,因为他们需要知道在何处查找您的库/可执行文件/与软件有关。如果最新的交付缺少软件的某些关键部分,则只需看一下您的设计,就可以立即发现。

现在,我已经指出了一些主题,为什么软件设计如此重要,是时候考虑它所需要的了。进行出色的软件设计需要整个软件团队的纪律和承诺。有时要进行设计和软件匹配需要很多迭代-即使您是计算机时代的超级英雄,在开始编写代码之前,您可能不会注意到所有事情。没关系,迭代将增强代码和设计。这只需要时间和一些辛苦的工作,但是最终它将获得回 并减少软件带来的各种风险。如果您不相信我,请在下一个软件项目中尝试一下!

以上就是为什么软件开发设计很重要?全文,希望对大家有所帮助!

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年8月23日
下一篇 2019年8月24日

相关推荐