By pursuing a research topic on quality models, we attempt to bring practical quality models that take in account the developers' choice of idioms, patterns, and architecture styles. In the past years, this research topic has led to several approaches and tools.
Aspect-oriented Programming and Metrics
Aspect-oriented programming is a paradigm designed to fulfill the limitations of object-oriented programming regarding separation of concerns. The advent of this paradigm requires software engineers to define metrics and quality models to measure the quality of programs in this paradigm. The close relationship of aspect-oriented programming and object-oriented languages drives us to wonder about the impact of this paradigm over object-oriented languages, and especially over object metrics. In this position paper, we attempt to present an approach to study and to understand the impact of aspect-oriented programming on object-oriented metrics. Results of this research are available on-line.
Software metrics and quality models play a pivotal role in measurement of software quality. A number of well-known quality models and software metrics are used to build quality software both in industry and in academia. However, during our research on measuring software quality using design patterns, we faced many issues related to existing software metrics and quality models. We provide a list of metrics and their definitions on-line.
Maintenance accounts for a large part of the software development costs, up to 70% according to many estimations (Osborne, Hamlet, Bell, Pressman). There exist techniques to prevent or alleviate corrective maintenance, in particular testing and verification techniques. However, other types of maintenance, caused by changing specifications and environments, cannot easily be forecasted and handled. Moreover, it is now insufficient to guarantee the functioning of a software system: the system must also be easily to change at reasonable costs.
Maintainability, as most others quality characteristics, is not a functional propriety of a system. Therefore, testing and verification techniques are inadequate to assess maintainability, because they are concerned with the functioning of the system with respect to its specifications. Moreover, maintainability cannot be measured directly from software artifacts a priori. For example, many years of operation are required to assess precisely the fault-proneness of a system.
In this context, the Software Quality group of the Direction des Systèmes Informatiques Voyageurs (DSIV) of the Société Nationale des Chemins de fer Français (SNCF) defined a process and implemented an environment to assess quality at all levels of granularity. This process allows assessing the quality of software systems developed in-house or by sub-contractors. It includes enforcing programming conventions and identifying design defects.
The objective of the MOVER project (Mesure des Objets pour la Visualisation, l'Evaluation et la Re-ingénierie des logiciels) is to participate to the improvement of the process and of the environment, in particular by the integration of the Ptidej Team's expertise in quality evaluation and design defect specification and detection. More details about the DSIV and its approach to quality is available on the Internet (in French).
Last modified 2013-03-26 08:41