By Topic

Software Maintenance, 1990, Proceedings., Conference on

Date 26-29 Nov. 1990

Filter Results

Displaying Results 1 - 25 of 50
  • Proceedings. Conference on Software Maintenance 1990 (Cat. No.90CH2921-5)

    Save to Project icon | Request Permissions | PDF file iconPDF (41 KB)  
    Freely Available from IEEE
  • SEELA: maintenance and documenting by reverse-engineering

    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (80 KB)  

    Summary form only given. An interactive reverse-engineering tool, SEELA, supports the maintenance and documentation of structured programs. It features a top-down program display that increases the readability of structured programs and it includes a structure editor, browser, pretty printer, and source code document generator. SEELA works with Ada, Cobol C, Pascal, PL/M, and Fortran code. SEELA was designed to bridge the gap between a project's design description and source code. Instead of requiring a separate program-design-language (PDL) description, it analyzes the source code and projects it on the screen so that it appears as a readable PDL code View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Decision-based-support-paradigm: a new method to structure source code

    Page(s): 218 - 229
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (928 KB)  

    The decision-based software development (DBSD) paradigm is being developed to support the process of developing and maintaining software systems. The DBSD paradigm views the design process as a series of interrelated decisions which involve the identification and articulation of problems, alternatives, solutions, and justifications. Decisions made by programmers and analysts are recorded in a project database. Unresolved problems are also recorded, and resources for their resolution are allocated by management according to the overall development strategy. This decision structure is linked to the products affected by the relevant decisions and provides a process-oriented view of the resulting system. Software maintenance uses this decision view of the system to understand the rationale behind the decisions affecting the part of the system to be modified. The relationships between decisions help assess the impact of changing one or more decisions. The authors describe D-HyperCase, a prototype decision-based hypermedia system and give results of applying the DBSD approach during its development View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • An investigation into software maintenance-perception and practices

    Page(s): 130 - 140
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (876 KB)  

    The authors present the results of a survey conducted on the perceptions and practices in software maintenance in five major companies in the United Kingdom. It is clear from the study that software maintenance is undergoing a significant transformation, in particular, in terms of its image, its relationship with users, and the nature of software maintenance tools required. The image of the software maintenance task appears to be changing from one which is dull, passive, and isolated to one which is reactive, responsive, and vital to the business. Maintenance departments are becoming more accountable to user departments and are developing a market orientation. The study found little use of existing software maintenance tools and identified a need for support technology which will facilitate communication among users, developers, and maintenance staff. The authors present the background to the investigation, the procedures followed, a summary of current practice, and an analysis of the problems and trends identified View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Semi-automatic bug localization in software maintenance

    Page(s): 30 - 36
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (564 KB)  

    An algorithmic program debugger for imperative languages is presented, with Pascal as an example case. This debugger extends the power of existing debuggers by providing an interactive debugging facility where errors can be localized semiautomatically. The debugger is activated on demand when the user discovers a symptom of an error as the result of some computation. This symptom presumably denotes a difference between the intended program behavior and the actual behavior. The proposed approach consists of three phases: program transformation, tracing, and debugging. The first phase transforms the source program into an internal representation which is appropriate, according to the Shapiro model, for algorithmic debugging. This phase produces an intermediate program which is free from side effects and loops. The program tracing phase generates trace information which builds an execution tree for the erroneous program. The debugging phase performs bug localization through a number of user interactions. This phase consists of pure algorithmic program debugging and program slicing View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Application of formal specification to software maintenance

    Page(s): 230 - 241
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (888 KB)  

    The authors describe the use of formal specifications and associated tools in addressing various aspects of software maintenance-corrective, perfective, and adaptive. They also address the refinement of the software development process to build programs that are easily maintainable. The task of software maintenance in this case includes the task of maintaining the specification, as well as the program. The authors focus on the use of Anna, a specification language for formally specifying Ada programs, to aid in maintaining Ada programs. The techniques are applicable to most other specification language and programming language environments. The tools of interest are (1) the Anna Specification Analyzer, which permits analysis of the specification for correctness with respect to the informal understanding of program behavior; and (2) the Anna Consistency Checking System, which monitors the Ada program at run time on the basis of the Anna specification View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Software maintenance management in Tunisia: A statistical study

    Page(s): 124 - 129
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (352 KB)  

    A recent statistical study of the various economic aspects of software maintenance management in Tunisia is presented. The study confirms a well-known results, that software maintenance is very time consuming. It was also found that software maintenance escapes the software manager's notice. In the study, only one in ten managers considers maintenance problems important or very important. In addition, it was shown that the longevity of software applications does not depend on the data processing environment. It is concluded that software maintenance is controllable. Combined with appropriately calibrated cost-estimation techniques, organizational steps developed by the community of software practitioners can be arranged into an integrated policy for software maintenance View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Algorithm for graphic layout in VIFOR

    Page(s): 142 - 145
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (200 KB)  

    VIFOR is a software tool for maintenance of large Fortran programs. The distinguishing feature of VIFOR layouts is the placement of all nodes into two columns depending on their class, which is referred to as a two-column graph (2CG). The 2CG consists of two subgraphs, the call graph and the reference graph. The algorithm proposed first builds the call graph by determining the positions of the nodes in the process column, and then it appends the reference graph to the drawing. The part of the algorithm that builds the layout of the call graph is described. The algorithm tries to communicate as much information about the call graph as possible. The space optimization is considered to be secondary View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Software transition: a case study

    Page(s): 200 - 204
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (380 KB)  

    One of the major topics during discussions regarding life cycle software support is the transition of the support responsibility from a software developer organization to a software maintenance organization. In many cases these are entirely different and distinct organizations, and the difference creates some problems and necessitates sound planning. The authors describe a case study of the successful transitioning of two systems from the developer to a new software maintenance organization. The following issues were addressed: When is the hardware required for the SSA (software support activity)? What is the hardware suite that will be provided to the SSA? What level of manning is required? What is the phasing plan for the agreed upon manning level? When is the manning agreed upon? Does the SSA get involved during development of the system? Does the SSA play an active role in preliminary design reviews and critical design reviews? View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Data abstraction in a software re-engineering reference model

    Page(s): 2 - 11
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (800 KB)  

    The process of software reengineering must incorporate techniques for manipulating software which is imperative, declarative, or functional in nature. This generality needs a mechanism for deriving the original requirements of the underlying data structures contained within the source code itself. A reference model is proposed from which it is possible to derive the necessary techniques required to implement such a mechanism. The proposed model, the source code reengineering reference model (SCORE/RM), consists of eight layers (encapsulation, transformation, normalization, interpretation, abstraction, causation, regeneration, and certification) which provide a step-by-step approach to rationalizing the software, comprehending its functions and requirements, and rebuilding it according to well-established practices of software engineering. Such a framework can then be used to provide improved maintenance capability, language translation, retrospective standardization of the code and documentation, code migration onto parallel architectures, and formal specification View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Basic assembler language software re-engineering workbench (BAL/SRW)

    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (60 KB)  

    Summary form only given. The BAL/SRW is a set of software reengineering tools developed to help an analyst recover the design of an assembly program. This is achieved through a series of abstractions, which effectively collapse program functionality into progressively higher level concepts. The BAL/SRW does not automatically transform the assembly code into a different format, but provides tools for an analyst to uncover and document the program logic. The design recovery process begins with a surface analysis which provides the analyst with information characterizing the overall program complexity and information about the context in which the program executes. This general information can be used to estimate the re-engineering effort and make project management decisions. The outcome of the design recovery process is a graphically oriented program design, constructed by the analyst. The BAL/SRW has its own program design editor, which is a structured program definition tool View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • A model for estimating perfective software maintenance projects

    Page(s): 328 - 334
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (484 KB)  

    A perfective maintenance model applicable to information systems is introduced. This model results from a DELPHI study and is an adaptation of the function point analysis method. It uses four types of components: added, modified, suppressed, and untouched. When used for estimation, the model includes an environment factor and a unit cost per point curve. A validation experiment is also presented View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Potpourri module detection

    Page(s): 46 - 51
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (384 KB)  

    A potpourri module is a module that provides more than one service to a program. This form of module violates the idea of a module as a `responsibility assignment.' The existence of this form of module considerably increases the effort that a programmer has to expend on a software maintenance operation, and it increases the likelihood of an error being introduced into a program as a result of maintenance work. Techniques are presented for detecting potpourri modules that appear in programs written in a language that contains a module construct (such as Ada and Modula-2). Many of these techniques can be automated View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Improving software maintenance using system-level reverse engineering

    Page(s): 84 - 90
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (460 KB)  

    A FORTRAN reverse engineering software package is described which programmatically analyzes existing Fortran source code and generates complete structure charts and module specifications in a CASE environment. The user can also select options to create software trees and a variety of cross-reference tables. The use of these objects can increase programmer productivity by providing system-level details in a manner that can be easily understood. They also aid in the software maintenance process by providing the design baseline for future software modifications and added documentation of the software set. It is pointed out that integrating a system-level reverse engineering utility tool into a CASE environment is just one step toward improving programmer productivity and increasing success in the software maintenance process View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Insights on improving the maintenance process through software measurement

    Page(s): 37 - 45
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (604 KB)  

    The authors develop a model of software maintenance based upon an objective decision rule which determines whether a given software module can be effectively modified or whether it should instead be rewritten. Completely rewriting a module can be expensive, but it can be even more expensive if the module's structure has been severely degraded over successive maintenance activities. A module that is likely to experience significant maintenance activity is called change prone. The authors suggest that early identification of change-prone modules through the use of change measures across release cycles can be an effective technique in allocating maintenance resources View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • An object-oriented integrated software analysis and maintenance

    Page(s): 60 - 62
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (248 KB)  

    The author has developed a multiuser integrated software analysis and maintenance system, called SAMS, on top of an object-oriented DBMS. SAMS models the description of the various aspects of software systems by persistent object types and implements different software tools by operations of objects. Software systems which are maintained by using SAMS are represented by object instances. SAMS tightly integrates various software analysis and maintenance functions such as cross referencing, annotating and configuration management around an automatically generated object-oriented software database system. Its high-level user interface delivers various analysis and maintenance functions to end users, without exposing its internals and implementation characteristics. Its tool set allows existing software to be loaded into the database automatically. SAMS's database schema contains approximately 400 classes with thousands of attributes and methods View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • FATCAT: a tool to aid in maintaining, modifying, and enhancing Fortran codes

    Page(s): 347 - 348
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (120 KB)  

    FATCAT (Fortran Advanced Technology Code Analysis Tool) is a software tool designed to aid the programmer in maintaining, modifying, and enhancing substantial production programs (a thousand to over a million lines long). FATCAT is also extremely useful in aiding the programmer in parallelizing Fortran code. FATCAT analyzes sequential code written in ANSI Fortran '77. It also `understands' Cray Fortran (CFT) extensions, such as recursion and pointer variables. Like some cross-reference-table producing tools, FATCAT also understands the effects on variable usage of COMMON and EQUIVALENCE statements. Unlike most such tools, however, it also accounts for the effects of SUBROUTINE and FUNCTION calls, including recursive calls, of array subscripting, and of dereferencing CFT-style pointer variables View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • A study of integration testing and software regression at the integration level

    Page(s): 290 - 301
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (1256 KB)  

    The authors identify the common errors and faults in combining modules into a working unit. They also make practical recommendations on test selection for integration testing and utilize these recommendations for regression testing at the integration level. With emphasis on reusing the previous test cases and retesting only the parts that are modified, one can reduce the testing expenses. The concept of `firewall' is proposed to assist the tester in focusing on that part of the system where new errors may have been introduced by a correction or a design change. An experiment is presented in which an application of strategy is compared with the `retest-all' strategy. By applying the approach for test selection, it is possible to discover all errors found by the retest-all strategy by executing only 35% of the total number of test cases View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • The use of application domain knowledge for effective software maintenance

    Page(s): 170 - 176
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (500 KB)  

    It is pointed out that effective maintenance of software requires an understanding of the application domain. The proposed approach is based on the assumption that a model which links the concepts of the application domain to their implementation will assist in tracing the changing user requirements in the software system and in identifying what is to be changed and why, what needs to be carried out in order to implement the change, and how the existing system will be affected as a result. The application of this approach to the maintenance of an object-oriented programming environment is discussed View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Transitioning from development to maintenance

    Page(s): 189 - 199
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (776 KB)  

    It is pointed out that the life cycle of many large software systems includes a major milestone for delivery and a transition phase during which the software item ceases to be the responsibility of the developer and becomes the responsibility of some other organization. The author identifies management and technical issues which arise as a part of this transition. These issues include the transfer of project management functions, the provision for future development/maintenance technical support, the establishment of new user-maintainer interfaces, and the installation and implementation of the hardware, software, tools, and procedures in the maintenance facility which are necessary so that maintenance may commence View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Non-intrusive tool for software testing and debugging: an actual industrial application example

    Page(s): 105 - 110
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (464 KB)  

    The authors present a system tool, called SuperTracer, that not only meets the requirements of many distinct aspects of large software system testing, debugging, and maintenance, but does so in a completely nonintrusive manner. SuperTracer is a single multilayer printed circuit pack for DMS SuperNode controlled by software written in the Protel language. The authors discuss all aspects of the tool, including the basic architecture, recursive mechanism to overcome the uncertainties due to pipelining, and prefetching, and the reasons for broad acceptance among the design, test, maintenance, and support user communities. In many cases the users found that a solution to their particular scenario was reached in a fraction of the time previously needed for the same problem View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • A tool for the maintenance of C++ programs

    Page(s): 54 - 59
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (440 KB)  

    The author describes a software tool that helps programmers understand object-oriented software systems written in C++. This task is accomplished by providing information about the set of classes and files of which the system is comprised and the relationships among them. The tool described enables its users to browse easily through the system on the basis of the relations among its classes, files, and even identifiers. In addition, the flexible use of global text styles enhances the readability of the source code. The implementation of the tool is described. In particular, problems are mentioned that arise when performing static analysis of C++ programs View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • A study on the effect of reengineering upon software maintainability

    Page(s): 91 - 99
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (592 KB)  

    The effect of reengineering on software maintainability was investigated in a laboratory experiment conducted within the METKIT research project of the European ESPRIT program for the study and promotion of the use of metrics in software engineering. The experiment was conducted as a case study in measuring software complexity and maintainability. However, the results also serve to assess the benefits of reengineering old programs. Maintainability is defined as the effort required to perform maintenance tasks, the impact domain of the maintenance actions, and the error rate caused by those actions. Complexity is defined as a combination of code, data, data flow, structure, and control flow metrics. The data collected demonstrate that reengineering can decrease complexity and increase maintainability, but that restructuring has only a minor effect on maintainability View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Designing adaptable software-parametrization of volatile properties

    Page(s): 335 - 342
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (776 KB)  

    The author presents and discusses the PoVP (parametrization of volatile properties) approach to the design of adaptable software. It is based on a combination of analysis of volatile properties, program structuring and parameterization. Two main questions are addressed: Which volatile characteristics of the working environment of a piece of software are related to volatile software properties? How and for whom is the change in volatile software properties going to be supported by software adaptability? PoVP is qualified by means of a fictitious redesign of a real-world information system characterized by huge adaptability problems. The redesign strongly suggests that parameterization of volatile properties is a valuable supplement to program structuring when software adaptability is an important software property View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.
  • Composing subsystem structures using (k,2)-partite graphs

    Page(s): 12 - 19
    Save to Project icon | Request Permissions | Click to expandQuick Abstract | PDF file iconPDF (596 KB)  

    The authors describe a clustering method that uses equivalence relations for identifying subsystem structures. The relations are intended to embody the software engineering principles that concern module interactions, such as low coupling, high strength, small interfaces, and few interfaces. The resulting compositions are (k ,2)-partite graphs (a class of layered graphs) rather than strict tree hierarchies. The method is supported by an interactive graph editor View full abstract»

    Full text access may be available. Click article title to sign in or learn about subscription options.