(计算机软件与理论专业论文)web应用逆向工程研究.pdf_第1页
(计算机软件与理论专业论文)web应用逆向工程研究.pdf_第2页
(计算机软件与理论专业论文)web应用逆向工程研究.pdf_第3页
(计算机软件与理论专业论文)web应用逆向工程研究.pdf_第4页
(计算机软件与理论专业论文)web应用逆向工程研究.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机软件与理论专业论文)web应用逆向工程研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京邮电大学硕士研究生学位论文摘要 摘要 随着i n t e r n e t 的发展,越来越多的应用系统由传统的c s 结构转向b s 结构,通 过w e b 浏览器实现人机交互;随着w e b 应用系统的增多,对于w e b 应用的软件系统的维 护、再工程的需求也进一步加大,对于现有的w e b 应用进行逆向工程就是一个迫切需要。 本文分析了w e b 应用软件的特点、w e b 应用的正向工程模型以及软件逆向工程模型。 重点分析了w e b 应用的逆向工程,从三个方面分别进行详细的描述,并分别给出了实例。 文中提出的w e b 应用的逆向工程方法适用于分析站点的部署结构,网页的元素结构 以及基于任务的模型逆向。w e b 应用的逆向工程研究对于w e b 应用系统的维护有着很好 的指导意义,在软件工程领域有着较好的研究前景。 关键词:w e b 应用,逆向工程,再工程 壹室塑皇查兰堡主竺窒兰兰垡丝塞一j ! ! 羔一 a b s t r a c t w i t ht h eg r o w t ho fi m e m e t ,m o r ea n dm o r ea p p l i c a t i o n st u r nt ob sa r c h i t e c t u r ef r o m c sa r c h i t e c t u r e w i t ht h ei n c r e a s eo ft h ew e ba p p l i c a t i o n s ,t h er e q u e s to ft h em a i m e n a l l c e a n dt h er e e n g i n e e r i n go ft h ew e ba p p l i c a t i o nb e c o m em o r e t h en e e do fr e v e r s ee n g i n e e r i n g o f t h ew e b a p p l i c a t i o nb e c o m em o r ea n d m o r ei m p o r t a n t i nt h i sp a p e rw ea n a l y z et h ec h a r a c t e r i s t i co f w e ba p p l i c a t i o n 、t h em o d e lo fe n g i n e e ro f w e ba p p l i c a t i o na n dt h em o d e lo fr e v e r s ee n g i n e e r i n g t h e nw ea n a l y z e t h er e v e r s e e n g i n e e r i n go fw e ba p p l i c a t i o nm o s t l ya n dd e s c r i b ef r o mt h r e ef a c e t si nd e t a i la n dg i v ea n e x a m p l ef o re a c hf a c e t r e v e r s ee n g i n e e r i n gb a s e do nt h ew e b a p p l i c a t i o nd e s c r i b e di nt h i sp a p e r h a v eag o o d f u t u r ei nt h ed o m a i no fs o f t w a r e ,a n di t i sg o o dg u i d e l i n ef o rt h em a i n t i a no ft h ew e b a p p l i c a t i o n k e y w o r d s :w e b a p p l i c a t i o n ,r e v e r s ee n g i n e e r i n g ,r e e n g i n e e r i n g 1 1 南京邮电大学 硕士学位论文摘要 学科、专业:工学计算机软件与理论 研究方向: 网络环境下的软件开发技术 作 者:二旦堕级研究生王秀东指导教师陈慧南 题目:w e b 应用逆向工程研究 英文题目:r e v e r s ee n g i n e e r i n gb a s e do nt h ew e ba p p l i c a t i o n 主题词:w e b 应用逆向工程再工程 k e y w o r d s :w e ba p p l i c a t i o n r e v e r s ee n g i n e e r i n g r e e n g i n e e r i n g 南京邮电大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的 地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包 含为获得南京邮电大学或其它教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了 明确的说明并表示了谢意。 研究生签名:曼纽日期:2 型望竺! 哆矿 南京邮电大学学位论文使用授权声明 南京邮电大学、中国科学技术信息研究所、国家图书馆有权保留 本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其 他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一 致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布 ( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权 南京邮电大学研究生部办理。 研究生签名:亘址导师签 ,f 鸶缪t 韧 日期:加饵( 尸奶口 - - - - - - - - - - - - - - 【- - - - :- 一 南京邮电大学硕士研究生学位论文 第一章引高 第一章引言 1 1 课题背景 随着i n t e r n e t 和i n t r a n e t e x t r a n e t 的快速增长,w e b 已经对商业、工业、银行、 财政、教育、政府以及我们的工作生活产生了巨大的影响。许多传统的信息和数据库系 统正在被移植到互联网上,电子商务的迅速发展,早已经超过了国界。范围广泛的、复 杂的分布式应用系统正在w e b 环境中出现。也就是说,人类社会已经进入了“w e b 时代”。 如今的w e b 应用程序越来越流行,基于b s 结构的软件也越来越多。w e b 的流行和 无所不在,是因为它能够提供支持所有类型内容连接的信息发布,容易为最终用户存取。 这也不难想象,正如s u n 公司总裁s c o t t 所说,“计算机就是网络”,随着互联网技术的 发展,知识在世界范围内得到充分的传播。i n t e r n e t i n t r a n e t 技术的日益发展,使得 企业的应用部门已经认识到i n t r a n e t 的优势,更使得基于w e b 的应用开发成为当前的热 点之一。 随着人们对于w e b 的应用越来越多,对于w e b 应用的软件系统进行维护、重构以及 再工程的需求就越来越显得重要了,例如,需求的改变或者进行移植都需要对现有的软 件系统进行更新。而重用和改造原有的系统的工作是非常复杂的,因此研究w e b 应用系 统软件的逆向工程就显得非常必要了。 1 2 研究现状 无论是在国内还是国外,对于软件系统的逆向工程的研究都已经有了十几年的时间 了,虽然已经形成了一定的研究规模,也发表了不少的研究文献,但是w e b 应用的软件 系统的逆向工程领域仍然是属于相当不成熟的领域。国外学者的大多数的研究工作侧重 于简单的代码分析。而且都采用最普遍的逆向工程的形式:即通过程序分析去抽取所需的 信息。而我国在对于w e b 应用系统软件的逆向工程研究方面基本处于空白状态。总之, 对于w e b 应用系统软件的逆向工程还处于未充分发展的状态,希望通过本文的研究,能 够为w e b 逆向工程的研究做一点探索。 南京邮电大学顺士研究生学位论文第二章w e b 应用的特点 第二章w e b 应用的特点 2 1w e b 应用软件的特点和与传统应用软件的区别 w e b 应用系统具有开发时间短、初始需求不明确等特点,与传统软件系统的主要区别 体现在一下几点: 1 、部分基于w e b 的系统强调的是信息的含量,是面向文档的,包含静态和动态网页。 传统软件工程强调的是系统功能的完善,除了系统帮助是一些文档以外,其他的几乎就 是一些数据交互功能,是面向功能的。 2 、基于w e b 的系统关注于视觉和感觉,强调感官舒服。虽然软件界面设计也渐渐纳 入了软件工程的研究领域,但与基于w e b 的应用系统相比,传统的软件界面是以“简单 为美”的原则,而基于w e b 的应用系统则在多种程度上与多媒体结合,强调颜色搭配、 动画飞扬。 3 、大多数基于w e b 的系统是内容驱动的,通常,基于w e b 的系统开发还包括内容提 交的开发:而传统的软件开发是功能驱动的或者是过程驱动的。 4 、用户形式的多样性。大多数基于w e b 的系统必须迎合具有不同技术和能力的用户, 复杂化的人机接口、用户界面和信息递交。而传统的软件系统的用户群体是基本可以圈 定在某个范围之内的,可以根据这个群体定制用户界面和人机接口。 5 、大多数基于w e b 的系统必须在短期内开发完成。所以,w e b 工程很难应用传统软 件工程中使用的形式化方法和测试技术。 6 、w e b 比通常意义上的软件开发使艺术、技术和科学在更大范围内结台。开发基于 w e b 的系统的人员在技能、知识方面比传统的软件开发所需要的更加广泛,人员类型更 多。 7 、w e b 系统的初始经常是不明确的,需要随着系统的开发逐渐清晰。其功能可能在 开发过程中随时发生变化。 虽然w e b 工程包含了程序设计和软件开发,且采用了一些软件工程的原理,但是,基 于w e b 的系统的开发与软件开发是不同的,同样,w e b 工程也不同于软件工程。传统的 软丌发过程和生命周期模型在开发w e b 应用方面存在不足。 软开发过程和生命周期模型在开发w e b 应用方面存在不足。 南京邮电大学硕士研究生学位论文 第二章w e b 应用的特点 2 2 传统的软件开发过程 传统的软件开发过程的主要组成部分是其开发周期模型。软件生存周期模型是软件 工程思想的具体化,是跨越软件生存周期的系统开发、运行、维护所实施的全部活动和 任务的过程框架。一个定义良好的软件生命周期模型,可以很好的指导我们的开发工作, 使开发工作易于控制。但是,如果生命周期模型定义不合理,却会制约我们的开发过程。 所以说选择一个适当的软件生命周期对于软件开发项目来说至关重要。 传统的典型的几种生命周期模型,包括瀑布模型、增量模型、演化模型和螺旋模型 等多种。在w e b 应用开发过程中,每种模型都有其不足之处。传统软件开发过程基本上 都是强调明确的系统需求,并作为后续开发的基础;需求、设计、实现、测试等各个阶 段划分明确,一个阶段是下一个阶段的基础;很长时间用户才能看到工作结果;不鼓励 开发中间的需求变更或者设计调整。这些特性不符合w e b 应用开发的初始需求不明晰、 快速开发、特性经常变化等特点。 下面,分别介绍几种传统的软件开发过程模型及其不足之处。 2 2 1 瀑布模型 图2 一l 瀑布模型 顾名思义,瀑布模型就是像瀑布一样,见图2 一l 。这是一个最传统的生命周期模型, 是一种顺序的模型,自顶而下把一个软件开发过程分为:可行性分析、需求分析、设计、 - 3 堕塞塑皇奎兰堡主堕塑竺兰堡笙苎;兰三至! ! ! 堡旦堕竺生 编码、测试和维护等阶段。在开发过程中这些阶段顺序进行,就像一个飞流直下的瀑布, 因此称为瀑布模型“1 。 瀑布模型的优点是可以清楚的标识出了软件开发的阶段。它采用自顶而下逐步求精 的方式把整个开发过程分成不同的阶段,每个阶段的工作都很明确,因此便于控制开发 过程。当所有的阶段都完成之后,该软件的开发过程也随之结束。 在w e b 应用开发方面,瀑布模型的缺点正是它自身的顺序性所导致的。在实际的w e b 应用程序的开发过程中,在需求阶段很难把用户的需求完全明确下来,因此,当需求变 更时将会导致阶段反复,而起都要重复需求、设计、编码、测试等过程。瀑布模型有在 过程能力上有天生的缺陷,不好处理开发过程中所发生的变化,这不适合w e b 应用的演 化模式。 2 2 2 增量模型 增量模型融合了线性顺序模型( 瀑布模型) 的基本成分和原型模型的迭代特征( 见 图2 2 ) 。整个产品的构建是按递增方式不断向前,每一步都是在前一步的基础之上又加 了一步,直到完成。产品作为一系列的构件来设计、实现、继承和测试,每一个这样的 线性序列产生软件的一个可发布的“增量”。即,一个新的构件被编码,然后并入一个软 件体系结构中,并把该结构作为一个整体进行测试。这个过程直到产品达到目标功能, 也就是产品满足了它的规格说明时才会终止。 增量l i 增量n 固一回堑丑d 巫丑圊 图2 2 增量模型 当使用增量模型时,第一个增量往往是核心产品,即实现了基本需求,但很多补充 的特性( 其中一些是已知的,另外一些是未知的) 还没有发布。核心产品交用户使用( 或 者进行更详细的复审) ,使用和评估的结果是下一个增量的开发计划。该计划包括对核心 产品的修改,使其能更好地满足用户的需要,并发布一些新增的特点和功能。这个过程 在每一个构件发布后不断重复,知道产生最终产品。 增量模型的优点: 4 南京邮电大学硕士研究生学位论文第二章w e b 应用的特点 在生命周期的早期应用原型开发,有利于用户反馈信息。 开发过程具有反复迭代的特性,可以在当前拟发布的增量中暂不考虑将要精练或 者新增的功能,因而客户可以较早地获取子集的可运行产品。这样,从第一个构 件交付后开始,客户就能做有用的工作。 根据预先定义的项目结束的标志,开发人员可以估算出比较准确的费用和项目的 完成时间。 增量模型在w e b 应用方面的不足: w e b 应用系统比较强调关联和易用。而增量模型最初没有总体设计,各个分块设 计最终可能无法很好的组合在一起。 产品分解成的构件过多,则构件装配耗时较多;分解较少,则失去了增量开发的 本来意义。 需要一个开放式的体系结构,且设计必须是开放的,增加了设计的难度。而对 w e b 应用来说,需求和设计的时间可能是非常短暂的。 2 2 3 螺旋模型 螺旋模型基本的做法是在“瀑布模型”的每一个开发阶段之前,引入非常严格的风 险识别、风险分析和风险控制。知道采取了消除风险的措施之后,才开始计划下一个阶 段的开发工作。否则,项目就很可能被取消。 二砺 风险分析t 瓣v 梢慊厨l 陋 懿鼍弋 岬爆 垂莎唯鐾型= ! 酆矧罗 , 实现| 躺l ;剥么工程 军擎擎 图2 - 3 螺旋模型 5 - 堕塞堕皂查兰堡主旦壅圭兰些堡塞苎三兰! 堡垒堕旦塑堑生 螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的风险分析 ( 见图2 - 3 ) 螺旋模型沿着“戴明循环法”的循环螺旋线旋转,沿螺线自内向外,每旋 转一圈便开发出更为完善的一个新的软件版本。 在开发w e b 应用方面,螺旋模型同样存在缺点: 模型引入了非常严格的风险识别,风险分析和风险控制,这对风险管理的技能水 平提出了很高的要求。 该模型需要较多人员、资金和时间的投入; 要求用户参与阶段评价,对用户来说比较困难,不易取得好的效果。 2 2 4 其它模型 2 2 4 1r u p 模型 r u p 是r a t i o n a lu n i t e dp r o c e s s ( r a t i o n a l 统一软件过程) 的简称。r u p 可以用 二维坐标来描述( 见图2 4 ) 。横轴通过时间组织,是过程展开的生命周期特征,体现开 发过程的动态结构,用来描述它的术语主要包括周期( c y c l e ) 、阶段( p h a s e ) 、迭代 ( i t e r a t i o n ) 和里程碑( m i l e s t o n e ) ;纵轴以内容来组织,为自然的逻辑活动,体现开 发过程的静态结构,用来描述它的术语主要包括活动( a c t i v i t y ) 、产物( a r t i f a c t ) 、 工作者( w o r k e r ) 和工作流( w o r k f l o w ) 。 0 r g a n i z a t j o n a l o n gc o n t e n t : o r g a n i z a t i o na l o n ga m e p h i 0 c e s ;sw o r k f l o w si 1 3 c e 叶i or l c o n s 自 u 耐i o nt r a 瞄i t i o n n e 0 ;mo d e l m l 3 uj r e n 臀l _ i 【s 。瓣蕊释溉g s 【s d e s l a n藤翼瓣# 瓣g 黧黪嚣 e 脚n t a t i o n ? 一 一。一j d 穗 l o v m e n t瞳癌瞳隧黯 ;u p p o r t i n gw o r k f l o f i g u r 日t i o n c h a n g em n n 哪 秣粼 e c tm a n a a p r n pn f p e i i m - a 豁i 材 豁i 。n br , i 。r t 。ri t 口廿。- 图2 4r u p 模型 r u p 中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段 ( i n c e p t i o n ) 、细化阶段( e l a b o r a t i o n ) 、构造阶段( c o n s t r u c t i o n ) 和交付阶段 南京邮电火学硕士研究生学位论文第二章w e b 应用的特点 ( t r a n s i t i o n ) 。每个阶段结束于一个主要的里程碑( m a j o rm i l e s t o n e s ) ;每个阶段本 质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的 目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。 r u p 具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件 的体系结构、可视化软件建模、验证软件质量以及控制软件变更等方面,针对所有关键 的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享 相同的知识基础。它简历了简洁和清晰的过程结构,为开发过程提供了较大的通用性。 r u p 在w e b 应用的不足之处包括:r u p 就像是一个软件工程思想和方法的大百科全 书,精密的控制,所以r u p 比较胜任于超大型的项目开发,适合大企业、大项目,因为 大的团队往往需要法制。对以w e b 应用为主的许多中小型项目,该过程过于复杂而难以 掌握。 2 2 4 1x p 编程 极端编程( e x t r e m ep r o g r a m m i n g ,x p ) 提出了改进软件开发方法的四个要素:沟 通( c o m m u n i c a t i o n ) 、简单化( s i m p l i c i t y ) 、反馈( f e e d b a c k ) 、勇气( c o u r a g e ) 。这 形成了x p 的核心价值观。在经历了数年的发展,x p 在软件开发的各方面都发展出了众 多的方法来支持软件开发n 1 。 x p 强调团队的充分交流,最大限度的发挥人的创造力。它并不制定大量的规则来限 制人的行动( 必要的规范是必须遵守的) ,开发团队中的每一个人都能自由的发挥想象力。 x p 适合于小团队,比较能够发挥小团队的创造力。 x p 编程的缺点:在显示中,由于x p 没有固定的模式,自由度较大,应用于目前的 中国软件企业有一定的难度,应用范围不大。 2 3w e b 应用需要新的软件工程模型 随着网络技术和i n t e r n e t 的迅速发展,大量系统都是基于w w w 的。这些系统的开 发、维护的管理需要新的方法,这些方法有别于传统的软件工程方法。因此需要新的软 件工程方法和技术应用到基于w e b 的系统开发中。 当企业向w e b 应用开发技术转向时,支持软件开发的活动也必须要有所改变,即意 味要改变开发过程、资源和组织结构。w e b 应用开发需要新的、符合其特点的软件工程 过程。 南京邮电大学硕士研究生学位论文 第三章w e b 应用正向工程 第三章w e b 应用正向工程 3 1w e b 应用工程过程模型思想及其组成 目前,w e b 应用的设计和开发进入了需要强调流程和分工的时代,建立规范的、有 效的、健壮的开发机制,运用符合w e b 应用特点的开发过程模型,才能适应用户不断变 化的需要,达到预期的计划目标。本章结合w e b 应用的特点,在传统的软件开发模型基 础上,分析研究了w e b 应用的软件开发模型。 3 1 1w e b 应用工程过程模型思想 w e b 应用的开发模型所遵循的基本思想: i 、面向对象思想 面向对象的方法从问题模型开始,然后就是识别对象、不断细化的过程。在分析和 设计、开发和测试过程中,必须遵循面向对象的原则和软件构建过程。 2 、迭代开发思路 面向对象的w e b 应用从本质上就是迭代的和渐增的。反馈环路是必需的标准结构。 开发过就是一次次的迭代反复过程。随着迭代的进行,系统的功能不断完善。传统的开 发模式中在分析、设计和编码等各个阶段之间的明显界限变得模糊,开发的重心从编码 向分析偏移,从功能为中心向数据为中心转变。 3 、快速原型法 w e b 应用最基本的特性就是其易用性和演化性,是高度人性化的系统。这是和传统 软件最大的区别。反映在开发中,就是要重视界面和可操作性,并提高到一个重要的高 度。提前开发原型就成了首要的选择。 4 、符合w e b 应用特点的项目管理方法 软件开发离不开项目管理,只有将开发过程和项目管理过程结合起来,才能增进工 程过程的可控性和规范性,约束工程范围和进展,提高工程结果的可用性。w e b 应用的 项目管理更加重视人的组织和管理,重视分析和设计等前期工作,重视迭代过程的交付 和平衡。 南京邮电大学硕士研究生学位论文第三章w e b 应用正向工程 3 1 2w e b 应用工程过程组成 w e b 应用工程组要包括开发过程模型、项目管理模型以及组织公共模型等组成部分。 开发过程模型主要介绍了开发的生命周期:项目管理过程结束了项目管理的基本流程、 项目管理方法的建立,可以打打地增加组织在项目管理方面不短成功的可能性:项目管 理过程贯穿软件开发过程地始终。 3 2 w e b 应用工程开发过程模型 w e b 应用工程开发过程模型是基于迭代思想,一次迭代包括了生产一个可以执行版本 地开发活动,还有使用这个版本所必需地其他辅助成分,如用户文档等。因此一个开发 迭代在某种意义上是在所有工作流中地一次完整地过程,这些工作流至少包括:需求、 分析和设计、实现、测试、发布等。详细结构如图3 - 1 所示。 南京邮电大学硕士研究生学位论文 第三章w e b 席用正向工程 开发人真 拜发过程 并发文档 如图3 - 1 w e b 工程开发生命周期模型图 模型的各部分描述如下: 3 2 1 w e b 工程人员组成 开发大型的基于w e b 的软件系统需要有一个具有不同技能、知识和能力的人组成的 团队可以把参加开发w e b 应用系统的人员分为七类,分别是w e b 项目管理人员、那容 提供人员、w e b 质量管理人员、w e b 开发人员、w e b 支持人员、w e b 管理人员、最终用户。 南京邮电大学硕士研究生学位论文 第三章w e b 应用正向工程 在每一个类别中,根据具体技能或者从事工种不同,又可以定义不同的子类别( 如: w e b 开发人员又可以分为系统分析员、程序设计员、美工人员等) 。一个人可以属于不止 一个类别,起到不同的作用( 如:最终用户也可以是内容提供人员和w e b 发布人员) l 、w e b 项目管理人员 w e b 管理人员一般是指开发组织的领导层人员,能够对是否开发w e b 应用系统起到 决策和管理的作用。 2 、内容提供人员 w e b 内容提供人员可以是开发组织内部人员,也可以是外部人员或者是最终用户。 如在合同型的w e b 应用系统的开发过程中,最终用户就是典型的内容提供人员。在通常 的网站系统中,内容提供人员也可以是网站维护和支持人员、普通的网站浏览人员和稿 件作者。 3 、w e b 质量管理人员 w e b 质量人员的职责是控制项目开发的质量,检查w e b 开发过程中的不符合质量规 范的地方,监督进行修改。 4 、w e b 程序开发人员 w e b 开发人员包括系统设计人员、程序设计人员、界面设计人员、测试人员等专业 技术人员。除了最简单的站点外,这类人员要有相当大的范围的技能,他们必须熟悉浏 览器n 务器( b s ) 的关系,用户需求,组织需求和软硬件资源的规格等等。 5 、w e b 支持人员 经过适当的培训后的w e b 支持人员能够从事一些技术支持工作,起作用包括更新、 维护w e b 应用系统。w e b 支持人员也需要一些站点发布的技能、数据库操作知识和存取 数据的方法。为了保证质量,控制站点超量操作,w e b 支持人员还需要做w e b 访问统计。 当然,w e b 支持人员也可以与w e b 开发人员和管理人员一起完成这个任务。 6 、w e b 管理员 w e b 管理源的作用是进行w e b 网络管理,涉及w e b 软硬件操作的技能、网络和通讯 技能。技术方面包括记录文件版本、数据库操作、安全和存取权限、通过c g i 程序或者 类似的扩展春进行服务器端操作。另外,w e b 管理员还需要具有与w e b 性能有关的相关 知识。 7 、最终用户 最终用户是w e b 应用系统的客户,他们使用带有浏览软件的计算机( 终端) ,代表 w e b 应用系统的入门级参与者。虽然处于基本层次的最终用户只需要会操作带有软件的 1 1 南京邮电丈学硕士研究生学位论文 第三章w e b 应用正向工程 计算机,但是有还有高级的操作需要学习,如导航技能,使用复杂的搜索引擎的技能 传送文件的技能等。 3 2 2w e b 需求分析 基于w e b 的应用系统的需求分析是很重要的活动,需求个系统而严密的方法。根 据w e b 特性和w e b 应用系统的特定需求,需求采用更为开放、灵活的需求分析方法。与 传统软件过程的分析不同,w e b 需求分析阶段不但要分析w e b 系统本身的功能和性能, 还要对可能的用户全体进行分析和调查,并根据分析结果制作生成模型。 1 、需求分析 主要任务就是通过对问题域的研究,产生一个外部可观察的行为规格说明书一 个完整、一致和可行的需求说明。这一阶段的关键是研究、理解和文档化问题,它应该 包括以下的活动: 识别类和对象即系统需要处理的现实世界事物。 识别结构即显示世界对象之间的关系。 定义属性即对象和某些结构中的数据单元。 定义服务即对象要完成的处理。 识别主题将所有的类按照逻辑分组,控制用户一次观看系统内容的多少。 2 、原型制作 为了在实际系统开发投入之前创建用户界面模型是非常重要的,开发原型的成本 远远低于实际开发的成本。在项目初期,传见完整的用户界面揭示和测试系统的所有功 能和可用性,并能够使客户代表参与讨论以及修改,可以大大提高项目的成功率。 创建正确可行的原型以后,系统分析、设计以及代码的编写都必须遵照原型进行, 确保构建的系统是正确的,测试人员和客户也能够在开发过程中即实时地参与检查,可 以有效地保障了项目的质量。 根据业务流程分析员所提供的流程分析逻辑图以及示意图,界面设计工程师开始设 计制作用户界面原型。目前这个阶段,对于界面设计人员来说还没有进入精细设计的阶 段,所以最重要地是将业务流程完整地表现出来,并和客户就设计风格、设计规范进行 确认和定义。 界面工程师在充分理解客户需求和所有地业务流程之后,利用合理的布局设计用户 界面。比如网站的首页风格、网页需要显示的各个元素,导航的分类和表现方法、各类 南京邮电大学硕士研究生学位论文 第三章w e b 应用正向_ _ 】:= 程 业务角色的人口等等。 在此需要注意的是,用户界面不仅仅是网站访问者所浏览的界面,也包括了特殊用 户、管理员、业务伙伴等不同的用户界面,甚至还有提示界面、警告界面、出错界面等 等,设计完整的用户界面原型不仅能够使客户以及测试人员更容易明确需求,也对项目 的质量起到了不可忽视的作用。 3 2 3w e b 设计 这一阶段从通过系统分析得到的软件需求规格说明书( 分析模型) 出发,形成软件 的具体设计方案的过程。它的主要目的是建立_ 种对正在开发系统将怎样工作的理解。 它确定具体的数据结构和算法,并且将他们封装成各种类,以便在下一阶段中进行编码 工作。该阶段对于提高软件质量和工作效率来讲非常关键。 w e b 设计不但包括功能设计和性能设计,还要包括页面风格设计,包括页面的主色 调、页面框架结构、文字颜色搭配、动画和图片的放置等等。有效的w e b 站点设计需要 注意可用性,要把基于w e b 的系统设计成易于导航、吸引人和有用的系统。设计原则和 设计步骤如下: 1 、设计原则 a 、要坚持“以客户为中心”和“客户尽早参与”的w e b 设计原则 有专家提出:开发人员应决定用户的组成,并让用户尽可能早地涉入,并提出了几 种熟悉用户、他们地任务以及需求的方法:与用户交谈;到办公地点拜访用户;观察用 户工作;将用户工作录像;了解工作组织;自我尝试;使用户在工作时边想边说:让用 户参与设计;在设计小组中包括专家级用户;执行任务分析;利用调查和问卷:制定可 测试的目标在有可能地情况,在需求和流程设计中努力做到精确、客观和细致,不但能 保证系统开发的质量和成熟度,也会得到用户高度地满意和信任,为今后更多地业务合 作打好基础。 b 、面向对象( o o ) 原则 随着软件技术,尤其时面向对象技术地发展,软件工程提出了以下新的思想方法和 设计原则: 抽象:抽取事物最基本的特性和行为。忽略非基本的细节。采用分层次抽象,自 顶向下、逐层细化的方法来控制软件开发过程的复杂性。 信息隐蔽:将模块实际成“黑箱”,实现的细节隐藏在模块内部,不让模块的使 南京邮电大学硕士研究生学位论文 第三章w e b 应用正向工程 用者直接访问,使用与实现分离的原则。 模块化:通过对象、类等模块化手段实现信息隐蔽和抽象,标识复杂的系统。 局部化:在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块之间具 有松散的耦合,模块内部具有较强的内聚。 确定性:软件开发过程中所有概念的表达应是确定的、规范的、无歧义的。 一致性:整个软件系统的各个模块应使用一致的概念、符号和术语。 完备性:软件系统不丢失任何重要成分,可以完全实现系统所要求功能的程度。 为了保证系统的完备性,在软件过程中需要严格的技术评审。 可验证性;开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵 循系统易于检查、测试、评审的原则,以确保系统的正确性。 2 、设计步骤 a 、系统模型设计 在确认了客户的初步需求以后,业务人员应该进行项目模型的设计描述。 首先,要定义下词汇表,并非每个客户或者项目小组成员都能够明白“用户”、“角 色”、“用例”之间的差别,也不见得都能很好地理解“通道”、“前台”、“后台”到底是什 么含义,为了让项目模型文档使每个浏览者正确地理解,定义词汇表是非常必要的。 模型描述采用最自然地语言进行,这份文档是对需求分析报告的进一步描述。使得 客户代表、项目经理、开发人员对即将展开的项目通过项目模型的描述产生最直观的印 象,并对关键的问题进行讨论并达成统一认识,比如功能要求、性能指标、运行环境、 投资规模等等。 b 、业务流程分析员进行流程设计 业务流程分析员的人员应该善于简化工作,担任此角色的人员中必须要有具备广博 的专业领域知识,并且具有良好的沟通技巧。 业务分析人员重点需要协助客户将需求进行归纳分析,查找出来所有的业务主角, 确定业务主角后,每个主角的相关活动以及流程应清晰地制定出来,最终设计出逻辑视 图、用户界面示意图。比如一个电子商店系统,除了系统管理员、业务经理、业务员、 物流配送员、客户服务人员等角色外,可能还存在外部协作单位的不同角色,比如供应 商、分销商、广告客户,还有购买用户,甚至还有普通用户、v i p 用户等等,每一类角 色参与系统活动的人口和流程都有所不同,通过逻辑图和示意图。业务流程分析员将系 统的机构简要明确地进行描述。 在进行业务流程设计,需要注意一下事项;调查用户网络环境和配置,使架构设计 1 4 南京邮电大学硕士研究生学位论文第三章w e b 应用正向工程 师能够制定合理可行的系统架构;调查用户偏好和技能水平,这将直接影响到项目开发 的深度和用户界面的设计;“虽然开发人员和管理人员很容易自认为他们了解用户需求, 但实际情况却不是这样。人们往往关注于用户应该如何去执行任务,而不是用户喜欢如 何去执行。多少情况下,偏好还要由经验、能力和使用环境决定。”预测并制定系统的性 能指标,为测试人员编写测试计划提供依据。许多项目设计中比较重视功能的实现,测 试阶段看似满足了客户的需求,但一旦投入使用的时候,便又会发现性能上的问题。客 户由于对专业知识的了解程度有限,也往往忽略,因此,为了避免日后的麻烦,事先预 测并制定性能指标是非常重要的。 3 2 4w e b 实现 w e b 实现过程包括后台数据库程序的开发、页面程序的编写和所有网页的制作。在 设计阶段决定的w e b 框架基础上,进行具体的页面设计和制作。把内容提供人员的内容 连接到具体的页面。 一个w e b 工程过程必须包含多种类型的开发人员,要保证这些人员都能很好地理 解自己在项目开发中的作用和职责,当有重叠发生时,应该要整个项目角度找到理解方 法。 在实现阶段,还要进行w e b 应用单元测试。传统的单元测试的对象是软件设计的 最小单位模块。单元测试的依据是详细设计描述,单元测试应对模块内所有重要的 控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,系 统内多个模块可以并行地进行测试。 当考虑面向对象w e b 应用软件时,单元的概念发生了变化。封装驱动了类和对象 的定义,这意味着每个类和类的实例( 对象) 包装了属性( 数据) 和操纵这些数据的操 作,而不是个体的模块。最小的可测试单位是封装的类或者对象,类包含组不同的操 作,并且某特殊操作可能作为一组不同类的一部分存在,因此,单元测试的意义发生了 较大变化。我们不需要孤立地测试单个操作,而是将操作作为类的一部分。 3 2 5w e b 测试 在w e b 工程过程中,基于w e b 系统的测试、确认和验收是一项重要而富有挑战性 的工作。基于w e b 的应用系统的测试与传统的软件测试不同,不但需要检查和验证是否 按照设计的要求运行,而且还要评价系统在不同用户的浏览器的显示是否合适。重要的 南京邮电大学硕士研究生学位论文 第三章w e b 应用正向工程 是,还要从最终用户的角度进行安全性和可用性测试。因此,我们必须为测试和评估复 杂的基于w e b 的系统,研究新的方法和技术。 基于w e b 的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件 测试提出了新的挑战。基于w e b 的提供测试不但需要检查和验证是否按照设计的要求运 行,而且还要评价系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终 用户的角度进行安全性和可用性测试。 一般软件的发布周期以月或者以年计算,而w e b 应用的发布周期以天计算甚至以 小时计算。w e b 测试人员必须处理更短的发布周期,测试人员和测试管理人员面临着从 测试传统的c s 结构和框架环境到测试快速改变的w e b 应用系统的转变。 w e b 测试主要包括功能、性能、可用性、客户端兼容性、安全性等方面,如图3 - 2 所示: 图3 - 2 w 曲测试内容 下面分别讨论基于w e b 的系统测试方法。 3 2 5 1 功能测试 功能测试主要测试w e b 应用的功能是否满足客户需求。其内容包括: 1 、链接测试:链接是w e b 应用系统的一个主要特性,它是在页面之间切换和指导 用户去一些不知道地址的页面的主要手段。链接测试可以分为三个方面。首先,测试所 有链接是否按指示的那样确定链接到了该链接的页面,所谓孤立页面是指没有链接指向 该页面,只有知道正确的u r l 地址才能访问。链接测试必须在集成测试阶段完成,也就 是说,在整个w e b 应用系统的所有页面开发完成之后进行链接测试。 2 、表单测试:当用户给w e b 应用系统管理员提交信心时,就需要使用表单操作, 1 6 南京邮电大学硕士研究生学位论文第三章w e b 应用正向工程 例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性, 以检验提交给服务器的信息的正确性。例如:用户填写的身份证号码和出生日期是否匹 配等等。 3 、c o o k i e s 测试:如果w e b 应用系统使用了c o o k i e s ,就必须检查c o o k i e s 是否能 正常工作。测试的内容可以包括c o o k i e s 是否起作用,是否按预定的时间进行保存,刷 新对c o o l d e s 有什么影响等。 4 、设计语言测试:w e b 设计语言版本的差异可以引起客户端或者服务器严重的问 题,例如使用那种版本的h t m l 等。当在分布式环境中开发时,开发人员都不再一起, 这个问题就更加重要了。除了h t m l 的版本问题外,不同的教本语言,例如j a v a 、 j a v a s c r i p t 、a c t i v e x 、v b s c f i p t 或者p e r l 等也要进行验证。 5 、数据库测试:使用了数据库的w 曲应用系统中,一般情况下,可能发生数据一 致性错误和输出错误这两种错误。数据一致性错误主要是由于用户提交的表单信息不正 确而造成的,而输出错误主要是由于网络速度或者程序问题等引起的。针对这两种情况, 可以分别进行测试。 3 2 5 2 性能测试 功能测试主要测试w e b 应用的功能是否满足客户需求。其内容包括: 1 、连接速度测试:用户连接到w e b 应用系统的速度根据上网方式的变化而变化, 他们可能是电话拨号,也许是宽带。当下载一个程序时,用户可以等较长时间,但如果 仅访问个页面就不能这样。如果w e b 系统响应时间太长,用户就会因没有耐心等待而 关闭。 2 、负载测试:负载测试是为了测试w e b 系统在某一负载级别上的性能,以保证w e b 系统在需求范围内能正常工作。负载级别可以是某个时间同时访问w e b 系统的用户数 量,也可以是在线数据处理的数量。 3 、压力测试:进行压力测试是指实际破坏一个w e b 应用系统,测试系统的反映。 压力测试是测试系统的限制和故障恢复能力,也就是测试w e b 应用系统会不会崩溃,在 什么情况下会崩溃。黑客常常提供错误的数据负载,知道w 曲应用系统崩溃,接着当系 统重新启动时获得存取权。压力测试的区域包括表单、登陆和其他信息传输页顽等。 3 2 5 3 可用性测试 可用性是指产品的易用程度。好的系统应该有好的可用性,对w e b 应用,这个方面 更加应该注意。 1 、导航测试:导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之 1 7 南京邮电大学硕士研究生学位论文 第三章w e b 应用正向工程 间,例如按钮、对话框、列表和窗口等。导航的一个重要方面是w e b 应用系统的页面结 构、导航、菜单、连接的风格是否一致。 2 、图形测试:图形测试的内容有:要保证图形有明确的用途,图片或者动画不要胡 乱堆在一起;验证所有页面字体的风格是否一致:背景颜色与字体颜色和前景颜色相搭 配。 3 、内容测试:内容测试用来检验w e b 应用系统提供信息的正确性、准确性和相关 性。信息的正确性是指信息是可靠性;信息的准确性是指是否有语法或者拼写上的错误; 信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或者入口。 4 、整体界面测试:整体界面是指整个w e b 应用系统的页面结构设计,是给用户的 一个整体感。堆整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般 w e b 应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。 3 2 5 4 客户端兼容性测试 客户端兼容性测试包括平台测试和浏览器测试两种。 1 、平台测试:目前操作系统繁多,常见的有w i n d o w s 、l i n u x 、u n i x 等。w e b 应用 系统的最终用户使用拿一种系统取决于用户。这样就要解决一个兼容性问题,同一个应 用可能会在不同的操作系统中出现不同的错误,因此,在w e b 系统发布前,需要在各种 操作系统下对w e b 系统进行平台测试。 2 、浏览器测试:浏览器是w e b 客户端的核心构件,各种不同浏览器对j a v a 、 j a v a s c r i p t 、a c t i v e x 或者不同的h t m l 规格有不同的支持。 3 2 5 5 安全性测试 随着w e b 应用的增多,其地位越来越重要,人们对w e b 应用的安全性也越来越重 视,所以需要进行安全性测试。 测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以不登陆直接浏 览某个页面等。 w e b 应用系统超时限制,就是,用户在登陆后在一定时间内没有点击任何页面, 应该要重新登陆。 日志文件测试,测试相关信息是否写迸了系统的日志文件中 服务器的脚本测试 南京邮电大学硕士研究生学位论文 第三章w e b 应用正向_ t 程 3 2 6w e b 发布与维护 w e b 发布阶段主要是把开发完成且经过初步测试的w e b 应用系统传送到w e b 站点上, 供用户浏览和使用。w e b 发布以后,以后可以根据使用情况,对应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论