




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软 件 需 求,哈尔滨工程大学计算机科学与技术学院海量数据挖掘及网络数据集成研究组 王念滨 教授 博导,第 11 章 面向对象建模,本课主要讨论问题,2 对象模型,3 用例模型,4 行为模型,1 面向对象分析,5 对象约束语言OCL,6 面向对象建模,本课主要讨论问题,2 对象模型,3 用例模型,4 行为模型,1 面向对象分析,5 对象约束语言OCL,6 面向对象建模,1 面向对象分析,结构化范型与面向对象范型,结构化范型(Structured Paradigm)基于如下的思想进行开发活动:一个系统应该被划分为两个部分:数据(使用数据/持久化模型建模)和功能(使用过程模型建模)。简言之,结构化方法,数据将和设计模型中以及系统实现中(也就是程序中)的行为分离。 范型(Paradigm):做事情的整体策略或观点,是一套特定的思想集合。 面向对象范型(Object-oriented Paradigm)不是将系统定义为两个分离的部分(数据和功能),而是需要把系统定义为一组正在交互的对象。对象可以完成一些事情(对象具有功能),对象也知道一些事情(对象有数据)。,函数及过程,数据,结构化应用,对象,对象,对象,对象,对象应用,1 面向对象分析,理解面向对象范型,考虑一个大学的信息系统 在大学的环境中,包含有教师,学生,教室,课程。所有这些事情都将被当成对象来考虑。学生知道一些事情(有自己的名字,住址,生日,电话号码等),可以完成一些事情(登记课程,取消课程以及支付相关费用等)。教师知道一些事情(所教授的课程,自己的名字等),教师可以完成一些事情(如输入分数以及教学进度等)。 从系统的角度来看,教室也知道一些事情(所处的建筑物以及房间号等),也能够完成一些事情(例如告知空闲状态以及可以预定它们的时间段)。课程也知道一些事情(名称,描述以及谁将选课),课程也能够完成一些事情(如通知学生选课或通知取消选课等)。要实现这样的系统,可以定义一组能够进行交互的类(类是相似对象的一种通用表示)。例如,将使用“学生”,“教师”,“课程”,“教室”类。由这些类构成系统,它们包含功能和数据。,1 面向对象分析,理解面向对象范型几个定义,类(Class): 对象创建(实例化)是所使用的模板。例如,张三,李四,王五 是“学生”对象,而将其模型化为“学生”类。对象空间(Object Space):包含所有可访问的永久存储的内存空间。对象存 在于其中并可以进行交互。对象(Object):可以是一个人,一个地方,一个物品,一个概念,一个事件,一个屏幕显示或者一个报表。对象知道一些事情(它们具有数据)可以完成一些事情(它们具有功能)。面向对象范型(Object oriented Paradigm): 一种基于面向对象的开发模型,即 从被称为对象的可重用组件来构建系统的方法。,1 面向对象分析,面向对象潜在的优点,增加可复用性;增加可扩展性;改进质量;财务利益;增加项目成功机会;减少维护负担;减少应用积压;可管理的复杂性。,1 面向对象分析,增加可复用性;增加可扩展性;改进质量;财务利益;增加项目成功机会;减少维护负担;减少应用积压;可管理的复杂性。,面向对象方法引入了继承、多态、封装、模块化、耦合以及内聚等概念,从而为复用(重用)提供了可能性。尽管使用面向对象方法并不能保证一定能够开发出可复用的软件,但它确实提供了比结构化方法更多的可复用的机会。,面向对象潜在的优点,1 面向对象分析,增加可复用性;增加可扩展性;改进质量;财务利益;增加项目成功机会;减少维护负担;减少应用积压;可管理的复杂性。,因为类既包含数据又包含功能,因此当增加新的特性时,仅仅需要在一个地方做改动:应用的类。这与结构化方法不同,在结构化方法中,某个业务规则的改变可能会影响许多程序。例如:存在多个能够访问大学数据库内学生数据表的结构化程序,如果在数据表中增加一个字段时,需要修改所有的结构化程序以支持这种变化。以使结构化程序能够处理新的数据。如果使用面向对象方法,只需要编写一个名为“学生”的类,这个类处理封装了学生适当数据和功能的数据。当增加一个新的字段时,仅需要修改学生类,其它使用该类的对象不需要修改。 面向对象既封装了功能,又封装了数据,这使得维护软件更加容易。,面向对象潜在的优点,1 面向对象分析,增加可复用性;增加可扩展性;改进质量;财务利益;增加项目成功机会;减少维护负担;减少应用积压;可管理的复杂性。,面向对象的继承特性使得复用已有行为成为可能,这使得完善软件变得更加容易。 继承通过使子类自动获取父类的所有行为,提高了复用性例如当需要修改已有的系统来跟踪记录大学内的研究人员。研究人员除了不用授课外,其它都与教师一样,在结构化方法中,需要为研究人员增加一个新的数据表和程序模块来处理其功能。在面向对象系统中,只需要定义“Research”类,该类继承了教师类,当然可能需要增加一些新的属性,但不必完全重新进行设计和开发。,面向对象潜在的优点,1 面向对象分析,增加可复用性;增加可扩展性;改进质量;财务利益;增加项目成功机会;减少维护负担;减少应用积压;可管理的复杂性。,高质量的系统是应该在规定的时间和预算内完成的,并且能够达到或超过用户期望的系统。在系统开发过程中,用户更多地参与可以提高系统开发的质量。面向对象技术给用户提供了更多参与开发过程的机会。采用如用例建模、CRC建模等方法。 面向对象技术提供了更多的获得更好软件质量的机会。,面向对象潜在的优点,1 面向对象分析,面向对象潜在的优点,增加可复用性;增加可扩展性;改进质量;财务利益;增加项目成功机会;减少维护负担;减少应用积压;可管理的复杂性。,可复用性,可扩展性以及对质量的改进所带来的不仅是技术上的利益。更重要的还存在业务利益。从用户的观点来看,采用对象方法可以帮助构建的系统更好、更快、更经济(BFC:Better, Faster, Cheaper)。,1 面向对象分析,面向对象潜在的优点,增加可复用性;增加可扩展性;改进质量;财务利益;增加项目成功机会;减少维护负担;减少应用积压;可管理的复杂性。,面向对象技术需要与用户紧密合作。用户是业务专家,他们是唯一能够告诉你需求是什么的人,而我们需要能够传达所需信息并且是用户可以理解的模型。因此面向对象技术增加了项目成功的机会。,1 面向对象分析,增加可复用性;增加可扩展性;改进质量;财务利益;增加项目成功机会;减少维护负担;减少应用积压;可管理的复杂性。,软件开发组织普遍花费相当多的资源来维护和运行软件。因为有许多准备工作需要完成,这将占据启动新项目所需要的时间。这两个问题分别被称为“维护负担”和“应用积压”。面向对象技术可以帮助克服这些问题。,面向对象潜在的优点,1 面向对象分析,增加可复用性;增加可扩展性;改进质量;财务利益;增加项目成功机会;减少维护负担;减少应用积压;可管理的复杂性。,当前,软件开发已经变得越来越复杂。当20世纪70年代引入结构化开发方法时,开发了大型的、批处理的、基于主机的事物处理系统。这些系统常常是很巨大的,也相当直接,得到数据,进行处理然后输出数据。今天的系统更加复杂,当前的应用程序都采用实时联机,为C/S开发,对等网络或基于Internet架构,使用多种多样的用户界面,包括图形方式和浏览器方式。支持复杂和变化的业务环境。 通过对象技术,可以设计完好、可复用的软件。并对快速变化的环境做出正确的响应。,面向对象潜在的优点,1 面向对象分析,面向对象潜在的缺点,面向对象需要更关注与需求、分析和设计;开发人员必须与用户紧密合作;面向对象需要完全改变每个人的思想;面向对象需要改变信息系统部门的开发文化;面向对象不仅仅是编程;面向对象的许多优点是长期的;面向对象需要先在培训、教育和工具上投资;面向对象技术不能保证能够构建出正确的系统;面向对象要求更多的测试工作;面向对象仅是解决方案的一部分。,1 面向对象分析,面向对象基础,OO 和好的设计是结合在一起的,做出好的设计并不意味着就是在做OO,而做OO也并不意味着在做好的设计。结构化或者过程技术也可以做出好的设计,只是面向对象提供了更多的机会而已。,1 面向对象分析,面向对象基础,1 面向对象分析,面向对象基础,1 面向对象分析,面向对象基础,1 面向对象分析,面向对象基础,1 面向对象分析,面向对象基础,1 面向对象分析,面向对象基础,类与对象,面向对象范型使用可复用的类构建系统。对象可以是一个人、地址、物件、概念、屏幕显示、报表。类泛化或一组相似的对象,是创建对象的有效模板。 一个类表示一组相似的对象。对象是类的实例。 实践:如何命名类。 类名通常都是名词;类名一般是一到两个词,类名应能准确地描述类。 类名通常是单数的。,1 面向对象分析,面向对象基础,属性和方法,系统应该由对象来创建,对象拥有数据和功能。属性和方法都是类的职责。属性定义数据,方法定义功能。属性是类知道的事情,方法是类完成的事情。,Student,属性,方法,张三,李四,王五,学生类,学生对象,1 面向对象分析,面向对象基础,抽象、封装与信息隐藏,世界非常复杂,为了处理复杂性,将事物进行泛化或抽象。例如考虑人的抽象。从大学系统考虑,需要知道人的姓名,电话号码,地址以及教育背景等 。从警察的角度来看,需要知道人的姓名,地址,电话号码,体重,身高,头发颜色等。对同一个人,如果从 不同的角度来看,需要考虑的问题可能回存在差别。 抽象是一个分析过程,它处理类知道的和要完成的事情。抽象应该包含应用程序感兴趣的功能、属性、方法,而将其它因素忽略。,1 面向对象分析,面向对象基础,抽象、封装与信息隐藏,抽象让我们可以存储学生姓名和地址,但它并未告诉我们该怎样完成这些事情。封装解决如何为系统功能建模的问题。在面向对象中,要将系统建模为类,将类建模为方法和属性。通常说将行为封装到类中,将功能封装到方法中。 封装描述了如何在系统中划分功能的问题。 封装实际上是一个设计问题,它处理怎样在系统中进行功能划分。实践中,我们不需要知道对象是如何实现的。封装暗示着我们能够以任何方式构建系统,如果以后要改变它的实现时,将不会影响系统中的其它组件。 通常认为封装是将框体涂黑的方法。你可以定义任何想要定义的东西,但并不需要告之外界你的做法。 例如,银行怎样使用大型机记录你的帐户信息,使用什么数据库,什么操作系统,对你来说,根本就不重要。因为它将执行帐户服务的方法封装起来了。你仅想要走到出纳面前,完成交易。通过隐藏实现帐户的细节,银行能够在任何时候自由改变功能实现,而且这种改变不会影响提供给顾客的帐户服务。,1 面向对象分析,面向对象基础,抽象、封装与信息隐藏,为了让应用程序容易维护,需要限制对数据属性和方法的访问。基本思想如下:如果一个类希望获取另外一个类的信息,需先征得同意。而不是直接拿来用。限制访问属性,可以使程序员编写出低耦合的代码。当代码高度耦合时,如果一部分代码发生改变,回迫使耦合的部分也跟着改变。 抽象、封装和信息隐藏使系统具有更多的可维护性。,1 面向对象分析,面向对象基础,继承,不同类之间经常会存在相似性。两个以上的类也会经常共享相同的属性,或相同的方法。由于我们不希望重复编写代码,因此需要利用这种相似性。继承就是为了实现这种机制。继承将建立“is a ”, “is like”关系,能够容易地复用已经存在的数据和代码。继承通过利用类间的相似性复用已有的工作。 例如,大学系统中,教授都有姓名,地址,学术方向等。同时,研究员也拥有这些东西。当然,我们可以开发教授类和研究员类,让他们一起工作。以前,我们采取的方法是先开发出教授类,然后制作一份拷贝,命名为研究员类,并作一些适当的修改,例如研究员可以不授课。这样做很容易,但存在一些问题。如果教授类在运行过程中发现存在一些问题,则需要在两个地方进行修改。 继承就是为了解决这样的问题。通过继承特性,可以定义一个类来封装教授和研究员间的相似性。新的类将具有姓名,地址,学术方向等属性和方法。,1 面向对象分析,面向对象基础,继承,为此,我们使用一个新的类,教师类。一旦定义了教师类。就可以从它继承出教授类和研究员类。即教授类和研究员类均为教师类的子类。任何父类知道和完成的事情,子类也可以实现。,注意:Teacher类用斜体表示,表明它是一个抽象类。Professor和Researcher类是具体类。,1 面向对象分析,面向对象基础,继承,引入抽象类是为了实现类的公共行为。 抽象类与具体类的区别在于:可以从具体类中实例化(创建)对象,但不能从抽象类中实例化对象。意味着软件需要实例化教授或者研究员对象,但不需要创建教师对象。当创建一个类实现多个类的共同特征时,就可以建立抽象类。,1 面向对象分析,面向对象基础,继承,继承的一些技巧和技术:寻找相似之处:无论何时只要两个以上的类有相似之处,相似的属性或者是行为,都会存在使用继承的可能性。寻找已有的类:当确定一个新的类时,可能已经有一个与之相似的类。有时可以直接从这个已有的类继承,仅编写与新类中不相同的那些代码。继承所有的东西:子类应该从父类中继承所有的东西,这种概念被称为纯粹继承。主要是为了代码维护的方便性。,1 面向对象分析,面向对象基础,单一继承和多重继承: 大多数语言不支持多重继承。C+是少数支持多重继承的语言之一,JAVA等都不支持多重继承。除非你在做游戏程序,发挥超出现实的想象力,可能会需要多重继承,否则,尽量不要用多重继承。,A,B,A1,B,A2,继承,1 面向对象分析,面向对象基础,关联,关联存在于对象之间 在现实世界中,对象与其他对象产生关系和关联。对象之间的关联很重要。因为它可以帮助我们定义对象如何交互。 确定对象之间的关联关系,重要的是要描述这些关系-“基数”和“选择性” 基数表示“多少”,选择性表示“可能或必须”。在UML中,将基数和选择性组合成一个概念-多重性。,1 面向对象分析,面向对象基础,关联,指出了类之间的某种语义联系;关联是类对其对象实例之间的无数潜在关系的描述,1 面向对象分析,面向对象基础,关联,UML多重性指示器,1 面向对象分析,面向对象基础,关联,学生,讨论班,参加,0.*,1.*,一个学生可以参加一个以上的讨论班;一个讨论班可以由零个或多个学生参加,1 面向对象分析,面向对象基础,聚合,有时对象会由其它对象组成。例如,飞机由机身、机翼、发动机、起落架、副翼等组成。一个团队由多个人员组成。他们之间存在”is part of ”关系。实际上,“聚合”是关联的一部分。 聚合实际上包含两类:聚合,组合。,团队,队员,0.*,子团队,1.*,1.*,一个队员是一个或者多个团队的一部分;一个团队由一个或者多个队员组成;任何团队都可以是更大的团队的一部分;一个团队可以由多个小的子团队构成。,0.1,飞机,引擎,1.*,一个发动机是一架且仅是一架飞机的一部分一架飞机由一个或多个发动机。,1 面向对象分析,面向对象基础,协作,类图描述了系统中包含的类,类提供的功能,以及类之间的关联,但是没有告诉我们类实例(对象)之间是如何通信的。这就是使用协作的目的。,协作描述对象之间的关联及其它们彼此之间的消息通信。要想使由类构成的系统具有功能,类的实例(对象)需要彼此通信和交互,它们需要协作。 UML 采用顺序图和协作图描述协作。,1 面向对象分析,面向对象基础,交互:一次交互就是指在特定语境中,为了实现某一个 目标,而在一组对象之间进行交换的一组消息所表示的行为。 交互图:是用来描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档。通常用来描述一个用例的行为,显示该用例中所涉及的对象和这些对象之间的消息传递情况. 消息通常是指启动一个操作或发送一个信号,以及创建或销毁一个对象。,1 面向对象分析,面向对象基础,UML交互图的类型顺序图:顺序图是一种强调消息时间顺序的交互图,为读者提供了控制流随着时间推移的清晰的可视化轨迹 协作图:在UML 2.0中叫通信图,它强调的是参加交互的对象的组织,为读者提供了在协作对象结构组织的语境中观察控制流的一个清晰的可视化轨迹 定时图:采用了一种带数字刻度的时间轴来精确地描述消息的顺序交互概述图:是交互图和活动图的混合物,1 面向对象分析,面向对象基础,顺序图:显示的是参与交互的对象及对象之间消息交换 的顺序,用来表示用例中的行为顺序。,1 面向对象分析,面向对象基础,协作-顺序图的建模元素,对象(角色):最顶上一排矩形框。在交互图中,参与交互的对象既可以是具体的事物,又可以是原型化的事物。作为具体的事物,一个对象代表现实世界中的某个东西。例如,aOrder作为类Order的一个实例,可以代表一个特定的订单;而如果作为一个原型化的事件,则aOrder可以代表类Order的任何一个实例。,1 面向对象分析,面向对象基础,生命线:每个对象都有自己的生命线,对象生命线是一条垂直的虚线,用来表示一个对象在一段时间内存在。 例外情况 控制焦点:生命线上的长条形矩形称为 “控制焦点”,它表示一个对象执行一 个动作所经历的时间段,顶部表示动作 的开始,矩形底部表示动作的结束。 控制焦点可以嵌套 激活期:表示对象执行一个 动作的期间,即对象激活的 时间段,与控制焦点同义。,顺序图的主要元素-生命线和控制焦点,1 面向对象分析,面向对象基础,顺序图的主要元素-消息,消息:用来描述对象之间所进行的通信的,该信息带有对将要发生的活动的期望。当传送一个消息时,它所引起的动用是一个通过对计算过程的抽象而得到的可执行语句。 消息分为:调用、返回、发送调用:表示调用某个对象一个操作 返回:(对非过程调用)返回表示被调用的对象向调用者返回一个值。,异步消息(发送消息send):发送者通过消息把信号传递给接受者,然后继续自己的活动,不等待接收者返回消息或控制。 比较:调用是同步机制,就是说对象A调用对象B时,A发送完消息后会等待B执行完所调用的方法之后在继续执行;而异步消息是对象A给对象B发送了一个信号,那么A在发送完信号后,就会继续执行,不会等待。信号:Windows中“点击鼠标左键”,1 面向对象分析,面向对象基础,在UML中,消息用箭头表示,箭头的类型表示了消息的类型。,顺序图的主要元素-消息,1 面向对象分析,面向对象基础,创建对象:(构造函数实现)意味着该对象生命线的开始。如果对象位于时序图的顶部,说明在交互开始之前该对象已经存在了。如果对象是在交互的过程中创建的,那么它应当位于图的中间部分。对象在创建消息发生之后才能存在,对象的生命线也是在创建消息之后才存在的 创建对象的两种表示方法:,顺序图-对象的创建和销毁,1 面向对象分析,面向对象基础,销毁对象:(析构函数实现)在目标对象的生命线重终点放一个X(大叉),该点通常是对删除或取消消息的回应。,顺序图-对象的创建和销毁,1 面向对象分析,面向对象基础,顺序编号(消息编号):消息的编号可以有两种:一种是无层次编号,它简单直观;另一种是嵌套的编号,它更易于表示消息的包含或说嵌套关系。如在消息1中,1.1是嵌套在消息1中的第一个消息,它在消息1.2之前,消息1.2是嵌套在消息1中的第二个消息,依次类推。必须确保消息标号的唯一性。,顺序图-顺序编号,1 面向对象分析,面向对象基础,顺序图-嵌套编号,1 面向对象分析,面向对象基础,设置交互的语境。通过识别对象在交互中扮演的角色,设置交互的场景。为每个对象设置生命线。从引发某个消息的信息开始,在生命线之间画出从顶向下依次展开的消息,显示每个消息的特性(如参数)。如果需要表示消息的嵌套或表示发生时的时间点,则采用控制焦点。如果需要说明时间或空间的约束,可以用时间标记修饰每个消息,并附上合适的时间和空间约束。如果需要更形式化的说明某控制流,可以为每个消息附上前置和后置条件。,建立顺序图的步骤,1 面向对象分析,面向对象基础,协作图中有3种元素:对象,链和消息。,协作图(通信图),1 面向对象分析,面向对象基础,协作图主要元素-对象,在协作图中无法表示对象的创建和撤消,所以对象在协作图中的位置没有限制。多对象:在协作图中,多对象指由多个对象组成的对象集合,这些对象一般属于同一个类,它们的本质是类的实例。多个方框重叠表示 主动对象:是一组属性和方法的封装体,其中中至少有一个方法不需要接收消息就能够主动的执行(主动方法)。也就是说,主动对象在不接收外部消息的情况下自己开始一个控制流。,1 面向对象分析,面向对象基础,协作图主要元素-链,1 面向对象分析,面向对象基础,协作图主要元素-链,1 面向对象分析,面向对象基础,消息编号 在协作图中经常还会采用一些更复杂的消息编号方式,例如可以加如“线程”和“进程”的概念,根据消息所在的线程来区分其消息编号。 语法格式是:integername 其中integer是消息序号,name表示并发的控制线程。例:A5和A11:在同一个线程或进程中A5和B3:不在同一个进程或线程中lal和lb1:两个消息都在消息1内,但在并发、嵌套的不同线程中执。,协作图主要元素-消息,1 面向对象分析,面向对象基础,循环 UML 2.0的协作图中,循环是通过在顺序编号前加上一个迭代符“*”和一个可选的循环表达式来表示的。,常用的循环表达式,协作图主要元素-消息,1 面向对象分析,面向对象基础,监护条件(警戒条件) 监护条件通常是用来表示分支的,即表示“如果条件为true,才发送消息” ,以“条件表达式”的格式表示。,协作图主要元素-消息,1 面向对象分析,面向对象基础,监护条件(警戒条件) 在通信图中使用监护条件一定要有所限制,通常应只列出主要的监护条件,否则会影响其阅读。如果需要,尽可能还是通过顺序图来表示,协作图主要元素-消息,1 面向对象分析,面向对象基础,设置交互的语境。通过识别对象在交互中扮演的角色,设置交互的场景。将对象作为顶点放在协作图中,其中比较重要的对象放在中央,他们的临近对象放在外围。为每个对象设置初始特性。如果某个对象的属性值、标记值、状态等在交互期间发生重要变化,则在图中放置一个复制对象,并用新的值更新它,然后通过构造型或的消息将二者连接。描述对象之间可能有信息沿着它传递的链。首先安排关联的链,然后再安排其他链。从引起交互的消息开始,适当地设置其顺序号,然后将随后的每个消息附到适当的链上。可以用带小数点的编号来显示嵌套没。如果需要说明时间或空间约束,可以用时间标记修饰这个消息,并附上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025黑龙江绥化市庆安县招聘教师36人模拟试卷及答案详解参考
- 2025年谷胱甘肽及酵母提取物项目发展计划
- 小学劳动安全培训课件
- 2025辽宁鞍山市铁东区教育局面向毕业生(第二轮)校园招聘笔试考前自测高频考点模拟试题完整答案详解
- 公司员工请假管理操作手册
- 保险行业技术规范与市场分析
- 2025贵州省凯里学院第十三届贵州人才博览会引才28人考前自测高频考点模拟试题及答案详解一套
- 2025贵州兴仁市马马崖镇村级卫生室医生岗位招聘考前自测高频考点模拟试题及答案详解(新)
- 2025内蒙古第七批高层次人才需求目录(2025年4月29日发布)模拟试卷及答案详解(名校卷)
- 2025河南信阳市潢川县退役军人事务局招聘3名全日制公益性岗位模拟试卷带答案详解
- 燃气运营安全管理方案
- 倒睫科普课件
- (高清版)DBJ∕T 13-318-2025 《建筑施工盘扣式钢管脚手架安全技术标准》
- 思想道德与法治2023年版电子版教材-1
- T/CIE 176-2023机场探鸟雷达系统技术要求
- 《机械基础(第二版)》中职全套教学课件
- 国网投标离线投标工具使用说明
- 发展汉语-初级读写-第一课-你好
- 鲁班锁制作技术
- 画魂空手套无删减全文下载
- 五猖会原文 五猖会
评论
0/150
提交评论