版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程概论1面向对象方法学引论面向对象方法学概述面向对象的基本概念UML及面向对象分析建模2面向对象方法学概述面向对象方法及其发展历史面向对象软件工程方法学面向对象方法学优点3面向对象方法及其发展历史面向对象技术发展历史(软件工程领域)初期阶段(20世纪60年代) 挪威计算中心和奥斯陆大学共同研制Simula语言,首次引入类、继承和对象等概念;4面向对象方法及其发展历史发展时期(20世纪80年代) 面向对象程序设计语言(C+)和面向对象软件设计成熟起来;成熟阶段(20世纪90年代) 面向对象分析与设计技术成熟,面向对象方法学引入,支持面向对象建模的方法学大战,统一建摸语言(UML)成为标准.
2、5面向对象方法及其发展历史面向对象方法学发展的历史必然性人与计算机之间的语义断层存储单元文档文件 new() getname():string addreservation(theReservation:Reservation) name:string id:string reservation:Reservationborrowerinfo对象类6面向对象方法及其发展历史传统方法学分析与设计之间的语义断层结构化分析数据流图 结构化设计转换模块结构图 面向对象分析类图 面向对象设计类图 7面向对象软件工程方法学面向对象分析面向对象设计面向对象实现(编程、测试)面向对象维护 8面向对象软件工程方
3、法学要点概括地说,面向对象方法具有下述4个要点:(1) 面向对象方法用对象分解取代了传统方法的功能分解。(2) 把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。9面向对象软件工程方法学要点(3) 按照子类与父类的关系,把若干个对象类组成一个层次结构的系统。(4) 对象彼此之间仅能通过传递消息互相联系。面向对象的方法学可以用下列方程来概括:面向对象=对象+类+继承+通信10面向对象方法学优点面向对象的主要优点与人类习惯的思维方式一致稳定性好可重用性好较易开发大型软件产品可维护性好11(1)与人类习惯的思维方法一致 把数据和代码作为分离的实体,反映了计算
4、机的观点。但是,这样做的时候总存在使用错误的数据调用正确的程序模块,或使用正确的数据调用错误的程序模块的危险。 传统的程序设计技术忽略了数据和操作之间的内在联系,用这种方法所设计出来的软件系统其解空间与问题空间并不一致,令人感到难于理解。 12 面向对象的设计方法使用现实世界的概念抽象地思考问题从而自然地解决问题,它鼓励开发者在软件开发的绝大部分过程中都用应用领域的概念去思考,从而按照人们习惯的思维方式建立起问题领域的模型,模拟客观世界,所以这种方法开发出来的系统容易理解。13(2)稳定性好 传统的软件开发方法以算法为核心,开发过程基于功能分析和功能分解。用传统方法所建立起来的软件系统的结构紧
5、密依赖于系统所要完成的功能,当功能需求发生变化时将引起软件结构的整体修改。事实上,用户需求变化大部分是针对功能的,因此,这样的软件系统是不稳定的。 14 面向对象方法基于构造问题领域的对象模型,以对象为中心构造软件系统。所以,当对系统的功能需求变化时并不会引起软件结构的整体变化,往往仅需要作一些局部性的修改。 总之,由于现实世界中的实体是相对稳定的,因此,以对象为中心构造的软件系统也是比较稳定的。15(3)可重用性好重用是提高生产率的最主要的方法。 传统的软件重用技术是利用标准函数库。并不是理想的可重用的软件成分。 对象所固有的封装性和信息隐藏等机理,使得对象内部的实现与外界隔离,具有较强的独
6、立性。因此,对象类提供了比较理想的模块化机制和比较理想的可重用的软件成分。164. 较易开发大型软件产品 用面向对象方法学开发软件时可以把一个大型软件产品分解成一系列本质上相互独立的小产品来处理,不仅降低了开发的技术难度,而且也使得对开发工作的管理变得容易。17(5)可维护性好 用传统方法和面向过程语言开发出来的软件很难维护。 用面向对象方法所开发的软件可维护性好,原因是: 面向对象的软件稳定性比较好 面向对象的软件比较容易修改。 面向对象的软件比较容易理解。 易于测试和调试。类的独立性好。18面向对象的基本概念对象类消息封装继承性多态性重载19面向对象的基本概念 1.对象 对象(Object
7、)是系统中描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。属性是用来描述对象静态特征的一个数据项。服务是用来描述对象动态特征(行为)的一个操作序列。20面向对象的基本概念类 类(Class)是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。 类代表一个抽象的概念或事物,对象是在客观世界中实际存在的类的实例。 类体现了人们认识事物的基本思维方法:分类21面向对象的基本概念类与对象的比较 : “同类对象具有相同的属性和服务”是指它们的定义形式相同,而不是说每个对象的属性值都相同。 类
8、是静态的,类的存在、语义和关系在程序执行前就已经定义好了。 对象是动态的,对象在程序执行时可以被创建和删除。 在面向对象的系统分析和设计中,并不需要逐个对对象进行说明,而是着重描述代表一批对象共性的类。22面向对象的基本概念3. 消息消息是用来请求对象参与某一处理或回答某一要求的信息,是对象之间建立的一种通信机制。通常一个消息由三部分组成:接收消息的对象消息标识符(即消息名)零个或多个变元 例如:MyCircle.Show(Green)MyCircle是接收消息的对象的名字,Show是消息名,Green是消息的变元。23面向对象的基本概念4、 封装 封装(Encapsulation)是把对象的
9、属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。24面向对象的基本概念封装的作用(1)使对象形成两个部分:接口和实现(2)信息隐藏将所声明的功能(行为)与内部实现(细节)分离(3)封装可以保护对象,避免用户误用;也可以保护客户端,其实现过程的改变不会影响到相应客户端的改变。25面向对象的基本概念5. 继承性 定义 优点A的操作A的变量类A类AA的实例变量A的实例a1从A继承特性B的操作B的变量类B:A的子类类B继承来的A的实例变量B的实例变量B的实例b126面向对象的基本概念271、继承使得相似对象可以共享程序代码和数据结构,大大减少程序中的冗余信息;2、继承可以把已有的一般性
10、的类具体化来提高软件的可重用性。3、便于软件修改维护。继承性的优点28面向对象的基本概念 6.多态性(Polymorphism)是指在父类中定义的属性或服务被子类继承后,可以具有不同的数据类型或表现出不同的行为。29面向对象的基本概念7. 重载-静态联编函数重载运算符重载函数重载是指在同一作用域内(同一类内系统内)的若干个参数特征不同(可以是个数也可以是类别)的函数可以使用相同的函数名字。运算符重载是指同一个运算符可以施加于不同类型的操作数上面。如+号可以用来计算两个整数,也可以用来计算两个实数。30统一建模语言(UML) UML是由世界著名的面向对象技术专家G.BOOCH、J.RUMBAUG
11、H和I.JACOBSON发起,在Booch方法、OMT方法、OOSE方法的基础上,吸取其它面向对象方法的优点,广泛征求意见,几经修改而完成的。随着OMG(Object Management Group)采纳UML为标准语言,面向对象领域的方法学大战也宣告结束,各种方法的提出者很多也开始转向UML方面的研究。UML及面向对象建模31UML发展历程UML及面向对象建模32UML的概念1、UML(Unified Modeling Language) 统一建模语言是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言。 不是可视化的程序设计语言,而是可视化的建模语言; 不是工具或知识库的规
12、格说明,而是一种建模语言规格说明,是一种表示的标准; 不是过程,也不是方法,但允许任何一种过程和方法使用它。33UML的概念 2、UML 可以描述开发所需要的各种视图 概念视图:业务过程和系统功能 具体视图:程序中的类、数据库模式、可重用的软件构件。 3、可视化(Visualizing) UML 提供一组具有明确语义的图形符号,可以建立清晰的模型便于交流,所有开发人员都可以无歧义地解释这个模型。 UML代替了传统的“边想边写”开发方式。344、详细描述(Specifying) 详细描述意味着建立精确的和无歧义的模型。 UML为所有重要的分析、设计和实现决策提供了精确的、无歧义的和完整的描述。U
13、ML的概念355、构造性(Constructing) UML 不是一种可视化的编程语言,但它所描述的模型可以映射成不同的编程语言,如JAVA、C+ 和Visual Basic 等。 正向工程:从UML 模型到编程语言的代码生成 逆向工程:由编程语言代码重新构造UML 模型UML的概念366、文档化的(Documenting) UML 可以建立系统体系结构及其详细文档,提供描述需求和用于测试的语言,同时可以对项目计划和发布管理的活动进行建模。UML的概念37UML 的构成38事物构造块 事物构造块是对模型中最具有代表性的成分的抽象,表示系统中的元素结构事物:UML中的名词,它是模型的静态部分,描
14、述概念或物理元素。行为事物:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。分组事物:UML中的容器,用来组织模型,使模型更加的结构化。注释事务:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。39结构事物类(class)和对象(object)接口(interface)构件(component)40类和对象类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的共同特征的抽象 。UML中类是用一个矩形方框表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法 对象则是类的一个实例 对象名类名冒号图形位置颜色Draw()图形A : 图形 41
15、接口 接口是描述某个类或构件的一个服务操作集。 接口描述了一个元素的外部可见行为。 UML 符号42接口43构件构件也称组件,是指系统设计中的一个相对独立的软件部件。构件是系统设计的一个模块化部分,它把功能实现部分隐藏在内部,对外提供了一组外部接口。因此,两个具有相同接口的构件可以相互替换。 构件名称 UML 1.0 习惯用法 UML 2.0 习惯用法 构件名称44节点为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件。 节点是运行时存在的物理元素,通常至少有存储空间和处理能力。 Server 节点Server的表示方法
16、45行为事物交互(interaction):是在特定语境中,共同完成某个任务的一组对象之间交换的信息集合 。交互的表示法很简单,就是一条有向直线,并在上面标有操作名。46行为事物状态机(state machine):是一个对象或交互在生命周期内响应事件所经历的状态序列 在UML模型中将状态画为一个圆角矩形,并在矩形内写出状态名。等待 “等待”状态的表示方法47分组事物对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,就需要对其进行分组。在UML中,提供了“包(Package)”来实现这一目标。 数据访问 “数据访问”包的表
17、示方法48分组事物49注释事物注释是依附于一个元素或一组元素之上,对其进行约束或解释的简单符号。 注释符号50关联关系关联是一种结构关系,它描述了一组对象之间的连接。关联两端的类可以某种角色参与关联 角色是关联中靠近它的一端的类对另一端的类呈现的职责; 如果关联上没有标出角色名,则隐含地用类的名称作为角色名。关联具有多重性 多重性表示可以有多少个对象参与该关联 固定值:3 许多值:n 或者* 区间:0.1 或者3.n 集合:2,4,851关联关系52关联关系关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。在UML中,
18、使用一条实线来表示关联关系操作属性类1类2属性操作关联关系人雇佣公司人雇主公司1雇员n53关联关系在关联关系中,有两种比较特殊的关系:聚合和组合 聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系。 如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述 。聚合关系计算机主机显示器咖啡桌桌面桌腿54泛化、实现、扩展与依赖泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件的服务。 扩展表示将
19、一个构造型附加到一个元类(metaclass)上,使得元类的定义中包括这个构造型。 有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。 55父类属性操作子类泛化关系属性操作车公交车密码验证智能卡验证身份验证注册用户图书管理员普通读者包与包之间也存在泛化关系。泛化、实现、扩展与依赖56泛化、实现、扩展与依赖类属性操作choice组件类属性操作实现关系57泛化、实现、扩展与依赖driver.dllIDriverpath.dll类A属性操作类B属性操作Interface58泛化、实现、扩展与依赖类1属性操作add(c:cour
20、se)remove(c:course)Schedulecourse验证读者includeinclude查询读者查询图书登记借书extendextend登记借书登记还书类2属性操作依赖关系use59UML图形分类60常用UML图用例图类图状态图顺序图Use caseSequenceClass(Simple)StateCollaborationClass(Complex)ObjectActivityRequirementRequirement阶段Analysis阶段Design阶段61用例图用例图是外部参与者所能观察到的系统功能的模型图。由一组用例、参与者及它们之间的关系组成。主要用于对系统、子系
21、统或类的功能行为进行建模。参与者是与系统交互的外部实体,可以是人,也可以是其它系统。用例是从用户的角度描述系统的行为(功能),它将系统的功能描述成一系列事件,这些事件最终对参与者产生可观察结果。62参与者、用例间的关系类型关系类型说明表示符号关联参与者和用例间的关系泛化参与者之间或用例之间的关系包含用例之间的关系扩展用例之间的关系 用例图63验证读者includeinclude查询读者查询图书登记借书extendextend登记借书登记还书密码验证智能卡验证身份验证64用例图确定参与者方法:谁使用系统的主要功能?谁需要系统支持他们的日常工作?谁来维护、管理使系统正常工作?系统需要操纵哪些硬件?
22、系统需要与哪些其它系统交互,包含其它计算机系统和其它应用程序?65用例图确定用例方法参与者要求系统提供哪些功能?参与者需要做什么?参与者需要读取、产生、删除、修改或存储的某些信息吗?。 必须提醒参与者的系统事件有哪些?或者参与者必须提醒系统的事件有哪些?系统需要的输入、输出信息是什么?这些信息怎么来?其它特殊要求如何满足?66用例图的建立确定系统参与者及其关系确定用例及关系编写用例描述用例图67用例图示例68类图表示系统中类、协作(类或对象间的协作)、接口及其关系的图。类图中的关系包括:关联、泛化、依赖、实现。69类图类的划分:边界类:参与者与系统之间的交互实体类:系统中存储和管理的永久信息控
23、制类:系统运行中的业务控制逻辑70类图边界类实体类boundary类名类名control类名控制类类名entity类名类名71类图 在软件开发的不同阶段使用的类图具有不同的抽象层次,一般类图可分为三个层次,概念层、说明层、实现层。概念层类图:概念层类图中类内只有类名。通常用在需求分析阶段,该阶段类图是研究应用领域的概念。72类图说明层类图:在设计阶段,用说明层类图描述类与类之间的接口。在说明层类中有属性和方法,但没有属性的类型说明和方法的参数与返回类型。实现层类图:在实现阶段,类图描述软件系统中类的实现。73类图寻找类的技巧根据用例描述中的名词确定类的侯选者。使用CRC(class,respo
24、nsibility,collaboration)分析法寻找类。根据类所扮演的职责来确定类。根据边界类、控制类、实体类的划分来帮助发现系统中的类。74类图类图的建立(可以有多种方式)分析问题领域,确定用到的类。确定类的含义、职责、确定属性、操作。确定类之间的联系。细化、调整已经得到类之间的关系,并增加相应说明。75类图示例先看清有哪些类,然后看看类之间存在的关系,并结合多重性来理解类图的结构特点以及各个属性和方法的含义 76 读图过程读出类:图中共有7个类,Order、OrderItem、Customer、Consignee、DeliverOrder、Peddlery、Prodcut读出关系:从
25、图中关系最复杂(也就是线最密集)的类开始阅读,本图中最复杂的就是Order类。1)OrderItem和Order之间是组合关系,根据箭头的方向可知Order包含了OrderItem。2)Order类和Customer、Consignee、DeliverOrder是关联关系。也就是说,一个订单和客户、收货人、送货单是相关的。7778 读图过程多重性:用来说明关联的两个类之间的数量关系 源类及多重性目标类及多重性分析Customer(1)Order(0n)订单是属于某个客户的,网站的客户可以有0个或多个订单Order(1)Consignee(1)每个订单只能够有一个收货人Order(1)Order
26、Item(1n)订单是由订单项组成的,至少要有一个订单项,最多可以有n个Order(1)DeliverOrder(1n)一个订单有一个或多个送货单说明:系统根据订单项的产品所属的商户,将其分发给商户,拆成了多个送货单!DeliverOrder(1)OrderItem(1n)一张送货单对应订单中的一到多个订单项DeliverOrder(1)Consignee(1)每张送货单都对应着一个收货人Peddlery(1)DeliverOrder(0n)每个商户可以有相关的0个或多个送货单OrderItem(1)Product(1)每个订单项中都包含着唯一的一个产品Peddlery(1)Prodcut(0
27、n)产品是属于某个商户的,可以注册0到多个产品7980 读图过程理解方法与图 Order类,有两个方法:dispatch()和close(),从名字中可以猜出它们分别实现“分拆订单生成送货单”和“完成订单”。而在DeliveOrder()类中则有一个Close()方法,同理它应该表示“完成送货”。而在OrderItem中有一个stateChange()方法和deliverState,不难猜出它就是用来改变其“是否交给收货人”的标志位。 先调用Order的dispatch()方法,它将根据其包含的OrderItem中产品信息,来按供应商户分拆成若干个DeliverOrder。商户登录系统后就可以
28、获取其DeliverOrder,并在执行完后调用close()方法。这时,就将调用OrderItem的stateChange()方法来改为其状态。同时再调用Order的close()方法,判断该Order的所有的OrderItem是否都已经送到了,如果是就将其真正close()掉 81顺序图又称时序图,描述对象按照时间顺序的消息交换,显示参与交互的对象及对象之间消息的交互顺序。顺序图用来描述用例的实现,表明了由哪些对象通过消息相互协作来实现用例的功能。在用例图中,标识了消息发生交互的先后顺序。82顺序图建模元素:对象、生命线、控制焦点(激活)、消息。:Driver:CarOper()对象生命线
29、控制焦点消息(调用)83顺序图顺序图描述的是对象之间的消息发送关系,而不是类之间的关系。在顺序图中并不包括系统中的所有类的对象。也有可能某些对象属于同一个类。84顺序图顺序图的建立(可以有多种方式)确定交互过程的上下文。识别参与交互过程的对象。为每个对象设置生命线,即确定哪些对象存在于整个交互过程中,哪些对象在交互过程中被创建和撤销。85顺序图从引发这个交互过程的初始消息开始,在生命线之间从顶到下依次画出随后的各个消息。如果需要表示消息的嵌套,或/和表示消息发生时的时间点,则采用控制焦点。如果需要说明时间约束,则在消息旁边加上约束说明。如果需要,可以为每个消息附上前置和后置条件。86顺序图87
30、循环与分支88状态图状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况 。状态机图常用来描述业务或软件系统中的对象在外部事件的作用下,对象的状态从一种状态到另一种状态的控制流。状态机图的组成元素:初始状态、终止状态、状态和转换,其中,转换将各种状态连接在一起,构成一个状态图。 89最简单的状态图核心元素:一个是用圆角矩形表示的状态(初态和终态例外);另一个是在状态之间的、包含一些文字描述的有向箭头,这些箭头称为转换。烧水器的状态图90转换的五要素源状态:即受转换影响的状态目标状态:当转换完成后对象的状态 触发事件:外部作用于一个对象,能够触发对象状态改变的一种现象
31、。包括调用、改变、信号、时间四类事件。监护条件:布尔表达式,决定是否激活转换、动作:转换激活时的操作91读图小结与状态off相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。如果对象收到事件turnOn,那么将判断壶中是否有水;如果没水,则仍然处于off状态;如果有水则转为on状态,并执行“烧水”动作而与状态on相关的转换也有两个,如果“水开了”就执行turnOff,关掉开关;如果烧坏了,就进入了终态了 92绘制状态机图绘制状态机图的理想步骤是:寻找主要的状态,确定状态之间的转换,细化状态内的活动与转换,用复合状态来展开细节。寻找主要状态:对于航班机票预订系统而言,包括的状态
32、主要有: - 在刚确定飞机计划时,显然是没有任何预订的,并且在有人预订机票之前都将处于这种“无预订”状态 - 对订座而言显然有“部分预订”和“预订完”两种状态 - 而当航班快要起飞时,显然要“预订关闭”总结一下,主要有四种状态:无预订、部分预订、预订完以及预订关闭 93确定状态间转换源目标无预订部分预订预订完预订关闭无预订预订()不直接转换关闭()部分预订退订(),使预订人=0预订(),无空座关闭()预订完不直接转换退订()关闭()预订关闭无转换无转换无转换94绘制状态机图细化状态内的活动与转换95绘制状态机图使用复合状态96活动图活动图和交互图是UML中对系统动态方面建模的两种主要形式交互图
33、强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流 活动图是一种表述过程基理、业务过程以及工作流的技术。它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模 97阅读简单活动图98活动图的主要元素初始节点和活动终点:用一个实心圆表示初始节点,用一个圆圈内加一个实心圆来表示活动终点活动节点:是活动图中最主要的元素之一,它用来表示一个活动 转换:当一个活动结束时,控制流就会马上传递给下一个活动节点,在活动图中称之为“转换”,用一条带箭头的直线来表示 99活动图的主要元素分支与监护条件:分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号),一个或多个离开转换
34、(箭头从分支符号指向外)。而每个离开转换上都会有一个监护条件,用来表示满足什么条件的时候执行该转换。分岔与汇合:100修改后的简单活动图101带泳道的活动图102带对象流的活动图103绘制活动图“活动图” 比较直观易懂;与传统的流程图十分的相近,只要能够读懂活动图,就不难画出活动图绘制时首先决定是否采用泳道:主要根据活动图中是否要体现出活动的不同实施者然后尽量使用分支、分岔和汇合等基本的建模元素来描述活动控制流程如果需要,加入对象流以及对象的状态变化,利用一些高级的建模元素(如辅助活动图、汇合描述、发送信号与接收信号、引脚、扩展区)来表示更多的信息活动图的建模关键是表示出控制流,其它的建模元素
35、都是围绕这一宗旨所进行的补充104部署图105阅读基本部署图106部署图的主要元素节点:它代表一个运行时的计算资源,例如一台计算机、一个工作站等其它设备 节点的概念和构件有许多相同之处,例如二者有多名称,都可以参与依赖、泛化和关联关系,都可以被嵌套,都可以有实例,都可以参与交互。但它们之间也存在明显的区别:构件是参与系统执行的事物,而节点是执行构件的事物;构件表示逻辑元素的物理打包,而节点表示构件的物理部署本图中建模了四个节点:B/S客户端、C/S客户端、IIS服务器和数据库服务器 107部署图的主要元素连接:节点之间最常见的关系就是关联关系(用一根实线表示)。为了更好地表示两个节点之间的关系
36、,我们可以通过“约束”来对连接进行描述。源节点目标节点约束含义B/S客户端IIS服务器HTTP+Network网络连接,使用HTTP协议C/S客户端IIS服务器HTTP+SOAP+Network网络连接,通过Web Service访问服务IIS服务器数据库服务器ADO.NET.NET提供的数据库访问解决方案108部署图的补充元素处理器(process):具有处理能力的节点,即可以执行构件设备(device):没有处理能力的节点,至少是不关心其处理能力的节点。例如打印机、IC卡读写器,如果我们的系统不考虑它们内部的芯片,就可建模为设备节点属性和操作:可以为一个节点提供处理器速度、内存容量、网卡数
37、量等属性,可以为其提供启动、关机等操作 109部署图的补充元素自定义构造型图标110确定所需的节点和节点间的连接关系IC卡读卡器:提供给员工刷卡用,它将收集刷卡的时间信息,传给应用系统,并存入数据库中应用服务器:用来负责从IC卡读卡器中收集信息,并对管理人员提供员工设置、考勤查询等功能数据库服务器:用来存储考勤数据,由于该系统比较小,因此在物理上可以与应用服务器合并客户端软件:提供给管理人员使用,连接应用服务器,完成相应操作 111根据实现描述节点客户端:需使用Windows操作系统,安装客户端软件(假设名为KaoQing.exe)服务器:包含一个用Delphi开发的服务端软件(设为KqSer
38、ver.exe),它需要与Access数据库交互(设为KaoQing.mdb),并且需要通过IC卡读卡器的驱动程序(假设名为cardReader.dll)来实现与IC卡读卡器通信IC卡读写器:对于本系统而言,它是不执行构件的设备,不过为了方便员工,安装了3个。112作业解答教材购销系统主要功能根据学校的教学计划,向选课的学生及时供应所需教材审查学生购书单有效性,对有效书单发售教材对属于计划供应但暂时缺货的教材进行登记根据缺书登记补充采购所缺的教材,通知学生补购将缺书登记表汇总为待购教材计划待购教材到货后,及时通知学生补购113采购进书通知产生补售书单 1.6学生F1教材存量表开发票 1.2登记
39、售书和打印领书单 1.4有效购书单暂缺书单登记缺书 1.5补售书单购书单F2 缺书登记表审查有效性 1.1无效书单学生F3学生用书表F4售书登记表打印发票 1.3发票发票领书单114进书通知 2.1按书号汇总书库保管员F1教材存量表按出版社汇总 2.2修改教材库存和待购量 2.3销售F5待购教材表F6教材一览表缺书单F2 缺书登记表进书通知115使用SD方法给出教材购销系统中销售子系统的软件结构图.细化并修改DFD图116产生补售书单 1.6学生F1教材存量表开发票 1.2登记售书 1.4有效购书单暂缺书单登记缺书 1.5补售书单购书单F2 缺书登记表审查有效性 1.1无效书单学生F3学生用书
40、表F4售书登记表打印发票 1.3发票发票领书单打印领书单 1.7F7 进书登记表117 2.1按书号汇总书库保管员F1教材存量表按出版社汇总 2.2修改教材库存和待购量 2.3F5待购教材表F6教材一览表缺书单F2 缺书登记表进书通知F7 进书登记表118 1.6学生F1 1.2 1.4 1.5F2 1.1学生F3F4 1.3 1.7F7+119销售初售补售审查有效性开发票售书登记缺书登记售书打印发票打印领书单产生补售书单获得有效性购书单获得补售书单120 1.语句覆盖: X=85,Y=85(路径A-E); X=95,Y=50 (路径B-C-E); X=75,Y=75 (路径B-D-E);习题
41、五参考答案判断1判断2条件1条件2条件3条件4条件51212. 判断覆盖: 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;122 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;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年行政车辆租赁合规合同样本
- 2024年度健康养生产品销售结算与市场拓展合同3篇
- 2024年特许经营合同详细条款与标的
- 2024年版:房屋买卖违约金索赔协议
- 2024年货车租赁合同(带维修责任规定)
- 2024年纪录片创作与制作服务合同版B版
- 2024年绿化工程苗木种植养护合同2篇
- 2025年度环保仓储仓单质押反担保服务协议3篇
- 2024年离婚合同书:女方放弃财产分割版版
- 运维服务能力指标体系
- LNG、CNG加气站生产安全事故应急救援预案
- 医疗废物管理条例-题及答案
- 北京版一年级数学下册《数的组成》评课稿
- 理论力学-上海交通大学中国大学mooc课后章节答案期末考试题库2023年
- 肃北县长流水金矿 矿产资源开发与恢复治理方案
- SRD控制器使用说明书
- 水下摄影技巧
- 雨水暗沟施工方案实用文档
- 医院卫生院安全生产领导责任清单
- 2023年已打印自主招生数学试题及答案
- 非计划性拔管风险评估表二
评论
0/150
提交评论