LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

软件架构是什么

admin
2023年3月6日 16:34 本文热度 520

概述

本文从不同角度阐述什么是软件架构,软件架构在做什么,在进行软件架构设计时需要考虑哪些方面。


基本概念

  1. 软件系统的架构就是有它的构建者所决定的,软件架构这项工作的实质就是:如何将系统切分成组件,并安排好组件之间的排列关系,以及组件之间的相互通信的方式。

  2. 而设计软件架构的目的就是:为了在工作中更好的对这些组件进行研发、部署、运行及其维护。

  3. 设计良好的架构:可以让系统更容易理解、易于修改、方便维护、并能轻松部署。

  4. 软件架构的终极目标:最大化程序员的生产力,同时最小化系统的总运维成本。

开发

  1. 一个开发起来很困难的软件系统,不太可能有一个长久的长久、健康的生命周期。

  2. 系统架构设计的作用,就是方便其团队对它进行开发。

运行

  1. 设计良好的系统架构应该可以使开发人员对系统的运行一目了然。

  2. 架构应该起到揭示系统运行过程的作用。

  3. 系统架构应该将系统中的用例,功能,以及必备行为,设置为对开发者可见的一级实体,简化他们对系统的理解。这将会对系统的开发与维护,提供极大的帮助。

部署

  1. 在设计的早期就要考虑到部署问题,

  2. 为了让开发成为有效的工作,软件系统就必须是可部署的。

  3. 通常一个系统的部署成本越高,可用性就越低。所以,实现一键轻松部署应该是设计软件架构的一个目标。

维护

  1. 在软件系统所有方面中,维护所需要的成本是最高的。需求的变更,新功能的添加,以及系统缺陷这些工作将会占去大部分人力资源。

  2. 系统维护的主要成本,包括两个方面:

    1. 新增功能:确定新增功能或修复问题的最佳位置。

    2. 风险成本:在进行系统代码修改时,可能衍生出新的问题。

  3. 通过优良的架构设计,可以减少维护成本:

    1. 将系统切分成各个组件(模块)。

    2. 使用稳定的接口把各个组件之间进行隔离。这样让各个组件之间保持正交性,各个组件之间解耦。

    3. 将未来需要添加新功能的添加方式明确出来,可以大大降低对系统其他部分造成的伤害的可能性。

  4. 如何提前考虑新功能的添加方式?

    1. 比如支持数据库:可以编写数据服务层,并设计成接口;当需要支持新的数据库时,只需要按新的数据库的驱动实现接口,其他模块或业务上层代码保持不变。

  5. 保持可选项:

    1. 让软件尽可能长时间地保留尽可能多的可选项。

    2. 所有的软件系统,可以分解为:策略和细节;策略:软件中的业务核心,它是系统真正价值所在;细节:是指操作该系统的人,其他系统与策略进行交互,但又不影响策略本身的行为。

    3. 软件架构师的目标:创建一种系统形态,以策略为基本元素,并让细节与策略脱离关系,允许在具体决策过程中,推迟或延迟与细节相关的内容。

    4. 比如:在开发早期,开发高层策略时,应该无须选择数据库系统,不用确定使用的web服务,不用确定是否使用REST接口。就是说:软件的高层,与这些东西没有关系。

  6. 设备无关:

    1. 不同硬件上都能直接部署,而且得到的结果是相同的。

    2. 这个原则,对软件开发和部署非常重要。


参考书籍

  • 《架构整洁之道》


该文章在 2023/3/6 16:34:17 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved