打印

[原创] 【科技】软件领域与自然辩证法

0

【科技】软件领域与自然辩证法

随着时代的发展,软件逐渐在各行各业起到更多、更重要的作用,随着近年来科技的发展,软件行业在国民经济中所占比重也逐年上升,另外,伴随着云计算、大数据、物联网、移动互联网、人工智能、虚拟现实等新一代信息技术快速演进,全球信息产业技术创新进入新一轮加速期,制造业与软件技术融合已成为软件业发展主旋律,对于软件技术发展的需求在不断地增加,对于软件工程领域理论研究的需要也在不断增长。
        自然辩证法作为马克思主义哲学的重要组成部分,它主要是关于人类认识自然、改造自然的一般发展规律的研究科学,它不仅是对马克思主义在科学技术以及社会关系研究成果的总结和概括,同时也是马克思主义科学技术和自然观在当代社会的发展和应用,对我们正确的学习各科理论知识有着重要的指导作用。首先,它提出了实践是一切科学问题的来源;其次,它强调用系统的方法去分析问题和解决问题。因此,在软件技术的研发层面,学习自然辩证法有助于我们认识世界、认识软件工程中的一般规律,帮助我们达成在技术上和理论上的进步,为社会做出更多贡献,从而推动社会的发展;在具体软件产品的开发层面,自然辩证法有助于我们正确理解客户的需求以及产品应有的表现,有助于体系结构的搭建。
        事实证明,从软件项目的启动到软件的维护,来自科学的方法的指导必不可少。
        在现代的生产生活实践活动中,人们产生了对于提高生产效率、提高服务水平的迫切需求,因此就产生了对实现了具体的与实践直接相关的软件的需求。因此,实践不仅是对软件工程理论的起源,亦是针对每一个具体问题的软件项目的起源。
        在软件项目启动之初,项目管理者与开发者们就要确定具体的方法来实现对项目的管理、进行软件的开发,通过系统的模型将整个软件开发过程作为一个完整的整体进行管理。为此,我们需要分析项目的规模、需求是否明确、是否处于新型领域以及时间和成本等多个维度,做出系统的判断,决定具体需要选择的开发模型。
        在需求分析阶段需要用到自然辩证法中的统计方法,运用科学的手段去分析需求。首先需要调查客户的组织构成以及各部门职能、业务,了解各部门之间会产生的交互,吸住用户明确对新系统的各种要求,包括信息要求、处理要求、完全性与完整性要求。确定新系的边界,确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。由计算机完成的功能就是新系统应该实现的功能。通过系统的、全面的分析、调查、统计才能得到一个全面的需求模型,然后才能更加顺利的进行设计、功能的实现。在具体需求分析时,要选择典型的、有代表性的条件,避免次要因素的干扰,从而使获得的需求分析更可靠,更符合客户的实际需求,同时在观察时应认真、细心,观察别人所没有注意的细节,以做出新发现,这样开发出来的软件才能真正得为人们服务。
        在软件体系结构的构建与代码开发的阶段,我们要从多个角度全面地观察把握对象的各种属性、方法以及它们之间的联系,以获得广泛而有联系的、完整而又系统的可靠认知,如实地反映客观事物的全貌,才能确保完整功能的实现以及系统内部的协调。对于每一个模块的开发,不仅要从单个模块要实现的功能出发,还要从整个系统层面的角度去分析模块的结构与功能,合理地划分模块功能和属性地范围,坚持包括客观性原则、全面性原则、典型性原则、细心性原则等在内地自然辩证法提出的诸多原则,尽量减少缺陷与错误的出现。
        在软件的开发过程中,一般很难检测到所有的错误,其次软件在应用过程中需要随用户新的要求或运行环境的变化而进行软件的修改或完成功能的增删等,为了提高软件的应用水平和使用寿命,软件的维护是不可避免的。要维护每一个已经完成的软件,我们需要去理解已开发的软件的结构、接口与功能等。在过去,软件的结构大多采用面向过程的结构化方法,一个软件更像是一条一个依次执行的任务链条,软件开发的难度随着软件规模的不断上升以及软件用户群体的不断增加急剧增长,大量软件系统最终开发失败,且软件产品难以维护、修改。现如今,大部分软件采用面向对象方法开发,作为一个完整的、相对独立的系统,是一个复杂度、耦合度极高的整体,由不同拥有自己的内部状态、运动规律及外在表现形式的模块共同协作完成相应任务。因此,当我们要认识软件整体的时候,应该了解其各个模块提供的功能与接口,再深入了解其实现原理,再将模块集合起来理解整个系统,这也是自然辩证法的一种应用。
        在具体的软件开发之外,软件工程理论以及理论的革新历程也透露着自然辩证法的原理。
        软件过程发展的历史共分为三个阶段。
        第一个阶段是软硬件一体化阶段,又分为前期的软件完全依附于硬件阶段以及软件作坊阶段,是计算机软件从萌芽状态慢慢发展的一段时间。总体上,软件是以硬件附属品的形式而不会单独存在。这个时候的软件绝大多数规模小且复杂度低,“编码加改错”的方式就足以应对这个阶段大部分软件产品的开发了。
        第二个阶段是软件成为独立的产品的阶段,摆脱了硬件束缚的同时也受到用户期望的影响,软件的功能越来越强大,相应的软件系统规模和复杂度显著增加。此外由于软件开始服务更多领域的用户,软件功能需求的多样化以及软件产品的一致性等要求开始变得重要起来,竞争的压力也导致需要尽可能快速地将软件产品推向市场,以期获得较高的收益。这些实践要求也推动着软件工程的出现与进步,人们开始通过形式化方法以及自顶向下的瀑布生命周期模型进行软件开发,辩证地使用了分析和综合这两种方法。
        第三个阶段是网络化与服务化的阶段,人们对软件的使用方式再次出现了变化。一方面,作为独立于硬件存在的软件的功能继缓复杂化, 规模继续扩大;另一方面,软件的用户数量继续增加,随着互联网时代的到来,一个软件系统或一款线上服务经常拥有百万以上的用户量,在这个阶段,需求的不确定性和系统的快速演化成为一个日益突出的问题;最后软件发布和使用方式也出 现了显著的变化,分发方式从过去的典型的软件光盘移植逐渐过渡到基于网络下载,使用方式也从全部由本地计算机上的软件提供服务到有一部分通过网络获取服务器端的服务,这些变更使得软件的版本迭代时间有了大为缩短的潜力。在网络化与服务化的阶段,具有迭代时开发特征的一系列方法得到了软件行业的广泛认可与运用。迭代式特征是将一个大型软件系统的开发过程视作一 个逐步学习和交流的过程,软件的交付不是一次完成的,而是通过多个迭代周 期,收集用户反馈并改进和完善系统,遂歩来完成交付。这深刻体现了自然辩证法中提出的整体化原则、动态原则、模块化原则。
        软件过程的发展史深刻地说明是生产实践的需要推动了软件业的发展,导致了软件工程理论的产生。而软件工程融合了技术上的和管理上的多种方法来进行软件开发,它体现了数学、逻辑学、心理学、管理学等多学科的交叉。软件工程理论中又大量地应用了自然辩证法提出的方法,这些理论大多是通过辩证地思考以及大量、频繁的实践得出的,涉及到软件工程的方方面面。这些说明了现有的软件工程理论是关于软件对象领域本质及规律性的条理化、系统化了的理论知识体系,是被实践证实了的科学理论,其内容是人们借助抽象思维把握的关于事物本质和规律性的知识,其逻辑形式是概念、判断、推理及由此而组成的理论体系。
        科学是哲学的基础,哲学是科学的指导。哲学对科学实施方法论指导;科学是哲学的具体材料。由此可见,主动地运用自然辩证法地原理与方法来指导我们在软件工程理论的学习以及软件产品的开发有着重要的理论意义和实践价值。

[ 本帖最后由 beimotin 于 2022-8-3 00:15(GMT+8) 编辑 ]
本帖最近评分记录
  • keaixuyuan123 金币 +100 原创光荣,造福淫民! 2022-8-3 22:26
  • keaixuyuan123 原创 +1 原创光荣,造福淫民! 2022-8-3 22:26
  • keaixuyuan123 威望 +1 原创光荣,造福淫民! 2022-8-3 22:26

TOP

当前时区 GMT+8, 现在时间是 2025-3-22 17:18