软件体系结构的第一节课,是要让我们了解如果要做一名软件架构师,我们应该做什么和怎么做。在课堂上,老师通过《梦想改造家》中王平仲对特殊房型的改造来让我们从一名建筑师去了解什么是软件架构师。
所谓软件架构师,是软件行业中一种新兴行业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划,是主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。
软件架构师其实相当于是软件项目管理的主管,他负责设计与构筑公司的系统架构,对系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级的把握。软件架构师还要跟踪架构的使用情况,以保证软件开发符合制定好的系统架构。他还负责进一步改进系统架构,以符合公司发展的业务要求。软件架构师还得给设计人员和开发人员提供系统架构的培训。这些就是一名软件架构师的职责目标。
那么,作为一名软件架构师的具体的职责有哪些呢?软件架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且具有良好的组织管理能力。可以这样说,一个架构师工作的好坏,决定了整个软件开发项目的成败。其实,软件架构师的工作职责可以分为三点。首先最重要的是负责软件项目的测试,也就是根据详细设计书,编写测试单元的用例,然后根据软件测试用例,搭建软件测试环境,进行软件测试,最后整理软件交付件,参与软件的交付工作。我们都知道软件架构师,是对一个项目整体进行架构设计的,所以如何对自己所设计的架构的系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级的把握,就需要软件架构师对软件项目进行测试以发现体系结构中的优缺点。然后软件架构师还要负责软件项目的实施。也就是负责编制使用说明书,还有负责针对发现的问题或用户的要求,进行沟通并确定问题解决办法。我们在上个学期的软件需求分析的课程中,就已经学习了,什么是用户需求,所以在软件项目实施的过程中,用户的体验很重要,所以作为一名软件架构师,需要发现客户在使用的过程的一些问题,并对自己的架构或者说是整个项目进行改进。最后软件架构师还应该负责软件系统技术支持。也就是说软件架构师还应该负责软件系统的运行监控,负责软件系统日常运行过程中的技术支持,并负责解答用户疑问,还要参与软件系统日常运行过程中的问题排除并收集用户反馈的软件问题及改进需求。其实这一点也就是对上述两点的一个总结。
在了解了软件架构师的工作职能之后,我们还应该明白作为一名软件架构师的工作流程。首先,作为软件架构师要给予商务支持,提供系统解决方案和架构咨询。然后在需求阶段,软件架构师需要和需求分析师一起,参与需求的沟通,协助完成技术/业务咨询和需求模型。(好的软件架构师同时也是业务专家),就如我们刚刚在上述分析软件架构师的职责的时候所描述的一样,软件架构师要负责软件项目的实施。在做了需求分析之后,就进入了架构阶段,软件架构师需要进行系统分析和设计,进行系统抽象,设计系统模型,进行技术原型,开发架构原型等,然后在进行了设计之后,他还需要指导设计人员完成详细设计。之后在开发阶段,软件架构师需要指导开发人员按设计实现,解决技术难题。在测试阶段,他还需要指导测试人员测试工作,特别是非功能需求的测试,这一点也就是上述所说的软件架构师需要负责软件系统技术支持。然后在发布的阶段,软件架构师需要指导部署人员按照部署架构进行部署,及时解答或反馈试运行期间的架构问题。
在这个学期软件体系结构今后的学习中,我们将更深入地了解所谓的软件的架构和软件架构师的知识和内容。而如何在程序员之路上不断前行,就需要我们在学习生活中不断地积累和进步,让知识来充实自己,就能在以后的自己的人生道路上越走越远。