Unanticipated integration of development tools using the classification model

合集下载

英汉翻译3减词切分合并

英汉翻译3减词切分合并
The Chinese on both sides of the Taiwan Strait are of the same flesh and blood.
12. 如果你觉得合适就干,不合适就不干,你自个儿 看着办吧。
Go ahead if you think the job suits you and don’t if not. It’s all up to you to decide.
❖ Combination is to put several different parts of a discourse which are connected logically into one unified word/phrase/sentence in translation so as to make the translated version more readable and concise in the target language system.
is semi-conductor of electricity. 这些用途就是根据硅是半导体这一事实。
omission
7. If you give him an inch, he will take a mile.
得寸进尺。 8. 中国人民历来是勇于探索、勇于创造、勇
于革命的。
The people of China have always been courageous enough to probe into things, to make inventions and to make revolution.
冬天是研究树木生长的最好的季节,虽然树叶落了,树枝光 了,但树木本身却是美丽的。
27. When it is dark in the east, it is light in the west; when things are dark in the south there is still light in the north.

ISO140012015内部审核检查表-英文版

ISO140012015内部审核检查表-英文版

ISO14001:2015 Environmental Management System Assessment ChecklistTable of ContentsIntroductionEnvironmental Management System Checklist[Clause # - Title] Page # 4- Context of the organization (4)5- Leadership (6)6- Planning (8)7- Support (10)8- Operation (13)9- Performance evaluation (15)10- Improvement (18)IntroductionThis Environmental Management System Assessment Checklist is a tool for understanding requirements of IS014001:2015 “ Environmentai management systems Requ-ements with guidance for use”. The Checklist covers Clauses 4-10 requirements with probing questions about how an organization has addressed requirements and what objective evidence is avaiiabie in support of impiementation. The resuiting information may be heipfui to identify areas where requirements are being met or where there may be gaps in understanding or the avaiiabiiity of objective evidence. Be aware that the Checkiist couid be a good starting point for understanding the status of impiementation but is not intended to be fuiiy comprehensive in its scope but rather to provide guidance and thought provoking questions.The framework used in the deveiopment of the IS014001:2015 Standard was based on Annex SL of IS0/IEC Directives, Part 1, which defines the basic procedures (inciuding ciause numbering) to be used in the design of new IS0 Standards and aiso when IS0 Standards are revised. As a resuit you wiii see this framework here in IS014001:2015 as weii other management system standards as they uniformiy adopt this new high-ievei structure (HLS).Ciauses 4-10 of the IS014001:2015 Standard contain the requirements that organizations must meet prior to registration. The additionai ciauses in the Standard and the informative Annexes provide expianations, understanding and guidance when impiementing these requirements. IS014001:2015 aiso has an updated iist of terms and definitions which are heipfui in understanding requirements and expectations.Additi onal no tes:Additi onal no tes:Additi onal no tes:Additi onal no tes:Additi onal no tes:9.3'sMan ageme nt reviewHas top man ageme nt reviewed the orga ni zati on en viro nmen tal manageme nt system at pla nned in tervals to en sure its con ti nuingsuitability, adequacy and effective ness?Have man ageme nt reviews con sidered:*The status of acti ons from previous man ageme nt reviews?*Chan ges in:o External and internal issues releva nt to the EMS?o The n eeds and expectati ons ofin terested parties, in clud ing complia neeobligati ons?o Its sig nifica nt en vir onmen tal aspects? o Risksand opportu nities?*The exte nt to which en vir onmen tal objectives have bee nachieved?*In formatio n on the orga ni zati onsen vir onmen tal performa nee, in clud ing tre nds in:o Noncon formities and correctiveacti ons?o Mon itori ng and measureme ntresults?o Fulfillme nt of its complia neeobligati ons?o Audit results?*Adequacy of resources?*Releva nt commu ni cati ons from in terested parties, in cluding compla in ts?*Opportu nities for contin ual improveme nt?Have the outputs of the man ageme nt review process in cluded:*Con clusi ons on the continuing suitability, adequacy andeffective ness of theen vir onmen tal man ageme nt system?*Decisi ons related to contin ual improveme nt opportu nities?*Decisi ons related to any n eed for cha nges to the en viro nmen talman ageme nt system,in cludi ng resources?*Acti on s, if n eeded, whe n en viro nmen tal objectives havenot bee n achieved?*Opportu nities to improve in tegrati on of the en vir onmental man ageme nt system with other bus in ess processes, ifn eeded?*Any implicatio ns for the strategic directi on of the organi zati on?Has the organization retained documented information as evide nee ofthe results of man ageme nt reviews?Additi onal no tes:。

1+X_证书制度下智能网联汽车技术专业“课证融通”人才培养模式的改革与探索

1+X_证书制度下智能网联汽车技术专业“课证融通”人才培养模式的改革与探索

AUTO TIME43AUTOMOBILE EDUCATION | 汽车教育1 引言随着科技的迅速发展,智能网联汽车技术已经成为未来交通领域的重要发展方向。

这一新兴技术领域的出现,对智能网联汽车技术专业的人才培养提出了更高的要求。

为了适应市场需求,提高人才培养的针对性和有效性,教育工作者需要在1+X 证书制度下进行“课证融通”人才培养模式的改革,将课程内容和职业资格证书紧密结合,使学生在获得学历的同时,也能够获得与工作岗位相对应的职业技能证书。

这将有助于提高人才培养的针对性和有效性,增强学生的就业竞争力,提高学生的职业技能水平。

2 1+X 证书制度与“课证融通”人才培养模式之间的关系1+X 证书制度是一种教育制度,其中“1”代表学生获得学历证书,“X ”代表学生获得职业资格证书或其他专业证书,旨在提高职业教育的质量和适应性,使学生在获得学历的同时,也能够获得与工作岗位相对应的职业技能证书。

而“课证融通”人才培养模式是一种将课程内容和职业资格证书结合在一起的人才培养方式,学生可以在学习过程中,将理论知识与实际操作相结合,提高学习效果和就业竞争力。

由此可见,1+X 证书制度和“课证融通”人才培养模式在提高学生职苏罗滋莹广西制造工程职业技术学院 广西南宁市 530100摘 要: 随着智能网联汽车技术的快速发展,1+X 证书制度下的“课证融通”人才培养模式改革显得尤为重要,相关改革旨在提高人才培养的质量和效率,更好地适应市场需求,学生可以在学习过程中将理论知识与实际操作相结合,提高学习效果和就业竞争力。

基于此,本文分析1+X 证书制度本文下人才培养模式改革的必要性、策略和未来发展趋势,供广大教育界同仁参考。

关键词:智能网联汽车技术 高等教育 人才培养模式 课程改革 证书制度Reform and Exploration of Talent Cultivation Mode of Intelligent Networked Vehicle Technology under 1+X Certificate SystemSu Luo ZiyingAbstract :W ith the rapid development of intelligent networked automobile technology, 1 + X certificate system under the "class certificate integration" talent training mode reform is particularly important. The relevant reform is aimed at improving the quality and efficiency of talent training, better adapt to the market demand, so that the students can be in the learning process, becoming the combination of theoretical knowledge and practical operation, so as to improve the learning effect and employment competitiveness. Based on this, this paper analyzes the necessity, strategy and future development trend of talent training mode reform under the 1+X certificate system for the reference of colleagues in the education sector.Key words :I ntelligent Networked Vehicle Technology, Higher Education, Talent Cultivation Mode, Curriculum Reform, Certificate System 1+X 证书制度下智能网联汽车技术专业“课证融通”人才培养模式的改革与探索业技能和就业竞争力方面有着共同的目标,它们相互促进、灵活适应市场需求,为职业教育的发展提供了有力的支持[1]。

科技英语翻译1

科技英语翻译1
驱动这些机器的动力装置是一台50马力的感应电动机。
► 2)通顺易懂 ► 译文的语言符合译语语法结构及表达习惯,容易为读者所理解和接受。
► A. When a person sees, smells, hears or touches something, then he is perceiving.
2. Cramped(狭窄的) conditions means that passengers’ legs cannot move around freely.
空间狭窄,旅客的两腿就不能自由活动。
3. All bodies are known to possess weight and occupy space.
忠实、通顺(普遍观点)
► 科技英语文章特点:(well-knit structure;tight logic;various styles)结构严谨,逻辑严密,文体多样
1. 科技翻译的标准:准确规范,通顺易懂,简洁明晰 1)准确规范
所谓准确,就是忠实地,不折不扣地传达原文的全部信息内容。 所谓规范,就是译文要符合所涉及的科学技或某个专业领域的专业语言表
实验结果等,而不是介绍这是这些结果,理论或现象是由谁发 明或发现的。
► In this section, a process description and a simplified process flowsheet are given for each DR process to illustrate the types of equipment used and to describe the flow of materials through the plant. The discussion does not mention all the variations of the flowsheet which may exist or the current status of particular plants. In the majority of the DR processes described in this section, natural gas is reformed in a catalyst bed with steam or gaseous reduction products from the reduction reactor. Partial oxidation processes which gasify liquid hydrocarbons, heavy residuals and coal are also discussed. The reformer and partial oxidation gasifier are interchangeable for several of the DR processes.

英语翻译技巧与应用

英语翻译技巧与应用

由于百度脑残审核总是无法通过,这里各章节做了乱序处理,具体排序见如下目录↓↓↓↓↓↓目录七、篇章翻译 (2)六、修辞翻译 (6)三、词汇翻译 (15)四、句子翻译 (22)五、段落翻译 (30)七、篇章翻译A green caterpillar was slowly crawling out from under the lettuce. It was huge, fat, and apparently well-fed. It paused in its travels to survey the scene. Purple with fury, Henry could barely find his voice.一条绿虫子正慢吞吞地从生菜底下爬出来。

那虫子又大又肥,显然吃得很好,在途中还停下来审视周围的环境。

亨利此时气得脸色发青,话都差点说不出来了。

My friend looked somewhat ill at ease when he told me this: At the time when he bought this big house, his children had all been at school. Now they had their own homes and jobs.朋友有点不好意思地解释说,买这座房子时,孩子们还上着学,如今都成家立业了。

Yang Zhi thus journeyed on for many days and he went toward the eastern capital and he came into the city and found an inn and there settled himself to rest.杨志取路,不数日,来到东京。

入得城来,选个客店,安歇下。

A man is sometimes more generous when he has but a little money than when he has plenty, perhaps through fear of being thought to have but little.人有时囊中羞涩反而比腰缠万贯时显得大方,或许是怕人家笑话自己没钱吧。

my college 英语作文

my college 英语作文

My college experience has been a journey of growth,learning,and selfdiscovery.As I reflect on my time here,I am filled with a sense of accomplishment and gratitude for the opportunities I have been given.1.Academic Pursuits:My college has provided me with a rigorous academic environment that has challenged me to think critically and analytically.The diverse range of courses offered has allowed me to explore various fields of study,from the sciences to the humanities.The professors,with their expertise and passion for their subjects,have been instrumental in shaping my intellectual curiosity.2.Campus Life:The vibrant campus life has been a significant part of my college experience.Participating in clubs and organizations has not only enriched my social life but also helped me develop leadership and teamwork skills.The annual cultural festival, sports events,and guest lectures have been highlights of the year,offering a platform to engage with diverse perspectives and cultures.3.Personal Development:College has been a time of personal growth.Living away from home for the first time,I have learned to manage my time effectively,budget my finances, and take responsibility for my actions.The challenges I faced,such as balancing coursework with parttime work,have taught me resilience and adaptability.working Opportunities:The connections I have made during my college years have been invaluable.From fellow students to faculty members,these relationships have opened doors to internships,research projects,and career advice.The alumni network has also been a great resource,providing mentorship and professional guidance.5.Cultural Exposure:My college has a diverse student body,which has broadened my understanding of different cultures and lifestyles.Engaging with international students has been particularly enlightening,as it has allowed me to appreciate the richness of global perspectives.munity Service:Participating in community service projects has been a rewarding aspect of my college life.Volunteering at local schools,shelters,and nonprofit organizations has instilled in me a sense of social responsibility and the importance of giving back to society.7.Future Prospects:As I approach the end of my college journey,I am excited about the prospects that lie ahead.The skills,knowledge,and experiences I have gained have prepared me for a fulfilling career and a life of continuous learning.In conclusion,my college has been more than just an institution for higher learning it has been a transformative experience that has shaped me into a wellrounded individual.I am proud of the person I have become and look forward to applying the lessons I have learned to future endeavors.。

差异共融新动力的英语作文

差异共融新动力的英语作文

Diversity and integration are the driving forces of the modern world,fostering innovation and progress.In the global village we inhabit,the exchange of ideas,cultures, and values has never been more prevalent.Embracing these differences can lead to a more dynamic and vibrant society,but it also requires a concerted effort to ensure that all voices are heard and respected.The Power of DiversityDiversity in its many formscultural,linguistic,ethnic,and even ideologicalbrings a richness to our lives that is unmatched.It encourages us to broaden our perspectives, challenge our preconceived notions,and learn from one another.In the workplace,a diverse team can bring together a range of skills and viewpoints,leading to more creative problemsolving and better decisionmaking.In education,exposure to different cultures and languages can enrich a students learning experience and prepare them for a globalized world.The Challenge of IntegrationWhile the benefits of diversity are clear,the process of integration is not without its challenges.It requires a willingness to understand and respect differences,and sometimes, to step out of our comfort zones.It involves creating an environment where everyone feels valued and included,regardless of their background.This can be achieved through inclusive policies,education,and open dialogue that promotes mutual understanding.Strategies for Successful Integration1.Promote Cultural Awareness:Encourage individuals to learn about different cultures, traditions,and histories.This can be done through cultural exchange programs, educational initiatives,and community events.2.Foster Open Communication:Create spaces where people can express their ideas and concerns without fear of judgment.This can help to break down barriers and build trust among diverse groups.3.Implement Inclusive Policies:Develop policies that ensure equal opportunities for all, regardless of their background.This includes fair hiring practices,equitable access to resources,and representation in decisionmaking processes.4.Celebrate Differences:Recognize and celebrate the unique contributions that each individual brings to the community.This can help to build a sense of belonging and pridein ones identity.5.Encourage Empathy and Understanding:Teach the importance of empathy and understanding as a means to bridge cultural and social divides.This can be achieved through educational programs that focus on social and emotional learning.The Future of Diversity and IntegrationAs we move forward,the successful integration of diverse communities will be crucial for the continued growth and development of our societies.It will require ongoing efforts to break down barriers,build bridges,and create a shared sense of identity that respects and values our differences.By harnessing the power of diversity and working towards inclusive integration,we can unlock new potential and create a world that is more innovative,resilient,and harmonious.In conclusion,the journey towards a diverse and integrated society is both rewarding and challenging.It calls for a collective commitment to understanding,respect,and collaboration.By embracing our differences and working together,we can create a world that is not only more vibrant and dynamic but also more equitable and just.。

2023-跨国财务管理11章

2023-跨国财务管理11章

• Foreign exchange risk
外汇风险
• Political risk
政治风险
• Market imperfection
市场不完善
• Expanded opportunity set
扩大的市场机遇
• Multinational corporation (MNC)
8
1. What’s multinational finance?
The risk that foreign currency profits may evaporate in dollar terms due to unanticipated unfavorable exchange rate movements.
– Suppose $1 = ¥100 and you buy 10 shares of Toyota at ¥1,000 per share.
– One year later the investment is worth ten percent more in yen: ¥11,000
– But, if the yen has depreciated to $1 = ¥120, your investment has actually lost money in dollar terms.
• Financial management is mainly concerned with how to optimally make various corporate financial decisions, such as those pertaining to investment, financing, dividend policy,and working capital management, with a view to achieving a set of given corporate objectives.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Unanticipated Integration of Development Tools using the Classification ModelRoel WuytsLab for Software Composition and DecompositionD´e partement d’InformatiqueUniversit´e Libre de Bruxelles,BelgiumSt´e phane DucasseSoftware Composition GroupInstitut f¨u r Informatik und angewandte MathematikUniversit¨a t Bern,SwitzerlandAbstractThe increasing complexity of software development spawns lots of specialised tools to edit code,employ UML schemes,integrate documentation,and so on.The problem is that the tool builders themselves are responsible for making their tools interoper-able with other tools or development environments.Because they cannot anticipate all other tools they can integrate with,a lot of tools cannot co-operate.This paper introduces the classification model,a lightweight integration medium that enables unrelated tools that were not meant to be integrated to cooperate easily.More-over,the tool integration is done by a tool integrator,and not by the tool builder. To validate this claim,we show how to integrate several third-party tools using the classification model,and how it forms the foundation for the StarBrowser,a Smalltalk browser integrating different tools.Key words:Tool Integration,Software Classifications,Development Environments1IntroductionAs software systems get increasingly more complicated,developers need to be able to rely on adequate programming languages and development en-Email addresses:roel.wuyts@ulb.ac.be(Roel Wuyts),ducasse@iam.unibe.ch(St´e phane Ducasse).Preprint submitted to Elsevier Science29August2003vironments.Therefore lots of specialised tools exist that help developers to cope with a certain aspect of software development.For example,develop-ment browsers provide sophisticated ways to edit and navigate source code, while UML tools allow developers to draw class diagrams and sequence dia-grams.There is one problem however:these tools have to be used together in order to implement the systems that need to befinished.Hence they have to cooperate somehow,and this is most of the time problematic,due to the following reasons:•Each tool typically uses its own GUI,and its own conceptual model to store and represent information.It is the tool user who has the responsibility to combine the results from different tools.•It is hard to make the tool work on new kinds of items.Suppose,for example that we have a UML tool in the development environment that knows how to display a class diagram of all classes in a certain package.Adapting this tool to now take as input the results from another tool that does not work with packages is a major undertaking.When tools properly work together,synergy occurs:the output of one tool can be used as input for another.This is what we call integration of tools in the scope of this paper.For example,integrating a UML tool in a development environment makes it possible to show a UML diagram of all the classes in a certain namespace.When integrating a software architecture tool in the same environment afterwards,it is possible to show UML diagrams of the classes in a layer of the architecture of a system.These combinations are endless,and allow a developer to navigate and combine the tools easily to help with the task at hand.To allow the integration of tools some environments(like Microsoft’s Manage-ment Console or the Open Source Applications Foundations’Chandler)have an integration architecture that tools can follow to cooperate with the platform and each-other.We call this form of tool integration anticipated integration: the tool builder has made sure that the tool adheres to a certain integration platform.While this has the advantage that the tool is not stand-alone any-more,it has the drawback that it can be very hard to make it compliant to an integration platform(due to the complexity and to the fact that the code of the tool is needed to make the changes).Moreover,it does not solve the problem that the tool cannot be integrated with other tools that were not built on the integration platform.This paper tackles the problem of unanticipated integration:integrating unre-lated tools that do not adhere to a certain integration platform.As solution we present the classification model,a lightweight grouping mechanism for ob-jects that are acted upon by services.The design of the classification model combines a composite and visitor design pattern[1],which makes it easy to2comprehend and extend.It serves as a lingua franca for tools,and provides a clear separation of concerns between the tools to be integrated,the glue code to do this,and the integration model.This has the important benefit that each of these distinct phases is done by different developers(the tool builder, the tool integrator and the model builder),who are not necessarily aware of each other.We have implemented the classification model in the VisualWorks[2]and the Squeak[3]Smalltalk environments.The most important user of the model is the StarBrowser1that acts as a shell around existing Smalltalk development tools such as the object inspector,development browsers and UML tools, effectively integrating them.The contributions of this paper are:•the presentation of the classification model,•the unanticipated integration of tools by customising the classification model,•the practical application of the integration by building a concrete develop-ment tool,the StarBrowser.The rest of this paper is structured as follows.Section2introduces the classi-fication model in detail.Section3shows how the model can be customised to accommodate for new kinds of items or services.Then Section4shows how the classification model is used to integrate tools that were not designed to cooperate.Section5shows the StarBrowser,a browser that uses the classi-fication model to integrate with the Smalltalk environment and other tools. Section6discusses several aspects of the classification model in more detail, while Section7discusses related work.Finally,Section8concludes the paper. 2The Classification ModelThe classification model allows to group all kinds of entities and to uniformly manipulate these entities and groups.Particular about the model is that the grouping is independent of the manipulations,and that the model can be customised to either support particular groupings or to support particular manipulations or both.The following sections describe the model and discuss its design rationale.32.1OverviewThe classification model is built on the following main concepts,shown in Figure1:•items.An item is anything tangible as an object in the software development environment,such as a class,a namespace,an image,an HTMLfile,...•classifications.A classification is a group into which items are classified, and basically is a container for items.Items do not have to be of the same type,and it provides behaviour for enumerating and managing the items it contains.For example,a classification‘Popular Classes’can contain the most browsed classes or the classification‘My Architecture’can contain the items that make up your software architecture.•services.A service implements an action that can be performed on items. Depending on the kind of item,a service can perform a different action.But it should at least provide a default action that is able to process any kind of item that is passed.Examples of services can be a service that gets the children of an item,a label for an item,or a preferred editor.•service configuration.This is a registry where services can register under a certain name to be retrieved by tools.There are no restrictions on the number of items in a classification and an item may be classified into more than one classification.Since a classification is an item itself,it can be part of other classifications as well.We differentiate between two kinds of classifications:•extensional classifications enumerate items.For example,while browsing the code in a system,a developer can add classes and methods of interest into an extensional‘Favourites’classification.•intentional classifications compute their items according to a description. For example,we can define a classification as consisting of a certain class and all its subclasses.Or we can describe a classification that consists of all the senders of a certain methods in the context of another classification. Classifications support a full range of set operations(unions,subtractions and intersection)to make it easy to recompose their elements.For example,sup-pose that we have two classifications:an extensional classification‘Favourites’containing a collection of classes we are interested in,and an intentional clas-sification‘My classes’that calculates all the classes in my namespace.We can then intersect‘Favourites’and‘My classes’,and obtain a classification’My favourite classes’.1The StarBrowser can be freely downloaded from the StarBrowser Web page at http://www.iam.unibe.ch/∼wuyts/StarBrowser/index.html4Services are registered in a services configuration under a service name they specify.Anybody in need of a service retrieves it from the services configuration by its service name.Different services can register under the same name,in which case one of them becomes the‘active’service.When asking for a certain service,clients do not know exactly which service implementation they get.For example,they can ask for a service returning icons for items.If the services configuration has different services for returning icons,the active one will be returned.Swapping the active one for another will result in the clients using different icons without the need to change a single line of code in the client.Note that the provider of the service has to make sure that services with the same name are compatible.Unit tests are provided that enforce this compatibility between services registered with the same name.2.2Design RationaleWe made two important design decisions for the classification model.The most important one was to split the behaviour of items in two:the behaviour dealing with managing items(adding,removing,enumerating,...)is imple-mented on the items themselves.All other behaviour regarding items(their icons,labels,editors,...)is implemented using the services,using the Visitor design pattern.There were two motivations for choosing a visitor:•Keep the interface small.In the Smalltalk implementation,an Item can be any kind of Smalltalk object.Since we did not want to clutter the interface of the class Object with all kinds of item-specific methods,we only add one method(the method acceptService:)to enable a Visitor to implement the services.•Swap services at runtime.The services can be changed at runtime,which is not possible if the behaviour is directly implemented as methods on the item classes.A second decision was to wrap objects in a wrapper class ObjectAsItemWrap-per,a subclass of class Item that implements the method acceptService:as follows:ObjectAsItemWrapper acceptService:aServiceˆself object acceptService:aServiceTherefore any kind of object can be wrapped as an item provided it implements the method acceptService:,where it determines what method needs to be called on the service to process that item.The result of both these design decisions is a lightweight model.The next section describes how this model can be customised to accommodate for new5kinds of items and services.3Customising the Classification ModelThe classification model described in Section2can be customised in two or-thogonal ways:extra services can be added and new kinds of items can be supported.This section explains both of these customisations.In the next section we then see how this is used by the tool integrator to support unan-ticipated integration of tools.3.1Adding New ServicesServices define the actions that can be performed on items,following the well-known Visitor design pattern.Because they are de-coupled from the items, new services are added by subclassing existing services,in the“classical”Vis-itor scheme.For example,suppose that we are building an application that needs to show items in some GUI,and that wants to show icons for each item. Then this application needs to know which icon to use for each item.This is done by adding a new service as subclass of the existing class Service,and overriding the methods for which icons need to be returned.Figure2shows the implementation needed.3.2Supporting Custom ItemsIn Section3.1we added an icon service to return icons for items.However, it only supports three kinds of items:objects,extensional classifications and intentional classifications.Now suppose that we want to add support for an-other item,say a method,so that we can return a specific icon for it.To do this,we need to do two things:extend the class implementing a method with an acceptService:method and extending the services that want to take advan-tages of methods with a new Visitor method(for example doMethod:).This is shown in Figure3.Note that the implementation of doMethod:on class Service simply calls doOb-ject:.As a result,all services that do not need to support methods explicitly, will process methods as objects.For example,there is a service called Item-Children that returns the’children’of an item.Asking for the children of a method item by sending doMethod:to an instance of class ItemChildren will result in sending doObject:to that instance,hence processing a method as a generic object.64Unanticipated Tool IntegrationSections2and3introduced the classification model and showed how it can be customised to support new kinds of services and items.In this section we show how this is used to integrate the models of tools that were not designed to cooperate together.4.1Integration OverviewAs said in the introduction,we consider tools to be integrated when the out-put of one tool can be used as the input for another tool.To solve the problem of unanticipated integration,somehow a format has to be introduced to in-tegrate tools,but without changing these original tools.The idea is to use the classification model as afirst-class glue format to bridge the tools to be ing the classification model for this purpose has the advantage that items are manipulated uniformly(meaning that making the output of one tool’compatible’with the classification model immediately allows that tool to work with all tools that have compatible input).Another important advantage is the set operations available on classifications,meaning that once a tool is integrated it can be used to calculate unions or differences with results from other tools.While trivial atfirst,this makes it easy to make semantic operations that combine the output of different tools.To integrate tools using the classification model,tool output has to be made tangible as items and a translation has to be provided from items to whatever is needed as input:•Disguise output as items.The output of a tool,some object,has to be tangible as an item.If the classification model already knows about that object,nothing needs to be done.If the classification model has no support for that kind of object,it needs to be customised.For example,suppose that we have a tool(the Smalltalk system itself)that produces classes as output. Since the classification model does not know about classes,we extend it.As described in section3,this boils down to adding the method acceptService: on the class ClassDescription,and adding the method doClass:on the class Service.•Create service for input.To make a tool work with items as input,we create a service that translates items to the input needed by the tool.For example, as we will see when integrating the UML editor Advance,we create a service that maps items to so-called‘subjects’,used internally by Advance.It is important to note that the tools themselves do not need to be changed. It is just the classification model that gets customised.Moreover,the respon-7sibility for integrating the tools does not lie with the tool developer,but with the tool integrator.This is a major difference between the approach allowed by the classification model and an up-front integration architecture that tools should comply with.4.2Example:Integrating Advance and SmallBrotherWe illustrate the unanticipated integration of tools with a concrete example showing how to combine the output of SmallBrother,a coding assistant that tracks browsing behaviour,with Advance,a UML tool developed by IC&C and shipped with the VisualWorks Smalltalk environment[2]. SmallBrother.SmallBrother tracks the methods browsed by a developer while working.Every-time a method is selected,this is intercepted and the class,selector,and a time-stamp are kept in a database.This database can then be queried for information regarding the history and browsing behaviour. We can for example evaluate the following piece of code to get the20most recent methods that were browsed:MethodHistory uniqueInstance recentMethods:20Other things we can ask for are,for example,the number of times a method was browsed,or what classes have been used a lot.The results of these queries are collections of objects.Therefore the mapping is easy in this example:an intentional classification is used that computes its items:IntentionalClassification name:’Recent Methods’description:[MethodHistory uniqueInstance recentMethods:20]Advance.Advance is a UML tool for the VisualWorks Smalltalk environment. To let Advance work with items,we create a new service,class AdvanceEditor, with the methods shown in Figure4.This class implements methods that visit items(doExtensionalClassification:,that calls doClassification:,and doPar-cel:).These methods convert items to an internal Advance representation,the subject.The other two methods,createSubjectForItem:and doForSubject:are auxiliary methods that generate a subject(which is a class)on thefly,and open an Advance diagram tool on the subject.We want to stress that we are not the developers of the Advance tool,and that none of the existing Advance tools had to be changed to make them classification model compatible.As tool integrators we just implemented some glue code to convert items to subjects,and pass these subjects to Advance.85The StarBrowserThe main application of the classification model is the StarBrowser.The Star-Browser is a VisualWorks Smalltalk[2]2development browser.By itself it provides only a toolbar,an interface to display classifications as a tree,a part where editors for these items can be shown,and a mechanism to allow a user to switch services using the ServicesConfiguration.It extends the classifica-tion model to support classes,methods,namespaces,packages,bundles,and parcels.All its other functionality is implemented in a number of services:•editor:The editor service is responsible for adding an editor on the currently selected item in the classifications list.This editor is embedded on the right of the classifications list.It integrates tools to edit all kinds of source code entities with the Refactoring Browser[4]and objects with the Trippy object inspector.The application returned by the editor service is integrated in the StarBrowser using VisualWorks’subcanvas technology.The toolbar of the editor(if there is one)is merged with the toolbar of the StarBrowser.•icon:The icon service is responsible for showing the icon of an item in the classifications tree.•label:The icon service is responsible for showing the label of an item in the classifications tree.•menu:The menu service is responsible for returning the operate menu that users get when they right-click on an item in the classifications list.Figure5shows the StarBrowser in action.The left tree view shows the classi-fications tree that this browser is opened on.Right of the tree is an editor for the currently selected item,as given by the editor service.It currently shows a Refactoring Browser on the selected method item in the tree.Extensional classifications are manipulated using drag’n’drop:items are just dragged from any kind of Smalltalk tool(stand-alone or embedded in the StarBrowser)and dropped at their desired location.That way extensional classifications are used to group items of interest.The extensional classification ‘Favourites’from Figure5,for example,groups items we used while working on the ServicesConfiguration class.It contains the Classifications bundle,the ServicesConfiguration class,two methods we were frequently editing at the time of taking the screenshot,the SUnit class with the unit tests for the class,and an instance of ServicesConfiguration so that we could directly test new implementations.Keeping all these items together helps to reduce the complexity of the development process.2See /scripts/smalltalk.dll//Home.ssp for more informa-tion and downloads.9Besides being used for constructing working views on a system,classifications are also used as working contexts for some widely used commands.For ex-ample,the senders or implementers of a method can be looked for within the context of a classification.5.1Advance and SmallBrother in the StarBrowserAs shown in Section4,we integrated the Advance UML tool in the classifica-tion model.The reason for doing so was that we could show a class diagram for any kind of item that gets selected in the classifications tree.For example, selecting a namespace shows a class diagram for all the classes in this names-pace.Or showing a classification shows all the classes in that classification. We also integrated SmallBrother,so that we could add the history information as classifications in the tree.We decided to use intentional classifications that calculate their items by querying the MethodHistory instance,as shown in Section4.However,we wanted this classification to refresh itself whenever the user browses a method.So we made a subclass(called ObservingClassification) that observes models using the VisualWorks dependency mechanism.Since MethodHistory is a model,it can be observed by an ObservingClassification and it will refresh when needed.Once the service for Advance is selected as the current editor,and we have added one of the classifications that wraps SmallBrother,the tools are effec-tively integrated.Figure6shows an Advance diagram of the Popular Classes classification.Of course this means that Advance can be used to display class diagrams on all kinds of items,and that lots of other tools can take advantage of this.5.2Other ToolsWe showed how we integrated two external tools,Advance and SmallBrother, in the StarBrowser.Besides these tools,other tools were integrated in the StarBrowser(by us or by independent parties):•CodeCrawler[5]is a language independent tool that combines software vi-sualization and software metrics to help with the understanding of software systems.We also integrated a tool that shows class blueprints[6](visualising the internals of classes)whenever items containing classes are edited.•Conan[7]is a tool that supports concept analysis(a technique to group different objects with common relationships)in the context of reengineering10of software systems.The StarBrowser is used to browse the concepts and elements found by Conan.•Intentional Software Views offer a simple,intuitive and lightweight model that facilitates software understanding and maintenance.The model is im-plemented in a logic programming language.To shield the developers from the implementation details or syntactic peculiarities that this implies,an intuitive user interface was developed using the StarBrowser[8].•Soul is a logic programming language living in symbiosis with its imple-mentation language(Smalltalk).The novel way of integrating these two languages from different paradigms allows one to write logic programs that can do full logic reasoning on and using objects[9].The StarBrowser was extended with support for showing the results of Soul queries as classifica-tions,and work is in progress to integrate the Soul predicates browser in the StarBrowser as well.•Pictures.Another extension integrates a picture viewer in the StarBrowser that shows pictures graphically when they are selected.This is useful for keeping graphical information in your work context,or when making pre-sentations.•SUnit is the Unit testing tool in ing the StarBrowser,an ad-vanced GUI for SUnit is being built to ameliorate the built-in platform-independent tool.6DiscussionThis section we discuss the porting of the StarBrowser to a completely different Smalltalk enviroment(the Squeak environment),and then how the Smalltalk mechanism of class extensions is essential in the implementation of the classi-fication model.6.1The Squeak PortThe VisualWorks implementation was ported to a second Smalltalk environ-ment,the open-source Squeak3system[3].After doing an initial port,con-taining the model and a very simple browser,the Squeak version was taken over by another developer,Ned Konz.In a couple of days,Ned had signif-icantly extended our initial crude implementation to a level where it nearly provided the same functionality as the VisualWorks version.Afterwards sup-port was added for Squeak-specific items like Morphs,SqueakMap entries and DVS packages,and tools like an e-mail browser.This is an indication of the 3See /for information and downloads.11ease with which the lightweight classification model can be put to good use even by developers who did not know the model before.6.2Packaging using Method AdditionsAs explained before,we identified three different actors that play a role when integrating tools:the tool builder,the tool integrator and the model builder. In order to support this separation in practice,it is absolutely necessary that each actor can package its own code separately.Hence the tool integration package has to be a separate entity that customises the classification model.However,customisations of the classification model to support new kinds of items depend on adding methods to existing Service classes.For example, Figure3showed that the customisation of the classification model to support methods is done by adding three methods to existing classes.Hence we need a packaging mechanism that allows us to create a package for these methods.Smalltalk has a package mechanism that supports method additions.A method addition is a method that is defined in a package,but that belongs to a class that is not defined in that package4.In other words,it is a method that can be loaded into a system to extend some existing class,and is exactly what we need to support the packaging customisations of the classification model. When a language does not support method additions(such as for example C++or Java),the design of the classification model becomes much more complicated.The visitor pattern used for the services then has to be replaced by a design that allows customisations to be made purely by subclassing or delegation.7Related WorkConceptually,the classification model is a direct descendant of the software classification model[10].The main difference is that the classification model uses a visitor to represent the actions that can be performed on items,which did not exist in the software classification model.As a result,it is easier to add operations,and services can be changed on thefly.A lot of environments offer integration features that tools can use to integrate with the environments and/or each other.For example,the Microsoft Manage-4In VisualWorks we use parcels or bundles and packages.In Squeak we use change-sets.They all support class extensions.12ment Console(MMC)5integrates management tools in Windows.The tools have to be developed as snap-ins,and cannot work as stand-alone applica-tions.Another example is Chandler6,a tool to let users store and organise diverse kinds of information(like e-mails,news,or mp3files).It is set up as an extensible platform,where users can contribute so-called parcels.Parcels are python scripts that can use the facilities of Chandler.The major difference with the approach taken by these environments and our approach is that they support anticipated integration,and that the tool developers have to make their tools compliant to the architecture,not the tool integrators. Regarding unanticipated tool integration,not much work seems to have been done.Apart from the Eclipse IDE[11],we are not aware of another model that supports unanticipated tool integration that does not require the tool developers themselves to make changes.The Eclipse environment follows the same concept as the StarBrowser.It consists of a tiny core(the plug-in loader),with most of the environment con-tributed by plug-ins.For example,the Eclipse IDE and the Java Development Environment together consist of around60large plug-ins.Plug-ins for Eclipse have to conform to certain interfaces,and are glued together through exten-sion points.These extension points are basically observers,and plug-ins are thus integrated using a synchronous message passing model.This differs a bit from the StarBrowser and the classification model,where items and services are used,and class extensions allow for the customisation.While intrinsically there is thus not much difference between the two,in practice it is much easier to customise the classification model than to write a Eclipse plug-in.The rea-son is that much more coding is needed to implement extension points,because the events have to be implemented in such a way that they are not blocked,do not lead to errors,etc.In the classification model,the customisation is much simpler.8ConclusionThis paper tackled the problem of unanticipated integration of tools,where tools that were not designed to cooperate should be integrated.To solve this problem,the paper presented the classification model and showed how this model can be used for unanticipated tool integration.The advantages of the classification model are that it is lightweight,which make it easy to extend, and that the integration does not need to modify the tools themselves.This is 5/technet/treeview/default.asp?url=/technet/prod-technol/winxppro/proddocs/sag MMCConcepts00.asp6/Chandler Compelling Vision.htm13。

相关文档
最新文档