《清华软件工程课件第12章-Web工程教案资料.ppt》由会员分享,可在线阅读,更多相关《清华软件工程课件第12章-Web工程教案资料.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、清华软件工程课件第12章-Web工程内容摘要内容摘要基于基于Web系统和应用的属性系统和应用的属性 Web工程过程工程过程 Web分析分析 Web设计设计 Web测试测试 12/13/20222/46软件工程软件工程内容摘要内容摘要基于基于Web系统和应用的属性系统和应用的属性 Web工程过程工程过程 Web分析分析 Web设计设计 Web测试测试 12/13/20223/46软件工程软件工程基于基于Web系统和应用的属性系统和应用的属性 Web工程工程不是软件工程的完全克隆,但是不是软件工程的完全克隆,但是它借用了软件工程的许多基本概念和原理,它借用了软件工程的许多基本概念和原理,强调了相同
2、的技术和管理活动强调了相同的技术和管理活动 WebApp:Web的系统和应用的系统和应用Web的系统和应用不同于其他类别的计算的系统和应用不同于其他类别的计算机软件机软件:基于:基于web的系统是的系统是“页面排版和页面排版和软件开发、市场和预算、内部交流和外部软件开发、市场和预算、内部交流和外部联系以及艺术和技术间联系以及艺术和技术间”综合作用的产物综合作用的产物12/13/20224/46软件工程软件工程基于基于Web系统和应用的属性系统和应用的属性绝大多数绝大多数WebApp中都要考虑下列属性中都要考虑下列属性 网络集约(network intensive)并发(Concurrency)
3、不可预测的登陆(Unpredictable load)性能(Performance)可用性(Availability)数据驱动(Data driven)内容敏感(content sensitive)持续演化(continuous evolution)12/13/20225/46软件工程软件工程基于基于Web系统和应用的属性系统和应用的属性WebApp的以下特征驱动了持续演化的过程的以下特征驱动了持续演化的过程即时性 开发者必须想一些办法来做计划、分析、设计、编码、测开发者必须想一些办法来做计划、分析、设计、编码、测试,以适应试,以适应WebApp开发时间紧的要求开发时间紧的要求 安全性 在整个
4、支持某在整个支持某WebApp的基础设施和应用本身内部必须实的基础设施和应用本身内部必须实现强的安全措施现强的安全措施 美学一个一个WebApp的吸引力的一个不可否认的部分是其观感的吸引力的一个不可否认的部分是其观感 12/13/20226/46软件工程软件工程基于基于Web系统和应用的属性系统和应用的属性在在Web工程中,下面的应用类别是最常工程中,下面的应用类别是最常遇到的遇到的信息型:使用简单的导航和链接提供只读的内容。下载型:用户从合适的服务器下载信息。可定制型:用户定制内容以满足特定需要。交互型:一个用户群落通过聊天室、公告牌或即时消息传递来通信。12/13/20227/46软件工程
5、软件工程基于基于Web系统和应用的属性系统和应用的属性用户输入型:基于表格的输入是满足通信需要的主要机制。面向事务型:用户提交一个由WebApp完成的请求(如下订单)。面向服务型:应用向用户提供服务(如帮助用户确定抵押支付)。门户型:应用引导用户到在本门户应用范围之外的其他内容或服务。数据库访问型:用户查询某大型数据库并提取信息。数据仓库型:用户查询一组大型数据库并提取信息。12/13/20228/46软件工程软件工程内容摘要内容摘要基于基于Web系统和应用的属性系统和应用的属性 Web工程过程工程过程 Web分析分析 Web设计设计 Web测试测试 12/13/20229/46软件工程软件工
6、程Web 工程过程 WebApp的开发具有如下特点:的开发具有如下特点:WebApp常常以增量的方式去开发变化经常发生期限较短因此整个因此整个Web工程过程也与这些特点相适工程过程也与这些特点相适应。应。12/13/202210/46软件工程软件工程Web 工程过程过程框架整个整个Web工程过程框架包括:工程过程框架包括:客户交流计划建模构建部署12/13/202211/46软件工程软件工程Web 工程过程过程框架客户交流在Web工程过程中,客户交流以两个主要的任务为主要特点;商业分析和规划。商业分析为WebApp定义了商业/组织背景,预测商业环境或需求中的潜在变化,定义WebApp和其他商业
7、应用程序、数据库及功能的整合。规划是一个收集包括所有参与者信息的需求。另外,尽量去找出那些不确定的区域及哪里将会出现一些潜在的变化12/13/202212/46软件工程软件工程Web 工程过程过程框架计划作出WebApp增量式项目计划。这个计划由一个任务定义和一个时间表组成(常常数周之内)。在这一时期内,要做出WebApp的开发计划建模常见的软件工程和设计的任务要和WebApp开发相适应、相融合、然后并入WebApp建模活动中去 12/13/202213/46软件工程软件工程Web 工程过程过程框架构建使用Web工具和技术去构建已被建模的WebApp。一旦构建了WebApp,就会使用一系列快速
8、测试去暴露出设计中的错误部署把WebApp配置成适合于它所运行的环境,并把它发送给终端用户。而后就开始进入评估阶段了。最后把评估反馈给Web工程团队 12/13/202214/46软件工程软件工程Web 工程过程改善框架工程过程改善框架改善框架改善框架Web工程过程模型必须具有一定的适应性。一些情况下,一个框架活动会非正式地实施。其他的时候,一系列不同的任务将会被定义并被团队成员去执行。每种情况中,团队有责任在分配好的时间内完成高质量的WebApp增量。需要着重指出的是和Web工程框架活动相关联的一些任务可以被修改、消除、或基于问题、产品、工程及Web工程团队人员的特征进行扩展。12/13/2
9、02215/46软件工程软件工程Web工程中有用的规则工程中有用的规则 如果去做一些企业级的如果去做一些企业级的WebApp,下面的,下面的一些基本的规则应比较适用一些基本的规则应比较适用即使WebApp的细节是模糊的,也要花一些时间去理解商业需求和产品目标 用基于用况的方法去描述用户如何与WebApp交互 项目计划和跟踪项目计划和跟踪去指导分析和设计模型去指导分析和设计模型作为测试设计的重要基础作为测试设计的重要基础 12/13/202216/46软件工程软件工程Web工程中有用的规则工程中有用的规则做一个项目计划,即便很简短 花些时间去建模要做的东西 考察模型的一致性和质量 使用一些能使你
10、去构建带有尽可能多可重用组建的系统的工具和技术 设计一些综合性的测试,并在系统发布前执行它们 12/13/202217/46软件工程软件工程方法和工具方法和工具 Web工程方法包括一系列能适用工程方法包括一系列能适用Web工工程师理解、特征化、而后做出一个高质量程师理解、特征化、而后做出一个高质量WebApp的技术性任务。的技术性任务。Web工程方法一工程方法一般包括如下几种般包括如下几种交流方法交流方法:定义了能便于Web工程师和所有WebApp投资者(如:终端用户、商业客户、问题域专家、内容设计者、团队领导、项目经理)交流的方法 12/13/202218/46软件工程软件工程方法和工具方法
11、和工具需求分析方法需求分析方法:提供了理解被WebApp所传送内容的基础。了解提供给终端用户的功能,以及各类用户通过WebApp进行相互作用的模式。设计方法设计方法:包括一系列表现WebApp内容、应用和信息结构、界面设计及浏览结构的设计技术。测试方法测试方法:包括正式的对内容和设计的模式、及一系列包括构件级和结构问题、浏览测试、可用性测试、安全性测试和配置测试的技术评审 12/13/202219/46软件工程软件工程内容摘要内容摘要基于基于Web系统和应用的属性系统和应用的属性 Web工程过程工程过程 Web分析分析 Web设计设计 Web测试测试 12/13/202220/46软件工程软件
12、工程Web的分析类别的分析类别 Web工程的分析特点工程的分析特点内容分析交互分析功能分析配置分析导航关系分析12/13/202221/46软件工程软件工程Web的分析类别的分析类别内容分析内容分析:因为:因为Web工程以内容为基础,工程以内容为基础,所以需要对所以需要对Web工程的内容进行分析,其工程的内容进行分析,其中的内容包括工程中所有可见可听到的要中的内容包括工程中所有可见可听到的要素,通常包括文字、图形、图像、音频和素,通常包括文字、图形、图像、音频和视频视频交互分析交互分析:主要解决用户和系统之间的交:主要解决用户和系统之间的交互问题,分析时会用到下面四种单元:互问题,分析时会用到
13、下面四种单元:用用况图况图、顺序图顺序图、状态图状态图、用户界面原型用户界面原型 12/13/202222/46软件工程软件工程Web的分析类别的分析类别功能分析功能分析:与交互分析类似,交互分析主要涉:与交互分析类似,交互分析主要涉及及Web工程操作。用户可见的功能包括任何可工程操作。用户可见的功能包括任何可以直接由用户操作的功能以直接由用户操作的功能 配置分析配置分析:主要对工程所涉及的环境和基础设:主要对工程所涉及的环境和基础设施进行详细的描述,其中基础设施主要包括构施进行详细的描述,其中基础设施主要包括构件基础设施和数据库将被用于生成内容的程度件基础设施和数据库将被用于生成内容的程度
14、导航关系分析导航关系分析:主要分析各个页面之间的关系。:主要分析各个页面之间的关系。可以通过对用户的分析和对页面单元的分析来可以通过对用户的分析和对页面单元的分析来进行进行 12/13/202223/46软件工程软件工程分析元素分析元素 从分析元素来分,可以将从分析元素来分,可以将Web工程分为工程分为CRC卡片,用况图,及其它卡片,用况图,及其它UML图图CRC (class responsibility-collaborator,类-责任-协作者)卡片:提供了一种简单的标识和组织与系统或产品需求相关的类的手段 用况图:一个描述软件如何被用于给定情形的场景 其它UML图:UM是用于对象建模和
15、对象分析时使用的一种工具 12/13/202224/46软件工程软件工程内容摘要内容摘要基于基于Web系统和应用的属性系统和应用的属性 Web工程过程工程过程 Web分析分析 Web设计设计 Web测试测试 12/13/202225/46软件工程软件工程Web设计设计Web设计主要可分为设计主要可分为体系结构设计导航设计界面设计一个良好的一个良好的Web设计需要满足以下要求设计需要满足以下要求设计要尽可能的简单布局要尽可能的美观 整体的一致性 12/13/202226/46软件工程软件工程体系结构设计体系结构设计 体系结构主要体系结构主要线性结构网格结构层次结构 线性结构网格结构12/13/2
16、02227/46软件工程软件工程体系结构设计体系结构设计不同的体系结构比较不同的体系结构比较体系结构线性结构网格结构层次结构特点特点结结构比构比较较固定固定Web内容一内容一维维化化Web内容多内容多维维化化最常最常见见的的结结构构优优点点简单简单有极大的灵活有极大的灵活性性有有较较大的灵活大的灵活性性缺点缺点灵活性不高灵活性不高很容易很容易带带来混来混乱乱易混乱易混乱例子例子订单订单大型网站大型网站普通网站普通网站12/13/202228/46软件工程软件工程导航设计导航设计 导航设计,主要可以分为两部分导航设计,主要可以分为两部分可以对不同的用户权限给出不同的导航路径给同一类用户一个共同的
17、导航语义在导航设计时,需要为同一类用户建立一在导航设计时,需要为同一类用户建立一个语义导航单元,这样方便后继的管理。个语义导航单元,这样方便后继的管理。在导航设计时,需要考虑建立合适的导航在导航设计时,需要考虑建立合适的导航约定和帮助。约定和帮助。12/13/202229/46软件工程软件工程界面设计界面设计 Web工程中界面在用户心目中具有非常重工程中界面在用户心目中具有非常重要的地位。界面可以说是要的地位。界面可以说是Web工程给人的工程给人的第一印象,只有让用户对第一印象产生好第一印象,只有让用户对第一印象产生好感觉时,用户才有可能使用感觉时,用户才有可能使用WEB工程的工程的其它功能其
18、它功能导航和内容。导航和内容。所有的用户界面需要易使用,易操作,直所有的用户界面需要易使用,易操作,直观,一致。除此之外,界面还要求有助于观,一致。除此之外,界面还要求有助于用户浏览,界面需要显示用户当前所在的用户浏览,界面需要显示用户当前所在的网站或工程的路径。网站或工程的路径。12/13/202230/46软件工程软件工程界面设计界面设计Web界面设计要考虑的三个问题界面设计要考虑的三个问题:浏览者目前的位置浏览者目前可以进行的操作浏览者可以导向的目标12/13/202231/46软件工程软件工程界面设计界面设计Google简洁的界面简洁的界面12/13/202232/46软件工程软件工程
19、界面设计界面设计WEB工程自己的设计原则工程自己的设计原则页面速度 页面正确 所有的菜单和界面的风格应该统一 链接指示应明显 界面功能明显清晰 通常都需要使用表格等工具 12/13/202233/46软件工程软件工程构件级设计构件级设计 Web应用程序逐渐形成变得模板化,功能应用程序逐渐形成变得模板化,功能化。这种处理功能主要包括化。这种处理功能主要包括数据库查询以及其它操作与外部企业系统的数据接口用户的注册和认证Web工程师必须设计和构建一些程序构件,工程师必须设计和构建一些程序构件,它们和普通软件在形式上是一致的。利用它们和普通软件在形式上是一致的。利用构件技术,可以很方便地组建各种不同的
20、构件技术,可以很方便地组建各种不同的Web应用程序。应用程序。12/13/202234/46软件工程软件工程构件级设计构件级设计理想的构件模型理想的构件模型 界面构件逻辑构件数据库构件网络构件用户管理构件并发处理构件12/13/202235/46软件工程软件工程内容摘要内容摘要基于基于Web系统和应用的属性系统和应用的属性 Web工程过程工程过程 Web分析分析 Web设计设计 Web测试测试 12/13/202236/46软件工程软件工程质量评判标准质量评判标准 通常采用下面的一些原则来测试和评价通常采用下面的一些原则来测试和评价WebApp的质量的质量内容可以从句法和语义两个层次来评价 功
21、能测试可以发现不符合用户需求的错误 结构评估是为了确保它恰当地展现了WebApp的内容和功能,确保它是可扩展的,确保能支持新的内容或功能 易用性测试是为了确保每个不同的用户群能被WebApp界面支持,能学会并运用所有需要的导航用法和意义 12/13/202237/46软件工程软件工程质量评判标准质量评判标准导航测试是为了确保所有的导航用法和意义都被实现以便发现导航错误 性能测试必须在各种各样的操作条件、配置和负载下进行,确保系统能响应用户的交互操作,能在可接受的性能下降的条件下处理极端的负载量 兼容性测试就是在客户机和服务器上设定不同的配置条件下执行WebApp 协同工作测试是为了确保WebA
22、pp能很好地与其他的应用程序和数据库交互 12/13/202238/46软件工程软件工程质量评判标准质量评判标准安全性测试就是评估潜在的易攻击性,任何一个成功的入侵都认为是安全方面的失败 12/13/202239/46软件工程软件工程在在WebApp环境下出现的错误环境下出现的错误 WebApp测试中的独特的错误特征测试中的独特的错误特征 WebApp测试发现的错误一开始都是显现在客户端(如,某个浏览器或PDA或手机),所以web工程师看到的只是问题的表象,而不是其实质 一个WebApp运行在许多不同的配置条件及各种各样的环境下,所以脱离某个错误最初产生时的环境,重现这个错误是很困难甚至是不可
23、能的 12/13/202240/46软件工程软件工程在在WebApp环境下出现的错误环境下出现的错误然一些错误是由于错误的设计和不恰当HTML(或其他的程序语言)编码所导致,但许多错误都与WebApp的配置有关 因为WebApp是一个客户机/服务器的结构,所以很难横跨客户端、服务器和网络这三层来分析错误产生的原因。一些错误是因固有的操作环境所致(如,正在进行测试的某个特殊的配置),另一些可归咎于多变的操作环境(如,瞬间的资源装载或者与时间相关的错误)12/13/202241/46软件工程软件工程测试策略测试策略 广泛采用广泛采用WebApp测试策略测试策略重新审查WebApp内容模型,发现可能
24、的错误。重新审查接口模型,确保能适应所有的使用条件。重新审查设计模型,发现可能的链接错误。测试用户界面,发现在显示和导航机制方面可能的错误。对选出的功能构件做单元测试。12/13/202242/46软件工程软件工程测试策略测试策略WebApp导航需要测试。WebApp在不同的环境配置下运行,因此需要对每个配置进行兼容性测试。安全性测试是为了发现在WebApp或它的应用环境中会遭人攻击的漏洞。性能需要测试。WebApp测试需要一群故意安排的终端用户的参与;他们使用系统的结果可以用来分析内容和导航方面的错误、易用性和兼容性、可靠性和性能。12/13/202243/46软件工程软件工程习题习题选择一
25、个你熟悉的站点选择一个你熟悉的站点,为该站点开发一为该站点开发一个相对完全的体系结构设计。并指出这个相对完全的体系结构设计。并指出这个站点采用了什么体系结构。个站点采用了什么体系结构。用一个实际的用一个实际的web站点作为例子,评价站点作为例子,评价其用户界面并给出改进建议。其用户界面并给出改进建议。内容分析和功能分析有何区别?内容分析和功能分析有何区别?你如何判断一个网站的质量,请列出你如何判断一个网站的质量,请列出10个你认为最重要的质量属性的排序表。个你认为最重要的质量属性的排序表。12/13/202244/46软件工程软件工程习题习题用一个实际的站点作为例子,列出用一个实际的站点作为例
26、子,列出web站点内站点内容的不同表示。容的不同表示。针对某一网站,给出一组用户描述以及开发一针对某一网站,给出一组用户描述以及开发一组组use-case。建议三条将帮助指导建议三条将帮助指导web工程设计的工程设计的“黄金规黄金规则则”。描述基于描述基于web的系统和应用的项目管理与传统的系统和应用的项目管理与传统软件的项目管理如何不同,又如何相似?软件的项目管理如何不同,又如何相似?总结当前总结当前web应用设计模式的状况。应用设计模式的状况。12/13/202245/46软件工程软件工程此课件下载可自行编辑修改,仅供参考!此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢感谢您的支持,我们努力做得更好!谢谢