共查询到20条相似文献,搜索用时 15 毫秒
1.
One of the techniques employed by programmers during the development process is the use of code and design conventions. These are rules‐of‐thumb or best practices that improve the maintainability of software applications. In general, these conventions are maintained manually by the programmer since automated support is usually restricted to the automatic generation of code. However, the late discovery of convention errors can result in significant costs due to the effort required to correct them. In order to facilitate the early detection of these errors, the Practical Preprocessor for Programming Conventions system, P³ (pronounced P3),is proposed. This tool acts as a preprocessor to the Java compiler by providing facilities for the maintenance of specific object‐oriented code conventions and design principles during the creation of Java programs. This paper presents the design and implementation of the P³ system and also the practical experience of using this facility in a University programming environment. Copyright © 2002 John Wiley & Sons, Ltd. 相似文献
2.
Code transformation and analysis tools provide support for software engineering tasks such as style checking, testing, calculating software metrics as well as reverse‐ and re‐engineering. In this paper we describe the architecture and the applications of JTransform, a general Java source code processing and transformation framework. It consists of a Java parser generating a configurable parse tree and various visitors (transformers, tree evaluators) which produce different kinds of outputs. While our framework is written in Java, the paper further opens an opportunity for a new generation of XML‐based source code tools. Copyright © 2004 John Wiley & Sons, Ltd. 相似文献
3.
Raed Shatnawi Wei Li James Swain Tim Newman 《Journal of Software: Evolution and Process》2010,22(1):1-16
An empirical study of the relationship between object‐oriented (OO) metrics and error‐severity categories is presented. The focus of the study is to identify threshold values of software metrics using receiver operating characteristic curves. The study used the three releases of the Eclipse project and found threshold values for some OO metrics that separated no‐error classes from classes that had high‐impact errors. Although these thresholds cannot predict whether a class will definitely have errors in the future, they can provide a more scientific method to assess class error proneness and can be used by engineers easily. Copyright © 2009 John Wiley & Sons, Ltd. 相似文献
4.
Complex graphical user interfaces (GUIs) that support a large amount of user interaction require a fast response time, a rich set of building blocks for an esthetic look‐and‐feel, and a development environment that supports ongoing change. On the World Wide Web, client‐side technologies offer more of these features than do server‐side solutions. Java and JavaScript are the two most popular languages used for client‐side GUI implementations. Java implementations require a user to download a plug‐in that contains a virtual machine to execute the Java byte‐code. The installation and maintenance of this plug‐in is sometimes an unsurmountable barrier to using Java. JavaScript lacks some of the desirable features of Java, such as easy to use object‐oriented features and having a GUI class library, but does not require a plug‐in. We have enhanced JavaScript by implementing a new language Object‐JavaScript (OJS) and by providing an OJS library of GUI components, thus making it a viable alternative to Java. Copyright © 2000 John Wiley & Sons, Ltd. 相似文献
5.
对象关系的外连式实现方法 总被引:1,自引:0,他引:1
对象间关系的重要性已经得到广泛重视,但在现行程序语言中尚示获得全面支持,本文在论述了对象间关系的描述特性,分析了内嵌式和外连式两种关系实现方法的特点后,提出并深入讨论了外连式对象间关系的程序描述和实现方法,本文提出的方法已经通过基于C++的程序转换的方法得到实现。 相似文献
6.
In previous work, we have modeled a vocabulary given as a semantic network by an object‐oriented database (OODB). The OODB schema thus obtained provides a compact abstract view of the vocabulary. This enables the fast traversal of the vocabulary by a user. In the semantic network vocabulary, the IS‐A relationships express the specialization hierarchy. In our OODB modeling of the vocabulary, the SUBCLASS relationship expresses the specialization hierarchy of the classes and supports the inheritance of their properties. A typical IS‐A path in the vocabulary has a corresponding shorter SUBCLASS path in the OODB schema. In this paper we expose several cases where the SUBCLASS hierarchy fails to fully correspond to the IS‐A hierarchy of the vocabulary. In these cases there exist traversal paths in the semantic network for which there are no corresponding traversal paths in the OODB schema. The reason for this failure is the existence of some IS‐A relationships between concepts of two classes, which are not connected by a SUBCLASS relationship. This phenomenon weakens the accuracy of our modeling. To rectify the situation we introduce a new OODB semantic relationship IS‐A to represent the existence of IS‐A relationships between concepts of a pair of classes which are not connected via a SUBCLASS relationship. The resulting schema contains both SUBCLASS relationships and IS‐A relationships which completely model the IS‐A hierarchy of the vocabulary. We define a mixed‐class level traversal path to contain either SUBCLASS or IS‐A relationships. Consequently, each traversal path in the semantic network has a corresponding mixed traversal path in the OODB schema. Hence the introduction of the semantic OODB IS‐A relationship improves the modeling of semantic network vocabularies by OODBs. Copyright © 2003 John Wiley & Sons, Ltd. 相似文献
7.
The need for multiple views of an object is often encountered in software practice. This paper presents our experience in addressing this need under a software architecture known as the law‐governed architecture. We introduce the notion of a surrogate object which allows an object to appear different and behave differently when used from different parts of a system. This concept requires some minor modifications to the classical inheritance‐based object‐oriented systems, mostly involving a judicious use of delegation. A concrete implementation of surrogates under the law‐governed architecture is described and some applications of surrogates are briefly discussed. Copyright © 2000 John Wiley & Sons, Ltd. 相似文献
8.
为了完成Java芯片体系结构级验证和性能评测,本文提出一种Java芯片流水线级模型和据此模型开发的基于面向对象技术的Java芯片模型系统。 相似文献
9.
10.
A number of activities involved in testing software are known to be difficult and time consuming. Among them is the definition and coding of test oracles and the isolation of faults once failures have been detected. Through a thorough and rigorous empirical study, we investigate how the instrumentation of contracts could address both issues. Contracts are known to be a useful technique in specifying the precondition and postcondition of operations and class invariants, thus making the definition of object‐oriented analysis or design elements more precise. It is one of the reasons the Object Constraint Language (OCL) was made part of the Unified Modeling Language. Our aim in this paper is to reuse and instrument contracts to ease testing. A thorough case study is run where we define OCL contracts, instrument them using a commercial tool and assess the benefits and limitations of doing so to support the automated detection of failures and the isolation of faults. As contracts can be defined at various levels of detail, we also investigate the cost and benefit of using contracts at different levels of precision. We then draw practical conclusions regarding the applicability of the approach and its limitations. Copyright © 2003 John Wiley & Sons, Ltd. 相似文献
11.
This paper describes the Java Metaheuristics Search framework (JAMES, v1.1): an object‐oriented Java framework for discrete optimization using local search algorithms that exploits the generality of such metaheuristics by clearly separating search implementation and application from problem specification. A wide range of generic local searches are provided, including (stochastic) hill climbing, tabu search, variable neighbourhood search and parallel tempering. These can be applied to any user‐defined problem by plugging in a custom neighbourhood for the corresponding solution type. Using an automated analysis workflow, the performance of different search algorithms can be compared in order to select an appropriate optimization strategy. Implementations of specific components are included for subset selection, such as a predefined solution type, generic problem definition and several subset neighbourhoods used to modify the set of selected items. Additional components for other types of problems (e.g. permutation problems) are provided through an extensions module which also includes the analysis workflow. In comparison with existing Java metaheuristics frameworks that mainly focus on population‐based algorithms, JAMES has a much lower memory footprint and promotes efficient application of local searches by taking full advantage of move‐based evaluation. Releases of JAMES are deployed to the Maven Central Repository so that the framework can easily be included as a dependency in other Java applications. The project is fully open source and hosted on GitHub. More information can be found at http://www.jamesframework.org . Copyright © 2016 John Wiley & Sons, Ltd. 相似文献
12.
For many years systems engineers have produced traditional system requirements specifications containing shall‐statement requirements. The rapid adoption of use case modeling for capturing functional requirements in the software community has caused systems engineers to examine the utility of use case models for capturing system‐level functional requirements. A transition from traditional shall‐statement requirements to use case modeling has raised some issues and questions. This paper advocates a hybrid requirements process in which use case modeling and traditional shall‐statement requirements are applied together to effectively express both functional and nonfunctional requirements for complex, hierarchical systems. This paper also presents a practical method for extracting requirements from the use case text to produce a robust requirements specification. © 2004 Wiley Periodicals, Inc. Syst Eng 7: 303–319, 2004 相似文献
13.
Peter M. Maurer 《Software》2005,35(8):787-797
A binary component is a separately compiled program that can be used as a part of a larger program. Binary components generally conform to an accepted technology such as JavaBeans or ActiveX, and generally support a rich program interface containing properties, methods and events. Binary components are generally used in a graphical user interface (GUI) environment. There are a number of benefits to be realized by converting command‐line software into binary components. The most important of these is that GUI environments are more popular and more familiar to most people than command‐line environments. Using binary components can greatly simplify a GUI implementation, to the point where it is only slightly more complicated than a typical command‐line implementation. However there are benefits that go beyond mere convenience. Binary components have much richer interfaces than command‐line programs. Binary components are service‐oriented rather than task‐oriented. A task‐oriented program has a main routine that is devoted to accomplishing a single task. A service‐oriented component has no main routine or main function, but instead provides a variety of services to its clients. Binary components can be easily integrated with one another, which permits a design where each major feature of an application is implemented in a different component. Such a design encourages software reuse at the component level and facilitates low‐impact feature upgrades. We first delineate a design‐pattern‐based methodology for converting command‐line programs into components. We then illustrate these principles using two projects, a simulation system for digital circuits, and a data generation system for software and hardware testing. Copyright © 2005 John Wiley & Sons, Ltd. 相似文献
14.
15.
We describe an Internet application for providing mobile phone tariff information for Northern Ireland and the Republic of Ireland. Using this application it is possible to accurately and easily determine and compare mobile phone packages offered by different service providers. One of the important features of such an Internet application is the potential for high maintenance associated with the data in the system and more importantly the structure of the system given the inevitable changes in the corresponding mobile phone market. We have identified the maintenance tasks associated with our system to reflect changes in the mobile phone market and outline an evaluation technique for describing the system's ability to cope with change. In particular, we evaluate the actual change required to our software system to implement various maintenance tasks. We have found that there is an upper bound (˜5%) on the maintenance effort associated with the system which is both acceptable and manageable for maintenance purposes. We show that at most the changes required to our system are no greater than 3.07%, when a complete new service provider is added or removed. We conclude that the development of a maintenance model in conjunction with system design is essential for estimating the maintenance effort associated with similar Internet applications. Copyright © 2003 John Wiley & Sons, Ltd. 相似文献
16.
Gabriele Manduchi 《Software》2001,31(11):1025-1042
The paper describes the experience gained in the development of Java applications in a nuclear fusion experiment. Two Java tools for graphical data display and experiment configuration set‐up are presented as case studies. Based on these tools, the results derived by the application of some metrics for object oriented software and by the analysis of the design patterns imported in the applications are presented to highlight the effective code reuse achieved with Java. The main issues in the applicability of Java in a demanding environment are then introduced and a few weaknesses of the language are finally discussed. Copyright © 2001 John Wiley & Sons, Ltd. 相似文献
17.
Object‐oriented frameworks provide software developers with the means to build an infrastructure for their applications. Unfortunately, frameworks do not always deliver on their promises of reusability and flexibility. To address this, we have developed a conceptual model for frameworks and a set of guidelines to build object oriented frameworks that adhere to this model. Our guidelines focus on improving the flexibility, reusability and usability (i.e. making it easy to use a framework) of frameworks. Copyright © 2001 John Wiley & Sons, Ltd. 相似文献
18.
The subsumption architecture is a layered mediator invented by Rodney Brooks for behaviour‐based control of robots. The layers are minimally dependent and use minimal communication. We develop an object‐oriented software design for the subsumption architecture, and demonstrate that each layer can be used as a slot for a set of plug‐and‐play components that implement different microstrategies for achieving a particular goal. Guidelines for the development of specific layers and components of a subsumption architecture are also presented. Copyright © 2001 John Wiley & Sons, Ltd. 相似文献
19.
Joseph R. Laracy 《Software》2009,39(1):105-110
As the use of computer simulation grows in a variety of science and engineering fields, the quality of random variate generators becomes increasingly important. Unfortunately, a number of standard implementations are grossly inadequate and exhibit poor statistical properties. This paper presents a software pattern for efficiently implementing an extensible, high‐quality random variate generator. Copyright © 2008 John Wiley & Sons, Ltd. 相似文献
20.
This paper argues for the adoption of object‐oriented design and UML tools for nonsoftware designs, i.e., systems, hardware and algorithms: This is a controversial position. It presents a case study, the design of a heating, ventilation, and air conditioning system, using UML tools. This case study also shows the incremental elaboration used to progress from the requirements model, to the analysis model, to the design model, etc. The paper finally discusses some difficulties that must be overcome in order to apply UML tools to system designs. © 2002 Wiley Periodicals, Inc. Syst Eng 6: 28–48, 2003. 相似文献