软件架构如何进行软件架构设计?

软件架构  时间:2021-09-12  阅读:()

怎么区别软件架构,系统架构,解决方案架构,企业架构

不同的架构方法论,会将架构分为不同视图,每个视图侧重某一个方面、领域的问题。

比如希赛推的ADMEMS架构体系,分为以下几种视图: 1. 数据架构:描述数据的存储结构、格式等方面。

2. 物理架构:描述机器的物理部署、网络拓扑方面。

3. 运行架构:描述运行期线程、进程间的交互工作机制。

4. 逻辑架构:指如何将代码分成不同模块、组件,以及之间的职责分配、交互行为。

5. 开发架构:主要指开发工具的选择,程序单元的划分,开发管理规范流程等方面。

例如分为哪些工程、项目,源代码管理,自动化编译构建、测试、部署等。

目前国际上运用比较广泛的是TOGAF架构体系,他把架构分为业务架构、数据架构、应用架构、技术架构等几个方面。

想详细的了解这些架构视图,可以参考这些架构体系相关的书、资料。

另外有很多人无缘无故的抨击架构概念,不知道是出于调侃还是无知。

埃及的金字塔、神庙的建设,不是几个平常的泥瓦匠聚在一起就能够造出来的。

像SAP、Oracle ERP,国内的金蝶等大规模的系统,以及空间站、火箭的控制系统等,没有系统性的架构方法、规范、流程,结果只能是悲剧。

当规模、复杂度没有达到一定程度,比如在一些小的团队、产品中,架构过程可能融入到老板、经理、组长、资历较深的一些开发者中,融入在大家的日常工作中,以至于感觉不到架构的存在。

就算遇到一些问题,因规模不大、复杂度不高,也比较容易调整。

当这些前提条件发生变化时,架构的作用和必要性就逐步的体现出来。

总的来说,一说到架构,如果你懂软件,那么你会了解为一个软件系统,这个软件设计的组成结构,如哪些是基础支持组件,哪些是完成A业务,哪些完成B业务。





但说道企业架构的时候,就会问,该企业架构的几个架构如业务架构、数据架构、业务架构、技术架构,以及他们如何链接在一起。

我倒觉得,一个企业确实需要这样的架构,但不要神话它,最主要的是业务如何最终体现到软件中和流程中。

而采取分离式设计时,最容易的错误就是各自为政,集成困难。

那么以数据为中心的架构设计,会自然提供集成的基础。

我提到过,企业最重要的资产是数据,甚至不是信息,是数据。

企业的业务流程会变,IT系统会变,所需要的信息与知识会变,唯有数据能够积淀下来。

这有点象自然演进,考古那种,啥都会消失,唐朝可以无比先进,但都会变,我们唯有找到反映当时情况的数据,才可以把握当思的面貌。

什么是软件架构师?

软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。

架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。

他必须对开发技术非常了解,并且需要有良好的组织管理能力。

可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。

软件架构师的职责是把需求转换为软件世界的模型。

4+1视图中以use case作为核心,其中功能性需求以及部分非功能性需求会被软件架构师通过分析和设计,映射为各种软件设计模型。

从OOA/OOD角度说,use case 在这个过程中是要转换为各种UML,其中类图,序列图,状态图是最常用到的。

这个转换过程是需要智慧的,use case是目的,各种OO的原则是指导,设计模式是经验,灵活运用是能力。

里面蕴涵了设计的美感,我觉得这个过程是衡量一个软件架构师的最重要的指标。

当然这个过程是迭代和反馈的,我觉得概要设计和详细设计只是思考同一个问题的粒度不同而已。

另外就是我们要熟悉语言,详细设计是要转换为代码的,而且跟语言是有关系的。

语言比如java/c++等,详细设计的模型是有很多不同的。

就需要软件架构师有过这个过程,并且是非常良好的映射。

除了语言就是要熟悉某个技术领域,比如J2EE/.从J2ee来说,可能需要了解比如jsp/servlet/ejb/jndi/jta/jdbc等。

还需要了解各种web framework,o/rmapping,ioc/aop容器等等。

还有的就是一些技术组件和业务组件,不如workflow,rules engine等等。

另外比如各种database.熟悉这些东西的目的,是把这些软件和组件合理并且有机的组织起来成为一个开发的架构。

这个过程是需要创造力和想象力的。

可能很多人认为这个地方正是软件架构师体现能力的地方。

软件架构和系统架构的区别是什么?

软件架构是系统架构的一个子集。

可以说,软件架构也是系统架构,但是系统架构不一定是软件架构,也可以是整个系统集成的网络架构。

因为一个系统可能包括很多部分,而软件仅仅是其中一部分。

如何进行软件架构设计?

软件系统架构设计方法步骤 基于体系架构的软件设计模型把软件过程划分为体系架构需求、设计、文档化、复审、实现和演化6个子过程,现逐一简要概述如下。

体系架构需求。

即将用户对软件系统功能、性能、界面、设计约束等方面的期望(即“需求”)进行获取、分析、加工,并将每一个需求项目抽象定义为构件(类的集合)。

体系架构设计。

即采用迭代的方法首先选择一个合适的软件体系架构风格(如C/S、B/S、N层、管道过滤器风格、C2风格等)作为架构模型,然后将需求阶段标识的构件映射到模型中,分析构件间的相互作用关系,最后形成量身订做的软件体系架构。

体系架构文档化。

即生成用户和研发人员能够阅读的体系架构规格说明书和体系架构设计说明书。

体系架构复审。

即及早发现体系架构设计中存在的缺陷和错误,及时予以标记和排除。

体系架构实现。

即设计人员开发出系统构件,按照体系架构设计规格说明书进行构件的关联、合成、组装和测试。

体系架构演化。

如果用户需求发生了变化,则需相应地修改完善优化、调整软件体系结构,以适应新的变化了的软件需求。

bgpto:独立服务器夏季促销,日本机器6.5折、新加坡7.5折,20M带宽,低至$93/月

bgp.to对日本机房、新加坡机房的独立服务器在搞特价促销,日本独立服务器低至6.5折优惠,新加坡独立服务器低至7.5折优惠,所有优惠都是循环的,终身不涨价。服务器不限制流量,支持升级带宽,免费支持Linux和Windows server中文版(还包括Windows 10). 特色:自动部署,无需人工干预,用户可以在后台自己重装系统、重启、关机等操作!官方网站:https://www.bgp.to...

无忧云:服务器100G高防云服务器,bgpBGP云,洛阳BGP云服务器2核2G仅38.4元/月起

无忧云怎么样?无忧云值不值得购买?无忧云,无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点。目前,四川雅安机房,4...

HTTPS加密协议端口默认是多少且是否支持更换端口访问

看到群里网友们在讨论由于不清楚的原因,有同学的网站无法访问。他的网站是没有用HTTPS的,直接访问他的HTTP是无法访问的,通过PING测试可以看到解析地址已经比较乱,应该是所谓的DNS污染。其中有网友提到采用HTTPS加密证书试试。因为HTTP和HTTPS走的不是一个端口,之前有网友这样测试过是可以缓解这样的问题。这样通过将网站绑定设置HTTPS之后,是可以打开的,看来网站的80端口出现问题,而...

软件架构为你推荐
信件格式书信格式是什么hotfix文件夹hotfix中都是什么文件?能不能删除?php文件php 格式文件 怎么打开?急!!!招行信用卡还款我是招行的信用卡!该怎么还款网络限速软件有什么比较好的网络限速的软件售后软件vivo售后的软件可以删吗硬盘分区格式化怎样给硬盘分区并格式化电商网站设计电子商务网站设计应注意哪些问题黑屏操作电脑在黑屏的情况怎么重新操作系统暂停线程如何正确的更好的停止一个线程
深圳域名空间 美国vps推荐 net主机 息壤主机 l5520 轻博客 一元域名 ibrs 京东商城双十一活动 骨干网络 帽子云 gspeed 已备案删除域名 工作站服务器 域名接入 服务器监测 电信托管 免费私人服务器 华为云服务登录 网通服务器 更多