
软件开发环境.ppt
133页School of Computer & Information 软件开发环境软件开发环境主讲人主讲人: : 邵邵 堃堃School of Computer & Information 软件开发环境讲授内容:软件开发环境讲授内容: 软件开发环境重点教授面向软件开发过程的各类软件软件开发环境重点教授面向软件开发过程的各类软件开发工具和使用方法开发工具和使用方法 讲述重点:讲述重点:1.了解软件工程中方法,工具和过程之间的基本概念,及了解软件工程中方法,工具和过程之间的基本概念,及其相互关系(讲述为主);其相互关系(讲述为主);2.了解当前的主要软件开发方法,结构化开发、面向对象了解当前的主要软件开发方法,结构化开发、面向对象开发、面向方面开发和面向组件的开发等(学生自己开发、面向方面开发和面向组件的开发等(学生自己查找资料,然后做报告);查找资料,然后做报告);School of Computer & Information 软件开发环境讲授内容:软件开发环境讲授内容: 3.了解针对这些开发方法的主要工具软件(学生自己查找了解针对这些开发方法的主要工具软件(学生自己查找资料,然后做报告),重点介绍面向对象开发方法资料,然后做报告),重点介绍面向对象开发方法UML,及其开发工具,及其开发工具Rational Rose(讲述为主讲述为主)。
软件软件开发工具、软件测试工具和软件开发过程项目管理工开发工具、软件测试工具和软件开发过程项目管理工具;具;School of Computer & Information 软件开发环境的背景软件开发环境的背景l软件工程化的背景;软件工程化的背景;l软件规模化的背景;软件规模化的背景;l软件产业化的背景;软件产业化的背景;School of Computer & Information 软件开发环境的定义l软件开发环境软件开发环境(Software Development Environment)是指在基本硬件和宿至软件的是指在基本硬件和宿至软件的基础上,为支持系统软件和应用软件的工程化基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称开发和维护而使用的一组软件,简称SDEl它由软件工具和环境集成机制构成,前者用以它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及治理提供统为工具集成和软件的开发、维护及治理提供统一的支持一的支持 School of Computer & Information 软件开发环境中各类元素之间的关系Software Engineeringa “quality” focusa “quality” focusprocess modelprocess modelmethodsmethodstoolstools注:软件工程的三个基本要素:方法、工具和过程过程:规定了完成各项任务的过程;方法:完成软件开发的各项任务的技术方法;工具:软件工程的支撑环境; School of Computer & Information 软件开发环境的分类-按开发模型和开发方法分 支持支持瀑布模型瀑布模型、、演化模型演化模型、、螺旋模型螺旋模型、、喷泉模型喷泉模型以及以及结构化方法结构化方法、、信息模型方信息模型方法法、、面向对象方法面向对象方法等不同模型及方法的等不同模型及方法的软件开发环境。
软件开发环境 School of Computer & Information 软件开发环境的分类-按功能及结构特点分类 有有单体型单体型、、协同型协同型、、分散型分散型和和并发型并发型等等多种类型的软件开发环境多种类型的软件开发环境 School of Computer & Information 软件开发环境的分类-按开发阶段分类l前端开发环境前端开发环境(支持系统规划、分析、设计等阶段支持系统规划、分析、设计等阶段的活动的活动);;l后端开发环境后端开发环境(支持编程、测试等阶段的活动支持编程、测试等阶段的活动);;l软件维护环境;软件维护环境;l逆向工程环境;逆向工程环境; 此类环境往往可通过对功能较全的环境进行剪裁此类环境往往可通过对功能较全的环境进行剪裁而得到School of Computer & Information 软件开发环境的分类-按应用范围分类 有有通通用用型型和和专专用用型型软软件件开开发发环环境境其其中中专用型软件开发环境与应用领域有关;专用型软件开发环境与应用领域有关; School of Computer & Information 软件开发环境的构造 软软件件开开发发环环境境由由工工具具集集和和集集成成机机制制两两部部分分构构成成,,工工具具集集和和集集成成机机制制间间的的关关系系如如同同“插件插件”和和“插槽插槽”间的关系。
间的关系 School of Computer & Information 工具集 软件开发环境中的工具可包括:软件开发环境中的工具可包括: 支支持持特特定定过过程程模模型型和和开开发发方方法法的的工工具具,,如如支支持持瀑瀑布布模模型型及及数数据据流流方方法法的的分分析析工工具具、、设设计计工工具具、、编编码码工工具具、、测测试试工工具具、、维维护护工工具具,,支支持持面面向向对对象象方方法法的的OOA工工具具、、OOD工具和工具和OOP工具等;工具等; 独独立立于于模模型型和和方方法法的的工工具具,,如如界界面面辅辅助助生生成成工工具具和和文文档出版工具;档出版工具; 亦可包括管理类工具和针对特定领域的应用类工具亦可包括管理类工具和针对特定领域的应用类工具 School of Computer & Information 集成机制 对对工工具具的的集集成成及及用用户户软软件件的的开开发发、、维维护护及及管管理理提提供供统统一一的的支支持持按按功功能能可可划划分分为为环环境境信信息息库库、、过过程程控控制制及及消消息息服服务务器器、、环环境境用用户户界界面面三三个个部部分。
分School of Computer & Information 环境信息库 是是软软件件开开发发环环境境的的核核心心,,用用以以储储存存与与系系统统开开发发有有关关的的信信息息并并支支持持信信息息的的交交流流与与共共享享库库中中储储存存两两类类信信息息,,一一类类是是开开发发过过程程中中产产生生的的有有关关被被开开发发系系统统的的信信息息,,如如分分析析文文档档、、设设计计文文档档、、测测试试报报告告等等;;另另一一类类是是环环境境提提供供的的支支持持信信息息,,如如文文档档模模板板、、系系统统配配置置、、过过程程模模型型、、可复用构件等可复用构件等School of Computer & Information 过程控制和消息服务器 是是实实现现过过程程集集成成及及控控制制集集成成的的基基础础过过程程集集成成是是按按照照具具体体软软件件开开发发过过程程的的要要求求进进行行工工具具的的选选择择与与组组合合,,控控制集成并行工具之间的通信和协同工作制集成并行工具之间的通信和协同工作School of Computer & Information 环境用户界面 包包括括环环境境总总界界面面和和由由它它实实行行统统一一控控制制的的各各环环境境部部件件及及工工具具的的界界面面。
统统一一的的、、具具有有一一致致视视感感(Look & Feel)的的用用户户界界面面是是软软件件开开发发环环境境的的重重要要特特征征,,是是充充分分发发挥挥环环境境的的优优越越性性、、高高效效地地使使用用工工具具并并减减轻轻用用户户的的学学习习负负担担的保证School of Computer & Information 完善的软件开发环境通常具有如下:l(1)软件开发的一致性及完整性维护;软件开发的一致性及完整性维护; l(2)配置管理及版本控制;配置管理及版本控制; l(3)数据的多种表示形式及其在不同形式之间自动转换;数据的多种表示形式及其在不同形式之间自动转换; l(4)信息的自动检索及更新;信息的自动检索及更新; l(5)项目控制和管理;项目控制和管理; l(6)对方法学的支持;对方法学的支持;School of Computer & Information 软件开发环境与软件开发方法l软软件件开开发发方方法法(Software Development Method)是是指指软软件件开开发发过过程程所所遵遵循循的的办办法法和和步步骤骤软软件件开开发发活活动动的的目目的的是是有有效效地地得得到到一一些些工工作作产产物物,,也也就就是是一一个个运运行行的的系系统统及及其其支支持持文文档档,,并并且且满满足足有有关关的的质质量量要要求求。
软软件件开开发发是是一一种种非非常常复复杂杂的的脑脑力力劳劳动动,,所所以以经经常常更更多多讨讨论论的的是是软软件件开开发发方方法法学学,,指指的的是是规规则则、、方方法法和和工工具具的的集集成成,,既既支支持持开开发发,,也也支支持持以以后后的的演演变变过过程程(交交付付运运行行后后,,系统还会变化,或是为了改错,或是为了功能的增减系统还会变化,或是为了改错,或是为了功能的增减)School of Computer & Information 典型的软件开发和系统演化的活动 分析、设计、实现、确认分析、设计、实现、确认(测试验收测试验收)、演、演化化(维护维护)School of Computer & Information ①①覆盖开发全过程,并且便于在各阶段间的过渡;覆盖开发全过程,并且便于在各阶段间的过渡; ②②便于在开发各阶段中有关人员之间的通信;便于在开发各阶段中有关人员之间的通信; ③③支持有效的解决问题的技术;支持有效的解决问题的技术; ④④支持系统设计和开发的各种不同途径;支持系统设计和开发的各种不同途径; ⑤⑤在开发过程中支持软件正确性的校验和验证;在开发过程中支持软件正确性的校验和验证;软件开发方法应该考虑的一般因素School of Computer & Information 软件开发方法应该考虑的一般因素 ⑥⑥便于在系统需求中列入设计、实际和性能的便于在系统需求中列入设计、实际和性能的约束;约束; ⑦⑦支持设计师和其他技术人员的智力劳动;支持设计师和其他技术人员的智力劳动; ⑧⑧在系统的整个生存周期都支持它的演化;在系统的整个生存周期都支持它的演化; ⑨⑨受自动化工具的支持。
受自动化工具的支持此外,在开发的所有阶段,有关的软件产物都应该是可见和可控此外,在开发的所有阶段,有关的软件产物都应该是可见和可控的;软件开发方法应该可教学、可转移,还应该是开放的,即可的;软件开发方法应该可教学、可转移,还应该是开放的,即可以容纳新的技术、治理方法和新工具,并且与已有的标准相适应以容纳新的技术、治理方法和新工具,并且与已有的标准相适应可称为应用型软件开发环境可称为应用型软件开发环境School of Computer & Information 主要的面向对象软件工程方法主要的面向对象软件工程方法wCRC卡wUMLSchool of Computer & Information CRC卡一种简单的面向对象建模方法卡一种简单的面向对象建模方法 CRC((Class-Responsibility-Collaborator)卡建模是一种简单且有效卡建模是一种简单且有效的面向对象的分析技术它由三部分组的面向对象的分析技术它由三部分组成:成:1. 类类(Class)2. 职责职责(Responsibility)3. 协作协作(Collaborator)School of Computer & Information CRC卡的类卡的类一个类代表许多类似的对象。
而对象是系统模型一个类代表许多类似的对象而对象是系统模型化中关注的事物他们可以是一个人、地方、事化中关注的事物他们可以是一个人、地方、事情、或任何对系统有重要性的概念类名一般列情、或任何对系统有重要性的概念类名一般列在在CRC卡的顶部卡的顶部School of Computer & Information CRC卡的职责卡的职责职责是类需要知道或做的任何事物这些职责是类职责是类需要知道或做的任何事物这些职责是类自身所知的知识,或类在执行时所需的知识自身所知的知识,或类在执行时所需的知识School of Computer & Information CRC卡的协作卡的协作协作是指为获取消息,或协助执行活动的其他类协作是指为获取消息,或协助执行活动的其他类在特定情形下,与指定的类按一个设想共同完成在特定情形下,与指定的类按一个设想共同完成一个一个(或许多或许多)步骤协作的类顺着步骤协作的类顺着CRC卡的右边卡的右边排列 School of Computer & Information CRC模型模型CRC模型是CRC卡的集合,它代表一个应用域或问题域的全部或一部分School of Computer & Information CRC范例范例CRC模型是最普遍的用户。
图中展示了一个航运/存货控制系统的CRC模型例子,展示的CRC卡将被放在一张书桌或工作桌上注意卡的放置:相互协作的卡是彼此接近的,无关系的卡不能放在附近 School of Computer & Information CRC卡的构建步骤一1、 CRC模型组一起加入(模型组包括相关的客户领域人员、设计者、记录员、系统分析员等)2、 安排模型房间3、 进行集体自由讨论内容根据此CRC模型的系统目标进行,如系统是为谁开发的?那些商业业务需要这个系统的何种支持?工作时需要什么信息?……总之尽量按能达到系统要求实现的目标进行,包括进行活动时对资源、条件、活动及人员的要求School of Computer & Information CRC卡构建步骤二卡构建步骤二4、 讲解CRC模型技术(完成集体讨论后,设计者将描述CRC模型过程通常需要花费十至十五分钟,该过程包括创造几个CRC卡范例,范例参考上图)5、 重复地执行CRC模型步骤6、 执行用例情景试验用户情景试验是一个任务过程模式,其中用户们将积极地参与以保证需求是准确的基本的思想是一组商业领域专家(也就是客户方),设计者,系统分析员一步步通过一系列的用例证实CRC模能准确地反映出用户的需求。
School of Computer & Information CRC模型的优点CRC模型就是一种沟通方式,客户方与开发方如何通过这种有效的、易实现、易操作的方式建立一个能描述准确的、双方达成共识的系统需求CRC建模因为用户积极参与到模型的定义中,他们对工作的满意度就会增加,并与开发者们并肩创造这个CRC模型,通过这个一连串的模型卡,双方对待建的系统需求目标达成共识School of Computer & Information CRC卡的缺点CRC模型只是一个面向对象应用的用户需求定义的一部分你也应该考虑到用例,原型,和正式的需求文档是否要使用CRC建模,就根据项目、企业、客户自身存在和所需的条件而定了 School of Computer & Information 面向对象的软件过程面向对象的软件过程- -喷泉模型喷泉模型 需求阶段面向对象分析阶段面向对象设计阶段编码阶段集成和测试阶段运行状态进一步开发维护期喷泉模型的生命周期与结构化方法的生命周期是一致的,但喷泉模型的各个阶段是迭代和无缝的School of Computer & Information 面向对象的软件过程面向对象的软件过程-RUP -RUP RUP的二维开发模型横轴是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期(Cycle)、阶段(Phase)、 迭 代(Iteration)和 里程 碑 (Milestone); 纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语主要包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow)。
School of Computer & Information RUPRUP的各个阶段和里程碑的各个阶段和里程碑- -横向横向 RUP中的软件生命周期在时间上被分解为四个顺序的阶段 初始阶段初始阶段(Inception) (生命周期目标里程碑 ) 前景文档:对核心项目要求、关键性质、主要限制的一般性的前景说明; 初始的用例模型(完成10%-20%); 初始的项目术语表; 初始的商业用例,包括商业环境、验收规范以及成本预测; 初始的风险评估; 项目规划,其中明确阶段和迭代; 商业模型,根据需要可选; 一个或多个原型;细化阶段细化阶段(Elaboration)(生命周期结构里程碑) 构造阶段构造阶段(Construction)(初始运行能力 )交付阶段交付阶段(Transition)(产品发布里程碑) 用例模型(至少完成80%):识别出了所有的用例和角色,以及大多数用例的描述; 调整一些增加的需求,包括非功能性需求以及任何与特定用例无关的需求; 软件体系结构描述; 可执行的体系结构原型; 修订后的风险表和商业用例; 整个项目的开发计划,包括粗略项目规划,显示迭代过程以及相应的评估准则; 更新的开发用例,指定要使用的过程; 初步的用户手册(可选); 在特定平台上集成的软件产品; 用户手册; 对当前版本的描述 ; beta测试确认新系统达到用户的预期; 与被取代的旧系统并行操作; 功能性数据库的转换; 用户和维护人员培训; 向市场、分销商和销售人员进行新产品的展示;School of Computer & Information RUPRUP的核心工作流的核心工作流- -纵向纵向 描述如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程,角色和责任。
描述系统应该做什么,并使开发人员和用户就这一描述达成共识为了达到该目标,要对需要的功能和约束进行提取、组织、文档化;最重要的是理解系统所解决问题的定义和范围 设计活动以体系结构设计为中心,体系结构由若干结构视图来表达,结构视图是整个设计的抽象和简化分析设计的结果是一个设计模型和一个可选的分析模型 目的包括以层次化的子系统形式定义代码的组织结构;以组件的形式(源文件、二进制文件、可执行文件)实现类和对象;将开发出的组件作为单元进行测试以及集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统 目的是验证对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被正确的实现, 识别并确认缺陷在软件部署之前被提出并处理RUP提出了迭代的方法,意味着在整个项目中进行测试,从而尽可能早地发现缺陷,从根本上降低了修改缺陷的成本 目的是成功的生成版本并将软件分发给最终用户部署工作流描述了那些与确保软件产品对最终用户具有可用性相关的活动,包括:软件打包、生成软件本身以外的产品、安装软件、为用户提供帮助在有些情况下,还可能包括计划和进行beta测试版、移植现有的软件和数据以及正式验收。
描绘了如何在多个成员组成的项目中控制大量的产物配置和变更管理工作流提供了准则来管理演化系统中的多个变体,跟踪软件创建过程中的版本同时也阐述了对产品修改原因、时间、人员保持审计记录 平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意的产品 目的是向软件开发组织提供软件开发环境,包括过程和工具 School of Computer & Information UML语言Jim RumbaughGrady BoochIvar JacobsonSchool of Computer & Information UML的简介的简介lUML(Unified Modeling Language)是一种构建软件系统和文档的通用可视化建模语言lUML能与所有的开发方法一同使用,可用于软件开发的整个生命周期lUML能表达系统的静态结构和动态信息,并能管理复杂的系统模型,便于软件团队之间的合作开发lUML不是编程语言,但支持UML语言的工具可以提供从UML到各种编程语言的代码生成,也可以提供从现有程序逆向构建UML模型lUML并不是万能的,它是一种离散的建模语言,对于特定的领域,比如:GUI、VLSI电路设计或基于规则的人工智能,用特定的语言和工具可能更合适。
School of Computer & Information l最重要目标:UML是所有建模人员可以使用的通用建模语言它包含主流建模方法的概念,从而可以替代现有的软件分析和设计方法,比如:OMT,Booch,OOSE等lUML不是完整的开发方法,它不包括逐步的开发流程,但它提供所有必要的概念,具备足够的表达能力lUML的另一个目标是:能尽量简洁地表达系统的模型UML的目标的目标School of Computer & Information •UML概念可以划分为以下范围:概念可以划分为以下范围:–系统需求系统需求–静态结构静态结构–动态行为动态行为–交互行为交互行为–物理实现物理实现–各种图之间的关系各种图之间的关系–模型组织模型组织–扩展机制扩展机制UML的主要概念的主要概念School of Computer & Information –用例视图用例视图(Use Cases View)从外部用户从外部用户的角度来描述系统的行为,它将系统功的角度来描述系统的行为,它将系统功能划分为对用户有意义的事务,这些事能划分为对用户有意义的事务,这些事务被称为务被称为用例用例,,用户被称为用户被称为执行者执行者,,用用例视图例视图也就是描述活动者在各个用例中也就是描述活动者在各个用例中的参与情况,它指导所有的行为视图。
的参与情况,它指导所有的行为视图系统需求系统需求School of Computer & Information –静态视图静态视图(Static View),一个模型必须首先定义,一个模型必须首先定义各种事物的内部特征和相互之间的关系,应用各种事物的内部特征和相互之间的关系,应用概念建模成概念建模成类类,类描述事物的,类描述事物的属性属性和以及在这和以及在这些属性上的些属性上的操作操作类之间可以存在不同的类之间可以存在不同的关系关系,,比如比如泛化泛化(继承)、(继承)、关联关联和和依赖依赖等,静态视图等,静态视图表示成表示成类图类图,静态视图在某一时刻的快照称为,静态视图在某一时刻的快照称为对象图对象图静态结构静态结构School of Computer & Information –状态机视图状态机视图(State Machine View),通过对每,通过对每个类的对象的生命周期进行建模,描述了对象个类的对象的生命周期进行建模,描述了对象时间上的动态行为时间上的动态行为状态机状态机是由是由状态状态和和迁移迁移组组成的图,状态机通常附属于类,描述类实例对成的图,状态机通常附属于类,描述类实例对接受接受事件事件的响应。
的响应–活动视图活动视图(Activity View)是利用状态机对运算是利用状态机对运算和和工作流工作流进行建模的特殊形式进行建模的特殊形式活动图活动图的状态的状态代表了运算执行的状态,而非一般对象的状态,代表了运算执行的状态,而非一般对象的状态,活动图和流程图很相似,不过它支持并发活动图和流程图很相似,不过它支持并发动态行为动态行为School of Computer & Information –交互视图交互视图(Interaction View),对象通过交互来,对象通过交互来实现行为,交互视图通过实现行为,交互视图通过协作协作来进行建模,协来进行建模,协作具有结构和行为两个方面,结构包含为行为作具有结构和行为两个方面,结构包含为行为方面而定义的一系列角色和关系,行为方面是方面而定义的一系列角色和关系,行为方面是绑定于角色的对象间的一系列交换的消息,这绑定于角色的对象间的一系列交换的消息,这些消息在协作中称为些消息在协作中称为交互交互,消息序列可用两种,消息序列可用两种图来表示:图来表示:顺序图顺序图(重点在消息的时间顺序)(重点在消息的时间顺序)和和协作图协作图(重点在交换消息的对象间的关系)。
重点在交换消息的对象间的关系)交互行为交互行为School of Computer & Information –物理视图物理视图(Physical View),许多系统模型独,许多系统模型独立于最终的实现,在实现方面,必须充分考虑立于最终的实现,在实现方面,必须充分考虑系统的重用性和性能系统的重用性和性能UML有两种视图来表示有两种视图来表示系统的实现:系统的实现:实现视图实现视图和和部署视图部署视图,实现视图,实现视图将可重用的系统片段打包成将可重用的系统片段打包成组件组件,部署视图描,部署视图描述系统运行时资源的物理分布,这些资源称为述系统运行时资源的物理分布,这些资源称为结点结点物理实现物理实现School of Computer & Information –静态视图(类图,对象图),物理视图(实静态视图(类图,对象图),物理视图(实现视图,部署视图)是描述系统的静态结构现视图,部署视图)是描述系统的静态结构–用例图是描述系统的外部视图用例图是描述系统的外部视图–活动图描述系统的外部活动图描述系统的外部/内部视图内部视图–交互视图(顺序图,协作图)描述系统的内交互视图(顺序图,协作图)描述系统的内部视图。
部视图–状态图描述单个类的动态行为状态图描述单个类的动态行为各种图之间的关系各种图之间的关系School of Computer & Information –模型管理视图模型管理视图(Model Management View),,任何大系统必须划分为较小的单元,以使人们任何大系统必须划分为较小的单元,以使人们能在某一时刻只接触有限的信息,不影响团队能在某一时刻只接触有限的信息,不影响团队间的并行工作模型是利用间的并行工作模型是利用包包(Package)和和包包的依赖的依赖来进行管理的包是来进行管理的包是UML模型中通用的模型中通用的层次组织结构,包上的依赖总结了包内容的依层次组织结构,包上的依赖总结了包内容的依赖关系模型组织模型组织School of Computer & Information –扩展机制扩展机制(Extension Mechanisms),,UML能能满足绝大部分系统建模的需要,但任何语言都满足绝大部分系统建模的需要,但任何语言都不是万能的,它必须考虑一定的扩展机制,不是万能的,它必须考虑一定的扩展机制,UML的扩展机制包括的扩展机制包括约束约束、、标签值标签值和和原型原型。
这这些扩展机制可以用来为特定领域剪裁些扩展机制可以用来为特定领域剪裁UML的配的配置,这样带来一些好处:根据自身需要来使用置,这样带来一些好处:根据自身需要来使用建模语言建模语言扩展机制扩展机制School of Computer & Information l一个模型必须首先定义各种事物的内部特征和一个模型必须首先定义各种事物的内部特征和相互之间的关系,下面介绍一些基本的模型元相互之间的关系,下面介绍一些基本的模型元素:素:分类:n类(Class)n接口(Interface)n子系统(Sub System)n执行者(Actor)n用例(Use Cases)n组件(Component)n结点(Node)n注释(Comment)关系:n关联(Association)n泛化(Generalization)n依赖(Dependency)n实现(Realization)n约束(Constraint)静态视图:n类图n对象图静态建模静态建模School of Computer & Information l类类是具有相同属性、操作和关系的对象集合的是具有相同属性、操作和关系的对象集合的总称通常在总称。
通常在UML中类被画成矩形,中类被画成矩形,l包括三个部分:名称、属性和操作包括三个部分:名称、属性和操作–名称:名称:每个类都必须有一个名字,用来区分其它每个类都必须有一个名字,用来区分其它的类类名是一个字符串,称为简单名字路径的类类名是一个字符串,称为简单名字路径名字是在类名前加包含类的包名为前缀例如名字是在类名前加包含类的包名为前缀例如Wall、、java::awt::Wall都是合法的类名都是合法的类名–属性:属性:类可以有任意多个属性,也可以没有属性类可以有任意多个属性,也可以没有属性在类图中属性只要写上名字就可以了,也可以在在类图中属性只要写上名字就可以了,也可以在属性名后跟上类型甚至缺省取值属性名后跟上类型甚至缺省取值 –操作:操作:操作是类的任意一个实例对象都可以调用的,操作是类的任意一个实例对象都可以调用的,并可能影响该对象行为的实现并可能影响该对象行为的实现 静态建模静态建模-类类School of Computer & Information 类名属性操作School of Computer & Information l接口接口是未给出实现的对象行为的描述,是未给出实现的对象行为的描述,接口包含操作,但没有属性,一个或多接口包含操作,但没有属性,一个或多个类可以实现接口,每个类实现接口的个类可以实现接口,每个类实现接口的操作。
操作StringisEqual(String) : BooleanHash() : Integer…HashableComparable接口标记静态建模静态建模-接口接口School of Computer & Information l任何大系统都必须任何大系统都必须划分为较小的单元,划分为较小的单元,以便人们在某一时以便人们在某一时刻可以和有限的信刻可以和有限的信息工作,使团队的息工作,使团队的工作不相互影响工作不相互影响l包可以包含各种模包可以包含各种模型元素和其它的包,型元素和其它的包,包之间还可能存在包之间还可能存在一定的依赖一定的依赖<
一个执行者StudentProfessorBilling SystemRegistrar静态建模静态建模-执行者执行者School of Computer & Information l用例用例是系统提供的外部可感知的功能是系统提供的外部可感知的功能单元,用例的目的是定义清晰的系统单元,用例的目的是定义清晰的系统行为,但不解释系统的内部结构行为,但不解释系统的内部结构l用例可以与执行者关联,也可以参与用例可以与执行者关联,也可以参与其他的多种关系,比如扩展、泛化和其他的多种关系,比如扩展、泛化和包含等l用户的动态部分用交互视图来描述,用户的动态部分用交互视图来描述,比如顺序图、协作图比如顺序图、协作图l用例用椭圆来表示,用例名标在椭圆用例用椭圆来表示,用例名标在椭圆下方,用实线与同自身通信的用户相下方,用实线与同自身通信的用户相连Maintain Curriculum静态建模静态建模-用例用例School of Computer & Information lRegistrar -- maintain the curriculumlProfessor -- request rosterlStudent -- maintain schedulelBilling System -- receive billing information from registrationMaintain ScheduleMaintain CurriculumRequest Course Roster静态建模静态建模-用例用例School of Computer & Information l用例图用例图描述执行者在各个用例中的参与描述执行者在各个用例中的参与情况。
情况StudentRegistrarProfessorMaintain ScheduleMaintain CurriculumRequest Course RosterBilling System静态建模静态建模-用例图用例图School of Computer & Information l组件组件是可重用的系统片段,具有良是可重用的系统片段,具有良好好 定义接口的物理实现单元每个定义接口的物理实现单元每个组件组件 包含了系统设计中某些类的包含了系统设计中某些类的实现l组件设计的原则组件设计的原则:良好的组件不直:良好的组件不直接接 依赖于其它组件,而是依赖于其依赖于其它组件,而是依赖于其它组它组 件所支持的接口这样的好处件所支持的接口这样的好处是系统是系统 中的组件可以被支持相同中的组件可以被支持相同接口的组件接口的组件 所取代l一个组件可能是一个组件可能是源代码源代码、、可执行程可执行程序序或或动态库动态库Student静态建模静态建模-组件组件School of Computer & Information l结点结点代表系统运行时的物理对象,结点通常代表系统运行时的物理对象,结点通常拥有运算能力,它可以容纳对象和组件实例。
拥有运算能力,它可以容纳对象和组件实例RegistrationDatabaseLibraryDormMain Building静态建模静态建模-结点结点School of Computer & Information l注释注释用于解释设计的思路,便于理解用于解释设计的思路,便于理解l一个好的模型应该有详尽的注释一个好的模型应该有详尽的注释Representsan incorporated entityCompany…注释静态建模静态建模-注释注释School of Computer & Information l关联关联描述了系统中对象和其它实例之间的离描述了系统中对象和其它实例之间的离散的连接,关联是有序的,它允许重复,关散的连接,关联是有序的,它允许重复,关联的实例是联的实例是链链l关联至对象的连接点称为关联至对象的连接点称为关联端点关联端点,很多信,很多信息被附在关联端点上,它拥有角色名、重数息被附在关联端点上,它拥有角色名、重数(多少个类的实例可以关联于另一个类的实(多少个类的实例可以关联于另一个类的实例),可见性等例),可见性等l关联有自己的名称,可以拥有自己的属性,关联有自己的名称,可以拥有自己的属性,这时关联本身也是类,称为这时关联本身也是类,称为关联类关联类。
静态建模关系-关联静态建模关系-关联School of Computer & Information ManagesJobbossworkeremployeeemployer1..***0..1CompanyPersonJobSalary角色名重数关联名称关联类二元关联自关联School of Computer & Information l聚集聚集((Aggregation)用来表达整体-部分)用来表达整体-部分关系的关联关系的关联组合组合((Composition)是一)是一种聚集,是关联更强的形式种聚集,是关联更强的形式PolygonPoint13..*pointsContainsPolygonWindowSlider12ScrollbarHeader1Title11Panel1Body聚集组合静态建模关系-聚合和组静态建模关系-聚合和组合合School of Computer & Information l泛化泛化是一般化和具体化之间的一种关系是一般化和具体化之间的一种关系l继承继承就是一种泛化关系,更一般化的描述称为就是一种泛化关系,更一般化的描述称为双亲双亲,双亲的双亲称为,双亲的双亲称为祖先祖先,更具体化的描述,更具体化的描述称为称为孩子孩子,在类的范畴,双亲对应超类,孩子,在类的范畴,双亲对应超类,孩子对应子类。
对应子类TreeOakElmBirch孩子双亲PersonStudentGraduate祖先静态建模关系-泛化静态建模关系-泛化School of Computer & Information l多重继承多重继承:一个孩子可以从多个双亲继承属性和方:一个孩子可以从多个双亲继承属性和方法多重继承可能存在法多重继承可能存在冲突冲突,因为被继承的双亲可,因为被继承的双亲可能存在相同的类声明,这时,最好显式解决冲突问能存在相同的类声明,这时,最好显式解决冲突问题AssistantTeacherStudent静态建模关系-多重继承静态建模关系-多重继承School of Computer & Information l依赖依赖指明两个或两个以上模型元素之间的关指明两个或两个以上模型元素之间的关系l依赖有很多种类,比如:实现(依赖有很多种类,比如:实现(realize)、)、使用、(使用、(usage)、实例化()、实例化(instantiate)、)、调用(调用(call),派生(),派生(derive)、访问)、访问((access)、引入()、引入(import)、友元)、友元((friend)等等。
等等<
图,主要是描述类和类之间的关系继承关联PersonHouseresidence0..*owner0..*FinancialInstitutionclientcreditor0..*0..*Mortgageprincipalrateterm关联类{ordered}0..*1BankTrustCompany静态建模-类图静态建模-类图School of Computer & Information l对象图是系统在某一时刻的快照对象图是系统在某一时刻的快照Smith : Personcottage : Househome : Housefirst : Mortgagesecond : MortgageRoyalBank : Bank链静态建模-对象图静态建模-对象图School of Computer & Information l状态机图状态机图l用例图用例图l活动图活动图l顺序图顺序图l协作图协作图动态建模动态建模School of Computer & Information l状态机图状态机图是对单个类的对象的生命周期进行建模,描述是对单个类的对象的生命周期进行建模,描述了对象时间上的动态行为,每个对象被认为是了对象时间上的动态行为,每个对象被认为是事件驱动事件驱动的孤立实体。
的孤立实体l状态机图是由状态机图是由状态状态和和跃迁跃迁组成的图,通常状态机附属于组成的图,通常状态机附属于类,描述类实例对接受事件的响应类,描述类实例对接受事件的响应l事件事件表达对象间的调用、显式信号、值的改变或时间的表达对象间的调用、显式信号、值的改变或时间的推移–调用事件、变更事件、信号事件、时间事件调用事件、变更事件、信号事件、时间事件l状态状态描述对象生命周期的一段时间,可以是等待其它事描述对象生命周期的一段时间,可以是等待其它事件时所处的时间,或是执行某一活动时所处的时间,状件时所处的时间,或是执行某一活动时所处的时间,状态分为态分为简单状态简单状态和和复合状态复合状态动态建模动态建模-状态机图状态机图School of Computer & Information l跃迁跃迁定义对象对某一事件发生的反应,通常,定义对象对某一事件发生的反应,通常,迁移具有迁移具有触发事件触发事件、、跃迁条件跃迁条件、、动作动作和和目标状目标状态态l跃迁的种类有跃迁的种类有外部跃迁外部跃迁和和内部跃迁内部跃迁外部跃迁外部跃迁是最普通的跃迁,会发生状态改变;内部跃迁是最普通的跃迁,会发生状态改变;内部跃迁不发生状态改变。
不发生状态改变l跃迁有两个隐式动作:跃迁有两个隐式动作:进入动作进入动作和和退出动作退出动作无论何时进入和退出时都要执行,这方便进入无论何时进入和退出时都要执行,这方便进入时进行初始化工作,退出时进行资源的释放工时进行初始化工作,退出时进行资源的释放工作动态建模动态建模-状态机图状态机图School of Computer & Information createdreadyHandleHandleEventEventInitializeInitializeObjectObjectTerminateTerminateObjectObjectWait forWait forEventEventstart/^master.ready()poll/^master.ack()stop/初始状态结束状态状态机状态触发事件动作表达式跃迁School of Computer & Information l用例图用例图描述各个执行者在各个用例中的参与情描述各个执行者在各个用例中的参与情况,描述系统为用户所感知的外部视图况,描述系统为用户所感知的外部视图l用例图的功能:用例图的功能:–捕获系统用户需求捕获系统用户需求–描述系统边界描述系统边界–指明系统外部行为指明系统外部行为–指导系统开发者的功能开发指导系统开发者的功能开发–系统建模的起点,指导所有的类图和交互图的设计系统建模的起点,指导所有的类图和交互图的设计–产生测试用例,用户文档产生测试用例,用户文档–估计项目大小和进度。
估计项目大小和进度动态建模动态建模-用例图用例图School of Computer & Information CustomerSalesmanSupplierSupervisorSaleManagementSupply执行者用例系统边界School of Computer & Information l活动图活动图是用状态机对工作流进行建模的特殊形是用状态机对工作流进行建模的特殊形式,它和流程图很类似,不过它支持并发控制式,它和流程图很类似,不过它支持并发控制l活动图一般不描述所有的运算细节,它显示活活动图一般不描述所有的运算细节,它显示活动的流,但不显示执行活动的对象动的流,但不显示执行活动的对象l活动图处于系统的外部和内部视图之间,所以活动图处于系统的外部和内部视图之间,所以它可以作为设计的起点,为了完成设计,每个它可以作为设计的起点,为了完成设计,每个活动必须扩展成一个和多个操作,每个操作被活动必须扩展成一个和多个操作,每个操作被指派给特定的对象来实现指派给特定的对象来实现l将商业组织控制的活动划分在一起,这类划分将商业组织控制的活动划分在一起,这类划分可以通过分隔的区域来表达,由于它们的外观,可以通过分隔的区域来表达,由于它们的外观,每个区域称为每个区域称为泳道泳道((swimlane)。
动态建模动态建模-活动图活动图School of Computer & Information CustomerSalesStockroomRequestServicePayTake OrderFill OrderDeliver OrderCollect Order泳道School of Computer & Information 带有对象流的活动图CustomerSalesStockroomRequestServicePayTake OrderFill OrderDeliver OrderCollect Order泳道Order[Placed]Order[Entered]Order[Filled]Order[Delivered]对象School of Computer & Information l对象行为是通过交互来实现的,对象行为是通过交互来实现的,交互交互是对象间是对象间为完成某一目的而进行的一系列为完成某一目的而进行的一系列消息消息交换l消息消息是对象间的单向通信,从发送者到接受者是对象间的单向通信,从发送者到接受者的携带信息的控制流消息可能带有的携带信息的控制流消息可能带有值参值参。
l消息序列可用两种图表示:消息序列可用两种图表示:顺序图顺序图(重点在消(重点在消息的时间顺序)和息的时间顺序)和协作图协作图(重点在交换消息的(重点在交换消息的对象间的关系)对协作图来说,时间顺序可对象间的关系)对协作图来说,时间顺序可以从顺序号获得以从顺序号获得动态建模动态建模-交互视图交互视图School of Computer & Information l顺序图顺序图用二维表来表示交互,纵向是时间轴,用二维表来表示交互,纵向是时间轴,横向是参与的角色以及它们交换的消息横向是参与的角色以及它们交换的消息l角色的生命周期表现为角色的生命周期表现为生命线生命线,一条垂直的,一条垂直的线,在激活的时间段里是双线,在状态保持线,在激活的时间段里是双线,在状态保持的时间里是虚线的时间里是虚线l消息表示为从一条生命线出发到另一条生命消息表示为从一条生命线出发到另一条生命线的有向线,从上而下,表示消息的时间顺线的有向线,从上而下,表示消息的时间顺序动态建模动态建模-顺序图顺序图School of Computer & Information CallerOperatorCallee时间时间轴轴callacknumbercallacktalktransfer顺序图生命线激活状态保持角色School of Computer & Information l协作图协作图包含分类角色和关联角色,当它实包含分类角色和关联角色,当它实例化时,对象被绑定到分类角色,链被绑例化时,对象被绑定到分类角色,链被绑定到关联角色定到关联角色.关联角色还可能被各种暂时关联角色还可能被各种暂时性的链来充当,如过程参数和局部过程变性的链来充当,如过程参数和局部过程变量,链可以指定暂时性的原型:量,链可以指定暂时性的原型:<
l协作图对实现协作的对象和链进行建模,协作图对实现协作的对象和链进行建模,而忽略其他对象而忽略其他对象动态建模动态建模-协作图协作图School of Computer & Information StudentRegistration FormRegistration Manager1: fill in info2:submit3: add(smith, math)math4: add(smith)School of Computer & Information l通常在一个协作图中每个对象分配一个符号,通常在一个协作图中每个对象分配一个符号,然而有时不同状态的对象需要显式指出,然而有时不同状态的对象需要显式指出,流流将将同一个对象的不同状态版本关系在一起,使用同一个对象的不同状态版本关系在一起,使用<
赖CourseCourseOfferingStudentProfessorCourse.dllPeople.dllCourseUserRegister.exeBilling.exeBillingSystemSchool of Computer & Information 部署视图部署视图描述系统资源在运行时的物理分布,系描述系统资源在运行时的物理分布,系统资源成为结点统资源成为结点RegistrationDatabaseLibraryDormMain Building物理架构物理架构-部署视图部署视图School of Computer & Information lUML是一种建模语言而不是方法,这是因为是一种建模语言而不是方法,这是因为UML中没有过程的概念,而过程正是方法的一中没有过程的概念,而过程正是方法的一个重要组成部分个重要组成部分UML本身独立于过程,这意本身独立于过程,这意味着用户在使用味着用户在使用UML进行建模时,可以选用任进行建模时,可以选用任何适合的过程何适合的过程l一般采用的建模过程有:一般采用的建模过程有:喷泉模型喷泉模型、、迭代递增迭代递增开发模型开发模型。
UML建模过程建模过程School of Computer & Information UML建模过程建模过程-瀑布开发模型瀑布开发模型需求阶段面向对象分析阶段面向对象设计阶段编码阶段集成和测试阶段运行状态进一步开发维护期School of Computer & Information 设计编码测试更多需求与分析迭代递增开发模型迭代递增开发模型最初需求与分析产品维护请求School of Computer & Information [1] 需求需求 最初最初需求规格说明需求规格说明应当由代表系统最应当由代表系统最终用户的人员提供,内容包括系统基本功能终用户的人员提供,内容包括系统基本功能需求和对计算机系统的要求需求和对计算机系统的要求[2] 分析分析 分析的任务是找出系统的所有需求并分析的任务是找出系统的所有需求并加以描述,同时建立模型,以定义系统中的加以描述,同时建立模型,以定义系统中的关键领域类,应由系统用户和开发人员合作关键领域类,应由系统用户和开发人员合作完成 分析的分析的第一步是定义用例第一步是定义用例,以描述所开发,以描述所开发系统的外部功能需求用例分析包括阅读和系统的外部功能需求。
用例分析包括阅读和分析需求说明,此时需要与系统的潜在用户分析需求说明,此时需要与系统的潜在用户进行讨论进行讨论迭代递增开发模型迭代递增开发模型School of Computer & Information [3] 设计设计 设计阶段的任务是通过综合考虑所有设计阶段的任务是通过综合考虑所有的技术限制,以扩展和细化分析阶段的模型的技术限制,以扩展和细化分析阶段的模型–设计阶段可以分为两个部分:设计阶段可以分为两个部分:结构设计结构设计是高层是高层设计,其任务是定义包(子系统),包括包间设计,其任务是定义包(子系统),包括包间的依赖性和主要通信机制我们希望得到尽可的依赖性和主要通信机制我们希望得到尽可能简单和清晰的结构,各部分之间的依赖尽可能简单和清晰的结构,各部分之间的依赖尽可能的少,并尽可能的减少双向的依赖关系能的少,并尽可能的减少双向的依赖关系 第第二部分是二部分是详细设计详细设计,细化包的内容,使编程人,细化包的内容,使编程人员得到所有类的一个足够清晰的描述员得到所有类的一个足够清晰的描述School of Computer & Information l结构设计结构设计 一个设计良好的系统结构是系统一个设计良好的系统结构是系统可扩充和可变更的基础。
包实际上是一些类可扩充和可变更的基础包实际上是一些类的集合类图中包括有助于用户从技术逻辑的集合类图中包括有助于用户从技术逻辑中分离出应用逻辑(领域类),从而减少它中分离出应用逻辑(领域类),从而减少它们之间的依赖性们之间的依赖性l详细设计详细设计 详细设计的目的是通过创建新的详细设计的目的是通过创建新的类图、状态图和动态图(顺序图、协作图和类图、状态图和动态图(顺序图、协作图和活动图),描述新的技术类,并扩展和细化活动图),描述新的技术类,并扩展和细化分析阶段的对象类分析阶段的对象类School of Computer & Information l[4] 实现实现 构造或实现阶段是对类进行编程的构造或实现阶段是对类进行编程的过程可以选择某种面向对象对象编程语言过程可以选择某种面向对象对象编程语言(如(如Java)作为实现系统的软件环境作为实现系统的软件环境Java很容易实现从逻辑视图到代码部件的映射,很容易实现从逻辑视图到代码部件的映射,因为类到因为类到Java代码文件之间是一一映射关系代码文件之间是一一映射关系 在实现阶段中,可以选取各种图的说明来在实现阶段中,可以选取各种图的说明来辅助编程,比如:类图,状态图和动态图等。
辅助编程,比如:类图,状态图和动态图等School of Computer & Information l[5]测试和配置测试和配置 完成系统编码后,需要对系统完成系统编码后,需要对系统进行测试,它通常包括:进行测试,它通常包括:单元测试单元测试、、集成测集成测试试、、系统测试系统测试和和验收测试验收测试 在单元测试中使用类图和类的规格说明,在单元测试中使用类图和类的规格说明,对单独的类或一组类进行测试;在集成测试对单独的类或一组类进行测试;在集成测试中,使用组件图和合作图,对各组件的合作中,使用组件图和合作图,对各组件的合作情况进行测试;在系统测试中,使用用例图,情况进行测试;在系统测试中,使用用例图,以检验所开发的系统是否满足例图所描述的以检验所开发的系统是否满足例图所描述的需求 系统的配置是实际地交付系统,包括文档系统的配置是实际地交付系统,包括文档和组成模型等和组成模型等School of Computer & Information lROSE是美国是美国Rational公司的面向对象建模工公司的面向对象建模工具,利用这个工具,我们可以建立用具,利用这个工具,我们可以建立用UML描述描述的软件系统的模型,而且可以自动生成和维护的软件系统的模型,而且可以自动生成和维护C++、、Java、、VB、、Oracle等语言和系统的代等语言和系统的代码。
码lROSE的界面分为三个部分的界面分为三个部分——Browser窗口窗口、、Diagram窗口窗口和和Document窗口窗口Browser窗窗口用来浏览、创建、删除和修改模型中的模型口用来浏览、创建、删除和修改模型中的模型元素;元素;Diagram窗口用来显示和创作模型的各窗口用来显示和创作模型的各种图;而种图;而Document窗口则是用来显示和书写窗口则是用来显示和书写各个模型元素的文档注释各个模型元素的文档注释Rose的使用的使用School of Computer & Information Browser窗口Diagram窗口Document窗口Specification对话框工具栏工具箱School of Computer & Information lBrowser窗口有窗口有四个视图四个视图:–Use Case–Logical–Component–DeploymentSchool of Computer & Information 在在Use Case视图的图的类型有:用例图、视图的图的类型有:用例图、顺序图、协作图和活动图顺序图、协作图和活动图School of Computer & Information 在在Logical视图中的类型有:类图和状态图。
视图中的类型有:类图和状态图School of Computer & Information 在在Component视图的图的类型有:组件图视图的图的类型有:组件图School of Computer & Information 在在Deployment视图的图的类型有:部署图视图的图的类型有:部署图School of Computer & Information 用例图School of Computer & Information 顺序图School of Computer & Information 协作图School of Computer & Information 活动图School of Computer & Information 类图School of Computer & Information 状态图School of Computer & Information 组件图School of Computer & Information 部署图School of Computer & Information l很多教科书上的第一个程序就是很多教科书上的第一个程序就是Hello world,一个在屏,一个在屏幕上简单地打印出幕上简单地打印出“Hello world!”语句的例子。
语句的例子l在在javajava中中一一个个在在浏浏览览器器中中显显示示“Hello Hello World!World!”的的AppletApplet的的代码如下:代码如下: import java.awt.Graphics;import java.awt.Graphics; class HelloWorld extends java.applet.Applet{ class HelloWorld extends java.applet.Applet{ public void paint( Graphics g ){ public void paint( Graphics g ){ g.drawString("Hello World!",10,10 ); g.drawString("Hello World!",10,10 ); } } } }实例一实例一--Hello WorldSchool of Computer & Information 用例图用例图HelloWorldSchool of Computer & Information HelloWorld类类HelloWorldPaint()g.drawString("Hello World!",10,10) 注释School of Computer & Information 类图类图HelloWorldPaint()AppletGraphics 继承使用依赖School of Computer & Information 顺序图顺序图:Thread:Toolkit:ComponentPeertarget:HelloWorldruncallbackLoophandleExposepaintSchool of Computer & Information l执行者执行者–读者读者–图书馆员图书馆员–管理员管理员l用例用例–图书馆管理图书馆管理实例二-图书馆系统实例二-图书馆系统用例图用例图School of Computer & Information 读者用例图读者用例图School of Computer & Information 图书馆员用例图图书馆员用例图School of Computer & Information 管理员用例图管理员用例图School of Computer & Information 下载网站:School of Computer & Information 软件开发环境中的一些工具软件建模工具:1. UML建模工具:ROSE;2. UML2.x建模工具TrufunPlato2008;3.开源UML建模工具 StarUMLv5.0.24. UML设计测试工具5. 数据库建模工具:PowerDesignerSchool of Computer & Information 软件开发环境中的一些工具软件测试工具:1. AutoRunner 自动化软件测试工具,是一种黑盒测试自动化软件测试工具,是一种黑盒测试工具,工具,对.NET类型的应用软件进行功能测试,支持标准Windows应用程序测试和.NET应用程序测试。
对B/S系统进行功能测试,支持各种B/S应用和网站School of Computer & Information 2. WinRunner: Mercury公司,用于功能性测试; Winrunner 最主要的功能是自动重复执行某一固定的测试过程,它以脚本的形式记录下手工测试的一系列操作,在环境相同的情况下重放,检查其在相同的环境中有无异常的现象或与实际结果不符的地方可以减少由于人为因素造成结果错误,同时也可以节省测试人员大量测试时间和精力来做别的事情功能模块主要包括:GUI map、检查点、TSL 脚本编程、批量测试、数据驱动等几部分软件开发环境中测试工具School of Computer & Information 3.LoadRunner:Mercury公司,性能与负载压力; LoadRunner® 是一种预测系统行为和性能的工业标准级负载测试工具通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。
LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题此外,还能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案软件开发环境中测试工具School of Computer & Information 4. QuickTest Pro: Mercury公司,功能测试和回归测试; QTP是一个B/S系统的自动化功能测试的利器,软件程序测试工具Mercury的自动化功能测试软件QuickTest Professional ,可以覆盖绝大多数的软件开发技术,简单高效,并具备测试用例可重用的特点Mercury QuickTest Pro 是一款先进的自动化测试解决方案,用于创建功能和回归测试它自动捕获、验证和重放用户的交互行为 Mercury QuickTest Pro为每一个重要软件应用和环境提供功能和回归测试自动化的行业最佳解决方案软件开发环境中测试工具School of Computer & Information 5. TestDirector:Mercury公司,测试管理; 基于WEB的测试管理工具,他能够让你系统地控制整个测试过程,并创建整个测试工作流的框架和基础,使整个测试管理过程变得更为简单和有组织。
他能够帮助你维护一个测试工程数据库,并且能够覆盖你的应用程序功能性的各个方面T并且还为你提供了直观和有效的方式来计划和执行测试集、收集测试结果并分析数据还专门提供了一个完善的缺陷跟踪系统并可以同Mercury公司的测试工具、第三方或者自主开发的测试工具、需求和配置管理工具、建模工具的整合功能你可以通过他进行需求定义、测试计划、测试执行和缺陷跟踪,即整个测试过程的各个阶段 软件开发环境中测试工具School of Computer & Information 6. Junit:开源组织,单元测试,回归测试; 开源免费的 JUnit是由 Erich Gamma 和 Kent Beck 编写的一个单元测试框架(regression testing framework)Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了软件开发环境中测试工具School of Computer & Information 7. Bugzilla:开源组织, 缺陷跟踪管理 开源免费的 Buzilla是一个BUG管理工具。
作为一个产品缺陷的记录及跟踪工具,它能够为你建立一个完善的Bug跟踪体系,包括报告Bug、查询Bug记录并产生报表、处理解决、管理员系统初始化和设置四部分软件开发环境中测试工具School of Computer & Information 7. Bugzilla:开源组织, 缺陷跟踪管理 开源免费的 Buzilla是一个BUG管理工具作为一个产品缺陷的记录及跟踪工具,它能够为你建立一个完善的Bug跟踪体系,包括报告Bug、查询Bug记录并产生报表、处理解决、管理员系统初始化和设置四部分软件开发环境中测试工具School of Computer & Information 1.基于Web方式,安装简单、运行方便快捷、管理安全2.有利于缺陷的清楚传达本系统使用数据库进行管理,提供全面详尽的报告输入项,产生标准化的Bug报告 提供大量的分析选项和强大的查询匹配能力,能根据各种条件组合进行Bug统计当错误在它的生命周期中变化时,开发人员、测试人员、及管理人员将及时获得动态的变化信息,允许你获取历史纪录,并在检查错误的状态时参考这一记录3.系统灵活,强大的可配置能力Buzilla工具可以对软件产品设定不同的模块,并针对不同的模块设定制定的开发人员和测试人员;这样可以实现提交报告时自动发给指定的责任人;并可设定不同的小组,权限也可划分。
设定不同的用户对Bug记录的操作权限不同,可有效控制进行管理允许设定不同的严重程度和优先级可以在错误的生命其中管理错误,从最初的报告到最后的解决,确保了错误不会被忽略,同时可以使注意力集中在优先级和严重程度高的错误上4.自动发送Email,通知相关人员根据设定的不同责任人,自动发送最新的动态信息,有效的帮助测试人员和开发人员进行沟通软件开发环境中测试工具School of Computer & Information 8. TestLink: 开源组织, 测试管理, 开源免费 TestLink是基于Web的,开源的测试管理和执行系统它可以让测试团队在创建和管理测试用例的同时,在测试计划中对测试用例进行组织TestLink可以和Bugzilla、Mantis、Jira等缺陷管理工具进行集成软件开发环境中测试工具School of Computer & Information 1.ClearCase ClearCase是Rational公司的软件配置领域的产品,它主要基于Windows和UNIX的开发环境它提供了全面的配置管理──包括版本控制、工作空间管理、建立管理和过程控制,而且无须软件开发者改变他们现有的环境、工具和工作方式。
软件开发环境中配置工具School of Computer & Information 2. CVS CVS(Concurrent Versions System)就是一个能让很多程序开发者同时进行软件开发的、强大的版本管理控制工具 CVS本身是开源项目,通过其方便的功能使众多的人们加入到开源软件项目之中,促进了开源运动的发展反过来,开源项目的成功又促使版本管理工具不断完善现在大多数开源软件项目都使用CVS做为版本控制和协作开发的工具,其中不乏像GNOME、KDE、Apache这样的庞大的项目,充分显示了CVS做为版本控制工具的成功软件开发环境中配置工具。
