文档介绍:第0章构架与架构师
构架
起因:17世纪20年代,瑞典与波兰交战。瑞典国王下令建造巨型战舰—瓦萨战舰。
要求:舰长70m,载员300人,两层甲板装载64门重炮
设计师:henrik大师
考虑因素:工期、性能、功能、安全性、可靠性、造价等。
实现方法:先按单层炮舰设计,在扩充为双层。
结果:试航礼炮未放完,就翻入水中。
分析原因:比例严重失调(构架存在问题)
说明问题:?
◇软件构架
第0章构架与架构师
构架
软件构架师技术、商业好社会等诸多因素作用的结果,而软件构架的存在反过来又会影响技术、商业与社会环境,从而影响到未来的构架。这种相互影响的周期称为构架商业周期
◇软件构架商业周期
办公室里的争论
办公室里,关于什么是软件架构,争论正酣。
程序员说,软件架构就是要决定需要编写哪些类,使用哪些现成框架。程序经理笑了;
程序经理说,软件架构就是模块的划分与接口的定义。系统分析员笑了;
系统分析员说,软件架构就是为业务领域对象的关系建模。配置管理员笑了;
配置管理员说,软件架构就是开发出来的以及编译过后的软件到底是个啥结构。数据库工程师笑了;
数据库工程师说,软件架构规定了持久化数据的结构,其他一切只不过是对数据的操作而已。部署工程师笑了;
部署工程师说,软件架构规定了软件部署到硬件的策略。用户笑了;
用户说,软件架构就是决定一个个子系统如何划分。程序员又笑了;
大家想了想说,这些架构视图好像我们都需要啊,软家架构师哭了。
     ........上述争论可以总结为一句话:不同涉众看待软件架构的视角是不同的
第0章构架与架构师
构架
:
◇软件构架的产生
开发组织的管理层涉众
客户涉众
维护组织涉众
最终用户涉众
进行市场营销的涉众
成本要低,人人都得有活干
特性突出、很快能投放市场、成本低、有竞争力
行为、性能、安全性、可靠性、易用性
可修改性
成本要低,及时交付、不要改动太频繁
第0章构架与架构师
构架
Eg:人员技能、开发进度与预算、直接投资和长期投资、子系统的转包等
Eg:基于web、面向对象、支持中间件等
Eg:与涉众的交流
◇软件构架的产生
架构师
架构师这个称呼不是拍脑袋想出来的,是有国际标准(ISO/IEC 42010)可查的。架构师是软件开发活动中的众多角色之一,它可能是一个人、一个小组,也可能是一个团队。微软对架构师有一个分类参考,我们参考一下,他们把架构师分为4种:企业架构师EA(Enterprise Architect)、基础结构架构师IA(Infrastructure Architect)、特定技术架构TSA(Technology-Specific Architect)与解决方案架构师SA (Solution Architect)。
◇软件架构师
第0章构架与架构师
架构师
◇软件架构师-- 名人堂
第0章构架与架构师
架构师
1、确认需求
在项目开发过程中,架构师是在需求规格说明书完成后介入的,需求规格说明书必须得到架构师的认可。架构师需要与分析人员反复交流,以保证自己完整并准确地理解用户需求。
2、系统分解
依据用户需求,架构师将系统整体分解为更小的子系统和组件,从而形成不同的逻辑层或服务。随后,架构师会确定各层的接口,层与层相互之间的关系。架构师不仅要对整个系统分层,进行“纵向”分解,还要对同一逻辑层分块,进行“横向”分解。
软件架构师的功力基本体现于此,这是一项相对复杂的工作。
◇软件架构师——主要职责
第0章构架与架构师
架构师
3、技术选型
架构师通过对系统的一系列的分解,最终形成了软件的整体架构。技术选择主要取决于软件架构。
Eg:Web Server运行在Windows上还是Linux上?数据库采用MSSql、Oracle还是Mysql?需要不需要采用MVC或者Spring等轻量级的框架?前端采用富客户端还是瘦客户端方式?类似的工作,都需要在这个阶段提出,并进行评估。
架构师对产品与技术的选型仅仅限于评估,没有决定权,最终的决定权归项目经理。架构师提出的技术方案为项目经理提供了重要的参考信息,项目经理会从项目预算、人力资源、时间进度等实际情况进行权衡,最终进行确认。
◇软件架构师——主要职责
第0章构架与架构师
架构师
4、制定技术规格说明
架构师在项目开发过程中,是技术权威。他需要协调所有的开发人员,与开发人员一直保持沟通,始终保证开发者依照它的架构意图去实现各项功能。
架构师与开发者沟通的最重要的形式是技术规格说明书,它可以是UML