软件设计与体系结构论文
软件设计与体系结构论文
软件体系结构论文:一种面向方面软件体系结构模型
摘 要: 为了分离软件系统中的核心关注点和横切关注点,通过引入面向方面软件开发的思想设计了一种面向方面软件体系结构模型,并详细分析了该模型的三个基本构成单元,即构件、连接件和方面构件。最后通过一个网上支付实例验证了该模型具有一定的理论意义和实用价值。
关键词: 面向方面软件体系结构;横切关注点;构件;连接件;方面构件
20世纪60年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上,然而随着软件系统规模越来越大,对总体的系统结构设计和规格说明变得异常重要。随着软件危机程度的加剧,软件体系结构(software architecture)这一概念应运而生。软件体系结构着眼于软件系统的全局组织形式,在较高层次上把握系统各部分之间的内在联系,将软件开发的焦点从成百上千的代码上转移到粒度较大的体系结构元素及其交互的设计上。与传统软件技术相比,软件体系结构理论的提出不仅有利于解决软件系统日益增加的规模和复杂度的问题,有利于构件的重用,也有利于软件生产率的提高。面向方面软件开发(AOSD)认为系统是由核心关注点(corn concern)和横切关注点(cross-cutting concern)有机地交织在一起而形成的。核心关注点是软件要实现的主要功能和目标,横切关注点是那些与核心关注点之间有横切作用的关注点,如系统日志、事务处理和权限验证等。AOSD通过分离系统的横切关注点和核心关注点,使得系统的设计和维护变得容易很多。
Extremadura大学的Navasa等人[1]在2002年提出了将面向方面软件开发技术引入到软件体系结构的设计中,称之为面向方面软件体系结构(aspect oriented software architecture,AO-SA),这样能够结合两者的优点,但是并没有给出构建面向方面软件体系结构的详细方法。
尽管目前对于面向方面软件体系结构这个概念尚未形成统一的认识,但是一般认为面向方面软件体系结构在传统软件体系结构基础上增加了方面构件(aspect component)这一新的构成单元,通过方面构件来封装系统的横切关注点。目前国内外对于面向方面软件体系模型的研究还相对较少,对它的构成单元模型的研究更少,通常只关注方面构件这一构成单元。方面构件最早是由Lieberherr等人[2]提出的,它是在自适应可插拔构件(adaptive plug and play component,APPC)基础之上通过引入面向方面编程(AOP)思想扩展一个可更改的接口而形成的,但它关于请求接口和服务接口的定义很模糊,未能给出一个清晰的方面构件模型。Pawlak等人[3]提出了一个面向方面的框架,该框架主要包含了一个方面构件模型———Java方面构件(Java aspect component,JAC),但该方面构件模型仅包含了切点(pointcut),并把AOP中装备(advice)集成到了切点的表达式中,它主要从实现的角度进行了阐述,并没有给出详细的方面构件模型。本文没有只关注面向方面软件体系结构中方面构件这一构成单元模型,还详细分析了它的另外两个构成单元,即构件和连接件,因为面向方面软件体系结构各部分之间是相互关联的。
1面向方面软件体系结构相关概念
面向方面软件体系结构涉及诸多概念,以下将分别介绍。软件体系结构在软件工程领域有着广泛的影响,但当前仍未形成一个统一的、标准的定义。目前国内外普遍认可的看法是软件体系结构包含构件、连接件和约束[4]。其中约束描述了体系结构配置和拓扑的要求,确定了体系结构的构件与连接件的连接关系。这样就可以把软件体系结构写成
软件体系结构(software architecture)=构件(components)+
连接件(connectors)+约束(constraints)
构件是软件体系结构的基本元素之一。一般认为,构件是指具有一定功能、可明确辨识的软件单位,并且具备语义完整、语法正确、有可重用价值的特点,然而目前对于构件的具体结构及构成并没有一个统一的标准[5],而且一些主要的构件技术也没有使用相同的构件类型。另外,当前被广泛接受的构件定义并不包含具体的软件构件模型(software component model)。例如,Szyperski等人[6]给出了软件构件一个很有名的定义:软件构件是一个仅带特定契约接口和显式语境依赖的结构单位,它可以独立部署,易于第三方整合。但是关于软件构件模型有一个被普遍接受的观点是:软件构件是一个具有服务提供和服务请求功能的软件单元[7]。
连接件是软件体系结构另一个基本的构成元素,是用来建立构件间交互以及支配这些交互规则的构造模块。连接件最先是由Shaw[8]提出来的,她建议把连接件作为软件体系结构中第一类实体,用来表示普通构件之间的交互关系。目前对于连接件尚未形成统一的认识,尽管在软件体系结构中强调了连接件存在的必要性,但是关于连接件模型的研究还很少,连接件的实际应用还不成熟。
面向方面软件体系结构在传统软件体系结构的基础上增加了方面构件单元。通常认为,方面构件是封装了系统横切关注点的一类特殊的构件。目前关于方面构件模型的研究还处于起步阶段。
2面向方面软件体系结构模型
由于传统软件体系结构模型包含构件、连接件和约束,而面向方面软件体系结构是在传统软件体系结构的基础之上扩展了方面构件,所以面向方面软件体系模型结构包含构件、连接件、方面构件和约束。其中约束描述了面向方面体系结构配置和拓扑的要求,确定了体系结构的构件、连接件和方面构件之间的连接关系,而构件、连接件、方面构件是它的三个基本的构成单元。以下对这三个构成单元的模型进行详细的设计。
2.1构件模型
构件模型由以下几个要素构成(图1):
(a)端口。
构件的服务请求和服务提供功能是通过端口来实现的。端口是构件与外部环境进行交互的惟一通道。一般的构件模型通常采用两种端口,即双向端口和单向端口。在使用双向端口的构件模型中,服务请求和服务提供功能可以在同一个端口中实现。本文中的构件模型使用单向端口,此种端口分为请求端口和服务端口两种类型。
(a)服务端口。构件通过服务端口向其他构件提供服务。构件通过服务端口向其他构件的请求消息进行应答,返回响应消息。每个服务端口对应一个接口。
(b)请求端口。构件通过请求端口向其他构件请求服务。构件为了实现自己的业务功能,需要通过请求端口向其他构件发送请求消息。每个服务端口也对应一个接口。
(b)接口。
它定义了一个到多个业务功能。这些业务功能由服务端口进行提供,并由请求端口进行使用。一个接口限定了一个特定端口可以进行的交互功能,接口是构件间交互的契约。通常的接口类型有:Java Interface、WSDL 1.1 portTypes和WSDL 2.0 Interfaces等,也可以自定义接口类型。
(c)属性。
与类或对象相似,构件也具有属性,属性可以在构件使用前进行配置,它能够反映构件在交互过程中状态的变化。
2.2连接件模型
连接件是用来建立构件间交互以及支配这些交互规则的体系结构构造模块。连接件为构件间信息交互提供传输和路由服务。在最简单的情况下,构件之间可以直接完成交互,这时体系结构中的连接件就退化为直接连接。在更为复杂的情况下,构件间交互的处理和维持都需要连接件来实现。对于构件而言,连接件是构件的粘合剂,是构件交互的实现,也可以看做是一种特殊的构件[8]。与构件相似,连接件也具有端口。连接件的端口可分为两种类型,即源端口(source port)和目标端口(target port)。源端口用于接收构件请求端口中的消息,目标端口用于向构件服务端口中输入消息。连接件通常需要使用一种合适的绑定(binding)机制,构件的请求端口使用这种绑定机制来描述服务请求的方法,构件的服务端口也使用这种机制来描述构件进行请求的方式。常用的绑定机制有:WebService Binding和JMS Binding等,也可以自定义绑定机制。与构件一样,连接件也具有属性,来表示构件间交互的状态变化,如图2所示。
2.3复合构件模型
构件可分为两种,即原子构件和复合构件。前者是不可再分的构件。后者是可再分构件,它封装了若干个子构件。子构件间通过连接件相互连接,且子构件的端口也可以暴露成为复合构件的端口,子构件也可能是复合构件。如图3所示:复合构件A包含两个子构件B和D,子构件B和D通过连接件C进行相连,构件B的服务端口E暴露成为复合构件A的服务端口F,其请求端口G暴露成为A的请求端口H。
2.4方面构件模型
方面构件是面向方面软件体系结构的一个核心的构成单元,它封装了横切关注点,这是与传统软件体系结构最大的不同之处。图4给出了方面构件模型,与普通构件一样,方面构件也有服务端口和请求端口以及属性,但是它还有普通构件所没有的方面端口。当一个构件具有一个方面端口时,即可认为此构件就是方面构件。一个方面端口中包含若干个方面,这与一般面向方面编程(AOP)技术中方面概念有所不同。面向方面编程具有以下四个基本概念:方面(aspect)、连接点(joinpoint)、通知(advice)和切点(pointcut)。连接点是应用程序执行过程一个定义明确的位置,如方法调用是一种典型的连接点。切点是一系列连接点的集合,是方面的作用点。通知表述了在切点所选定的连接点处要执行的动作,常见通知类型有before、around和after等,分表代表在连接点之前、连接点附近和连接点之后执行相应的通知代码。方面是用来描述和实现横切关注点的基本单位,由切点和通知构成。方面端口中的方面横切关注的是构件,这与一般AOP(如AspectJ)横切关注的对象(object)不同,由于构件能够表达对象所不能表达的请求服务的能力[9],这使得方面端口中方面所采用的连接点模型和切点语言具有很大的不同。
2.4.1连接点模型
该连接点模型包含两种不同类型的连接点,即构件服务端口中的服务提供操作和请求端口的服务请求操作。由于构件的内部结构通常被视为黑盒,因此连接点模型应该仅考虑构件的外部可见元素,如构件请求端口和服务端口中的服务操作。如果连接点模型包含构件的属性,那么它将会破坏构件的分装性。
2.4.2切点语言
用来选用连接点的切点语言基于切点表达式,表1给出了切点的五个组成部分,即component、jp_type、port、interface和service,然后分别对其进行了说明。其中,jp_type代表选用的连接点类型,可以是请求端口中的服务、服务端口中的服务或所有端口中的服务,详细如表1。表2给出了切点语言的一些例子,其中正则表达式基于java.util.regexp包。
2.5面向方面软件体系结构模型
面向方面软件体系结构由构件、连接件、方面构件组成,详细请参见图6。
3基于面向方面软件体系结构模型的网上支付实例
近年来,网上购物发展迅速,网上支付是消费者主要的支付手段之一,图7给出了基于面向方面软件体系结构的网上支付模型,它由四个原子构件,即一个复合构件、两个方面构件和三个连接件组成。其中WebClientComponent代表客户端构件,它可以向网上银行构件WebBankComponent请求AccountService()服务,该服务有三个参数,即username、password、cost,分别对应于用户的网上银行账户名、密码及购买商品的消费金额。
〈component name="WebClientComponent"〉〈required.port name="WebClientRequest"〉
〈java.interface interface="AccountServiceInterface"〉〈service name="AccountService()"〉
〈param name="username"type="string"/〉
〈param name="password"type="string"/〉
〈param name="cost"type="float"/〉
〈/service〉〈/java.interface〉
〈/required.port〉
〈/component〉
连接件AccountServiceConnector用于连接客户端构件和网上银行构件,它采用WebServiceBinding绑定机制。
〈connector name="AccountServiceConnector"binding="WebServi-ceBinding"/〉
〈source name="S"/〉〈target name="T"〉
〈/connector〉
〈connect.source from="WebClientComponent.WebClientRequest"to="S"/〉
〈connect.target from="T"to="WebBankComponent.Bank-Re-sponse"/〉
网上银行构件是一个复合构件,由账户服务构件Account-ServiceComponent、账户数据库连接件AccountDBConnector和账户数据库构件AccountDBComponent组装而成。其中该复合构件的服务端口也使用接口AccountServiceInterface,这是为了兼容客户端构件请求端口使用的接口。
身份验证构件AuthenticationComponent用于验证用户的身份信息,它通过UserInfoConnector连接件访问用户信息数据库构件UserInfoDBComponent。
pointcut="WebBankComponent;BankResponse;AccountServiceInterface;AccountService()"
是该方面构件的方面端口中使用切点的表达式。
为了保证数据库构件UserInfoDBComponent和AccountDB-Component的安全性,方面构件SecurityComponent使用方面端口Security监视这两个构件的服务端口,使得在这两个构件服务调用之前增加日志和事务功能,而日志和事务功能在系统中通常表现为横切关注点,面向方面软件体系结构能够对它进行很好的封装,便于设计和维护。
〈aspect.component name="SecurityComponent"〉〈aspect.port name="Security"〉〈aspect〉〈pointcut="UserInfoDBComponent;UserInfoResponse;*;*|Ac-countDBComponent;AccountDBResponse;*;*"/〉〈advice.role="before"action="Log()"/〉〈advice.role="before"action="Transaction()"/〉〈/aspect〉〈/aspect.port〉〈required.port name="UserInfoRequest"/〉〈/aspect.component〉
4结束语
本文给出了一种面向方面软件体系结构模型,详细设计了它的三个基本构成单元模型,即构件、连接件和方面构件;最后通过一个网上支付实例验证了该模型有效性和实用性,为面向方面软件体系结构的实际应用奠定了一定的基础。笔者将继续完善该模型的相关理论,研究面向方面软件体系结构的工程化应用方法。
参考文献:
[1]FABRESSE L,DONY C,HUCHARD M.Foundations of a simpleand unified component-oriented language[J].Journal of ComputerLanguages,Systems&Structures,2008,34(2-3):130-149.
[2]LIEBERHERR K,LORENZ D,MEZINI M.Programming with as-pectual components,T R NU-CSS-99-01[R].[S.l.]:NoutheastamUniversity,1999.
[3]PAWLAK R,SERNTURIER L,DUCHIEN L D,et al.JAC:an as-pect-based distributed dynamic framework[J].Software Practiceand Experiences,2004,34(12):1119-1148.
[4]李千目.软件体系结构设计[M].北京:清华大学出版社,2008.
[5]马亮,孙春艳.软件构件概念的变迁[J].计算机科学,2002,29(4):28-30.
[6]SZYPERSKI C,GRUNTZ D,MURER S.Component software:be-yond object-oriented programming[M].2nd ed.[S.l.]:Addison-Wesley,2002.
[7]LAU K K,WANG Z.Software component models[J].IEEE TransSoft Eng,2007,33(10):709-724.
[8]SHAW M.Procedure calls are the assembly language of software in-terconnection:connectors deserve first-class status[C]//Proc of InICSE Workshop on Studies of Software Design.1993:17-32.
[9]NAVASA A,PREZ M A,MURILLO J M,et al.Aspect orientedsoftware architecture:a structural perspective[C]//Proc of Workshopon Early Aspects.2002.
京东网站设计用了什么软件设计与体系结构内容分析论文的摘要
(一)要有全局观念,从整体出发去检查每一部分在论文中所占的地位和作用。看看各部分的比例分配是否恰当,篇幅的长短是否合适,每一部分能否为中心论点服务。比如有一篇论文论述企业深化改革与稳定是辩证统一的,作者以浙江××市某企业为例,说只要干部在改革中以身作则,与职工同甘共苦,可以取得多数职工的理解。从全局观念分折,我们就可以发现这里只讲了企业如何改革才能稳定,没有论述通过深化改革,转换企业经营机制,提高了企业经济效益,职工收入增加,最终达到社会稳定。
(二)从中心论点出发,决定材料的取舍,把与主题无关或关系不大的材料毫不可惜地舍弃,尽管这些材料是煞费苦心费了不少劳动搜集来的。有所失,才能有所得。一块毛料寸寸宝贵,舍不得剪裁去,也就缝制不成合身的衣服。为了成衣,必须剪裁去不需要的部分。所以,我们必须时刻牢记材料只是为形成自己论文的论点服务的,离开了这一点,无论是多少好的材料都必须舍得抛弃。
(三)要考虑各部分之间的逻辑关系。初学撰写论文的人常犯的毛病,是论点和论据没有必然联系,有的只限于反复阐述论点,而缺乏切实有力的论据;有的材料一大堆,论点不明确;有的各部分之间没有形成有机的逻辑关系,这样的论文都是不合乎要求的,这样的论文是没有说服力的。为了有说服力,必须有虚有实,有论点有例证,理论和实际相结合,论证过程有严密的逻辑性,拟提纲时特别要注意这一点,检查这一点。
(四)论文的基本结构由序论、本论、结论三大部分组成。序论、结论这两部分在提纲中部应比较简略。本论则是全文的重点,是应集中笔墨写深写透的部分,因此在提纲上也要列得较为详细。本论部分至少要有两层标准,层层深入,层层推理,以便体现总论点和分论点的有机结合,把论点讲深讲透。
计算机系统结构论文范文
计算机系统结构是计算机专业本科生的一门专业必修课程。课程的目标是提高学生从系统和总体结构的层次来理解和研究计算机系统的能力。下面是我给大家推荐的计算机系统结构论文范文,希望大家喜欢!
《计算机系统结构教学探索》
摘要:计算机系统结构是计算机专业的一门专业基础课,本文根据计算机结构的课程特点,从教学方法、教学手段、实践环节方面,提出以学生为主体,利用多媒体教学等手段来提高学生的学习兴趣和主动性,从而提高了学习效果。
关键词:计算机系统结构 动画演示法 联系比较法 实践环节
0 引言
计算机系统结构是计算机专业本科生的一门专业必修课程。课程的目标是提高学生从系统和总体结构的层次来理解和研究计算机系统的能力,帮助学生建立整机系统的概念;使学生掌握计算机系统结构的基本知识,原理和性能评价的方法,了解计算机系统的最新发展。使学生领会系统结构设计的思想和方法、提高分析和解决问题的能力。但是在教学中一直存在教学内容中原理和概念较多,综合性强,比较抽象,难学难懂,实验的硬件条件缺乏,学生学习兴趣等不高问题。笔者在多年的教学过程中,不断吸取其它高校的教学经验,对计算机系统结构教学进行改进和总结。
1 课程的内容和特点
1.1 课程内容
计算机系统结构课程本科教学时长安排为50学时,实验为22学时。根据国内外其它院校的教学思路,结合对计算机人才知识结构的要求,课程内容包括概论;指令系统;输入输出系统;存储体系;流水线技术;并行处理机;多处理机和课程实习。重点讲授内容为存储体系和指令级并行技术,存储系统是体系结构设计中的瓶颈问题,是系统成败的关键;指令级并行技术为计算机体系结构中的经典问题流水线、并行性等设计。而对并行计算机,多处理机只作简单介绍。从而突出了基本知识,注意和先修课程内容的贯通。
1.2 课程特点
(1)综合性强。计算机系统结构开设在第7学期,先修课程有:汇编语言程序设计、数据结构、计算机组成原理、操作系统、编译原理等课程。教学中要求学生综合应用各课程知识,教学难度较大。(2)理论性强。内容抽象复杂,概念多,学生感到学习难度大,教学处理不好的话,学生的学习积极性不高。(3)缺乏实验环境,学生无法获得对计算机系统结构性能改进的直观认识。由于大多数高校硬件条件不满足,故许多高校在开设这门重要课程时,仅仅停留在理论讲授上,相应的实践教学是空白,学生面对枯燥理论,学习兴趣缺乏,不利于提高教学质量。
2 教学的探讨
根据本课程的特点,教学大纲的要求,从培养学生能力的目标出发,明确目标,积极引导学生,采取动画演示、联系比较、启发式教学法,加强实践教学,提高了学生学习的兴趣和主动性,从而有效地提升了教学效果。
2.1 明确学生的认识
要想提高学生的学习的主动性,首先要让学生明确该课程的重要性。一部分学生认为该课程与计算机组成原理,操作系统等课程存在一定的重叠,认为只是前面知识的重复。另一部分学生由于面临就业和考研压力,只求通过考试而忽略能力的培养。针对第一部分在学习本课程时阐明该课程与其它课程的关系和区别。计算机组成原理从硬件系统方面来解释计算机各组成部分的工作原理。而计算机系统结构跨越了硬件和软件层次,让学生理解计算机系统结构的基本原理,这样编程时才能考虑更周全,编写更加高效的程序。针对第二部分学生让其认识到学习不只是为了考试,我们不仅要提高程序和系统的开发设计能力,还应提高从总体的架构去分析和解决问题的能力。
2.2 明确教学目标
计算机系统结构就是通过采用不同的软硬件技术设计高性价比的计算机系统,面临硬件性能达到极限,我们主要从存储系统、指令系统、指令并行性来分析和评价计算机系统设计,使学生理解计算机性能的提高的方法。例如, 提高CPU计算速度可以采用方法: 一种是提高处理器的主频;第二种方法是提高指令执行的并行度,当前CPU中都采用超标量超流水线技术,流水线结构其实就是一种提高并行度的方法。CPU不像以前通过提升主频来提升速度,因为硬件速度的提高是有限的,最大只能是光速,所以CPU还通过多核的技术来提升速度。这样,学生在学习时运用所学的知识来分析,有利于培养他们发现问题、分析问题、解决问题的能力。
2.3 采取合理的教学方法和教学手段
(1)动画演示。教学中采用大量的动画来系统解析教学内容,包括系统的结构、工作的原理、工作流程以及一些算法等,把以往抽象、枯燥的解说变为形象生动的动画动态展示和讲解。这些动画动态的把讲解内容展现在学生面前,突出知识的核心思想和关键知识点,容易理解和提升学习的兴趣。(2)联系比较法。把本课程中的一些概念、策略和思想与现实生活中的事例进行联系比较,如与生产流水线相联系。目的是使学生更好地理解和掌握教学内容,抓住关键思想,联系实际,从而提高了教学效果。(3)启发式教学法。由于高年级学生都有很好的自学能力,在教学中积极地根据学习的内容提出一些问题,让学生通过查阅资料,讨论学习某个问题。如RISC和CISC相比较,在理论上RISC处理器占有优势,但在实际微处理器中主要是CISC处理器;计算机处理器的发展提高到一定的主频后,主要过多核设计来提升CPU性能等。极大地提高了学生的学习的兴趣和积极性。
2.4 加强实践教学
国内外高校计算机系统结构的实验一般分为偏重软件的程序员角度和偏重硬件设计人员角度。计算机科学专业开设的实验课程一般偏重软件人员,强调从程序员的角度去了解整个计算机系统如何运行,为程序的优化,可靠性的保证等提供基础知识,实验课程一般用高级程序语言和模拟器实现。而计算机工程专业开设的实验课程一般偏重硬件,强调从硬件设计人员的角度如何设计和实现整个处理器系统,实验课程要求用相关的硬件描述语言实现系统,在FPGA上测试验证。①我们是偏重于软件的,为了让学生应用流水线技术,尝试改进流水线性能的新技术,提高学生对现代计算机系统的认识,引进了DLX虚拟处理器实验。利用DLX虚拟处理器可以进行处理器指令系统的设计,流水线的设计与实现、并行处理的设计与实现等带有新一代处理器思想和技术的实验。从而充分调动学生的能动性,提高了学生的学习兴趣,以及分析问题、解决问题的能力。
3 结束语
本课程具有内容综合性强、理论多、难度大等特点,教师对课程明确教学目标和定位的基础上,重视教学方法和多媒体手段,加强了实践教学,积极引导学生,提高了学生对本课程的兴趣,达到了较好的教学效果。
点击下页还有更多>>>计算机系统结构论文范文
系统架构设计师论文考什么?
系统架构设计师属于软考高级资格考试,系统架构设计师论文科目安排在下午考试,论文考试为写作题,满分为75分,论文科目的合格标准基本上稳定在45分。
软考高级系统架构设计师论文安排在下午考试,根据系统架构设计师考试大纲,论文科目考试范围如下:
1. 系统建模;
定义问题与归结模型;
结构化系统建模;
面向对象系统建模;
数据库建模;
2.软件架构设计;
软件架构设计;
特定领域软件架构;
基于架构的软件开发方法;
软件演化;
3.系统设计;
处理流程设计;
系统人机界面设计;
文件设计、存储设计;
数据库设计;
网络应用系统的设计;
系统运行环境的集成与设计;
系统性能设计;
中间件、应用服务器;
4.分布式系统设计;
分布式通信协议的设计;
基于对象的分布式系统设计;
基于 Web 的分布式系统设计;
基于消息和协同的分布式系统设计;
异构分布式系统的互操作性设计;
5.系统的可靠性分析与设计;
系统的故障模型和可靠性模型;
提高系统可靠性的措施;
系统的故障对策和系统的备份与恢复;
6.系统的安全性和保密性设计;
系统的访问控制技术;
数据的完整性;
数据与文件的加密;
通信的安全性;
系统的安全性设计。
温馨提示:因考试政策、内容不断变化与调整,猎考网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!
下方免费复习资料内容介绍:2018上半年信息系统管理工程师下午真题(汇总)
格式:PDF大小:214.68KB 希赛2023年嵌入式系统设计师招生简章
格式:DO大小:6183.17KB
资格考试有疑问、不知道如何总结考点内容、不清楚报考考试当地政策,点击底部咨询猎考网,免费领取复习资料
上一篇:国际政治论文题目2017
下一篇:rsc旗下期刊及影响因子