软件架构为谁设计:

1、用户:最终软件系统都是给用户用的,所以必须满足用户的功能要求与质量要求。

2、客户:区别于用户,例如打卡系统,用户是公司打卡员工和考勤统计人员,而客户是该公司老板。必须考虑客户的业务目标、预算限制、集成需要、开发时间,除此还要关注客户所在行业的业务规则和限制。

3、开发人员:最终实现这个系统的人是开发人员,而开发人员是直面架构的,开发人员关心的更多的不是用户/客户需求,而是软件的可扩展性、可维护性、可重用性、可移植性、易理解性、易测试性等等。

4、管理人员:团队开发中,架构能帮助管理人员理清并管理人员协助。架构是开发管理的核心基础,为项目经理制定项目计划、管理项目分工和考核项目进度提供依据,对技术方面的重大问题构造一个粗颗粒度的解决方案,把不同模块发给不同小组分头开发。同时它也约束了模块的交互机制和接口,是各小组沟通的桥梁。


说明:软件架构的概念篇为《软件架构设计(第二版)》学习笔记,部分内容摘自原文。