ECO-MAPS: Information Quality-Driven Enterprise Modeling
Alexis Ocampo
ECOPETROL S.A.
Bogota, Colombia
Abstract. Fluctuating cash flows, shortage of qualified people, and strict laws demanding safer processes and systems are some examples of challenges that organizations in the oil and gas domain have to cope with in order to remain competitive in the market. The IT domain of these organizations has historically installed best-of-class technology. However, some essential information capabilities, which are important for making strategic, tactical, and operational decisions, are still missing. This missing information can jeopardize the whole operation of a major oil company. To avoid this risk, ECOPETROL has designed and implemented the ECO-MAPS approach, consisting of an enterprise architecture model, an enterprise modeling methodology, and tool support. With this approach, the driver for making decisions is the explicit identification of information that adds value to the business processes and mitigates relevant risks. In practice, this has changed the paradigm at ECOPETROL from "technology first, information last" to "information of high quality first, technology last." This presentation provides insights about the approach, the measurement of information quality, and the current results of the implementation.
Biography.. Alexis Ocampo is the Enterprise Architecture Leader at ECOPETROL S.A., Colombia. ECOPETROL is a corporate group headquartered in Colombia, focused on petroleum, gas, petrochemicals, and alternative fuels, and recognized for its international positioning, its innovation, and its commitment to sustainable development. Alexis Ocampo received his doctoral degree in computer science from the University of Kaiserslautern, Germany. He has experience in industry in the area of enterprise architectures, software development, software processes, software evolution, and variability.
Making Software Quality Visible
Stefan Wagner
University of Stuttgart
Institute of Software Technology
Stuttgart, Germany
Abstract. Software quality is hard to comprehend and grasp. There- fore, we need to support developers by giving them quick and frequent feedback so that they can control the quality of their software systems. This talk discusses existing techniques, tools and quality models as well as directions for future research
Motivation
Quality is an essential property of any product, and its importance is still increas- ing in comparison to functional properties. Many products cannot di erentiate themselves by features but by superior quality characteristics.
Quality in general, however, is a very dicult concept with many di erent facets. Also software is hard to comprehend because it is intangible which is not intuitive for humans. Therefore, software quality is even more dicult to capture and understand. This becomes visible in many unreliable or unmaintainable software systems existing today.
What can we do to help software developers to control the quality of their software systems? Software development is a human-centric task. Although we are able to automate many aspects of it, the abilities of the developers deter- mine largely the outcome. Humans need feedback to control and improve their actions, in our case the development process. This feedback is best when it is fast. Therefore, we need fast feedback about the quality of the software: We need to make software quality visible.
Quality Assurance Techniques
There are many established techniques in analytical quality assurance that help us in nding quality problems. The most used technique is testing with its vari- ous specialisations. Test automation allows us to repeat the tests frequently and, thereby, give rapid feedback. Reviews and inspections can give the earliest feed- back, because they can be applied to any artefact including specications and designs. Also for reviews, automation can facilitate a more frequent application. Comparably cheap to apply and, hence, also well suited for frequent feedback is automated static analysis. Various analyses for control ow defects or bug patterns show problematic parts of the code to the developer. We discuss in par- ticular the static analysis technique "clone detection" which can automatically nd duplications in the code. We will look into the possibilities to use these techniques in making quality visible.
In addition, many software measures have been proposed to better under- stand software systems and their quality. Some of them, such as the number of failed test cases, measure the results of the techniques above. Others, such as fan-out our inheritance depth, aim to capture the properties of the code itself. To comprehend the large amount of data we can get from all these measures, we use visualisations such as trend chars or treemaps, often contained in a dashboard.
Quality Models
The visualisations, however, cannot give you an interpretation of the data. What constitutes good or bad quality still needs to be decided. For that, we can apply quality models. They break down quality in its quality factors and, if opera- tionalised, also concrete measurements. In particular, we will discuss the quality models and the modelling approach created in the research project Quamoco. In the project, we built an explicit meta-model for quality model which captures not only abstract quality factors but also properties of the product ("product factors") and corresponding measures. Using this meta-model, we built a quality base model operationalising quality for the source code of Java and C# systems. This allows us a comprehensible and repeatable quality evaluation of such sys- tems.
Outlook
In an outlook, we will look into how we can integrate the di erent techniques and results into an ever more comprehensive visualisation for the developers. For example, repository mining has reached a level of maturity that allows us to analyse and integrate aspects not possible before. Finally, we will propose "interactive quality control" as approach to give all quality information directly to the developers at the time they create and change artefacts. This contains many additional challenges we will need to solve in the future. Nevertheless, with the ever-growing size and complexity of software systems, we need to make quality more visible so that developers will be able to handle them.