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

软件架构  时间: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风格等)作为架构模型,然后将需求阶段标识的构件映射到模型中,分析构件间的相互作用关系,最后形成量身订做的软件体系架构。

体系架构文档化。

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

体系架构复审。

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

体系架构实现。

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

体系架构演化。

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

ManSora:英国CN2 VPS,1核/1GB内存/10GB SSD/1TB流量/100Mbps/KVM,$18.2/月

mansora怎么样?mansora是一家国人商家,主要提供沪韩IEPL、沪日IEPL、深港IEPL等专线VPS。现在新推出了英国CN2 KVM VPS,线路为AS4809 AS9929,可解锁 Netflix,并有永久8折优惠。英国CN2 VPS,$18.2/月/1GB内存/10GB SSD空间/1TB流量/100Mbps端口/KVM,有需要的可以关注一下。点击进入:mansora官方网站地址m...

腾讯云爆款秒杀:1C2G5M服务器38元/年,CDN流量包6元起

农历春节将至,腾讯云开启了热门爆款云产品首单特惠秒杀活动,上海/北京/广州1核2G云服务器首年仅38元起,上架了新的首单优惠活动,每天三场秒杀,长期有效,其中轻量应用服务器2G内存5M带宽仅需年费38元起,其他产品比如CDN流量包、短信包、MySQL、直播流量包、标准存储等等产品也参与活动,腾讯云官网已注册且完成实名认证的国内站用户均可参与。活动页面:https://cloud.tencent.c...

青云互联:洛杉矶CN2弹性云限时七折,Cera机房三网CN2gia回程,13.3元/月起

青云互联怎么样?青云互联是一家成立于2020年6月份的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、香港服务器、美国云服务器,让您的网站高速、稳定运行。目前,美国洛杉矶cn2弹性云限时七折,美国cera机房三网CN2gia回程 13.3元/月起,可选Windows/可自定义配置。点击进入:青云互联官网青云互联优惠码:七折优惠码:dVRKp2tP (续...

软件架构为你推荐
按键精灵教程怎么使用按键精灵阿里地图魔兽世界wow祖达萨泽布阿里在哪?a8处理器苹果A7,A8,A9处理器有什么区别?0x800ccc0foutlook 2007 能接收,出现0x800ccc0f错误怎么解决?所有杀毒软件都已经关闭!!burndownburn down是否及物?能用被动语态吗?主板说明书电脑主板的作用是什么?360官网打不开为何360安全卫士自动退出,所有的360官方网站打不开啊?我的电脑打开很慢电脑开机太慢怎么办超市商品价格超市中的商品的价格为什么极少取整,而是多以8或者9结尾??网游木马QQ游戏木马有多少种
域名空间代理 域名申请 华为云服务 256m内存 私人服务器 web服务器架设软件 大容量存储器 七夕快乐英文 169邮箱 phpmyadmin配置 中国网通测速 爱奇艺会员免费试用 视频服务器是什么 如何登陆阿里云邮箱 服务器硬件配置 广东服务器托管 nnt shuangcheng 蓝队云 htaccess 更多