UML及面向对象分析8-9-10(教案稿).ppt_第1页
UML及面向对象分析8-9-10(教案稿).ppt_第2页
UML及面向对象分析8-9-10(教案稿).ppt_第3页
UML及面向对象分析8-9-10(教案稿).ppt_第4页
UML及面向对象分析8-9-10(教案稿).ppt_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

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

文档简介

软件工程概论,2,面向对象方法学引论,面向对象方法学概述 面向对象的基本概念 UML及面向对象分析建模,3,面向对象方法学概述,面向对象方法及其发展历史 面向对象软件工程方法学 面向对象方法学优点,4,面向对象方法及其发展历史,面向对象技术发展历史(软件工程领域) 初期阶段(20世纪60年代) 挪威计算中心和奥斯陆大学共同研制Simula语言,首次引入类、继承和对象等概念;,5,面向对象方法及其发展历史,发展时期(20世纪80年代) 面向对象程序设计语言(C+)和面向对象软件设计成熟起来; 成熟阶段(20世纪90年代) 面向对象分析与设计技术成熟,面向对象方法学引入,支持面向对象建模的方法学大战,统一建摸语言(UML)成为标准.,6,面向对象方法及其发展历史,面向对象方法学发展的历史必然性 人与计算机之间的语义断层,7,面向对象方法及其发展历史,传统方法学分析与设计之间的语义断层,8,面向对象软件工程方法学,面向对象分析 面向对象设计 面向对象实现(编程、测试) 面向对象维护,9,面向对象软件工程方法学要点,概括地说,面向对象方法具有下述4个要点: (1) 面向对象方法用对象分解取代了传统方法的功能分解。 (2) 把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。,10,面向对象软件工程方法学要点,(3) 按照子类与父类的关系,把若干个对象类组成一个层次结构的系统。 (4) 对象彼此之间仅能通过传递消息互相联系。 面向对象的方法学可以用下列方程来概括: 面向对象=对象+类+继承+通信,11,面向对象方法学优点,面向对象的主要优点 与人类习惯的思维方式一致 稳定性好 可重用性好 较易开发大型软件产品 可维护性好,12,(1)与人类习惯的思维方法一致,把数据和代码作为分离的实体,反映了计算机的观点。但是,这样做的时候总存在使用错误的数据调用正确的程序模块,或使用正确的数据调用错误的程序模块的危险。 传统的程序设计技术忽略了数据和操作之间的内在联系,用这种方法所设计出来的软件系统其解空间与问题空间并不一致,令人感到难于理解。,13,面向对象的设计方法使用现实世界的概念抽象地思考问题从而自然地解决问题,它鼓励开发者在软件开发的绝大部分过程中都用应用领域的概念去思考,从而按照人们习惯的思维方式建立起问题领域的模型,模拟客观世界,所以这种方法开发出来的系统容易理解。,14,(2)稳定性好,传统的软件开发方法以算法为核心,开发过程基于功能分析和功能分解。用传统方法所建立起来的软件系统的结构紧密依赖于系统所要完成的功能,当功能需求发生变化时将引起软件结构的整体修改。事实上,用户需求变化大部分是针对功能的,因此,这样的软件系统是不稳定的。,15,面向对象方法基于构造问题领域的对象模型,以对象为中心构造软件系统。所以,当对系统的功能需求变化时并不会引起软件结构的整体变化,往往仅需要作一些局部性的修改。 总之,由于现实世界中的实体是相对稳定的,因此,以对象为中心构造的软件系统也是比较稳定的。,16,(3)可重用性好,重用是提高生产率的最主要的方法。 传统的软件重用技术是利用标准函数库。并不是理想的可重用的软件成分。 对象所固有的封装性和信息隐藏等机理,使得对象内部的实现与外界隔离,具有较强的独立性。因此,对象类提供了比较理想的模块化机制和比较理想的可重用的软件成分。,17,4. 较易开发大型软件产品,用面向对象方法学开发软件时可以把一个大型软件产品分解成一系列本质上相互独立的小产品来处理,不仅降低了开发的技术难度,而且也使得对开发工作的管理变得容易。,18,(5)可维护性好,用传统方法和面向过程语言开发出来的软件很难维护。 用面向对象方法所开发的软件可维护性好,原因是: 面向对象的软件稳定性比较好 面向对象的软件比较容易修改。 面向对象的软件比较容易理解。 易于测试和调试。类的独立性好。,19,面向对象的基本概念,对象 类 消息 封装 继承性 多态性 重载,20,面向对象的基本概念,1.对象 对象(Object)是系统中描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。,属性是用来描述对象静态特征的一个数据项。 服务是用来描述对象动态特征(行为)的一个操作序列。,21,面向对象的基本概念,类 类(Class)是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。 类代表一个抽象的概念或事物,对象是在客观世界中实际存在的类的实例。 类体现了人们认识事物的基本思维方法:分类,22,面向对象的基本概念,类与对象的比较 :,“同类对象具有相同的属性和服务”是指它们的定义形式相同,而不是说每个对象的属性值都相同。,类是静态的,类的存在、语义和关系在程序执行前就已经定义好了。,对象是动态的,对象在程序执行时可以被创建和删除。,在面向对象的系统分析和设计中,并不需要逐个对对象进行说明,而是着重描述代表一批对象共性的类。,23,面向对象的基本概念,3. 消息 消息是用来请求对象参与某一处理或回答某一要求的信息,是对象之间建立的一种通信机制。 通常一个消息由三部分组成: 接收消息的对象 消息标识符(即消息名) 零个或多个变元 例如:MyCircle.Show(Green) MyCircle是接收消息的对象的名字,Show是消息名,Green是消息的变元。,24,面向对象的基本概念,4、 封装 封装(Encapsulation)是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。,25,面向对象的基本概念,封装的作用 (1)使对象形成两个部分:接口和实现 (2)信息隐藏将所声明的功能(行为)与内部实现(细节)分离 (3)封装可以保护对象,避免用户误用;也可以保护客户端,其实现过程的改变不会影响到相应客户端的改变。,26,面向对象的基本概念,5. 继承性 定义 优点,类A,A的实例a1,类B:A的子类,B的实例b1,27,面向对象的基本概念,28,1、继承使得相似对象可以共享程序代码和数据结构,大大减少程序中的冗余信息; 2、继承可以把已有的一般性的类具体化来提高软件的可重用性。 3、便于软件修改维护。,继承性的优点,29,面向对象的基本概念,6.多态性(Polymorphism)是指在父类中定义的属性或服务被子类继承后,可以具有不同的数据类型或表现出不同的行为。,30,面向对象的基本概念,7. 重载-静态联编 函数重载 运算符重载,函数重载是指在同一作用域内(同一类内系统内)的若干个参数特征不同(可以是个数也可以是类别)的函数可以使用相同的函数名字。,运算符重载是指同一个运算符可以施加于不同类型的操作数上面。如+号可以用来计算两个整数,也可以用来计算两个实数。,31,统一建模语言(UML) UML是由世界著名的面向对象技术专家G.BOOCH、J.RUMBAUGH和I.JACOBSON发起,在Booch方法、OMT方法、OOSE方法的基础上,吸取其它面向对象方法的优点,广泛征求意见,几经修改而完成的。随着OMG(Object Management Group)采纳UML为标准语言,面向对象领域的方法学大战也宣告结束,各种方法的提出者很多也开始转向UML方面的研究。,UML及面向对象建模,32,UML发展历程,UML及面向对象建模,33,UML的概念,1、UML(Unified Modeling Language) 统一建模语言是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言。 不是可视化的程序设计语言,而是可视化的建模语言; 不是工具或知识库的规格说明,而是一种建模语言规格说明,是一种表示的标准; 不是过程,也不是方法,但允许任何一种过程和方法使用它。,34,UML的概念,2、UML 可以描述开发所需要的各种视图 概念视图:业务过程和系统功能 具体视图:程序中的类、数据库模式、可重用的软件构件。 3、可视化(Visualizing) UML 提供一组具有明确语义的图形符号,可以建立清晰的模型便于交流,所有开发人员都可以无歧义地解释这个模型。 UML代替了传统的“边想边写”开发方式。,35,4、详细描述(Specifying) 详细描述意味着建立精确的和无歧义的模型。 UML为所有重要的分析、设计和实现决策提供了精确的、无歧义的和完整的描述。,UML的概念,36,5、构造性(Constructing) UML 不是一种可视化的编程语言,但它所描述的模型可以映射成不同的编程语言,如JAVA、C+ 和Visual Basic 等。 正向工程:从UML 模型到编程语言的代码生成 逆向工程:由编程语言代码重新构造UML 模型,UML的概念,37,6、文档化的(Documenting) UML 可以建立系统体系结构及其详细文档,提供描述需求和用于测试的语言,同时可以对项目计划和发布管理的活动进行建模。,UML的概念,38,UML 的构成,39,事物构造块,事物构造块是对模型中最具有代表性的成分的抽象,表示系统中的元素 结构事物:UML中的名词,它是模型的静态部分,描述概念或物理元素。 行为事物:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。 分组事物:UML中的容器,用来组织模型,使模型更加的结构化。 注释事务:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。,40,结构事物,类(class)和对象(object) 接口(interface) 构件(component),41,类和对象,类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的共同特征的抽象 。 UML中类是用一个矩形方框表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法 对象则是类的一个实例,对象名,类名,冒号,图形A : 图形,42,接口,接口是描述某个类或构件的一个服务操作集。 接口描述了一个元素的外部可见行为。,UML 符号,43,接口,44,构件,构件也称组件,是指系统设计中的一个相对独立的软件部件。 构件是系统设计的一个模块化部分,它把功能实现部分隐藏在内部,对外提供了一组外部接口。因此,两个具有相同接口的构件可以相互替换。,UML 1.0 习惯用法,UML 2.0 习惯用法,45,节点,为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件。 节点是运行时存在的物理元素,通常至少有存储空间和处理能力。,节点Server的表示方法,46,行为事物,交互(interaction): 是在特定语境中,共同完成某个任务的一组对象之间交换的信息集合 。 交互的表示法很简单,就是一条有向直线,并在上面标有操作名。,47,行为事物,状态机(state machine):是一个对象或交互在生命周期内响应事件所经历的状态序列 在UML模型中将状态画为一个圆角矩形,并在矩形内写出状态名。,“等待”状态的表示方法,48,分组事物,对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,就需要对其进行分组。在UML中,提供了“包(Package)”来实现这一目标。,“数据访问”包的表示方法,49,分组事物,50,注释事物,注释是依附于一个元素或一组元素之上,对其进行约束或解释的简单符号。,注释符号,51,关联关系,关联是一种结构关系,它描述了一组对象之间的连接。 关联两端的类可以某种角色参与关联 角色是关联中靠近它的一端的类对另一端的类呈现的职责; 如果关联上没有标出角色名,则隐含地用类的名称作为角色名。 关联具有多重性 多重性表示可以有多少个对象参与该关联 固定值:3 许多值:n 或者* 区间:01 或者3n 集合:2,4,8,52,关联关系,53,关联关系,关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。 在UML中,使用一条实线来表示关联关系,54,关联关系,在关联关系中,有两种比较特殊的关系:聚合和组合 聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系。 如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述 。,55,泛化、实现、扩展与依赖,泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。 实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件的服务。 扩展表示将一个构造型附加到一个元类(metaclass)上,使得元类的定义中包括这个构造型。 有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。,56,公交车,泛化、实现、扩展与依赖,57,泛化、实现、扩展与依赖,类,属性,操作,choice,类,属性,操作,58,泛化、实现、扩展与依赖,59,泛化、实现、扩展与依赖,60,UML图形分类,61,常用UML图,用例图 类图 状态图 顺序图,Use case,Sequence,Class (Simple),State,Collaboration,Class (Complex),Object,Activity,Requirement,Requirement阶段,Analysis阶段,Design阶段,62,用例图,用例图是外部参与者所能观察到的系统功能的模型图。 由一组用例、参与者及它们之间的关系组成。主要用于对系统、子系统或类的功能行为进行建模。 参与者是与系统交互的外部实体,可以是人,也可以是其它系统。 用例是从用户的角度描述系统的行为(功能),它将系统的功能描述成一系列事件,这些事件最终对参与者产生可观察结果。,63,用例图,64,65,用例图,确定参与者方法: 谁使用系统的主要功能? 谁需要系统支持他们的日常工作? 谁来维护、管理使系统正常工作? 系统需要操纵哪些硬件? 系统需要与哪些其它系统交互,包含其它计算机系统和其它应用程序?,66,用例图,确定用例方法 参与者要求系统提供哪些功能?参与者需要做什么? 参与者需要读取、产生、删除、修改或存储的某些信息吗?。 必须提醒参与者的系统事件有哪些?或者参与者必须提醒系统的事件有哪些? 系统需要的输入、输出信息是什么?这些信息怎么来? 其它特殊要求如何满足?,67,用例图的建立 确定系统参与者及其关系 确定用例及关系 编写用例描述,用例图,68,用例图示例,69,类图,表示系统中类、协作(类或对象间的协作)、接口及其关系的图。 类图中的关系包括:关联、泛化、依赖、实现。,70,类图,类的划分: 边界类:参与者与系统之间的交互 实体类:系统中存储和管理的永久信息 控制类:系统运行中的业务控制逻辑,71,类图,边界类,实体类,boundary 类名,类名,control 类名,控制类,类名,entity 类名,类名,72,类图,在软件开发的不同阶段使用的类图具有不同的抽象层次,一般类图可分为三个层次,概念层、说明层、实现层。 概念层类图:概念层类图中类内只有类名。通常用在需求分析阶段,该阶段类图是研究应用领域的概念。,73,类图,说明层类图:在设计阶段,用说明层类图描述类与类之间的接口。在说明层类中有属性和方法,但没有属性的类型说明和方法的参数与返回类型。 实现层类图:在实现阶段,类图描述软件系统中类的实现。,74,类图,寻找类的技巧 根据用例描述中的名词确定类的侯选者。 使用CRC(class,responsibility,collaboration)分析法寻找类。根据类所扮演的职责来确定类。 根据边界类、控制类、实体类的划分来帮助发现系统中的类。,75,类图,类图的建立(可以有多种方式) 分析问题领域,确定用到的类。 确定类的含义、职责、确定属性、操作。 确定类之间的联系。 细化、调整已经得到类之间的关系,并增加相应说明。,76,类图示例,先看清有哪些类,然后看看类之间存在的关系,并结合多重性来理解类图的结构特点以及各个属性和方法的含义,77,读图过程,读出类:图中共有7个类,Order、OrderItem、Customer、Consignee、DeliverOrder、Peddlery、Prodcut 读出关系:从图中关系最复杂(也就是线最密集)的类开始阅读,本图中最复杂的就是Order类。 1)OrderItem和Order之间是组合关系,根据箭头的方向可知Order包含了OrderItem。 2)Order类和Customer、Consignee、DeliverOrder是关联关系。也就是说,一个订单和客户、收货人、送货单是相关的。,78,79,读图过程,多重性:用来说明关联的两个类之间的数量关系,80,81,读图过程理解方法与图,Order类,有两个方法:dispatch()和close(),从名字中可以猜出它们分别实现“分拆订单生成送货单”和“完成订单”。而在DeliveOrder()类中则有一个Close()方法,同理它应该表示“完成送货”。而在OrderItem中有一个stateChange()方法和deliverState,不难猜出它就是用来改变其“是否交给收货人”的标志位。 先调用Order的dispatch()方法,它将根据其包含的OrderItem中产品信息,来按供应商户分拆成若干个DeliverOrder。商户登录系统后就可以获取其DeliverOrder,并在执行完后调用close()方法。这时,就将调用OrderItem的stateChange()方法来改为其状态。同时再调用Order的close()方法,判断该Order的所有的OrderItem是否都已经送到了,如果是就将其真正close()掉,82,顺序图,又称时序图,描述对象按照时间顺序的消息交换,显示参与交互的对象及对象之间消息的交互顺序。 顺序图用来描述用例的实现,表明了由哪些对象通过消息相互协作来实现用例的功能。 在用例图中,标识了消息发生交互的先后顺序。,83,顺序图,建模元素:对象、生命线、控制焦点(激活)、消息。,84,顺序图,顺序图描述的是对象之间的消息发送关系,而不是类之间的关系。 在顺序图中并不包括系统中的所有类的对象。也有可能某些对象属于同一个类。,85,顺序图,顺序图的建立(可以有多种方式) 确定交互过程的上下文。 识别参与交互过程的对象。 为每个对象设置生命线,即确定哪些对象存在于整个交互过程中,哪些对象在交互过程中被创建和撤销。,86,顺序图,从引发这个交互过程的初始消息开始,在生命线之间从顶到下依次画出随后的各个消息。 如果需要表示消息的嵌套,或/和表示消息发生时的时间点,则采用控制焦点。 如果需要说明时间约束,则在消息旁边加上约束说明。 如果需要,可以为每个消息附上前置和后置条件。,87,顺序图,88,循环与分支,89,状态图,状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况 。 状态机图常用来描述业务或软件系统中的对象在外部事件的作用下,对象的状态从一种状态到另一种状态的控制流。 状态机图的组成元素:初始状态、终止状态、状态和转换,其中,转换将各种状态连接在一起,构成一个状态图。,90,最简单的状态图,核心元素:一个是用圆角矩形表示的状态(初态和终态例外);另一个是在状态之间的、包含一些文字描述的有向箭头,这些箭头称为转换。,烧水器的状态图,91,转换的五要素,源状态:即受转换影响的状态 目标状态:当转换完成后对象的状态 触发事件:外部作用于一个对象,能够触发对象状态改变的一种现象。包括调用、改变、信号、时间四类事件。 监护条件:布尔表达式,决定是否激活转换、 动作:转换激活时的操作,92,读图小结,与状态off相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。如果对象收到事件turnOn,那么将判断壶中是否有水;如果没水,则仍然处于off状态;如果有水则转为on状态,并执行“烧水”动作 而与状态on相关的转换也有两个,如果“水开了”就执行turnOff,关掉开关;如果烧坏了,就进入了终态了,93,绘制状态机图,绘制状态机图的理想步骤是:寻找主要的状态,确定状态之间的转换,细化状态内的活动与转换,用复合状态来展开细节。 寻找主要状态:对于航班机票预订系统而言,包括的状态主要有: - 在刚确定飞机计划时,显然是没有任何预订的,并且在有人预订机票之前都将处于这种“无预订”状态 - 对订座而言显然有“部分预订”和“预订完”两种状态 - 而当航班快要起飞时,显然要“预订关闭” 总结一下,主要有四种状态:无预订、部分预订、预订完以及预订关闭,94,确定状态间转换,95,绘制状态机图,细化状态内的活动与转换,96,绘制状态机图,使用复合状态,97,活动图,活动图和交互图是UML中对系统动态方面建模的两种主要形式 交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流 活动图是一种表述过程基理、业务过程以及工作流的技术。它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模,98,阅读简单活动图,99,活动图的主要元素,初始节点和活动终点:用一个实心圆表示初始节点,用一个圆圈内加一个实心圆来表示活动终点 活动节点:是活动图中最主要的元素之一,它用来表示一个活动 转换:当一个活动结束时,控制流就会马上传递给下一个活动节点,在活动图中称之为“转换”,用一条带箭头的直线来表示,100,活动图的主要元素,分支与监护条件:分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号), 一个或多个离开转换(箭头从分支符 号指向外)。而每个离开转换上都会 有一个监护条件,用来表示满足什么 条件的时候执行该转换。 分岔与汇合:,101,修改后的简单活动图,102,带泳道的活动图,103,带对象流的活动图,104,绘制活动图,“活动图” 比较直观易懂;与传统的流程图十分的相近,只要能够读懂活动图,就不难画出活动图 绘制时首先决定是否采用泳道:主要根据活动图中是否要体现出活动的不同实施者 然后尽量使用分支、分岔和汇合等基本的建模元素来描述活动控制流程 如果需要,加入对象流以及对象的状态变化,利用一些高级的建模元素(如辅助活动图、汇合描述、发送信号与接收信号、引脚、扩展区)来表示更多的信息 活动图的建模关键是表示出控制流,其它的建模元素都是围绕这一宗旨所进行的补充,105,部署图,106,阅读基本部署图,107,部署图的主要元素,节点:它代表一个运行时的计算资源,例如一台计算机、一个工作站等其它设备 节点的概念和构件有许多相同之处,例如二者有多名称,都可以参与依赖、泛化和关联关系,都可以被嵌套,都可以有实例,都可以参与交互。但它们之间也存在明显的区别:构件是参与系统执行的事物,而节点是执行构件的事物;构件表示逻辑元素的物理打包,而节点表示构件的物理部署 本图中建模了四个节点:B/S客户端、C/S客户端、IIS服务器和数据库服务器,108,部署图的主要元素,连接:节点之间最常见的关系就是关联关系(用一根实线表示)。为了更好地表示两个节点之间的关系,我们可以通过“约束”来对连接进行描述。,109,部署图的补充元素,处理器(process):具有处理能力的节点,即可以执行构件 设备(device):没有处理能力的节点,至少是不关心其处理能力的节点。例如打印机、IC卡读写器,如果我们的系统不考虑它们内部的芯片,就可建模为设备 节点属性和操作:可以为一个节点提供处理器速度、内存容量、网卡数量等属性,可以为其提供启动、关机等操作,110,部署图的补充元素,自定义构造型图标,111,确定所需的节点和节点间的连接关系,IC卡读卡器:提供给员工刷卡用,它将收集刷卡的时间信息,传给应用系统,并存入数据库中 应用服务器:用来负责从IC卡读卡器中收集信息,并对管理人员提供员工设置、考勤查询等功能 数据库服务器:用来存储考勤数据,由于该系统比较小,因此在物理上可以与应用服务器合并 客户端软件:提供给管理人员使用,连接应用服务器,完成相应操作,112,根据实现描述节点,客户端:需使用Windows操作系统,安装客户端软件(假设名为KaoQing.exe) 服务器:包含一个用Delphi开发的服务端软件(设为KqServer.exe),它需要与Access数据库交互(设为KaoQing.mdb),并且需要通过IC卡读卡器的驱动程序(假设名为cardReader.dll)来实现与IC卡读卡器通信 IC卡读写器:对于本系统而言,它是不执行构件的设备,不过为了方便员工,安装了3个。,113,作业解答,教材购销系统 主要功能 根据学校的教学计划,向选课的学生及时供应所需教材 审查学生购书单有效性,对有效书单发售教材 对属于计划供应但暂时缺货的教材进行登记 根据缺书登记补充采购所缺的教材,通知学生补购 将缺书登记表汇总为待购教材计划 待购教材到货后,及时通知学生补购,114,采购,进书 通知,学生,F1教材存量表,有效 购书单,暂缺 书单,补售书单,购书单,F2 缺书登记表,无效书单,学生,F3学生用书表,F4售书登记表,发票,发票,领书单,115,进书通知,2.1按书号汇总,书库保管员,F1教材存量表,销售,F5待购教材表,F6教材一览表,缺书单,F2 缺书登记表,进书通知,116,使用SD方法给出教材购销系统中销售子系统 的软件结构图. 细化并修改DFD图,117,学生,F1教材存量表,有效 购书单,暂缺 书单,补售书单,购书单,F2 缺书登记表,无效书单,学生,F3学生用书表,F4售书登记表,发票,发票,领书单,F7 进书登记表,118,119,+,+,120,121,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,条件5,122,2. 判断覆盖: 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;,123,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;,124,5. 条件组合覆盖:本

温馨提示

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

评论

0/150

提交评论