Leppänen, Väinö · Theseus (Ammattikorkeakoulujen) · 2011
Tämän opinnäytetyön tarkoitus oli kohottaa erään tietyn ohjelmiston ylläpidettävyyttä. Työ käsittelee kyseistä olio-pohjaista ohjelmistoa pääasiallisesti luokka-tasolla. \n \nKyseessä on toiminnallinen opinnäytetyö, joka alkoi kirjallisuuteen tutustumalla. Vuoden 2011 ensimmäisen puoliskon aikana ohjelmiston ylläpidettävyyttä kohotettiin käymällä sen rakennetta läpi samalla analysoiden sen kelvollisuutta. Rakenne käytiin läpi aloittaen luokkatasolta ja päätyen luokkien välisiin riippuvaisuuksiin. Ongelmalliset rakenteet korjattiin työn edetessä. \n \nTavoite ylläpidettävyyden kohottamisesta täyttyi tietyissä määrin. Keskeisimmät parannukset koskivat luokkien eheyttä ja abstraktioiden selkeyttä kuten myös ohjelmiston hierarkisen rakenteen ominaisuuksia. Viimeinen tavoite ohjelmiston luokkien välisistä riippuvaisuuksista jäi toteutusta vaille, mutta suunnitelma sille valmistui. Ohjelmiston tarkastelun aikana nousi myös epäilys että olio-pohjaisuus ei välttämättä ollut optimaalisin keino tiettyjen ohjelmiston osion rakentamiseksi.
Cited by 0Open access
Gerald M. Berns · Communications of the ACM · 1984
How easy is it to maintain a program? To a large extent, that depends on how difficult the program is to understand. A technique to measure program difficulty yields encouraging results.
Cited by 70Open access
Schnappinger, Markus, Fietzke, Arnaud, Pretschner, Alexander · Figshare · 2020
This dataset contains 304 manual evaluations of class-level software maintainability. It can be used to develop and evaluate automated quality prediction tools.<br>This archive was created along the work described in detail in<em>M. Schnappinger, A. Fietzke, and A. Pretschner, "</em><i>Defining a Software Maintainability Dataset: Collecting, Aggregating and Analysing Expert Evaluations of Software Maintainability</i><em>", International Conference on Software Maintenance and Evolution (ICSME), 2020</em><em><br></em>If you use this dataset in your research, please cite both this dataset and the corresponding paper. This archive containsA readme with all relevant information aboutStudy objectsLabel definitionThreats to validityHints for using the datasetList of metrics used to prioritize the samplesThe code of the study objectsA .csv file containing the readability, understandability, complexity, adequate size, and overall maintainability labelsThe original publicationFigshare uses a strict character limit for this description. Please refer to the `Readme.md` for further information.<br>
Cited by 1Open access
莊淇銘; Chung, chi-ming; Yang, ming-guey · 1988
本書目待補正
Cited by 0
Markus Schnappinger, Arnaud Fietzke, Alexander Pretschner · Figshare · 2020
This dataset contains 304 manual evaluations of class-level software maintainability. It can be used to develop and evaluate automated quality prediction tools.<br>This archive was created along the work described in detail in<em>M. Schnappinger, A. Fietzke, and A. Pretschner, "</em><i>Defining a Software Maintainability Dataset: Collecting, Aggregating and Analysing Expert Evaluations of Software Maintainability</i><em>", International Conference on Software Maintenance and Evolution (ICSME), 2020</em><em><br></em>If you use this dataset in your research, please cite both this dataset and the corresponding paper. This archive containsA readme with all relevant information aboutStudy ObjectsLabel DefinitionThreats to ValidityHints for Using the DatasetList of Metrics used to prioritize the SamplesThe Code of the study objectsA .csv file containing the readability, understandability, complexity, adequate size, and overall maintainability labelsFigshare uses a strict character limit for this description. Please refer to the Readme.md for further information.<br>
Cited by 0Open access
Louis J. Gullo · 2021
Cited by 0
Markus Schnappinger, Arnaud Fietzke, Alexander Pretschner · Figshare · 2020
This dataset contains 304 manual evaluations of class-level software maintainability. It can be used to develop and evaluate automated quality prediction tools.<br>This archive was created along the work described in detail in<em>M. Schnappinger, A. Fietzke, and A. Pretschner, "</em><i>Defining a Software Maintainability Dataset: Collecting, Aggregating and Analysing Expert Evaluations of Software Maintainability</i><em>", International Conference on Software Maintenance and Evolution (ICSME), 2020</em><em><br></em>If you use this dataset in your research, please cite both this dataset and the corresponding paper. This archive containsA readme with all relevant information aboutStudy objectsLabel definitionThreats to validityHints for using the datasetList of metrics used to prioritize the samplesThe code of the study objectsA .csv file containing the readability, understandability, complexity, adequate size, and overall maintainability labelsFigshare uses a strict character limit for this description. Please refer to the `Readme.md` for further information.<br>
Cited by 0Open access
Rikard Land · 2002
In this position paper, we describe the research we have just initiated. We will investigate how the “maintainability” of a piece of software changes as time passes and it is being maintained by performing measurements on industrial systems. We present the notion of “maintainability”, our hypotheses, and our approach.
Cited by 0
Markus Schnappinger, Arnaud Fietzke, Alexander Pretschner · Figshare · 2020
This dataset contains 304 manual evaluations of class-level software maintainability. It can be used to develop and evaluate automated quality prediction tools.<br>This archive was created along the work described in detail in<em>M. Schnappinger, A. Fietzke, and A. Pretschner, "</em><i>Defining a Software Maintainability Dataset: Collecting, Aggregating and Analysing Expert Evaluations of Software Maintainability</i><em>", International Conference on Software Maintenance and Evolution (ICSME), 2020</em><em><br></em>If you use this dataset in your research, please cite both this dataset and the corresponding paper. This archive containsA readme with all relevant information aboutStudy objectsLabel definitionThreats to validityHints for using the datasetList of metrics used to prioritize the samplesThe code of the study objectsA .csv file containing the readability, understandability, complexity, adequate size, and overall maintainability labelsThe original publicationFigshare uses a strict character limit for this description. Please refer to the `Readme.md` for further information.<br>
Cited by 3Open access
Huber, Justin Roger · UND Scholarly Commons (University of North Dakota) · 2014
Software maintenance is the final stage in the software engineering process; and can also be the longest and most costly. The ability of, and ease in which software upkeep and change is performed is an important software quality attribute called maintainability. Software maintenance however is an expensive process in both time and financial cost and can account for a majority of a system's overall lifetime cost. It would be beneficial then to have a set of guidelines for obtaining a higher degree of maintainability in software before and after its release and evolution stage in order to limit the cost of change. Six suggested steps for achieving a higher degree of maintainability through software documentation are provided along with a short case study, followed by a discussion on potential results and future enhancements to the proposed method.
Cited by 0Open access
Chris Dyer · 2005
This paper addresses the problem of planning for software maintainability by considering the application of rule-based or "expert systems," which are programs capable of simulating the problem-solving behavior of a human planner by using rules derived from previous experience and empirical observation. The development of a rule-based system for planning for software maintainability is described. Factors such as software design, number of copies of the software, distribution of the user base, the expectations and skill level of users of the software, and the expected frequency and complexity of calls from users for assistance can be taken into account in order to optimize the cost of maintaining software. The components of the system, the identification or derivation of the rules to be applied, and the interaction of such a system with the planner are shown. The advantages and limitations of this approach are examined, and the possible applications of rule based systems to other aspects of planning for software maintainability are discussed.
Cited by 3
Sudipto Ghosh, Michael Mortensen · 2009
The primary claimed benefits of aspect-oriented programming (AOP) are that it improves the understandability and maintainability of software applications by modularizing cross-cutting concerns. Before there is widespread adoption of AOP, developers need further evidence of the actual benefits as well as costs. Applying AOP techniques to refactor legacy applications is one way to evaluate costs and benefits.
Aspect-based refactoring, called aspectualization, involves moving program code that implements cross-cutting concerns into aspects. Such refactoring can potentially improve the maintainability of legacy systems. Long compilation and weave times, and the lack of an appropriate testing methodology are two challenges to the aspectualization of large legacy systems. We propose an iterative test driven approach for creating and introducing aspects. The approach uses mock systems that enable aspect developers to quickly experiment with different pointcuts and advice, and reduce the compile and weave times. The approach also uses weave analysis, regression testing, and code coverage analysis to test the aspects. We developed several tools for unit and integration testing. We demonstrate the test driven approach in the context of large industrial C++ systems, and we provide guidelines for mock system creation.
This research examines the effects on maintainability of replacing cross-cutting concerns with aspects in three industrial applications. We study several revisions of each application, identifying cross-cutting concerns in the initial revision, and also cross-cutting concerns that are added in later revisions. Aspectualization improved maintainability by reducing code size and improving both change locality and concern diffusion. Costs include the effort required for application refactoring and aspect creation, as well as a small decrease in performance.
Cited by 7
Mortensen, Michael, Ghosh, Sudipto, Bieman, James M. · Colorado State University · 2009
The primary claimed benefits of aspect-oriented programming (AOP) are that it improves the understandability and maintainability of software applications by modularizing cross-cutting concerns. Before there is widespread adoption of AOP, developers need further evidence of the actual benefits as well as costs. Applying AOP techniques to refactor legacy applications is one way to evaluate costs and benefits. Aspect-based refactoring, called aspectualization, involves moving program code that implements cross-cutting concerns into aspects. Such refactoring can potentially improve the maintainability of legacy systems. Long compilation and weave times, and the lack of an appropriate testing methodology are two challenges to the aspectualization of large legacy systems. We propose an iterative test driven approach for creating and introducing aspects. The approach uses mock systems that enable aspect developers to quickly experiment with different pointcuts and advice, and reduce the compile and weave times. The approach also uses weave analysis, regression testing, and code coverage analysis to test the aspects. We developed several tools for unit and integration testing. We demonstrate the test driven approach in the context of large industrial C++ systems, and we provide guidelines for mock system creation. This research examines the effects on maintainability of replacing cross-cutting concerns with aspects in three industrial applications. We study several revisions of each application, identifying cross-cutting concerns in the initial revision, and also cross-cutting concerns that are added in later revisions. Aspectualization improved maintainability by reducing code size and improving both change locality and concern diffusion. Costs include the effort required for application refactoring and aspect creation, as well as a small decrease in performance.
Cited by 0Open access
David E. Peercy · IEEE Transactions on Software Engineering · 1981
This paper describes a conceptual framework of software maintainability and an implemented procedure for evaluating a program's documentation and source code for maintainability characteristics. The evaluation procedure includes use of closed-form questionnaires completed by a group of evaluators. Statistical analysis techniques for validating the evaluation procedure are described. Some preliminary results from the use of this methodology by the Air Force Test and Evaluation Center are presented. Areas of future research are discussed.
Cited by 39
Sun, Qi · SHAREOK (University of Oklahoma) · 2014
risk evaluation methods (SRAM, CDHRAM, and CCRAM) are described.
Cited by 0Open access
Anjos, Eudisley Gomes dos · Estudo Geral (Universidade de Coimbra) · 2017
Tese de doutoramento em Ciências e Tecnologias da Informação, apresentada ao Departamento de Engenharia Informática da Faculdade de Ciências e Tecnologia da Universidade de Coimbra
Cited by 0Open access
Norman F. Schneidewind · IGI Global eBooks · 2005
In order to continue to make progress in software measurement, as it pertains to reliability and maintainability, there must be a shift in emphasis from design and code metrics to metrics that characterize the risk of making requirements changes. By doing so, the quality of delivered software can be improved because defects related to problems in requirements specifications will be identified early in the life cycle. An approach is described for identifying requirements change risk factors as predictors of reliability and maintainability problems. This approach can be generalized to other applications with numerical results that would vary according to application. An example is provided that consists of 24 space shuttle change requests, 19 risk factors, and the associated failures and software metrics.
Cited by 0
B. Ramachandra Reddy, Saahil Khurana, Aparajita Ojha · 2015
This paper presents a tool called COIN (COhesion, INheritance) for evaluating Cohesion, Inheritance and Size metrics and Maintainability factors of class hierarchies in Java projects. The tool enables analyzing classes as well as class hierarchies on their modifiability and understandability aspects measured through different metrics. Class hierarchies that may be more complex from the point of view of software maintenance can be identified at early design phase through this tool. The COIN also evaluates testability factors of classes and class hierarchies in a project. Graphical visualization of maintainability factors with important involved design metrics, namely MaxDIT, AID and NOCC, and summery reports of individual class hierarchy with maintainability factors are facilitated in this tool. The tool supports a large number of cohesion, coupling, size, inheritance metrics and maintainability metrics as well, which to the best of our knowledge is not covered in any existing analysis tool.
Cited by 2
Fuqua, Norman B. · Defense Technical Information Center (DTIC) · 1993
This is the second in a series of RAC publications illustrating Reliability, Maintainability and related software packages which are presently available to the R&M analyst. RMST-93 offers a listing of automated tools and highlights relevant data such as operating platform, cost, contacts, access/ limitations, and claimed capabilities. Information presented herein has been collected from both military and commercial data sources. Reliability software tools, Maintainability software tools, Testability, Electrical, Mechanical, Data analysis, CAE, CAD.
Cited by 0
Jiao Xie, Jialing Yang, Sisi Zhao et al. · Journal of Systems Architecture · 2025
Cited by 0