瑞文测试,全称为瑞文标准推理测验(Raven'sProgressiveMatrices),是由英国心理学家约翰·C·瑞文在20世纪30年代设计的一种非语言智力测验。
这个测试广泛应用于评估个体的逻辑推理能力、抽象思维能力和问题解决能力,而非依赖于特定的语言或文化背景,因此具有较高的普适性。
瑞文测试通常由一系列几何图形组成,测试者需要找出图形之间的规律,并选择正确的图形来完成序列。
瑞文测试主要分为几个部分,包括初级、中级和高级,难度逐级递增。
初级部分主要考察基础的图形识别和推理,而高级部分则涉及更复杂的抽象概念和推理。
每个问题通常有六个备选答案,测试者需在有限的时间内做出选择。
该测验的评分系统基于正确答案的数量,分数越高,表示个体的智力水平和逻辑推理能力越强。
瑞文测试的得分可以用来衡量个体的智商(IQ),但需要注意的是,它只是智力评估的一种工具,不能全面反映一个人的所有能力,如创造力、情绪智力、社交技能等。
在公司环境中,瑞文测试常被用于招聘和人才选拔过程中,以评估候选人的逻辑思维能力和潜在的学习能力。
然而,这种测试也有其局限性,因为它无法完全展示候选人在团队合作、沟通技巧或实际工作经验等方面的才能。
进行瑞文测试时,有几点需要注意:1.保持冷静:不要因为时间压力而慌张,冷静思考往往能帮助找到正确的答案。
2.观察规律:仔细观察图形的形状、颜色、大小、方向等特征,寻找它们之间的联系。
3.跳出常规思维:尝试从不同的角度思考问题,不要局限于已知的模式。
4.练习提升:虽然瑞文测试旨在测试即兴推理,但通过练习类似的题目可以提高解题速度和准确率。
瑞文测试是一种有效的智力评估工具,能帮助了解个体的逻辑推理和抽象思维能力。
在公司中,它可以作为招聘过程中的一个参考,但不应作为唯一的评价标准。
个人应全面发展各种能力,以适应不同工作环境的需求。
2024/11/29 21:56:55 122KB
1
康拓普信息科技有限公司面试题中第二部分,逻辑思维扩展题。
2024/10/17 4:53:10 1.27MB 思维扩展题
1
一、本课题的研究意义如今,游戏风行的程度,是第一台电子游戏机的研制者诺兰?布什纳尔先生始料不及的。
在全世界最大的城市,直至最小的村庄,从纽约最辉煌的游乐场,到高加索最小的乡镇儿童娱乐点,在千家万户,正在进行着千千万万这样的“战斗”,伴随着无数成功与失败,兴奋与懊丧。
游戏机带来了一个全球性的疯狂症,其他任何娱乐与之相比都望尘莫及。
然而,究竟是什么原因使游戏机如此风行呢?在回顾了游戏机发展简史之后,我们不难悟出,技术进步在游戏机发展过程中起到了极大的促进作用。
但是,技术进步绝不是游戏机风行的唯一因素。
随着终端设备开发能力的加强,作为娱乐终端的游戏也得到了很大程度的发展。
这也加速了游戏在全球风行程度,所以对于游戏的研究和设计具有很重要的意义,这也是本课题研究的意义所在。
用java语言来设计一个游戏,不同于现在的大型网络游戏和手机游戏,也不同于其他的小型的单机控制程序,它对游戏编写者对java语言特点认知、语法运用、工作模式、面向对象的理解的把握都提出了更高的要求,特别是在游戏运行当中对外部按键的处理,各子程序的调用流程,先后顺序等码的复杂程度也都是一般程序不能比的。
可以这样说,能完整的编出游戏,并可以稳定运行,会让我们对游戏有一个更深刻的认识;
对游戏编写的难度有一个更切身的理解;
对自己的编程能力及逻辑思维能力有一个很大的提高;
再一次看到了java语言的面向对象性、动态性、高性能性,相信对java语言的学习也不无帮助。
二、课题的国内外开发动态随着人们生活质量的不断提高以及个人电脑和网络的普及,人们的业余生活质量要求也在不段提高,选择一款好玩、精美、画面、品质优良的休闲游戏已经成为一种流行的休闲方式。
可以说在人们的日常生活中,除了工作,学习,玩一款自己喜欢的游戏正在成为一种时尚。
所以,开发一款大家都比较喜欢的,高品质的休闲游戏,将会收到人们的普遍欢迎。
让人们在工作学习之余,享受游戏的快乐,也是一款游戏真正成功的意义。
Java是一种简单的,面向对象的,分布式的,健壮的,安全的,可移植的,性能很优异的语言。
Java是休闲互动游戏开发的先导语言,使用java作为开发工具,是一种很理性的选择。
三、课题的基本内容这是一款十分变态虐心的休闲游戏。
游戏主打像素风格,粗看画面十分简陋,,游戏中玩家需要点击屏幕操作一只小鸟在类似《超级马里奥》的绿色管道改变的数字中穿行,游戏的方式是飞翔的小鸟带数字和2048游戏的结合体,要是不幸小鸟带的数字碰到不对应的数字障碍,或者不点击屏幕就直接GameOver。
游戏里对小鸟的触碰判定非常严格,只要稍微节奏慢少许或者快了一点就会结束。
由于游湖完全没有道具辅助,很多时候开局连第一个障碍也过不了就不得不重来。
虽然只是一款小游戏,玩法也不特别,不过却抓住了玩家输不起的心理,用超高难度吸引玩家来挑战。
四、拟需要解决的主要问题飞翔的小鸟+2048小游戏开发的技术难点主要两个方面:一是界面的布局;
二是游戏数据的安排。
游戏很注重玩家的感受,所以界面的布局很重要,其次数据的显示在一个游戏的玩耍中也很重要,合理规划设计,开发出让玩家享受的游戏。
正确理解实际运行中玩家的感受,解决游戏中模块的科学划分与结构组织,更好更快的开发设计游戏。
五、课题设计的实现方案(1)本游戏开发语言的选飞翔的小鸟游戏以纯java语言来开发编写。
Java是由SunMicrosystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。
由JamesGosling和同事们共同研发,并在1995年正式推出。
Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。
1995年更名为Java,并重新设计用于开发Internet应用程序。
用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:跨平台、动态Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。
另一方面,Java技术也不断更新。
Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
(2)本游戏开发工具的选择飞翔的小鸟游戏使用的开发工具是一个开放源代码的、基于Java的可扩展开发平台eclipse来开发实现。
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。
Eclips
2024/9/23 4:36:11 53KB 毕业设计 开题报告
1
静态检查:静态测试包括代码检查、静态结构分析、代码质量度量等。
它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。
代码检查代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面;
可以发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。
”。
看了一系列的静态代码扫描或者叫静态代码分析工具后,总结对工具的看法:静态代码扫描工具,和编译器的某些功能其实是很相似
2024/7/14 19:01:18 139KB Java静态检测工具的简单介绍
1
逻辑思维训练500题(附答案)
2024/5/28 9:47:40 999KB 逻辑思维
1
猜数字  猜数字  猜数字可以算是一种益智类小游戏,一般两个人玩,也可以由一个人和电脑玩,可以在纸上、在网上都可以玩。
这种游戏规则简单,但可以考验人的严谨和耐心。
  目录  1规则  1.1次数限制  1.2含重复数字的猜数字  2解法  2.1计算机解  2.2推理解  2.3代入解  2.4其他  3参看  规则  这个游戏的规则比较简单,一般两个人玩,一方出数字,一方猜。
出数字的人要想好一个没有重复数字的4位数,不能让猜得人知道。
猜的人就可以开始猜。
每猜一个数字,出数者就要根据这个数字给出几A几B,其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。
  如正确答案为5234,而猜的人猜5346,则是1A2B,其中有一个5的位置对了,记为1A,而3和4这两个数字对了,而位置没对,因此记为2B,合起来就是1A2B。
  接着猜的人再根据出题者的几A几B继续猜,直到猜中为止。
  次数限制  有的时候,这个游戏有猜测次数上的限制。
根据计算机测算,这个游戏,如果以最严谨的计算,任何数字可以在7次之内猜出。
而有些地方把次数限制为6次或更少,则会导致有些数可能猜不出来。
而有些地方考虑到人的逻辑思维难以达到计算机的那么严谨,故设置为8次甚至10次。
也有的没有次数上的限制。
  含重复数字的猜数字  有一种使用范围比较狭窄的猜数字,是允许重复数字存在的猜数字,但由于其规则较复杂,故没有得到广泛的推广。
其规则如下:  除了上面的规则外,如果有出现重复的数字,则重复的数字每个也只能算一次,且以最优的结果为准,  如正确答案为5543,猜的人猜5255,则在这里不能认为猜测的第一个5对正确答案第二个,根据最优结果为准的原理和每个数字只能有一次的规则,两个比较后应该为1A1B,第一个5位子正确,记为1A;
猜测数字中的第三个5或第四个5和答案的第二个5匹配,只能记为1B。
当然,如果有猜5267中的第一个5不能与答案中的第二个5匹配,因此只能记作1A0B。
  解法  对于不同的人,常常会用到不同的解法  计算机解  通常采用的计算机解是通过排除法,即遍历所有可能的数,将不符合要求的数剃掉。
  下面是一个计算机处理的例子:  for(inti=0;i<Array.Count;i++){if(Array与当前输出数字的比较!=用户输入的与正确答案对比的结果){Array.Remove(i);i--;}}    这个代码采用C#的语法,其中Array表示所有可能的数字的集合。
这个例子为了方便说明,结合了语言的描述。
  这样的方法充分利用了计算机计算速度快的优势,迅速排出不符合要求的数。
通常第一次猜测的时间(有的引擎为第二次猜测)会在10秒左右,而随着猜测次数的不断增加,猜测的时间会越来越短,最后几乎不需要时间,这是由于集合中的数越来越少,排除需要的时间也随之减少。
  推理解  计算机解释根据这种方法推广的。
这种解法的中心思想是假设猜的这个数字是正确答案,即如果它为正确答案,那么这个数应该符合已经猜测的数及其结果。
如已经有  12340A0B  那么下一步就不能猜含有1234中任一数字的数,因为如果正确答案含1234中任一,结果就不可能为0A0B。
  这种解法对猜者要求较高,通常,可能会被定式思维所干扰,导致难以猜出。
  基于这个解法,根据个人思维风格和起始数字选择的不同,以及对出题者出数风格的猜测,有时可以把猜测次数控制在5步内,但不总能在5步内猜出。
  使用这种解法需要考虑的时间很久,和计算机解正好相反,人使用这种方法,通常随着猜测次数的增加,需要考虑的东西不断增多,反而考虑的时间会变得越来越长。
  代入解  还有一种方法,在人的猜测中很常用,即将推理出不可能含有的数字,代入,察看那些数字是有的。
  但这种方法其猜测次数难以确定,且通常的猜测次数比推理解多。
  其他  可能还有其他的方法。
2024/3/11 20:56:10 20KB 猜数字游戏 C# GuessNumber
1
1、各种自动化设备,如数控机床、自助加油站中有计算机吗?(A)YES;
(B)NO答案:A解释:本题考核什么是计算机以及计算机的存在形态。
各种自动化设备,都有控制设备工作的控制机构,这些控制机构被认为是自动化设备中的大脑,即可被认为是广义的计算机。
具体内容请参考第一章课件之“什么是计算机及为什么要学计算机”以及第一章课件。
2、计算机包括_____。
(A)台式机、便携机;
(B)嵌入在各种设备中的芯片;
(C)软件;
(D)以上所有。
答案:D解释:本题考核什么是计算机以及计算机的存在形态。
台式机、便携机属于计算机;
嵌入在各种设备中的芯片也属于计算机;
软件也属于计算机,计算机包括硬件和软件。
因此(D)是正确的。
具体内容请参考第一章课件之“什么是计算机及为什么要学计算机”以及第一章课件。
3、人类应具备的三大思维能力是指_____。
(A)抽象思维、逻辑思维和形象思维;
(B)实验思维、理论思维和计算思维;
(C)逆向思维、演绎思维和发散思维。
(D)计算思维、理论思维和辩证思维。
答案:B
2023/10/9 9:38:16 4.44MB 战德臣 mooc 答案
1
五子棋作为一个棋类竞技运动,在民间十分流行,为了熟悉五子棋规则及技巧,以及研究简单的人工智能,决定用Java开发五子棋游戏。
主要完成了人机对战和玩家之间联网对战2个功能。
网络连接部分为Socket编程应用,客户端和服务器端的交互用ClassMessage定义,有很好的可扩展性,客户端负责界面维护和收集用户输入的信息,及错误处理。
服务器维护在线用户的基本信息和任意两个对战用户的棋盘信息,动态维护用户列表。
在人机对弈中通过深度搜索和估值模块,来提高电脑棋手的智能。
分析估值模块中的影响精准性的几个要素,以及提出若干提高精准性的办法,以及对它们搜索的节点数进行比较,在这些算法的基础上分析一些提高电脑AI方案,如递归算法、电脑学习等。
算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用
2023/7/31 6:20:30 1.34MB java 五子棋 毕业论文
1
系统架构师指定教材更多资料点开我的资料里查找(1)在软件开发出来之前,用户自己也不清楚软件的具体需求。
(2〕用户对软件需求的描述不精确,可能有遗漏、有二义性、甚至有错误。
(3〕在软件开发过程中,用户还提出修改软件功能(function)、界面(interface)、支撑环境(environment)等方面的要求(4)软件开发人员对用户需求的理解与用户本来愿望有差异2、缺乏正确的理论指导缺乏有力的方法学和工具方面的支持。
由于软件不同于大多数其他工业产品,其开发过程是复杂的逻辑思维过程,其产品极大程度地依赖于开发人员高度的智力投入。
由于过分地依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化,也是发生软件危机的一个重要原3、软件规模越来越大随着软件应用范围的增广,软件规模愈来愈大。
大型软件项目需要组织一定的人力共同完成,而多数管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理方面的经验。
各类人员的信息交流不及时、不准确、有时还会产生误解。
软件项目开发人员不能有效地、独立自主地处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误。
4、软件复杂度越来越高软件不仅仅是在规模上快速地发展扩大,而且其复杂性〔complexity)也急郾地增加。
软件产品的特殊性和人类智力的局張性,导致人们无力处理“复杂问题”。
所谓“复杂问题”的概念是相对的,一旦人们采用先进的组织形式、开发方法和工具提高了软件开发效率和能力,新的、更大的、更复杂的问题又摆在人们的面前。
第1章:软件体系结构概论如何克服软件危机人们在认真地研究和分析了软件危机背后的真正原因之后,得出了“人们面临的不单是技术问题,更重要的还是管理问题。
管理不善必然导致失败”的结论,便开始探索用工程的方法进行软件生产的可能性,即用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理和维护。
于是,计算机科学技术的一个新领域——软件工程(softwareengineering)诞生了软件工程是用工程、科学和教学的原则与方法硏制、维护计算机软件的有关技术及管理方法。
软件工程包括三个要素:方法、工具和过程,其中软件工程方法为软件开发提供了“如何做”的技术,是完成软件工程项目的技术手段。
软件工具是人们在开发软件的活动中智力和体力的扩展和延伸,为软件工程方法提供了自动的或半自动的软件支撑环境。
软件工程过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。
迄今为止,软件工程的研究与应用已经取得很大成就,它在软件开发方法、工具、管理等方面的应用大大缓解了软件危机造成的被动局面。
第1章:钦件体系结构概论构件与软件重用尽管当前社会的信息化过程对软件需求的增长非常迅速,但目前软件的开发与生产能力却相对不足,这不仅造成许多急需的软件迟迟不能被开发出来,而且形成了软件脱节现象。
自20世纪60年代人们认识到软件危机、并提岀软件工程以来,已经对软件开发问题进行了不懈的硏究。
近年来人们认识到,要提高软件开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。
这包括技术与管理两方面的问题:在技术上,应该采用基于重用(英文单词为“reuse",有些文献翻译为“复用″)的软件生产技术;在管理上,应该采用多维的工程管理模式。
近年来,人们认识到,要真正解决软件危机,实现软件的工业化生产是唯一可行的途径。
分析传统工业及计算机硬件产业成功的模式可以发现,这些工业的发展模式均是符合标准的零部件/构仵(英文单词为"component",有些文献翻译为“组件”或“部仵件”)生产以及基于标准构件的产品生产,其中,构件是核心和基础,重用是必需的手段。
实践表明,这种模式是产业工程化、工业化的成功之路,也将是软件产业发展的必经之路。
软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。
软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域(domain)知识。
通常,把这种可重用的元素称作软构件(softwarecomponent),简称为构件。
可重用的软件元素越大,就說重用的粒度(granularity)越大。
使用软件重用技术可以减少软件开发活动中大量的重复性工作,这样就能提高软件生产率,降低开发成本,缩短开发周期。
同时,由于软枃件大都经过严格的质量认证,并在实际运行环境中得到检验,因此,重用软构件有助于改善软件质量。
此外,大量使用软构件,软件的灵活性和标准化程度也能得到提高。
第1章:软件体系结构论构件模型及实现一般认为,构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语乂描述、通讯接口和实现代码的复合体。
简单地说,构件是具有定的功能,能够独立工作或能同其它构件装配起來协凋工作的程序体,构件的使用同他的开发、生产无关,从拍象程度来看,面向对象(ObjectOrientation.OO)技术已达到了类级重用(代码重用),它以类为封装的单位。
这样的重用粒度还太小,不足以解决异构互操作和效率更高的重用。
构件将抽象的程度提到一个更高的层次,它是对一组类的组合进行封装,并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。
整个构件隐藏了具体的实现,只用接口对外提供服务构件模型(mode)是对构件本质特征的抽象措述。
目前,国际上已经形成了许多构件樸型这些模型的目标和作用各不相同,其中部分模型属于参考模型(例如,3模型),部分模型属于描述模型(例如,RESOLVE模型和REB○OT模型)。
还有一部分模型属于实现模型。
近年来,已形成三个主要流派,分别是OMG(ObjectManagementGroup,对象管理组织)的CORBA(CommonObjectRequestBrokerArchitecture,通用对象请求代理结构)、Sun的EJBEnterpriseJavaBean)和Microsoft的DcoM(DistributedComponentObjectModel,分布式构件对象模型)。
这些实现模型将构件的接口与实现讲行了有效的分离,提供了构件交互Interaction)的能力,从而增加了重用的机会,并适应了目前网络环境下大型软件系统的需要。
国内许多学者在构件模型的硏究方面做了不少的工作,取得了一定的成绩,其中较为突出的是北京大学杨芙清院土等人提岀的“青哆构件模型″,下面,就以这个模型为例。
青鸟构件模型充分吸收了上述模型的优点,并与它们相容。
青鸟构件模型由外部接口interface)与内部结构两部分组成,如图1-1所示多蚊化属构件名称力能描述具体成品拟成所需到均件D图1-1青乌构件模型1、外部接口构件的外音接口是指构件向其重用者提供的基本信息,包括:构件名称、功能描述、对外功能接口、所需的构件、参数化属性等。
外部接口是构件与外部世界的一组交互点,说明了构件所提供的那些服务(消息、操作、变量2、内部结构构件的内音结构包括两方面内容:内部成员以及内部成员之间的关系。
其中内部成员包括具体成员与虚找成员,而成员关系包括内部成员之间的互联,以及内部成员与外部接口之间的互联构件实现是指具体实现构件功能的逻辑系统,通常也称为代码构件。
构件实现由构件生产者完成,构件重用者则不必关心构件的实现细节。
重用者在重用构件时,可以对其定制,也可以对其特例化。
第1章:软件体系结构概论构件获取存在大量的可重用的构件是有效地使用重用技术的前提。
通过对可重用信息与领域的分析,可以得到:(1)可重用信息具有领域特定性,即可重用性不是信息的一种孤立的属性,它依赖于特定的问题和特定的问题解决方法。
为此,在识别(identify)、获取(capture)和表示(represent)可重用信息时,应采用面向领域的策略。
(2)领域具有内聚性(cohesion)和稳定性(stability),即关于领域的解决方法是充分内聚和充分稳定的。
一个领域的规约和实现知识的內聚性,使得可以通过一组有限的、相对较少的可重用信息来解决大量问题。
领域的稳定性使得获取的信息可以在較长的时间内多次重用领域是一组具有相似或近软件需求的应用系统所覆盖的功能区域,领域工程(domainengIneering)是一组相似或相近系统的应用工程(applicationengineering)建立基本能力和必备基础的过程。
领域工程过程可划分为领城分析、领域设计和领域实现等多个活动,其中的活动与结果如图12所示析领需求建立青足领域需求的代码紉实现百的女性及变化性向领烛的构兰了域工程领域分析领域计领城实现领城需可重用吻伴件医图1-2领域工程中的活动与结果在建立基于构件的软件开发(component-BasedSoftwareDevelopment,CBSD)中,构件获取可以有多种不同的途径(1)从现有构件中获得符合要求的构件,直接使用或作适应性〔flexibility)侉改,得到可重用的构件。
(2)通过遇留工程(legacyengineering),将具有潜在重用价值的构件提取出来,得到可重用的构件(3)从市场上购买现成的商业构件,即COTS(Commercialoff-The-Shell)构件。
(4)开发新的符合要求的构件。
一个组织在进行以上决策时,必须考虑到不同方式获取构件的一次性成本和以后的维护成本,然后做出最优的选择。
第1章:软件体系结构概论构件管理对大量的构件进行有效的管理,以方便构件的存储、检索和提取,是成功重用构件的必要保证。
构件管理的内容包括构件描述、构件分类、构件库组织、人员及权限管理和用户意见反馈等。
、构件描述构件模型是对构件本质的抽象描述,主要是为构件的制作与构件的重用提倛依据;从管理角度岀发,也需要对构件进行描述,例如:实现方式、实现体、注释、生产者、生产日期、大小、价格、版本和关联构件等信息,它们与构件模型共同组成了对构件的完整描述2、构件分类与组织为了给使用者在查询构件时提供方便,同时也为了更好地重用构件,就必须对收集和开发的构件进行分类(classif)并置于构件库的适当位置。
构件的分类方法及相应的庳结构对构件的检索和理解有极为深刻的影响。
因此,构件库的组织应方便构件的存储和检索。
可重用技术对构件库组织方法的要求是:1〕支持构件库的各种维护动作,如增加、删除以及修改构件,尽量不要影响构件库的结构。
(2)不仅要支持精确匹配,还要支持相似构件的查找。
(3)不仅能进行简单的语法匹配,而且能够查找在功能或行为方面等价或相似的构件。
(4)对应用领域具有较强的描述能力和较好的摧述精度。
(5)库管理员和用户容易使用目前已有的构件分类方法可以归纳为三大类,分别是关键字分类法、刻面分类法和超文本组织方法。
(1)关键字分类法关键字分类法(keywordclassification)是一种最简单的构件库组织方法,其基本思想是:根据领域分析的结果将应用领域的概念按照从抽象到具体的顺序逐次分解为树形或有向无回路图结构。
每个概念用一个描述性的关键字表示。
不可分解的原子级关键字包含隶属于它的某些构件。
图1-3给出了构件库的关键字分类结构示例,它支持图形用户界面设计。
图形用户界面窗单对话框葶处玨信键盘点图形窗匚窗匚处理图1-3关键字分类结构示例当加入构件时库管理员必须对构件的功能或行为讲行分析,在浏览上述关键字分类结构的同时将构件置于最合适的原子级关键字之下。
如果无法找到构件的属主关键字,可以扩充现有的关键宇分类结构,引进新的关键字。
但库管理员必须俣证,新关键字有相同的领域分析结果作为支持例如,如果需要增加一个“图形文字混合窗口“构件时,则只需把该构件放到属主关键字“窗口”的下一级(2)刻面分类法刻面分类法(facetedclassification)的主要思想来涼于图书馆学,这种分类方法是PrietoDiaz和Freeman在1987年提出来的。
在刻面分类机制中,定义若干用于刻画构件特征的“面”facet),每个面包含干概念,这些柢念表述构件在面上的特征。
刻面可以描述构件抹行的功能、被操作的数据、构件应用的语境或仼意其他特征。
描述构件的刻面的集合称为刻面描述符facetdescriptor),通常,刻面描述被限定不超过7或8个刻面。
当描述符中出现空的特征值时表示该构件没有相应的面。
作为一个简单的在构件分类中使用刻面的例子,考志使用下列构件描述符的模式:ifunctionobjecttype,systemtype刻面描述符中的每个刻面可含有一个或多个值,这些值一般是描述性关键词,例如,如果功能是某构件的刻面,赋给此刻面的典型值可能是function=(copy,from)or(copy,replace,all)多个刻面值的使用使得原函数copy能够被更完全地细化。
关键词(恒)被赋给重用库中的每个构件的刻面集,当软件工程师在设计中希望查询构件库以发现可能的构件时,规定一列值然后到库中寻找匹配项。
可使用自动工具以完成同乂词词典功能,这使得查找不仅包括软件工程师给出的关键词,还包括这些关键词的技术同义词。
作为一个例子,青鸟构件库就是采用刻面分类方法对构件进行分类的,这些刻画包括(i)使用环境。
使用(包括理解/组装/修改)该构件时必须提供的硬件和软件平台(platform)。
ⅱ〕应用领域。
构件原来或可能被使用到的应用领域(及其子领域)的名称。
(ⅲi)功能。
在原有或可能的软件系统中所提供的软件功能集合。
(ⅳ∽)层次。
构件相对于软件开发过程阶段的抽象层次,如分析、设计、编码等。
(ⅴ)表示方法。
用来描述构件内容的语言形式或媒体,如源代码构件所用的编程语言环境等。
关键字分类法和刻面分类法都是以数据库系统作为实现背景。
尽管关系数据库可供选用,但面向对象数据库(object-orienteddatabase)更适于实现构件库,因为其中的复合对象、多重继承inheritance)等机制与表格相比更适合描述构件及其相互关系。
(3)超文本组织方法超文本方法(hypertextclassification}与基于数据库系统的构件库组织方法不同,它基于全文检索(fulltextsearch)技术。
其主要思想是:所有构件必须辅以详尽的功能或行为performance)说明文档;说明中出现的重要概念或构件以网状链接方式相互连接;检索者在阋读文档的过程中可按照人类的联想思维方式任意跳转到包含相关概念或构件的文档;全文检索系统将用户给出的关键字与说明文档中的文字进行匹配,实现构件的浏览式检索。
超文本是一种非线性的网状信息组织方法,它以结点为基本单位,链作为结点之间的联想式关联,如图1-4所示图1-4超文本结构示意图一般地,结点是一个信息块。
对可重用构件而言,结点可以是域概念、功能或行为名称、构件名称等。
在图形用户界面上,结点可以是字符串,也可以是图象、声音和动画等。
超文本组织方法为构造构件和重用构件提供了友好、直观的多媒体方式。
由于网状结构比较自由、松散,因此,超文本方法比前两种方法更易于修改构件库的结构。
例如,Windows环境下的联机帮助系统就是一种典型的超文本系统。
为构造构件的文档,首先要根据领域分析的结果在说明文档中标识超文本结点并在相关文档中建立链接关系,然后用类似于联机帮助系统编译器的工具对构件的说明文档讲行编译,最后用相应的工具(例如:IE浏览器)运行编译后的目标即可。
如果把软件系统看成是构件的集合,那么从构件的外部形状来看,构成—个系统的构件可分为5(1)独立而成熟的构件。
独立而成熟的构件得到了实际运行环境的多次检验,该类构件隐藏了所有接口,用户只需用规定好的命令进行使用。
例如,数据库管理系统和操作系统等。
(2)有限制的构件。
有限尙的构件提供了接口,指岀了使用的条件和前提,这种构件在装配时,会产生资源中突、覆盖等影响,在使用时需要加以测试。
例如,各种面向对象程序设计语言中的基础类库等。
(3〕适应性构件。
适应性构件进行了包装或使用了接口技术,把不秉容性、资源冲突等进行了处理,可以直接使用。
这种构件可以不加修改地使用在各种环境中。
例如Activex等。
(4)装配的构件。
装配(assemble)的构件在安装时,已经装配在操作系统、数据库管理系统或信息系统不同层次上,使用胶水代码(gluecode)就可以进行连接使用。
目前一些软件商提供的大多数软件产品都属这一类。
5〕可修改的构件。
可修改的构件可以讲行版本替换。
如果对原构件修改错误、增加新功能可以利用重新“包装”或写接口来实现构件的晳换。
这种构件在应用系统开发中使用得比较多。
3、人员及权限管理构件库系统是一个开放的公共构件共亨机制,任何使用者都可以通过网络访问构件库,这在为使用者带来便利的同时,也给系统的安全性带来了一定的风险,因此有必要对不同使用者的访问权跟(privilege)作出适当的限制,以保证数据安全。
一般来讲,构件库系统可包括五类用户,即注册用户、公共用户、构件提交者、一殷系统管理员和超级系统管理员。
他们对构件库分别有不同的职责和权限,这些人员相互协作,共同维护着构件库系统的正常运作。
同时,系统为每一种操作定义一个权限,包括提交构件、管理构件、查询构件及下载构件。
每一用户可被赋予—项或多项操作权限,这些操作权限组合形成该人员的权限,从而支持对操作的分工,为权艰分配提供了灵活性第1草:软件体系结枃概论构件重用构件开发的目的是重用,为了让构件在新的软件项目中发挥作用,库的使用者必须完成以下工作:检索与提取构件,理解与评价构件、修改构件,最后将构件组装到新的软件产品中1、检索与提取构件构件库的检索方法与组织方式密切相关,因此,本节针对1.2.3节介绍的关键字分类法、刻面分类法和超文本组织方法分别讨论相应的检索方法。
(1)基于关键字的检索这种简单检索方法的基本思想是:系统在图形用户界面上将构仵库的关键字树形结构直观地展示给用户;用户通过对树形结构的逐级浏览寻找需要的关键字并提取相应的构件。
当然,用户也可直接给出关键字(其中可含通配符),由系统自动给出合适的候选构件清单这种方法的优点是简单、易于实现,但在某些场合没有应用价值,因为用户往往无法用构件库中已有的关键字描述期望的构件功能或行为,对库的浏览也容易使用户迷失方向。
(2)刻面检索法该方法基于刻面分类法,由三步构成:第一步:构造查询。
用户提供要查找的构件在每个刻面上的特征,生成构件描述符。
此时,用户可以从构件库已有的概念中进行挑诜,也可将某些特征值指定为空。
系统在检索过程中将忽略特征值为空的刻面第二步:检索构件。
实现刻面检索法的计算机辅助软件工程(ComputerAidedSoftwareEngineering,CASE)工具在构件库中寻找相同或相近的构件描述符及相应的构件第三步:对构件进行排序。
被检索岀来的构件清单除按相似程度排序外,还可以按照与重用有关的度量信息排序。
例如,构件的复杂性,可重用性,已成功的重用次数等。
这种方法的优点是它易于实现相似构件的查找,但用户在构造查询时比较麻烦(3)超文本检索法超文本检索法的基本步骤是:用户首先给出—个或数个关键字,系统在构件的说明文档中进行精确或模糊的语法匹配,匹配成功后,向用户列岀相应的构件说明。
如1.2.3节所述,构件说明是含有许多超文本结点的正文,用户阅读这些正文时可实现多个构件说明文档之间的自由跳转,最终选择合适的构件。
为了避免用户在跳转过程中迷失方向,系统可以通过图形界面提供浏览历史信息图,允许将特定画面定义为命名“书签”并随时跳转至“书签”,并帮助用户逆跳转路径而逐步返这种方法的优点是用户界面友好,但在某些情况下用户难以在超文本浏览过程中正确选取构件(4)其他检索方法上述检索方法基于语法(syntax)匹配,要求使用者对构件库中出现的众多词汇有较全面的把握、较精确的理解。
理论的检索方法是语义(semantic)匹配:构件库的用户以形式化formalization)手段描述所需要的构件的功能或行为语义,系统通过定理证明及基于知识的推理过程寻找语义上等价或相近的构件。
遗憾的是,这种基于语义的检索方法涉及许多人工智能〔artificialintelligence)难颎,目前尚难于支持大型构件库的工程实现。
2、理解与评价构件要使库中的构件在当前的开发项目中发挥作用,准确地理解构件是至关重要的。
当开发人员需要对构件进行某些修改时,情况更是如此。
考虑到设计信息对于理解构件的必要性以及构件的用户逆向发掘设计信息的困难性,必须要求构件的开发过程遵循公共软件工程规范,并且在构件库的文档中,全面、准确地说明以下内容(1)构件的功能与行为(2)相关的领域知识。
(3)可适应性约束条件与例外情形。
(4)可以预见的修改部分及修改方法
2021/4/22 16:34:47 36.09MB 系统架构师
1
含2007-2016年美国大学生数学建模特等奖论文集(含赛题),工欲善其事必先利其器,看好的论文有助于提升本人写作能力与逻辑思维能力
2015/9/27 2:01:14 297.32MB 动态规划 算法 美赛 数学建模
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡