UML及面向对象分析8910(教案稿)_第1页
UML及面向对象分析8910(教案稿)_第2页
UML及面向对象分析8910(教案稿)_第3页
UML及面向对象分析8910(教案稿)_第4页
UML及面向对象分析8910(教案稿)_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

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

文档简介

软件工程(SoftwareEngineering)软件学院李玉蓉第9章:面向对象方法学引论9.1面向对象方法学概述9.1.1面向对象方法学的要点面向对象方法学的基本原则:尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。客观世界中的实体——问题域中的对象;计算机中的实体——解空间对象;解空间对象取决于程序设计语言:汇编语言的对象:存储单元;面向过程的高级语言的对象:变量、数组、记录、文件等;面向对象的高级语言的对象:除上述元素外,还包括窗体、菜单、按钮、等等。与传统方法不同,面向对象方法以数据为主线,将数据和操作方法封装在对象中,通过消息请求对象主动执行它的内部操作,改变其内部私有数据。面向对象方法具有四个要点:

A.认为客观世界是由对象组成;

B.把所有对象都划分成各种对象类(Class);C.把若干对象类组成一个层次结构的系统(类等级);

D.对象彼此间仅通过传递消息互相联系。

OO=Objects+Class+Inheritance+Communicationwithmessage9.1.2面向对象方法的优点1.与人们习惯的思维方法一致;2.稳定性好;3.可重用性好;4.较易开发大型软件产品;5.可维护性好。9.2面向对象的概念9.2.1对象1、对象的形象表示状态S操作1操作2操作3界面操作1、2、3的实现图9.2对象的形象表示1)定义1:对象是具有相同状态的一组操作的集合。2)定义2:对象是对属性值和操作的封装。3)定义3:对象::=<ID,MS,DS,MI>其中,ID是对象的名字;MS是对象中的操作集合;DS是对象的数据集合;MI是对象受理的消息名集合(即对外接口)。2、对象的定义3、对象的特点1)以数据为中心;2)对象是主动的;3)实现了数据封装;4)本质上具有并行性;5)模块独立性好。9.2.2其他概念1、类(Class)

类就是对具有相同数据和相同操作的一组相似对象的定义。如:Circle类具有相同的数据(圆心坐标、半径、颜色)和相同的操作(显示自己、放大缩小半径、在屏幕上移动位置)。又如:下面C++语言定义的Queue类,可用于实现一个队列(即先进先出的表):

ClassQueue{intq[100];intsloc,rloc;public:voidinit();//成员函数

voidqput(inti);intqget();};类有私有变量(Private)和公有变量(Public)。

缺省时,都属于私有的,只能由类内部其他成员来访问,不能由程序的其他部分来访问。这是一种实现封装的方法。

实例就是由某个特定的类所描述的一个具体的对象。如:Circlea;//声明Circle类实例aQueueQ1,Q2;//声明Queue类实例Q1和Q22、实例(Instance)消息就是用来请求对象执行某个处理或回答某些信息的要求。消息既可以是数据流,也可以是控制流。一条消息可以发送给不同的对象,对消息的解释完全由接收信息的对象来完成,不同的对象对相同形式的消息可以有不同的解释。

3、消息(Message)与传统程序的“调用/返回”所不同的是,对于传来的消息,对象可以返回相应的回答信息,也可以不返回。一个消息由三个部分组成:1)接收信息的对象;2)信息选择符(即消息名);3)零个或多个变元(参数)。如:MyCircle.Show(GREEN);4、方法(Method)

方法,是对象所能执行的操作。

C++中把方法称为成员函数,如Circle类中定义的成员函数:Show(intcolor)5、属性(Attribute)

属性,是类中定义的数据。

C++中把属性称为数据成员。6、封装(encapsulation)

封装就是信息隐藏,通过封装对外界隐藏了对象的实现细节。7、继承(Inheritance)继承,是指能够直接获得已有的性质和特征,而不必重复定义它们。A的操作A的变量类AA的实例变量从A的继承特性B的操作B的变量类B继承来的A的实例变量B的实例变量类AA的实例a1B的实例b1类B:A的子类图9.4实现继承机制的原理8、多态性(Polymorphism)

多态性,指子类对象可以象父类对象那样使用,同样的消息既可以发送给父类对象,也可以发送给子类对象。即不同等级的类,可以公用一个方法的名字。

C++中,多态性是通过虚函数来实现的。在不同层次的类中,虚函数实现算法不同,在运行时根据接收消息的对象所属于的类来决定执行虚函数的版本,称为动态联编。9、重载(Overloading)有两种重载:1)函数重载指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字。如:Show(inta,intb)Show(intx)Show(intx,inty,intz)C++语言中函数重载是通过静态联编实现的。即编译时根据函数变元的个数和类型,决定函数版本。2)运算符重载指同一运算符可以施加于不同类型的操作数上面。当被操作数类型不同时,运算符的含义是不同的。编译时根据被操作数的类型,决定使用算符的哪种语义。另外,在实现一个类成员函数时,必须通过用类名限定函数名来告诉编译器这个函数属于哪个类。如,编写qput()函数:

VoidQueue::qput(inti){if(sloc==100){cout<<“Queueiffull”;return;}sloc++;q[sloc]=i;}从程序中调用一个类的成员函数,用对象和点运算符。如:

Queueob1,ob2;ob1.init();//是对对象ob1的初始化函数init()的调用

ob1,ob2之间的唯一关系是它们是同一类对象。ob1的初始化不影响ob2。用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是:(1)对象模型:描述系统的数据结构;(2)动态模型:描述系统的控制结构;(3)功能模型:描述系统的功能。

3种模型必不可少,其重要程度不同,对象模型是最基本、最重要的。9.3面向对象建模UML(UnifiedModelingLanguage)

UML是面向对象的分析与设计(OOA&D)方法发展的产物。

公认的面向对象建模语言出现于70年代中期。

90年代中,一批新方法出现了,其中最引人注目的是Booch1993、OOSE和OMT-2等。1.标准建模语言UML的出现众多的建模语言各有优点,大多类同,但仍存在某些细微的差别,妨碍了用户之间的交流。统一建模语言在这样的背景下产生。1995年10月:第一个公开版本UM0.8(UnifiedMethod)。1996年6月:UM改名为UML(UnifiedModelingLanguage),发布UML0.9。1996年底:UML占面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。现最新版本:UML2.0

UML是标准的建模语言,而不是标准的开发过程。在不同组织和不同应用领域,UML应用需采取不同的开发过程。1998年:RUP(RationalUnifiedProcess)是一种典型的建模过程。2.标准建模语言UML的内容31UML的构成32事物构造块事物构造块是对模型中最具有代表性的成分的抽象,表示系统中的元素结构事物:UML中的名词,它是模型的静态部分,描述概念或物理元素。行为事物:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。分组事物:UML中的容器,用来组织模型,使模型更加的结构化。注释事务:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。33结构事物类(class)和对象(object)接口(interface)构件(component)34类和对象类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的共同特征的抽象。UML中类是用一个矩形方框表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法对象则是类的一个实例对象名类名冒号图形位置颜色Draw()图形A:图形35

接口——接口是描述某个类或构件的一个服务操作集。——接口描述了一个元素的外部可见行为。

UML符号36接口37构件构件也称组件,是指系统设计中的一个相对独立的软件部件。构件是系统设计的一个模块化部分,它把功能实现部分隐藏在内部,对外提供了一组外部接口。因此,两个具有相同接口的构件可以相互替换。

构件名称UML1.0习惯用法UML2.0习惯用法

构件名称38节点为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件。节点是运行时存在的物理元素,通常至少有存储空间和处理能力。

Server

节点Server的表示方法39行为事物交互(interaction): 是在特定语境中,共同完成某个任务的一组对象之间交换的信息集合。交互的表示法很简单,就是一条有向直线,并在上面标有操作名。40行为事物状态机(statemachine):是一个对象或交互在生命周期内响应事件所经历的状态序列在UML模型中将状态画为一个圆角矩形,并在矩形内写出状态名。等待

“等待”状态的表示方法41分组事物对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,就需要对其进行分组。在UML中,提供了“包(Package)”来实现这一目标。

数据访问

“数据访问”包的表示方法42分组事物43注释事物注释是依附于一个元素或一组元素之上,对其进行约束或解释的简单符号。

注释符号44关联关系关联是一种结构关系,它描述了一组对象之间的连接。关联两端的类可以某种角色参与关联

•角色是关联中靠近它的一端的类对另一端的类呈现的职责;

•如果关联上没有标出角色名,则隐含地用类的名称作为角色名。关联具有多重性

•多重性表示可以有多少个对象参与该关联

•固定值:3

•许多值:n或者*

•区间:0..1或者3..n

•集合:2,4,845关联关系46关联关系关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。在UML中,使用一条实线来表示关联关系操作属性类1类2属性操作关联关系人雇佣公司人雇主公司1雇员n47关联关系在关联关系中,有两种比较特殊的关系:聚合和组合聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系。如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述。聚合关系计算机主机显示器咖啡桌桌面桌腿48泛化、实现、扩展与依赖泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件的服务。扩展表示将一个构造型附加到一个元类(metaclass)上,使得元类的定义中包括这个构造型。有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。49父类属性操作子类泛化关系属性操作车公交车密码验证智能卡验证身份验证注册用户图书管理员普通读者包与包之间也存在泛化关系。泛化、实现、扩展与依赖50泛化、实现、扩展与依赖类属性操作choice组件类属性操作实现关系51泛化、实现、扩展与依赖driver.dllIDriverpath.dll类A属性操作类B属性操作Interface52泛化、实现、扩展与依赖类1属性操作add(c:course)remove(c:course)Schedulecourse验证读者《include》《include》查询读者查询图书登记借书《extend》《extend》登记借书登记还书类2属性操作依赖关系use53UML图形分类54常用UML图用例图类图状态图顺序图UsecaseSequenceClass(Simple)StateCollaborationClass(Complex)ObjectActivityRequirementRequirement阶段Analysis阶段Design阶段55用例图用例图是外部参与者所能观察到的系统功能的模型图。由一组用例、参与者及它们之间的关系组成。主要用于对系统、子系统或类的功能行为进行建模。参与者是与系统交互的外部实体,可以是人,也可以是其它系统。用例是从用户的角度描述系统的行为(功能),它将系统的功能描述成一系列事件,这些事件最终对参与者产生可观察结果。56参与者、用例间的关系类型关系类型说明表示符号关联参与者和用例间的关系泛化参与者之间或用例之间的关系包含用例之间的关系<<include>>扩展用例之间的关系<<extend>>

用例图57验证读者《include》《include》查询读者查询图书登记借书《extend》《extend》登记借书登记还书密码验证智能卡验证身份验证58用例图确定参与者方法:谁使用系统的主要功能?谁需要系统支持他们的日常工作?谁来维护、管理使系统正常工作?系统需要操纵哪些硬件?系统需要与哪些其它系统交互,包含其它计算机系统和其它应用程序?59用例图确定用例方法参与者要求系统提供哪些功能?参与者需要做什么?参与者需要读取、产生、删除、修改或存储的某些信息吗?。必须提醒参与者的系统事件有哪些?或者参与者必须提醒系统的事件有哪些?系统需要的输入、输出信息是什么?这些信息怎么来?其它特殊要求如何满足?60用例图的建立确定系统参与者及其关系确定用例及关系编写用例描述用例图61用例图示例62类图表示系统中类、协作(类或对象间的协作)、接口及其关系的图。类图中的关系包括:关联、泛化、依赖、实现。63类图类的划分:边界类:参与者与系统之间的交互实体类:系统中存储和管理的永久信息控制类:系统运行中的业务控制逻辑64类图边界类实体类《boundary》类名类名《control》类名控制类类名《entity》类名类名65类图在软件开发的不同阶段使用的类图具有不同的抽象层次,一般类图可分为三个层次,概念层、说明层、实现层。概念层类图:概念层类图中类内只有类名。通常用在需求分析阶段,该阶段类图是研究应用领域的概念。66类图说明层类图:在设计阶段,用说明层类图描述类与类之间的接口。在说明层类中有属性和方法,但没有属性的类型说明和方法的参数与返回类型。实现层类图:在实现阶段,类图描述软件系统中类的实现。67类图寻找类的技巧根据用例描述中的名词确定类的侯选者。使用CRC(class,responsibility,collaboration)分析法寻找类。根据类所扮演的职责来确定类。根据边界类、控制类、实体类的划分来帮助发现系统中的类。68类图类图的建立(可以有多种方式)分析问题领域,确定用到的类。确定类的含义、职责、确定属性、操作。确定类之间的联系。细化、调整已经得到类之间的关系,并增加相应说明。69类图示例先看清有哪些类,然后看看类之间存在的关系,并结合多重性来理解类图的结构特点以及各个属性和方法的含义70读图过程读出类:图中共有7个类,Order、OrderItem、Customer、Consignee、DeliverOrder、Peddlery、Prodcut读出关系:从图中关系最复杂(也就是线最密集)的类开始阅读,本图中最复杂的就是Order类。

1)OrderItem和Order之间是组合关系,根据箭头的方向可知Order包含了OrderItem。

2)Order类和Customer、Consignee、DeliverOrder是关联关系。也就是说,一个订单和客户、收货人、送货单是相关的。7172读图过程多重性:用来说明关联的两个类之间的数量关系

源类及多重性目标类及多重性分析Customer(1)Order(0…n)订单是属于某个客户的,网站的客户可以有0个或多个订单Order(1)Consignee(1)每个订单只能够有一个收货人Order(1)OrderItem(1…n)订单是由订单项组成的,至少要有一个订单项,最多可以有n个Order(1)DeliverOrder(1…n)一个订单有一个或多个送货单说明:系统根据订单项的产品所属的商户,将其分发给商户,拆成了多个送货单!DeliverOrder(1)OrderItem(1…n)一张送货单对应订单中的一到多个订单项DeliverOrder(1)Consignee(1)每张送货单都对应着一个收货人Peddlery(1)DeliverOrder(0…n)每个商户可以有相关的0个或多个送货单OrderItem(1)Product(1)每个订单项中都包含着唯一的一个产品Peddlery(1)Prodcut(0…n)产品是属于某个商户的,可以注册0到多个产品7374读图过程—理解方法与图Order类,有两个方法:dispatch()和close(),从名字中可以猜出它们分别实现“分拆订单生成送货单”和“完成订单”。而在DeliveOrder()类中则有一个Close()方法,同理它应该表示“完成送货”。而在OrderItem中有一个stateChange()方法和deliverState,不难猜出它就是用来改变其“是否交给收货人”的标志位。先调用Order的dispatch()方法,它将根据其包含的OrderItem中产品信息,来按供应商户分拆成若干个DeliverOrder。商户登录系统后就可以获取其DeliverOrder,并在执行完后调用close()方法。这时,就将调用OrderItem的stateChange()方法来改为其状态。同时再调用Order的close()方法,判断该Order的所有的OrderItem是否都已经送到了,如果是就将其真正close()掉75顺序图又称时序图,描述对象按照时间顺序的消息交换,显示参与交互的对象及对象之间消息的交互顺序。顺序图用来描述用例的实现,表明了由哪些对象通过消息相互协作来实现用例的功能。在用例图中,标识了消息发生交互的先后顺序。76顺序图建模元素:对象、生命线、控制焦点(激活)、消息。:Driver:CarOper()对象生命线控制焦点消息(调用)77顺序图顺序图描述的是对象之间的消息发送关系,而不是类之间的关系。在顺序图中并不包括系统中的所有类的对象。也有可能某些对象属于同一个类。78顺序图顺序图的建立(可以有多种方式)确定交互过程的上下文。识别参与交互过程的对象。为每个对象设置生命线,即确定哪些对象存在于整个交互过程中,哪些对象在交互过程中被创建和撤销。79顺序图从引发这个交互过程的初始消息开始,在生命线之间从顶到下依次画出随后的各个消息。如果需要表示消息的嵌套,或/和表示消息发生时的时间点,则采用控制焦点。如果需要说明时间约束,则在消息旁边加上约束说明。如果需要,可以为每个消息附上前置和后置条件。80顺序图81循环与分支82状态图状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况。状态机图常用来描述业务或软件系统中的对象在外部事件的作用下,对象的状态从一种状态到另一种状态的控制流。状态机图的组成元素:初始状态、终止状态、状态和转换,其中,转换将各种状态连接在一起,构成一个状态图。83最简单的状态图核心元素:一个是用圆角矩形表示的状态(初态和终态例外);另一个是在状态之间的、包含一些文字描述的有向箭头,这些箭头称为转换。烧水器的状态图84转换的五要素源状态:即受转换影响的状态目标状态:当转换完成后对象的状态触发事件:外部作用于一个对象,能够触发对象状态改变的一种现象。包括调用、改变、信号、时间四类事件。监护条件:布尔表达式,决定是否激活转换、动作:转换激活时的操作85读图小结与状态off相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。如果对象收到事件turnOn,那么将判断壶中是否有水;如果[没水],则仍然处于off状态;如果[有水]则转为on状态,并执行“烧水”动作而与状态on相关的转换也有两个,如果“水开了”就执行turnOff,关掉开关;如果烧坏了,就进入了终态了86绘制状态机图绘制状态机图的理想步骤是:寻找主要的状态,确定状态之间的转换,细化状态内的活动与转换,用复合状态来展开细节。寻找主要状态:对于航班机票预订系统而言,包括的状态主要有:

--在刚确定飞机计划时,显然是没有任何预订的,并且在有人预订机票之前都将处于这种“无预订”状态

--对订座而言显然有“部分预订”和“预订完”两种状态

--而当航班快要起飞时,显然要“预订关闭”

总结一下,主要有四种状态:无预订、部分预订、预订完以及预订关闭87确定状态间转换源目标无预订部分预订预订完预订关闭无预订预订()不直接转换关闭()部分预订退订(),使预订人=0预订(),无空座关闭()预订完不直接转换退订()关闭()预订关闭无转换无转换无转换88绘制状态机图细化状态内的活动与转换89绘制状态机图使用复合状态90活动图活动图和交互图是UML中对系统动态方面建模的两种主要形式交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流活动图是一种表述过程基理、业务过程以及工作流的技术。它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模91阅读简单活动图92活动图的主要元素初始节点和活动终点:用一个实心圆表示初始节点,用一个圆圈内加一个实心圆来表示活动终点活动节点:是活动图中最主要的元素之一,它用来表示一个活动转换:当一个活动结束时,控制流就会马上传递给下一个活动节点,在活动图中称之为“转换”,用一条带箭头的直线来表示93活动图的主要元素分支与监护条件:分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号),

一个或多个离开转换(箭头从分支符

号指向外)。而每个离开转换上都会

有一个监护条件,用来表示满足什么

条件的时候执行该转换。分岔与汇合:94修改后的简单活动图95带泳道的活动图96带对象流的活动图97绘制活动图“活动图”比较直观易懂;与传统的流程图十分的相近,只要能够读懂活动图,就不难画出活动图绘制时首先决定是否采用泳道:主要根据活动图中是否要体现出活动的不同实施者然后尽量使用分支、分岔和汇合等基本的建模元素来描述活动控制流程如果需要,加入对象流以及对象的状态变化,利用一些高级的建模元素(如辅助活动图、汇合描述、发送信号与接收信号、引脚、扩展区)来表示更多的信息活动图的建模关键是表示出控制流,其它的建模元素都是围绕这一宗旨所进行的补充98部署图99阅读基本部署图100部署图的主要元素节点:它代表一个运行时的计算资源,例如一台计算机、一个工作站等其它设备节点的概念和构件有许多相同之处,例如二者有多名称,都可以参与依赖、泛化和关联关系,都可以被嵌套,都可以有实例,都可以参与交互。但它们之间也存在明显的区别:构件是参与系统执行的事物,而节点是执行构件的事物;构件表示逻辑元素的物理打包,而节点表示构件的物理部署本图中建模了四个节点:B/S客户端、C/S客户端、IIS服务器和数据库服务器101部署图的主要元素连接:节点之间最常见的关系就是关联关系(用一根实线表示)。为了更好地表示两个节点之间的关系,我们可以通过“约束”来对连接进行描述。源节点目标节点约束含义B/S客户端IIS服务器{HTTP+Network}网络连接,使用HTTP协议C/S客户端IIS服务器{HTTP+SOAP+Network}网络连接,通过WebService访问服务IIS服务器数据库服务器{ADO.NET}.NET提供的数据库访问解决方案102部署图的补充元素处理器(《process》):具有处理能力的节点,即可以执行构件设备(《device》):没有处理能力的节点,至少是不关心其处理能力的节点。例如打印机、IC卡读写器,如果我们的系统不考虑它们内部的芯片,就可建模为设备节点属性和操作:可以为一个节点提供处理器速度、内存容量、网卡数量等属性,可以为其提供启动、关机等操作103部署图的补充元素自定义构造型图标104确定所需的节点和节点间的连接关系IC卡读卡器:提供给员工刷卡用,它将收集刷卡的时间信息,传给应用系统,并存入数据库中应用服务器:用来负责从IC卡读卡器中收集信息,并对管理人员提供员工设置、考勤查询等功能数据库服务器:用来存储考勤数据,由于该系统比较小,因此在物理上可以与应用服务器合并客户端软件:提供给管理人员使用,连接应用服务器,完成相应操作105根据实现描述节点客户端:需使用Windows操作系统,安装客户端软件(假设名为KaoQing.exe)服务器:包含一个用Delphi开发的服务端软件(设为KqServer.exe),它需要与Access数据库交互(设为KaoQing.mdb),并且需要通过IC卡读卡器的驱动程序(假设名为cardReader.dll)来实现与IC卡读卡器通信IC卡读写器:对于本系统而言,它是不执行构件的设备,不过为了方便员工,安装了3个。106作业解答教材购销系统主要功能根据学校的教学计划,向选课的学生及时供应所需教材

①审查学生购书单有效性,对有效书单发售教材

②对属于计划供应但暂时缺货的教材进行登记根据缺书登记补充采购所缺的教材,通知学生补购

①将缺书登记表汇总为待购教材计划②待购教材到货后,及时通知学生补购107采购进书通知产生补售书单

1.6学生F1教材存量表开发票

1.2登记售书和打印领书单

1.4有效购书单暂缺书单登记缺书

1.5补售书单购书单F2缺书登记表审查有效性

1.1无效书单学生F3学生用书表F4售书登记表打印发票

1.3发票发票领书单108进书通知

2.1按书号汇总书库保管员F1教材存量表按出版社汇总

2.2修改教材库存和待购量

2.3销售F5待购教材表F6教材一览表缺书单F2缺书登记表进书通知109使用SD方法给出教材购销系统中销售子系统的软件结构图.细化并修改DFD图110产生补售书单

1.6学生F1教材存量表开发票

1.2登记售书

1.4有效购书单暂缺书单登记缺书

1.5补售书单购书单F2缺书登记表审查有效性

1.1无效书单学生F3学生用书表F4售书登记表打印发票

1.3发票发票领书单打印领书单

1.7F7进书登记表111

2.1按书号汇总书库保管员F1教材存量表按出版社汇总

2.2修改教材库存和待购量

2.3F5待购教材表F6教材一览表缺书单F2缺书登记表进书通知F7进书登记表112

1.6学生F1

1.2

1.4

1.5F2

1.1学生F3F4

1.3

1.7F7++113销售初售补售审查有效性开发票售书登记缺书登记售书打印发票打印领书单产生补售书单获得有效性购书单获得补售书单114

1.语句覆盖:

X=85,Y=85(路径A-E);X=95,Y=50(路径B-C-E);X=75,Y=75(路径B-D-E);习题五参考答案判断1判断2条件1条件2条件3条件4条件51152.判断覆盖:

X=85,Y=85(判断1成立,判断2不成立)A-E;X=95,Y=50(判断1不成立,判断2成立)B-C-E;X=75,Y=75(判断1、判断2都不成立)B-D-E;3.条件覆盖:

X=85,Y=85(判断1两条件成立)A-E;

X=95,Y=50(判断2中条件3、条件4成立)B-C-E;X=50,Y=90(判断2中条件3、条件5成立)B-C-E;

X=60,Y=60(判断1、判断2各个条件都不成立)B-D-E;116

4.判断/条件覆盖:

X=85,Y=85(判断1为Y且两条件成立)A-E;X=95,Y=50(判断2为Y且条件3、条件4成立)B-C-E;X=50,Y=95(判断2为Y且条件3、条件5成立)B-C-E;X=60,Y=60(判断1、判断2为N且各个条件都不成立)B-D-E;117T2T3T45.条件组合覆盖:本题有5个条件,分别记为T4T3T5T1T2T5T1对第一个判断,有下列情况:T1T2(1)T1T2T1T2T2T1(2)(3)(4)对第二个判断,有下列情况:T3T4T5T4T3T5T3

温馨提示

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

评论

0/150

提交评论