A well structured design is an essential feature in the development of a software system. Assessment of the design throughout the development process is therefore an important task. However, it can be a difficult and highly subjective process. We present tools to assist in the evaluation of designs of Ada systems. These tools furnish two different abstract views of the system structure, one focusing on control flow and the other on data coupling. We identify the effect of three classes of design methodologies on these views, and discuss how to use the views to facilitate design assessment.
This paper presents the results of a metric-based investigation into the nature and benefits of reuse in an Ada development environment. Four medium scale Ada projects developed in one organization over a three year period were analyzed. The study indicates benefits of reuse in terms of reduced error density and increased productivity. The Ada generic features are observed as an enabler of reuse at higher levels of abstraction. Finally, using several metrics, we identify trends indicating an improving reuse process.
Component and service-based application infrastructures provide mechanisms for efficiently composing a system from a diverse collection of components and services. However, because of the lack of insight into the components and services within the application, integrating changes can be challenging. One class of change that we perceive as being both common and necessary is in the area of policy adherence (i.e., the constraints on a system's behavior that are imposed across the system). Unless the mechanisms that implement the policy are well isolated from the core application logic, any upgrade to the policy can have a ripple effect through the system. For systems that require robust certification, this ripple effect hampers the ability to rapidly deploy changes in policy. In this paper we highlight some patterns for separating policy adherence from application core logic, and discuss how these patterns can be mapped to commercially available infrastructures. By realizing these patterns as common infrastructure extensions, we allow applications to be developed in a manner consistent with the commercial infrastructure, provide the power of policy enforcement mechanisms to the system developers, and separate the policy enforcement logic from core application functionality.
For high-confidence systems, substantial effort is expended to ensure that the system will behave in an expected manner. This paper presents the position that a commercial off the shelf Enterprise JavaBeansTM (EJBTM) container can be extended to constrain the behavior of high confidence software. These extensions are based on techniques that are not new; developers of high confidence software use these techniques already. We discuss how adding services to the container allows verification and validation of high confidence properties to be performed at the container level where they will require less revalidation when business logic changes. We present two examples of container augmentations, one based on communication mediators and one based on application monitors. These examples illustrate how method-level preconditions and postconditions, and application-level invariants can be asserted by an EJB container.
1 INTRODUCTION Software is increasingly being used in systems where the consequence of failure is high. For example, software is being used in systems that threaten life, health, national security, the environment, and the economy. Also, in an effort to decrease software cost and speed time-to-market software developers are increasing their use of COTS software. Operating systems, middleware, software components, and software frameworks are being purchased off-the-shelf and included in critical applications. Yet there are few if any ways to determine adequate software components from inadequate ones. Nor are there adequate ways to determine the effect that replacing software components will have on the system's behavior.
The software industry has made extensive use of commercial software tools such as compilers and editors in development environments of computer-based systems for several decades. However, in recent years an emerging trend is the extensive use of commercial off-the-shelf (COTS) software products as a major part of delivered software systems. It is generally recognized that this trend introduces a significant change to the development of computer-based systems. The thrust of this paper is that this trend also introduces a significant change to the software maintenance process. The paper addresses some of the issues involved in the maintenance of COTS-intensive software systems, and the reasons why the COTS factor constitutes a significant change from traditional software maintenance processes. Finally, some lessons learned are offered as suggestions for addressing the issues in the maintenance of COTS-intensive systems. © 1997 John Wiley & Sons, Ltd.
Component reuse is widely considered vital for obtaining significant improvement in development productivity. However, as an organization adopts a reuse-oriented development process, the nature of the problems in development is likely to change. In this article, we use a measurement-based approach to better understand and evaluate an evolving reuse process. More specifically, we study the effects of reuse across seven projects in narrow domain from a single development organization. An analysis of the errors that occur in new and reused components across all phases of system development provides insight into the factors influencing the reuse process. We found significant differences between errors associated with new and various types of reused components in terms of the types of errors committed. In addition, we identified differences when errors are introduced and the effect that the errors have on the development process.
Reuse has been advocated as a technique with great potential to increase software development productivity, reduce development cycle time, and improve product quality [AM87, Bro87, BP88]. However, reuse will not just happen{rather, components must be designed for reuse, and organizational elements must be in place to enable projects to take advantage of the reusable artifacts. Basili and Rombach present a framework of comprehensive support for reuse, including organizational and methodological properties necessary to maximize the benet of reuse [BR91]. For reuse to attain a signicant r o l e i n a n e n vironment, organizational changes must be made to facilitate the change in development s t yle. Maintaining a library of reusable parts may require resources including personnel, hardware, and software. While increasing Component reuse is widely considered vital for obtaining signicant improvement in development productivity. However, as an organization adopts a reuse-oriented development process,the nature of the problems in development i s l i k ely to change. In this paper, we use a measurement{based approach to better understand and evaluate an evolving reuse process. More specically, w e study the eects of reuse across seven projects in narrow domain from a single development organization. An analysis of the errors that occur in new and reused components across all phases of system development provides insight i n to the factors in BLOCKINuencing the reuse process. We found signicant dierences between errors associated with new and various types of reused components in terms of the types of errors committed, when errors are introduced, and the eect that the errors have on the development process.
Article Predicting software quality for reuse certification Share on Authors: William M. Thomas The MITRE Corporation, 7525 Colshire Drive, McLean, VA The MITRE Corporation, 7525 Colshire Drive, McLean, VAView Profile , Deborah A. Cerino Rome Laboratory (AFMC), 525 Brooks Road, Griffiss AFB, NY Rome Laboratory (AFMC), 525 Brooks Road, Griffiss AFB, NYView Profile Authors Info & Claims TRI-Ada '95: Proceedings of the conference on TRI-Ada '95: Ada's role in global markets: solutions for a changing complex worldNovember 1995 Pages 367–377https://doi.org/10.1145/376503.376663Online:01 November 1995Publication History 2citation606DownloadsMetricsTotal Citations2Total Downloads606Last 12 Months1Last 6 weeks0 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access
We need to be able to learn from past experiences so we can improve our software processes and products. The Experience Factory is an organizational structure designed to support and encourage the effective reuse of software experiences. This structure consists of two organizations which separates project development concerns from organizational concerns of experience packaging and learning. The experience factory provides the processes and support for analyzing, packaging, and improving the organization's stored experience. The project organization is structured to reuse this stored experience in its development efforts. However, a number of questions arise: What past experiences are relevant? Can they all be used (reused) on our current project? How do we take advantage of what has been learned in other parts of the organization? How do we take advantage of experience in the world-at-large? Can someone else's best practices be used in our organization with confidence? This paper describes approaches to help answer these questions. We propose both quantitative and qualitative approaches for effectively reusing software development experiences.
to build models of the software process, product, and other forms of experience (e.g., effort, schedule, and reliability) for the purpose of prediction.
The authors present an automated modeling technique which can be used as an alternative to regression techniques to improve the quality of the software development process. The modeling process will allow for the reliable detection of potential problem areas and for the interpretation of the cause of the problem so that the most appropriate remedial action can be taken. It is shown that it can be used to facilitate the identification and aid the interpretation of the significant trends which characterize high risk components in several Ada systems. The effectiveness of the technique is evaluated based on a comparison with logistic regression based models
In order to plan, control, and evaluate the software development process, one needs to collect and analyze data in a meaningful way. Classical techniques for such analysis are not always well suited to software engineering data. A pattern recognition approach for analyzing software engineering data, called optimized set reduction (OSR), that addresses many of the problems associated with the usual approaches is described. Methods are discussed for using the technique for prediction, risk management, and quality evaluation. Experimental results are provided to demonstrate the effectiveness of the technique for the particular application of software cost estimation.
Repelling magnets, which were anchored to amod0od Nance appliance cemented on the first premolars, were activated against the maxillary first molars to move them distally. Eighty percent of the space created represented distal movement of the first molars.