首页 > 软件测试/ 正文
软件质量之路:建立核心框架
2013-01-06 06:00:51 ℃
什么是框架 在软件开发中出现过各种各样的框架,开源软件的兴起,使得各种各样的框架纷纷出现,例如,Apache组织下就拥有诸多的框架类产品,包括国内很熟悉的struts。那么,什么是框架呢? 在设计模式中,Gamma等人为框架给出了一个定义:“框架就是一组协同工作的类,它们为特定类型的软件构筑了一个可重用的设计。”[Gamma 94,p.26] 框架是针对特定的问题领域的,例如,struts是一个针对Web开发的框架。 框架包括了一组的抽象概念。这些抽象概念来源于问题领域。例如,struts是基于MVC模式进行设计的,所以它必须为model、view、control建立抽象概念。 框架使得这些抽象概念相互协作,并提供了一种扩展的形式,以实现重用。这是框架的具体工作。框架在抽象概念上进行工作,定义抽象概念之间的协作方式。框架和普通软件或是类库的区别就在于,用户通过扩展框架来重用该框架。这些扩展点的设计称为框架设计的核心。例如,在struts1.0中,采用的是类继承的扩展方式(对Action进行扩展)。 框架实例 spring(http://www.springframework.org)是一个开源的框架,这个框架定位于一个整体的基于J2EE的应用型框架。他的定位哲学是不重新发明轮子。例如,他提供了数据库访问机制,但是他的数据访问机制是基于JDBC、Hibernate和JDO的。重用和再包装的思路充满了整个spring框架。国内的软件产业大都定位在系统集成,这种思路非常适合于国内的软件组织。使用这个例子的目的也在于此。 框架应该尽可能使用现有的技术。而不要重复投资。 JDBC是一个非常基础的数据存取API。它封装了对关系型数据库的访问,但是应该承认,JDBC仍然属于层次较低的API,所以在使用的时候,我们不得不编写大量的代码,来完成一件简单的工作:PreparedStatement st = db.prepareStatement("SELECT USER.NAME FROM USER");ResultSet rs = st.executeQuery();while(rs.next()) {System.out.println(rs.getString(1));}rs.close();st.close(); 看到有多麻烦了吧,但是请注意,以上的代码存在严重的缺陷,因为没有任何处理异常的代码,加入异常代码意味着我们还需要增加一些代码,这种重复的劳动使得程序员的工作像是傻瓜一样。记得我们在代码自动化中的自动化原则吗?对于重复性的劳动,我们应该使其自动化。 如何进行呢?注意,我们发现,除了SQL语句的不同以及记录集的处理不同以外,大部分的查询代码都没有太大的差别,所以我们的目标就是抽取共同的部分,而把特定的部分留给开发人员自己。 那么,一个框架该做些什么呢?回忆框架的定义,框架就是定义一组的抽象体,及其抽象体之间的协作,并提供扩展。在JDBC中,抽象体有Datasource、Connection 、PreparedStatement、ResultSet、Statement、SQLException。所以,建立框架的第一步就是分析这些抽象体的行为,哪些是共同的,哪些是专有的。使用spring框架,最终的JDBC客户端代码是这样的:JdbcTemplate template = new JdbcTemplate(dataSource);final List names = new LinkedList();template.query("SELECT USER.NAME FROM USER",new RowCallbackHandler() {public void processRow(ResultSet rs) throws SQLException {names.add(rs.getString(1));}});
- 上一篇:敏捷开发模式下的质量管理
- 下一篇:质量管理三部曲
更多郑州java软件培训,郑州java网站开发培训,零基础学java难么,郑州黑马java培训,郑州千峰java培训,郑州蓝鸥java培训相关文章
- Java两处最常犯错误讲解与分析
- 分析Java可执行文件和批处理文件
- 七嘴八舌话探索性测试
- 浅谈白盒测试中桩函数的灵活应用
- 什么是软件测试架构
- 热议自动化测试发展前景
- 云梯数据测试的小陷阱——NULL值问题
- 走在自动化软件测试的道路上(二)------我们应该做什么?
- 我的软件测试之旅:(1)起点——作为软件开发人员
- 自动化软件测试推广经验分析总结
- 我的软件测试之旅:(8)困难——没有现成的测试工具
- 软件测试适合男生去学吗?
- [你问我来答第14期]:CMMI评估探讨
- 如何度量测试工作的有效性
- 同行评审常见问题解答
- 过程改进漫漫谈之问题分析五步法
- 软件质量保证工作随笔
- 质量管理漫漫谈之也谈QA的考核
- 同行评审那些事儿(九):最佳实践(1)
- 什么是水货笔记本
- 注册表编辑器怎么打开,打开注册表命令
- 怎样识别山寨笔记本电脑
- 电脑设置了开机密码要解除怎么做?
- 图说Windows演变史:1985-2012
- 电脑灰尘的危害
- 电脑安全模式怎么进
- 软件工程师培训
- 郑州北大青鸟BTEST软件测试工程师
- 郑州软件测试专业培训哪个学校好呢?
- 搜索
-
- 热门标签