软件架构与测试架构分析论

发表于:2012-4-06 11:10

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:散步的SUN    来源:51Testing软件测试博客

  序言:在做自动化测试的过程中,曾努力的对软件设计学习过一段时间,间间断断的,突然发现接触到了软件流程,软件建模(包括数据库建模)、web设计,当然,更多的是用的java设计(数据结构、模式应用、算法等)。虽然不够深入,但是将这些细碎连接起来,在软件架构上也有了自己的一点思考和总结,其实不管做测试也好、做自动化测试也好,还是进行软件设计,都有着一套理念类似的架构学。

  一、生活中的架构

  相信大家都知道“马斯洛需求层次理论”,在其理论中,把人类需求分成生理需求、安全需求、归属与爱的需求、尊重需求和自我实现需求五类,依次由较低层次到较高层次排列。这里不讨论其理论的正确性,这也是一种架构,将人类需求实现的各个层次进行了细分,每一个层次之间都有详细的职责细分,每个层次之间都有清晰的关系接口,因此普通人能够快速基于此架构拓展自己的特性需求。

  在我想来,人的思想意识也需要自己的架构,你的最底层是你的原则,也就是做人方式,是固定的,不会轻易更改,变动越大,影响越大,然后依次是做事方式和表现方式,可以随着环境的不同进行适应。

  二、软件设计架构

  1、软件设计流程:

  一般的软件设计基本流程会是:需求分析—架构设计—系统设计—系统开发—测试上线。当然,从产品整体上而言,需求分析前期还有战略制订以及可行性研究,上线后期还包括应用数据分析等。

  2、软件架构介绍:

  软件架构简单而言,觉得有一句话说的很好:在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。其实说的简单点:软件架构就是从整体上定义软件系统的运作流程、各个模块以及模块间的接口。

  3、软件架构作用

  软件框架的作用是使软件设计层次清楚,可以达到不同模块细分到不同个人开发的效果,各个接口之间能够无缝连接。但是架构虽好,也需要看实际情况,不能一味为了追求花哨的架构,而忽视了其成本。软件架构的真正作用是分离关注点、提升软件需求灵活性和维护性。但是相应的,其前期复用的成本效益也显著提高。因此,需要根据软件项目的规模综合考虑,选择一套合适自己的架构,只是为了临时住而搭建一个草房子,就没必要又是设计地基、又是设计扩展性等问题了。

  4、软件架构师发展

  从一个从软件实现角度上说,写代码并不是其最重要的工作,最重要的工作就在于其架构的设计,当架构设计好之后,其具体代码细节则是一个填充的过程。就像做房子,房子图形架构都设计好了,那么水泥和各材料就只是按照其形式搭建而已。

  而根据我的总结,要成为一名软件架构师:则必须经历这么一个过程:

  软件业务学习——开始能够写函数和类(即能够写得了过程性的函数和对象性的类集合,能够应用数据结构和算法实现)———写模块和引擎(能够写一些给外部调用的模块和引擎,能够应用模式,能够定义好自己的接口)——写框架与平台(能够应用抽象思想,善于利用各种架构以及搭建自己的架构,能够区分和选择技术重点、快速验证技术实践等)。自我认为自己还在第一个阶段。反思以前开发的测试项目,大都接口定义太少,更多的是面向类实现的编程,而不是面向接口的编程,最近一直在看java的源代码,才深有体会面向接口的编程和一些简单模式的真正应用——软件业务分析。

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • 散步的SUN
    2012-4-11 19:19:49

    需求驱动技术,例如:你可以先用录制满足现在的小范围回归需求,等真正做到一定效果后,发现想大规模做,那么就发现重点在于脚本的统计和维护,那么就开始发展框架了,一步一步来,而不是一开始就还没确定好业务方向和效果,就开始设计框架

  • 夏竹
    2012-4-09 09:12:19

    等需求稳定和饱和之后,再设计发展适合自己的框架
    请问这是什么意思

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号