{"title":"Degrees of consciousness for reuse of software in practice: Maintainability, balance, standardization","authors":"S. Biffl, T. Grechenig","doi":"10.1109/CMPSAC.1993.404222","DOIUrl":null,"url":null,"abstract":"The following paper deals with a model for reuse of software providing different levels of reuse intensity. The model is designed for industrial use based on experiences from consulting a large inhouse developer (administrative software). It is drawn from state-of-the-art suggestions in reuse research as well as from typical constraints of time and costs in a less ideal development scenario. The model can be taken as a receipt for reuse in practice as it provides three different levels of reuse intensities/investments, and thus returns three different levels of reuse maturity. A basic level of reuse maturity in practice is to achieve maintainability: Many, especially older, programs turn out to be widely undocumented; often requirements and/or abstract design are missing, the programs do not meet basic criteria of maintainability. A medium level of reuse maturity is represented by balance within similar projects: A well designed and therefore maintainable software system contains system-specific and general components. We define a group of software systems as balanced, if there is a clear top-down structure from the general to the specific in documents concerning analysis, design, code and test. A new but similar system can be designed reusing upper level components and adapting lower level ones. A top-level reuse maturity in practice affords several technical and organizational efforts. We favor the term reuse culture. The design of a new project goes along with the use of repositories for all phases of development. Making a reuse culture work needs developing, providing and enforcing of standards. On the technical level this requires the use of quality assurance methodology, on the organizational level this includes a rather precise project information flow model. The roles for a reuse culture are defined.<<ETX>>","PeriodicalId":375808,"journal":{"name":"Proceedings of 1993 IEEE 17th International Computer Software and Applications Conference COMPSAC '93","volume":"115 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1993-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"9","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of 1993 IEEE 17th International Computer Software and Applications Conference COMPSAC '93","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CMPSAC.1993.404222","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 9
Abstract
The following paper deals with a model for reuse of software providing different levels of reuse intensity. The model is designed for industrial use based on experiences from consulting a large inhouse developer (administrative software). It is drawn from state-of-the-art suggestions in reuse research as well as from typical constraints of time and costs in a less ideal development scenario. The model can be taken as a receipt for reuse in practice as it provides three different levels of reuse intensities/investments, and thus returns three different levels of reuse maturity. A basic level of reuse maturity in practice is to achieve maintainability: Many, especially older, programs turn out to be widely undocumented; often requirements and/or abstract design are missing, the programs do not meet basic criteria of maintainability. A medium level of reuse maturity is represented by balance within similar projects: A well designed and therefore maintainable software system contains system-specific and general components. We define a group of software systems as balanced, if there is a clear top-down structure from the general to the specific in documents concerning analysis, design, code and test. A new but similar system can be designed reusing upper level components and adapting lower level ones. A top-level reuse maturity in practice affords several technical and organizational efforts. We favor the term reuse culture. The design of a new project goes along with the use of repositories for all phases of development. Making a reuse culture work needs developing, providing and enforcing of standards. On the technical level this requires the use of quality assurance methodology, on the organizational level this includes a rather precise project information flow model. The roles for a reuse culture are defined.<>