系统开发基础知识试题.docx
- 文档编号:25910953
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:32
- 大小:32.68KB
系统开发基础知识试题.docx
《系统开发基础知识试题.docx》由会员分享,可在线阅读,更多相关《系统开发基础知识试题.docx(32页珍藏版)》请在冰豆网上搜索。
系统开发基础知识试题
系统开发基础知识
[单项选择题]
1、下列关于各种软件开发方法的叙述中,错误的是()
A.结构化开发方法的缺点是开发周期较长,难以适应需求变化
B.可以把结构化方法和面向对象方法结合起来进行系统开发,使用面向对象方法进行自顶向下的划分,自底向上地使用结构化方法开发系统
C.与传统方法相比,敏捷开发方法比较适合需求变化较大或者开发前期需求不是很清晰的项目,以它的灵活性来适应需求的变化
D.面向服务的方法以粗粒度、松散耦合和基于标准的服务为基础,增强了系统的灵活性、可复用性和可演化性
参考答案:
B
参考解析:
本题考查开发相关的一系列知识。
B选项中“自底向上地使用结构化方法开发系统”显然是错误的,因为结构化方法的一个核心特色为“自顶向下,逐步求精”,而非自底向上。
[单项选择题]
2、以下关于软件生存周期模型的叙述,正确的是()
A.在瀑布模型中,前一个阶段的错误和疏漏会隐蔽地带到后一个阶段
B.在任何情况下使用演化模型,都能在一定周期内由原型演化到最终产品
C.软件生存周期模型的主要目标是为了加快软件开发的速度
D.当一个软件系统的生存周期结束之后,它就进入到一个新的生存周期模型
参考答案:
A
参考解析:
本题考查软件生存周期模型的相关知识。
软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程成为软件生存周期。
一个完整的软件生存周期是以需求为出发点,从提出软件开发计划的那一刻开始,直到软件在实际应用中完全报废为止。
软件生存周期的提出是为了更好地管理、维护和升级软件,其中更大的意义在于管理软件开发的步骤和方法。
软件生存周期模型又称软件开发模型(softwaredevelopmodel)或软件过程模型(softwareprocessmodel),它是从某个特定角度提出的软件过程的简化描述。
软件生存周期模型主要有瀑布模型、演化模型、原型模型、螺旋模型喷泉模型和基于可重用构件的模型等。
软件生存周期模型的主要目标是降低开发风险,提高软件品质,而非一味地提高开发速度。
瀑布模型是一个有着严格阶段划分的模型,这种模型要求完成一个阶段,才能开始下一个阶段的工作,先是需求分析,然后是设计、编码、测试。
该模型最大的缺陷在于,一个阶段的错误若没有被发现,将隐蔽地带到下一个阶段,使下一个阶段接着出错,所以A选项的描述是正确的。
演化模型是根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本,这个初始的软件通常称之为原型,然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。
重复这一过程,最终可得到令用户满意的软件产品。
采用演化模型的开发过程,实际上就是从初始的原型逐步演化成最终软件产品的过程。
演化模型特别适用于对软件需求缺乏准确认识的情况。
[单项选择题]
3、系统设计是软件开发的重要阶段()主要是按系统需求说明来确定此系统的软件结构,并设计出各个部分的功能和接口。
A.外部设计
B.内部设计
C.程序设计
D.输入/输出设计
参考答案:
A
参考解析:
在软件开发中,外部设计又称为概要设计,其主要职能是设计各个部分的功能、接口、相互如何关联。
内部设计又称为详细设计,其主要职能是设计具体一个模块的实现。
所以本题应选A。
[单项选择题]
4、在关于逆向工程(ReverseEngineering)的描述中,正确的是()
A.从已经安装的软件中提取设计规范,用以进行软件开发
B.按照"输出→处理→输入"的顺序设计软件
C.用硬件来实现软件的功能
D.根据软件处理的对象来选择开发语言和开发工具
参考答案:
A
参考解析:
逆向工程(ReverseEngineering)术语源于硬件制造业,相互竞争的公司为了了解对方设计和制造工艺的机密,在得不到设计和制造说明书的情况下,通过拆卸实物获得信息,软件的逆向工程也基本类似,不过,通常"解剖"的不仅是竞争对手的程序,而且还包括本公司多年前的产品。
软件的逆向工程是分析程序,力图在比源代码更高抽象层次上建立程序的表示过程,逆向工程是设计的恢复过程。
所以本题的正确答案是A。
[单项选择题]
5、极限编程是一种重要的敏捷开发方法,包含策划、设计、编码和测试4个框架活动的规则和实践。
下面关于极限编程的叙述,错误的是()
A.极限编程中使用的重要技术是重构,既包括设计技术的重构,也包括构建技术的重构
B.极限编程提倡在基本设计完成后,立即进行编码实现,并进行测试
C.极限编程活动中的关键概念之一是"结对编程",推荐两个人面对同一台计算机共同开发代码
D.极限编程过程中建立的单元测试应当使用一个可以自动实施的框架,支持代码修改后即时的回归测试策略
参考答案:
B
参考解析:
极限编程是一种重要的敏捷开发方法,包含规划、设计、编码和测试4个框架活动的规则和实践。
极限编程中使用的重要技术是重构,既包括设计技术的重构,也包括构建技术的重构;极限编程提倡在基本设计完成后,团队不应该直接开始编码,而是开发一系列用于检测本次发布的包括所有故事(story)的单元测试;极限编程活动中的关键概念之一是"结对编程",推荐两个人面对同一台计算机共同开发代码;极限编程过程中建立的单元测试应当使用一个可以自动实施的框架,支持代码修改后即时的回归测试策略。
[单项选择题]
6、()方法以原型开发思想为基础,采用迭代增量式开发,发行版本小型化,比较适合需求变化较大或者开发前期对需求不是很清晰的项目。
A.信息工程
B.结构化
C.面向对象
D.敏捷
参考答案:
D
参考解析:
本题考查开发模型相关知识。
迭代、增量、发行版本小型化,以及需求变化较大等特点均与敏捷方法一致,所以本题应选D。
[单项选择题]
7、以下关于需求管理的叙述中,正确的是()
A.需求管理是一个对系统需求及其变更进行了解和控制的过程
B.为了获得项目,开发人员可以先向客户做出某些承诺
C.需求管理的重点在于收集和分析项目需求
D.软件开发过程是独立于需求管理的活动
参考答案:
A
参考解析:
需求管理是一个对系统需求变更、了解和控制的过程。
需求管理过程与需求开发过程相互关联,当初始需求导出的同时就启动了需求管理计划,一旦形成了需求文档的初稿,需求管理活动就开始了。
关于需求管理过程域内的原则和策略,可以参考:
①需求管理的关键过程领域不涉及收集和分析项目需求,而是假定已收集了软件需求,或者已由更高一级的系统给定了需求。
②开发人员在向客户以及有关部门承诺某些需求之前,应该确认需求和约束条件、风险、偶然因素、假定条件等。
③关键处理领域同样建议通过版本控制和变更控制来管理需求文档。
[单项选择题]
8、面向功能的软件度量使用软件所提供功能的测量作为规范化值。
下面关于面向功能的软件度量方法的描述,不正确的是()
A.面向功能度量是由Albrecht首先提出来的,他建议采用基于功能点的测量
B.功能点是基于软件信息领域的可计算的(直接的)测量及软件复杂性的评估而导出的
C."功能"不能直接测量,所以必须通过其他直接的测量来导出
D."用户输入数"和"用户输出数"不属于面向功能的软件度量需要考虑的因素
参考答案:
D
参考解析:
面向功能的软件度量是对软件和软件开发过程的间接度量,注意力集中于程序的功能性和实用性,而不是对LOC计数。
该度量是由Albrecht首先提出来的。
他提出了一种叫做功能点方法的生产率度量法,该方法利用有关软件数据域的一些计数度量和软件复杂性估计的经验关系式,导出功能点FPs(FunctionPoints)。
功能点通过填写图表格来计算。
首先要确定5个数据域的特征,并在表格中相应位置给出计数。
数据域的值以如下方式定义:
①用户输入数:
每个用户输入应是面向不同应用的输入数据,对它们都要进行计数。
输入数据应区别于查询数据,它们应分别计数。
②用户输出数:
各个用户输出是为用户提供的面向应用的输出信息,它们均应计数。
在这里的"输出"是指报告、屏幕信息、错误信息等,在报告中的各个数据项不应再分别计数。
③用户查询数:
查询是一种联机输入,它引发软件以联机方式产生某种即时响应。
每一个不同的查询都要计数。
④文件数:
每一个逻辑主文件都应计数。
这里的逻辑主文件,是指逻辑上的一组数据,它们可以是一个大的数据库的一部分,也可以是一个单独的文件。
⑤外部接口数:
对所有使用来将信息传送到另一个系统中的接口(即磁带、磁盘和可读写光盘上的数据文件)均应计数。
一旦收集到上述数据,就可以计算出与每一个计数相关的加权复杂性值。
[单项选择题]
9、用户文档主要描述所交付系统的功能和使用方法。
下列文档中,()属于用户文档。
A.需求说明书
B.系统设计文档
C.安装文档
D.系统测试计划
参考答案:
C
参考解析:
用户文档主要描述所交付系统的功能和使用方法,并不关心这些功能是怎样实现的。
用户文档是了解系统的第一步,它可以让用户获得对系统准确的初步印象。
用户文档一般包括以下内容:
①功能描述:
说明系统能做什么。
②安装文档:
说明怎样安装这个系统及怎样使系统适应特定的硬件配置。
③使用手册:
简要说明如何着手使用这个系统(通过丰富的例子说明怎样使用常用的系统功能,并说明用户操作错误是怎样恢复和重新启动的)。
④参考手册:
详尽描述用户可以使用的所有系统设施,以及它们的使用方法,并解释系统可能产生的各种出错信息的含义(对参考手册最主要的要求是完整,因此通常使用形式化的描述技术)。
⑤操作员指南(如果需要有系统操作员的话):
说明操作员应如何处理使用中出现的各种情况。
试题中只有安装文档属于用户文档。
其他的:
需求说明书、系统设计文档、系统测试计划均属于开发文档。
[单项选择题]
10、用边界值分析法,假定10 A.X=11,X=29 B.X=9,X=10,X=30,X=31 C.X=10,X=30 D.X=9,X=31 参考答案: B 参考解析: 边界值分析法是对各种输入、输出范围的边界情况设计测试用例的方法。 使用边界值分析法设计测试用例,确定边界情况应考虑选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,这样发现程序中错误的概率较大。 边界值分析法的使用要注意以下几点: ①如果输入条件规定了取值范围或数据个数,则可选择正好等于边界值、刚刚在边界范围内和刚刚超越边界外的值进行测试。 ②针对规格说明的每个输入条件,使用上述原则。 ③对于有序数列,选择第一个和最后一个作为测试数据。 [单项选择题] 11、以下关于软件构件及其接口的叙述,错误的是() A.构件是软件系统中相对独立且具有一定意义的构成成分 B.构件在容器中进行管理并获取其属性或者服务 C.构件不允许外部对所支持的接口进行动态发现或调用 D.构件可以基于对象实现,也可以不基于对象实现 参考答案: C 参考解析: 本题考查软件构件的基本概念。 软件构件是软件系统中具有一定意义的、相对独立的可重用单元。 与对象相比,构件可以基于对象实现,也可以不作为对象实现。 构件需要在容器中管理并获取容器提供的服务;客户程序可以在运行状态下利用接口动态确定构件所支持的功能并调用。 [单项选择题] 12、对OO系统的技术度量的识别特征,Berard定义了导致特殊度量的特征。 其中()抑制程序构件的操作细节,只有对访问构件必需的信息被提供给其他希望访问的构件。 A.局部化 B.封装 C.信息隐藏 D.继承 参考答案: C 参考解析: 面向对象的软件和用传统方法开发的软件有本质性不同,为此,对OO系统的技术度量必须调整以适应那些区别OO和传统软件的特征。 Berard定义了5个导致特殊度量的特征,分别是局部化、封装、信息隐蔽、继承和对象抽象技术。 ①局部化。 局部化是软件的一个特征,它指明信息在程序中被集中的方式,例如,针对功能分解的传统方法围绕功能局部化信息,它们典型地以过程模块来实现。 数据驱动方法围绕特定的数据结构局部化信息。 在OO语境中,信息是通过封装数据和处理在类或对象的边界内而集中的。 因为传统软件强调函数为局部化机制,软件度量着重于函数的内部结构或复杂性(如模块长度、内聚性或环路复杂性等)或函数间相互连接的方式(如模块耦合)。 因为类是OO系统的基本单位,所以,局部化是基于对象的,因此,度量应该应用于作为一个完全实体的类(对象)。 此外,在操作(函数、方法)和类间的关系没必要是一对一的。 因此,反应类协作方式的度量必须能够适应一对多和多对一的关系。 ②封装。 Berard定义封装为"一组项的包装(或捆绑在一起),(对传统软件的)低层封装例子包括记录和数组,而子程序(例如,过程、函数、子例程和段落)是封装的中层机制。 "对OO系统,封装包含了类的责任,包括其属性(和针对聚合对象的其他类)和操作,以及由特定的属性值定义的类的状态。 封装通过将测度的焦点从单个模块改变到数据(属性)和处理模块(操作)包而影响度量。 此外,封装鼓励在高抽象层的测度。 将此层次的抽象同传统的度量相比较,传统的着重于布尔条件的计数或代码行数。 ③信息隐蔽。 信息隐蔽隐瞒(或隐藏)程序构件的操作细节,只将对访问该构件必需的信息提供给那些希望访问它的其他构件。 良好设计的OO系统应该鼓励信息隐蔽,因此,指明隐蔽所达到程度的度量应该提供了对OO设计质量的一个指标。 ④继承。 继承是使得某对象的责任能够传播到其他对象的机制,继承出现在类层次的所有层面上,通常,传统的软件不支持该特征。 因为继承是很多OO系统的关键特征,所以很多OO度量是关注于它的。 ⑤抽象。 抽象是使得设计者能够关注程序构件(数据或过程)的本质性细节而不需考虑低层细节的机制。 如Berard所说,抽象是一个相对概念,当我们移向更高的抽象级别时,我们忽略了越来越多的细节,即我们提供了对概念或项的更一般化的视图;当我们移向抽象的低层时,我们引入了更多的细节,即我们提供了概念或项的更特定的视图。 因为类是一种抽象,它可以在很多不同的细节级别上并以一系列不同的方式(例如,作为一个操作列表、作为一个状态序列、作为一系列协作)来观察,所以OO度量用类的测度(例如,每个应用的每个类的实例数、每个应用的参数化类数,以及参数化类和非参数化类的比率)来表示抽象。 [单项选择题] 13、系统输入设计中应尽可能考虑人的因素,以下关于输入设计的一般原理中,错误的是() A.只让用户输入变化的数据 B.使用创新的模式吸引用户的眼球 C.表格中各个数据项应有提示信息 D.尽可能使用选择而不是键盘输入的方式获取数据 参考答案: B 参考解析: 本题考查软件界面设计中的系统输入设计。 人的因素在系统输入设计中扮演了很重要的角色。 输入应该尽可能地简单,以降低错误发生的可能性,如对于范围可控的数据,使用选择的方式替代用户输入;只输入变化的数据等。 输入应该尽可能使用已有含义明确的设计,需要采用模仿的方式而非创新。 为了避免用户理解的二义性,应该对表格中输入的数据给出提示信息。 [单项选择题] 14、软件需求分析产生软件操作特征的规格说明,指明软件和其他系统元素的接口,建立软件必须满足的约束。 下面对于软件需求分析的描述,不正确的是() A.分析员研究系统规约和软件项目计划,并在系统语境内理解软件和复审,从而生成计划软件范围的估算 B.需求分析使得系统工程师能够刻画出软件的功能和性能、指明软件和其他系统元素的接口、并建立软件必须满足的约束 C.经过仔细的需求分析活动,分析员能够得到详细的系统规约 D.需求分析能够为软件设计者提供可被翻译成数据、体系结构、界面和过程设计的模型 参考答案: C 参考解析: 需求分析使得系统工程师能够刻画出软件的功能和性能、指明软件和其他系统元素的接口、并建立软件必须满足的约束。 需求分析能够为软件设计者提供可被翻译成数据、体系结构、界面和过程设计的模型。 分析员研究系统规约和软件项目计划,并在系统语境内理解软件和复审,从而生成计划软件范围的估算。 [单项选择题] 15、博学网软件开发团队欲开发一套管理信息系统,在项目初期,用户提出了软件的一些基本功能,但是没有详细定义输入、处理和输出需求。 在这种情况下,该团队在开发过程应采用() A.瀑布模型 B.增量模型 C.原型开发模型 D.快速应用程序开发(RAD) 参考答案: C 参考解析: 瀑布模型也称为生命周期法,是生命周期法中最常用的开发模型,它把软件开发的过程分为软件计划、需求分析、软件设计、程序编码、软件测试和运行维护6个阶段,规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。 瀑布模型主要用于需求明确或很少变更的项目。 原型法适合于用户没有肯定其需求的明确内容的时候。 它是先根据已给的和分析的需求,建立一个原始模型,这是一个可以修改的模型(在生命周期法中,需求分析成文档后一般不再进行修改)。 在软件开发的各个阶段都把有关信息相互反馈,直至模型的修改,使模型渐趋完善。 在这个过程中,用户的参与和决策加强了,最终的结果是更适合用户的要求。 这种原型法成败的关键及效率的高低,关键在于模型的建立及建模的速度。 增量模型融合了瀑布模型的基本成分(重复地应用)和原型的迭代特征。 采用随着日程时间的进展而交错的线性序列。 每一个线性序列产生软件的一个可发布的"增量"。 当使用增量模型时,第一个增量往往是核心的产品,即实现了基本的需求,但很多补充的特性还没有发布。 核心产品交用户使用,使用和/或评估的结果是下一个增量的开发计划。 该计划包括对核心产品的修改,使其能更好地满足用户的需要,并发布一些新增的特点和功能。 这个过程在每一个增量发布后不断重复,直到产生最终的完善产品。 RAD是一个线性顺序的软件开发模型,强调极短的开发周期和可复用程序构件的开发。 RAD模型是瀑布模型的一个高速变种,通过使用基于构件的建造方法获得了快速开发。 如果需求理解得很好,且约束了项目范围,RAD模型使得一个开发组能够在很短时间内创建出功能完善的系统。 RAD方法主要用于信息系统应用软件的开发,它包含业务建模、数据建模、处理建模、应用生成、测试及反复5个阶段。 [单项选择题] 16、敏捷软件过程强调: 让客户满意和软件尽早增量发布;小而高度自主的项目团队;非正式的方法;最小化软件工程工作产品,以及整体精简开发。 ()不是采用这种软件开发过程的原因。 A.难以提前预测哪些需求是稳定的和哪些需求会变化 B.对于软件项目开发来说,设计和实现可以做到基本分离 C.从制订计划的角度来看,分析、设计、实现和测试并不容易预测 D.可执行原型和部分实现的可运行系统是了解用户需求和反馈的有效媒介 参考答案: B 参考解析: 敏捷软件过程主要有四大价值观: 个体和交互胜过过程和工具;可以工作的软件胜过面面俱到的文档;客户合作胜过合同谈判;响应变化胜过遵循计划。 这种价值观的前提是软件需求是难以提前确定的,而是会不断地发生变化,可以采用可执行原型和部分实现的可运行系统来了解用户需求,通过用户的反馈来明确需求。 从制订计划的角度来看,分析、设计、实现和测试并不容易预测。 [单项选择题] 17、软件的逆向工程是一个恢复设计的过程,从现有的程序中抽取数据、体系结构和过程的设计信息。 逆向工程的完备性可以用在某一个抽象层次上提供信息的详细程度来描述,在大多数情况下,抽象层次越高,完备性就越低。 下列可以通过逆向工程恢复的制品中,完备性最低的是() A.过程的设计模型 B.程序和数据结构 C.对象模型、数据和控制流 D.UML状态图和部署图 参考答案: D 参考解析: 逆向工程过程及用于实现该过程的工具的抽象层次是指可从源代码中抽取出来的设计信息的精密程度。 理想地,抽象层次应该尽可能高,即逆向工程过程应该能够导出过程的设计表示(一种低层的抽象);程序和数据结构信息(稍高一点层次的抽象);数据和控制流模型(一种相对高层的抽象);以及实体关系模型(一种高层抽象)。 随着抽象层次增高,软件工程师获得更有助于理解程序的信息。 在试题给出的4个选项中,UML状态图和部署图可以用来描述实体之间的关系,因此,其层次最高,完备性最低。 [单项选择题] 18、下列关于不同软件开发方法所使用的模型的描述中,正确的是() A.在进行结构化分析时,必须使用数据流图和软件结构图这两种模型 B.采用面向对象开发方法时,可以使用状态图和活动图对系统的动态行为进行建模 C.实体联系图(E-R图)是在数据库逻辑结构设计时才开始创建的模型 D.UML的活动图与程序流程图的表达能力等价 参考答案: B 参考解析: 结构化分析方法是一种面向数据流的需求分析方法,其基本思想是自顶向下逐层分解。 数据流图是进行结构化分析时所使用的模型,其基本成分包括数据流、加工、数据存储和外部实体。 在进行结构化设计时,通过对数据流图进行变换分析和事务分析可以导出程序结构图。 数据库设计可以分为4个主要阶段: ①用户需求分析。 数据库设计人员采用一定的辅助工具对应用对象的功能、性能、限制等要求所进行的科学分析。 ②概念设计。 概念结构设计是对信息分析和定义,如视图模型化、视图分析和汇总。 对应用对象精确地抽象、概括而形成的独立于计算机系统的企业信息模型。 描述概念模型的较理想的工具是E-R图。 ③逻辑设计。 将抽象的概念模型转化为与选用的DBMS产品所支持的数据模型相符合的逻辑模型,它是物理设计的基础。 包括模式初始设计、子模式设计、应用程序设计、模式评价及模式求精。 ④物理设计。 逻辑模型在计算机中的具体实现方案。 UML是面向对象软件的标准化建模语言,其中状态图、活动图、顺序图和通信图可以用来对系统的动态行为进行建模。 活动图展现了在系统内从一个活动到另一个活动的流程。 活动图强调对象之间的控制流程。 在活动图上可以表示分支和汇合。 活动图与传统的程序流程图是不等价的。 [单项选择题] 19、()是一个独立可交付的功能单元,外界通过接口访问其提供的服务。 A.面向对象系统中的对象(Object) B.模块化程序设计中的子程序(SubroutinE) C.基于构件开发中的构件(Component) D.系统模型中的包(PackagE) 参考答案: C 参考解析: 在基于构件的开发中,构件包含并扩展了模块化程序设计中子程序、面向对象系统中对象或类和系统模型中包的思想,它是系统设计、实现和维护的基础。 构件定义为通过接口访问服务的一个独立可交付的功能单元。 平时我们所看到的DLL文件就是封装好的构件。 [单项选择题] 20、系统输入设计中,采用内部控制方式以确保输入系统数据的有效性,()用于验证数据是否位于合法的取值范围。 A.数据类型检查 B.自检位 C.域检查 D.格式检查 参考答案: C 参考解析: 系统输入设计中,通常通过内部控制的方式验证输入数据的有效性。 数据类型检查确保输入了正确的数据类型;自检位用于对主关键字进行基于校验位的检查;域检查用于验证数据是否位于合法的取值范围: 格式检查按照已知的数据格式对照检查输入数据的格式。 [单项选择题] 21、博学公司欲开发一个在线交易系统。 为了能够精确表达用户与系统的复杂交互过程,应该采用UML的()进行交互过程建模。 A.类图 B.顺序图 C.部署图 D.对象图 参考答案: B 参考解析: 显然,为了能够精确表达用户与系统的复杂交互过程,应该使用交互图。 在UML中,交互图包括顺序图、通信图、定时图和交互概览图。 顺序图强调消息的时间次序,通信图强调消息流经的数据结构,定时图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 开发 基础知识 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)