ÐSoftware design patterns package proven solutions to recurring design problems in a form that simplifies reuse. We are seeking empirical evidence whether using design patterns is beneficial. In particular, one may prefer using a design pattern even if the actual design problem is simpler than that solved by the pattern, i.e., if not all of the functionality offered by the pattern is actually required. Our experiment investigates software maintenance scenarios that employ various design patterns and compares designs with patterns to simpler alternatives. The subjects were professional software engineers. In most of our nine maintenance tasks, we found positive effects from using a design pattern: Either its inherent additional flexibility was achieved without requiring more maintenance time or maintenance time was reduced compared to the simpler alternative. In a few cases, we found negative effects: The alternative solution was less error-prone or required less maintenance time. Although most of these effects were expected, a few were surprising: A negative effect occurs although a certain application of the Observer pattern appears to be well justified and a positive effect occurs despite superfluous flexibility (and, hence, complexity) introduced by a certain application of the Decorator pattern. Overall, we conclude that, unless there is a clear reason to prefer the simpler solution, it is probably wise to choose the flexibility provided by the design pattern because unexpected new requirements often appear. We identify several questions for future empirical research.
The Personal Software Process is a process improvement methodology aiming at individual software engineers. It claims to improve software quality in particular defect content, effort estimation capability, and process adaptation and improvement capabilities. We have tested some of these claims in an experiment comparing the performance of participants who had just previously received a PSP course to a di erent group of participants who had received other technical training instead. Each participant of both groups performed the same task. We found the following positive e ects: The PSP group estimated their productivity though not their e ort more accurately, made fewer trivial mistakes, and their programs performed more careful error-checking; further, the performance variability w as smaller in the PSP group in various respects. However, the improvements are smaller than the PSP proponents usually assume, possibly due to the low actual usage of PSP techniques in the PSP group. We conjecture that PSP training alone does not automatically realize the PSP's potential bene ts as seen in some industrial PSP success stories when programmers are left alone with motivating themselves to actually use the PSP techniques.
In two controlled experiments we compare the performance on code maintenance tasks for three equivalent programs with 0, 3, and 5 levels of inheritance. For the given tasks, which focus on understanding effort more than change effort, programs with less inheritance were faster to maintain. Daly et al. previously reported similar experiments on the same question with quite different results. They found that the 5-level program tended to be harder to maintain than the 0-level program, while the 3-level program was significantly easier to maintain than the 0-level program. We describe the design and setup of our experiment, the differences to the previous ones, and the results obtained. Ours and the previous experiments are different in several ways: We used a longer and more complex program, made an inheritance diagram available to the subjects, and added a second kind of maintenance task.When taken together, the previous results plus ours suggest that there is no such thing as usefulness or harmfulness of a certain inheritance depth as such. Code maintenance effort is hardly correlated with inheritance depth, but rather depends on other factors (partly related to inheritance depth). Using statistical modeling, we identify the number of relevant methods to be one such factor. We use it to build an explanation model of average code maintenance effort that is much more powerful than a model relying on inheritance depth.
Half-lives were measured for the dissociation of a series of 20 indium-benzyl-EDTA derivatives from a monoclonal antibody that binds to them. Most haptens gave expected monoexponential dissociation curves with half-lives ranging from approximately 8 to approximately 100 min at 22 +/- 1 degree C. Precise (+/- approximately 2.5%) determinations were made using centrifugal ultrafiltration to separate free from bound hapten. A strong pH dependence of the dissociation half-life was found for the two haptens studied. Activation enthalpies were identical (23 +/- 1 kcal/mol) for the dissociation of four haptens, suggesting that, in contrast to individual rate constants, this parameter is insensitive to hapten modification. The dissociation half-lives provided evidence for the location of a positive charge in the binding site, but gave no clear indication of the role of hydrophobic interactions or of steric requirements in hapten binding. While variations in ionic strength had no effect on the dissociation rate, lowering surface tension with dioxane increased the rate somewhat. Three hapten-antibody complexes showed biexponential dissociation rates. It is postulated that this results from distinct conformations of the complex dissociating at different rates. The dissociation rate constant was found to be an extremely sensitive indicator of the hapten-antibody interaction that can be measured very precisely.
Strain inl-89601 of Neurospora crassa respires exclusively by means of the mitochondrial cytochrome chain. The respiration of this strain is entirely inhibited by cyanide or antimycin A, the classical inhibitors of cytochrome chain respiration. When this strain was grown in the presence of chloramphenicol, however, two additional terminal oxidases were detected. One of these oxidases is inhibited by substituted hydroxamic acids and has been described previously. The second oxidase was not inhibited by cyanide or hydroxamic acid but was inhibited by azide in the presence of both cyanide and hydroxamic acid. This azide-sensitive respiration was due to a single respiratory pathway with a Ki for azide of 200,uM. A small amount of azide-sensitive respiration was detected in mitochondrial fractions obtained from chloramphenicol-treated cells, and it is likely that the azide-sensitive oxidase is localized in the mitochondrion. The determinants for the azide-sensitive and hydroxamate-sensitive oxidases segregate in a Mendelian manner in crosses and are either unlinked or not closely linked to each other.on August 4, 2020 by guest
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.