图片来源:www.it0755.com图片来源:www.it0755.com
当开始一个新项目时,开发人员倾向于直接进入编程。没关系。-毕竟,这是他们的工作。但是有时候,最好休息一下,从一些软件设计开始。软件设计可以通过几种不同的方式来完成。你可以用一些软件,通过使用一种建模语言来完成这个操作,这种语言可以写文字和图像,甚至可以在白板上画画。重要的是在软件开发过程中保存并重新审视设计——设计需要改进,所以如果你不想总是从零开始把设计画在白板上,还不如继续使用数字化的设计方式。当然,这和如何做取决于你的项目需求。小项目可以很容易的画出来或者写在一张纸上,而大项目往往在其生命周期中有很大的变化,从而影响软件设计。
我必须承认,我是喜欢马上跳入代码的人之一,在之前的项目中没有做过多少软件设计,至少不是很详细。我也讨厌一切官僚主义,软件设计在最坏的情况下会给工作带来什么。当然我已经完成了白板或者笔记本上画的单组件设计,但是这些设计大部分已经被遗忘了,一旦代码完成就无法再维护了。在我现在的职位上,我学到了很多关于软件设计的知识。虽然还有很多东西需要学习,但我已经注意到了,希望分享一些关于软件设计的好东西,以及为什么重要。
模块化
您应该能够将软件分成更小的部分,最多有5-10个接口。这些接口“组”被称为软件组件。软件组件的主要思想是为正在开发的软件提供单一目的。比如超级马里奥Bros3的游戏统计,负责记录GUI渲染器的评分、寿命等事项。
在使用模块化软件时,如果需要,可以轻松移动甚至删除内容,甚至可以在每个软件组件的多个开发人员之间共享设计工作。模块化还可以通过更容易地从必要的组件中找到要编辑的信息来提高可维护性。它还可以作为命名源代码的区间或结构化实例以及隔离每个组件的测试用例的基础。
可维护性
通过好的软件设计,更容易维护软件。你可以直接从设计中发现,bug修复或者新函数的引入都会改变现有代码库的程度。好的设计还应该展示软件组件和它们的接口之间的交互,这也将揭示在另一个组件中更改代码的可能影响。特别是,在没有任何软件设计的情况下使用旧的代码库可能会非常痛苦,并导致许多意想不到的错误。
设计的时候注意到很多不必要的界面,其实并不是客户需要或者要求的。虽然这种东西很容易在代码中找到,但通常没有人关注额外的功能。额外的功能意味着额外的维护、测试和开发。没有人真的想要这样,所以保持简单,做需要做的事情,就这样。
表演
好的软件开发设计可以用来轻松识别软件中的性能瓶颈,尤其是当设计达到一定水平的时候。这意味着设计应该告诉您如何在系统内部工作以及如何使用资源。有时很容易调试或使用一些日志功能从源代码中找到瓶颈,但有时设计可以通过单个映像来识别它。
详细的软件设计是好的,但千万不要过度设计。不是每个周期或条件都需要设计——随着设计和软件开发之间的迭代进行,它将使设计的可维护性成为现实。此外,它不会给开发人员或客户带来任何额外的价值,他们可能会以某种形式看到您的软件设计。
轻便
通过在设计中包含对其他软件模块的依赖,软件可以更容易地移植到另一个环境中。将这些文档记录在一个地方,可以很容易地发现如果使用其他环境或者完全改变了,需要改变什么。同样,您可能不想设计对第三方软件的所有函数调用,因为更新版本或更改底层库将意味着完全的重新设计。再次提醒你,记得做好每个人都必须做的事情,才能明白软件是如何工作的。
有效
从软件设计中为您的客户生成设计文档是一个好主意。它为他们提供了要使用的软件的工作原理的概述。你可能需要考虑是不是只想发布公共接口,把内部设计排除在文档之外,因为好的设计很容易从零开始写软件。
设计也为初学者提供了一个很好的起点。不用让他们浏览所有的源文件,你可以通过把他们指向软件设计来找到你需要的所有信息。
可追踪。
通常,项目有来自客户或内部来源的需求。好的设计还可以跟踪需求,开发软件,在设计层面证明一个软件所需要的所有内容实际存在,并且被正确理解。因为客户实际上可以看到他们的需求是在哪里完成的,这给所提供的设计文档带来了更多的价值。为了和源代码集成,建议不要在设计、需求和源代码之间做某种形式的链接。
部署
设计还应该提供关于软件可交付物是什么以及它们应该被放置在部署中的什么位置的信息。这些信息对您的客户和集成非常重要,因为他们需要知道在哪里可以找到您的库/可执行文件/软件相关的信息。如果软件的一些关键部分在最新的交付中丢失了,您可以通过查看您的设计立即找到它们。
现在,我已经指出了一些话题,为什么软件设计如此重要,是时候考虑它需要什么了。优秀的软件设计需要整个软件团队的纪律和承诺。有时候,设计和匹配软件需要大量的迭代——即使你是计算机时代的超级英雄,在你开始写代码之前,你可能不会注意到一切。没关系,迭代会增强代码和设计。只需要时间和一些努力,但最终会有回报,减少软件带来的各种风险。不信请在下一个软件项目中尝试!
1.《软件设计 为什么软件开发设计很重要?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《软件设计 为什么软件开发设计很重要?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1766109.html