The Unified Modeling Language (UML) is the de facto standard for object-oriented software analysis and design modeling. However, few empirical studies exist which investigate the costs and evaluate the benefits of usi...
详细信息
The Unified Modeling Language (UML) is the de facto standard for object-oriented software analysis and design modeling. However, few empirical studies exist which investigate the costs and evaluate the benefits of using UML in realistic contexts. Such studies are needed so that the software industry can make informed decisions regarding the extent to which they should adopt UML in their development practices. This is the first controlled experiment that investigates the costs of maintaining and the benefits of using UML documentation during the maintenance and evolution of a real nontrivial system, using professional developers as subjects, working with a state-of-the-art UML tool during an extended period of time. The subjects in the control group had no UML documentation. In this experiment, the subjects in the UML group had, on average, a practically and statistically significant 54 percent increase in the functional correctness of changes (p = 0.03) and an insignificant 7 percent overall improvement in design quality (p = 0.22), though a much larger improvement was observed on the first change task ( 56 percent), at the expense of an insignificant 14 percent increase in development time caused by the overhead of updating the UML documentation (p = 0.35).
This paper describes the development of an intelligent process-control system for the production of fiber-reinforced organic polymeric composites. The composite material consists of a polymer matrix (polyamide resin F...
详细信息
This paper describes the development of an intelligent process-control system for the production of fiber-reinforced organic polymeric composites. The composite material consists of a polymer matrix (polyamide resin F174) and high-modulus quartz-fiber reinforcement. This composite material has good mechanical properties at high temperatures, and possesses a low dielectric constant, making it suitable for applications in missile radomes. The problem is that the raw materials are chemically reactive, and the process-control system must enable adaptation to variations in the temperature-time exposure of the raw materials and/or variations which may occur in the materials received from different suppliers. The uniqueness of the control system lies in that it is self-directing, and relies on information derived from sensors (laser fiber-optic probes and dielectric sensors) placed within the material. In addition, a materials-transformation model based on the chemical kinetics of the polymerization process calculates a number of key polymer parameters, such as degree of imidization, degree of cure, molecular weight distribution, and polydispersity ratio in situ. The collective ability to collect high-quality sensor information, to run sophisticated but robust process models in real time, to make complex decisions using artificial intelligence (AI), and to implement these decisions for controlling the structure of the actual material being processed represents a significant breakthrough in materials and process capability in this field. The focus of this work, measuring and controlling the physical and chemical properties of the material, rather than the physical attributes of the processing machinery, is an important paradigm shift. (C) 1998 Elsevier Science Ltd. All rights reserved.
The large time and effort devoted to software maintenance can be reduced by providing software engineers with software tools that automate tedious, error-prone tasks. However, despite the prevalence of tools such as I...
详细信息
The large time and effort devoted to software maintenance can be reduced by providing software engineers with software tools that automate tedious, error-prone tasks. However, despite the prevalence of tools such as IDEs, which automatically provide program information and automated support to the developer, there is considerable room for improvement in the existing software tools. The authors' previous work has demonstrated that using natural language information embedded in a program can significantly improve the effectiveness of various software maintenance tools. In particular, precise verb information from source code analysis is useful in improving tools for comprehension, maintenance and evolution of object-oriented code, by aiding in the discovery of scattered, action-oriented concerns. However, the precision of the extraction analysis can greatly affect the utility of the natural language information. The approach to automatically extracting precise natural language clues from source code in the form of verb-direct object (DO) pairs is described. The extraction process, the set of extraction rules and an empirical evaluation of the effectiveness of the automatic verb-DO pair extractor for Java source code are described.
Several testing approaches focus on finding faults in software units of implementation. A problem not addressed by unit testing is the interaction among units, with respect to the correctness of their interfaces. In t...
详细信息
Several testing approaches focus on finding faults in software units of implementation. A problem not addressed by unit testing is the interaction among units, with respect to the correctness of their interfaces. In this paper a structural integration testing approach for object-oriented (00) and Aspect-oriented (AO) Java programs is presented. To make the activity more feasible, we address the testing of pairs of units (i.e., methods and pieces of advice). A model called PWDU (PairWise Def-Use) graph to represent the flow of control and data between pairs of units is proposed. Based on the PWDU, the following family of testing criteria is defined: all-pairwise-integrated-nodes (control-flow based), all-pairwise-integrated-edges (control-flow based), and all-pairwise-integrated-uses (data-flow based). To evaluate the proposed approach, an implementation of the criteria in a testing tool is presented along with an example of usage and an exploratory study. The study with 7 AO programs that are also 00 was conducted to investigate the cost of application and usefulness of the approach. Results provided evidence that the criteria are practical and useful for integration testing of 00 and AO programs. (C) 2009 Elsevier B.V. All rights reserved.
Classical specification and verification techniques support invariants for individual objects whose fields are primitive values, but do not allow sound modular reasoning about invariants involving more complex object ...
详细信息
Classical specification and verification techniques support invariants for individual objects whose fields are primitive values, but do not allow sound modular reasoning about invariants involving more complex object structures. Such non-trivial object structures are common, and occur in lists, hash tables, and whenever systems are built in layers. A sound and modular verification technique for layered object structures has to deal with the well-known problem of representation exposure and the problem that invariants of higher layers are potentially violated by methods in lower layers;such methods cannot be modularly shown to preserve these invariants. We generalize classical techniques to cover layered object structures using a refined semantics for invariants based on an ownership model for alias control. This semantics enables sound and modular reasoning. We further extend this ownership technique to even more expressive invariants that gain their modularity by imposing certain visibility requirements. (c) 2006 Elsevier B.V. All rights reserved.
The use of computers to perform simulation of chemical engineering processes has lead to the development of software tools that perform most tedious computations in the field of process analysis and design. The most p...
详细信息
The use of computers to perform simulation of chemical engineering processes has lead to the development of software tools that perform most tedious computations in the field of process analysis and design. The most popular structures regarding process simulation of conventional and specialized processes are analyzed properly by considering the basic parts of commercial programs. Computational procedures, graphical aspects, management of properties database are outlined. Modeling aspects of drying technology regarding simulation are summarized and classified. The need for specialized software and development efforts in the field of commercial dryers simulation are emphasized and appropriately addressed. Modern aspects, such as object-oriented programming in simulation of industrial dryers are suitably presented and various case studies are used to indicate the effectiveness of modern simulation methods in the field of dryers operation.
With Java 5 annotations, the authors note a marked increase in tools that can statically detect potential null dereferences. To be effective, such tools require that developers annotate declarations with nullity modif...
详细信息
With Java 5 annotations, the authors note a marked increase in tools that can statically detect potential null dereferences. To be effective, such tools require that developers annotate declarations with nullity modifiers and have annotated API libraries. Unfortunately, in the experience of the authors, specifying moderately large code bases, the use of non-null annotations is more labour intensive than it should be. Motivated by this experience, the authors conducted an empirical study of five open source projects totalling 700K lines-of-code, which confirms that, on average, 75% of reference declarations are meant to be non-null, by design. Guided by these results, the authors propose the adoption of non-null-by-default semantics. This new default has advantages of better matching general practice, lightening developer annotation burden and being safer. The authors also describe the Eclipse Java Modelling Language (JML) Java Development Tooling (JDT), a tool supporting the new semantics, including the ability to read the extensive API library specifications written in the JML. Issues of backwards compatibility are addressed. In a second phase of the empirical study, the authors analysed the uses of null and noted that over half of the nullable field references are only assigned non-null values. For this category of reference, the authors introduce the concept of monotonic non-null type and illustrate the benefits of its use.
A runtime monitor enforcing a constraint on sequences of method calls on an object involves the implementation of an independent piece of code called a monitor. This monitor intercepts relevant events in the program a...
详细信息
A runtime monitor enforcing a constraint on sequences of method calls on an object involves the implementation of an independent piece of code called a monitor. This monitor intercepts relevant events in the program and must keep track of the state of the sequence by updating an appropriate state machine. The present paper stems from the observation that an object's member fields must already contain an encoding of that state machine and that a monitor essentially duplicates operations that the object performs internally. Rather than maintaining a state machine in parallel, the paper puts forward the concept of "piggyback" runtime monitoring, where the monitor relies as much as possible on the object's own state variables to perform its task. Experiments on real-world benchmarks show that this approach greatly simplifies the monitoring process and drastically reduces the incurred runtime overhead compared to classical solutions.
The IAPWS-95 formulation for the thermodynamic properties of pure water was implemented as an ActiveX component (SteamTables) in Visual Basic 6.0. For input parameters as temperature (T = 190-2000K) and pressure (P = ...
详细信息
The IAPWS-95 formulation for the thermodynamic properties of pure water was implemented as an ActiveX component (SteamTables) in Visual Basic 6.0. For input parameters as temperature (T = 190-2000K) and pressure (P = 3.23 x 10(-8)-10,000 MPa) the program SteamTables calculates the following properties: volume (V), density (D), compressibility factor (Z(0)), internal energy (U), enthalpy (H), Gibbs free energy (G), Helmholtz free energy (A), entropy (S), heat capacity at constant pressure (C-p), heat capacity at constant volume (C-v), coefficient of thermal expansion (CTE), isothermal compressibility (Z(iso)), velocity of sound (VelS), partial derivative of P with T at constant V (dPdT), partial derivative of T with Vat constant P (dTdV), partial derivative of V with P at constant T (dVdP), Joule-Thomson coefficient (JTC), isothermal throttling coefficient (IJTC), viscosity (Vis), thermal conductivity (ThrmCond), surface tension (SurfTen), Prandtl number (PrdNum) and dielectric constant (DielCons) for the liquid and vapor phases of pure water. It also calculates T as a function of P (or P as a function of T) along the sublimation, saturation and critical isochor curves, depending on the values of P (or T). The SteamTables can be incorporated in a program in any computer language, which supports object link embedding (OLE) in the Windows environment. An application of SteamTables is illustrated in a program in Visual Basic 6.0 to tabulate the values of the thermodynamic properties of water and vapor. Similarly, four functions, Temperature(Press), Pressure(Temp), State(Temp, Press) and WtrStmTbls(Temp, Press, Nphs, Nprop), where Temp, Press, Nphs and Nprop are temperature, pressure, phase number and property number, respectively, are written in Visual Basic for Applications (VBA) to use the SteamTables in a workbook in MS-Excel. (C) 2003 Elsevier Ltd. All rights reserved.
Software faults are costly to find and remove from programs. It is better to avoid inserting the faults in the first place. The authors identify requirements-related faults that can arise during the transformation of ...
详细信息
Software faults are costly to find and remove from programs. It is better to avoid inserting the faults in the first place. The authors identify requirements-related faults that can arise during the transformation of formal specifications into programs, analyse each to discover its causes, and propose corresponding fault prevention methods. The approach works by analysing a specification, decomposing it into specification fragments with different levels like components, determining the correct implementation order among the components, and enabling automated code generation for the components and other low-level specification fragments. The approach seeks to reduce the faults in programs significantly by guiding programmers to work effectively and productively. The authors evaluate the approach's performance experimentally and compare it to the performance of a fault-prevention method with industry applications.
暂无评论