scispace - formally typeset
Search or ask a question

Showing papers on "Software development published in 1991"


Journal ArticleDOI
TL;DR: The emerging discipline of software risk management is described, it is defined as an attempt to formalize the risk-oriented correlates of success into a readily applicable set of principles and practices.
Abstract: The emerging discipline of software risk management is described. It is defined as an attempt to formalize the risk-oriented correlates of success into a readily applicable set of principles and practices. Its objectives are to identify, address, and eliminate risk items before they become either threats to successful software operation or major sources of software rework. The basic concepts are set forth, and the major steps and techniques involved in software risk management are explained. Suggestions for implementing risk management are provided. >

1,635 citations


Book
01 May 1991
TL;DR: A text on industrial system development using object- oriented techniques, rather than a book on object-oriented programming, will be useful to systems developers and those seeking a deeper understanding of object orientation as it relates to the development process.
Abstract: A text on industrial system development using object- oriented techniques, rather than a book on object-oriented programming. Will be useful to systems developers and those seeking a deeper understanding of object orientation as it relates to the development process.

1,474 citations


J Rumbaugh, M Blaha, W Premerlani, F Eddy, W Lorenson 
01 Jan 1991
TL;DR: This volume presents a new object-oriented software development methodology - from analysis, through design, to implementation, and applies techniques to the entire software development cycle.
Abstract: Object-oriented modelling and design promote better understanding of requirements, cleaner designs and more maintainable systems. Often, books on related subjects rely on programming and coding, forcing readers to think in terms of the computer, and not the application. "Object-oriented Modeling and Design" emphasizes that object-oriented technology is more that just a way of programming. It applies techniques to the entire software development cycle. This volume presents a new object-oriented software development methodology - from analysis, through design, to implementation. Key features of the book include a focus on high-level, front-end conceptual processes of analysis and design, rather than just on the low-level, back-end implementation steps of programming; coverage of the entire development life cycle - analysis, design, implementation without a change of notation at each stage; a presentation of graphical notation and methodology independent of any particular programming language; case studies of industrial object-oriented applications developed by the authors; and examples and exercises that bring out fine points, summary lists of concepts and methodology steps, and almost 300 diagrams.

1,166 citations


Book
01 Jan 1991
TL;DR: A scientific model of the software project management process based on focused field interviews and includes a detailed case study that was conducted to test the model.
Abstract: Presents a scientific model of the software project management process based on focused field interviews and includes a detailed case study that was conducted to test the model. Covers human resource management, software production, controlling and planning.

698 citations


Journal ArticleDOI
TL;DR: The authors may not be able to make you love reading, but performance engineering of software systems will lead you to love reading starting from now.

604 citations


Journal ArticleDOI
TL;DR: The conclusions of the experience are: reuse library technology is available, it is transferable, and it definitely has a positive financial impact on the organization implementing it.
Abstract: Experience with the development, implementation, and deployment of reuse library technology is reported. The focus is on organizing software collections for reuse using faceted classifications. Briefly described are the successfully GTE Data Services' Asset Management Program and the steps taken at Contel for furthering reuse technology. The technology developed for reuse libraries is presented, followed by a description of how it was transferred. The experience described indicates that reuse library technology is available and transferable, and that it definitely has a positive financial impact on the organization implementing it. >

542 citations


Journal ArticleDOI
TL;DR: The Mothra software testing project uses mutation analysis as the basis for an integrated software testing environment that translates a program to be tested into intermediate code so that it and its mutated versions can be executed by an interpreter.
Abstract: Mutation analysis is a powerful technique for testing software systems. The Mothra software testing project uses mutation analysis as the basis for an integrated software testing environment. Mutation analysis requires executing many slightly differing versions of the same program to evaluate the quality of the data used to test the program. The current version of Mothra includes a complete language system that translates a program to be tested into intermediate code so that it and its mutated versions can be executed by an interpreter. In this paper, we discuss some of the unique requirements of a language system used in a mutation-based testing environment. We then describe how these requirements affected the design and implementation of the Fortran 77 version of the Mothra system. We also describe the intermediate language used by Mothra and the features of the language system that are needed for software testing. The appendices contain a full description of the intermediate language and the mutation operators used by Mothra. The design and implementation techniques that were developed for Mothra are applicable for constructing not just software testing systems, but any type of program analysis system or language system for a special-purpose application. In particular, we discuss decisions made and techniques developed by the Mothra team that can be useful in such applications as debuggers, program measurement tools, software development environments and other types of program analysis systems.

385 citations


Book
01 Jan 1991

358 citations


Journal ArticleDOI
TL;DR: Three development contexts are examined to provide a framework for understanding interactive software development projects and strategies to cope with the gaps between developers and prospective users are explored at the general level of the three development paradigms.
Abstract: Three development contexts are examined to provide a framework for understanding interactive software development projects. These contexts are the competitively bid, commercial product, and in-house/custom contexts development. Factors influencing interactive systems development are examined. Specific strategies to cope with the gaps between developers and prospective users are explored at the general level of the three development paradigms. >

356 citations


Book
01 Jul 1991
TL;DR: Details the different activities of software development with a case-study approach whereby a project is developed through the course of the book The sequence of chapters is essentially the same as the sequence of activities performed during a typical software project.
Abstract: Details the different activities of software development with a case-study approach whereby a project is developed through the course of the book The sequence of chapters is essentially the same as the sequence of activities performed during a typical software project.

350 citations


Journal ArticleDOI
TL;DR: The results show that automated techniques can reduce the amount of code that a domain expert needs to evaluate to identify reusable parts.
Abstract: Identification and qualification of reusable software based on software models and metrics is explored. Software metrics provide a way to automate the extraction of reusable software components from existing systems, reducing the amount of code that experts must analyze. Also, models and metrics permit feedback and improvement to make the extraction process fit a variety of environments. Some case studies are described to validate the experimental approach. They deal with only the identification phase and use a very simple model of a reusable code component, but the results show that automated techniques can reduce the amount of code that a domain expert needs to evaluate to identify reusable parts. >

Patent
25 Jan 1991
TL;DR: In this article, a networked system having a wide variety of applications and particularly applicable to facilities management systems has multiple levels of software in processing nodes, including a "features" processing level which communicates requests for data to a software object level containing databases of processes and attributes and database managers.
Abstract: A networked system having a wide variety of applications and particularly applicable to facilities management systems has multiple levels of software in processing nodes. The levels include a "features" processing level which communicates requests for data to a software object level containing databases of processes and attributes and database managers. The database managers in the software object level operate to provide data to the high level features in the same format. The software object level communicates with a hardware object level which also contains databases and database managers to mask differences between operational hardware units. By categorizing operational units by type, additional units of a known type can be added with only low level hardware object database changes. Adding units of a new type is facilitated by software changes confined to the lower level hardware and software objects, avoiding software changes at high level features. Individual software objects are tailored for typical types of inputs and output devices encountered by facilities management systems. Universal drive circuitry also provides applicability to a broad range of devices.

Journal ArticleDOI
TL;DR: An automated tool called the Requirements Apprentice (RA) which assists a human analyst in the creation and modification of software requirements is presented, which develops a coherent internal representation of a requirement from an initial set of disorganized imprecise statements.
Abstract: An automated tool called the Requirements Apprentice (RA) which assists a human analyst in the creation and modification of software requirements is presented. Unlike most other requirements analysis tools, which start from a formal description language, the focus of the RA is on the transition between informal and formal specifications. The RA supports the earliest phases of creating a requirement, in which ambiguity, contradiction, and incompleteness are inevitable. From an artificial intelligence perspective, the central problem the RA faces is one of knowledge acquisition. The RA develops a coherent internal representation of a requirement from an initial set of disorganized imprecise statements. To do so, the RA relies on a variety of techniques, including dependency-directed reasoning, hybrid knowledge representations and the reuse of common forms (cliches). An annotated transcript showing an interaction with a working version of the RA is given. >

Proceedings ArticleDOI
01 May 1991
TL;DR: A software tool that provides heuristic modularization advice for improving existing code is described, which will soon incorporate an automatic tuning method, which allows the tool to learn from its mistakes, adapting its advice to the architect's preferences.
Abstract: The author describes a software tool that provides heuristic modularization advice for improving existing code. A heuristic design similarity measure is defined, based on the Parna information hiding principle. The measure supports two services: clustering, which identifies groups of related procedures, and maverick analysis, which identifies individual procedures that appear to be in the wrong module. The tool has already provided useful advice in several real programming projects. The tool will soon incorporate an automatic tuning method, which allows the tool to learn from its mistakes, adapting its advice to the architect's preferences. A preliminary experiment demonstrates that the automatically tuned similarity function can assign procedures to modules very accurately. >

Journal ArticleDOI
TL;DR: An estimable production frontier model of software maintenance is developed, using a new methodology that allows the simultaneous estimation of both the production frontier and the effects of several productivity factors.
Abstract: The cost of maintaining application software has been rapidly escalating, and is currently estimated to comprise from 50-80% of corporate information systems department budgets. In this research we develop an estimable production frontier model of software maintenance, using a new methodology that allows the simultaneous estimation of both the production frontier and the effects of several productivity factors. Our model allows deviations on both sides of the estimated frontier to reflect the impact of both production inefficiencies and random effects such as measurement errors. The model is then estimated using an empirical dataset of 65 software maintenance projects from a large commercial bank. The insights obtained from the estimation results are found to be quite consistent for reasonable variations in the specification of the model. Estimates of the marginal impacts of all of the included productivity factors are obtained to aid managers in improving productivity in software maintenance.

Book
11 Oct 1991
TL;DR: This handbook helps you accurately measure the completion time frames for small-to-medium software development projects, with practical techniques for performing software estimates, productivity measurements and quality forecasts.
Abstract: From the Publisher: This book helps you accurately measure the completion time frames for small-to-medium software development projects, with practical techniques for performing software estimates, productivity measurements and quality forecasts. It forms a common underlying methodology, helping you plan the project, create a budget, and set schedules and quality standards. Throughout, the handbook answers the management questions you've always been asking yourself about software projects, including: How long is it going to take? ... How much will it cost? ... How many people will I need? ... What is my risk on meeting the budget? ... What is my risk on meeting the schedule? Appropriate for software engineers, developers, and managers.

Journal ArticleDOI
TL;DR: Assessing testability from program specifications and an experiment shows that it takes less time to build and test a program developed from a domain-testable specification than a similar program developing from a nondomain- testable specification are discussed.
Abstract: The concept of domain testability of software is defined by applying the concepts of observability and controllability to software. It is shown that a domain-testable program does not exhibit any input-output inconsistencies and supports small test sets in which test outputs are easily understood. Metrics that can be used to assess the level of effort required in order to modify a program so that it is domain-testable are discussed. Assessing testability from program specifications and an experiment which shows that it takes less time to build and test a program developed from a domain-testable specification than a similar program developed from a nondomain-testable specification are also discussed. >

Journal ArticleDOI
TL;DR: Using these criteria, analysis procedures can be defined for particular state-machine modeling languages to provide semantic analysis of real-time process-control software requirements requirements.
Abstract: A set of criteria is defined to help find errors in, software requirements specifications. Only analysis criteria that examine the behavioral description of the computer are considered. The behavior of the software is described in terms of observable phenomena external to the software. Particular attention is focused on the properties of robustness and lack of ambiguity. The criteria are defined using an abstract state-machine model for generality. Using these criteria, analysis procedures can be defined for particular state-machine modeling languages to provide semantic analysis of real-time process-control software requirements. >

Journal ArticleDOI
TL;DR: It is recommended that every department should gain an insight into its reasons for delay in order to be able to take adequate actions for improvement.
Abstract: A study of the reasons for delay in software development is described. The aim of the study was to gain an insight into the reasons for differences between plans and reality in development activities in order to be able to take actions for improvement. A classification was used to determine the reasons. 160 activities, comprising over 15000 hours of work, have been analyzed. The results and interpretations of the results are presented. Insight into the predominant reasons for delay enabled actions for improvements to be taken in the department concerned. Because the distribution of reasons for delay varied widely from one department to another, it is recommended that every department should gain an insight into its reasons for delay in order to be able to take adequate actions for improvement. >


Proceedings ArticleDOI
01 May 1991
TL;DR: The intent of this paper’s intent is to highlight the user concepts provided by existing CM sysgiven in texts such as [3] and [4].
Abstract: There has been considerable progress con1.1 Definition of Configuration Management cerning support for software configuration management Software CM is a discipline for controlling the evolution (CM) in environments and tools. This paper’s intent is to of software systems. Classic discussions about CM are highlight the user concepts provided by existing CM sysgiven in texts such as [3] and [4]. A standard definition tems. These are shown as a spectrum. In the spectrum, taken from IEEE standard 729-1983 [16] highlights the folconcepts are seen as extensions to, or generalizations of, lowing operational aspects of CM: other concepts. There is difficulty associated with extract• Identification: an identification scheme ing concepts from CM systems since there is no commonreflects the structure of the product, identifies ality in terminology concerning CM functionality throughcomponents and their type, making them out the software engineering community and many CM unique and accessible in some form. systems implement variations on concepts. As a result, each • Control: controlling the release of a product concept presented is described as it exists in one particular and changes to it throughout the lifecycle by CM system. A part of highlighting the concepts involves having controls in place that ensure consistent software via the creation of a baseline product. discussing the scope of issues important to users of CM systems. No single CM system provides all the function• Status Accounting: recording and reporting the status of components and change requests, ality required by the different kinds of users of CM sysand gathering vital statistics about components tems. Rather, each CM system addresses some part of the in the product. spectrum of concepts. To complete the report, the CM ca• Audit and review: validating the completepabilities of the systems used as examples are briefly deness of a product and maintaining consistency scribed. among the components by ensuring that the product is a well-defined collection of components.

Journal ArticleDOI
Terry Bollinger1, C. McGowan
TL;DR: The methods used by the Software Engineering Institute (SEI) Software Capability Evaluation program (SCE) are assessed and it is concluded that the system is so seriously and fundamentally flawed that it should be abandoned rather than modified or updated.
Abstract: The methods used by the Software Engineering Institute (SEI's) Software Capability Evaluation program (SCE) are assessed. The goal of the SCE program is to provide the US Defense Department with a method by which it can rank the overall capability of organizations to produce software in a timely, repeatable fashion. Because SEI assessments are a preparation for SCEs, the authors first describe the major steps in an SEI process assessment and highlight its strengths and weaknesses. The SCE grading methods are described, focusing on their statistical reliability. It is concluded that the system is so seriously and fundamentally flawed that it should be abandoned rather than modified or updated. SEI's overall process-improvement paradigm, that is, the set of goals and directions it is trying to impart to the industry through its assessment and evaluation programs, is examined. It is suggested that the assessment program needs some type of structured, preferably graphical, method for recording the details of an organization's existing processes. >

Journal ArticleDOI
TL;DR: In this article, the authors examined the productivity implications of object and repository-based integrated computer-aided software engineering (ICASE) software development in the context of a major investment bank's information systems strategy.
Abstract: Growing competition in the investment banking industry has given rise to increasing demand for high functionality software applications that can be developed in a short period of time. Yet delivering such applications creates a bottleneck in software development activities. This dilemma can be addressed when firms shift to development methods that emphasize software reusability. This article examines the productivity implications of object and repository-based integrated computer-aided software engineering (ICASE) software development in the context of a major investment bank's information systems strategy. The strategy emphasizes software reusability. Our empirical results, based on data from 20 projects that delivered software for the bank's New Trades Processing Architecture (NTPA), indicate an order of magnitude gain in software development productivity and the importance of reuse as a driver in realizing this result. In addition, results are presented on the extent of the learning that occurred over a two-year period after ICASE was introduced, and on the influence of the link between application characteristics and the ICASE tool set in achieving development performance. This work demonstrates the viability of the firm's IS strategy and offers new ideas for code reuse and software development productivity measurement that can be applied in development environments that emphasize reuse.

Journal ArticleDOI
TL;DR: The empirical results support the effectiveness of the data bindings clustering approach for localizing error-prone system structure and quantify ratios of coupling and strength in software systems.
Abstract: Using measures of data interaction called data bindings, the authors quantify ratios of coupling and strength in software systems and use the ratios to identify error-prone system structures. A 148000 source line system from a prediction environment was selected for empirical analysis. Software error data were collected from high-level system design through system testing and from field operation of the system. The authors use a set of five tools to calculate the data bindings automatically and use a clustering technique to determine a hierarchical description of each of the system's 77 subsystems. A nonparametric analysis of variance model is used to characterize subsystems and individual routines that had either many or few errors or high or low error correction effort. The empirical results support the effectiveness of the data bindings clustering approach for localizing error-prone system structure. >

Journal Article
TL;DR: An approach in the design, documentation, and evaluation of computer systems that enables the systematic comparison of the program behavior with the engineering specifications of the computer system is outlined.
Abstract: This article outlines an approach in the design, documentation, and evaluation of computer systems. This allows the use of software in many safety-critical applications because it enables the systematic comparison of the program behavior with the engineering specifications of the computer system. Many of the ideas in this article have been used by the Atomic Energy Control Board of Canada in its safety assessment of the software for the shutdown systems of the Darlington Station. The four main elements of this approach follow: (1) Formal Documentation of Software Requirements: Most of the details of a complex environment can be ignored by system implementers and reviewers if they are given a complete and precise statement of the behavioral requirements for the computer system. We describe five mathematical relations that specify the requirements for the software in a computerized control system. (2) Design and Documentation of the Module Structure: Complexity caused by interactions between separately written components can be reduced by applying Data Abstraction, Abstract Data Types, and Object-Oriented Programming if the interfaces are precisely and completely documented. (3) Program Function Documentation: Software executions are lengthy sequences of state changes described by algorithms. The effects of these executive sequences can be preciselymore » specified documented with tabular presentations of the program functions. Also, large programs can be decomposed and presented at a collection of well-documented smaller programs. (4) Tripod Approach to Assessment: There are three basic approaches to the assessment of complex software products: (i) testing, (ii) systematic inspection, and (iii) certification of people and processes. Assessment of a complex system cannot depend on any one of these alone. The approach used on the Darlington shutdown software, which included systematic inspection as well as planned and statistically designed random testing, is outlined.« less

Book
01 Sep 1991
TL;DR: The successful performance of a CM activity requires early involvement in the development phases, early planning for support and maintenance, and assignment of the necessary authority and resources to implement the CM process on a software program or project.
Abstract: The Need and Importance of Configuration Management in Software Development. A Short History of Configuration Management. Configuration Management Relationships. Configuration Management Defined. Configuration Management in the Software Engineering Environment. The Planning and Organizing of Configuration Management. The Configuration Management Activities: Identification. Performing the Change Control Activity. Performing the Status Accounting Activity. Performing Configuration Audits. Performing Interface Control. Performing Sub-Contractor Control. Establishing and Maintaining the Software Library. Software Tools. Configuration Management with Ada. Performing the Software Support Process. Training Guidelines. Notes. Appendices. Index.

Journal ArticleDOI
TL;DR: Improving software quality, making software engineering technology more transferable, and transferring software technology into an organization are addressed.
Abstract: The engineering process that underlies software development is examined. A brief summary of how information technology has affected both institutions and individuals in the past few decades is given. Engineering with models and metrics is then discussed. Improving software quality, making software engineering technology more transferable, and transferring software technology into an organization are addressed. >

Journal ArticleDOI
TL;DR: It is argued that a simple alternative to copying as a data movement primitive-swapping (exchanging) the values of two variables-has potentially significant advantages in the context of the design of generic reusable software components.
Abstract: The authors argue that a simple alternative to copying as a data movement primitive-swapping (exchanging) the values of two variables-has potentially significant advantages in the context of the design of generic reusable software components. Specifically, the authors claim that generic module designs based on a swapping style are superior to designs based on copying, both in terms of execution-time efficiency and with respect to the likelihood of correctness of client programs and module implementations. Furthermore, designs based on swapping are more reusable than traditional designs. Specific arguments and examples to support these positions are presented. >

Book
01 Jan 1991
TL;DR: Focusing on software engineering needs, rather than human factors issues, the overall goal is to facilitate the development of less costly and more effective user interfaces.
Abstract: From the Publisher: This book provides the information needed to design and build user interface software. Focusing on software engineering needs, rather than human factors issues, the book's overall goal is to facilitate the development of less costly and more effective user interfaces.

Journal ArticleDOI
TL;DR: The model is shown to provide a unified approach in which the user's requirements and preferences are formally integrated with the technical structure of the software and its module and program reliabilities, making reliability a singular measure for performance evaluation and project control.
Abstract: A software reliability allocation model is developed. This model determines how reliable software modules and programs must be in order to maximize the user's utility, while taking into account the financial and technical constraints of the system. The model is shown to provide a unified approach in which the user's requirements and preferences are formally integrated with the technical structure of the software and its module and program reliabilities. The model determines reliability goals at the planning and design stages of the software project, making reliability a singular measure for performance evaluation and project control. An example for the application of the model is provided. >