当前位置:文档之家› Impact of the Research Community On the Field of Software Configuration Management Abstract

Impact of the Research Community On the Field of Software Configuration Management Abstract

Impact of the Research Community

On the Field of Software Configuration Management Summary of an Impact Project Report

Jacky Estublier (Univ. Grenoble), editor1, David Leblang, co-editor,

Geoff Clemm (Rational), Reidar Conradi (NTNU, Norway),

Walter Tichy (Univ. Karlsruhe), André van der Hoek (Univ. California at Irvine),

Darcy Wiborg-Weber (Telelogic, Irvine)

Abstract

Software Configuration Management (SCM) is an important discipline in professional software development and maintenance.The importance of SCM has increased as programs have become larger and more complex and mission/life-critical. This paper discusses the evolution of SCM technology from the early days of software development to present and the impact university and industrial research has had along the way. It also includes a survey of the industrial state-of-the-practice and research directions.

The paper published here is not intended to be a definitive assessment. Rather, our intention is to solicit comments and corrections from the community to help refine the work. If you would like to provide further information,please contact the first author. A longer version of this report can be found at

http://www-adele.imag.fr/SCMImpact.pdf.

Keywords

Software configuration management, software engineering, software quality, industrial impact.

1PREFACE: WHAT IS IMPACT?

During the preparation of this report,there was a lively debate among the authors about what defines impact and which research to include. The impact is easy to discern: A successful,multi-million dollar industry in software configuration management tools has arisen. SCM tools have become so pervasive that virtually all major projects use them. SCM provides tangible and recognized benefits for software professionals and managers; software development standards even prescribe their use. There are now over a dozen textbooks dealing exclusively with SCM, and most textbooks on software engineering include a chapter on that topic.Software engineering conferences and workshops regularly seek contributions in this area. Finally, there is a lively international community of SCM researchers and an international SCM workshop series.

Identifying the research that had caused this impact was more difficult.We(the authors)came quickly to the conclusion that citing only academic research would be far too narrow, because corporate research had contributed a great deal of results and ideas.In fact,the software configuration management community owes much of its liveliness to a healthy and competitive mix of researchers and developers from both academia and industry. Our first ground rule was therefore to take an inclusive view of research.

We discovered quickly that it was futile to determine who contributed"more",academia or industry.Our opinions about what was more important diverged widely, depending on our personal points of view. We will therefore leave the evaluation of the relative merits of research contributions to our readers and to historians. Our goal is to provide an honest and accurate picture of the major research ideas in SCM and show where they had an impact.

Given the long lead time for research results to show up in practice, some as yet unused results may have their impact still ahead of them. Thus, we decided to discuss current research even if it has not yet had any discernible impact on practice.

So far, these three ground rules, though important, do not help identify relevant research.After some debate we decided to concentrate on publications in the open literature. This criterion is not perfect, since it leaves out unpublished work,in particular results that go directly into products. However, fortunately for the community,research results were vigorously published even by industry, notably Bell Labs, Apollo, Atria, and others. We are fairly certain that the major research ideas and results in the domain of SCM have actually been published.

1 Addresses of authors: Jacky.Estublier@imag.fr, Leblang@https://www.doczj.com/doc/ba13513982.html,,

GClemm@https://www.doczj.com/doc/ba13513982.html,, Reidar.Conradi@idi.ntnu.no, Tichy@https://www.doczj.com/doc/ba13513982.html,a.de, andre@https://www.doczj.com/doc/ba13513982.html,, darcy@https://www.doczj.com/doc/ba13513982.html,

A major impact is caused by people, in particular university graduates and researchers in SCM,moving to industry. Many of the academics in the SCM field have enjoyed long and fruitful relationships with the SCM industry. Industrial contacts are a source for new problems to solve and act as a corrective of what is important and what is not.

Last but not least, workshops and conferences have had a significant impact on the SCM community.Given the competitive nature of the software business, it has fallen to the academics to organize vendor-independent meetings in which the latest results in SCM are presented and new, unpublished ideas discussed.It is unlikely that even the authors of this report would all have met without the SCM workshops that brought together researchers and developers in the SCM field for over a decade.

In sum,we hope that this paper gives a flavor of the software configuration management story, a success story that is yet unfolding. We hope that many more chapters will be added to it in the future.

Section 2 describes SCM and how the discipline evolved since the early times. Section 3 summarises the impact of research work. Chapter 4 concludes the report.

2STATE OF PRACTICE AND EVOLUTION Configuration management(CM)is the discipline of controlling changes in large and complex systems. Its goal is to prevent the chaos caused by the numerous corrections, extensions,and adaptations that are applied to any large system over its lifetime. The objective of CM is to ensure a systematic and traceable development process, so that at all times a system is in a well-defined state with accurate specifications and verified quality attributes.

CM was first developed in the aerospace industry in the 1950s,when production of spacecraft experienced difficulties caused by inadequately documented engineering changes. Software Configuration Management (SCM) is CM tailored to systems,or portions of systems,that consist predominantly of software [Whi91].

At first, different colored punch cards were used to indicate changes; fortunately, software became an “on-line entity”and hence could easily be placed under automatic, programmed control.Currently,SCM systems are sophisticated tools,which emphasize process support, concurrent engineering control,distributed and remote workspace control and other high-level functions.

Thus, SCM has evolved significantly since its introduction, but a number of characteristics remained constant. SCM is a technology in charge of most of the issues that are raised by large software product development and maintenance, and not addressed by programming languages. SCM does not typically manage early life-cycle phase objects (requirements, design, analysis, etc.) or deal with final stage issues (deployment, dynamic evolution and reconfiguration). However,some SCM systems maintain the relationships between these “other phase” objects and source code.2.1Files

Originally,SCM’s duty was to manage the many files involved in a software product,their versions and the building of the system out of these files. Fundamentally this has not changed.

Currently, there is a tendency to hide the concept of file, found to be too low level, at the benefit of concepts closer to actual programming practices,as found in programming environments (project, folder, package, etc.). Nevertheless, the file system did not disappear and software engineering tools still rely on this file system view, which remains, for the foreseeable future, the underlying structure.

The consequence is that the main structure of a system, as perceived by SCM tools, is the file system structure, and a basic SCM function is to be able to(re)generate a file system view of a software system so that desktop tools and development environments can work.

2.2Version Control

To avoid the confusion resulting from the same identifier assigned to two versions of the same item, a new and unique identifier is issued whenever an item is changed. But the proliferation of items requires a system to manage them, recording their relationships and their common properties. This is what version control is about.

Originally, each file was individually managed as a tree of versions(revisions and branches)following the SCCS [Roc75] and RCS [Tic82] systems. These systems are still at the core of almost all commercial SCM systems. Over time, SCM systems have come to manage configurations,which are a “consistent” and complete collection of file versions. Change packet versioning came from industrial practices in the70s(IBM and CDC update systems),extended by Hough [Hou81].The idea relies basically on conditional compilation technique;1at check-in all “bundled” changes are tagged with the same label, which allows one to later (re) build files, given an arbitrary list of labels. Thus it becomes possible to build files that never existed before,by combining changes performed independently,maybe concurrently. This technique was introduced to the market under the name change set [ADC88]

Change sets open possibilities that go far beyond classic versioning, and thus were heavily studied by academia. In the Norwegian EPOS project, under the name of change-oriented versioning[Lie89][Con97],version fragments (deltas) are tagged by boolean attributes called options. In this system it becomes possible to manage the evolution not only of files, but of any data structure, any kind of attribute or relationship, and to make explicit relationship between options(compatibilities,incompatibilities,requirements). Boolean expressions containing options determine the visibility of a logical change [Wes01]. The product structure

1Conditional compilation is well represented by cpp, the C preprocessor. Cpp analyses special constructs#if label and #endif, and if label is defined, the text between #if and the corresponding#endif is left in the file,otherwise it is removed.

(called product space)becomes completely independent from the versioning structure (called version space). Recently, Zeller and Snelting [Zel97] have explored similar approaches in their ICE prototype, using feature logic to express the version rules.Many attempts have been made at offering fully versioned databases including Damokles OODBMS [Dit87] and ObjectStore [Lam91].

Pure change-set systems do not work well in practice for several reasons.First,labels(options,deltas)sometimes overlap and conflict. Although the system can physically construct any combination,some combinations may not compile. For some binary formats,there is no way to sensibly combine any deltas except with the version on which they were based. Second, in a software project with tens of thousands of components and hundreds of thousands of changes, it is too difficult to reliably make a system by naming change sets. In fact, only a tiny percentage of change combinations are actually useful.

Commercial change-set systems like TrueChange [McC00] and Bellcore’s(in-house)Asgard[Mic96]system make heavy and frequent use of reference product versions, called baselines, to define a starting point for new changes. These baselines are usually tested and stable. A developer need only specify a baseline and a few additional changes. Although this reduces the number of possible permutations of changes it vastly simplifies version selection and increases confidence in the result.

It is expensive and error prone to build and maintain special software for each customer,even with change sets.The trend has been to build a single version whose special features can be enabled dynamically (usually for a fee).

In the mean time, it was understood that a special use of the merging technique could provide a subset of the facilities found in the change-set approaches.Called change packages [Dar97], this technique has the big advantage that is uses the standard versioning technology, which is mature and efficient, and can allow for occasional change selection in an hybrid approach.This is why this technology has increasing acceptance in current SCM tools.

Although change sets could be used to uniformly implement conditional compilation as well as revisions,in practice, users view conditional compilation as a programming language issue distinct from ordinary revisions. In general, software development organizations now try to reduce the number and variety of releases to save costs and increase quality. In addition, organizations are more concerned with change management and process control than advanced versioning models.

Nevertheless, many commercial SCM systems have added the ability to track logical changes rather than individual file changes. But the name and features are not always similar. ADC/Pro uses the term“change set”,CCC/Harvest uses “package”,CM Synergy uses“task”,ClearGuide uses “activity”, PCMS uses “work package”, and StarTeam uses “subproject”. Even lower-end SCM tools such as Intersolv's PVCS and StarBase's StarTeam have the ability to mark a source-code change with the corresponding defect report or enhancement request. Within the next years, we expect that tracking software by units of logical change will be the state of the practice for most commercial software configuration [Dar97] regardless of the underlying versioning technique. The driving force behind the acceptance of logical change tracking may be the desire to manage changes in a process-oriented way, not as a version selection mechanism.

Only recently, with the advent of task-based approaches, versioning evolved again,integrating change-set features, but on an RCS-based internal representation.

2.3Product Modeling

Most SCM systems maintain only the version trees,the configuration (a lists of version identifiers) and a makefile, for the compile-time dependencies.

Recently,for their internal representation of a software product, high-end SCM systems support features that add semantics to items.They allow types,attributes,and relationships to be associated with items according to a data model.

Consequently,an SCM system needs to translate(fast) between the file system view and the internal representations of the same software product. This is a limiting factor, which explains why even high-end commercial tools use simple data models close to the file system view.

2.4System Model and Rebuild

As software systems have grown to include many thousands of components, keeping track of the pieces and how they fit together has become a difficult but critically important task. SCM systems accomplish this task with system modeling facilities.System modeling was originally used to help rebuild a system from source files (Make [Fel79]), and even now, in most SCM systems, the makefile is the only “system model”.

A rich system model also provides a high-level view of the product organisation (its architecture), which can be used to better control product evolution,to compute“consistent”configurations and so on.

Unfortunately, any information that has to be provided and maintained by hand represents a (high) cost that may rapidly outweigh its expected benefit. For this reason, in the current state of practice, system models are not widely adopted by practitioners. High-level system models will be used only if they can be extracted automatically from source code, or if they are available, for other reasons.

2.5Rebuild and Selection

With so many components and versions,a configuration selection mechanism is needed to select which versions to include in a new configuration.

The number of possible configurations far exceeds the number of useful configurations.The general problem of determining the“consistent” combinations would require some semantic knowledge of all artifacts. This is beyond the state of the art.In fact,engineers often are unable to

determine if a configuration is correct without building and testing it.

Of course,SCM tools do not address this issue in its generality. Instead, a new configuration is built starting from a consistent reference configuration called a baseline. The baseline is used to create a workspace in which a few changes are performed.Once tested,the changes are “checked-in” and a new baseline configuration is created. This simple schema is the basis of almost all SCM systems, with extensions for concurrent engineering support(see below).

2.6Workspace and Concurrent Engineering Workspaces are “naturally” independent areas where users can perform their job isolated(or insulated)from the activities of other colleagues. This is a desirable property, especially in large projects.

Eventually, the work performed, simultaneously or not, in different workspaces must be combined(merged).Thus, high-end systems propose features,like rules,to flexibly combine the work performed in different workspaces. Sometimes the work can be combined through the careful selection of versions in a new configuration. Other times the physical file changes must be merged. Since the late 1980s, this is one of the important research topics.

2.7Change Control

From the beginning,auditing and tracking have been considered as basic functions of SCM systems. They require that any change performed on a large software system be related with a formal change request. Originally, a per-file change log kept information about changes, but over time change control has evolved into the set of procedures governing how a change is decided, implemented, tested and released. Most current SCM systems support change control based on a set of states assigned to software items or change request items. It is a “product based” process control.

More recently,in high-end systems,workspaces were considered as a unit of work with sub-workspaces corresponding to sub-activities. Thus a workspace becomes the context for task or activity concepts. Therefore, in these systems, change control can be expressed in terms of tasks assigned to users in specific workspaces; it is an “activity based” process control.

Process support is a generalisation of change control applied to other activities.Activities are currently assimilated to workspaces so process support in SCM is limited to activities performed in a workspace.

2.8High-End Versioning and Task Support Because tasks and workspaces are strongly related, tasks and version selection are also related.

Usually, a workspace is created to perform a task (often a change request) on a baseline. The workspace is populated by “checking-out”the baseline,and the resulting change performed is a change set. Using change sets for version selection can be a way to unify the SCM concepts of file management, version control, and workspace management with the process of change control.

Interest in integrating SCM and change control has grown

over time and the field of study is still maturing.

2.9Distributed and Remote Development

Distributed SCM coordinates the work of geographically distributed teams. Distribution requires that the main SCM

functions introduced above are network enabled. In local-area networks,client/server implementations of these functions will do, but in wide-area networks the bandwidth between sites may not be sufficient. In this case, each site, even mobile,needs to replicate the relevant parts of the database and a periodic update process must synchronize them[All95].Updates that travel over public networks should be encrypted.

Distributed development places a strong emphasis on process support.If team members rarely meet,telephone calls are difficult because of time-zone differences,and email round-trips take a day, informal arrangements on who works on what for how long break down. In this situation, much more emphasis must be placed on automated support for scheduling, tracking work, and preventing information loss.

Web technology and the generalization of the virtual enterprise increase the need for a good support for remote development. Remote development is an important area of work for vendors.

Web site management, and web enabled cooperative work became a new area where some SCM techniques are used. However, web-content management is more concerned with maintaining hyperlinks, page templates, and pooling graphic images than it is with recreation of old releases, frequent baselines, and long audit trails. This is why companies other than the SCM vendors are the actual leaders in the “content management” market1.

Web technology also addressed issues related to cooperative work on common files. Not surprisingly, some SCM vendors had a definitive influence in the definition of this norm.

2.10Evolution in Response to the Market

Although current tools build on past inventions, changes in the hardware,software,and business environment have made the evolutionary path of SCM far from a straight line. Throughout the 1980s debates raged on the best type of delta storage and retrieval mechanisms. New tools were built extending the groundwork laid by earlier tools as rapid progress was made.However,in the1990s non-textual objects became more common and totally new algorithms were required.By2000,disk storage became so inexpensive, CPUs so fast, and non-text objects so common that deltas became unimportant – many new tools use simple (zip-like) compression.

Feature selection versus branching as a way to build

1BroadVision,Vignette,ATG,Allaire,InterWorld, Interwoven, Blue Martini, Open Market, BSCW.

customized configurations of a product was a popular subject in the 1980s and 1990s. However, in recent years the business environment has made building custom software releases much less popular. Even the creation of “patches”, a mainstay of the past, has largely been replaced by annual “service updates”.

Development environments like Visual Studio have taken over Make responsibilities and also some system modeling features,so new tools rarely include proprietary build features.

These changes do not mean that SCM research is dead, but rather that it needs to solve new problems more than it needs to improve on solutions to old problems. Some of those new problems include dealing with teams collaborating over the internet,allowing software developers to take their work home at night or on an airplane by docking and undocking, dealing with web content,integrating with other development tools, and providing a GUI that is easy to use but still provides the needed power.

The success of SCM is also due to the fact that SCM systems have been carefully designed to be independent from programming languages and application semantics, and to take the best of simple algorithms (like the version tree) and simple heuristics (like line merging). This turns SCM systems into general and efficient tools, while avoiding the intrinsic complexity of syntactic and semantic issues. Instead, SCM systems seek to integrate the tools that need syntactic or semantic knowledge (such as syntactic editors).

2.11Summary

SCM is one of the most successful branches of software engineering.There is a lively international research community working on SCM and a billion dollar commercial industry has developed.Nearly all corporate and government software projects use some SCM tool. SCM is actually unanimously considered as an essential tool for the success of any software development project. It is required to get the second CMM maturity level. Practitioners consider SCM tools as helpful,mature and stable. Consequently, the SCM market is increasing pretty fast (see table 1).

The success of SCM can also be measured by the fact its basic techniques became pervasive and found in many tools. All 4GL tools, most programming environment tools, and even text editors now include a basic version manager. New domains such as“web content management”also apply SCM techniques,as does the new web protocol WebDAV/DeltaV.

3SCM IMPACT

In this section, we provide an overall view of the evolution and impact of SCM research.

3.1Some Successful Transitions

SCM is unanimously considered an essential tool for the success of any software development project. Practitioners consider SCM tools as helpful, mature, and stable. The SCM market has increased in value year after year (see Table 1). Everyday tools such as Microsoft Word now incorporate basic versioning capabilities. All in all, this level of success is remarkable. It is interesting to correlate this success to the key research contributions that have made the transition into industrial SCM products. In particular, industrial products all have as their cornerstones the following four,well-researched issues: versioning, and merges; selection; process support; and distributed and remote development.

3.1.1Versioning and selection

Change sets, for long a curiosity, are slowly becoming a standard feature in high-end SCM systems,but in a simplified form,often associated with the concept of task/activity. Indeed, focusing on the concept of activity has two major consequences. First, the grain for a version is the complete workspace, thus “naturally” a change set. Second, a selection is based on a known release, and a version is a change with respect to that release. This explains why the simple change-set approach(in its change-package implementation)is gaining acceptance,and why the advanced change-set approach, which does not fit practice, is not used.

Similarly,advanced selection features made possible by advanced versioning, are not fully used because they are not required by actual practice, nor by actual product models, nor promoted by actual tool interfaces. Nevertheless, current evolution goes toward hiding low-level mechanisms (revisions and branches)and relying on higher-level concepts (workspace, task) making implicit use of change sets,and requiring more and more of the features experimented by researchers.

The basic versioning schema(revisions and branches) initially provided by SCCS [Roc75] and improved by RCS [Tic82][Tic85]and still used today in most commercial SCM systems, have been provided by researchers.

3.1.2Differences, compression and merges

Initial SCM systems relied on traditional differencing and merging technology that involved comparing sequences of lines of ASCII text [Hunt76][Meyers86]. These algorithms were not invented within the SCM domain,but SCM research has since improved the simple line comparison algorithm. These improvements were twofold: incorporating more semantics to provide more accurate differencing and merging technology,and extending the differencing and merging algorithms to also handle binary artifacts. Context-[Knuth84],operation-,syntactic-and semantic-based comparisons [Reps88] have been proposed to make

differencing and merging algorithms more accurate [Buff95]. Syntactic and semantic comparisons seek to find the“relevant”differences and to ensure a merge will produce a consistent result(i.e.,a source file that will compile and exhibit the intended behavior). It is easy to prove that a syntactic and semantic merge can avoid errors produced by classic line-based mergers[Hor89].Despite this clear advantage,commercial SCM systems have not adopted these kinds of algorithms:the need to remain neutral with respect to which kinds of artifacts are versioned prevents the incorporation of semantic differencing and merging techniques. Nonetheless, this research has made a transition into industry in a different domain, where it has been used for several years now: version-sensitive editors (“multi-version editors”)[Kruskal84][Fraser87][Sar88] [Atkin98].

The classic “diff3” algorithm performs well for textual files, but cannot handle binary files (a Word document is stored as a binary file!). This has prevented use of diff3 for storage optimization in SCM systems that must handle both source and binary files. SCM research addressed this problem from two angles:new algorithms to detect block moves [Tichy84], and new algorithms to operate on binary files [Rei91]. Bdiff [Hunt96] and Vdelta[Korn95] integrated these algorithms into a single algorithm that can detect block moves and handle binary files. The result is a differencing and merging algorithm that not only is extremely efficient, but also serves to compress any kind of file stored in an SCM system.These important benefits explain why commercial SCM products are starting to incorporate these algorithms.Clearly, industrial and academic research has had its impact in this area.

3.1.3Process support

Over the years,SCM research focused on incorporating process support in the tools. Early SCM tools only provided basic mechanisms to version https://www.doczj.com/doc/ba13513982.html,ers would use attributes to label the artifact with the name of the particular life-cycle phase in which it resides (initial, test, release) or with a state.Clearly,improvements were needed to incorporate process support into an SCM system.

The first logical evolution was to incorporate state transition diagrams to model, control and automate the succession of states for artifacts,using a triggering mechanism as the process engine [Bel87][Bel91]. Most SCM systems use this technology now. The next step, currently under way, was to use“activity based”approaches,borrowed from the software process community research[Din98][Fin94] [Pro98].The goal was to provide powerful modeling capabilities and associated engines so that customers define and control their own SCM processes [Est97].

The incorporation of powerful process engines in SCM systems did not succeed,because users found it too cumbersome and difficult to define their own processes properly.Instead,process support now is based on predefined processes developed by SCM vendors. Hiding many of the details of this process behind a powerful user interface, it became acceptable for users to start using and enforcing these processes. An example is ClearGuide, which is a powerful generic process engine integrated with ClearCase.Nevertheless most ClearCase users prefer the “simple” UCM, which provides predefined processes said to embody best practices. Even though users can customize processes,most users choose one of the out-of-the-box processes to institute for their organization. Progress both in customer maturity and in process support concepts and interfaces will be required before generic process support tools will be widely accepted.

Clearly, academic research had its impact in this domain: the issue of process support was raised, example solutions were created, and the fundamental basics were laid. However, it was not until industrial research took the ideas and made them viable for real-world use that software process grew into a mature part of standard, repeatable SCM practice. SCM is one of the very few fields were process support proved to be critical; it became one of the major vendor selling arguments, and one of the major client expectations [Con98].

3.1.4Distributed and remote development

Distributed and remote development represents an area in which industrial research clearly took the lead in solving the problem.Initial academic approaches focused on rather complex distributed and replicated repositories. There was also work on adding a simple web interface to an SCM system to provide remote access to a repository with artifacts.However,it was ClearCase that researched and developed MultiSite, a solution that relies on peer-to-peer repositories that are periodically synchronized with each other. Similar solutions are now in place in almost every high-end CM system and research on the topic has quieted down.An adequate solution seems to be in place that resulted from well thought out industrial research, as well as background in academic research and timestamp techniques used in database field.

3.1.5Web

It is interesting to note that the web provides a different kind of success story.First,web-site management resembles software development closely: rapidly changing resources that are authored and managed by a variety of people and need releases that must be closely controlled. Although it is curious that none of the SCM vendors is among the current market leaders of content management tools(such as BroadVision,Vignette,ATG,Allaire,InterWorld, Interwoven, BSCW, and DreamWeaver), it is not surprising that all of these tools incorporate basic SCM techniques to manage the evolution of web sites. While using a different data model, the basic principles and techniques that they use are still the same and were adopted straight from existing SCM systems.

WebDAV and DeltaV provide another success story in the realm of the web. WebDAV is a protocol that extends HTTP with distributed authoring facilities and DeltaV is a proposed extension that adds versioning capabilities [Whi99][Web99]. SCM research has had a definite impact in this arena: early incarnations of the interface functions in the protocol of WebDAV were partially inspired by NUCM

[Hoe96] and DeltaV is actively being developed under the partial leadership of SCM vendors.Clearly,the field is having its impact and the two standards incorporate many of the good practices that have been researched and developed over time.

3.2Some Failed Transitions

SCM research also has produced a number of ideas that have not been able to succeed in making the transition to industrial practice. The root cause of these failures lie in the level of complexity required to master the ideas, or the level of effort required by customers to use the feature, or that the typical customer does not feel an actual need for the feature, or because vendors think the feature is outside the field of SCM.

Industry tends to ignore such ideas, until customer practices meet the need for the feature, and until a complex idea can be transformed in a way that hides most of the actual complexity. None of these conditions are granted, nor can they be easily forecast.

3.2.1Smart recompilation

It was Tichy that coined the term “smart recompilation” in 1986 [Tic86]. His work was shortly thereafter followed by a number of other approaches [Sch88, App93], a survey of which is presented by Adams et al. [Ada94]. Unfortunately for the domain of SCM, the syntactic analysis needed to perform smart recompilation often takes more time than the time saved by avoiding unnecessary recompilations. Especially with today’s hardware, advanced recompilation algorithms are simply not needed—in the general case, compilation “as is” is fast enough.

Nonetheless, smart recompilation cannot be labeled a failure altogether.The idea is appealing and has started to be incorporated into language-dependent programming environments. In these environments, syntactic information is available“for free”.The Ada and Chill programming environments, for example, were among the first to adopt smart recompilation techniques [Bret93]. Now, most modern programming environments,including the popular Visual Studio, rely on these techniques. Smart recompilation, thus, is an area of research that has found its way into industry in

a domain other than SCM.

3.2.2Version models, data models, system models Extending and generalizing versioning capabilities clearly has been a core topic of SCM research since its early beginnings.Much work has been dedicated to advanced versioning models and associated selection techniques, including interesting formalizations of these approaches [Bie95, Nav96, Zel97]. From a researchers point of view, these approaches improve over the current state of the art by offering new or alternative modeling capabilities. From a practitioner point of view,however,some of these approaches are overkill:they provide more power than actually needed, at a cost of extra complexity and reduced efficiency.

Data and system models used by today’s commercial SCM systems only capture the files and directories that represent a software product,the compile-time dependencies,and a small set of attributes. Logically, researchers hypothesized that a more powerful data and system model would allow the SCM system to provide better support for precisely capturing the evolution of the artifacts it manages.This simple idea fostered a number of contributions of dedicated data and system models for SCM,models in which everything is versioned, including files, attributes, general relationships, configurations, and workspaces [Est85, Dit87, Bou88, Tho89, Gul91, Est94].

Commercial SCM systems improved their data model, but are still far from these research attempts for two reasons. First, no commercial database exists that can support these kinds of advanced models, and building such a database, either from scratch or on top of a commercial relational database, is a daunting undertaking. Second, the models are simply too complicated or inefficient. We have experience of vendors who provided users with versioned relationships, only to abandon these efforts: managing such relationships was too cumbersome for the users. Unless research invents automated techniques that support users in updating and maintaining advanced data and system models,they will never be put into practice.

3.2.3Generic Platform

SCM is meant to provide a language-and application-independent platform that can handle any kind of artifact. The focus of SCM research on managing source code, however,has lead to a platform that tends to be more specific than desired.Limitations in the data and system model,even though necessary from the perspective described above,make it difficult to manage complex structures: too much additional manual work is needed to capture the extra information that is necessary in,for example,supporting product data management(PDM) [Est98].Similarly,existing SCM tools cannot effectively support web site management or document management. Even an integration with existing tools in those domains that already include some of the basic SCM services (e.g., data and version management, process management, rebuilding) has proven to be difficult.

There is hope, however. Since software is an increasing part of almost any complex manufactured object,the need to consistently and conjointly manage software and hardware may force SCM researchers to reconsider the situation, and to start research into advanced data modeling facilities. Some research has started to look into this direction, but much additional research will be required to reach a satisfactory result.

3.3What is Next?

SCM research has addressed many different topics and it is fair to say that by now the basic principles, concepts, and techniques are set. Consensus also seems to be emerging for more advanced functionality, evidenced by the fact that most high-end CM systems are closing in on satisfying the spectrum of functionality laid out by Dart [Dart91] [Est00]. Nonetheless, many research issues remain to be addressed. In particular,the field as a whole is now sorting out its relationship to,and place within,the overall picture of software development.

This research is breaking two fundamental assumptions that underlie current SCM systems: (a) the focus on managing the implementation of software and (b) the basic philosophy of SCM being language and application independent. Breaking the first assumption requires careful management of artifacts produced earlier in the life cycle(e.g., requirements,design)and later in the life cycle(e.g., deployment,dynamic evolution and reconfiguration). Breaking the second assumption involves the integration of SCM functionality into particular environments(for example,integrated development environments)and representations (for example, product line architectures).

At the forefront seem to be the issues of unifying SCM and PDM, a better management of component-based software development, and a better understanding of the relationship between SCM system models and software architecture [Hoe98, Hoe98b]. It is clear why these issues are currently being addressed: SCM no longer is a stand-alone discipline. To survive, it needs to stay abreast of new developments, trends,and technologies.Of course,in no way can we predict the future of SCM. It may be that sorting out some of these issues turns out to be trivial, not relevant, or far too difficult for practical application. However, this is the way of research and providing an answer to the questions that are raised is what is important, even if those answers close, rather than open, doors.

Finally,although conferences,workshops,and personal interactions undoubtedly play a tremendous role in research transition,it is impossible to quantify their impact. Continual attendance of the SCM workshop series by chief architects of some of the most influential SCM systems, the transition of academic researchers to industry and vice-versa, and anecdotal evidence brought forth in our personal interviews,indicate that these kinds of interactions are absolutely necessary for any kind of research impact to occur. Conference and workshop venues create a community of researchers and practitioners,raise new issues to be addressed, set high-level expectations for new directions, and,in the case of SCM-1,have set the standard terminology still in use today [Win88].

4CONCLUSION

A report like this can (and did) generate a lot of dissent. Indeed, writing this report made obvious the difficulties in reaching agreement between researchers and vendors.A caricature of our starting point was, from researchers,to claim the ownership of almost all ideas,dismissing tool realization as“engineering common sense”,and from vendors to claim they (re)invented everything they needed, dismissing concepts,ideas,architectures as“engineering common sense”. From the intensive discussion in our group emerged a much more balanced perspective.

We came to the conclusion that both camps require engineering creativity, and that tracking down where ideas came from and what was influential is virtually impossible. We also rapidly agreed that research have been fundamental in the success of SCM; and that industrial research, both from corporate research labs and vendors have had a definitive influence. Thus, we have tried to document the flow of ideas, based on evidence such as publication and implementations, an attempt that we hope comes as close as possible to reality.

SCM is arguably one of the most successful software engineering disciplines,and it is difficult to imagine this kind of success would have prevailed without research fueling continuous innovations.This report demonstrates that the impact of this research,whether industrial or academic,is undeniable—many of the fundamental techniques underlying current SCM systems were first published in one form or another.

Like any other field, SCM research has had its successes and failures. Some ideas are universally adopted,others have had limited impact,and yet others never saw fruition. Timing has been critical: whereas most contributions were rooted in practical,day-to-day problems, others were too early for their time and not practically relevant for the problems at hand. Nonetheless, the actual evolution of the field does let us think that some those ideas will eventually be useful. As demonstrated by the remarkable time delay in the adoption of change sets, it is often market readiness that determines success: over time,however, most ideas have trickled through.

SCM research is still alive.The basic concepts and technologies have been settled, but much work remains to be done. In particular, the field as a whole is now sorting out its relationship to other domains,such as product data management,component-based software engineering,and software architecture. We look forward to the advances that will come from this research, and are proud to be a part of a field with such a rich legacy as SCM.

The international research community has contributed many ideas to the field of SCM but more importantly,it has provided a forum for the publication and discussion of ideas. The ICSE and SCM series of conferences enabled people from academia and industry to interact and exchange ideas. The set of important ideas may be changing but the need for an active research community remains essential. Acknowledgements: We would like to thank all in the field of SCM, whether researcher, industrial vendor, or customer. Knowingly or unknowingly,most if not all of you have advanced our field to where it is now—a standard and accepted part of any serious software development project. This work was supported in part by the U.S.National Science Foundation under grants CCR-00-10041 and

CCR-01-37766, and by IEE

REFERENCES 31. [ADC88] Aide-De-Camp: A software Management

and Maintenance System, National Software Quality Assurance Conference, the National Institute for,

Software Porductivity, Washington DC, April 1988.

32.

33.[Ada94] R. Adams, W. Tichy, A. Weiner. The cost of

selective recompilation and environment processing..

ACM Trans. Soft. Engineering Methodology. 3, 1, Jan 1994, P 3-28.

34.[All95] L. Allen, G. Fernandez, K. Kane, D. Leblang,

D. Minard, and J. Posner. ClearCase MultiSite:

Supporting Geographically-Distributed Software

Development. ICSE SCM-4 and SCM-5, Seattle USA,

May 1995.

35.[App93] Twentieth ACM Symp. on Principles of

Programming Languages, Charleston, SC, ACM Press, page 439-450, January 1993.

36.[Atkin98] D. Atkin. Version Sensitive Editing : Change

History as a Programming Tool. SCM-8, 1998,

Brussels, LNCS 1439.

37.[Bel87] N. Belkhatir and J. Estublier. “Software

management constraints and action triggering in Adele program database.” In 1st European Software

Engineering Conf., pages 47–57, Strasbourg, France,

Sept. 1987.

38.[Bel91] N. Belkhatir, J. Estublier, and W. L. Melo.

“Software process modeling in Adele: The ISPW-7

example.” In I. Thomas, editor, Proc. of the 7th Int’l

Software Process Workshop, San Francisco, CA,

October 16–18 1991. IEEE Computer Society Press. 39.[Bie95] N. Bielikova, P. Navrat. Modelling software

systems in configuration management. In Applied

Mathematics and Computer Sciences. 5(4) : 751-764,

1995.

40.[Bret93] B. Bret. Smart recompilation: what is it?, its

benefits for the user, and its implementation in the

DEC Ada compilation system. Conference proceedings on TRI-Ada '93 September 18 - 23, 1993, Seattle, WA USA

41.[Bou88] Gerard Boudier, Ferdinando Gallo, Regis

Minot, and Ian Thomas. An Overview of PCTE and

PCTE+. In Proc. ACM/SIGSOFT Software

Engineering Symposium on Practical Software

Development Environments, Boston, 28-20 Nov. 1988, pp. 248-257.

42.[Buff95] J. Buffenbarger. Syntactic Software Mergers.

SCM-5, Seattle USA, May 1995, LNCS 1005.

43.[Clem95] G. Clemm. The Odin System. SCM-5, Seattle

June 1995, pp241-263. Springer Verlag LNCS 1005. 44.[Con97] R. Conradi and B. Westfechtel. “Toward an

Uniform Model for Software Configuration

Management”. In SCM-7 Workshop.pages 1-17.

Springer LNCS 1235. May 1997.

45.[Con98] R. Conradi, A. Fuggetta, M.L. Jaccheri. Six

theses on Software Process Research. EWSPT 98.

Weybridge, UK, September 1998.

46.[Dar91] Susan Dart. Spectrum of Functionality in

Configuration Management Systems. CMU/SEI-90-TR-

11 ESD-90-TR-212.

https://www.doczj.com/doc/ba13513982.html,/legacy/scm/tech_rep/TR11_90.

47.[Dar97] Darcy Wiborg Weber . Change Sets Versus

Change Packages: Comparing Implementations of

Change-Based SCM. Proc. 7th International Workshop on Software Configuration Management (SCM-7),

Boston, USA, Springer Verlag LNCS 1235, 18-19 May 1997.

48.

49.

50.

51.

52.

53.

54.

55.

56.

57.[Dit87] Klaus R. Dittrich, W. Gotthard, and P. C.

Lockemann. DAMOKLES - The Database System for

the UNIBASE Software Engineering Environment.

Database Engineering, 10(1), March 1987.

58.[Din98] E. Di Nitto and A. Fuggetta (Eds). Process

Technology. Kluwer Academic Publishers, Boston..

January 1998.

59.[Est84] Jacky Estublier, S. Ghoul, and S. Krakowiak.

Preliminary Experience with a Configuration Control

System for Modular Programs. In Peter B. Henderson, editor. Proc. 1st ACM SIGSOFTSIGPLAN Software

Engineering Symposium on Practical Software

Development Environments (Pittsburgh), 197 p., April 1984. ACM SIGPLAN Notices 19(5)149-156, May

1984.

60. [Est94] Jacky Estublier and Ruby Casallas. The Adele

Software Configuration Manager. In [Tic94], pp. 2-11.

1994. http://www-

adele.imag.fr/Les.Publications/BD/adele1994est.html 61.[Est97] J. Estublier and S. Dami and M. Amiour. High

Level Process Modeling for SCM Systems. SCM 7,

LNCS 1235. pages 81--98, May, Boston, USA, 1997 62.[Est98] J. Estublier and J.M. Favre and P. Morat.

Toward PDM / SCM: integration?. In proc SCM8,

Bruxelles, Belgium, July 1998. Springer Verlag, LNCS 1439, pp75-95.

63.[Est00] Jacky Estublier. Software Configuration

Management: A Road Map. In Anthony Finkelstein,

editor, The Future of Software Engineering

(supplementary Proc. for 22th Int'l Conf. on Software

Engineering), Limerick, Ireland, June 2000, ACM

Press, Order No. 592000-1, pp. 279-289.

64.[Fel79] Stuart I. Feldman. Make -- a Program for

Maintaining Computer Programs. Software -- Practice and Experience, 9(3):255-265, March 1979.

65. [Fin94] A. Finkelstein, J. Kramer, B. Nuseibeh.

Software Process Modeling and Technology. John

Wiley, Advanced Software Development Serie. ISBN 0 471 95206 0. 1994.

66.[Fraser87] C. Fraser, E. Myer, An editor for revision

control. ACM Transactions on Programming

Languages and Systems. 9(2) April 1987.

67.[Gul91] Bj?rn Gulla, Even-André Karlsson, and

Dashing Yeh. Change-Oriented Version Descriptions

in EPOS. Software Engineering Journal, 6(6):378-386, November 1991.

68. [Hoe96] A. Van der Hoek, D. Heimbigner, and A.L.

Wolf. A Generic, Peer-to-Peer Repository for

Distributed Configuration Management. Proceedings of the 18th International Conference on Software

Engineering, Berlin, Germany, March 1996.

69.[Hoe98] André van der Hoek, Dennis Heimbigner,

Alexander L. Wolf. Software Architecture,

Configuration Management, and Configurable

Distributed Systems: A Ménage a Trois. Tech Report

CU-CS-849-98. U. Colorado.

70.[Hoe98b] André van der Hoek, Dennis Heimbigner,

Alexander L. Wolf. System Modeling Resurrected.

System Configuration Management (SCM-8), Brussels, Belgium 1998, Springer-Verlag LNCS 1439.

71.[Hor89] S. Horwith, J. Prins, T. Reps. Integrating non-

interfering versions of programs. ACM Transaction on Programming Languages and Systems. 11(3) July 1989.

72.[Hou81] H. Hough. Some Thoughts on Source Update

as a Software Maintenance Tool. IEEE Conference on

Trends and Applications, CH1631-1/81/0000/0163 May 1981.

73.[Hunt76] J. Hunt, M. McIllroy. An efficient algorithm

for differential file comparison. Technical Report 41,

Bell Labs, June 1976.

74. [Hunt96] J. Hunt, K. Vo, W. Tichy. An Empirical

Study of Delta Mechanisms. SCM6, Berlin, March

1986. LNCS1167.

75.[Korn95] D. Korn, K. Vo. Vdelta: Efficient data

differencing and compression.

76.[Knuth84] D. Knuth, Literate Programming, Computer

Journal, pages 97-111, 19984.

77.[Kruskal84] V. Kruskal. Managing Multi-Version

programs with an editor. IBM Journal of Research and Development. 28(1), January 1984.

78.[Lam91] Charles Lamb, Gordon Landis, Jack

Orenstein, and Dan Weinreb. The ObjectStore

Database System. Comm. of the ACM, 34(10):50-63,

October 1991.

79.[Lie89] Anund Lie, Tor M. Didriksen, Reidar Conradi,

Even-André Karlsson, Svein O. Hallsteinsen, and Per

Holager. C hange Oriented Versioning.

In Carlo Ghezzi and John A. McDermid, editors. Proc.

2nd European Software Engineering Conference

(Coventry, UK), Springer Verlag LNCS 387, 496 p.,

September 1989, pp. 191-202.

80.[McC00] McCabe/True Software. Documentation 2000.

https://www.doczj.com/doc/ba13513982.html,/products.htm.

81.[Meyers86] E. Meyers. An O(ND) Difference

algorithm and its variations. Algorithmica, 1(2):251-

266, 1986.

82.[Mic96] Josephine Micallef and Geoffrey M. Clemm:

The Asgard System: Activity-Based Configuration

Management, In Ian Sommerville, editor, Proc.

Software Configuration Management, ICSE’96 SCM-6 Workshop, Berlin, March 1996, Springer Verlag LNCS 1167, pp. 175-186.

83.[Nav96] P. Navrat, N. Bielikova. Knowledge controlled

version selection in software configuration

management. Software Concepts and Tools. 17:40-48, 1996.

84.[Pro98] Promoter group. Software Process: Principles,

Methodology, Technology. Springer Verlag, LNCS

1500. 1998.

85.[Rei91] Chris Reichenberger. Delta storage for

arbitrary non-text files. In Proceedings of the 3rd

International Workshop on Software Configuration

Management, Trondheim, Norway, 12-14 June 1991

(June 1991), ACM, pp. 144--152.

86.[Reps88] T. Reps, S. Horwitz, J. Prins. Support for

Integrating program variants in an environment for

programming in the large. Proc. Int. Workshop on

Softwae Version and Configuration Control. Grassau,

Germany 1988.

87.[Roc75] Mark J. Rochkind. The Source Code Control

System. IEEE Trans. on Software Engineering, SE-1

(4):364-370, 1975.

88.[Sar88] N. Sarnak, B. Bernstein, and V. Kruskal.

Creation and Maintenance of Multiple Versions. In

[Win88], pp. 264-275, 1988.

89.[Sch88] Robert W. Schwanke and Gail E. Kaiser.

Smarter Recompilation. . ACM Transactions on

Programming Languages and Systems (TOPLAS)

Pages: 627 - 632 Periodical-Issue-Article 1988

ISSN:0164-0925

90.[Tic82] Walter F. Tichy. Design Implementation and

Evaluation of a Revision Control System. In Proc. Sixth International Conference on Software Engineering.

1982.

91.[Tic85] Walter F. Tichy. RCS -- A System for Version

Control. Software -- Practice and Experience, 15(7):

637-654, 1985.

92.[Tic86] W. Tichy. Smart recompilation. ACM

Transactions on Programming Languages and Systems, 8(3):273--291, 1986

93.[Tho89] Ian Thomas. PCTE interfaces: Supporting

tools in software-engineering environments. IEEE

Software, 6(6):15-23, November 1989.

94.[Wes01] Bernhard Westfechtel, Bj?rn P. Munch, and

Reidar Conradi. A Layered Architecture for Software

Configuration Management. IEEE Trans. Software

Engineering, to appear in 2001, 24 p.

95.[Win88] Jürgen F. H. Winkler, editor. Proc. ACM

Workshop on Software Version and Configuration

Control, Grassau, FRG, Berichte des German Chapter

of the ACM, Band 30, 466 p., Stuttgart, January 1988.

B. G. Teubner Verlag.

96.[Whi91] David Whitgift. Methods and Tools for

Software Configuration Management. John Wiley and Sons, England, 1991, 238 p.

97.[Whi99] Jim Whitehead. Goals for a Configuration

Management Network protocol.In SCM9, LNCS 1675, pages 186-204, Toulouse September 1999.

98.[Web99] WebDav. HTTP extentions for distributed

Authoring. RFC 2518.

https://www.doczj.com/doc/ba13513982.html,/rfc/rfc2518.htm.

February 1999.

99.[Zel97] Andreas Zeller and Gregor Snelting. Unified

Versioning through Feature Logic, ACM Transactions on Software Engineering and Methodology, 6(4):397-440, Oct. 1997.

100.

on the contrary的解析

On the contrary Onthecontrary, I have not yet begun. 正好相反,我还没有开始。 https://www.doczj.com/doc/ba13513982.html, Onthecontrary, the instructions have been damaged. 反之,则说明已经损坏。 https://www.doczj.com/doc/ba13513982.html, Onthecontrary, I understand all too well. 恰恰相反,我很清楚 https://www.doczj.com/doc/ba13513982.html, Onthecontrary, I think this is good. ⑴我反而觉得这是好事。 https://www.doczj.com/doc/ba13513982.html, Onthecontrary, I have tons of things to do 正相反,我有一大堆事要做 Provided by jukuu Is likely onthecontrary I in works for you 反倒像是我在为你们工作 https://www.doczj.com/doc/ba13513982.html, Onthecontrary, or to buy the first good. 反之还是先买的好。 https://www.doczj.com/doc/ba13513982.html, Onthecontrary, it is typically american. 相反,这正是典型的美国风格。 222.35.143.196 Onthecontrary, very exciting.

恰恰相反,非常刺激。 https://www.doczj.com/doc/ba13513982.html, But onthecontrary, lazy. 却恰恰相反,懒洋洋的。 https://www.doczj.com/doc/ba13513982.html, Onthecontrary, I hate it! 恰恰相反,我不喜欢! https://www.doczj.com/doc/ba13513982.html, Onthecontrary, the club gathers every month. 相反,俱乐部每个月都聚会。 https://www.doczj.com/doc/ba13513982.html, Onthecontrary, I'm going to work harder. 我反而将更努力工作。 https://www.doczj.com/doc/ba13513982.html, Onthecontrary, his demeanor is easy and nonchalant. 相反,他的举止轻松而无动于衷。 https://www.doczj.com/doc/ba13513982.html, Too much nutrition onthecontrary can not be absorbed through skin. 太过营养了反而皮肤吸收不了. https://www.doczj.com/doc/ba13513982.html, Onthecontrary, I would wish for it no other way. 正相反,我正希望这样 Provided by jukuu Onthecontrary most likely pathological. 反之很有可能是病理性的。 https://www.doczj.com/doc/ba13513982.html, Onthecontrary, it will appear clumsy. 反之,就会显得粗笨。 https://www.doczj.com/doc/ba13513982.html,

英语造句

一般过去式 时间状语:yesterday just now (刚刚) the day before three days ag0 a week ago in 1880 last month last year 1. I was in the classroom yesterday. I was not in the classroom yesterday. Were you in the classroom yesterday. 2. They went to see the film the day before. Did they go to see the film the day before. They did go to see the film the day before. 3. The man beat his wife yesterday. The man didn’t beat his wife yesterday. 4. I was a high student three years ago. 5. She became a teacher in 2009. 6. They began to study english a week ago 7. My mother brought a book from Canada last year. 8.My parents build a house to me four years ago . 9.He was husband ago. She was a cooker last mouth. My father was in the Xinjiang half a year ago. 10.My grandfather was a famer six years ago. 11.He burned in 1991

学生造句--Unit 1

●I wonder if it’s because I have been at school for so long that I’ve grown so crazy about going home. ●It is because she wasn’t well that she fell far behind her classmates this semester. ●I can well remember that there was a time when I took it for granted that friends should do everything for me. ●In order to make a difference to society, they spent almost all of their spare time in raising money for the charity. ●It’s no pleasure eating at school any longer because the food is not so tasty as that at home. ●He happened to be hit by a new idea when he was walking along the riverbank. ●I wonder if I can cope with stressful situations in life independently. ●It is because I take things for granted that I make so many mistakes. ●The treasure is so rare that a growing number of people are looking for it. ●He picks on the weak mn in order that we may pay attention to him. ●It’s no pleasure being disturbed whena I settle down to my work. ●I can well remember that when I was a child, I always made mistakes on purpose for fun. ●It’s no pleasure accompany her hanging out on the street on such a rainy day. ●I can well remember that there was a time when I threw my whole self into study in order to live up to my parents’ expectation and enter my dream university. ●I can well remember that she stuck with me all the time and helped me regain my confidence during my tough time five years ago. ●It is because he makes it a priority to study that he always gets good grades. ●I wonder if we should abandon this idea because there is no point in doing so. ●I wonder if it was because I ate ice-cream that I had an upset student this morning. ●It is because she refused to die that she became incredibly successful. ●She is so considerate that many of us turn to her for comfort. ●I can well remember that once I underestimated the power of words and hurt my friend. ●He works extremely hard in order to live up to his expectations. ●I happened to see a butterfly settle on the beautiful flower. ●It’s no pleasure making fun of others. ●It was the first time in the new semester that I had burned the midnight oil to study. ●It’s no pleasure taking everything into account when you long to have the relaxing life. ●I wonder if it was because he abandoned himself to despair that he was killed in a car accident when he was driving. ●Jack is always picking on younger children in order to show off his power. ●It is because he always burns the midnight oil that he oversleeps sometimes. ●I happened to find some pictures to do with my grandfather when I was going through the drawer. ●It was because I didn’t dare look at the failure face to face that I failed again. ●I tell my friend that failure is not scary in order that she can rebound from failure. ●I throw my whole self to study in order to pass the final exam. ●It was the first time that I had made a speech in public and enjoyed the thunder of applause. ●Alice happened to be on the street when a UFO landed right in front of her. ●It was the first time that I had kept myself open and talked sincerely with my parents. ●It was a beautiful sunny day. The weather was so comfortable that I settled myself into the

英语句子结构和造句

高中英语~词性~句子成分~语法构成 第一章节:英语句子中的词性 1.名词:n. 名词是指事物的名称,在句子中主要作主语.宾语.表语.同位语。 2.形容词;adj. 形容词是指对名词进行修饰~限定~描述~的成份,主要作定语.表语.。形容词在汉语中是(的).其标志是: ous. Al .ful .ive。. 3.动词:vt. 动词是指主语发出的一个动作,一般用来作谓语。 4.副词:adv. 副词是指表示动作发生的地点. 时间. 条件. 方式. 原因. 目的. 结果.伴随让步. 一般用来修饰动词. 形容词。副词在汉语中是(地).其标志是:ly。 5.代词:pron. 代词是指用来代替名词的词,名词所能担任的作用,代词也同样.代词主要用来作主语. 宾语. 表语. 同位语。 6.介词:prep.介词是指表示动词和名次关系的词,例如:in on at of about with for to。其特征:

介词后的动词要用—ing形式。介词加代词时,代词要用宾格。例如:give up her(him)这种形式是正确的,而give up she(he)这种形式是错误的。 7.冠词:冠词是指修饰名词,表名词泛指或特指。冠词有a an the 。 8.叹词:叹词表示一种语气。例如:OH. Ya 等 9.连词:连词是指连接两个并列的成分,这两个并列的成分可以是两个词也可以是两个句子。例如:and but or so 。 10.数词:数词是指表示数量关系词,一般分为基数词和序数词 第二章节:英语句子成分 主语:动作的发出者,一般放在动词前或句首。由名词. 代词. 数词. 不定时. 动名词. 或从句充当。 谓语:指主语发出来的动作,只能由动词充当,一般紧跟在主语后面。 宾语:指动作的承受着,一般由代词. 名词. 数词. 不定时. 动名词. 或从句充当. 介词后面的成分也叫介词宾语。 定语:只对名词起限定修饰的成分,一般由形容

六级单词解析造句记忆MNO

M A: Has the case been closed yet? B: No, the magistrate still needs to decide the outcome. magistrate n.地方行政官,地方法官,治安官 A: I am unable to read the small print in the book. B: It seems you need to magnify it. magnify vt.1.放大,扩大;2.夸大,夸张 A: That was a terrible storm. B: Indeed, but it is too early to determine the magnitude of the damage. magnitude n.1.重要性,重大;2.巨大,广大 A: A young fair maiden like you shouldn’t be single. B: That is because I am a young fair independent maiden. maiden n.少女,年轻姑娘,未婚女子 a.首次的,初次的 A: You look majestic sitting on that high chair. B: Yes, I am pretending to be the king! majestic a.雄伟的,壮丽的,庄严的,高贵的 A: Please cook me dinner now. B: Yes, your majesty, I’m at your service. majesty n.1.[M-]陛下(对帝王,王后的尊称);2.雄伟,壮丽,庄严 A: Doctor, I traveled to Africa and I think I caught malaria. B: Did you take any medicine as a precaution? malaria n.疟疾 A: I hate you! B: Why are you so full of malice? malice n.恶意,怨恨 A: I’m afraid that the test results have come back and your lump is malignant. B: That means it’s serious, doesn’t it, doctor? malignant a.1.恶性的,致命的;2.恶意的,恶毒的 A: I’m going shopping in the mall this afternoon, want to join me? B: No, thanks, I have plans already. mall n.(由许多商店组成的)购物中心 A: That child looks very unhealthy. B: Yes, he does not have enough to eat. He is suffering from malnutrition.

base on的例句

意见应以事实为根据. 3 来自辞典例句 192. The bombers swooped ( down ) onthe air base. 轰炸机 突袭 空军基地. 来自辞典例句 193. He mounted their engines on a rubber base. 他把他们的发动机装在一个橡胶垫座上. 14 来自辞典例句 194. The column stands on a narrow base. 柱子竖立在狭窄的地基上. 14 来自辞典例句 195. When one stretched it, it looked like grey flakes on the carvas base. 你要是把它摊直, 看上去就象好一些灰色的粉片落在帆布底子上. 18 来自辞典例句 196. Economic growth and human well - being depend on the natural resource base that supports all living systems. 经济增长和人类的福利依赖于支持所有生命系统的自然资源. 12 1 来自辞典例句 197. The base was just a smudge onthe untouched hundred - mile coast of Manila Bay. 那基地只是马尼拉湾一百英里长安然无恙的海岸线上一个硝烟滚滚的污点. 6 来自辞典例句 198. You can't base an operation on the presumption that miracles are going to happen. 你不能把行动计划建筑在可能出现奇迹的假想基础上.

英语造句大全

英语造句大全English sentence 在句子中,更好的记忆单词! 1、(1)、able adj. 能 句子:We are able to live under the sea in the future. (2)、ability n. 能力 句子:Most school care for children of different abilities. (3)、enable v. 使。。。能句子:This pass enables me to travel half-price on trains. 2、(1)、accurate adj. 精确的句子:We must have the accurate calculation. (2)、accurately adv. 精确地 句子:His calculation is accurately. 3、(1)、act v. 扮演 句子:He act the interesting character. (2)、actor n. 演员 句子:He was a famous actor. (3)、actress n. 女演员 句子:She was a famous actress. (4)、active adj. 积极的 句子:He is an active boy. 4、add v. 加 句子:He adds a little sugar in the milk. 5、advantage n. 优势 句子:His advantage is fight. 6、age 年龄n. 句子:His age is 15. 7、amusing 娱人的adj. 句子:This story is amusing. 8、angry 生气的adj. 句子:He is angry. 9、America 美国n.

(完整版)主谓造句

主语+谓语 1. 理解主谓结构 1) The students arrived. The students arrived at the park. 2) They are listening. They are listening to the music. 3) The disaster happened. 2.体会状语的位置 1) Tom always works hard. 2) Sometimes I go to the park at weekends.. 3) The girl cries very often. 4) We seldom come here. The disaster happened to the poor family. 3. 多个状语的排列次序 1) He works. 2) He works hard. 3) He always works hard. 4) He always works hard in the company. 5) He always works hard in the company recently. 6) He always works hard in the company recently because he wants to get promoted. 4. 写作常用不及物动词 1. ache My head aches. I’m aching all over. 2. agree agree with sb. about sth. agree to do sth. 3. apologize to sb. for sth. 4. appear (at the meeting, on the screen) 5. arrive at / in 6. belong to 7. chat with sb. about sth. 8. come (to …) 9. cry 10. dance 11. depend on /upon 12. die 13. fall 14. go to … 15. graduate from 16. … happen 17. laugh 18. listen to... 19. live 20. rise 21. sit 22. smile 23. swim 24. stay (at home / in a hotel) 25. work 26. wait for 汉译英: 1.昨天我去了电影院。 2.我能用英语跟外国人自由交谈。 3.晚上7点我们到达了机场。 4.暑假就要到了。 5.现在很多老人独自居住。 6.老师同意了。 7.刚才发生了一场车祸。 8.课上我们应该认真听讲。9. 我们的态度很重要。 10. 能否成功取决于你的态度。 11. 能取得多大进步取决于你付出多少努力。 12. 这个木桶能盛多少水取决于最短的一块板子的长度。

初中英语造句

【it's time to和it's time for】 ——————这其实是一个句型,只不过后面要跟不同的东西. ——————It's time to跟的是不定式(to do).也就是说,要跟一个动词,意思是“到做某事的时候了”.如: It's time to go home. It's time to tell him the truth. ——————It's time for 跟的是名词.也就是说,不能跟动词.如: It's time for lunch.(没必要说It's time to have lunch) It's time for class.(没必要说It's time to begin the class.) They can't wait to see you Please ask liming to study tonight. Please ask liming not to play computer games tonight. Don’t make/let me to smoke I can hear/see you dance at the stage You had better go to bed early. You had better not watch tv It’s better to go to bed early It’s best to run in the morning I am enjoy running with music. With 表伴随听音乐 I already finish studying You should keep working. You should keep on studying English Keep calm and carry on 保持冷静继续前行二战开始前英国皇家政府制造的海报名字 I have to go on studying I feel like I am flying I have to stop playing computer games and stop to go home now I forget/remember to finish my homework. I forget/remember cleaning the classroom We keep/percent/stop him from eating more chips I prefer orange to apple I prefer to walk rather than run I used to sing when I was young What’s wrong with you There have nothing to do with you I am so busy studying You are too young to na?ve I am so tired that I have to go to bed early

The Kite Runner-美句摘抄及造句

《The Kite Runner》追风筝的人--------------------------------美句摘抄 1.I can still see Hassan up on that tree, sunlight flickering through the leaves on his almost perfectly round face, a face like a Chinese doll chiseled from hardwood: his flat, broad nose and slanting, narrow eyes like bamboo leaves, eyes that looked, depending on the light, gold, green even sapphire 翻译:我依然能记得哈桑坐在树上的样子,阳光穿过叶子,照着他那浑圆的脸庞。他的脸很像木头刻成的中国娃娃,鼻子大而扁平,双眼眯斜如同竹叶,在不同光线下会显现出金色、绿色,甚至是宝石蓝。 E.g.: A shadow of disquiet flickering over his face. 2.Never told that the mirror, like shooting walnuts at the neighbor's dog, was always my idea. 翻译:从来不提镜子、用胡桃射狗其实都是我的鬼主意。E.g.:His secret died with him, for he never told anyone. 3.We would sit across from each other on a pair of high

翻译加造句

一、翻译 1. The idea of consciously seeking out a special title was new to me., but not without appeal. 让我自己挑选自己最喜欢的书籍这个有意思的想法真的对我具有吸引力。 2.I was plunged into the aching tragedy of the Holocaust, the extraordinary clash of good, represented by the one decent man, and evil. 我陷入到大屠杀悲剧的痛苦之中,一个体面的人所代表的善与恶的猛烈冲击之中。 3.I was astonished by the the great power a novel could contain. I lacked the vocabulary to translate my feelings into words. 我被这部小说所包含的巨大能量感到震惊。我无法用语言来表达我的感情(心情)。 4,make sth. long to short长话短说 5.I learned that summer that reading was not the innocent(简单的) pastime(消遣) I have assumed it to be., not a breezy, instantly forgettable escape in the hammock(吊床),( though I’ ve enjoyed many of those too ). I discovered that a book, if it arrives at the right moment, in the proper season, will change the course of all that follows. 那年夏天,我懂得了读书不是我认为的简单的娱乐消遣,也不只是躺在吊床上,一阵风吹过就忘记的消遣。我发现如果在适宜的时间、合适的季节读一本书的话,他将能改变一个人以后的人生道路。 二、词组造句 1. on purpose 特意,故意 This is especially true here, and it was ~. (这一点在这里尤其准确,并且他是故意的) 2.think up 虚构,编造,想出 She has thought up a good idea. 她想出了一个好的主意。 His story was thought up. 他的故事是编出来的。 3. in the meantime 与此同时 助记:in advance 事前in the meantime 与此同时in place 适当地... In the meantime, what can you do? 在这期间您能做什么呢? In the meantime, we may not know how it works, but we know that it works. 在此期间,我们不知道它是如何工作的,但我们知道,它的确在发挥作用。 4.as though 好像,仿佛 It sounds as though you enjoyed Great wall. 这听起来好像你喜欢长城。 5. plunge into 使陷入 He plunged the room into darkness by switching off the light. 他把灯一关,房

改写句子练习2标准答案

The effective sentences:(improve the sentences!) 1.She hopes to spend this holiday either in Shanghai or in Suzhou. 2.Showing/to show sincerity and to keep/keeping promises are the basic requirements of a real friend. 3.I want to know the space of this house and when it was built. I want to know how big this house is and when it was built. I want to know the space of this house and the building time of the house. 4.In the past ten years,Mr.Smith has been a waiter,a tour guide,and taught English. In the past ten years,Mr.Smith has been a waiter,a tour guide,and an English teacher. 5.They are sweeping the floor wearing masks. They are sweeping the floor by wearing masks. wearing masks,They are sweeping the floor. 6.the drivers are told to drive carefully on the radio. the drivers are told on the radio to drive carefully 7.I almost spent two hours on this exercises. I spent almost two hours on this exercises. 8.Checking carefully,a serious mistake was found in the design. Checking carefully,I found a serious mistake in the design.

用以下短语造句

M1 U1 一. 把下列短语填入每个句子的空白处(注意所填短语的形式变化): add up (to) be concerned about go through set down a series of on purpose in order to according to get along with fall in love (with) join in have got to hide away face to face 1 We’ve chatted online for some time but we have never met ___________. 2 It is nearly 11 o’clock yet he is not back. His mother ____________ him. 3 The Lius ___________ hard times before liberation. 4 ____________ get a good mark I worked very hard before the exam. 5 I think the window was broken ___________ by someone. 6 You should ___________ the language points on the blackboard. They are useful. 7 They met at Tom’s party and later on ____________ with each other. 8 You can find ____________ English reading materials in the school library. 9 I am easy to be with and _____________my classmates pretty well. 10 They __________ in a small village so that they might not be found. 11 Which of the following statements is not right ____________ the above passage? 12 It’s getting dark. I ___________ be off now. 13 More than 1,000 workers ___________ the general strike last week. 14 All her earnings _____________ about 3,000 yuan per month. 二.用以下短语造句: 1.go through 2. no longer/ not… any longer 3. on purpose 4. calm… down 5. happen to 6. set down 7. wonder if 三. 翻译: 1.曾经有段时间,我对学习丧失了兴趣。(there was a time when…) 2. 这是我第一次和她交流。(It is/was the first time that …注意时态) 3.他昨天公园里遇到的是他的一个老朋友。(强调句) 4. 他是在知道真相之后才意识到错怪女儿了。(强调句) M 1 U 2 一. 把下列短语填入每个句子的空白处(注意所填短语的形式变化): play a …role (in) because of come up such as even if play a …part (in) 1 Dujiangyan(都江堰) is still ___________in irrigation(灌溉) today. 2 That question ___________ at yesterday’s meeting. 3 Karl Marx could speak a few foreign languages, _________Russian and English. 4 You must ask for leave first __________ you have something very important. 5 The media _________ major ________ in influencing people’s opinion s. 6 _________ years of hard work she looked like a woman in her fifties. 二.用以下短语造句: 1.make (good/full) use of 2. play a(n) important role in 3. even if 4. believe it or not 5. such as 6. because of

英语造句

English sentence 1、(1)、able adj. 能 句子:We are able to live under the sea in the future. (2)、ability n. 能力 句子:Most school care for children of different abilities. (3)、enable v. 使。。。能 句子:This pass enables me to travel half-price on trains. 2、(1)、accurate adj. 精确的 句子:We must have the accurate calculation. (2)、accurately adv. 精确地 句子:His calculation is accurately. 3、(1)、act v. 扮演 句子:He act the interesting character.(2)、actor n. 演员 句子:He was a famous actor. (3)、actress n. 女演员 句子:She was a famous actress. (4)、active adj. 积极的 句子:He is an active boy. 4、add v. 加 句子:He adds a little sugar in the milk. 5、advantage n. 优势 句子:His advantage is fight. 6、age 年龄n. 句子:His age is 15. 7、amusing 娱人的adj. 句子:This story is amusing. 8、angry 生气的adj. 句子:He is angry. 9、America 美国n. 句子:He is in America. 10、appear 出现v. He appears in this place. 11. artist 艺术家n. He is an artist. 12. attract 吸引 He attracts the dog. 13. Australia 澳大利亚 He is in Australia. 14.base 基地 She is in the base now. 15.basket 篮子 His basket is nice. 16.beautiful 美丽的 She is very beautiful. 17.begin 开始 He begins writing. 18.black 黑色的 He is black. 19.bright 明亮的 His eyes are bright. 20.good 好的 He is good at basketball. 21.British 英国人 He is British. 22.building 建造物 The building is highest in this city 23.busy 忙的 He is busy now. 24.calculate 计算 He calculates this test well. 25.Canada 加拿大 He borns in Canada. 26.care 照顾 He cared she yesterday. 27.certain 无疑的 They are certain to succeed. 28.change 改变 He changes the system. 29.chemical 化学药品

相关主题
文本预览
相关文档 最新文档