软件产品设计

本文探讨了软件架构设计的重要性,介绍了软件架构师的角色,包括他们的职责、素质和分类。强调了需求在架构设计中的核心地位,详细阐述了软件需求的来源和分类。此外,文章还概述了软件架构设计的过程,特别是5视图法,以及在设计过程中可能出现的误区。
摘要由CSDN通过智能技术生成

1. 软件架构设计的What & Why

● 啥是软件架构(Software Architecture)?

软件架构是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。组件的外部可见属性是指其他组件对该组件所做的假设。

软件架构设计就是从宏观上说明一套软件系统的组成与特性。

软件架构设计是一系列有层次的决策 ,比如:功能与展现的决策;技术架构的决策;自主研发还是合作;商业软件还是开源软件 。

 为啥要进行软件架构设计?

业务需求层出不穷;软件系统越来越复杂;参与的人越来越多;共性和特殊性的问题越来越多;技术发展日异月新;……

2. 软件架构师

2.1. 软件架构师是干什么的

介于需求与开发的中间人 良好的沟通能力能够统领全局的大牛良好的大局观能够将需求转换为技术 洞悉前沿与市场嗅觉能够为软件研发提供指导 见多识广的大牛需要全面思考软件系统方方面面的问题 缜密地思考问题能够攻关和搞定重要技术难题 公司可信赖的支柱

2.2. 架构师的素质

全局思维

从业务、市场,到技术实现;

从软件的过去、现在,到将来;

从外部客户,到内部研发;

从软件研发,到硬件部署;

从功能实现,到运行效率

战略思维

在所在行业的发展战略;

在业务领域的发展战略;

在技术方向的发展战略;

在潜在市场的发展战略。

前瞻思维

市场趋势的发展动向;

前沿技术的发展动向;

竞争对手的发展动向;

合作伙伴的发展动向。

抽象思维

各项业务需求:抽象成功能模块;

各项功能的实现:抽象成软件架构。

逆向思维

假如不实现会怎样?

假如没搞定会怎样?

假如没有它会怎样?

假如被延期会怎样?

2.3. 架构师的分类

随着行业和社会的发展,架构师的定义和分类越来越广泛和细分,广泛和细分其实并不矛盾,如果“广泛”是x轴,“细分”是y轴,则二维坐标系x和y轴中间的任一点就是一种架构师类别。但总体来说,或目前来说,集合业界的大致认知,总结如下:

No.分类描述1解决方案架构师与客户探讨业务需求,将业务、市场,与技术、产品结合起来,为客户提供解决他们需求的方案。2系统架构师也称应用架构师。最终确认和评估系统需求,并将业务转换为技术,为研发人员制订核心框架与技术规范 为研发工作澄清技术细节并扫清技术障碍 。3平台架构师这里的平台其实包括两个平台,一个是系统平台,也就是负责搭建多个系统整合的系统应用平台;另外一个其实是基础平台,是专门负责搭建基础技术平台;两者其 实区别蛮大,也经常容易被从业人员混乱。举个简单例子,金蝶有平台架构师一职,但是金蝶BOSS应用和金蝶中间件两者招聘的对象和技术要求是截然不同的。4业务架构师业务架构其实已经开始脱离技术层面了,但是它要求架构师有跨越多系统的大局观,去整合和组织不同系统的技术平台与交互模式。其实这个职位的未来也就是CIO了。5网络架构师过去,我们可能听的最多的是网络工程师。不错,一个优秀的网络架构师必须有足够的网络技术基底,并且它的关注点也是系统的基础架构。比如说如果搭建并优化集群环境,如果构建基于云计算的系统应用与部署等等。它对于像淘宝、腾讯这样的互联网公司是极其重要的。6移动架构师移动互联网的迅猛发展横向和纵向都细分出了很多新的职责和岗位,移动架构师的职责和作用日益重要,既要整体和全局考虑整个前后端的软件系统架构,又要重点深入移动客户端的架构设计的方方面面,既要有跨平台思维,又要拿捏好原生和混合开发的尺度,另外移动应用的特点,导致移动架构师必须要比传统系统架构师更加注重非功能性的质量属性。7前端架构师这也是移动互联网的迅猛发展而细分出来的新的职责和岗位,这里的前端特指网站开发中的前端,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值