软件工程-第6章-面向对象分析-CUMT-09-11-09汇总课件_第1页
软件工程-第6章-面向对象分析-CUMT-09-11-09汇总课件_第2页
软件工程-第6章-面向对象分析-CUMT-09-11-09汇总课件_第3页
软件工程-第6章-面向对象分析-CUMT-09-11-09汇总课件_第4页
软件工程-第6章-面向对象分析-CUMT-09-11-09汇总课件_第5页
已阅读5页,还剩179页未读 继续免费阅读

下载本文档

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

文档简介

张磊博士,副教授

zhanglei@第6章面向对象分析计算机网络》课件制作人:谢希仁张磊博士,副教授

zhanglei@cumt.e1面向对象的分析着重分析问题域和系统责任,确定问题的解决方案,暂时忽略与系统实现有关的问题,建立独立于实现的系统分析模型。面向对象分析的基本过程如下:(1)问题域分析,建立用例模型(2)发现和定义对象与类(3)识别对象的外部联系(4)建立系统的静态结构模型(5)建立系统的动态结构模型课件制作人:谢希仁面向对象的分析着重分析问题域和系统责任,确定问26.1建立用例模型的过程⑴找出拟建系统以外的Actor与系统交互的人员;与系统相连并交换信息的设备和其他系统;⑵使用UseCase来描述Actor怎样使用系统以及系统向Actor提供什么功能UseCase表示从外部用户角度观察的系统功能⑶绘制UseCase图,并编写详细的UseCase描述。UseCase图只能宏观地描述系统的功能;每个功能的含义和具体实现步骤则以文本方式描述。课件制作人:谢希仁6.1建立用例模型的过程⑴找出拟建系统以外的Actor课件3举例:学生注册课程系统(1)某大学准备开发一个学生课程注册系统,学生可以使用该系统查询新学期将开设的课程和讲课教师情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;(2)教师可以使用该系统查询新学期将开设的课程和选课学生情况,并可以登记成绩单;(3)注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。(4)在每个学期的开始,学生可以获得该学期的课程目录表,课程目录表列出每门课程的所有信息,诸如基本信息、教师、开课系和选课条件等。课件制作人:谢希仁举例:学生注册课程系统(1)某大学准备开发一个学生课程注册系4(5)新学期开始前两周为选课注册时间,在此期间学生可以选课注册,并且允许改变或取消注册申请。每个学生可以选择不超过4门课程,同时指定2门侯选课程以备主选课程未选上。每门课程最多不能超过10人,最少不能低于3人。(6)开学两周后注册管理员负责关闭课程注册,低于3人选课的课程将被取消,一旦学生的注册过程完毕,注册系统将有关信息提交收费系统以便学生付费。如果在实际注册过程中名额已满,系统将通知学生在提交课程表之前予以更改。(7)在学期结束时,学生可以存取系统查看电子成绩单。由于学生成绩属于敏感信息,系统必须提供必要的安全措施以防非法存取。课件制作人:谢希仁(5)新学期开始前两周为选课注册时间,在此期间学生可以选课注5解题步骤1:发现角色简单地说,角色是与系统交互的人或事。所谓"与系统交互"意味着向系统发送消息,从系统中接收消息,或是与系统交换信息。有些角色可以初始化用例,有些角色则不然,仅仅参与用例,在某个时刻与用例进行通信。课件制作人:谢希仁解题步骤1:发现角色简单地说,角色是与系统交互的人或事。课件6可以通过回答下列问题,进行系统角色的识别:谁使用系统的功能?谁需要借助系统完成日常工作?谁来维护和管理系统,以保证系统正常工作?系统控制的硬件设备有哪些?系统需要与其他哪些系统交互?谁对系统产生的结果感兴趣?课件制作人:谢希仁可以通过回答下列问题,进行系统角色的识别:课件制作人7在上述例子中,学生和教师使用系统完成课程注册和成绩登记等,注册管理员维护和管理教师、学生和课程的信息。另外,收费系统存取已有的课程目录数据库,获得课程列表。课件制作人:谢希仁在上述例子中,学生和教师使用系统完成课程注册8解题步骤2:发现用例用例代表一个完整的功能,如与角色通信、进行计算或在系统内工作等。用例描述了它所代表的功能的各个方面,即包含了用例执行期间可能发生的种种情况;用例和角色之间具有“关联”的连接关系,表示什么角色与该用例进行通信。用例具有以下的特征:用例总是由角色初始化;用例为角色提供值;用例具有完全性,即不管其内部是如何实现的,只有最终产生了返回角色的结果,用例的执行才能完毕。课件制作人:谢希仁解题步骤2:发现用例用例代表一个完整的功能,9实际上,从识别角色开始,发现用例的过程就已经开始了。对于已识别的角色,通过询问下列问题,可以发现用例:角色需要从系统中获得什么功能?角色需要做什么?角色需要读取、产生、删除、修改或存储系统的某些信息吗?系统中发生事件需要通知角色吗?角色需要通知系统某件事情吗?系统需要的输入/输出信息是什么?这些信息从哪儿来到哪儿去?采用什么实现方法满足某些特殊要求?课件制作人:谢希仁实际上,从识别角色开始,发现用例的过程就已经10与教师有关的用例选择课程--选择所教的课程,并获得学生名册;登记成绩--在学期结束时,提交学生的课程成绩。课件制作人:谢希仁与教师有关的用例选择课程--选择所教的课程,并获得学生名册;11与学生有关的用例注册课程--在学期开始进行选课注册,允许在一段时间内更改或删除,课程目录系统提供当前学期的所有可选课程列表;查看成绩单--学生可以查看以前学期的电子成绩单。课件制作人:谢希仁与学生有关的用例注册课程--在学期开始进行选课注册,允许在一12与注册管理员有关的用例维护课程信息--在系统中增加、修改和删除课程信息;维护学生信息--在系统中增加、修改和删除学生信息;维护教师信息--在系统中增加、修改和删除教师信息。关闭注册--删除少于3人的课程,并由付费系统通知学生缴费。课件制作人:谢希仁与注册管理员有关的用例维护课程信息--在系统中增加、修改和删13与安全性要求有关的用例登录--使用此系统的人员需要进行登录,以验证其身份和权限。课件制作人:谢希仁与安全性要求有关的用例登录--使用此系统的人员需要进行登录,14解题步骤3:选课系统用例图课件制作人:谢希仁解题步骤3:选课系统用例图课件制作人:谢希仁15【实例】某公司的总部设在北京,在上海、广州、成都和西安有分支机构,全公司接近700名员工。鉴于业务和员工团队的快速发展,为了提升整体工作效率。该公司准备开发一套员工报帐系统,取代原来的人工处理方式。课件制作人:谢希仁【实例】某公司的总部设在北京,在上海、广州、成都和西安有分支16报帐系统将支持员工记录(或预见)日常业务活动的开销,并自动结算每个月应该返还员工的补偿金额,补偿金额会直接存入员工的工资帐户中。报帐系统应具有基于先进技术的图形化界面,员工可以输入业务活动的种类和简短描述,活动开销的类别,选择不同的支付方式,并可以生成灵活的报表。报帐系统应该有能力根据员工提供的信息和要求返还补偿额,同时保存全部员工的报帐信息。员工可以通过他们自己的电脑来使用报帐系统。由于牵涉到财务信息,报帐系统必须提供可信的安全机制。课件制作人:谢希仁报帐系统将支持员工记录(或预见)日常业务活动的开销,并自动结17该公司现有一套基于微软SQLSERVER的人事管理数据库系统,记录员工的基本信息和团队的组织结构。报帐系统将和现有人事管理数据库系统协同工作,需要引入人事管理数据库系统中的部分信息,但不会更新其内容。通过报帐系统,员工能够在出差前(提前两天)按照规定的额度向公司申请借款,相关的经理人员能够通过报帐系统批复或拒绝。报帐系统应在相关负责人批复之后通知该员工提取现金或确认相应款项已经划入指定信用卡(根据员工的要求);员工可以通过报帐系统报销合理的业务活动费用。课件制作人:谢希仁该公司现有一套基于微软SQLSERVER的人事管理数据库系18财务部门将指定一位报帐系统管理员监管拟建系统中的信息,负责初始设置和维护特定的分类报账额度策略,并能够定期或随机地向各部门负责人提交报帐情况的统计报告。报帐系统在每月的25日对通过审批的报帐申请自动作一次结算,并以电子邮件的方式通知应该得到补偿的员工,同时生成一份统计报告传送给财务部门的系统监管人员。课件制作人:谢希仁财务部门将指定一位报帐系统管理员监管拟建系统中的信息,负责初19【员工报帐系统】建立UseCase图步骤1:找出拟建系统以外的Actor课件制作人:谢希仁【员工报帐系统】建立UseCase图课件制作人:谢希仁20步骤2:发现UseCase报帐系统将支持员工记录(或预见)日常业务活动的开销……可以输入业务活动的种类和简短描述,活动开销的类别,选择不同的支付方式,并可以生成灵活的报表。员工可以通过报帐系统报销合理的业务活动费用。员工能够在出差前(提前两天)按照规定的额度向公司申请借款……课件制作人:谢希仁步骤2:发现UseCase课件制作人:谢希仁21步骤2:发现UseCase……相关的经理人员能够通过报帐系统批复或拒绝。课件制作人:谢希仁步骤2:发现UseCase课件制作人:谢希仁22步骤2:发现UseCase财务部门将指定一位报帐系统管理员监管拟建系统中的信息负责初始设置和维护特定的分类报账额度策略…定期或随机地向各部门负责人提交报帐情况的统计报告。课件制作人:谢希仁步骤2:发现UseCase课件制作人:谢希仁23步骤2:发现UseCase报帐系统在每月的25日对通过审批的报帐申请自动作一次结算,并以电子邮件的方式通知应该得到补偿的员工,同时生成一份统计报告传送给财务部门的系统监管人员。课件制作人:谢希仁步骤2:发现UseCase课件制作人:谢希仁24步骤3:建立UseCase图确定系统的责任、范围和边界,确定系统的需求提交报销申请提交借款申请批复报账申请课件制作人:谢希仁步骤3:建立UseCase图提交报销申请提交借款申请批复报25步骤3:建立UseCase图确定系统的责任、范围和边界,确定系统的需求结算当月报销费用审核报账申请课件制作人:谢希仁步骤3:建立UseCase图结算当月报销费用审核报账申请课26步骤3:建立UseCase图确定系统的责任、范围和边界,确定系统的需求完成日常维护调整报账额度制作统计报表课件制作人:谢希仁步骤3:建立UseCase图完成日常维护调整报账额度制作统276.2建立问题域的对象与类模型发现和定义对象类应以问题域和系统责任为出发点,正确地运用抽象原则,尽可能全面地发现对象的因素,并对其进行检查和整理,最终得到系统的对象类。可以在用例模型的基础上,通过识别实体类、边界类和控制类,从而发现和定义系统中的对象类。课件制作人:谢希仁6.2建立问题域的对象与类模型发现和定义对象类应以问题域和281.识别实体类实体类代表系统中需要存储和管理的信息,通常是永久存在的。启发分析员发现实体类的因素包括:人员:通常系统会涉及到各种各样的人员,我们需要考虑的是由系统保存和管理其信息的人员,如教师、学生等。组织:在系统中发挥一定作用的组织机构,如系、班级等。物品:需要由系统管理的物品,可以是有形或无形的,如课程等。课件制作人:谢希仁1.识别实体类实体类代表系统中需要存储和管理的信息,通常是永29设备:在系统中动态地运行、由系统进行监控或供系统使用的各种设备、仪表、机器、运输工具等。事件:需要由系统长期记忆的事件,如学生注册课程的记录等。表格:这里的"表格"是广义的,可以是各种业务报表、统计表、申请表、身份证、商品订单、帐目、学生成绩单等,注意不要将原始的表格进行简单对应,应该是分析和整理后形成的映射一些现实事物的表格。课件制作人:谢希仁设备:在系统中动态地运行、由系统进行监控或供系统使用的各种设30解题步骤4:选课系统的实体类Professor学校中讲课的教师Student

学校中注册课程的学生CourseCatalog学校所有课程的目录CourseOffering新学期课程的开设信息,如讲课教师、时间、地点等信息Course

课程的基本信息Schedule

学生在新学期选择登记的课程列表课件制作人:谢希仁解题步骤4:选课系统的实体类ProfessorStuden312.识别边界类边界类代表系统与角色的接口,在每一个用例中,一个角色对应一个边界类。边界类收集来自角色的信息,并将其转换成实体类和控制类可以使用的中间接口。根据角色的不同类型,边界类可以是用户接口、系统接口和设备接口。课件制作人:谢希仁2.识别边界类边界类代表系统与角色的接口,在每一个用例中,一32解题步骤5:选课系统的边界类LoginForm为教师、学生和注册管理员提供登录的操作RegisterCoursesForm

为学生提供选课注册的操作SelectTeachCoursesForm为教师提供查看学生选课情况的操作MaintainProfessorsForm为注册管理员提供维护教师信息的操作ViewReportForm

为学生提供成绩查询的操作SubmitGradesForm

为教师提供登记成绩的操作课件制作人:谢希仁解题步骤5:选课系统的边界类LoginForm为教师、学生33MaintainStudentsForm为注册管理员提供维护学生信息的操作CloseRegistrationForm为注册管理员提供关闭注册的操作MaintainCoursesForm为注册管理员提供维护课程信息的操作BillingSystemNotice提供与收费系统的信息交换接口课件制作人:谢希仁MaintainStudentsFormCloseRegi343.识别控制类控制类负责协调边界类和实体类,通常在现实世界中没有对应的事物,它负责接收边界类的信息,并将其分发给实体类。控制类与用例存在着密切的关系,它在用例开始执行时创建,在用例结束时取消。一般来说,一个用例对应一个控制类。当用例比较复杂时,特别是产生分支事件流的情况下,也可以有多个控制类。课件制作人:谢希仁3.识别控制类控制类负责协调边界类和实体类,通常在现实世界中35解题步骤6:选课系统的控制类RegisterCoursesControl负责新学期学生的选课登记ViewReportControl

负责学生成绩的查询SubmitGradesControl

负责学生成绩的登记SelectTeachCoursesControl负责新学期课程的学生选择情况CloseRegistrationControl负责关闭课程注册课件制作人:谢希仁解题步骤6:选课系统的控制类RegisterCoursesC36类与对象的表示方法课件制作人:谢希仁类与对象的表示方法课件制作人:谢希仁374.定义属性(1)按照一般常识,找出对象的某些属性,如人员的姓名、性别、年龄、地址等;(2)认真研究问题域,找出对象的某些属性,如商品的条形码、学生的学号等;(3)根据系统责任的要求,找出对象的某些属性;(4)考虑对象需要系统保存和管理的信息,找出对象的相应属性,如"课程"需要保存和管理的信息;课件制作人:谢希仁4.定义属性(1)按照一般常识,找出对象的某些属性,如人员38(5)对象为了在服务中实现其功能,需要增设一些属性;(6)识别对象需要区别的状态,考虑是否需要增加一个属性来区别这些状态;(7)确定属性表示整体与部分结构和实例连接。对于初步发现的属性,检查这些属性是否系统使用的特征、是否描述了对象本身的特征、是否可以通过继承得到、是否可以从其他属性直接导出等,对这些属性进行整理和筛选。课件制作人:谢希仁(5)对象为了在服务中实现其功能,需要增设一些属性;课件制39属性层的表示课件制作人:谢希仁属性层的表示课件制作人:谢希仁406.3识别对象的外部联系在找到系统的对象类之后,需要分析和认识各类对象之间的关系。对象与外部的关系有以下几种:(1)对象之间的分类关系,即泛化关系;(2)对象之间的组成关系,即聚合关系;(3)对象之间的静态关系,即关联关系;(4)对象之间的动态关系,即依赖关系。课件制作人:谢希仁6.3识别对象的外部联系在找到系统的对象类之41(1)泛化关系泛化与特化的结构,也叫做分类结构。继承性:特化类是泛化类的子类,泛化类是特化类的父类。基类表示了一个较为一般、普遍的概念,而每个子类则是它的某个特殊形态。在分类结构中恰如其分地分配属性和服务:共同的属性放在上层,而将特有的属性放在下层;将共同的服务放在上层,而将特有的服务放在下层泛化关系有助于代码共享和复用。课件制作人:谢希仁(1)泛化关系泛化与特化的结构,也叫做分类结构。课件制作人:42轮船、汽车和飞机都是交通工具,它们从交通工具类派生出来。因此,它们具有作为交通工具的共性(旅客容量、最大速度和公里耗油量等属性和启动、驾驶等操作)。当然,它们可以有自己的属性和操作。比如飞机还拥有飞行高度属性和降落操作等。课件制作人:谢希仁轮船、汽车和飞机都是交通工具,它们从交通工具类派43“发表的文章”和“接受的文章”是“文章”的特殊形态,而“文章”则是它们的一般化“文章”对象所具有的属性和服务可自动地为“发表的文章”和“接受的文章”所继承。课件制作人:谢希仁“发表的文章”和“接受的文章”是“文章”的特殊形态,而“文章44课件制作人:谢希仁课件制作人:谢希仁45(2)聚合关系是整体与部分结构,由属于不同类的成员聚合而形成新的类一个整体可有多个部分,也有不同种类的部分课件制作人:谢希仁(2)聚合关系是整体与部分结构,由属于不同类的成员聚合而形成46报社是由采访组、编辑室和印刷厂等几个部门组成一个报社只有一个编辑室,一个印刷厂,但可以有一至多个采访组课件制作人:谢希仁报社是由采访组、编辑室和印刷厂等几个部门组成课件制作人:谢希47课件制作人:谢希仁课件制作人:谢希仁48(3)关联关系:对象之间的实例连接两个对象往往由于受制于相同的应用规则而发生联系,这称为实例连接。实例连接也表示一个对象实例不存在的情况下,另一个对象是否仍有意义。课件制作人:谢希仁(3)关联关系:对象之间的实例连接两个对象往往由于受制于相49对象之间的实例连接的例子课件制作人:谢希仁对象之间的实例连接的例子课件制作人:谢希仁50(4)依赖关系两个对象之间存在的由于通信所需要而形成的联系,这称为消息连接消息连接表示从一个对象发送消息到另一个对象,由那个对象完成某些处理。对象之间的动态关系对象收到消息后所能执行的操作称为它可提供的服务课件制作人:谢希仁(4)依赖关系两个对象之间存在的由于通信所需要而形成的联系,51服务层的表示课件制作人:谢希仁服务层的表示课件制作人:谢希仁526.4建立系统的静态结构模型1.类图主要是描述类和类之间的关系。2.对象图主要是描述对象和对象之间的关系。3.结构类型一般-特殊整体-部分4.主题或子系统可相互协作共同完成一组内聚功能的模型中的子集5.步骤复审需求描述和用例图,找出存在的类之间的关系,用线连接,并命名对每一个关系,指出关系基数/重数课件制作人:谢希仁6.4建立系统的静态结构模型1.类图主要是描述类534.主题或子系统面向对象的模型相当大,是一个包含大量类和对象的平面图主题可以看成是高层的模块或子系统,通过对主题的识别,将这些类和对象做进一步的组合。课件制作人:谢希仁4.主题或子系统面向对象的模型相当大,是一个包含大量类和对象54现代银行业务系统主题课件制作人:谢希仁现代银行业务系统主题课件制作人:谢希仁55【例2、员工报账系统——提交报账申请】类图员工通过报帐系统填写报销申请,输入相关活动产生的费用,在一次或者多次填写后提交,经过验证之后,以电子邮件的方式通知经理批复。课件制作人:谢希仁【例2、员工报账系统——提交报账申请】类图课件制作人:谢希仁56类图⑴员工employee。公司的正式雇员。⑵经理manager。公司的正式雇员。⑶报销单Claim_report员工在一个(自然)月内的所有报销记录的集合。⑷报销记录Claim_record与业务有关的某一项具体的花费,包括业务活动发生的时间、地点、客户名称(可选)、原因以及费用金额和种类(交通、餐饮、会议、通讯和杂项)。⑸验证规则valid_rule验证为合理的报销记录必须满足几种条件:第一,不同种类的费用不超过相应的限额;第二,报销费用的类型要和员工的职能匹配。课件制作人:谢希仁类图课件制作人:谢希仁57类图课件制作人:谢希仁类图课件制作人:谢希仁586.5建立系统的动态模型要想对一个系统了解得比较清楚,首先应当考察它的静态结构,即在某一时刻它的对象和这些对象之间相互联系的结构;然后应当考察在任何时刻对象及其联系的改变。系统的这些涉及时序和改变的状况,用动态模型来描述。动态模型着重于系统的控制逻辑。建立对象交互图,将用例的行为分布到对象中事件追踪图状态图时序图协作图课件制作人:谢希仁6.5建立系统的动态模型要想对一个系统了解得比较清楚,首先应59事件追踪图事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”。场景也叫做脚本,是完成系统某个功能的一个事件序列。场景通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,它可以包括发生在这个期间的系统所有的内部事件,也可以只包括那些撞到的或由系统中某些对象生成的事件。课件制作人:谢希仁事件追踪图事件追踪图侧重于说明发生于系统执行过程中的一个特60电话的一个场景课件制作人:谢希仁电话的一个场景课件制作人:谢希仁61从对象角度考虑的事件追踪图课件制作人:谢希仁从对象角度考虑的事件追踪图课件制作人:谢希仁62解题步骤7:选课系统的时序图课件制作人:谢希仁解题步骤7:选课系统的时序图课件制作人:谢希仁63【例4学校登记新生】课件制作人:谢希仁【例4学校登记新生】课件制作人:谢希仁64《become》从一个对象值变化到另一个对象值课件制作人:谢希仁《become》课件制作人:谢希仁65课件制作人:谢希仁课件制作人:谢希仁66关联关系关联关系关联关系关联关系关联关系课件制作人:谢希仁关联关系关联关系关联关系关联关系关联关系课件制作人:谢希仁67已登记属性——Boolean课件制作人:谢希仁已登记属性——Boolean课件制作人:谢希仁68例5提交报销申请的交互图与协作图不符课件制作人:谢希仁例5提交报销申请的交互图与协作图不符课件制作人:谢希仁69⑴转述USECASE场景的序列图中,①主导Actor的实例位于序列图的左侧;②其他被动Actor位于序列图的右侧;主导Actor实例被动Actor实例课件制作人:谢希仁⑴转述USECASE场景的序列图中,主导Actor被动Ac70⑵转述USECASE场景的协作图中,①边界类对象,Actor实例位于协作图的上方;②实体类对象位于协作图的下方;③控制类对象放在协作图的中央。课件制作人:谢希仁⑵转述USECASE场景的协作图中,课件制作人:谢希仁71⑶“返回消息”错误的习惯:对象间放置一去一回两个(Call)消息课件制作人:谢希仁⑶“返回消息”课件制作人:谢希仁72(Call)消息包含“一去一回”的含义。接收(Call)消息的对象要承担责任(完成消息指定的功能)“返回消息(Return)”接收返回消息的对象不用承担责任。作用:⒈强调消息从“发出”到“回应”的跨度;⒉完成(Call)消息指定的功能中出现异常;课件制作人:谢希仁(Call)消息课件制作人:谢希仁73作用:⒈强调消息从“发出”到“回应”的跨度;⒉完成(Call)消息指定的功能中出现异常;课件制作人:谢希仁作用:课件制作人:谢希仁74⑷在序列图中作文字注释⑴⑵课件制作人:谢希仁⑷在序列图中作文字注释⑴⑵课件制作人:谢希仁75【功能描述】员工通过报帐系统填写报销申请,输入相关活动产生的费用,在一次或者多次填写后提交,经过验证之后,以电子邮件的方式通知经理批复。【基本事件序列】1、打开报销申请 2、添加空白报销记录 3、填写空白报销记录4、验证报销单 5、提交报销单【备选事件序列】A1、删除报销记录 A2、更新报销记录A3、保存当月报销单 A4、报销记录不合理A5、人事数据库不可用 A6、邮件未及时发出课件制作人:谢希仁【功能描述】课件制作人:谢希仁76【基本事件序列】1、打开报销申请[员工]:员工选择进入“报销申请”功能。[系统]:如果该员工当月报销单存在,系统将取出相应信息并展示给员工;如果该员工的当月报销单不存在,则为该员工创建一张当月报销单课件制作人:谢希仁【基本事件序列】课件制作人:谢希仁771、打开报销申请课件制作人:谢希仁1、打开报销申请课件制作人:谢希仁782、添加空白报销记录[员工]:员工要求添加一条空白报销记录。[系统]:系统显示一条空白的报销记录。课件制作人:谢希仁2、添加空白报销记录课件制作人:谢希仁793、填写空白报销记录 A2、更新报销记录[员工]:员工开始填写报销记录,每条报销记录包括的信息有:业务活动发生的时间、地点、客户名称(可选)、原因以及费用金额和种类(交通、餐饮、会议、通信和杂项)。[系统]:系统显示并记录员工输入的信息。为了让员工方便而准确地准确输入相关信息,除了客户名称、业务活动原因和金额之外,其他信息域提供相应的下拉式选择列表。课件制作人:谢希仁3、填写空白报销记录 A2、更新报销记录课件制作人:谢希仁803、填写空白报销记录 A2、更新报销记录课件制作人:谢希仁3、填写空白报销记录 A2、更新报销记录课件制作人:谢希仁814、验证报销单[员工]:员工填写完毕所有报销记录之后,要求系统验证这些记录的合理性。[系统]:报销记录的初始状态为“未验证”,每当一条报销记录被验证为合理,系统将该报销记录的状态设置为“已验证”,系统在验证所有报销记录(为“已验证”)之后提示用户可以提交本月的报销单。验证为合理的记录必须满足几种条件:第一,不同种类的费用不超过相应的限额;第二,报销费用的类型要和员工的职能匹配。课件制作人:谢希仁4、验证报销单课件制作人:谢希仁824、验证报销单课件制作人:谢希仁4、验证报销单课件制作人:谢希仁835、提交报销单[员工]:所有报销记录经过验证之后,员工提交当月的报销单。[系统]:系统保存这张报销单,将报销单的状态设置为“已提交”并记录提交日期,同时这张报销单被设为“只读”。系统从人事管理数据库中获知该员工及其经理的电子邮件地址。系统将自动生成一份以当前报销单为内容的电子邮件发送到该员工及其经理的信箱中。当邮件成功发送后,员工得到一个确认信息。

课件制作人:谢希仁5、提交报销单课件制作人:谢希仁845、提交报销单课件制作人:谢希仁5、提交报销单课件制作人:谢希仁85【备选事件序列】A1、删除报销记录课件制作人:谢希仁【备选事件序列】课件制作人:谢希仁86A3、保存当月报销单课件制作人:谢希仁A3、保存当月报销单课件制作人:谢希仁87A4、报销记录不合理返回(Return)消息完成(Call)消息指定的功能中出现异常课件制作人:谢希仁A4、报销记录不合理返回(Return)消息课件制作人:谢希88A5、人事数据库不可用返回(Return)消息完成(Call)消息指定的功能中出现异常课件制作人:谢希仁A5、人事数据库不可用返回(Return)消息课件制作人:谢89A6、邮件未及时发出返回(Return)消息完成(Call)消息指定的功能中出现异常课件制作人:谢希仁A6、邮件未及时发出返回(Return)消息课件制作人:谢希90例5提交报销申请的协作图课件制作人:谢希仁例5提交报销申请的协作图课件制作人:谢希仁91①新建②退回③同意课件制作人:谢希仁①新建②退回③同意课件制作人:谢希仁92张磊博士,副教授

zhanglei@第6章面向对象分析计算机网络》课件制作人:谢希仁张磊博士,副教授

zhanglei@cumt.e93面向对象的分析着重分析问题域和系统责任,确定问题的解决方案,暂时忽略与系统实现有关的问题,建立独立于实现的系统分析模型。面向对象分析的基本过程如下:(1)问题域分析,建立用例模型(2)发现和定义对象与类(3)识别对象的外部联系(4)建立系统的静态结构模型(5)建立系统的动态结构模型课件制作人:谢希仁面向对象的分析着重分析问题域和系统责任,确定问946.1建立用例模型的过程⑴找出拟建系统以外的Actor与系统交互的人员;与系统相连并交换信息的设备和其他系统;⑵使用UseCase来描述Actor怎样使用系统以及系统向Actor提供什么功能UseCase表示从外部用户角度观察的系统功能⑶绘制UseCase图,并编写详细的UseCase描述。UseCase图只能宏观地描述系统的功能;每个功能的含义和具体实现步骤则以文本方式描述。课件制作人:谢希仁6.1建立用例模型的过程⑴找出拟建系统以外的Actor课件95举例:学生注册课程系统(1)某大学准备开发一个学生课程注册系统,学生可以使用该系统查询新学期将开设的课程和讲课教师情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;(2)教师可以使用该系统查询新学期将开设的课程和选课学生情况,并可以登记成绩单;(3)注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。(4)在每个学期的开始,学生可以获得该学期的课程目录表,课程目录表列出每门课程的所有信息,诸如基本信息、教师、开课系和选课条件等。课件制作人:谢希仁举例:学生注册课程系统(1)某大学准备开发一个学生课程注册系96(5)新学期开始前两周为选课注册时间,在此期间学生可以选课注册,并且允许改变或取消注册申请。每个学生可以选择不超过4门课程,同时指定2门侯选课程以备主选课程未选上。每门课程最多不能超过10人,最少不能低于3人。(6)开学两周后注册管理员负责关闭课程注册,低于3人选课的课程将被取消,一旦学生的注册过程完毕,注册系统将有关信息提交收费系统以便学生付费。如果在实际注册过程中名额已满,系统将通知学生在提交课程表之前予以更改。(7)在学期结束时,学生可以存取系统查看电子成绩单。由于学生成绩属于敏感信息,系统必须提供必要的安全措施以防非法存取。课件制作人:谢希仁(5)新学期开始前两周为选课注册时间,在此期间学生可以选课注97解题步骤1:发现角色简单地说,角色是与系统交互的人或事。所谓"与系统交互"意味着向系统发送消息,从系统中接收消息,或是与系统交换信息。有些角色可以初始化用例,有些角色则不然,仅仅参与用例,在某个时刻与用例进行通信。课件制作人:谢希仁解题步骤1:发现角色简单地说,角色是与系统交互的人或事。课件98可以通过回答下列问题,进行系统角色的识别:谁使用系统的功能?谁需要借助系统完成日常工作?谁来维护和管理系统,以保证系统正常工作?系统控制的硬件设备有哪些?系统需要与其他哪些系统交互?谁对系统产生的结果感兴趣?课件制作人:谢希仁可以通过回答下列问题,进行系统角色的识别:课件制作人99在上述例子中,学生和教师使用系统完成课程注册和成绩登记等,注册管理员维护和管理教师、学生和课程的信息。另外,收费系统存取已有的课程目录数据库,获得课程列表。课件制作人:谢希仁在上述例子中,学生和教师使用系统完成课程注册100解题步骤2:发现用例用例代表一个完整的功能,如与角色通信、进行计算或在系统内工作等。用例描述了它所代表的功能的各个方面,即包含了用例执行期间可能发生的种种情况;用例和角色之间具有“关联”的连接关系,表示什么角色与该用例进行通信。用例具有以下的特征:用例总是由角色初始化;用例为角色提供值;用例具有完全性,即不管其内部是如何实现的,只有最终产生了返回角色的结果,用例的执行才能完毕。课件制作人:谢希仁解题步骤2:发现用例用例代表一个完整的功能,101实际上,从识别角色开始,发现用例的过程就已经开始了。对于已识别的角色,通过询问下列问题,可以发现用例:角色需要从系统中获得什么功能?角色需要做什么?角色需要读取、产生、删除、修改或存储系统的某些信息吗?系统中发生事件需要通知角色吗?角色需要通知系统某件事情吗?系统需要的输入/输出信息是什么?这些信息从哪儿来到哪儿去?采用什么实现方法满足某些特殊要求?课件制作人:谢希仁实际上,从识别角色开始,发现用例的过程就已经102与教师有关的用例选择课程--选择所教的课程,并获得学生名册;登记成绩--在学期结束时,提交学生的课程成绩。课件制作人:谢希仁与教师有关的用例选择课程--选择所教的课程,并获得学生名册;103与学生有关的用例注册课程--在学期开始进行选课注册,允许在一段时间内更改或删除,课程目录系统提供当前学期的所有可选课程列表;查看成绩单--学生可以查看以前学期的电子成绩单。课件制作人:谢希仁与学生有关的用例注册课程--在学期开始进行选课注册,允许在一104与注册管理员有关的用例维护课程信息--在系统中增加、修改和删除课程信息;维护学生信息--在系统中增加、修改和删除学生信息;维护教师信息--在系统中增加、修改和删除教师信息。关闭注册--删除少于3人的课程,并由付费系统通知学生缴费。课件制作人:谢希仁与注册管理员有关的用例维护课程信息--在系统中增加、修改和删105与安全性要求有关的用例登录--使用此系统的人员需要进行登录,以验证其身份和权限。课件制作人:谢希仁与安全性要求有关的用例登录--使用此系统的人员需要进行登录,106解题步骤3:选课系统用例图课件制作人:谢希仁解题步骤3:选课系统用例图课件制作人:谢希仁107【实例】某公司的总部设在北京,在上海、广州、成都和西安有分支机构,全公司接近700名员工。鉴于业务和员工团队的快速发展,为了提升整体工作效率。该公司准备开发一套员工报帐系统,取代原来的人工处理方式。课件制作人:谢希仁【实例】某公司的总部设在北京,在上海、广州、成都和西安有分支108报帐系统将支持员工记录(或预见)日常业务活动的开销,并自动结算每个月应该返还员工的补偿金额,补偿金额会直接存入员工的工资帐户中。报帐系统应具有基于先进技术的图形化界面,员工可以输入业务活动的种类和简短描述,活动开销的类别,选择不同的支付方式,并可以生成灵活的报表。报帐系统应该有能力根据员工提供的信息和要求返还补偿额,同时保存全部员工的报帐信息。员工可以通过他们自己的电脑来使用报帐系统。由于牵涉到财务信息,报帐系统必须提供可信的安全机制。课件制作人:谢希仁报帐系统将支持员工记录(或预见)日常业务活动的开销,并自动结109该公司现有一套基于微软SQLSERVER的人事管理数据库系统,记录员工的基本信息和团队的组织结构。报帐系统将和现有人事管理数据库系统协同工作,需要引入人事管理数据库系统中的部分信息,但不会更新其内容。通过报帐系统,员工能够在出差前(提前两天)按照规定的额度向公司申请借款,相关的经理人员能够通过报帐系统批复或拒绝。报帐系统应在相关负责人批复之后通知该员工提取现金或确认相应款项已经划入指定信用卡(根据员工的要求);员工可以通过报帐系统报销合理的业务活动费用。课件制作人:谢希仁该公司现有一套基于微软SQLSERVER的人事管理数据库系110财务部门将指定一位报帐系统管理员监管拟建系统中的信息,负责初始设置和维护特定的分类报账额度策略,并能够定期或随机地向各部门负责人提交报帐情况的统计报告。报帐系统在每月的25日对通过审批的报帐申请自动作一次结算,并以电子邮件的方式通知应该得到补偿的员工,同时生成一份统计报告传送给财务部门的系统监管人员。课件制作人:谢希仁财务部门将指定一位报帐系统管理员监管拟建系统中的信息,负责初111【员工报帐系统】建立UseCase图步骤1:找出拟建系统以外的Actor课件制作人:谢希仁【员工报帐系统】建立UseCase图课件制作人:谢希仁112步骤2:发现UseCase报帐系统将支持员工记录(或预见)日常业务活动的开销……可以输入业务活动的种类和简短描述,活动开销的类别,选择不同的支付方式,并可以生成灵活的报表。员工可以通过报帐系统报销合理的业务活动费用。员工能够在出差前(提前两天)按照规定的额度向公司申请借款……课件制作人:谢希仁步骤2:发现UseCase课件制作人:谢希仁113步骤2:发现UseCase……相关的经理人员能够通过报帐系统批复或拒绝。课件制作人:谢希仁步骤2:发现UseCase课件制作人:谢希仁114步骤2:发现UseCase财务部门将指定一位报帐系统管理员监管拟建系统中的信息负责初始设置和维护特定的分类报账额度策略…定期或随机地向各部门负责人提交报帐情况的统计报告。课件制作人:谢希仁步骤2:发现UseCase课件制作人:谢希仁115步骤2:发现UseCase报帐系统在每月的25日对通过审批的报帐申请自动作一次结算,并以电子邮件的方式通知应该得到补偿的员工,同时生成一份统计报告传送给财务部门的系统监管人员。课件制作人:谢希仁步骤2:发现UseCase课件制作人:谢希仁116步骤3:建立UseCase图确定系统的责任、范围和边界,确定系统的需求提交报销申请提交借款申请批复报账申请课件制作人:谢希仁步骤3:建立UseCase图提交报销申请提交借款申请批复报117步骤3:建立UseCase图确定系统的责任、范围和边界,确定系统的需求结算当月报销费用审核报账申请课件制作人:谢希仁步骤3:建立UseCase图结算当月报销费用审核报账申请课118步骤3:建立UseCase图确定系统的责任、范围和边界,确定系统的需求完成日常维护调整报账额度制作统计报表课件制作人:谢希仁步骤3:建立UseCase图完成日常维护调整报账额度制作统1196.2建立问题域的对象与类模型发现和定义对象类应以问题域和系统责任为出发点,正确地运用抽象原则,尽可能全面地发现对象的因素,并对其进行检查和整理,最终得到系统的对象类。可以在用例模型的基础上,通过识别实体类、边界类和控制类,从而发现和定义系统中的对象类。课件制作人:谢希仁6.2建立问题域的对象与类模型发现和定义对象类应以问题域和1201.识别实体类实体类代表系统中需要存储和管理的信息,通常是永久存在的。启发分析员发现实体类的因素包括:人员:通常系统会涉及到各种各样的人员,我们需要考虑的是由系统保存和管理其信息的人员,如教师、学生等。组织:在系统中发挥一定作用的组织机构,如系、班级等。物品:需要由系统管理的物品,可以是有形或无形的,如课程等。课件制作人:谢希仁1.识别实体类实体类代表系统中需要存储和管理的信息,通常是永121设备:在系统中动态地运行、由系统进行监控或供系统使用的各种设备、仪表、机器、运输工具等。事件:需要由系统长期记忆的事件,如学生注册课程的记录等。表格:这里的"表格"是广义的,可以是各种业务报表、统计表、申请表、身份证、商品订单、帐目、学生成绩单等,注意不要将原始的表格进行简单对应,应该是分析和整理后形成的映射一些现实事物的表格。课件制作人:谢希仁设备:在系统中动态地运行、由系统进行监控或供系统使用的各种设122解题步骤4:选课系统的实体类Professor学校中讲课的教师Student

学校中注册课程的学生CourseCatalog学校所有课程的目录CourseOffering新学期课程的开设信息,如讲课教师、时间、地点等信息Course

课程的基本信息Schedule

学生在新学期选择登记的课程列表课件制作人:谢希仁解题步骤4:选课系统的实体类ProfessorStuden1232.识别边界类边界类代表系统与角色的接口,在每一个用例中,一个角色对应一个边界类。边界类收集来自角色的信息,并将其转换成实体类和控制类可以使用的中间接口。根据角色的不同类型,边界类可以是用户接口、系统接口和设备接口。课件制作人:谢希仁2.识别边界类边界类代表系统与角色的接口,在每一个用例中,一124解题步骤5:选课系统的边界类LoginForm为教师、学生和注册管理员提供登录的操作RegisterCoursesForm

为学生提供选课注册的操作SelectTeachCoursesForm为教师提供查看学生选课情况的操作MaintainProfessorsForm为注册管理员提供维护教师信息的操作ViewReportForm

为学生提供成绩查询的操作SubmitGradesForm

为教师提供登记成绩的操作课件制作人:谢希仁解题步骤5:选课系统的边界类LoginForm为教师、学生125MaintainStudentsForm为注册管理员提供维护学生信息的操作CloseRegistrationForm为注册管理员提供关闭注册的操作MaintainCoursesForm为注册管理员提供维护课程信息的操作BillingSystemNotice提供与收费系统的信息交换接口课件制作人:谢希仁MaintainStudentsFormCloseRegi1263.识别控制类控制类负责协调边界类和实体类,通常在现实世界中没有对应的事物,它负责接收边界类的信息,并将其分发给实体类。控制类与用例存在着密切的关系,它在用例开始执行时创建,在用例结束时取消。一般来说,一个用例对应一个控制类。当用例比较复杂时,特别是产生分支事件流的情况下,也可以有多个控制类。课件制作人:谢希仁3.识别控制类控制类负责协调边界类和实体类,通常在现实世界中127解题步骤6:选课系统的控制类RegisterCoursesControl负责新学期学生的选课登记ViewReportControl

负责学生成绩的查询SubmitGradesControl

负责学生成绩的登记SelectTeachCoursesControl负责新学期课程的学生选择情况CloseRegistrationControl负责关闭课程注册课件制作人:谢希仁解题步骤6:选课系统的控制类RegisterCoursesC128类与对象的表示方法课件制作人:谢希仁类与对象的表示方法课件制作人:谢希仁1294.定义属性(1)按照一般常识,找出对象的某些属性,如人员的姓名、性别、年龄、地址等;(2)认真研究问题域,找出对象的某些属性,如商品的条形码、学生的学号等;(3)根据系统责任的要求,找出对象的某些属性;(4)考虑对象需要系统保存和管理的信息,找出对象的相应属性,如"课程"需要保存和管理的信息;课件制作人:谢希仁4.定义属性(1)按照一般常识,找出对象的某些属性,如人员130(5)对象为了在服务中实现其功能,需要增设一些属性;(6)识别对象需要区别的状态,考虑是否需要增加一个属性来区别这些状态;(7)确定属性表示整体与部分结构和实例连接。对于初步发现的属性,检查这些属性是否系统使用的特征、是否描述了对象本身的特征、是否可以通过继承得到、是否可以从其他属性直接导出等,对这些属性进行整理和筛选。课件制作人:谢希仁(5)对象为了在服务中实现其功能,需要增设一些属性;课件制131属性层的表示课件制作人:谢希仁属性层的表示课件制作人:谢希仁1326.3识别对象的外部联系在找到系统的对象类之后,需要分析和认识各类对象之间的关系。对象与外部的关系有以下几种:(1)对象之间的分类关系,即泛化关系;(2)对象之间的组成关系,即聚合关系;(3)对象之间的静态关系,即关联关系;(4)对象之间的动态关系,即依赖关系。课件制作人:谢希仁6.3识别对象的外部联系在找到系统的对象类之133(1)泛化关系泛化与特化的结构,也叫做分类结构。继承性:特化类是泛化类的子类,泛化类是特化类的父类。基类表示了一个较为一般、普遍的概念,而每个子类则是它的某个特殊形态。在分类结构中恰如其分地分配属性和服务:共同的属性放在上层,而将特有的属性放在下层;将共同的服务放在上层,而将特有的服务放在下层泛化关系有助于代码共享和复用。课件制作人:谢希仁(1)泛化关系泛化与特化的结构,也叫做分类结构。课件制作人:134轮船、汽车和飞机都是交通工具,它们从交通工具类派生出来。因此,它们具有作为交通工具的共性(旅客容量、最大速度和公里耗油量等属性和启动、驾驶等操作)。当然,它们可以有自己的属性和操作。比如飞机还拥有飞行高度属性和降落操作等。课件制作人:谢希仁轮船、汽车和飞机都是交通工具,它们从交通工具类派135“发表的文章”和“接受的文章”是“文章”的特殊形态,而“文章”则是它们的一般化“文章”对象所具有的属性和服务可自动地为“发表的文章”和“接受的文章”所继承。课件制作人:谢希仁“发表的文章”和“接受的文章”是“文章”的特殊形态,而“文章136课件制作人:谢希仁课件制作人:谢希仁137(2)聚合关系是整体与部分结构,由属于不同类的成员聚合而形成新的类一个整体可有多个部分,也有不同种类的部分课件制作人:谢希仁(2)聚合关系是整体与部分结构,由属于不同类的成员聚合而形成138报社是由采访组、编辑室和印刷厂等几个部门组成一个报社只有一个编辑室,一个印刷厂,但可以有一至多个采访组课件制作人:谢希仁报社是由采访组、编辑室和印刷厂等几个部门组成课件制作人:谢希139课件制作人:谢希仁课件制作人:谢希仁140(3)关联关系:对象之间的实例连接两个对象往往由于受制于相同的应用规则而发生联系,这称为实例连接。实例连接也表示一个对象实例不存在的情况下,另一个对象是否仍有意义。课件制作人:谢希仁(3)关联关系:对象之间的实例连接两个对象往往由于受制于相141对象之间的实例连接的例子课件制作人:谢希仁对象之间的实例连接的例子课件制作人:谢希仁142(4)依赖关系两个对象之间存在的由于通信所需要而形成的联系,这称为消息连接消息连接表示从一个对象发送消息到另一个对象,由那个对象完成某些处理。对象之间的动态关系对象收到消息后所能执行的操作称为它可提供的服务课件制作人:谢希仁(4)依赖关系两个对象之间存在的由于通信所需要而形成的联系,143服务层的表示课件制作人:谢希仁服务层的表示课件制作人:谢希仁1446.4建立系统的静态结构模型1.类图主要是描述类和类之间的关系。2.对象图主要是描述对象和对象之间的关系。3.结构类型一般-特殊整体-部分4.主题或子系统可相互协作共同完成一组内聚功能的模型中的子集5.步骤复审需求描述和用例图,找出存在的类之间的关系,用线连接,并命名对每一个关系,指出关系基数/重数课件制作人:谢希仁6.4建立系统的静态结构模型1.类图主要是描述类1454.主题或子系统面向对象的模型相当大,是一个包含大量类和对象的平面图主题可以看成是高层的模块或子系统,通过对主题的识别,将这些类和对象做进一步的组合。课件制作人:谢希仁4.主题或子系统面向对象的模型相当大,是一个包含大量类和对象146现代银行业务系统主题课件制作人:谢希仁现代银行业务系统主题课件制作人:谢希仁147【例2、员工报账系统——提交报账申请】类图员工通过报帐系统填写报销申请,输入相关活动产生的费用,在一次或者多次填写后提交,经过验证之后,以电子邮件的方式通知经理批复。课件制作人:谢希仁【例2、员工报账系统——提交报账申请】类图课件制作人:谢希仁148类图⑴员工employee。公司的正式雇员。⑵经理manager。公司的正式雇员。⑶报销单Claim_report员工在一个(自然)月内的所有报销记录的集合。⑷报销记录Claim_record与业务有关的某一项具体的花费,包括业务活动发生的时间、地点、客户名称(可选)、原因以及费用金额和种类(交通、餐饮、会议、通讯和杂项)。⑸验证规则valid_rule验证为合理的报销记录必须满足几种条件:第一,不同种类的费用不超过相应的限额;第二,报销费用的类型要和员工的职能匹配。课件制作人:谢希仁类图课件制作人:谢希仁149类图课件制作人:谢希仁类图课件制作人:谢希仁1506.5建立系统的动态模型要想对一个系统了解得比较清楚,首先应当考察它的静态结构,即在某一时刻它的对象和这些对象之间相互联系的结构;然后应当考察在任何时刻对象及其联系的改变。系统的这些涉及时序和改变的状况,用动态模型来描述。动态模型着重于系统的控制逻辑。建立对象交互图,将用例的行为分布到对象中事件追踪图状态图时序图协作图课件制作人:谢希仁6.5建立系统的动态模型要想对一个系统了解得比较清楚,首先应151事件追踪图事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”。场景也叫做脚本,是完成系统某个功能的一个事件序列。场景通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,它可以包括发生在这个期间的系统所有的内部事件,也可以只包括那些撞到的或由系统中某些对象生成的事件。课件制作人:谢希仁事件追踪图事件追踪图侧重于说明发生于系统执行过程中的一个特152电话的一个场景课件制作人:谢希仁电话的一个场景课件制作人:谢希仁153从对象角度考虑的事件追踪图课件制作人:谢希仁从对象角度考虑的事件追踪图课件制作人:谢希仁154解题步骤7:选课系统的时序图课件制作人:谢希仁解题步骤7:选课系统的时序图课件制作人:谢希仁155【例4学校登记新生】课件制作人:谢希仁【例4学校登记新生】课件制作人:谢希仁156《become》从一个对象值变化到另一个对象值课件制作人:谢希仁《become》课件制作人:谢希仁157课件制作人:谢希仁课件制作人:谢希仁158关联关系关联关系关联关系关联关系关联关系课件制作人:谢希仁关联关系关联关系关联关系关联关系关联关系课件制作人:谢希仁159已登记属性——Boolean课件制作人:谢希仁已登记属性——Boolean课件制作人:谢希仁160例5提交报销申请的交互图与协作图不符课件制作人:谢希仁例5提交报销申请的交互图与协作图不符课件制作人:谢希仁161⑴转述U

温馨提示

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

评论

0/150

提交评论