推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

软件可重用性的一点思考

   2023-07-20 网络整理佚名1080
核心提示:大多数情况下所讨论的软件可重用性指软件本身的可重用性,即软件代码实现的可重用性。不是开发工具决定了软件的可重用性,而是如何分解一个复杂问题。保持类或模块的简单和纯粹,越是简单、功能纯粹的软件越可能被重用。

软件可重用性一直是软件工程追求的目标之一。 软件工程界希望有一天能够像其他工业领域一样,使用标准化的软件模块快速构建特定的应用系统。 事实上,这种努力也取得了长足的进步,但与人们的预期目标还有不少差距。 软件模块还远没有像汽车轮胎那样方便简单地拆卸、修理和更换。

大多数情况下讨论的软件可重用性是指软件本身的可重用性,即软件代码实现的可重用性。 事实上,软件的可重用性远不止于此。 软件开发的整个生命周期都具有可重用的价值,包括项目组织、软件需求、设计、文档、实施、测试方法和测试用例。 可供利用或借用的有效资源。 可以说,一个成功的软件项目的整个过程就是一个宝藏,就看你会不会用。

当然,软件代码的可复用性是最直观、最容易思考的部分,也是程序员最愿意追求、最有成就感的部分。 但是我们如何开发可重用的代码呢?

也许有的程序员会说:这很容易啊,我用C++封装了很多类,开发了很多COM组件,难道不能都复用吗? 是这样吗? 据我所知和经历过的很多软件开发项目,很多类和组件都是昙花一现,项目结束后也没有人再提。 许多程序员认为C++开发的类或COM组件自然应该是可重用的。 这是一个错误的想法。 开发工具只是促进代码复用性的工具而不是决定性因素。 软件系统面临的问题域分解方法是将复杂问题分解为简单问题或独立个体的方法和策略。 我一直坚信,如果一个程序员在使用C时不能使用模块化结构来构建软件系统,你就不能指望他使用C++来编写高度可重用的类结构。 决定软件可重用性的不是开发工具,而是如何分解一个复杂的问题。 无论是分层软件思维(TCP/IP协议栈)、模块化软件思维(C/C),还是可复用组件的软件思维(C++/COM),它们并不是矛盾和排他的,而是一个问题的三个方面:对同一问题领域有不同的看法。

有的程序员可能会说:我们开发的软件是针对特定的用户需求的,需求各不相同,没有办法实现软件的复用性。 听起来很有道理,但其实不然。 软件的可重用性也有其适用范围。 当然,不能指望许多程序员开发出通用的通用软件模块。 也许有些程序员永远不会开发这样的模块。 软件的可重用性与软件的可重用性无关吗? 当然不是,可重用性体现在软件的各个层面。 通用且可重用性高的软件模块往往由操作系统或开发工具提供,如通用库、标准组件、标准模板库等。 人员重新发展。 那么普通程序员如何开发可重用的软件呢? 一般情况下,软件公司或软件集团往往专注于解决某个领域的问题。 尽管该领域的软件项目并不完全相同,但它们也有很多共同点。 例如,金融或ERP领域的大多数软件都需要各种各种各样的定制表格和图表。 因此,在开发软件时,针对特定领域或问题域开发可复用的软件是大多数程序员需要关注的问题和方向。

那么在实际的开发过程中,程序员如何提高开发可复用软件的能力呢? 我有一些小建议,可能对大家有帮助。

建立开发可重用软件的意识:

首先树立开发可复用软件的意识,无论你开发的软件有多特殊,它都必须包含一些通用的逻辑和功能,将通用的逻辑或模块与真正的具体逻辑分开,学会从一个具体的问题集中抽象出多个逻辑层次并分别实现它们。 可重用的软件模块将作为特定软件产品的副产品重新生成。

保持类或模块简单纯粹:

保持类或模块简单、纯粹。 软件越简单、越纯粹,就越有可能被重用。 “越简单,越复杂”,就像搭积木一样,提供的积木越简单,就越有可能搭建出复杂的形状和物体。

也许有一天,你的一位同事对你说:“嘿哥们,我刚刚使用了你在上一个项目中开发的那个模块,非常好”。 您已经实现了软件可重用性。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON