The complexity management of software code has become one of the major problems in software development industry. With growing complexity the maintenance effort of software code increases. Moreover, multiple aspects of complexity create difficulties for optimal complexity management. The objective of this study is to investigate the relationships of several aspects of code complexity and assess the possibilities of optimizing overall code complexity. We conducted an action research project in two software development companies and complemented it with a study of three open source products. Four complexity metrics were measured, and their nature and mutual influence were investigated using statistical methods. The results and possible explanations were discussed with software engineers in industry. The results showed that there are two distinguishable aspects of complexity of source code functions; internal and external complexities. Those have an inverse relationship. Moreover, the product of them cannot be greater than a certain limit, regardless of software size. We developed a method that permits identification of most complex functions considering the two aspects of complexities. The evaluation showed that the use of the method is effective in industry; it enables identification of few (0.5%) most complex functions out of thousands of functions for manual assessment and reengineering.
The complexity management of software code has become one of the major problems in software development industry. With growing complexity the maintenance effort of code increases. Moreover, various aspects of complexity create difficulties for complexity assessment. The objective of this paper is to investigate the relationships of various aspects of code complexity and propose a method for identifying the most complex functions. We have conducted an action research project in two software development companies and complemented it with a study of three open source products. Four complexity metrics are measured, and their nature and mutual influence are investigated. The results and possible explanations are discussed with software engineers in industry. The results show that there are two distinguishable aspects of complexity of source code functions: Internal and outbound complexities. Those have an inverse relationship. Moreover, the product of them does not seem to be greater than a certain limit, regardless of software size. We present a method that permits identification of most complex functions considering the two aspects of complexities. The evaluation shows that the use of the method is effective in industry: It enables identification of 0.5% most complex functions out of thousands of functions for reengineering.
Challenges of technical risk assessment is difficult to address, while its success can benefit software organizations appreciably. Classical definition of risk as a "combination of probability and impact of adverse event" appears not working with technical risk assessment. The main reason of this is the nature of adverse event's outcome which is rather continuous than discrete. The objective of this study was to scrutinize different aspects of technical risks and provide a definition, which will support effective risk assessment and management in software development organizations. In this study we defined the risk considering the nature of actual risks, emerged in software development. Afterwards, we summarized the software engineers' view on technical risks as results of three workshops with 15 engineers of four software development companies. The results show that technical risks could be viewed as a combination of uncertainty and magnitude of difference between actual and optimal design of product artifacts and processes. The presented definition is congruent with practitioners view on technical risk. It supports risk assessment in a quantitative manner and enables identification of potential product improvement areas.
Modern software development relies on incremental delivery to facilitate quick response to customers' requests. In this dynamic environment the continuous modifications of software code can cause risks for software developers; when developing a new feature increment, the added or modified code may contain fault-prone or difficult-to-maintain elements. The outcome of these risks can be defective software or decreased development velocity. This study presents a method to identify the risky areas and assess the risk when developing software code in Lean/Agile environment. We have conducted an action research project in two large companies, Ericsson AB and Volvo Group Truck Technology. During the study we have measured a set of code properties and investigated their influence on risk. The results show that the superposition of two metrics, complexity and revisions of a source code file, can effectively enable identification and assessment of the risk. We also illustrate how this kind of assessment can be successfully used by software developers to manage risks on a weekly basis as well as release-wise. A measurement system for systematic risk assessment has been introduced to two companies.
Complexity management has become a crucial activity in continuous software development. While the overall perceived complexity of a product grows rather insignificantly, the small units, such as functions and files, can have noticeable complexity growth with every increment of product features. This kind of evolution triggers risks of escalating fault-proneness and deteriorating maintainability. The goal of this research was to develop a measurement system which enables effective monitoring of complexity evolution. An action research has been conducted in two large software development organizations. We have measured three complexity and two change properties of code for two large industrial products. The complexity growth has been measured for five consecutive releases of the products. Different patterns of growth have been identified and evaluated with software engineers in industry. The results show that monitoring cyclomatic complexity evolution of functions and number of revisions of files focuses the attention of designers to potentially problematic files and functions for manual assessment and improvement. A measurement system was developed at Ericsson to support the monitoring process.
Most of the runtime failures of a software system can be re vealed during test execution only, which has a very high cost. In Java programs, runtime failures are manifested as unhandled runtime excep tions. In this paper we present an approach and tool for detecting runtime exceptions in Java programs without having to execute tests on the soft ware. We use the symbolic execution technique to implement the ap proach. By executing the methods of the program symbolically we can determine those execution branches that throw exceptions. Our algo rithm is able to generate concrete test inputs also that cause the program to fail in runtime. We used the Symbolic PathFinder extension of the Java PathFinder as the symbolic execution engine. Besides small example codes we evaluated our algorithm on three open source systems: jEdit, ArgoUML, and log4j. We found multiple errors in the log4j system that were also reported as real bugs in its bug tracking system.,
Monitoring performance of software development organizations can be achieved from a number of perspectives - e.g. using such tools as Balanced Scorecards or corporate dashboards. In this paper we present results from a study on using code stability indicators as a tool for product stability and organizational performance, conducted at three different software development companies - Ericsson AB, Saab AB Electronic Defense Systems (Saab) and Volvo Group Trucks Technology (Volvo Group). The results show that visualizing the source code changes using heat maps and linking these visualizations to defect inflow profiles provide indicators of how stable the product under development is and whether quality assurance efforts should be directed to specific parts of the product. Observing the indicator and making decisions based on its visualization leads to shorter feedback loops between development and test, thus resulting in lower development costs, shorter lead time and increased quality. The industrial case study in the paper shows that the indicator and its visualization can show whether the modifications of software products are focused on parts of the code base or are spread widely throughout the product.
One of the distinguishing characteristics of Agile and Lean software development is that software products “grow” with new functionality with relatively small increments. Continuous customer demands of new features and the companies’ abilities to deliver on those demands are the two driving forces behind this kind of software evolution. Despite the numerous benefits there are a number of risks associated with this kind of growth. One of the main risks is the fact that the complexity of the software product grows slowly, but over time reaches scales which makes the product hard to maintain or evolve. The goal of this paper is to present a measurement system for monitoring the growth of complexity and drawing attention when it becomes problematic. The measurement system was developed during a case study at Ericsson and Volvo Group Truck Technology. During the case study we explored the evolution of size, complexity, revisions and number of designers of two large software products from the telecom and automotive domains. The results show that two measures needed to be monitored to keep the complexity development under control - McCabe’s complexity and number of revisions.
BACKGROUND:Lactobacillus and Bifidobacterium species have shown beneficial effects in the treatment of Helicobacter pylori infection; however, the mechanisms behind such effects are not fully understood. In this study, we have investigated the immunomodulatory effects of probiotics in a mouse model of H. pylori infection.MATERIALS AND METHODS:H. pylori-infected C57BL/6 mice were treated with L. casei L26, B. lactis B94, or no probiotics for 5 weeks, respectively. Mice not infected with H. pylori were included as normal controls. Gastric histology, protein levels of interleukin (IL)-1beta, IL-10, IL-12/23p40, and H. pylori colonization density in the gastric tissues, as well as H. pylori-specific antibodies were examined.RESULTS:In mice receiving L. casei L26 and B. lactis B94, gastric neutrophil infiltration and IL-1beta were significantly decreased and IL-10 was significantly increased as compared with mice receiving no probiotics. In mice receiving B. lactis B94, IL-12/23p40 was significantly increased and H. pylori IgG was significantly reduced as compared with mice receiving no probiotics. No significant difference of H. pylori colonization was observed among the three groups of mice.CONCLUSION:The reduced level of IL-1beta and neutrophil infiltration observed in mice infected with H. pylori following treatment with L. casei L26 and B. lactis B94 resulted from a modulation of immune response rather than a decrease of H. pylori colonization. Furthermore, B. lactis B94 has the intrinsic ability to promote a Th1 immune response through an increase in IL-12/IL-23.
The aim of this study was to assess the effect of a commercial green tea extract (TEAVIGO™) on the microbial growth of three probiotic strains (Lactobacillus and Bifidobacterium), as well as three pathogenic bacteria. MIC and co-culture studies were performed. The MICs of the green tea extract against Staphylococcus aureus and Streptococcus pyogenes (100 μg ml−1) were considerably lower than those against the probiotic strains tested (>800 μg ml−1) and Escherichia coli (800 μg ml−1). In co-culture studies, a synergistic effect of the probiotic strains and the green tea extract was observed against both Staph. aureus and Strep. pyogenes. Green tea extract in combination with probiotics significantly reduced the viable count of both pathogens at 4 h and by 24 h had completely abolished the recovery of viable Staph. aureus and Strep. pyogenes. These reductions were more significant than the reductions induced by probiotics or green tea extracts used separately. These results demonstrate the potential for combined therapy using the green tea extract plus probiotics on microbial infections caused by Staph. aureus and Strep. pyogenes. As probiotics and the green tea extract are derived from natural products, treatment with these agents may represent important adjuncts to, or alternatives to, conventional antibiotic therapy.
An instrument for evaluating the quality of government websites is described. It takes the form of a questionnaire resident within spreadsheet or database software so that an automatically determined evaluation may be indicated following input of data. The 106 questions included are derived from previous research regarding significant components of successful websites, along with interviews with developers of portals at different levels of Australian government. The instrument may be easily tailored to accommodate varying requirements at different levels of government, and used as a basis for extended internal evaluation of their own websites by agencies. The instrument also embodies explanations of the survey questions that are asked, along with advice on how to determine sought-after information from sites.
The aim of the present study was to identify suitable prebiotics for synergistic combinations with representative probiotics from the lactobacilli and bifidobacterium genera. Eleven different types of commercially available carbohydrates and compounds were screened in basal media for their effects on the growth of the probiotic cultures Lactobacillus acidophilus LAFTI® L10 (L10), Bifidobacterium animalis lactis LAFTI® B94 (B94) and Lactobacillus casei LAFTI® L26 (L26). Growth of these probiotics was investigated by measuring optical density (OD) levels over a period of 48 h. The results of this study showed that all three probiotic strains were able to utilize a range of carbohydrates. Maximal growth of L10 was observed in basal medium supplemented with soybean oligosaccharide (SOS), followed by fructooligosaccharide (FOS) and inulin, while maximal growth of B94 was observed in basal medium supplemented with SOS, followed by raffinose, FOS, β-glucan hydrolysate, inulin and Fibregum TAN. L26 was shown to exhibit maximal growth in basal medium supplemented with FOS followed by inulin, SOS, β-glucan hydrolysate and β-glucan concentrate. The results of this study indicate that several carbohydrates/compounds can enhance the growth of these representative probiotic strains in vitro.
Reduced concentration of IgA in saliva and increased shedding of Epstein Barr Virus (EBV) have been associated with fatigue, recurrent sore throats and impaired performance in athletes. Lactobacillus acidophilus enhances mucosal immunity in an animal model and might be beneficial to athletes. PURPOSE: To determine whether athletes presenting with fatigue and recurrent sore throats had an immune defect relevant to defective containment of EBV infection, and whether a probiotic preparation (Lactobacillus acidophilus) could reverse any detected abnormality. METHODS: Nine athletes with clinical characteristics consistent with reactivation of EBV infection and 18 healthy athletes participated in a randomised placebo-controlled cross-over trial. Saliva and blood samples were collected prior to and following a 4 weeks course of L. acidophilus taken as a daily capsule containing 2 × 1010colony forming units. Unstimulated, non-fasting, whole mixed saliva samples were collected and levels of salivary IgA (ELISA), osmolality, interferon gamma (INF-γ), and EBV-DNA (PCR) determined. Cytokine secretions (interleukin-4, INF-y, mterleukm-12) from CD4+ T-cells in whole blood cultures were also determined. Non-parametric statistical methods were used to compare healthy and fatigued athletes and their responses to probiotic treatment. RESULTS: The majority (8 out of 9) of the fatigued athletes were seropositive for EBV; 5 of these athletes had detectable EBV-DNA prior to the probiotic compared to one athlete after treatment. Prior to treatment, fatigued athletes had significantly (P=0.02) less secretion of INF-γ from blood CD4+ T cells. Following treatment, secretion of INF-γfrom blood CD4+ T cells (P=0.02) and in saliva (P=0.06) was higher in both groups. The INF-γ levels in the fatigued group were not different to those of healthy athletes. CONCLUSION: Reduced secretion of INF-γ, a cytokine intricately linked to mechanisms of control of both virus shedding and disease reactivation, was observed in symptomatic athletes. Treatment with the probiotic L. acidophilus may be effective in protecting mucosal immunity in athletes.
A method was developed to allow detection of the probiotic Bifidobacterium lactis LAFTI(R)B94 in human clinical samples. A new p robe, Laf94p, was developed to accomplish colony hybridization of B. lactis B94. PCR detection of B94 was also achieved using the species-specific (R. lactis) primer pair. These tests and probes allowed detection and quantification of B94 in the human intestinal flora. The sensitivity of the probe was assessed by monitoring faecal levels of B94 in humans who were fed the culture. In this trial, five volunteers were fed with the probiotic. The presence of B94 was assessed daily. Viable B94 could be detected at high levels (as high as 1.8 x 10(9) cfu g(-1) wet weight) during the feeding period. Four weeks after the feeding stopped, B94 could still be detected in one subject. These results indicate that B94 survives in the human gastrointestinal tract. (C) 2005 Federation of European Microbiological Societies. Published by Elsevier B.V. All rights reserved.
We propose a new development scheme for quality-aware applications, quality-driven development (QDD), based on the Model-Driven Architecture (MDA) of Object Management Group OMG. We argue that software development in areas, such as real-time systems, should not only rely on code verification, but also on design verification, and show that a slightly extended MDA process offers the opportunity to integrate system development together with design verification. As an instance of the method, we present the MDA-based tool environment of the HIDOORS project [Karlsruhe James Hunt. Forschungszentrum Informatik. High-integrity distributed object- oriented real-time systems. http://www.hidoors.org]. In this environment, a real-time model checker is interpreted as a platform in the sense of MDA. UML designs can be annotated with verification markup, which is not only compiled to code, but also to a design verification model of the verification platform, the model-checker. In this way, model-checking for real-time designs is integrated into the model-driven development process and allows for early verification. The approach can easily be transfered to other verification techniques. We give a preliminary classification of the possible verification platforms and analyse their interplay. The analysis reveals that for quality-aware application areas, the standard MDA approach should be extended by one or more MDA stacks for model-driven verification (MDV). The resulting approach, quality-driven development (QDD), is, to our knowledge, the first systematic approach to integrate code generation and verification in model-driven development.
This review examines current knowledge regarding the safety of probiotic bacteria in man. Tighter and more comprehensive standards and regulations will be developed as probiotic therapy moves from a limited number of products used in the food industry, into more defined therapeutic categories and more complex organisms. A new framework considering probiotics as nonspecific promoters of mucosal immunity, defines probiotic characteristics and the clinical circumstances in which it is used. For example, those with immune deficiency taking a high dose of viable bacteria may have an increased risk. A wider range of bacteria is now being used, sometimes in territories other than the gut mucosa. The question of competition with multiple isolates must be addressed, as does the use of nonselected faecal isolates. Transfer of antibiotic resistance with probiotics acting as a ‘shuttle’ needs clarification. These issues are addressed and reviewed as probiotics evolve into a new therapeutic arena.
Probiotics are defined as live microbial food ingredients that confer significant health benefit to the host. They are mainly used in fermented dairy products and in dietary supplements. Probiotics have a long history of safe use and especially lactic acid bacteria (LAB), including bifidobacteria and lactobacilli, are thought to have most beneficial effects on human health. The latter have shown to protect individuals specifically against pathogens and infections, to boost and down-regulate different parts of the immune system, including a reduction of allergic responses and to exert some cancer preventive effects. Recent progress in well-designed and controlled human studies has been made in order to elucidate the mechanisms by which probiotics benefit human health.
This paper provides a definition of Round-trip Engineering ( RE) and introduces RE-systems. Where previous definitions of RE are abstract in the sense that they treat views as black boxes this paper provides a mor e detailed definition in which views are transparent. Having transparent views en abl s us to reason about what happens to views during transformations. This wi ll enable studies on the requirements on views, view transformations and view op erations and how these relate to each other. RE-systems may include multiple domains and transformations between those domains. This will enable studies on the requirements on complete RE-systems.