软件架构师工作流程

  这学期我们将要开始软件体系架构的学习,再弄枪出了什么是软件体系架构之后,我们要知道如何进行软件体系架构,也就是软件架构师的工作流程。根据从网上找到的资料,大致了解了软件架构师的进行软件架构的要求与步骤。。

  软件架构有四个必须,一个不一定。

  首先,软件架构是用来沟通的,软件架构必须满足软件项目所有步众代表都有自己立场与视角的模型、文档说明,且这些模型文档说明仅清晰包含自己立场与视角关注与有关的事物,不能有任何遗漏,也最好不要有多余。

  其次,软件架构的每一步都是决策过程,而且关键需求决定架构,软件架构必须充分清楚地表达出这些决策与决策理由。众多的需求中为什么这些需求是关键需求?为满足这些关键需求,采用了什么样的关键机制、核心技术与第三方框架?什么选择这些关键机制、核心技术与第三方框架而不选用其它的?为什么说它们是可行的?

  再则,软件架构必须为以后的开发提供足够的指导与限制,因此软件架构必须确定系统各元素间的关系、职责、交互接口与协作机制。仅仅划出几个层与层中包含的元素而不约束它们间的关系、职责、交互接口与协作机制,就如同一个公司,它的组织结构图就挂在墙上——再清晰不过了,但如果接口不清、机制不明,来了任务、出了事情不清楚找谁、如何汇报、怎样处理。

  然后,软件架构必须突出强调通信机制、持久化机制和消息机制等公用模块的深入设计。通信机制、持久化机制和消息机制等公用模块较多的涉及软件的不同部分之间的交互,对系统的功能实现、非功能满足等成功因素起着举足轻重的作用。

  最后,由于软件项目的不同、开发组织结构的不同、开发团队情况的不同,软件架构的设计粒度是不一定的。比如,航天航空领域中的软件系统对系统的可靠性等质量属性要求非常高甚至可以认为是荷刻,这种情况下对架构的设计详细程度的要求也会比较高;象IBM这样的大的团队中又有小的团队共同开发,架构的设计粒度到子系统级就足够了,各个小团队精通的技术各不相同,可以让其对子系统采用敏捷开发,对缩短工期、人尽其材有好处;有类似项目经验或项目团队所有成员整体技术水平较高的团队架构粒度可适当粗犷,而分布团队或涉及外包的情况则更强调架构的明确性。总之,架构设计对软件的不同部分的设计程度不应是整齐划一的,特别是具体的业务功能模块在架构设计中往往设计程度不深。

  接下来大致了解一下如何进行架构拿到软件需求后,经过一翻囫囵吞枣式的通读(而且是一边看一边脑子里飞速的转达:这块按我的经验应该如何实现),然后打开建模工具,根据需求上提到的几块功能模块要求,画上几个用例与时序图;再从需求中摘下几个事物建立类,填上类的属性,又从时序图中分出几个函数方法,最后根据经验,依MVC分几层,套用已有的示例将最近新学的几个流行的框架添加上去。这就基本上完成了架构,然后再根据要求撰写文档。

  关于如何为我们将来能够成为一名软件架构师做准备,我根据网上的资料总结了以下几点。

  (1)    做好平时的学习与积累,增加相关书籍的阅读。

  (2)    课余时间学习一些课外的编程语言。

  (3)    选择一个领域进行深入得学习。

  (4)    将学习的经验知识发表到博客园,积累起来。

  (5)    平时多浏览一些优秀软件工作人员的博客,学习一些经验。

  (6)    多了解一些开发工具。

  (7)    有时间可以关注一下别的领域的新鲜事物,加强自己的涉猎。

  软件架构师是一个很高端的职业,我们只有不断加强自己的专业技能,才能为将来的就业做好准备,无论是否是软件架构这个职业,不可否认,软件架构师是一个非常高端的职业,我们应该脚踏实地,做好眼前的事情,着眼于未来,不断提升自己的专业技能。

 

posted @ 2017-02-22 08:35  牙吃多了糖疼  阅读(138)  评论(0编辑  收藏  举报