什么是软件架构?
软件架构是关于如何组织软件的一系列重大设计决策的集合,旨在实现期望的质量属性和其它软件特性。软件架构并没有一个标准的定义,对于不同的用户角色有着不同的看法。
什么是软件架构师?
软件架构师实际上就是软件项目的总体设计师,是软件组织新产品的开发与集成、新技术体系的构建者。软件架构师的工作职责有以下几点:
1、架构师架构师关注质量属性(即非功能需求)和影响架构设计的约束和特性。
2、架构师根据功能需求、质量属性、设计约束及其他需求策略,对软件系统进行分解。
分解后的系统以承担不同功能或服务的组件、模块的形式出现,分配给不同的人或团队开发。
3、架构师要从全局角度出发考虑整体系统,不能只着眼于局部细节的设计。
4、软件架构的设计需要不断进行取舍,架构师经常要找出方案与各利益相关方协商如何进行合理的取舍。
5、架构师需要进行模块划分和协调工作,并将业务需求和技术决策通盘考虑,只有这样,才能游刃有余地管理技术债务。
6、架构师是团队的导师和顾问,有责任向团队分享知识,让他们成功地开发出软件。把架构设计当做一项社交活动,让团队成员都参与到设计中来,从而有效提升团队技能。
架构师如何打造出色的软件?
1)软件架构将复杂的大问题分解为容易处理的小问题。解决现代软件系统庞大且复杂,有许多活动的部件问题。
2)软件架构告诉大家如何协同工作。软件架构描述了整个系统如何组成有机的整体,掌握了软件架构就清楚了人们该如何合作开发软件。
3)软件架构为讨论复杂设计提供了基本词汇。软件架构为软件开发的沟通提供了基本概念和词汇,这样开发人员就可以把时间花在解决用户的实际问题上,而不必发明新的概念和词汇。
4)软件架构关注的不仅仅是功能。软件架构除了考虑功能需求,还要考虑成本、约束、进度、风险、团队的交付能力,以及最重要的质量属性(如可伸缩性、可用性、性能、可维护性等)。
5)软件架构让你避免犯重大错误。软件架构可以帮助发现那些今后可能会带来麻烦的问题和地方。
6)软件架构让软件更灵活。架构为软件提供了灵活多变的结构。