`
lane_cn
  • 浏览: 53689 次
社区版块
存档分类
最新评论

软件的灵活性来自哪里?

阅读更多

灵活的软件,可以更好的适应用户的需求。什么样的软件才是灵活的?

一旦用户提出灵活性方面的需求,设计者经常想到的一个对策是:增加配置。在不同的业务环节上增加功能配置,哪里需要灵活性,就把配置写到哪里。配置为软件系统提供了无数个可能——这就是灵活性。但是配置经常复杂无比,失去控制。很多配置项目已经失去了业务意义,完全成为一种数学意义上的排列组合。按照一些配置的路线,业务无法形成闭环流程,走进死胡同。

这样的系统,维护配置和维护程序本身一样复杂。配置,就是不需要编译的代码。

实际上,软件最大的灵活性,来自于完整的业务模型。一个完整的业务模型,不需要华丽的技术——设计模式、先进的平台、巧妙的构思——这些都不重要。重要的是,业务模型需要真实的反映真正的世界。

真实的世界上有“顾客”,那么软件世界里就要有“Customer”,真实的世界上有“帐单”,那么软件世界里就要有“Bill”,真实的世界里顾客可以买东西,那么软件世界里的Customer就有“Buy”方法,参数是Order……

把这些基础的业务模型构思出来,就能够发现,具体的业务需求实现起来会十分的方便。就像用积木搭起一栋房子一样,只需要写一些胶水代码,把业务对象拿来组装一下。

业务模型会有变化吗?当然有。但是业务决不会无中生有的变,也不会没有道理的变。业务模型的变化一定是在原有的基础上添一点东西、改一点东西。一个业务模型能很好的控制变化影响的范围。为了减少这样的变化对模型的影响,各种技术就可以登台了——设计模式、重构……

有一个业务模型,即使是很朴实无华的业务模型,也可以为程序带来极大的灵活性。可以在胶水代码里面增加配置,这样的配置比较容易与用户的业务需要紧密结合,真正的起到作用。也可以把业务对象暴露给脚本引擎,用脚本程序实现一些功能需求。

分享到:
评论

相关推荐

    学习架构:深度学习灵活性表达.pdf

    《学习架构:深度学习灵活性表达》这篇文献主要探讨了深度学习领域的灵活性问题,试图构建一个能够反映学习任务和学习者特征的架构模型。文档中涉及了深度学习、学习架构、数据分析、教育信息技术等多个方面,指出了...

    01 车载软件架构 —— Adaptive AUTOSAR是软件架构的正解吗?.docx

    3. **支持空中软件更新(OTA)**:考虑到智能ECUs在车辆生命周期内的软件更新需求,AP平台特别支持OTA技术,使得软件可以在不停车的情况下进行更新和维护,大大提高了系统的灵活性和可靠性。 综上所述,Adaptive ...

    软件构件及其可信性研究

    组件开发者需关注属性、事件和方法的设计,以确保组件的灵活性和可扩展性。 软件构件的定义则更为广泛,它涵盖了代码、测试用例、文档、需求分析等多个方面。不同的学者和机构给出了多种定义,普遍认同的是构件应...

    H323 软件客户端

    这种方式极大地降低了传统电话系统的成本,并且提供了更高的灵活性和可扩展性。H323客户端在使用VoIP时,会进行一系列处理,包括编码、解码、压缩、解压缩等,以适应网络条件并保证通话质量。同时,H323协议还定义了...

    论信息管理软件的通用化设计.pdf

    这类软件具备五大核心特性:灵活性、自定义性、自适应性、开放性和可移植性。灵活性允许用户根据实际需求选择系统运行模式;自定义性让高级用户能在限定范围内自定义对象属性;自适应性确保软件在较长时间内适应行业...

    软件设计在项目中的地位

    6. **灵活性**:设计应具备一定的灵活性,以便适应未来的扩展和变更。 7. **容错性**:设计应考虑软件的容错能力,提高软件的鲁棒性。 8. **独立性**:设计与编码是两个不同的过程,不应混淆。 #### 四、设计评审的...

    臻视zs1200系列监控软件

    特别是其对智能手机的支持,意味着用户可以通过移动设备实现远程在线监控,大大提升了监控系统的灵活性和实用性。 监控软件是现代安防系统的重要组成部分,它能够实时捕获、记录和分析来自多个摄像头的视频信号。臻...

    LED改字软件 仰帮控制卡软件

    7. **兼容性**:像“仰帮控制卡软件”这样广泛的控制卡支持,意味着它能适应各种LED显示屏系统,具有很高的灵活性。 8. **软件更新**:如文件名所示的LedshowTW2017(17.06.06.00).exe,这可能是一个特定版本的升级...

    软件项目管理的风险来自于软件项目.doc

    在软件项目管理中,风险是不可避免的,尤其考虑到软件产品的无形性、开发过程的灵活性以及大型项目的独特性。以下是对这些风险的详细说明: 1. **软件产品不可见**:由于软件开发过程中产品的无形特性,很难直接...

    软件项目管理研究综述

    未来的软件项目管理研究可能会更加强调项目的敏捷性、灵活性以及风险管理,同时也会涉及到人工智能、大数据等新兴技术在项目管理中的应用。 由于文献中的部分内容可能存在OCR扫描误差,上述内容基于提供的文档片段...

    中文版免费pm3软件.rar

    这使得PM3能够与来自不同制造商的设备无缝集成,为用户提供了高度的灵活性。 在使用PM3中文版免费软件时,用户需要注意的是,尽管基础功能是免费的,但可能有一些高级特性或扩展服务需要付费解锁。例如,可能的付费...

    (自考)软件工程课件-完整版

    以下知识点涵盖了软件工程的核心内容,主要来自于《软件工程课件-完整版》。 首先,概论部分试图回答软件开发的本质及开发的基本手段。软件开发的本质是通过一系列映射过程将问题域转换到解空间。基本手段是运用...

    徕卡测量办公软件

    这种灵活性使得徕卡软件能够无缝对接多种工作流程,无论用户使用何种平台或工具。 此外,软件还提供了强大的数据编辑和校正功能。用户可以对导入的数据进行清洗,去除异常值,或者进行坐标系统转换,确保数据准确...

    商用GNSS数据处理软件解算精度对比分析.pdf

    例如,TBC3.6V可能更适合处理大规模、高精度的测量任务,而HGO1.1.0V可能更便于日常工程应用,SGO16.05.26则在数据格式兼容性和灵活性上表现出优势。 文章虽然没有详细介绍实验的具体结果,但强调了在选择GNSS数据...

    软件工程试试题库.doc

    软件的复杂性来自于软件的内部结构和外部环境,需要软件工程的方法和技术来解决。 7. 软件危机是指在软件开发和维护过程中遇到的一系列问题(A 软件危机)。这些问题都需要软件工程的方法和技术来解决。 8. 软件...

    VCE 刷题软件 HCIP认证模拟环境 ——安卓端运行

    这极大地增加了学习的灵活性,无论是在通勤途中,还是在家休息,都能充分利用碎片时间进行复习。同时,软件通常支持离线使用,即使没有网络连接,也能继续练习题目。 为了更好地利用VCE软件,用户需要获取与HCIP...

    PCI总线软件无线电接收机系统的实现

    这种技术的核心在于构建一个具有开放性、标准化、模块化的通用硬件平台,使得各种功能能够通过软件来进行定制,从而提高了无线通信系统的灵活性和可扩展性。 随着通信技术的发展,特别是从模拟到数字的转变,越来越...

    南方GPS静态数据导出软件可以导出北斗数据

    标题中的“南方GPS静态数据导出软件可以导出北斗数据”揭示了该软件的主要功能,即不仅支持传统的GPS(全球定位系统)...同时,其数据导出功能使得与其他专业软件的集成成为可能,增强了整个工作流程的灵活性和效率。

Global site tag (gtag.js) - Google Analytics