
The Impact of Maintainability on Component-based Software Systems Matinlassi Mari, Niemelä Eila VTT Technical Research Centre of Finland Software Architectures Group {Mari.Matinlassi, Eila.Niemela}@vtt.fi Abstract and CORBA. CBSE includes wide-ranging issues from the theory of software reuse to the reality of commercial There is a great deal of inconsistency and vagueness in software markets, from available tools to programming the treatment of and terminology involved with software language mechanisms and from practical testing to maintainability. This is exacerbated by the fact that there rigorous formal specification. are a number of different dimensions of maintainability, This study discusses maintainability, i.e. the capability each requiring specific treatment. The trends of of the software to be modified [2, 3] from the perspective increasing systems functionality and increasing systems of component-based software systems, wherein today, the complexity have given rise to new dimensions of concept of maintainability is of major importance [4], [5]. maintainability since ISO/IEC defined maintainability as As a matter of fact, most of the software engineering “the capability of the software to be modified” in 1996. methods and techniques e.g. reuse, product line approach This paper introduces the framework of maintainability and component-based software engineering have the and the techniques that promote maintainability in three same final goal: maintainability. For instance, reusability abstraction levels; system, architecture and component. promotes maintainability through decreasing In the system dimension, the maintainability requirement development costs. On the other hand, maintainability is a is considered from a business-related point of view. In prerequisite for reusable software, because there is no architecture, maintainability means a set of quality meaning in e.g. a long-living reusable component that is attributes, e.g. extensibility and flexibility. At the not maintainable. As seen in many cases, some component level, maintainability focuses on modifiability, characteristics of maintainability can be seen as a pre- integrability and testability. requisite for the provision of another. The definitions for maintainability are many and its 1. Introduction various nuances are often confused or misunderstood, as are all the other quality attributes [6], [7], [8]. Therefore, Software maintenance is long known as one of the this study defines the dimensions of the maintainability most expensive and resource requiring phase of the requirement in component-based software systems and software development process. Especially in component- clarifies the impact of maintainability on software based systems, the development phase may be displaced systems. with integration in the near future. Therefore, The requirement of maintainability permeates all levels maintenance will get more and more attention and the of component-based software. Therefore, software requirement of maintainability and its impact on software developers need support for each maintainability development has to be clearly understood. The term dimension and in order to provide that support, it has to “software component” has varying definitions. According be understood what maintainability means and what its to [1] software component is a nontrivial, nearly impact on component-based software systems is. In independent, and replaceable part of a system that fulfills particular, maintainability of software that involves a clear function in the context of a well-defined externally developed components differs from the architecture. In addition, a component conforms to and traditional software maintenance in that the activity of provides the physical realization of a set of interfaces. In maintenance is likely to be performed by someone other addition, component-based software engineering (CBSE) than the developer. This is the case whether the is about developing, marketing and utilizing software component is an ‘in-house’ developed component or a components with their related assets. Therefore, CBSE pure commercial component. goes well beyond enabling technologies e.g. JavaBeans Proceedings of the 29th EUROMICRO Conference “New Waves in System Architecture” (EUROMICRO’03) 1089-6503/03 $17.00 © 2003 IEEE The structure of this paper is as follows. First, we software to environments other than those for which it define not only the pre-required quality attributes for was specifically designed. maintainability but also techniques that promote Although the quality model includes functionality, i.e. maintainability. Then, we divide software into three the system’s ability to do the work for which it was abstractions; system, architecture and component intended, we see it as a main category of dimensions and discuss the impact of quality attributes on executionfunctional quality attributes, realizing that each dimension. A case study of a product line of the functionality cannot be considered an architectural traffic information systems illustrates the impacts of quality attribute [9]. However, interoperability, maintainability. In the end, we conclude our statements adaptability and reliability can be considered special, and draw out our future plans. newly emerged forms of functionality, the forms that are architectural in nature [12]. While the characteristics of 2. Background software systems are changing from monolithic to modular networked systems, and furthermore, to 2.1. Quality attributes spontaneously self-organizing nets of adaptive computing ISO/IEC Draft 9126-1 defines a software quality units, new quality attributes are defined in order to model [2] with six categories of quality characteristics: characterize the qualitative properties of systems. Thus, functionality, reliability, usability, efficiency, the list of quality attributes is sensitive to changes in a maintainability and portability. Quality characteristics are similar way to attractiveness of systems’ qualities. also called quality attributes [9], which can be categorized Table 1. Functional Execution quality into functional execution and non-functionalevolution attributies. quality attributes (also called simply ‘qualities’). Functional Execution qualities are observable at run-time. Attribute Description That is, they express themselves in the behavior of the Performance Responsiveness of the system, system. Evolution Non-functional qualities cannot be which means the time required to discerned at run-time, meaning that the solutions for non- respond to stimuli (events) or the functionalevolution qualities lay in static structures of the number of events processed in software system. Therefore, they should be considered in some interval of time. the phases of the product’s life cycle, i.e. in development Security The system’s ability to resist and maintenance of a software system. Although we use unauthorized attempts at usage and categorization into execution and evolution qualities, denial of service while still other categorizations are available (see a collection e.g. in providing its service to legitimate [10]). users. Chung et al. [10] define a framework for representing Availability Availability measures the the design process of non-functional requirements (or proportion of time the system is up quality attributes, if you will). However, the framework and running. does not categorize neither define the quality attributes Usability The system’s learnability, explicitly but concentrates on recording the reasoning efficiency, memorability, error process behind the design decisions. avoidance, error handling and Table 1 and Table 2 define the functional execution satisfaction concerning the users’ and non-functionalevolution qualities by extending the actions. definitions in [11] with new attributes, namely being Scalability The ease with which a system or adaptability (functional execution quality) and component can be modified to fit extensibility (non-functionalevolution quality). [3] the problem area. denotes adaptability as a synonym for flexibility. Reliability The ability of the system or However, we believe the meaning of adaptability and component to keep operating over flexibility is different today and these attributes exist even the time or to perform its required in different attribute categories (execution and functions under stated conditions evolutionfunctional and non-functional). Adaptability for a specified period of time. means the ability of software to adapt its functionality Interoperability The ability of a group of parts to according to the current environment or user, whereas the exchange information and use the strict meaning of flexibility is about easy adaptation of one exchanged. Adaptability The ability of software to adapt its Proceedings of the 29th EUROMICRO Conference “New Waves in System Architecture” (EUROMICRO’03) 1089-6503/03 $17.00 © 2003 IEEE functionality according to the components. current environment or user. Portability The ability of the system to run under different computing systems: With a quick look, some of the non- hardware, software or combination functionalevolution qualities in Table 2 seem to be of the two. almost the same. However, the attributes really have at Reusability The system’s structure or some of least a different sound to their meaning. For example, its components can be reused again maintainability may be equalized with modifiability [9]. in future applications. However, we think maintainability is also
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages8 Page
-
File Size-