首页 > 代码库 > 课堂作业01
课堂作业01
我们都了解过或在课堂上听说过软件体系架构师这一职业,对我们来说软件体系架构师是一个需要很多经验和技术的职业,也会是很多人奋斗的目标,那么什么是软件体系架构师以及软件体系架构师的职责是什么呢?
软件体系架构师是软件行业中一种新兴职业,是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员,是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。因此他/她应该是特定的开发平台、语言、工具的大师,对常见应用场景能马上给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价。并且软件体系架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单等。
在了解了软件体系架构师的概念和工作职责之后,最重要的就是软件体系架构师的工作路程了。之前只是听说过这个职业,对这个职业的本质和实际的工作流程有深入的了解和认识,还是在观看完《梦想改造家》之后。这个节目的主旨,是接受一组居住环境困难的家庭的委托,然后请建筑设计师进行家的改造,就相当于我们接到的客户委托的项目。
节目中的王平仲设计师在拿到这项任务之后,首先做的事情就是亲自到现场拜访这一家人,以便可以更好的了解这家的房屋实际情况,直接与这家的住户进行交流,可以了解到他们更多的实际居住困难,并且可以观察房型,这就是实地考察的好处。这也是作为一个软件体系架构师首先要做的工作,需要理解系统的业务需求,就要亲自和客户进行交流,很多时候,连客户本身都不知道他们真正的需求是什么,所以和客户的交流谈话就显得尤为重要,客户所说的困难也就是架构师需要解决的问题。还有很重要的一点是,架构师需要掌握到客户需要什么非功能性需求或系统质量,因为大多数非功能性需求本质上是技术层面的,并且会对软件架构产生很大的影响。
建筑设计师在拜访完这家之后,就回到了自己的工作室,开始考虑如何解决这家住户最核心的问题即三角形房型的问题,这是最需要解决的问题,即关键需求,架构师最需要解决的客户需求。王平仲设计师在考虑改造方案时,关于将如何解决仅有25平方米的“纸片屋”的居住空间进行了反复的思考,画图模拟和设计,设计了很多种方案。相同的道理,软件体系架构师在进行了初步的需求分析之后,便开始了初步的系统架构设计,开始思考如何去解决这些需求并定义它的架构。并利用建模工具根据需求上提到的功能模块要求画图。在兼顾客户需求和条件限制的情况下把需求问题解决到最好,这一步定义架构是软件架构师的工作流程中的重要一步。
王平仲设计师在为这个家庭设计时提出了很多改造方案,画了很多图纸,考虑了诸多因素比如安全性、多功能性等之后给出了一个最适合的方案。这就好像是软件体系架构师在进行架构设计时,他们需要综合考虑成本、安全性、兼容性、性能、可复用性以及最终用户环境等各方面。架构评估是软件架构师工作过程中必不可少的一步,软件架构师需要考虑该架构是否能满足非功能性需求,而且为其他部分的代码提供必要的基础,并为解决和存在的业务问题提供足够的平台。
前面的这些部分已经大致完成了体系架构的设计,接下来就是进行架构的测试,验证软件架构。测试是软件开发过程中的一个重要组成部分,是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题,发现错误,对其设计进行评估。由此可见,软件架构师工作过程的最后一步测试也是十分重要的。
一个软件架构师必须在技术方面已经十分熟练,经验丰富,并且有项目开发的经验和战略性,可以在更高的级别上思考。软件架构师主导了全局的设计,所以他们的工作决定了整个开发项目的优劣。
课堂作业01